/* ============================================================
   BRIGHTSOCIAL — APP STYLESHEET
   app-style.css
   ============================================================ */


/* CSS VARIABLES — Light & Dark Mode
   ============================================================ */
:root{
  --cream:#F9F6F1;--white:#FFFFFF;--ink:#1C1C1A;--ink-2:#4A4A45;--ink-3:#7A6A60;
  --rule:#E8E4DE;--amber:#C45E1A;--amber-lt:#FFF0E0;--teal:#1A9090;--teal-lt:#E0F6F6;
  --green:#2A8050;--green-lt:#E0F5EC;--red:#D42030;--red-lt:#FDEAEA;
  --border-soft:#F3E5D4;--amber-soft:#FBE8D4;
  --r-sm:12px;--r:16px;--r-lg:24px;
  --sh-sm:0 2px 8px rgba(28,26,23,.05);--sh:0 8px 32px rgba(28,26,23,.08);
  --bg:var(--cream);--surface:var(--white);--text:var(--ink);--text2:var(--ink-2);--text3:var(--ink-3);--border:var(--rule);
}
body.dark{
  --bg:#111008;--surface:#1E1B14;--text:#F0EDE6;--text2:#A89F94;--text3:#665E54;
  --border:#2E2A22;--cream:#111008;--white:#1E1B14;--ink:#F0EDE6;--ink-2:#A89F94;--ink-3:#665E54;--rule:#2E2A22;
  --amber-lt:rgba(200,98,42,.18);--teal-lt:rgba(26,107,107,.18);--green-lt:rgba(45,106,79,.18);--red-lt:rgba(153,27,27,.18);
}


/* RESET & BASE STYLES
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:focus-visible{outline:3px solid var(--amber);outline-offset:3px;border-radius:6px;}
html{font-size:18px;-webkit-tap-highlight-color:transparent;}
body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;transition:background .3s,color .3s;line-height:1.85;font-weight:500;}


/* TYPOGRAPHY
   ============================================================ */
.serif{font-family:'Fraunces','DM Serif Display',serif;}
h1{font-family:'DM Sans',sans-serif;font-size:2.2rem;line-height:1.15;font-weight:700;letter-spacing:-.02em;}
h2{font-family:'DM Sans',sans-serif;font-size:1.6rem;font-weight:600;line-height:1.25;letter-spacing:-.02em;}
h3{font-family:'DM Sans',sans-serif;font-size:1.25rem;font-weight:600;line-height:1.35;letter-spacing:-.01em;}
p{line-height:1.9;font-weight:500;font-size:1rem;}
.text-muted{color:var(--text2);}
.text-sm{font-size:.95rem;}
.text-xs{font-size:.85rem;}


/* SCREENS & ANIMATIONS
   ============================================================ */
.screen{display:none;min-height:100vh;flex-direction:column;}
.screen.active{animation:screenIn .32s cubic-bezier(.22,1,.36,1) both;}
@keyframes screenIn{from{opacity:0;transform:translateY(14px) scale(.99);}to{opacity:1;transform:translateY(0) scale(1);}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes cardEntry{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);}}
.screen.active{display:flex;}


/* WELCOME SCREEN
   ============================================================ */
