:root{color-scheme:dark;--bg:#060b11;--panel:#0c1b27;--panel2:#102738;--line:#2e556d;--gold:#f2c75a;--text:#f5f8fa;--muted:#9fb2bf;--green:#58dfa5;--blue:#6bbcff;--red:#ff7777;--shadow:0 18px 55px #0008;font-family:Inter,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;color:var(--text);background:radial-gradient(circle at 12% -10%,#1a405c 0,#07111a 38%,#060b11 75%);min-height:100vh}.app{display:grid;grid-template-columns:270px 1fr;min-height:100vh}.side{position:sticky;top:0;height:100vh;padding:22px;border-right:1px solid var(--line);background:#071019eb;backdrop-filter:blur(18px);overflow:auto}.brand{font-weight:900;letter-spacing:.13em;color:var(--gold)}.mode{margin:24px 0 10px;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.12em}.nav{display:grid;gap:7px}.nav button{width:100%;text-align:left}.main{padding:clamp(16px,3vw,38px);min-width:0}.top{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:24px}.pill,.tag{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:6px 10px;color:var(--muted);font-size:.86rem}.live{color:var(--green)}h1{font-size:clamp(2.7rem,7vw,6.5rem);line-height:.88;color:var(--gold);margin:.2em 0}h2{color:var(--gold);margin-top:0}h3{margin:.2em 0}.muted{color:var(--muted)}button{border:1px solid var(--line);background:#143247;color:var(--text);border-radius:12px;min-height:44px;padding:10px 13px;font-weight:800;cursor:pointer}button:hover,button.active{border-color:var(--gold);background:#1c435c}.view{display:none}.view.active{display:block}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:14px}.card{background:linear-gradient(150deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:var(--shadow);min-width:0}.wide{grid-column:1/-1}.metric{font-size:2.4rem;font-weight:900}.person{border-left:5px solid var(--green)}.person.dm{border-left-color:var(--gold)}.person.owner{border-left-color:var(--blue)}.list{display:grid;gap:10px}.item{border:1px solid #25465b;background:#081620;border-radius:12px;padding:12px}.edge{border-left:2px solid var(--line);margin-left:18px;padding-left:18px}.graph-node{border:1px solid var(--line);background:#091721;border-radius:13px;padding:13px;margin:8px 0}.graph-node.root{border-color:var(--blue);box-shadow:0 0 28px #6bbcff18}.graph-node.dm{border-color:var(--gold)}label{display:block;margin:10px 0;color:var(--muted)}input,textarea,select{display:block;width:100%;margin-top:6px;border:1px solid var(--line);border-radius:10px;background:#06111a;color:var(--text);padding:11px;font:inherit}textarea{min-height:110px}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.bar{height:9px;border-radius:999px;background:#07111a;overflow:hidden;border:1px solid #24465b}.bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--green))}.status-pass{color:var(--green)}.status-block{color:var(--red)}.toast{position:fixed;right:18px;bottom:18px;background:#102b3d;border:1px solid var(--gold);padding:13px 16px;border-radius:12px;box-shadow:var(--shadow);display:none;z-index:20}.toast.show{display:block}.mobile-head{display:none}@media(max-width:850px){.app{display:block}.side{position:sticky;height:auto;z-index:10;padding:10px 12px;border-right:0;border-bottom:1px solid var(--line)}.side .brand,.side .mode{display:none}.nav{display:flex;overflow:auto;scroll-snap-type:x mandatory}.nav button{width:auto;white-space:nowrap;scroll-snap-align:start}.main{padding:16px}.mobile-head{display:block}.top{align-items:flex-start}h1{font-size:clamp(2.8rem,14vw,4.7rem)}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
html.light{color-scheme:light;--bg:#f5f7f9;--panel:#fff;--panel2:#edf4f8;--line:#7b9eb0;--gold:#725500;--text:#10202a;--muted:#526a78;--green:#087849;--blue:#075e9d;--shadow:0 12px 34px #2452}.touch-large button,.touch-large input,.touch-large select,.touch-large textarea{min-height:54px;font-size:18px}@media(pointer:coarse){button,input,select{min-height:52px}.nav button{padding:13px 16px}}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.nav button{overflow:hidden;text-overflow:ellipsis}.card{content-visibility:auto;contain-intrinsic-size:320px}.top{flex-wrap:wrap}@media(max-width:430px){.main{padding:12px}.card{padding:14px;border-radius:14px}.grid{gap:10px}.metric{font-size:2rem}.top .pill{font-size:.75rem}.toast{left:12px;right:12px;bottom:12px}.row button{flex:1 1 120px}}@media(max-width:390px){h1{font-size:2.65rem}.nav button{min-width:108px}.pill{max-width:100%;overflow:hidden;text-overflow:ellipsis}}
.form-grid{display:grid;gap:14px}.form-grid label{display:grid;gap:6px;color:var(--muted);font-weight:700}.form-grid input,.form-grid select,.form-grid textarea{inline-size:100%;box-sizing:border-box}.form-grid textarea{min-block-size:110px;resize:vertical}
.tour-card{position:fixed;z-index:50;inset:auto 24px 24px auto;inline-size:min(360px,calc(100vw - 24px));padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:0 26px 70px #0008}.between{justify-content:space-between}@media(max-width:430px){.tour-card{inset:auto 12px 12px 12px;inline-size:auto}.feed{grid-template-columns:1fr}.feed button{justify-self:start}}
.calc-grid{display:grid;grid-template-columns:repeat(4,minmax(52px,1fr));gap:8px;margin-top:16px}.calc-grid button{min-block-size:52px;font-size:1.05rem}#calcDisplay{display:block;min-block-size:1.25em;overflow-wrap:anywhere}#timerMinutes{max-inline-size:160px}
.badge-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.badge-card{display:flex;gap:16px;align-items:flex-start;padding:22px;border-radius:20px;border:1px solid var(--line);background:linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--gold) 12%,var(--surface)))}.badge-mark{display:grid;place-items:center;inline-size:54px;block-size:54px;border-radius:50%;background:var(--gold);color:#16110b;font-size:1.6rem;box-shadow:0 8px 30px color-mix(in srgb,var(--gold) 35%,transparent)}.dm-crown{padding:.55rem .8rem;border-radius:999px;background:linear-gradient(120deg,#f8d77d,#c6902e);color:#201607;font-weight:900;letter-spacing:.04em}.legendary-dm .hero{background:radial-gradient(circle at 78% 20%,color-mix(in srgb,var(--gold) 24%,transparent),transparent 38%)}textarea[data-note]{inline-size:100%;min-block-size:110px;box-sizing:border-box}@media(max-width:700px){.badge-grid{grid-template-columns:1fr}.dm-crown{inline-size:100%;text-align:center}}
.mobile-shell,.bottom-tabs,.more-panel{display:none}.lookup-toolbar{display:grid;grid-template-columns:minmax(0,2fr) minmax(140px,1fr);gap:10px;margin-block:16px}.lookup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:12px}.lookup-card{padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}.lookup-card h3{color:var(--gold)}.attribution{font-size:.78rem;color:var(--muted);max-width:70ch}.settings-list{display:grid;gap:16px}.settings-list label{display:grid;gap:8px}.compact .card,.compact .lookup-card{padding:12px}.reduce-motion *{scroll-behavior:auto!important;transition:none!important;animation:none!important}[data-theme="light"]{--bg:#f6f2e8;--panel:#fff;--panel2:#f4ecda;--line:#a78b62;--text:#1d252b;--muted:#5d6970;--gold:#7a4e00;--green:#0a7b4f;--blue:#075b9d;--red:#a22}[data-theme="light"] body{background:#f6f2e8}[data-theme="light"] .side{background:#fffdf8}
@media(max-width:760px){body{padding-block-start:58px;padding-block-end:76px}.app{display:block}.side{position:fixed;z-index:80;inset:58px auto 0 0;inline-size:min(88vw,340px);height:auto;transform:translateX(-105%);transition:transform .2s ease;padding-block-end:90px;box-shadow:28px 0 60px #0009}.side.open{transform:translateX(0)}.mobile-head{display:none}.mobile-shell{display:grid;grid-template-columns:52px 1fr 52px;align-items:center;position:fixed;z-index:90;inset:0 0 auto 0;min-block-size:58px;padding:6px max(8px,env(safe-area-inset-right)) 6px max(8px,env(safe-area-inset-left));background:#071019f3;border-bottom:1px solid var(--line);backdrop-filter:blur(18px)}.mobile-title{border:0;background:transparent;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;color:var(--gold);font-weight:900}.icon-btn{min-inline-size:48px;min-block-size:48px;padding:0;font-size:1.25rem}.bottom-tabs{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;z-index:90;inset:auto 0 0 0;padding:6px max(4px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(4px,env(safe-area-inset-left));background:#071019f5;border-top:1px solid var(--line);backdrop-filter:blur(18px)}.bottom-tabs button{border:0;background:transparent;border-radius:10px;min-width:0;min-height:58px;padding:4px 2px;font-size:.68rem;display:grid;place-items:center;gap:1px}.bottom-tabs button span{font-size:1.15rem}.main{padding:14px;max-width:100%;overflow-x:hidden}.top{display:none}.more-panel{display:block;position:fixed;z-index:100;inset:auto 8px calc(72px + env(safe-area-inset-bottom)) 8px;max-block-size:min(72vh,620px);overflow:auto;padding:16px;border:1px solid var(--line);border-radius:22px;background:var(--panel);box-shadow:0 26px 80px #000c}.more-panel[hidden]{display:none}.sheet-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.sheet-head button{min-inline-size:48px;font-size:1.4rem}.search-label{display:grid;gap:6px;color:var(--muted)}.search-label input,.lookup-toolbar input,.lookup-toolbar select,.settings-list select{min-height:48px;width:100%}.more-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}.more-links button{text-align:left;min-height:52px}.lookup-toolbar{grid-template-columns:1fr}.hero{padding:12px 0}h1{font-size:clamp(2.35rem,13vw,4rem);line-height:.94}.row{flex-wrap:wrap}.row>*{min-width:min(100%,150px)}.grid.cols-2,.grid.cols-3,.badge-grid{grid-template-columns:1fr}.card,.badge-card,.lookup-card{max-width:100%;overflow-wrap:anywhere}.nav{display:grid;grid-template-columns:1fr;overflow:visible}.nav button{min-width:0}.mode{margin-top:18px}}
