/* Brand system derived from the existing isyour.club door/ticket wordmark.
   Original logo files are reused without drawing, recoloring or distortion. */
@font-face{font-family:Club Inter;src:url('./brand/inter.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:Club Sora;src:url('./brand/sora.woff2') format('woff2');font-weight:100 900;font-display:swap}

:root,
:root[data-theme=light]{
  --bg:#f6f5fb;--paper:#ffffff;--ink:#081637;--muted:#60697f;
  --line:#e2e3ef;--green:#6036ee;--light:#efebff;
  --orange:#935014;--orange-bg:#fff1df;--purple:#6036ee;
  --sidebar:#f0f0f8;--surface-soft:#f8f8fc;--surface-hover:#f0edfc;
  --accent:#6036ee;--accent-text:#5930da;--accent-wash:#ede8ff;
  --accent-border:#d8ccff;--accent-icon:#ddd3ff;--accent-strong:#ffffff;
  --nav-active:#e6dfff;--nav-text:#4d27c6;--nav-count:#d7c9ff;
  --success:#256249;--success-bg:#e5f4ed;
  --warning:#935014;--warning-bg:#fff1df;--warning-border:#efdbc0;
  --danger:#a63c48;--danger-bg:#fcebef;
  --chrome:rgba(255,255,255,.93);--shadow:0 3px 18px #14204405;
  --focus:#6036ee;--hero-bg:linear-gradient(110deg,#ede8ff,#f3efff 62%,#e9e9fb);
  --hero-ink:#372075;--hero-muted:#65568b;
}
:root[data-theme=dark]{
  --bg:#080e20;--paper:#121a30;--ink:#f3f2fc;--muted:#acb4ce;
  --line:#29314c;--green:#b29aff;--light:#292044;
  --orange:#f0bc7d;--orange-bg:#35291e;--purple:#b29aff;
  --sidebar:#0d1428;--surface-soft:#161f36;--surface-hover:#1e2541;
  --accent:#784bff;--accent-text:#bca6ff;--accent-wash:#281f46;
  --accent-border:#48366f;--accent-icon:#3a2864;--accent-strong:#ffffff;
  --nav-active:#2a214a;--nav-text:#d0bfff;--nav-count:#443168;
  --success:#8cdbb5;--success-bg:#19352e;
  --warning:#f0bc7d;--warning-bg:#35291e;--warning-border:#55422f;
  --danger:#ffa4b0;--danger-bg:#3b2434;
  --chrome:rgba(13,20,40,.95);--shadow:0 5px 24px #00000012;
  --focus:#bca6ff;--hero-bg:linear-gradient(110deg,#292044,#241e40 62%,#1b2240);
  --hero-ink:#e1d7ff;--hero-muted:#bfb1dc;
}

body{font-family:Club Inter,system-ui,sans-serif;background:var(--bg);color:var(--ink)}
h1,h2,h3,.stat strong,.brand,.day-block b{font-family:Club Sora,system-ui,sans-serif}
h1{font-size:30px;font-weight:650;letter-spacing:-1.15px}
h2,h3{font-weight:600;letter-spacing:-.45px}
p,small,.small,.date-label,.breadcrumb,.search-button,.support-note,.legend,.stat-top{color:var(--muted)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:var(--focus)}
.skip{background:var(--paper);color:var(--ink)}

/* A rounded doorway silhouette and ticket violet define the app chrome. */
#sidebar{background:var(--sidebar);border-color:var(--line);padding-top:18px}
.brand{padding:0;margin:0 0 18px;display:block;position:relative;height:75px;overflow:hidden}
.brand img{position:absolute;width:210px;max-width:none;height:auto;left:-3px;top:-4px}
.logo-dark{display:none}
[data-theme=dark] .logo-light{display:none}
[data-theme=dark] .logo-dark{display:block}
.mobile-brand{display:none}
.org{background:var(--paper);border-color:var(--line);border-radius:13px;margin-bottom:26px}
.org-icon{background:var(--accent-wash);color:var(--accent-text);border-radius:11px 11px 5px 5px}
.eyebrow,.section-label{color:var(--muted);font-size:10px;letter-spacing:1.3px}
.navlink{color:var(--muted);border-radius:10px;min-height:46px}
.navlink:hover{background:var(--surface-hover);color:var(--ink)}
.navlink.active{background:var(--nav-active);color:var(--nav-text);box-shadow:inset 3px 0 var(--accent)}
.navlink .count{background:var(--nav-count);color:var(--nav-text)}
.profile{border-color:var(--line)}
.avatar,.avatar.green,.avatar.purple{background:var(--accent-wash);color:var(--accent-text)}
#topbar{background:var(--chrome);border-color:var(--line)}
.breadcrumb b{color:var(--ink)}
.demo-tag{background:var(--accent-wash);color:var(--accent-text);white-space:nowrap;letter-spacing:.5px}
kbd{border-color:var(--line);color:var(--muted)}
.theme-switch{display:flex;padding:3px;gap:2px;border:1px solid var(--line);background:var(--surface-soft);border-radius:11px}
.theme-switch button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:36px;min-width:38px;padding:7px 10px;font-size:11px;color:var(--muted);border-radius:8px}
.theme-switch button svg{width:16px;height:16px}
.theme-switch button[aria-pressed=true]{background:var(--accent-wash);color:var(--accent-text);box-shadow:0 1px 5px #0000000a}
.theme-switch button:hover{color:var(--ink)}
.icon-btn,.btn{background:var(--paper);border-color:var(--line);color:var(--ink);border-radius:10px}
.btn.primary{background:#6036ee;border-color:#6036ee;color:white;box-shadow:0 3px 9px #6036ee18}
[data-theme=dark] .btn.primary{background:#7145ef;border-color:#8a62fa}
.btn.soft{background:var(--accent-wash);border-color:var(--accent-border);color:var(--accent-text)}
.btn:hover{filter:brightness(1.04)}
.text-link{color:var(--accent-text)}

.hero{background:var(--hero-bg);border-color:var(--accent-border);border-radius:18px 18px 12px 12px;position:relative;overflow:hidden}
.hero h2{color:var(--hero-ink)}
.hero p{color:var(--hero-muted)}
.hero-mark{background:var(--accent-icon);color:var(--accent-text);border-radius:14px 14px 6px 6px}
.hero>.btn{position:relative}
.stat,.panel,.feature-card,.quick-link,.event-heading,.catalog-item{background:var(--paper);border-color:var(--line);box-shadow:var(--shadow)}
.stat{border-radius:14px}
.stat strong{font-weight:600;font-size:28px}
.stat-top svg{color:var(--accent-text)}
.stat .positive{color:var(--success)}
.panel{border-radius:16px}
.panel-head small{font-family:Club Inter,system-ui,sans-serif;font-weight:400;letter-spacing:0}
.tabs,.task-row,.event-mini,.panel-footer{border-color:var(--line)}
.tab{color:var(--muted)}
.tab.active{color:var(--accent-text);border-bottom-color:var(--accent)}
.group-label{background:var(--surface-soft);color:var(--muted)}
.task-body strong{font-size:13px;font-weight:550}
.task-body small{font-size:11px}
.task-row:hover{background:var(--surface-soft)}
.task-check{border-color:var(--muted)}
.task-row.done .task-check{background:var(--accent);border-color:var(--accent)}
.task-row.done .task-check:after{content:'✓';position:absolute;transform:translate(-6px,-38px);color:white;font-size:13px}
.task-row.done strong{color:var(--muted)}
.panel-footer{background:var(--surface-soft)}
.pill{background:var(--success-bg);color:var(--success)}
.pill.gray{background:var(--surface-hover);color:var(--muted)}
.pill.purple{background:var(--accent-wash);color:var(--accent-text)}
.pill.orange{background:var(--warning-bg);color:var(--warning)}
.pill.red{background:var(--danger-bg);color:var(--danger)}
.day-block{background:var(--accent-wash);border-color:var(--accent-border);color:var(--accent-text);border-radius:10px 10px 5px 5px}
.day-block b{color:var(--accent-text)}
.event-mini strong{font-size:13px;font-weight:550}
.quick-link svg,.quick-link span:last-child{color:var(--accent-text)}
.quick-link:hover,.catalog-item:hover{background:var(--surface-hover);border-color:var(--accent-border)}
.demo-footer,.demo-footer button{color:var(--muted)}

input,textarea,select,.select{background:var(--paper);color:var(--ink);border-color:var(--line);border-radius:9px}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}
.segmented{background:var(--surface-hover)}
.segmented .active{background:var(--paper);color:var(--accent-text)}
.calendar{background:var(--paper);border-color:var(--line)}
.weekday,.calendar-cell{border-color:var(--line);color:var(--muted)}
.calendar-cell.empty{background:var(--surface-soft)}
.calendar-cell.today{background:var(--accent-wash)}
.today .day-num{background:var(--accent);color:white}
.cal-event{background:var(--accent-wash);color:var(--accent-text);border-color:var(--accent)}
.cal-event.orange{background:var(--warning-bg);color:var(--warning);border-color:var(--warning)}
.cal-event.purple{background:var(--surface-hover);color:var(--muted);border-color:var(--muted)}
.legend span:before{background:var(--accent)}
.legend span:nth-child(2):before{background:var(--warning)}
.legend span:nth-child(3):before{background:var(--muted)}
.event-art{background:radial-gradient(ellipse at 100% 100%,#764aff,transparent 65%),linear-gradient(150deg,#071633,#262050);color:#faf7ff;border-radius:15px 15px 6px 6px;font-family:Club Sora,system-ui,sans-serif}
.steps{background:var(--line);border-color:var(--line);border-radius:13px}
.step{background:var(--paper)}
.step.active{background:var(--accent-wash)}
.step-number{border-color:var(--line);color:var(--muted)}
.step.active .step-number{background:var(--accent);border-color:var(--accent);color:white}
.step.active b{color:var(--accent-text)}
.subnav .active{background:var(--accent-wash);border-color:var(--accent-border);color:var(--accent-text)}
.feature-card{border-radius:16px 16px 10px 10px}
.feature-card:hover{border-color:var(--accent);background:var(--surface-soft)}
.feature-card .feature-icon{background:var(--accent-wash);color:var(--accent-text);border-radius:12px 12px 5px 5px}
.feature-card .card-bottom{color:var(--accent-text)}
.data-table th{background:var(--surface-soft);color:var(--muted)}
.data-table td{border-color:var(--line)}
.data-table tr:hover td{background:var(--surface-soft)}
.notice{background:var(--warning-bg);border-color:var(--warning-border);color:var(--ink)}
.notice svg{color:var(--warning)}
.flow-row,.metric-line{border-color:var(--line)}
.progress{background:var(--surface-hover)}
.progress span{background:var(--accent)}
.bar{background:var(--accent-icon)}
.bar:last-child{background:var(--accent)}
.catalog-id{color:var(--muted)}
.empty-state{color:var(--muted)}
.empty-state h3{color:var(--ink)}
dialog{background:var(--paper);color:var(--ink);border-color:var(--line);box-shadow:0 24px 100px #02071770}
dialog::backdrop{background:#030b227a}
.dialog-header,.dialog-footer{border-color:var(--line)}
.dialog-footer,.detail-summary{background:var(--surface-soft)}
.detail-summary{border-color:var(--line)}
.check-row input{accent-color:var(--accent)}
#toast{background:var(--ink);color:var(--paper);box-shadow:0 8px 35px #030b2233}

@media(max-width:1150px){.brand img{width:186px;left:-7px;top:0}.brand{height:69px}.top-actions{gap:8px}.search-button span,kbd{display:none}}
@media(max-width:850px){.theme-switch button span{display:none}.demo-tag{display:none}}
@media(max-width:640px){
  #topbar{height:66px;padding:0 15px;gap:8px;background:var(--chrome)}
  #topbar>.breadcrumb{display:none}
  .mobile-brand{display:block;position:relative;width:132px;height:48px;overflow:hidden;flex:none}
  .mobile-brand img{position:absolute;width:145px;max-width:none;height:auto;left:-5px;top:-5px}
  .top-actions{gap:7px;margin-left:auto}
  .theme-switch{padding:2px}
  .theme-switch button{min-width:32px;min-height:36px;padding:6px}
  .theme-switch button span{display:none}
  .top-actions .icon-btn{width:34px;height:40px}
  .search-button{width:26px}
  #mobile-nav{background:var(--chrome);border-color:var(--line)}
  #mobile-nav a{color:var(--muted)}
  #mobile-nav a.active{color:var(--accent-text)}
  #mobile-nav a.active svg{background:var(--accent-wash);box-shadow:0 0 0 6px var(--accent-wash)}
  .page-heading h1{font-size:27px}
  .hero>.btn{background:transparent;border:0}
  .task-body strong{font-size:12px}
  .task-body small{font-size:10px}
  .event-heading>div:nth-child(2){flex:1;min-width:0}
  .event-heading .event-art{padding:8px}
  .event-heading .event-art>span{font-size:12px;letter-spacing:-.65px;line-height:1.1}
}
@media(max-width:359px){#topbar{padding:0 10px}.mobile-brand{width:115px}.mobile-brand img{width:132px;top:-2px}.top-actions{gap:4px}.search-button{width:23px}.top-actions .icon-btn{width:31px}.theme-switch button{min-width:29px}}