.welcome-wrap{min-height:100vh;display:flex;flex-direction:column;background:#FAF6F0;}
.welcome-brand{background:linear-gradient(150deg,#FFF5E6 0%,#FFE8CC 55%,#E8F8F5 100%);padding:64px 36px 52px;display:flex;flex-direction:column;align-items:center;text-align:center;flex-shrink:0;border-bottom:1px solid rgba(217,101,21,.14);position:relative;overflow:hidden;}
.wb-blob{position:absolute;border-radius:50%;filter:blur(60px);pointer-events:none;}
.wb-blob-1{width:300px;height:300px;background:radial-gradient(circle,rgba(217,101,21,.5),transparent 65%);top:-80px;right:-60px;animation:wbBlob 9s ease-in-out infinite;}
.wb-blob-2{width:240px;height:240px;background:radial-gradient(circle,rgba(26,144,144,.4),transparent 65%);bottom:-60px;left:-40px;animation:wbBlob 12s ease-in-out infinite reverse;animation-delay:3s;}
.wb-blob-3{width:200px;height:200px;background:radial-gradient(circle,rgba(255,200,80,.45),transparent 65%);top:60%;left:55%;animation:wbBlob 8s ease-in-out infinite;animation-delay:5s;}
@keyframes wbBlob{0%,100%{transform:translate(0,0) scale(1);}45%{transform:translate(18px,-20px) scale(1.1);}75%{transform:translate(-12px,14px) scale(.92);}}
.welcome-logo{font-family:'DM Serif Display',serif;font-size:2.8rem;color:#1E1610;letter-spacing:-.02em;line-height:1;margin-bottom:14px;display:inline-flex;align-items:center;gap:12px;position:relative;z-index:1;}
.welcome-logo span{color:var(--amber);}
.welcome-tagline{font-family:'DM Sans',sans-serif;font-size:1rem;font-weight:400;color:rgba(44,36,32,.6);line-height:1.65;max-width:280px;margin-bottom:0;position:relative;z-index:1;}
.welcome-entries{flex:1;padding:28px 22px 48px;}
.welcome-member{background:#fff;border-radius:24px;border:1px solid #EDE5DC;padding:28px;margin-bottom:12px;box-shadow:0 4px 24px rgba(30,22,16,.09);}
.welcome-member-heading{font-family:'DM Sans',sans-serif;font-size:1.15rem;color:#1C1C1A;margin-bottom:18px;font-weight:700;}
.welcome-member .btn-outline{border-color:rgba(44,36,32,.22);color:#2C2420;background:transparent;}
.welcome-org{background:#fff;border-radius:20px;border:1px solid #EDE5DC;padding:22px 24px;margin-bottom:12px;box-shadow:0 2px 12px rgba(30,22,16,.06);}
.welcome-org-heading{font-family:'DM Sans',sans-serif;font-size:1.05rem;color:var(--teal);margin-bottom:14px;font-weight:700;}
.welcome-org-btn{background:rgba(26,144,144,.07);color:var(--teal);border:1.5px solid rgba(26,144,144,.2);font-family:'DM Sans',sans-serif;font-weight:600;}
.welcome-org-btn:hover{background:rgba(26,144,144,.13);}
.welcome-footer-row{display:flex;align-items:center;justify-content:center;gap:14px;padding-top:12px;}
.welcome-guest-btn{background:none;border:none;color:rgba(44,36,32,.55);font-family:'DM Sans',sans-serif;font-size:.9rem;font-weight:500;cursor:pointer;padding:8px;text-decoration:underline;text-underline-offset:3px;min-height:44px;}
.welcome-sep{color:rgba(44,36,32,.16);font-size:.9rem;}
.welcome-admin-btn{background:none;border:none;color:rgba(44,36,32,.3);font-family:'DM Sans',sans-serif;font-size:.82rem;font-weight:500;cursor:pointer;padding:8px;min-height:44px;}


/* PROFILE GROUPS
   ============================================================ */
.profile-section-label{font-family:'DM Sans',sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text3);margin:28px 0 12px;display:block;padding-bottom:8px;border-bottom:none;}
.profile-account-card{background:var(--surface);border-radius:var(--r);border:1px solid var(--border);box-shadow:0 1px 3px rgba(28,23,18,.04);padding:28px 24px;margin-bottom:14px;text-align:center;}


/* HEADER
   ============================================================ */
.header{background:var(--surface);border-bottom:1px solid var(--border);padding:0 20px;height:72px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:50;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);}
.logo{font-family:'DM Serif Display',serif;font-size:1.65rem;color:var(--text);letter-spacing:-.02em;cursor:pointer;border:none;background:none;padding:0;font-weight:400;}
.logo span{color:var(--amber);}
.icon-btn{width:48px;height:48px;border-radius:50%;border:none;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;color:var(--text);position:relative;}
.icon-btn:hover{background:var(--bg);}
.icon-btn svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}


/* BOTTOM NAVIGATION
   ============================================================ */
.bottom-nav{background:var(--surface);border-top:1px solid var(--border);display:flex;position:sticky;bottom:0;z-index:50;padding-bottom:env(safe-area-inset-bottom,0);}
.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px 8px;border:none;background:none;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text3);transition:color .2s;position:relative;min-height:62px;}
.nav-item:hover{color:var(--text2);}
.nav-item.active{color:var(--amber);}
.nav-item.active::before{content:"";display:block;position:absolute;top:0;left:50%;transform:translateX(-50%);width:48px;height:3px;background:linear-gradient(90deg,var(--amber),#E8701A);border-radius:0 0 4px 4px;}
.nav-item.active::after{display:none;}
.nav-item svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s cubic-bezier(.34,1.56,.64,1);}
.nav-item.active svg{stroke:var(--amber);transform:scale(1.12);}
.nav-badge{position:absolute;top:6px;right:calc(50% - 20px);background:var(--amber);color:#fff;font-size:.62rem;font-weight:700;min-width:18px;height:18px;border-radius:9px;padding:0 4px;display:flex;align-items:center;justify-content:center;border:2px solid var(--surface);}


/* SCROLL & CONTENT CONTAINERS
   ============================================================ */
.scroll{overflow-y:auto;flex:1;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;}
.content{padding:28px 22px;max-width:680px;margin:0 auto;}
.rule{border:none;border-top:1px solid var(--border);margin:28px 0;}
.section-label{font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text3);margin-bottom:12px;}


/* BUTTONS
   ============================================================ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:16px 32px;border-radius:100px;font-family:'DM Sans',sans-serif;font-size:1.05rem;font-weight:700;border:2px solid transparent;cursor:pointer;transition:all .2s cubic-bezier(.22,1,.36,1);min-height:56px;-webkit-tap-highlight-color:transparent;letter-spacing:.01em;box-shadow:0 2px 6px rgba(28,23,18,.1),0 1px 2px rgba(28,23,18,.06);}
.btn:active{transform:scale(.96);box-shadow:0 1px 2px rgba(28,23,18,.08);}
.btn-amber{background:var(--amber);color:#fff;border-color:rgba(160,60,10,.25);box-shadow:0 2px 8px rgba(196,94,26,.25);}
.btn-amber:hover{background:#A84D14;box-shadow:0 4px 14px rgba(196,94,26,.35);}
.btn-teal{background:linear-gradient(135deg,#1A9090,#116868);color:#fff;border-color:rgba(13,79,79,.25);box-shadow:0 4px 14px rgba(26,144,144,.3),0 1px 3px rgba(28,23,18,.1);}
.btn-teal:hover{background:linear-gradient(135deg,#116868,#0D4F4F);}
.btn-green{background:var(--green);color:#fff;border-color:rgba(35,88,65,.3);box-shadow:0 3px 10px rgba(45,106,79,.25),0 1px 2px rgba(28,23,18,.08);}
.btn-green:hover{background:#235841;box-shadow:0 4px 14px rgba(45,106,79,.35);}
.btn-outline{background:transparent;color:var(--text);border:2px solid var(--border);box-shadow:0 2px 6px rgba(28,23,18,.07),0 1px 2px rgba(28,23,18,.04);}
.btn-outline:hover{border-color:var(--text3);background:var(--bg);box-shadow:0 3px 10px rgba(28,23,18,.1);}
.btn-ghost{background:var(--bg);color:var(--text);border:2px solid var(--border);box-shadow:0 2px 5px rgba(28,23,18,.06),0 1px 2px rgba(28,23,18,.04);}
.btn-ghost:hover{background:var(--border);box-shadow:0 3px 8px rgba(28,23,18,.1);}
.btn-full{width:100%;}
.btn-sm{padding:14px 24px;font-size:.95rem;min-height:52px;font-weight:700;}
.btn-xs{padding:11px 18px;font-size:.88rem;min-height:48px;border-radius:100px;font-weight:700;}
.google-btn{background:#fff;color:#3c4043;border:2px solid var(--border);box-shadow:0 2px 6px rgba(28,23,18,.08);font-weight:600;font-size:.95rem;gap:10px;transition:background .15s,box-shadow .15s,border-color .15s;}
.google-btn:hover{background:#f8f8f8;border-color:#dadce0;box-shadow:0 3px 10px rgba(28,23,18,.12);}
.google-btn:active{background:#f0f0f0;}


/* CARDS & EVENT CARDS
   ============================================================ */
.card{background:var(--surface);border-radius:12px;border:1px solid var(--border);box-shadow:0 1px 3px rgba(28,23,18,.04);padding:24px;margin-bottom:14px;}
.event-card{background:var(--surface);border-radius:12px;border:1px solid var(--border);padding:0;margin-bottom:12px;transition:box-shadow .15s ease,transform .15s ease;cursor:pointer;box-shadow:0 1px 3px rgba(28,23,18,.04);overflow:hidden;display:flex;align-items:stretch;}
.event-card .ec-stripe{width:4px;flex-shrink:0;background:var(--cat-color,var(--amber));}
.event-card .ec-date-block{width:80px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:color-mix(in srgb,var(--cat-color,var(--amber)) 8%,transparent);border-right:1px solid var(--border);padding:12px 6px;}
.event-card .ec-date-day{font-family:'DM Sans',sans-serif;font-size:.65rem;font-weight:700;color:var(--cat-color,var(--amber));text-transform:uppercase;letter-spacing:1px;}
.event-card .ec-date-num{font-family:'DM Sans',sans-serif;font-weight:700;font-size:1.6rem;color:var(--text);line-height:1;margin:3px 0 2px;}
.event-card .ec-date-month{font-family:'DM Sans',sans-serif;font-size:.65rem;color:var(--text3);font-weight:500;}
.event-card .ec-body{flex:1;padding:18px 20px;min-width:0;}
.event-card:hover{box-shadow:0 2px 0 var(--border),0 14px 44px rgba(28,26,23,.14);transform:translateY(-2px);}
.event-card:active{transform:scale(.985);}


/* SKELETON LOADING
   ============================================================ */
@keyframes shimmer{0%{background-position:-600px 0}100%{background-position:600px 0}}
.skeleton-card{background:var(--surface);border-radius:12px;border:1px solid var(--border);padding:24px 20px;margin-bottom:14px;}
.sk-line{background:linear-gradient(90deg,var(--border) 25%,var(--bg) 50%,var(--border) 75%);background-size:600px 100%;animation:shimmer 1.6s infinite;border-radius:8px;}
.sk-title{height:24px;width:68%;margin-bottom:16px;}
.sk-meta{height:17px;width:52%;margin-bottom:12px;}
.sk-meta-sm{height:17px;width:36%;}
#event-skeleton.hidden{display:none!important;}


/* TAGS & BADGES
   ============================================================ */
.tag{display:inline-block;padding:7px 16px;border-radius:100px;font-size:.82rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;}
.tag-free{background:var(--green-lt);color:var(--green);}
.tag-paid{background:var(--amber-lt);color:var(--amber);}
.badge{display:inline-flex;align-items:center;gap:5px;padding:6px 14px;border-radius:100px;font-size:.82rem;font-weight:700;letter-spacing:.03em;border:1.5px solid transparent;box-shadow:0 1px 3px rgba(28,23,18,.06);}
.badge-green{background:var(--green-lt);color:var(--green);border-color:rgba(45,106,79,.2);}
.badge-amber{background:var(--amber-lt);color:var(--amber);border-color:rgba(200,98,42,.2);}
.badge-teal{background:var(--teal-lt);color:var(--teal);border-color:rgba(26,107,107,.2);}
.badge-muted{background:var(--bg);color:var(--text3);border-color:var(--border);}
.badge-red{background:var(--red-lt);color:var(--red);border-color:rgba(185,28,28,.2);}


/* FORMS
   ============================================================ */
.form-group{margin-bottom:24px;}
.form-label{display:block;font-size:.9rem;font-weight:700;color:var(--text2);margin-bottom:10px;text-transform:uppercase;letter-spacing:.06em;}
.form-input{width:100%;padding:18px 22px;border:1.5px solid var(--border);border-radius:12px;font-family:'DM Sans',sans-serif;font-size:1.05rem;color:var(--text);background:var(--surface);transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;line-height:1.6;font-weight:500;min-height:58px;box-shadow:inset 0 1px 3px rgba(28,23,18,.05),0 1px 2px rgba(28,23,18,.04);}
.form-input:focus{outline:none;border-color:var(--amber);box-shadow:0 0 0 4px rgba(217,101,21,.12),inset 0 1px 3px rgba(28,23,18,.03);}
.form-input::placeholder{color:var(--text3);}
textarea.form-input{resize:vertical;min-height:110px;}
select.form-input{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239E9A94' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:42px;cursor:pointer;}


/* TOGGLE SWITCHES
   ============================================================ */
.toggle{position:relative;display:inline-block;width:54px;height:30px;}
.toggle input{opacity:0;width:0;height:0;position:absolute;}
.toggle-track{position:absolute;cursor:pointer;inset:0;background:var(--border);border-radius:30px;transition:.25s;box-shadow:inset 0 1px 3px rgba(28,23,18,.12),0 1px 2px rgba(28,23,18,.06);border:1.5px solid rgba(28,23,18,.08);}
.toggle-track::before{position:absolute;content:"";height:22px;width:22px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.25s;box-shadow:0 2px 4px rgba(28,23,18,.15),0 1px 2px rgba(28,23,18,.1);}
input:checked+.toggle-track{background:var(--amber);border-color:rgba(196,94,26,.3);}
input:checked+.toggle-track::before{transform:translateX(24px);}


/* CHIPS & FILTER ROWS
   ============================================================ */
.chip-row{display:flex;gap:10px;overflow-x:auto;padding-bottom:8px;scrollbar-width:none;margin-bottom:12px;}
.chip-row::-webkit-scrollbar{display:none;}
.chip{flex-shrink:0;padding:12px 24px;min-height:48px;display:inline-flex;align-items:center;border-radius:100px;border:1.5px solid var(--border);background:var(--surface);font-family:'DM Sans',sans-serif;font-size:.95rem;font-weight:600;cursor:pointer;color:var(--text2);transition:all .15s ease;white-space:nowrap;gap:7px;}
.chip.on{background:var(--amber);color:#fff;border-color:var(--amber);}
.chip.cat-chip.on{background:var(--c);border-color:var(--c);box-shadow:0 4px 14px color-mix(in srgb,var(--c) 40%,transparent);}
.chip.cat-chip.on .cat-dot{display:none;}
.chip:hover:not(.on){background:var(--bg);border-color:var(--text3);color:var(--text);}
.chip:active{transform:scale(.94);}
body.dark .chip.on{background:var(--amber);border-color:var(--amber);color:#fff;}
body.dark .chip.cat-chip.on{background:var(--c);border-color:var(--c);}
.cat-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-right:6px;}
.chip-date{flex-shrink:0;padding:10px 16px;min-height:42px;display:inline-flex;align-items:center;justify-content:center;border:none;border-right:1.5px solid var(--border);background:var(--surface);font-family:'DM Sans',sans-serif;font-size:.82rem;font-weight:600;cursor:pointer;color:var(--text3);transition:all .18s cubic-bezier(.22,1,.36,1);white-space:nowrap;letter-spacing:.01em;border-radius:0;}
.chip-date:first-child{border-radius:12px 0 0 12px;}
.chip-date:last-child{border-radius:0 12px 12px 0;border-right:none;}
.chip-date:hover:not(.on){background:var(--bg);color:var(--text);}
.chip-date:active{transform:scale(.96);}
.chip-date.on{background:var(--ink);color:var(--bg);box-shadow:none;}
body.dark .chip-date.on{background:var(--text);color:var(--bg);}
#date-chips{background:var(--surface);border:2px solid var(--border);border-radius:13px;overflow:hidden;padding:0;gap:0;box-shadow:0 2px 6px rgba(28,23,18,.07);}


/* FILTER PILLS (replaces checkboxes)
   ============================================================ */
.filter-row{display:flex;gap:8px;align-items:center;margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid var(--border);}
.filter-pill{display:inline-flex;align-items:center;padding:10px 20px;min-height:44px;border-radius:100px;border:2px solid var(--border);background:var(--surface);font-family:'DM Sans',sans-serif;font-size:.88rem;font-weight:600;cursor:pointer;color:var(--text2);transition:all .2s cubic-bezier(.22,1,.36,1);white-space:nowrap;user-select:none;}
.filter-pill:has(input:checked){background:var(--amber);color:#fff;border-color:var(--amber);box-shadow:0 4px 14px rgba(217,101,21,.30),0 1px 3px rgba(28,23,18,.08);}
.filter-pill:hover:not(:has(input:checked)){background:var(--bg);border-color:var(--text3);color:var(--text);}
.filter-pill input{display:none;}
.clear-filters-btn{margin-left:auto;background:none;border:none;font-size:.82rem;font-weight:600;color:var(--text3);cursor:pointer;font-family:'DM Sans',sans-serif;padding:8px 4px;min-height:44px;transition:color .15s;}
.clear-filters-btn:hover{color:var(--amber);}


/* CATEGORY GROUPED SECTIONS
   ============================================================ */
.cat-section{margin-bottom:30px;}
.cat-section-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.cat-section-name{font-family:'DM Sans',sans-serif;font-size:1.1rem;font-weight:700;color:var(--text);line-height:1;}
.cat-section-count{font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text3);}
.cat-scroll{display:flex;gap:12px;overflow-x:auto;padding-bottom:6px;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.cat-scroll::-webkit-scrollbar{display:none;}

/* HOME SEARCH BAR
   ============================================================ */
.home-search-wrap{margin-bottom:20px;}
.home-search-row{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:0 16px;transition:border-color .15s,box-shadow .15s;}
.home-search-row:focus-within{border-color:var(--amber);box-shadow:0 0 0 3px rgba(217,101,21,.1);}
.home-s-input{flex:1;border:none;background:none;font-family:'DM Sans',sans-serif;font-size:1rem;font-weight:500;color:var(--text);padding:16px 0;min-height:54px;outline:none;}
.home-s-input::placeholder{color:var(--text3);}
.home-s-clear{border:none;background:none;cursor:pointer;color:var(--text3);padding:4px;display:flex;align-items:center;justify-content:center;min-width:28px;min-height:28px;border-radius:50%;transition:background .15s;}
.home-s-clear:hover{background:var(--bg);color:var(--text);}

/* STRIP SECTION HEADERS
   ============================================================ */
.strip-section-hd{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:13px;}
.strip-section-title{font-family:'DM Sans',sans-serif;font-size:1.25rem;font-weight:700;color:var(--text);letter-spacing:-.02em;}
.strip-section-sub{font-size:.82rem;font-weight:500;color:var(--text3);margin-left:8px;}

/* TILE EXTRA BADGES
   ============================================================ */
.weekly-badge{display:inline-block;font-size:.68rem;font-weight:700;color:var(--teal);letter-spacing:.04em;text-transform:uppercase;margin-top:6px;}
.new-badge{display:inline-block;font-size:.68rem;font-weight:700;color:var(--green);letter-spacing:.04em;text-transform:uppercase;margin-top:6px;margin-left:6px;}

/* EVENT TILES (horizontal category strips)
   ============================================================ */
.event-tile{flex-shrink:0;width:260px;background:var(--surface);border-radius:12px;border:1px solid var(--border);padding:0;overflow:hidden;cursor:pointer;box-shadow:0 1px 3px rgba(28,23,18,.04);transition:transform .15s ease,box-shadow .15s ease;}
.event-tile:hover{transform:translateY(-3px);box-shadow:0 2px 0 var(--border),0 12px 36px rgba(28,26,23,.13);}
.event-tile:active{transform:scale(.97);}
.tile-accent{display:none;}
.tile-body{padding:20px 20px 18px 22px;}
.tile-price{display:inline-block;font-size:.69rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:4px 10px;border-radius:100px;margin-bottom:10px;}
.tile-free{background:var(--green-lt);color:var(--green);}
.tile-paid{background:var(--amber-lt);color:var(--amber);}
.tile-title{font-weight:700;font-size:.92rem;line-height:1.35;color:var(--text);margin-bottom:7px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.tile-date{font-size:.8rem;font-weight:600;color:var(--text2);margin-bottom:2px;}
.tile-time{font-size:.76rem;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:5px;}
.tile-urgent{font-size:.73rem;font-weight:700;color:var(--amber);margin-top:5px;}
.tile-full{font-size:.73rem;font-weight:700;color:var(--red);margin-top:5px;}
.tile-access-badge{display:inline-block;font-size:.69rem;font-weight:700;color:var(--teal);margin-top:6px;letter-spacing:.02em;}


/* PIN / KEYPAD
   ============================================================ */
.pin-row{display:flex;gap:16px;justify-content:center;margin:32px 0 28px;}
.pin-dot{width:20px;height:20px;border-radius:50%;border:2px solid var(--border);transition:all .15s;}
.pin-dot.on{background:var(--amber);border-color:var(--amber);}
.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;max-width:300px;margin:0 auto;}
.key{padding:24px 10px;border-radius:var(--r-sm);border:2px solid var(--border);background:var(--surface);font-family:'DM Sans',sans-serif;font-size:1.9rem;font-weight:700;cursor:pointer;transition:all .12s;color:var(--text);box-shadow:var(--sh-sm);text-align:center;min-height:80px;}
.key:hover{background:var(--amber-lt);border-color:var(--amber);color:var(--amber);}
.key:active{background:var(--amber);color:#fff;border-color:var(--amber);transform:scale(.94);}
.key-action{font-family:'DM Sans',sans-serif;font-size:.95rem;font-weight:700;}


/* OVERLAYS & BOTTOM SHEETS
   ============================================================ */
.overlay{display:none;position:fixed;inset:0;background:rgba(28,26,23,.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:200;align-items:flex-end;}
.overlay.open{display:flex;animation:overlayIn .22s ease;}
@keyframes overlayIn{from{opacity:0;}to{opacity:1;}}
.sheet{background:var(--surface);border-radius:24px 24px 0 0;width:100%;max-height:92vh;overflow-y:auto;padding:0 24px 44px;position:relative;animation:sheetUp .28s cubic-bezier(.22,1,.36,1);}
@keyframes sheetUp{from{transform:translateY(32px);opacity:0;}to{transform:translateY(0);opacity:1;}}
.sheet-handle{width:40px;height:5px;background:var(--border);border-radius:3px;margin:16px auto 22px;cursor:grab;transition:background .15s;}
.sheet-handle:hover{background:var(--text3);}
.sheet-close-btn{position:absolute;top:18px;right:20px;width:36px;height:36px;border-radius:50%;border:none;background:var(--border);color:var(--text2);font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;font-family:sans-serif;transition:background .15s;z-index:1;}
.sheet-close-btn:hover{background:var(--ink-3);color:#fff;}


/* TOAST NOTIFICATION
   ============================================================ */
#toast{position:fixed;bottom:100px;left:50%;transform:translateX(-50%) translateY(8px);background:var(--ink);color:#fff;padding:14px 26px;border-radius:100px;font-size:.95rem;font-weight:500;z-index:99999;opacity:0;pointer-events:none;transition:opacity .4s ease,transform .25s;white-space:nowrap;max-width:calc(100vw - 40px);}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0);}


/* ALERTS
   ============================================================ */
.alert{padding:20px 22px;border-radius:var(--r-sm);font-size:1rem;margin-bottom:22px;line-height:1.8;font-weight:500;box-shadow:0 2px 6px rgba(28,23,18,.06);}
.alert-info{background:var(--teal-lt);color:var(--teal);border:1.5px solid rgba(26,107,107,.25);}
.alert-success{background:var(--green-lt);color:var(--green);border:1.5px solid rgba(45,106,79,.25);}
.alert-warn{background:var(--amber-lt);color:var(--amber);border:1.5px solid rgba(200,98,42,.25);}


/* HOME HERO
   ============================================================ */
.home-hero{background:linear-gradient(135deg,#FFF0DC 0%,#FFE4C0 50%,#E0F6F0 100%);padding:52px 28px 40px;position:relative;overflow:hidden;}
.home-hero::before{content:'';position:absolute;top:-40%;right:-20%;width:400px;height:400px;border-radius:50%;background:radial-gradient(circle,rgba(200,98,42,.20) 0%,transparent 70%);pointer-events:none;}
.home-hero::after{content:'';position:absolute;bottom:-30%;left:-15%;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,rgba(26,107,107,.12) 0%,transparent 70%);pointer-events:none;}
.hero-inner{position:relative;z-index:1;}
.hero-logo{font-family:'DM Serif Display',serif;font-size:3.4rem;color:#2C2420;line-height:1;letter-spacing:-.02em;}
.hero-logo span{color:var(--amber);}
.hero-sub{color:var(--ink-2);font-size:.82rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-top:6px;opacity:.6;}
.hero-desc{color:var(--ink-2);font-size:1rem;line-height:1.75;margin-top:18px;max-width:340px;}
.hero-pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px;}
.hero-pill{padding:7px 16px;border-radius:100px;border:1px solid var(--border);color:var(--text3);font-size:.82rem;font-weight:500;}


/* MY STRIP — Upcoming events
   ============================================================ */
.my-strip{background:var(--surface);border-bottom:1px solid var(--border);padding:18px 22px;}
.my-chip{display:inline-flex;flex-direction:column;gap:4px;background:var(--bg);border:1.5px solid var(--border);border-radius:16px;padding:14px 16px;min-width:160px;cursor:pointer;transition:border-color .2s cubic-bezier(.22,1,.36,1),box-shadow .2s cubic-bezier(.22,1,.36,1),transform .2s cubic-bezier(.22,1,.36,1);flex-shrink:0;}
.my-chip:hover{border-color:var(--amber);box-shadow:0 4px 16px rgba(217,101,21,.15);transform:translateY(-2px);}
.my-chip .ct{font-weight:700;font-size:.9rem;color:var(--text);line-height:1.25;}
.my-chip .cm{font-size:.78rem;color:var(--text3);}


/* EVENT DETAIL CARDS
   ============================================================ */
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border-radius:var(--r);overflow:hidden;border:1px solid var(--border);margin-bottom:18px;}
.detail-cell{background:var(--surface);padding:13px 14px;border-radius:14px;border:1px solid var(--border);box-shadow:0 2px 10px rgba(28,23,18,.07);margin-bottom:8px;}
.detail-cell:last-child{margin-bottom:0;}
.detail-cell .lbl{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);margin-bottom:6px;}
.detail-cell .val{font-size:.95rem;font-weight:600;color:var(--text);line-height:1.35;}
.ev-two-col{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start;margin-bottom:16px;}
.btn-remind-hero{width:100%;padding:12px 20px;background:rgba(255,255,255,.15);color:#fff;border:1.5px solid rgba(255,255,255,.45);border-radius:100px;font-family:'DM Sans',sans-serif;font-size:.95rem;font-weight:600;cursor:pointer;min-height:46px;transition:background .15s;position:relative;z-index:1;margin-top:10px;display:flex;align-items:center;justify-content:center;gap:7px;}
.btn-remind-hero:hover{background:rgba(255,255,255,.25);}
.ev-detail-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;}
.ev-info-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px;}
.ev-info-card-title{font-weight:700;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text3);margin-bottom:10px;}
.ev-info-card-row{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px;}
.ev-info-card-row:last-of-type{margin-bottom:0;}
.ev-info-card-row svg{flex-shrink:0;margin-top:1px;}
.ev-info-card-val{font-size:.9rem;font-weight:600;color:var(--text);line-height:1.4;}
.ev-info-card-sub{font-size:.8rem;color:var(--text3);margin-top:2px;}
.ev-directions-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:10px;background:none;font-family:'DM Sans',sans-serif;font-size:.86rem;font-weight:600;cursor:pointer;margin-top:12px;color:var(--text);transition:border-color .15s,background .15s;}
.ev-directions-btn:hover{border-color:var(--amber);background:var(--amber-lt);}
.ev-contact-link{display:flex;align-items:center;gap:10px;margin-bottom:10px;text-decoration:none;color:var(--teal);font-size:.88rem;font-weight:600;}
.ev-contact-link:last-child{margin-bottom:0;}
.read-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 18px;border-radius:100px;border:2px solid var(--border);background:var(--surface);font-family:'DM Sans',sans-serif;font-size:.9rem;font-weight:700;cursor:pointer;color:var(--text2);transition:all .2s;min-height:48px;}
.read-btn:hover{background:var(--bg);border-color:var(--text3);}
.evt-action-row{display:flex;flex-direction:column;gap:10px;margin-bottom:16px;}
.evt-action-btn{display:flex;align-items:center;gap:12px;padding:16px 20px;border-radius:16px;border:2px solid var(--border);background:var(--surface);font-family:'DM Sans',sans-serif;font-size:1rem;font-weight:700;color:var(--text);cursor:pointer;transition:all .2s cubic-bezier(.22,1,.36,1);text-decoration:none;width:100%;min-height:56px;}
.evt-action-btn:hover{border-color:var(--amber);background:var(--amber-lt);transform:translateX(4px);}
.evt-action-btn.primary{background:linear-gradient(135deg,var(--amber),#C05010);color:#fff;border-color:transparent;box-shadow:0 4px 18px rgba(217,101,21,.35);}
.evt-action-btn.primary:hover{background:linear-gradient(135deg,#C05010,#A84510);transform:translateX(0);box-shadow:0 6px 24px rgba(217,101,21,.45);}


/* LOCATION PILL
   ============================================================ */
.loc-pill{display:inline-flex;align-items:center;gap:8px;background:var(--surface);border:2px solid var(--border);border-radius:100px;padding:10px 18px;font-weight:600;font-size:.9rem;cursor:pointer;transition:border-color .15s,box-shadow .15s;color:var(--text2);white-space:nowrap;box-shadow:0 1px 6px rgba(28,23,18,.06);font-family:'DM Sans',sans-serif;min-height:44px;}
.loc-pill:hover{border-color:var(--amber);box-shadow:0 3px 12px rgba(217,101,21,.14);}


/* NOTIFICATION DOT
   ============================================================ */
.notif-dot{position:absolute;top:8px;right:8px;width:9px;height:9px;border-radius:50%;background:var(--amber);border:2px solid var(--surface);}


/* AVATAR & SETTINGS ROWS
   ============================================================ */
.avatar{width:84px;height:84px;border-radius:50%;background:var(--bg);border:3px solid var(--border);display:flex;align-items:center;justify-content:center;}
.set-row{display:flex;align-items:center;justify-content:space-between;padding:18px 0;border-bottom:1px solid var(--border);}
.set-row:last-child{border-bottom:none;}


/* SPOTS BAR
   ============================================================ */
.spots-bar{height:8px;border-radius:4px;background:var(--border);overflow:hidden;margin-top:10px;}
.spots-fill{height:100%;border-radius:4px;transition:width .5s cubic-bezier(.22,1,.36,1);}
.spots-disclaimer{font-size:.78rem;color:var(--text3);line-height:1.6;padding:10px 14px;background:var(--bg);border-radius:10px;border:1px solid var(--border);margin-top:10px;}
.spot-monitor-badge{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:600;color:var(--teal);background:var(--teal-lt);padding:5px 12px;border-radius:100px;margin-top:8px;}


/* MAP MODAL
   ============================================================ */
.map-opt{display:flex;align-items:center;gap:18px;padding:18px 20px;border-radius:var(--r);border:2px solid var(--border);background:var(--surface);cursor:pointer;font-family:'DM Sans',sans-serif;font-size:1rem;font-weight:700;color:var(--text);transition:all .2s cubic-bezier(.22,1,.36,1);width:100%;margin-bottom:12px;min-height:64px;}
.map-opt:hover{border-color:var(--amber);background:var(--amber-lt);transform:translateY(-2px);box-shadow:0 6px 20px rgba(217,101,21,.15);}
.map-opt-ico{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}


/* PHOTO GRID
   ============================================================ */
.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:22px;}
.photo-cell{height:130px;border-radius:var(--r-sm);overflow:hidden;background:var(--border);}
.photo-cell img{width:100%;height:100%;object-fit:cover;display:block;}


/* SUBSCRIPTION PLANS
   ============================================================ */
.plan-card{border-radius:16px;border:1.5px solid var(--border);padding:24px;margin-bottom:18px;background:var(--surface);cursor:pointer;transition:all .22s cubic-bezier(.22,1,.36,1);position:relative;}
.plan-card:hover{transform:translateY(-3px);box-shadow:0 12px 40px rgba(28,26,23,.12);}
.plan-card.selected{border-color:var(--amber);}
.plan-card.featured{border-color:var(--amber);background:var(--amber-lt);}
.plan-price{font-family:'DM Sans',sans-serif;font-size:2.2rem;font-weight:700;color:var(--amber);}
.plan-per{font-size:.88rem;color:var(--text3);font-weight:500;}
.plan-badge{position:absolute;top:-1px;right:18px;background:linear-gradient(135deg,var(--amber),#C05010);color:#fff;font-size:.75rem;font-weight:700;padding:5px 14px;border-radius:0 0 12px 12px;letter-spacing:.06em;text-transform:uppercase;}
.organizer-plan-card{border-radius:24px;border:2px solid var(--teal);padding:28px;margin-bottom:22px;background:var(--surface);position:relative;overflow:hidden;}
.organizer-plan-card::before{content:'';position:absolute;top:-30px;right:-30px;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,rgba(26,107,107,.12) 0%,transparent 70%);pointer-events:none;}
.org-plan-badge{position:absolute;top:-1px;right:18px;background:var(--teal);color:#fff;font-size:.75rem;font-weight:700;padding:5px 14px;border-radius:0 0 12px 12px;letter-spacing:.06em;text-transform:uppercase;}


/* PAYMENT
   ============================================================ */
.payment-method-btn{display:flex;align-items:center;gap:16px;width:100%;padding:18px 20px;border-radius:var(--r);border:2px solid var(--border);background:var(--surface);cursor:pointer;font-family:'DM Sans',sans-serif;font-size:1rem;font-weight:700;color:var(--text);transition:all .2s cubic-bezier(.22,1,.36,1);margin-bottom:12px;min-height:64px;}
.payment-method-btn:hover{border-color:var(--amber);background:var(--amber-lt);transform:translateY(-1px);}
.payment-method-btn.selected{border-color:var(--amber);background:var(--amber-lt);}
.pay-icon{width:52px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.78rem;flex-shrink:0;}
.pay-stripe{background:#635bff;color:#fff;}
.pay-paypal{background:#003087;color:#fff;}
.pay-card{background:var(--ink);color:#fff;}
.card-field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.secure-badge{display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--text3);font-weight:500;margin-bottom:18px;}


/* PROGRAM CALENDAR
   ============================================================ */
.program-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:18px;}
.cal-header{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:8px;}
.cal-day-label{text-align:center;font-size:.68rem;font-weight:700;letter-spacing:.06em;color:var(--text3);text-transform:uppercase;padding:5px 0;}
.cal-day{aspect-ratio:1;border-radius:10px;border:1.5px solid var(--border);background:var(--surface);display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s cubic-bezier(.22,1,.36,1);color:var(--text2);}
.cal-day:hover:not(.cal-empty){border-color:var(--amber);background:var(--amber-lt);color:var(--amber);transform:scale(1.08);}
.cal-day.cal-selected{background:var(--amber);color:#fff;border-color:var(--amber);font-weight:700;border-radius:14px;}
.cal-day.cal-today{background:var(--amber);color:#fff;border-color:var(--amber);font-weight:700;border-radius:14px;}
.cal-day.cal-empty{background:transparent;border-color:transparent;cursor:default;}
.cal-day.cal-past{opacity:.35;cursor:not-allowed;}
.date-chip-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;}
.date-chip{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:100px;background:var(--amber-lt);color:var(--amber);font-size:.85rem;font-weight:700;border:1.5px solid rgba(200,98,42,.2);}
.date-chip button{background:none;border:none;cursor:pointer;color:var(--amber);font-size:1rem;line-height:1;padding:0;margin-left:3px;min-width:24px;min-height:24px;}


/* MEMBERS-ONLY SECTION
   ============================================================ */
.members-section{background:linear-gradient(135deg,#1E1610 0%,#2C2010 50%,#1A1208 100%);border-radius:var(--r-lg);margin-bottom:22px;padding:24px;position:relative;overflow:hidden;}
.members-section::before{content:'';position:absolute;top:-40px;right:-40px;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(217,101,21,.35) 0%,transparent 70%);pointer-events:none;}
.members-section-header{display:flex;align-items:center;gap:12px;margin-bottom:18px;}
.members-crown{width:38px;height:38px;background:linear-gradient(135deg,var(--amber),#C05010);border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.members-lock{width:36px;height:36px;background:rgba(255,255,255,.08);border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.member-evt-card{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:var(--r);padding:16px;margin-bottom:10px;cursor:pointer;transition:all .2s cubic-bezier(.22,1,.36,1);}
.member-evt-card:hover{background:rgba(255,255,255,.12);transform:translateY(-2px);}
.member-evt-card.locked{cursor:default;filter:blur(0);}
.member-evt-card.locked .mec-title{filter:blur(3px);user-select:none;}
.member-evt-card.locked .mec-meta{filter:blur(2px);user-select:none;}


/* ORGANIZER PORTAL
   ============================================================ */
.org-header{background:linear-gradient(135deg,#1A4040 0%,#0F2828 100%);padding:20px 24px 0;position:sticky;top:0;z-index:50;}
.org-header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.org-nav{display:flex;gap:0;overflow-x:auto;scrollbar-width:none;}
.org-nav::-webkit-scrollbar{display:none;}
.org-tab{flex-shrink:0;padding:12px 18px;color:rgba(255,255,255,.5);font-size:.8rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;border:none;background:none;cursor:pointer;border-bottom:3px solid transparent;font-family:'DM Sans',sans-serif;transition:all .15s;min-height:48px;}
.org-tab.on{color:#fff;border-bottom-color:var(--amber);}
.org-body{padding:24px 22px;background:var(--bg);flex:1;overflow-y:auto;}
.org-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:22px;}
.org-stat{background:var(--surface);border-radius:var(--r);padding:20px;border:1px solid var(--border);}
.org-stat .os-num{font-family:'DM Sans',sans-serif;font-size:2rem;font-weight:700;color:var(--teal);}
.org-stat .os-lbl{font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text3);margin-bottom:4px;}
.org-stat .os-sub{font-size:.78rem;color:var(--text3);margin-top:4px;}
.org-evt-row{background:var(--surface);border-radius:var(--r);border:1px solid var(--border);padding:18px;margin-bottom:12px;}
.org-evt-bar{height:5px;background:var(--border);border-radius:3px;margin-top:10px;overflow:hidden;}
.org-evt-bar-fill{height:100%;background:var(--teal);border-radius:3px;transition:width .4s;}
.org-panel{display:none;}.org-panel.on{display:block;}

/* ── Organizer mini calendar ── */
.org-cal{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);overflow:hidden;}
.org-cal-nav{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border);}
.org-cal-nav button{background:none;border:none;cursor:pointer;color:var(--text2);font-size:1.2rem;width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background .1s;line-height:1;}
.org-cal-nav button:hover{background:var(--bg);}
.org-cal-nav span{font-weight:700;font-size:.86rem;color:var(--text);}
.org-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;padding:8px;}
.org-cal-dh{text-align:center;font-size:.58rem;font-weight:700;color:var(--text3);padding:4px 0;letter-spacing:.04em;text-transform:uppercase;}
.org-cal-day{aspect-ratio:1;border:none;background:none;border-radius:8px;font-size:.8rem;cursor:pointer;color:var(--text2);transition:background .1s;position:relative;font-family:'DM Sans',sans-serif;font-weight:500;display:flex;align-items:center;justify-content:center;}
.org-cal-day:hover{background:var(--bg);}
.org-cal-day.today{font-weight:800;color:var(--amber);}
.org-cal-day.has-event::after{content:'';position:absolute;bottom:3px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:var(--teal);}
.org-cal-day.sel{background:var(--teal)!important;color:#fff!important;font-weight:700;}
.org-cal-day.sel::after{background:rgba(255,255,255,.7);}
.org-cal-day.past{opacity:.5;}
.org-cal-filter{padding:8px 12px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
/* Compact variant */
.org-cal-sm .org-cal-nav{padding:6px 10px;}
.org-cal-sm .org-cal-nav button{width:24px;height:24px;font-size:1rem;}
.org-cal-sm .org-cal-nav span{font-size:.76rem;}
.org-cal-sm .org-cal-grid{padding:4px;gap:1px;}
.org-cal-sm .org-cal-dh{font-size:.5rem;padding:2px 0;}
.org-cal-sm .org-cal-day{font-size:.72rem;border-radius:5px;}
.org-cal-sm .org-cal-filter{padding:5px 10px;}
.org-cal-sm .org-cal-day.has-event::after{bottom:2px;width:3px;height:3px;}

/* ── AM/PM toggle ── */
.ampm-toggle{display:grid;grid-template-columns:1fr 1fr;border:2px solid var(--border);border-radius:var(--r-sm);overflow:hidden;box-shadow:0 2px 5px rgba(28,23,18,.06);}
.ampm-btn{background:none;border:none;padding:0;font-size:.84rem;font-weight:700;cursor:pointer;color:var(--text3);font-family:'DM Sans',sans-serif;transition:background .12s,color .12s,box-shadow .12s;min-height:44px;}
.ampm-btn.on{background:var(--teal);color:#fff;box-shadow:inset 0 1px 3px rgba(13,79,79,.2);}
.ampm-btn:not(.on):hover{background:var(--bg);}


/* ORGANIZER PORTAL — Full screen on desktop
   ============================================================ */
@media(min-width:1024px){
  #s-org-portal.active{
    position:fixed;inset:0;z-index:300;
    width:100vw;height:100vh;overflow:hidden;
  }
  #s-org-portal .org-body{padding:32px 52px;max-width:1200px;margin:0 auto;width:100%;}
  #s-org-portal .org-stat-grid{grid-template-columns:repeat(4,1fr);}
  #s-org-portal .org-header{padding:20px 52px 0;}
}


/* GET LISTED WIZARD
   ============================================================ */
.wizard-step{display:none;}
.wizard-step.active{display:block;}
.wizard-progress{display:flex;gap:8px;margin-bottom:26px;}
.wizard-dot{flex:1;height:5px;border-radius:3px;background:var(--border);transition:background .3s;}
.wizard-dot.done{background:var(--teal);}
.wizard-dot.active{background:var(--amber);}
.listing-type-btn{display:flex;align-items:center;gap:16px;width:100%;padding:20px;border-radius:var(--r);border:2px solid var(--border);background:var(--surface);cursor:pointer;font-family:'DM Sans',sans-serif;text-align:left;transition:all .2s cubic-bezier(.22,1,.36,1);margin-bottom:12px;min-height:72px;}
.listing-type-btn:hover,.listing-type-btn.selected{border-color:var(--teal);background:var(--teal-lt);transform:translateY(-2px);}
.listing-type-ico{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1.5rem;}


/* ADMIN DASHBOARD
   ============================================================ */
.adm-header{background:#111008;color:#fff;padding:16px 24px;display:flex;align-items:center;justify-content:space-between;}
.adm-nav{background:#1A1610;display:flex;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid rgba(255,255,255,.08);}
.adm-nav::-webkit-scrollbar{display:none;}
.adm-tab{flex-shrink:0;padding:14px 18px;color:rgba(255,255,255,.45);font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;border:none;background:none;cursor:pointer;border-bottom:3px solid transparent;font-family:'DM Sans',sans-serif;transition:all .15s;min-height:52px;}
.adm-tab.on{color:#fff;border-bottom-color:var(--amber);}
.adm-tab.adm-tab-owner{color:rgba(200,98,42,.5);}
.adm-tab.adm-tab-owner.on{color:var(--amber);}
.adm-body{padding:24px 20px;background:#F0EDE9;min-height:calc(100vh - 108px);flex:1;}
.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px;}
.stat-tile{background:#fff;border-radius:var(--r);padding:20px;border:1px solid #E4DDD4;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.stat-tile-inner{flex:1;min-width:0;}
.stat-num{font-family:'DM Serif Display',serif;font-size:2rem;color:#1C1A17;line-height:1.1;margin:4px 0;}
.stat-lbl{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#9E9A94;margin-bottom:2px;}
.stat-sub{font-size:.78rem;color:#9E9A94;margin-top:4px;}
.stat-sub.positive{color:#22C55E;}
.stat-sub.warn{color:var(--amber);}
.stat-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.stat-tile.blue{border-left:4px solid #3B82F6;}
.stat-tile.blue .stat-icon{background:#EFF6FF;}
.stat-tile.green{border-left:4px solid #22C55E;}
.stat-tile.green .stat-icon{background:#F0FDF4;}
.stat-tile.purple{border-left:4px solid #A855F7;}
.stat-tile.purple .stat-icon{background:#FAF5FF;}
.stat-tile.amber{border-left:4px solid var(--amber);}
.stat-tile.amber .stat-icon{background:#FFF7ED;}
.adm-table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--r);overflow:hidden;border:1px solid #E4DDD4;}
.adm-table th{background:#F7F3EE;padding:12px 16px;text-align:left;font-size:.72rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#9E9A94;border-bottom:1px solid #E4DDD4;}
.adm-table td{padding:13px 16px;border-bottom:1px solid #F7F3EE;font-size:.9rem;vertical-align:middle;color:#1C1A17;}
.adm-table tr:last-child td{border-bottom:none;}
.adm-table tr:hover td{background:#FDFAF7;}
.adm-panel{display:none;}.adm-panel.on{display:block;}
.adm-card{background:#fff;border-radius:var(--r);border:1px solid #E4DDD4;padding:22px;margin-bottom:14px;}


/* APP LAYOUT
   ============================================================ */
#app-outer{display:flex;min-height:100vh;background:var(--bg);}
#app-center{flex:1;min-height:100vh;display:flex;flex-direction:column;}
#app-center > .screen{flex:1;}
body.guest-mode #app-center{padding-bottom:52px;}


/* UTILITIES
   ============================================================ */
.hidden{display:none!important;}
.mt-8{margin-top:8px;}
.mt-12{margin-top:12px;}
.mt-16{margin-top:16px;}
.mb-16{margin-bottom:16px;}


/* RESPONSIVE — Mobile (max 639px)
   ============================================================ */
@media(max-width:639px){
  /* Zoom-out effect: reduce base font size so more content fits on screen */
  html{font-size:15px;}
  /* Fix iOS Safari 100vh bug: bottom nav gets hidden behind browser chrome */
  .screen{min-height:100dvh;}
  #app-center{min-height:100dvh;}
}

/* RESPONSIVE — Tablet (640px+)
   ============================================================ */
@media(min-width:640px){
  .stat-grid{grid-template-columns:repeat(4,1fr);}
  .content{padding:32px 28px;}
}

/* RESPONSIVE — Desktop (1024px+)
   ============================================================ */
@media(min-width:1024px){
  body{background:#2C2925;}
  #app-outer{display:flex;justify-content:stretch;align-items:flex-start;min-height:100vh;gap:0;}
  #app-center{flex:1;min-width:0;min-height:100vh;background:var(--bg);box-shadow:0 0 80px rgba(0,0,0,.4);}
  .content{max-width:100%;padding:32px 36px;}
  .adm-body{padding:32px 36px;}
  .screen{min-height:100vh;}
}

/* ============================================================
   TAB VISUAL DEPTH & SENIOR-FRIENDLY REFINEMENTS
   ============================================================ */

/* Home greeting row */
#tab-home .content > div:first-child{
  background:linear-gradient(135deg,var(--amber-lt) 0%,#FFFBF5 100%);
  border-radius:20px;
  padding:22px 20px;
  border:1.5px solid rgba(217,101,21,.16);
  box-shadow:0 4px 18px rgba(217,101,21,.1);
}

#home-greeting{
  font-family:'DM Serif Display',serif;
  font-size:1.8rem;
  color:var(--ink);
  line-height:1.2;
}

/* Search tab */
.search-bar-wrap{
  display:flex;align-items:center;gap:10px;
  background:var(--surface);border:2px solid var(--border);border-radius:16px;
  padding:0 16px;min-height:56px;margin-bottom:14px;
}
.search-bar-wrap:focus-within{border-color:var(--amber);box-shadow:0 0 0 4px rgba(217,101,21,.10);}
.search-bar-icon{width:20px;height:20px;stroke:var(--text3);fill:none;stroke-width:2;flex-shrink:0;}
.search-bar-input{flex:1;border:none;background:none;font-family:'DM Sans',sans-serif;font-size:1rem;font-weight:500;color:var(--text);padding:16px 0;outline:none;}
.search-bar-input::placeholder{color:var(--text3);}
.search-bar-clear{background:none;border:none;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;color:var(--text3);}
.search-bar-clear svg{stroke:currentColor;fill:none;stroke-width:2;}
/* Filter chips row */
.search-filter-row{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin-bottom:12px;padding-bottom:2px;}
.search-filter-row::-webkit-scrollbar{display:none;}
.search-filter-chip{
  display:inline-flex;align-items:center;gap:5px;white-space:nowrap;
  padding:8px 14px;border-radius:100px;
  background:none;border:1.5px solid var(--border);
  font-family:'DM Sans',sans-serif;font-size:.82rem;font-weight:600;color:var(--text2);cursor:pointer;
}
.search-filter-chip.on{background:var(--amber);border-color:var(--amber);color:#fff;}
/* Category chips row */
.search-cat-row{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin-bottom:18px;padding-bottom:2px;}
.search-cat-row::-webkit-scrollbar{display:none;}
.search-cat-chip{
  display:inline-flex;align-items:center;gap:6px;white-space:nowrap;
  padding:8px 14px;border-radius:100px;
  background:var(--surface);border:1.5px solid var(--border);
  font-family:'DM Sans',sans-serif;font-size:.82rem;font-weight:600;color:var(--text);cursor:pointer;
}
.search-cat-chip.on{border-color:var(--text);background:var(--text);color:var(--bg);}
.search-cat-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
/* Recent/popular search sections */
.search-section-label{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);margin-bottom:10px;}
.search-recent-list{display:flex;flex-direction:column;gap:0;}
.search-recent-item{
  display:flex;align-items:center;gap:12px;
  padding:14px 4px;border:none;background:none;cursor:pointer;
  font-family:'DM Sans',sans-serif;font-size:.92rem;font-weight:500;color:var(--text);
  border-bottom:1px solid var(--border);width:100%;text-align:left;
}
.search-recent-item span{flex:1;}
.search-popular-row{display:flex;gap:8px;flex-wrap:wrap;}
.search-popular-chip{
  padding:8px 16px;border-radius:100px;
  background:none;border:1.5px solid var(--border);
  font-family:'DM Sans',sans-serif;font-size:.82rem;font-weight:600;color:var(--text2);cursor:pointer;
}
.search-popular-chip:hover{border-color:var(--text3);}

/* Calendar tab */
#tab-cal > h2:first-child{
  padding-bottom:16px;
  border-bottom:3px solid var(--teal);
}

/* Profile section labels */
.profile-section-label{
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--text3);
  margin:24px 0 10px;
  display:block;
}

/* Profile card */
.prof-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:24px;margin-bottom:4px;}
.prof-card-top{display:flex;align-items:center;gap:16px;}
.prof-avatar{
  width:60px;height:60px;border-radius:50%;background:var(--amber);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  cursor:pointer;overflow:hidden;
}
.prof-info{flex:1;min-width:0;}
.prof-name{font-family:'DM Sans',sans-serif;font-weight:700;font-size:1.15rem;color:var(--text);margin-bottom:2px;}
.prof-since{font-size:.82rem;color:var(--text3);margin-bottom:6px;}
.prof-badge{
  display:inline-flex;align-items:center;gap:5px;
  padding:4px 12px;border-radius:100px;
  border:1.5px solid var(--amber);
  font-size:.68rem;font-weight:700;letter-spacing:.06em;
  color:var(--amber);background:none;
}
.prof-stats-divider{height:1px;background:var(--border);margin:18px 0;}
.prof-stats{display:grid;grid-template-columns:1fr 1fr 1fr;text-align:center;gap:8px;}
.prof-stat-num{font-family:'DM Sans',sans-serif;font-size:1.6rem;font-weight:800;color:var(--text);line-height:1;margin-bottom:4px;}
.prof-stat-label{font-size:.62rem;font-weight:700;letter-spacing:.1em;color:var(--text3);}

/* Profile settings rows */
.prof-group{
  background:var(--surface);border:1px solid var(--border);border-radius:16px;
  overflow:hidden;margin-bottom:4px;
}
.prof-row{
  display:flex;align-items:center;gap:14px;
  padding:18px 20px;cursor:pointer;
  border-bottom:1px solid rgba(200,98,42,.12);
  transition:background .12s;
}
.prof-row:hover{background:rgba(0,0,0,.02);}
.prof-row-last{border-bottom:none;}
.prof-row-icon{
  width:42px;height:42px;border-radius:12px;
  background:rgba(196,94,26,.1);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.prof-row-icon svg{stroke:var(--amber);fill:none;stroke-width:1.8;}
.prof-row-text{flex:1;min-width:0;}
.prof-row-title{font-family:'DM Sans',sans-serif;font-weight:600;font-size:.95rem;color:var(--text);}
.prof-row-sub{font-size:.8rem;color:var(--text3);margin-top:2px;}
.prof-row-chevron{
  width:18px;height:18px;stroke:var(--text3);fill:none;stroke-width:2;
  flex-shrink:0;
}
.prof-row .toggle{margin-left:auto;}

/* Cards */
.card{
  box-shadow:0 2px 0 var(--border),0 6px 28px rgba(28,23,18,.07);
  margin-bottom:18px;
}

/* Bottom nav active state */
.nav-item.active{
  color:var(--amber);
  background:rgba(217,101,21,.05);
}
.nav-item.active::before{
  width:40px;
  height:3px;
}

/* My strip */
.my-chip:hover{border-color:var(--amber);background:var(--amber-lt);}
.my-chip .ct{font-weight:700;}

/* Loc pill */
.loc-pill{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 18px;border-radius:100px;
  background:var(--surface);border:2px solid var(--border);
  font-size:.9rem;font-weight:700;cursor:pointer;
  color:var(--text2);white-space:nowrap;
  box-shadow:0 1px 6px rgba(28,23,18,.06);
  transition:border-color .15s,box-shadow .15s;
  font-family:'DM Sans',sans-serif;
  min-height:44px;
}
.loc-pill:hover{border-color:var(--amber);box-shadow:0 3px 12px rgba(217,101,21,.14);}

/* EVENT DETAIL — Hero layout
   ============================================================ */
.screen#s-event{padding:0;}
.screen#s-event.active{flex-direction:column;}
.event-hero{
  flex-shrink:0;
  padding:env(safe-area-inset-top,16px) 24px 28px;
  padding-top:calc(env(safe-area-inset-top,0px) + 20px);
  background:linear-gradient(160deg,#E8601A 0%,#A84010 55%,#7A2A08 100%);
  color:#fff;
  position:relative;
  overflow:hidden;
}
.event-hero::after{
  content:'';
  position:absolute;
  top:-60px;right:-60px;
  width:220px;height:220px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,200,100,.22) 0%,transparent 70%);
  pointer-events:none;
}
.ev-hero-nav{
  display:flex;align-items:flex-start;justify-content:space-between;
  margin-bottom:18px;
  position:relative;z-index:1;
}
.back-btn{
  width:48px;height:48px;border-radius:50%;
  border:2px solid rgba(255,255,255,.35);
  background:rgba(255,255,255,.15);
  cursor:pointer;display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:1.2rem;flex-shrink:0;
  transition:background .15s,transform .2s cubic-bezier(.22,1,.36,1);
  backdrop-filter:blur(4px);
}
.back-btn:hover{background:rgba(255,255,255,.28);transform:scale(1.08);}
#ev-tags{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;}
.ev-hero-title{
  font-family:'DM Sans',sans-serif;
  font-size:1.8rem;color:#fff;line-height:1.15;
  margin:0 0 10px;font-weight:700;letter-spacing:-.3px;
  position:relative;z-index:1;
}
.ev-hero-venue{
  color:rgba(255,255,255,.8);font-size:.95rem;
  margin-bottom:24px;font-weight:500;
  position:relative;z-index:1;
}
.btn-rsvp-hero{
  width:100%;padding:18px 24px;
  background:#fff;color:var(--ink);
  border:none;border-radius:100px;
  font-family:'DM Sans',sans-serif;font-size:1.1rem;font-weight:700;
  cursor:pointer;min-height:60px;
  transition:opacity .15s,transform .18s cubic-bezier(.22,1,.36,1);
  box-shadow:0 6px 24px rgba(0,0,0,.22);
  letter-spacing:.01em;
  position:relative;z-index:1;
}
.btn-rsvp-hero:active{transform:scale(.97);}
.btn-rsvp-hero.reserved{background:rgba(255,255,255,.2);color:#fff;border:2px solid rgba(255,255,255,.45);}
.ev-body{flex:1;overflow-y:auto;background:var(--bg);padding-bottom:32px;}
.rsvp-success-banner{
  background:var(--teal-lt);
  border:2px solid rgba(26,144,144,.3);
  border-radius:18px;padding:18px 20px;margin-bottom:20px;
  color:var(--teal);font-weight:700;font-size:1rem;
}
.ev-disclaimer{
  font-size:.82rem;color:var(--text3);line-height:1.7;
  padding:14px 18px;background:var(--surface);
  border-radius:14px;border:1px solid var(--border);
}
.bs-brand-inline{
  display:inline-flex;align-items:center;gap:2px;
  font-family:'DM Serif Display',Georgia,serif;
  font-weight:400;color:var(--ink);
}
.bs-brand-inline em{color:#D96515;font-style:normal;}

/* PROFILE — Organizer promo card
   ============================================================ */
.org-promo-card{
  background:linear-gradient(135deg,var(--teal-lt) 0%,#F0FBFB 100%);
  border-radius:22px;
  border:2px solid rgba(26,144,144,.22);
  padding:22px 20px;margin-bottom:18px;
  display:flex;flex-direction:column;gap:14px;
}
.org-promo-icon{font-size:1.8rem;line-height:1;}
.org-promo-title{font-weight:700;font-size:1.05rem;color:var(--ink);margin-bottom:4px;}
.org-promo-sub{font-size:.92rem;color:var(--text2);line-height:1.5;}
.org-promo-actions{display:flex;gap:10px;flex-wrap:wrap;}
.org-promo-actions button{
  flex:1;min-width:120px;
  padding:13px 16px;border-radius:100px;
  font-family:'DM Sans',sans-serif;font-size:.92rem;font-weight:700;
  cursor:pointer;border:none;min-height:52px;
}
.org-promo-actions button:first-child{background:var(--teal);color:#fff;}
.org-promo-actions button:last-child{background:transparent;color:var(--teal);border:2px solid var(--teal);}

/* SEARCH — Suggest strip
   ============================================================ */
.suggest-strip{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:20px;background:var(--surface);border-radius:12px;
  margin-top:20px;border:1px solid var(--border);
}
.suggest-strip span{font-size:.95rem;color:var(--text2);line-height:1.5;flex:1;}
.suggest-strip button{
  white-space:nowrap;padding:12px 18px;border-radius:100px;
  background:linear-gradient(135deg,var(--amber),#C05010);color:#fff;border:none;
  font-family:'DM Sans',sans-serif;font-size:.92rem;font-weight:700;cursor:pointer;
  min-height:52px;
}

/* RSVP CELEBRATION OVERLAY
   ============================================================ */
.rsvp-celebration{
  position:fixed;inset:0;z-index:9999;
  display:flex;align-items:center;justify-content:center;
  background:rgba(30,22,16,.55);
  animation:fadeInCel .25s ease;
}
@keyframes fadeInCel{from{opacity:0}to{opacity:1}}
.rsvp-cel-card{
  background:#fff;border-radius:28px;
  padding:42px 32px;max-width:340px;width:90%;
  text-align:center;
  animation:popUpCel .36s cubic-bezier(.34,1.56,.64,1);
  box-shadow:0 24px 64px rgba(28,23,18,.22);
}
@keyframes popUpCel{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}
.rsvp-cel-emoji{font-size:3.5rem;margin-bottom:12px;}
.rsvp-cel-title{
  font-family:'DM Serif Display',serif;font-size:1.6rem;
  color:var(--ink);margin-bottom:10px;
}
.rsvp-cel-sub{font-size:1rem;color:var(--text2);line-height:1.6;margin-bottom:28px;}
.rsvp-cel-close{
  width:100%;padding:16px 24px;
  background:linear-gradient(135deg,var(--amber),#C05010);color:#fff;
  border:none;border-radius:100px;
  font-family:'DM Sans',sans-serif;font-size:1.05rem;font-weight:700;cursor:pointer;
  min-height:58px;box-shadow:0 4px 18px rgba(217,101,21,.35);
}

/* TODAY STRIP — Reserve button on cards
   ============================================================ */
.today-card-wrap{
  min-width:172px;max-width:172px;min-height:160px;
  padding:16px;background:var(--surface);
  border-radius:18px;border:1.5px solid var(--border);
  flex-shrink:0;display:flex;flex-direction:column;
  cursor:pointer;
  transition:border-color .2s cubic-bezier(.22,1,.36,1),box-shadow .2s cubic-bezier(.22,1,.36,1),transform .2s cubic-bezier(.22,1,.36,1);
  animation:cardEntry .38s cubic-bezier(.22,1,.36,1) both;
}
.today-card-wrap:hover{border-color:var(--amber);box-shadow:0 6px 24px rgba(217,101,21,.18);transform:translateY(-3px);}
.today-card-info{flex:1;display:flex;flex-direction:column;gap:5px;margin-bottom:10px;}
.today-card-cat{font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;}
.today-card-title{font-size:.92rem;font-weight:700;line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.today-card-time{font-size:.8rem;color:var(--text2);font-weight:500;}
.today-card-spots{font-size:.75rem;font-weight:700;display:inline-block;padding:3px 9px;border-radius:100px;margin-top:3px;align-self:flex-start;}
.today-card-spots.full{background:var(--red-lt);color:var(--red);}
.today-card-spots.low{background:var(--amber-lt);color:var(--amber);}
.today-rsvp-btn{
  width:100%;padding:10px 0;border-radius:100px;
  background:linear-gradient(135deg,var(--amber),#C05010);color:#fff;
  border:none;font-family:'DM Sans',sans-serif;
  font-size:.82rem;font-weight:700;cursor:pointer;
  transition:opacity .15s,transform .2s cubic-bezier(.22,1,.36,1);flex-shrink:0;
  text-align:center;min-height:44px;
}
.today-rsvp-btn:hover{opacity:.88;transform:scale(1.02);}
.today-rsvp-btn.reserved{background:linear-gradient(135deg,var(--teal),#116868);}
.today-rsvp-btn:disabled{background:var(--border);color:var(--text3);cursor:default;transform:none;}

/* PROFILE — Toggle rows with depth
   ============================================================ */
.card .set-row{
  padding:16px 18px;
  border-bottom:none;
  border-radius:14px;
  border:1.5px solid var(--border);
  margin-bottom:10px;
  transition:border-color .15s;
}
.card .set-row:last-of-type{margin-bottom:0;}
#notif-card .set-row{border-color:rgba(217,101,21,.15);}
.card[style*="Display"] .set-row,
.card .set-row:has(#a-dark),
.card .set-row:has(#a-text),
.card .set-row:has(#a-contrast){border-color:rgba(26,144,144,.15);}

/* ORGANIZER LOGIN — split layout (mirrors s-login)
   ============================================================ */
#s-org-login{
  display:none;flex-direction:row;min-height:100vh;overflow:hidden;
}
#s-org-login.active{display:flex !important;}
.ol-left{
  flex:0 0 55%;position:relative;overflow:hidden;
  background:#1A1209 url('org-couple.jpg') center/cover no-repeat;
  display:flex;align-items:flex-start;padding:52px 48px;min-height:100vh;
}
.ol-left-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(8,6,3,.72) 0%,rgba(12,9,4,.25) 40%,rgba(26,144,144,.12) 100%);
  z-index:1;
}
.ol-left-content{position:relative;z-index:2;color:#fff;padding-top:32px;}
.ol-left-eyebrow{
  font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.55);margin-bottom:18px;
  display:flex;align-items:center;gap:10px;
}
.ol-left-eyebrow::before{content:'';width:24px;height:2px;background:var(--teal);border-radius:2px;}
.ol-left-heading{
  font-family:'DM Serif Display',serif;
  font-size:clamp(2rem,3.5vw,3rem);
  font-weight:400;line-height:1.12;
  letter-spacing:-.025em;color:#fff;margin-bottom:18px;
}
.ol-left-heading em{font-style:italic;color:var(--teal);}
.ol-left-sub{font-size:1rem;color:rgba(255,255,255,.65);max-width:320px;line-height:1.7;}
.ol-right{
  flex:1;background:#EDE8E1;display:flex;align-items:center;justify-content:center;
  padding:52px 40px;overflow-y:auto;-webkit-overflow-scrolling:touch;position:relative;
}
.ol-right-inner{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:stretch;}
.ol-tabs{
  display:flex;gap:0;margin-bottom:30px;
  background:rgba(0,0,0,.06);border-radius:10px;padding:4px;
}
.ol-tab{
  flex:1;padding:11px 0;font-family:'DM Sans',sans-serif;font-size:.88rem;font-weight:600;
  color:rgba(44,36,32,.45);background:none;border:none;border-radius:8px;
  cursor:pointer;transition:all .2s ease;text-align:center;
}
.ol-tab.active{
  color:var(--teal);background:#fff;
  box-shadow:0 1px 4px rgba(0,0,0,.08);
}
.ol-tab:hover:not(.active){color:rgba(44,36,32,.7);}
.ol-panel{display:none;}
.ol-panel.active{display:block;}
.ol-card{width:100%;}
.ol-title{
  font-family:'DM Serif Display',serif;
  font-size:1.65rem;color:var(--text);margin-bottom:6px;letter-spacing:-.02em;
}
.ol-tagline{font-size:.9rem;color:var(--text3);margin-bottom:26px;letter-spacing:.01em;}
.ol-signin-btn{
  display:flex;align-items:center;justify-content:center;gap:10px;
  background:linear-gradient(135deg,var(--teal),#168080);color:#fff;
  font-weight:700;min-height:52px;border-radius:var(--r-sm);border:none;cursor:pointer;
  font-family:'DM Sans',sans-serif;font-size:.95rem;
  box-shadow:0 3px 12px rgba(26,144,144,.2);transition:background .15s,box-shadow .15s;
}
.ol-signin-btn:hover{background:linear-gradient(135deg,#168080,#126a6a);box-shadow:0 5px 16px rgba(26,144,144,.28);}
.ol-forgot{text-align:center;margin-top:14px;}
.ol-top-bar{
  position:absolute;top:0;left:0;right:0;padding:20px 28px;
  display:flex;align-items:center;justify-content:space-between;
}
.ol-back-top{
  display:flex;align-items:center;gap:4px;
  font-size:.82rem;font-weight:600;color:var(--text3);text-decoration:none;
  font-family:'DM Sans',sans-serif;cursor:pointer;
}
.ol-back-top:hover{color:var(--text2);}
@media(max-width:720px){
  #s-org-login{flex-direction:column !important;}
  .ol-left{flex:0 0 auto;min-height:240px;padding:32px 26px;align-items:flex-start;}
  .ol-left-heading{font-size:1.85rem;}
  .ol-right{padding:40px 24px;}
}

/* LOGIN PAGE — Split Payoneer-style layout
   ============================================================ */
#s-login{
  flex-direction:row !important;
  min-height:100vh;
  overflow:hidden;
}
/* Left: full-bleed image panel */
.sl-left{
  flex:0 0 55%;
  position:relative;
  overflow:hidden;
  background:#1A1209 url('chess.jpg') center/cover no-repeat;
  display:flex;
  align-items:flex-start;
  padding:52px 48px;
  min-height:100vh;
}
.sl-left-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(8,6,3,.72) 0%,rgba(12,9,4,.25) 40%,rgba(217,101,21,.12) 100%);
  z-index:1;
}
.sl-left-content{position:relative;z-index:2;color:#fff;padding-top:32px;}
.sl-left-eyebrow{
  font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.55);margin-bottom:18px;
  display:flex;align-items:center;gap:10px;
}
.sl-left-eyebrow::before{content:'';width:24px;height:2px;background:#D96515;border-radius:2px;}
.sl-left-heading{
  font-family:'DM Serif Display',serif;
  font-size:clamp(2rem,3.5vw,3rem);
  font-weight:400;line-height:1.12;
  letter-spacing:-.025em;
  color:#fff;margin-bottom:18px;
}
.sl-left-heading em{font-style:italic;color:#D96515;}
.sl-left-sub{
  font-size:1rem;color:rgba(255,255,255,.6);
  max-width:320px;line-height:1.7;
}
/* Right: clean form panel */
.sl-right{
  flex:1;
  background:#EDE8E1;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:52px 40px;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  position:relative;
}
.sl-right-inner{
  width:100%;max-width:360px;
  display:flex;flex-direction:column;
  margin-top:52px;
}
.sl-logo{
  font-family:'DM Serif Display',serif;
  font-size:1.7rem;color:var(--ink);
  letter-spacing:-.01em;margin-bottom:40px;
  display:inline-flex;align-items:center;gap:10px;
}
.sl-logo span{color:var(--amber);}
.sl-card{width:100%;}
.sl-title{
  font-family:'DM Serif Display',serif;
  font-size:1.9rem;font-weight:400;
  color:var(--ink);margin-bottom:6px;
}
.sl-tagline{font-size:.9rem;color:var(--text3);margin-bottom:26px;letter-spacing:.01em;}
.sl-signin-btn{
  display:flex;align-items:center;justify-content:center;gap:8px;
  background:linear-gradient(135deg,#D96515,#C05510);
  box-shadow:0 5px 20px rgba(217,101,21,.4);
  border-radius:50px;font-size:1rem;min-height:60px;
}
.sl-signin-btn:hover{background:linear-gradient(135deg,#c05510,#a84510);box-shadow:0 5px 16px rgba(217,101,21,.28);}
.sl-forgot{text-align:center;margin-top:12px;}
.sl-register-row{
  font-size:.9rem;color:var(--text3);
  margin-top:28px;text-align:center;
}
.sl-register-link{
  background:none;border:none;
  font-family:'DM Sans',sans-serif;
  font-size:.9rem;font-weight:700;
  color:var(--amber);cursor:pointer;
}
/* Top bar — back link + logo aligned in a row */
.sl-top-bar{
  position:absolute;top:0;left:0;right:0;
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 26px;
}
.sl-back-top{
  display:inline-flex;align-items:center;gap:6px;
  font-family:'DM Sans',sans-serif;font-size:.88rem;
  color:var(--text3);text-decoration:none;
  transition:color .15s;padding:8px 6px;min-height:44px;
}
.sl-back-top:hover{color:var(--text2);}
.sl-logo-corner{
  font-family:'DM Serif Display',serif;
  font-size:1.1rem;color:var(--ink);
  letter-spacing:-.01em;
  display:inline-flex;align-items:center;gap:8px;
}
/* Organization portal row */
.sl-org-row{
  display:flex;flex-direction:column;align-items:center;
  gap:12px;margin-top:18px;
}
.sl-org-divider{
  display:flex;align-items:center;width:100%;gap:12px;
}
.sl-org-divider::before,.sl-org-divider::after{
  content:'';flex:1;height:1px;background:var(--rule,#EAD9C8);
}
.sl-org-divider span{font-size:.8rem;color:var(--text3);letter-spacing:.04em;}
.sl-org-btn{
  width:100%;
  display:flex;align-items:center;justify-content:center;gap:8px;
  background:none;
  border:2px solid rgba(26,144,144,.35);
  border-radius:12px;
  font-family:'DM Sans',sans-serif;font-size:.9rem;font-weight:700;
  color:var(--teal, #1A9090);cursor:pointer;
  padding:14px 18px;min-height:56px;
  transition:background .15s,border-color .15s;
}
.sl-org-btn:hover{background:var(--teal-lt,#E0F6F6);border-color:rgba(26,144,144,.6);}
/* Forgot password — centered */
.sl-forgot{text-align:center;margin-top:14px;}
@media(max-width:520px){
  #s-login{flex-direction:column !important;}
  .sl-left{flex:0 0 auto;min-height:220px;padding:28px 26px;align-items:flex-start;}
  .sl-left-content{padding-top:16px;}
  .sl-left-heading{font-size:1.65rem;}
  .sl-right{padding:36px 24px;}
}

/* REGISTER — clean, collapsible privacy
   ============================================================ */
.reg-privacy-toggle{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 18px;
  background:var(--amber-lt);
  border:2px solid rgba(217,101,21,.22);
  border-radius:12px;
  cursor:pointer;
  font-size:.95rem;font-weight:700;color:var(--ink);
  margin-bottom:18px;
  user-select:none;
  list-style:none;
  min-height:52px;
}
.reg-privacy-toggle::-webkit-details-marker{display:none;}
.reg-privacy-body{
  padding:16px 18px;
  background:rgba(255,240,220,.35);
  border:1px solid rgba(217,101,21,.15);
  border-top:none;
  border-radius:0 0 12px 12px;
  font-size:.9rem;color:var(--text2);
  line-height:1.7;
  margin-top:-18px;
  margin-bottom:18px;
}
.reg-section-lbl{
  font-size:.75rem;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--text3);
  margin:22px 0 12px;
}

/* HOME HERO (combined greeting + weather)
   ============================================================ */
.home-hero-wrap{background:transparent;border:none;border-radius:0;padding:0;margin-bottom:18px;}
.home-hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:6px;}
.home-greeting-text{font-family:'Fraunces','DM Serif Display',serif;font-size:1.6rem;font-weight:400;line-height:1.2;margin:0;}
.home-date-text{font-size:.8rem;color:var(--text3);font-weight:500;margin-top:2px;}
.wx-inline-row{
  display:flex;align-items:center;gap:8px;
  padding:8px 12px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:14px;
  margin-top:8px;
}

/* CATEGORY ACCORDION
   ============================================================ */
.cat-acc-item{margin-bottom:8px;}
.cat-acc-btn{
  display:flex;align-items:center;gap:10px;
  width:100%;padding:13px 16px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--r-sm);
  cursor:pointer;
  font-family:'DM Sans',sans-serif;
  text-align:left;
  transition:background .15s;
}
.cat-acc-btn:hover{background:var(--bg);}
.cat-acc-btn.open{border-radius:var(--r-sm) var(--r-sm) 0 0;}
.cat-acc-btn.open .cat-acc-arrow{transform:rotate(180deg);}
.cat-acc-arrow{transition:transform .2s;}
.cat-acc-name{font-size:.92rem;font-weight:800;letter-spacing:.01em;flex:1;}
.cat-acc-count{font-size:.78rem;font-weight:600;color:var(--text3);white-space:nowrap;}
.cat-acc-body{
  background:var(--surface);
  border:1px solid var(--border);
  border-top:none;
  border-radius:0 0 var(--r-sm) var(--r-sm);
  padding:4px 0 4px;
  overflow:hidden;
}
.cat-acc-body .event-card{border-radius:0;border:none;border-bottom:1px solid var(--border);margin-bottom:0;}
.cat-acc-body .event-card:last-child{border-bottom:none;}

/* DATE CALENDAR BUTTON
   ============================================================ */
.date-cal-btn{
  display:flex;align-items:center;justify-content:center;
  width:38px;height:38px;flex-shrink:0;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:10px;
  color:var(--text2);cursor:pointer;
  transition:background .15s,color .15s,border-color .15s;
}
.date-cal-btn:hover{background:var(--bg);}
.date-cal-btn.active{background:var(--amber-lt);color:var(--amber);border-color:rgba(217,101,21,.35);}

/* CALENDAR TAB
   ============================================================ */
.cal-card{
  background:var(--surface);border:1px solid var(--border);border-radius:16px;
  padding:24px 20px 18px;
}
.cal-card-header{
  display:flex;align-items:flex-start;justify-content:space-between;
  margin-bottom:20px;gap:12px;
}
.cal-label{
  font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--text3);margin-bottom:4px;
}
.cal-title-row{display:flex;align-items:center;gap:8px;}
.cal-month-title{
  font-family:'DM Sans',sans-serif;font-size:1.6rem;font-weight:800;
  color:var(--text);margin:0;letter-spacing:-.3px;white-space:nowrap;
}
.cal-nav-arrow{
  display:flex;align-items:center;justify-content:center;
  width:32px;height:32px;background:none;border:none;
  color:var(--text2);cursor:pointer;border-radius:8px;
  transition:background .15s;flex-shrink:0;
}
.cal-nav-arrow svg{stroke:currentColor;fill:none;stroke-width:2.5;}
.cal-nav-arrow:hover{background:var(--bg);}

/* Month/Week toggle */
.cal-view-toggle{
  display:flex;background:var(--bg);border-radius:100px;padding:4px;gap:0;
  border:1px solid var(--border);flex-shrink:0;
}
.cal-view-btn{
  padding:8px 18px;border-radius:100px;border:none;background:none;
  font-family:'DM Sans',sans-serif;font-size:.82rem;font-weight:600;
  color:var(--text2);cursor:pointer;transition:all .15s;line-height:1;
}
.cal-view-btn.active{background:var(--ink);color:#fff;}

/* Day-of-week header */
.cal-dow-row{
  display:grid;grid-template-columns:repeat(7,1fr);
  margin-bottom:4px;padding:0 2px;
}
.cal-dow-row > div{
  text-align:center;font-size:.72rem;font-weight:700;
  color:var(--text3);padding:6px 0;
}

/* Calendar grid — month view */
.cal-grid{
  display:grid;grid-template-columns:repeat(7,1fr);
  gap:0;padding:0 2px;
}
.cal-grid .cal-cell{
  display:flex;flex-direction:column;align-items:center;
  justify-content:flex-start;padding:8px 4px 10px;
  min-height:72px;cursor:pointer;transition:background .12s;
  border-radius:0;position:relative;
}
.cal-grid .cal-cell:hover{background:rgba(0,0,0,.03);}
.cal-grid .cal-cell.cal-blank{cursor:default;}
.cal-grid .cal-cell.cal-blank:hover{background:none;}
.cal-grid .cal-num{
  font-family:'DM Sans',sans-serif;font-size:1rem;font-weight:600;
  color:var(--text2);line-height:1;
  width:42px;height:42px;display:flex;align-items:center;justify-content:center;
  border-radius:12px;transition:all .12s;
}
.cal-grid .cal-cell.cal-today .cal-num{
  color:var(--amber);font-weight:700;
}
.cal-grid .cal-cell.cal-today.cal-sel .cal-num,
.cal-grid .cal-cell.cal-sel .cal-num{
  background:var(--amber);color:#fff;font-weight:700;border-radius:14px;
  box-shadow:0 4px 12px rgba(196,94,26,.3);
}
.cal-grid .cal-dots{display:flex;gap:3px;margin-top:5px;}
.cal-grid .cal-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;}

/* Week view grid */
.cal-week-grid{
  display:grid;grid-template-columns:repeat(7,1fr);
  gap:0;padding:0 2px;
}
.cal-week-cell{
  display:flex;flex-direction:column;align-items:center;
  padding:12px 4px 10px;cursor:pointer;transition:background .12s;gap:6px;
}
.cal-week-cell:hover{background:rgba(0,0,0,.03);}
.cal-week-day{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text3);}
.cal-week-num{
  font-family:'DM Sans',sans-serif;font-size:1.1rem;font-weight:700;
  color:var(--text);line-height:1;
  width:42px;height:42px;display:flex;align-items:center;justify-content:center;
  border-radius:50%;transition:all .12s;
}
.cal-week-cell.is-today .cal-week-num{
  color:var(--amber);font-weight:800;
}
.cal-week-cell.is-today.is-sel .cal-week-num,
.cal-week-cell.is-sel .cal-week-num{
  background:var(--amber);color:#fff;border-radius:14px;
  box-shadow:0 4px 12px rgba(196,94,26,.3);
}

/* Day events detail panel */
.cal-day-detail{
  background:var(--surface);border:1px solid var(--border);border-radius:16px;
  padding:24px 20px;margin-top:16px;
}
.cal-day-detail-header{margin-bottom:16px;}
.cal-day-detail-header h3{
  font-family:'DM Sans',sans-serif;font-weight:700;font-size:1.15rem;
  color:var(--text);margin:0 0 2px;
}
.cal-day-detail .event-card{margin-bottom:10px;}
.cal-day-empty{text-align:center;padding:20px 12px;color:var(--text3);font-size:.88rem;}
