:root{
  --bg:#0a0b0c;
  --panel:#111315;
  --panel-2:#15181b;
  --panel-3:#1a1e22;
  --text:#f2f0e8;
  --muted:#969991;
  --line:rgba(242,240,232,.095);
  --accent:#d8c58e;
  --accent-2:#9fb8a0;
  --accent-3:#a7b6cb;
  --shadow:0 22px 70px rgba(0,0,0,.42);
  --r:18px;
}
html{background:var(--bg)}
body{
  background:
    radial-gradient(circle at 50% -20%,rgba(216,197,142,.09),transparent 34rem),
    linear-gradient(rgba(255,255,255,.012),rgba(255,255,255,0) 28rem),
    var(--bg);
  color:var(--text);
}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.23;background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.012) 0 1px,transparent 1px 4px);mix-blend-mode:soft-light}
body.modal-open{overflow:hidden;overscroll-behavior:none;touch-action:none}
body.modal-open .app-shell{overscroll-behavior:none}
.ambient{opacity:.36;background-size:48px 48px;mask-image:linear-gradient(to bottom,black,transparent 62%)}
.topbar{height:calc(68px + var(--safe-top));padding:calc(11px + var(--safe-top)) 16px 11px;background:rgba(10,11,12,.9);border-bottom:1px solid var(--line);box-shadow:0 1px 0 rgba(0,0,0,.5);backdrop-filter:blur(22px) saturate(115%)}
.brand{gap:11px}.brand-mark{width:38px;height:38px;border-radius:11px;background:#171a1c;border:1px solid rgba(216,197,142,.28);color:var(--accent);box-shadow:inset 0 0 0 1px rgba(255,255,255,.025),0 8px 30px rgba(0,0,0,.32)}
.brand-mark svg{width:23px;height:23px;display:block}.brand-mark path,.brand-mark line{vector-effect:non-scaling-stroke}
.brand-copy{line-height:1}.brand-copy small{font-size:7px;letter-spacing:.38em;color:#888b85;font-weight:800}.brand-copy strong{font-family:Georgia,"Times New Roman",serif;font-size:16px;letter-spacing:.075em;font-weight:700;margin-top:4px}
.icon-button,.sync-pill{background:#121416;border-color:var(--line);box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}
.sync-pill.cloud{color:#c7cfbf;border-color:rgba(159,184,160,.2)}
.main-content{width:min(880px,100%);padding:20px 16px calc(108px + var(--safe-bottom))}
.bottom-nav{width:min(880px,100%);padding:7px 10px calc(7px + var(--safe-bottom));background:rgba(10,11,12,.94);border-top:1px solid var(--line);backdrop-filter:blur(24px)}
.nav-item{color:#757a77;padding:7px 2px;transition:color .16s ease,background .16s ease,transform .16s ease}.nav-item:active{transform:translateY(1px)}.nav-item.active{color:var(--accent);background:rgba(216,197,142,.05)}.nav-icon{font-size:18px}.nav-item small{font-size:8px;letter-spacing:.1em}
.kicker{color:var(--accent);font-size:9px;letter-spacing:.2em;font-weight:800}.hero{padding:14px 2px 10px}.hero h1{font-family:Georgia,"Times New Roman",serif;font-weight:600;letter-spacing:-.035em;line-height:.98}.hero p{max-width:650px;color:#9fa19c}
.section{margin-top:24px}.section-head h2{font-family:Georgia,"Times New Roman",serif;font-weight:600;font-size:20px}
.card,.quest-row,.stat-card,.attempt-row,.trip-card{background:#121416;border-color:var(--line);box-shadow:inset 0 1px 0 rgba(255,255,255,.018),0 10px 30px rgba(0,0,0,.12)}
.quest-row,.trip-card{border-radius:16px}.quest-row:hover,.trip-card:hover{border-color:rgba(216,197,142,.18)}
.action-card{min-height:128px;padding:15px;border-radius:16px}.action-card.accent{background:linear-gradient(145deg,rgba(216,197,142,.105),rgba(159,184,160,.035));border-color:rgba(216,197,142,.19)}.action-icon{font-size:25px;color:var(--accent)}
.primary-btn,.secondary-btn,.danger-btn,.ghost-btn{border-radius:12px;min-height:44px;letter-spacing:.01em}.primary-btn{background:var(--accent);color:#11120f;box-shadow:inset 0 1px 0 rgba(255,255,255,.42)}.primary-btn:hover{filter:brightness(1.035)}.secondary-btn{background:#171a1c}.ghost-btn{color:#a2a59e}.text-btn{color:var(--accent)}
.search,.field input,.field textarea,.field select{background:#0d0f11;border-color:var(--line);border-radius:12px}.search:focus,.field input:focus,.field textarea:focus,.field select:focus{border-color:rgba(216,197,142,.4);box-shadow:0 0 0 3px rgba(216,197,142,.065)}
.filter{background:#101214}.filter.active{background:var(--accent);color:#11120f}.pill{background:#0e1012}.pill.major{color:#e1cf9c}.pill.mini{color:#acc7ae}

/* Home: the log book should feel like one instrument, not a dashboard of unrelated widgets. */
.logbook-hero{position:relative;padding:18px 0 12px}.logbook-hero:after{content:"";display:block;width:52px;height:1px;background:var(--accent);opacity:.7;margin-top:18px}.logbook-hero h1{font-size:clamp(36px,9vw,58px);margin:8px 0 9px}.logbook-hero p{margin:0;max-width:620px}.logbook-stamp{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:7px 10px;border:1px solid var(--line);border-radius:999px;color:#aeb1aa;font-size:10px;font-weight:800;letter-spacing:.055em;text-transform:uppercase}.logbook-stamp .sync-dot{flex:0 0 auto}
.command-deck{display:grid;grid-template-columns:1.18fr .82fr;gap:10px;margin-top:16px}.command-primary{min-height:170px;padding:19px;display:flex;flex-direction:column;justify-content:space-between;border-radius:17px;border:1px solid rgba(216,197,142,.23);background:linear-gradient(145deg,rgba(216,197,142,.12),rgba(216,197,142,.025) 70%),#121416;cursor:pointer}.command-primary .command-symbol{font-family:Georgia,serif;font-size:38px;color:var(--accent);line-height:1}.command-primary strong{font-family:Georgia,serif;font-size:23px;font-weight:600}.command-primary p{color:var(--muted);font-size:12px;line-height:1.45;margin:6px 0 0}.command-stack{display:grid;gap:10px}.command-small{min-height:80px;padding:13px 14px;border:1px solid var(--line);border-radius:15px;background:#121416;display:flex;align-items:center;gap:12px;cursor:pointer}.command-small .command-symbol{width:32px;text-align:center;color:var(--accent);font-size:21px}.command-small strong{display:block;font-size:14px}.command-small small{display:block;color:var(--muted);font-size:10px;line-height:1.35;margin-top:3px}.logbook-links{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.logbook-link{padding:12px;border-radius:13px;background:#101214;border:1px solid var(--line);text-align:left;color:var(--text);min-height:70px}.logbook-link strong{font-size:12px;display:block}.logbook-link small{font-size:9px;color:var(--muted);display:block;margin-top:4px;line-height:1.35}.ledger-strip{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:15px;overflow:hidden;background:#101214}.ledger-cell{padding:12px 9px;border-right:1px solid var(--line)}.ledger-cell:last-child{border-right:0}.ledger-cell b{font-family:Georgia,serif;font-size:21px;font-weight:500;display:block}.ledger-cell span{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.09em}
.group-card{padding:14px 15px;border:1px solid rgba(159,184,160,.18);background:rgba(159,184,160,.035);border-radius:15px;display:flex;align-items:center;justify-content:space-between;gap:12px}.group-card strong{font-size:13px}.group-card p{font-size:10px;color:var(--muted);margin:3px 0 0}.group-card .secondary-btn{flex:0 0 auto}

/* Spin room */
.spin-room{max-width:720px;margin:0 auto}.spin-room .wheel-stage{padding-bottom:4px}.spin-room .segmented{max-width:360px;margin:0 auto 16px;background:#0d0f11}.spin-room .segmented button.active{background:#1c2023;color:var(--text);box-shadow:inset 0 0 0 1px rgba(216,197,142,.12)}
.spin-board{border:1px solid var(--line);background:#101214;border-radius:20px;padding:16px;box-shadow:0 24px 70px rgba(0,0,0,.22)}
.wheels{gap:12px;margin:6px 0 15px}.wheel-shell{position:relative}.wheel-shell.single{max-width:330px;margin:0 auto}.wheel-shell.single .wheel{width:220px;margin:0 auto}.wheel-shell.single .wheel-result{min-height:126px;margin-top:13px;padding:14px}.wheel-shell.single .wheel-result strong{font-size:18px}.wheel-shell.single .wheel-result small{font-size:11px}.wheel-shell.single .mini-actions button{min-height:39px;font-size:11px}
.pointer{border-left-width:8px;border-right-width:8px;border-top:13px solid var(--accent);filter:drop-shadow(0 3px 4px rgba(0,0,0,.45))}
.wheel{position:relative;background:conic-gradient(from 0deg,#d8c58e 0 42deg,#22272a 42deg 88deg,#9fb8a0 88deg 133deg,#181c1f 133deg 178deg,#c4b47f 178deg 223deg,#252a2d 223deg 268deg,#8da790 268deg 313deg,#171a1c 313deg 360deg);border-color:rgba(216,197,142,.18);box-shadow:inset 0 0 0 8px #0d0f11,inset 0 0 0 9px rgba(255,255,255,.04),0 16px 40px rgba(0,0,0,.36);transition:transform 1.28s cubic-bezier(.12,.72,.08,1)}
.wheel:before{content:"QL";position:absolute;inset:35%;border-radius:50%;background:#0f1113;border:1px solid rgba(216,197,142,.18);display:grid;place-items:center;color:var(--accent);font-family:Georgia,serif;font-weight:700;font-size:clamp(9px,2vw,15px);letter-spacing:.05em;transform:rotate(0deg)}
.wheel-shell.is-spinning .wheel{filter:saturate(.88);box-shadow:inset 0 0 0 8px #0d0f11,inset 0 0 0 9px rgba(255,255,255,.04),0 18px 45px rgba(0,0,0,.5)}
.wheel-shell.is-spinning .wheel-result{opacity:.42;filter:blur(1.3px);transform:translateY(2px)}
.wheel-result{transition:opacity .18s ease,filter .18s ease,transform .18s ease;background:#0f1113;border-color:var(--line)}
.wheel-result strong{font-size:12px}.spin-placeholder{display:grid;place-items:center;min-height:82px;text-align:center;color:var(--muted)}.spin-placeholder b{display:block;color:#c8c9c4;font-family:Georgia,serif;font-size:15px;font-weight:500}.spin-placeholder small{display:block;margin-top:5px}.spin-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.spin-actions .primary-btn,.spin-actions .secondary-btn{width:100%}.spin-meta{text-align:center;font-size:10px;color:var(--muted);margin-top:12px}.spin-live-note{display:flex;align-items:center;justify-content:center;gap:7px;margin:2px 0 14px;color:#9fa79e;font-size:9px;text-transform:uppercase;letter-spacing:.09em;font-weight:800}.spin-live-note .sync-dot{background:var(--success)}

/* Bottom sheets */
.modal-backdrop{background:rgba(0,0,0,.76);backdrop-filter:blur(10px);overscroll-behavior:contain;touch-action:none}
.modal{position:relative;background:#111315;border-color:rgba(242,240,232,.11);border-radius:24px 24px 0 0;padding:9px 16px calc(22px + var(--safe-bottom));box-shadow:0 -28px 90px rgba(0,0,0,.58);overscroll-behavior:contain;touch-action:pan-y;transition:transform .18s ease,opacity .18s ease}
.modal.closing{transform:translateY(105%);opacity:.5}.modal.dragging{transition:none}.modal-grab{width:58px;height:26px;margin:0 auto 4px;position:relative;background:transparent;cursor:grab;touch-action:none}.modal-grab:before{content:"";position:absolute;width:38px;height:4px;border-radius:999px;background:#555b5b;left:50%;top:9px;transform:translateX(-50%);transition:width .15s ease,background .15s ease}.modal-grab:hover:before{width:46px;background:#7b807c}.modal-grab:active{cursor:grabbing}.modal-head{padding-top:2px}.modal-head h2{font-family:Georgia,"Times New Roman",serif;font-weight:600;letter-spacing:-.02em}.modal-backdrop.drag-active{background:rgba(0,0,0,.58)}
.close-btn{border-radius:11px;background:#181b1e;border-color:var(--line)}
.choice{background:#0f1113;border-radius:13px}.detail-section{border-color:var(--line)}

@media(max-width:620px){
  .main-content{padding-left:13px;padding-right:13px}
  .command-deck{grid-template-columns:1fr}.command-primary{min-height:146px}.command-stack{grid-template-columns:1fr 1fr}.command-small{min-height:86px}
  .logbook-links{grid-template-columns:1fr 1fr 1fr}.logbook-link{padding:10px;min-height:67px}
  .ledger-cell{padding:10px 6px}.ledger-cell b{font-size:19px}.ledger-cell span{font-size:7px}
  .wheels{gap:6px}.spin-board{padding:12px}.wheel-result{padding:9px 6px}.wheel-shell.single .wheel{width:min(220px,66vw)}
  .group-card{align-items:flex-start;flex-direction:column}.group-card .secondary-btn{width:100%}
}
@media(max-width:410px){
  .brand-copy strong{font-size:14px}.sync-pill{padding:0 8px}.sync-pill #syncText{display:none}
  .command-stack{grid-template-columns:1fr}.logbook-links{grid-template-columns:1fr}.logbook-link{min-height:auto}
  .ledger-strip{grid-template-columns:repeat(2,1fr)}.ledger-cell:nth-child(2){border-right:0}.ledger-cell:nth-child(-n+2){border-bottom:1px solid var(--line)}
}
@media(prefers-reduced-motion:reduce){.wheel,.modal,.action-card,.nav-item{transition:none!important;animation:none!important}}
