:root{color-scheme:dark;--bg:#111f24;--panel:#1b2b30;--edge:#35464a;--ink:#edeadd;--muted:#9eafa9;--gold:#dfb875}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 'Segoe UI',sans-serif}header{padding:24px 3%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--edge);gap:20px}.brand{display:flex;align-items:center;gap:14px}.sigil{color:var(--gold);font-size:48px}h1,h2,h3{font-family:Georgia,serif;font-weight:normal;margin:0}h1{font-size:29px}h1 i{color:var(--gold)}small{font-size:10px;letter-spacing:2px;color:var(--muted)}h2{font-size:25px}h3{font-size:22px;margin:8px 0}.local{font-size:10px;letter-spacing:2px;color:#a5c3ab}.notice{padding:8px 3%;color:#b5bdb5;background:#17272b;font-size:12px}button,.button,input,select,textarea{font:inherit;border:1px solid var(--edge);border-radius:7px;background:#15242a;color:var(--ink);padding:9px 12px}button,.button{cursor:pointer}button:hover,.button:hover{border-color:var(--gold);background:#2b3b3e}button:focus-visible,.button:focus-within,input:focus,textarea:focus,select:focus{outline:2px solid var(--gold);outline-offset:2px}button[aria-pressed=true],.primary{background:var(--gold);color:#202a28;border-color:var(--gold)}main{max-width:1700px;margin:auto;padding:26px 3%;display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:24px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:17px}.pill{border:1px solid var(--edge);border-radius:30px;padding:5px 10px;font-size:12px;color:var(--muted)}#map{position:relative;aspect-ratio:3/2;border:1px solid #7f8970;border-radius:12px;overflow:hidden;box-shadow:0 20px 50px #0003;touch-action:none}svg{width:100%;height:100%;display:block}.map-caption{position:absolute;bottom:18px;left:22px;font-size:10px;letter-spacing:3px;color:#e3ddbe;pointer-events:none}.token{position:absolute;width:6.2%;aspect-ratio:1;border-radius:50%;padding:0;transform:translate(-50%,-50%);border:3px solid #dfd4ad;background:var(--token);color:white;font-family:Georgia,serif;font-size:clamp(13px,2vw,26px);box-shadow:0 4px 8px #0008;touch-action:none;user-select:none}.token.selected{outline:3px solid #fff4b7;outline-offset:4px}.map-help{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;padding:10px 0}.panel,.prep,.party{background:var(--panel);border:1px solid var(--edge);border-radius:12px;padding:20px}.panel{margin-bottom:20px}.prep{display:grid;grid-template-columns:1fr 1.4fr;gap:20px;margin-top:10px}label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:12px}input,textarea,select{width:100%;min-width:0}textarea{resize:vertical}.turn{display:flex;align-items:center;gap:10px;padding:11px 9px;border-radius:7px;margin-bottom:5px}.turn.active{background:#30413d;border-left:3px solid var(--gold)}.turn .score{color:var(--gold);font-size:20px;min-width:25px}.turn .name{flex:1}.turn small{letter-spacing:0;font-size:12px}.wide{width:100%;margin-top:12px}#lastRoll{font-size:36px;color:var(--gold);font-weight:normal}#diceForm{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}#diceForm button{grid-column:1/-1}#history{padding:0;list-style:none;max-height:160px;overflow:auto;margin-bottom:0}#history li{border-top:1px solid var(--edge);padding:9px 0;color:var(--muted);font-size:12px}#history b{float:right;color:var(--gold);font-size:17px}.party{grid-column:1/-1}#characters{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.character{border:1px solid var(--edge);border-radius:9px;padding:15px;background:#16262b;border-top:3px solid var(--token)}.character .fields{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px}.character label{margin-bottom:8px}.character textarea{height:65px}.character .select{width:100%;margin-bottom:12px;text-align:left}.character .remove{font-size:11px;padding:5px 9px;color:#d9aaa0}footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 3%;border-top:1px solid var(--edge);color:var(--muted);font-size:12px}footer>div{display:flex;gap:8px}.button{display:inline-flex;justify-content:center;color:var(--ink)}body.table-view .prep,body.table-view #add,body.table-view .remove,body.table-view .summary-label{display:none}body.table-view .scene{grid-row:span 2}body.table-view .party{grid-column:2;padding:16px}body.table-view #characters{grid-template-columns:1fr}body.table-view .character{padding:10px}body.table-view .character .select{margin-bottom:8px}body.table-view .character>label{display:none}@media(max-width:1050px){main{grid-template-columns:1fr 290px}#characters{grid-template-columns:repeat(2,1fr)}.local{display:none}}@media(max-width:760px){header{flex-wrap:wrap}main{grid-template-columns:1fr}.prep{grid-template-columns:1fr}.party,body.table-view .party{grid-column:1}#characters{grid-template-columns:1fr}footer{align-items:stretch;flex-direction:column}footer>div{flex-wrap:wrap}.notice{font-size:11px}h1{font-size:25px}#map{min-height:260px}}
:root [hidden]{display:none!important}.session-table #prep,.session-table #invitePanel label,.session-table #invite{display:none}a.button{text-decoration:none}input:disabled{opacity:.7}#inviteLink{font-size:11px;margin-bottom:10px}
.media-controls{display:flex;flex-wrap:wrap;gap:6px}.media-controls button{font-size:12px;padding:7px}details summary{cursor:pointer;color:var(--gold);font-family:Georgia,serif;font-size:22px}#selfVideo,.media-tile video{width:100%;max-height:180px;border-radius:8px;background:#0a1519}#selfVideo:not([src]){min-height:0}#mediaStatus,#participants{font-size:12px;color:var(--muted)}button:disabled{cursor:default;opacity:.5}
.scene-editor .fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}.scene-editor label{margin:10px 0}.scene-buttons{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.hint{font-size:12px;color:var(--muted)}#preparedPreview{width:100%;max-height:160px;object-fit:contain;background:#101b20;margin-top:10px}#mapImage{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}#sceneGrid{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(to right,#eee5bc40 1px,transparent 1px),linear-gradient(to bottom,#eee5bc40 1px,transparent 1px)}.token{overflow:hidden}.token img{width:100%;height:100%;display:block;position:absolute;inset:0;pointer-events:none}.token-label{position:absolute;bottom:0;left:0;right:0;background:#10252bbd;color:white;font:700 12px/1.3 'Segoe UI',sans-serif;text-shadow:0 1px 3px #000}.portrait-button{width:100%;font-size:12px;margin-top:8px}dialog{background:var(--panel);color:var(--ink);border:1px solid var(--gold);border-radius:14px;width:min(440px,94vw);max-height:92vh;overflow:auto}dialog::backdrop{background:#071014cc}#cropPreview{display:block;width:220px;height:220px;margin:16px auto;border-radius:50%;border:2px solid var(--gold)}dialog p{font-size:13px;color:var(--muted)}dialog label{margin:9px 0}body.session-table #sceneEditor,body.table-view #sceneEditor{display:none}#map{min-height:0}.table-toolbar{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:12px 3%}.table-board{max-width:1300px;margin:auto;padding:20px}.table-board #map{width:100%}.table-order{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}.table-order .turn{min-width:180px}.table-window h1{font-size:25px}.table-window .token{pointer-events:none}
.scene-editor{margin-top:15px}.scene-editor .section-head{margin-bottom:8px}.scene-editor #sceneForm{display:grid;grid-template-columns:1fr 2fr;gap:12px;align-items:end}.scene-editor #sceneForm>button{grid-column:1/-1}.scene-editor .fields{grid-template-columns:repeat(4,1fr)}@media(max-width:760px){.scene-editor #sceneForm{grid-template-columns:1fr}.scene-editor .fields{grid-template-columns:1fr 1fr}}
.table-window .token{display:grid;place-items:center}
.token-label{text-align:center;display:block;padding-bottom:2px}
.blank-map{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#15262c;color:var(--muted);font-size:14px;letter-spacing:1px}.blank-map button{letter-spacing:0}.table-view #blankUpload,.session-table #blankUpload{display:none}
#shopPrep{margin-top:16px}#shopPrep label,#dmInventory label{margin:10px 0}#shopPrep .fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}#inventoryItems{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.inventory-item,.shop-item{border:1px solid var(--edge);border-radius:9px;padding:16px;margin:12px 0;background:#14262b}.check-label{display:flex;flex-direction:row;align-items:center;margin:8px 0}.check-label input{width:auto}.inventory-item .scene-buttons{align-items:end}.inventory-item input[type=number]{max-width:90px}#dmInventory{display:grid;grid-template-columns:1fr 2fr;gap:24px}#shopDialog{width:min(620px,94vw)}.shop-item p{margin:8px 0}.shop-item .scene-buttons{align-items:end}body.table-view #shopPrep,body.session-table #shopPrep{display:none}@media(max-width:760px){#dmInventory{grid-template-columns:1fr}}

/* Lantern & Ledger: shared table refresh */
.shared-ui{--bg:#101c22;--panel:#192a31;--edge:#314249;--gold:#e6ba78;--ink:#f3ece0;--muted:#a9b8b9;background:radial-gradient(ellipse at 20% 0,#25403970,transparent 60%),var(--bg);font-family:"Segoe UI",sans-serif}
.shared-ui header{padding:18px 3%;gap:20px;background:#101c22b8;border-bottom:1px solid var(--edge)}
.shared-ui h1{font-size:25px;letter-spacing:-.6px}.shared-ui h2{font-size:25px}.shared-ui h3{font-size:19px}.shared-ui .brand small:empty,.shared-ui .section-head small:empty{display:none}.shared-ui .sigil{font-size:35px;color:var(--gold)}
.shared-ui .modes{margin-left:auto}.shared-ui .pill{letter-spacing:0;font-size:12px;text-transform:none;background:#213b3d;border-color:#3f5a58;padding:7px 12px}.shared-ui .local{margin-left:0;font-size:12px;color:#a9c9b6}
.shared-ui main{max-width:1660px;padding:28px 3%;grid-template-columns:minmax(0,1fr) 290px;gap:24px}.shared-ui .section-head{margin-bottom:16px}.shared-ui .section-head small{font-size:10px;letter-spacing:1.8px}
.shared-ui button,.shared-ui .button{border-radius:8px;padding:10px 14px;font-size:13px;transition:background .15s,border-color .15s}.shared-ui button:hover:not(:disabled){border-color:var(--gold);background:#344740}.shared-ui button.primary{color:#18252a;background:var(--gold);border-color:var(--gold);font-weight:650}.shared-ui button.primary:hover{background:#f2cf98}
.shared-ui :focus-visible{outline:2px solid #f3ce92;outline-offset:3px}.shared-ui input,.shared-ui select,.shared-ui textarea{background:#101f26;border-color:#40545a;padding:10px;border-radius:7px;color:var(--ink);font-size:14px}
.shared-ui #map{border-color:#405650;border-radius:16px;box-shadow:0 20px 60px #0003}.shared-ui .blank-map{background:radial-gradient(ellipse at 50% 40%,#28443966,transparent 70%),#14262b;letter-spacing:0;gap:18px}.shared-ui #blankMap span{font-family:Georgia,serif;font-size:26px;color:#dbe5d9}.shared-ui .map-help{font-size:11px;color:#91a6a7}
.shared-ui .panel,.shared-ui .party{padding:18px;background:#192a31cc;border-radius:12px}.shared-ui .turn{padding:10px 8px}.shared-ui .turn .name{font-size:13px}.shared-ui .turn .score{font-size:17px}.shared-ui .turn small{font-size:11px;white-space:nowrap}
.shared-ui .table-tools{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 16px}.shared-ui .table-tools button{background:#1d3036;color:#dce5dc;border-color:#3b5155;padding:8px 13px}.shared-ui .table-tools button:last-child{margin-left:auto}
.shared-ui #characters{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.shared-ui .character{background:#13242a;padding:16px}.shared-ui .character>small{font-size:10px;letter-spacing:.8px;display:block;margin:0 0 16px}.shared-ui .character .select{font-family:Georgia,serif;font-size:20px;border:none;background:transparent;padding:0 0 6px;margin:0;color:var(--ink)}.shared-ui .read-only>label{display:none}.shared-ui .read-only .fields input{border:none;padding:7px 0;background:transparent;opacity:1}.shared-ui .character textarea{min-height:65px}
.shared-ui footer{align-items:center;flex-wrap:wrap;gap:12px}.shared-ui footer>div{align-items:center;flex-wrap:wrap}.shared-ui footer button,.shared-ui footer .button{font-size:11px;padding:7px 10px}
.shared-ui details summary{font-family:inherit;font-size:14px;font-weight:600;letter-spacing:0;color:var(--ink)}.shared-ui details[open]>summary{margin-bottom:16px}.shared-ui aside>details{margin-top:20px}.shared-ui .tool-drawer{margin:0 0 0 auto;height:100dvh;max-height:100dvh;width:min(460px,96vw);max-width:96vw;border-radius:18px 0 0 18px;border:1px solid #556356;padding:24px;box-shadow:-24px 0 90px #0006}.shared-ui .tool-drawer::backdrop{background:#07101466}.shared-ui .drawer-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:22px}.shared-ui .drawer-head h2{margin:0}.shared-ui .drawer-head button{background:transparent;border:none;font-size:20px;padding:5px 12px}
.shared-ui .tool-drawer .panel,.shared-ui .tool-drawer .prep{padding:0;border:0;background:none;margin:0}.shared-ui .tool-drawer .section-head small{display:none}.shared-ui .tool-drawer .section-head h2{font-size:19px}.shared-ui .tool-drawer .scene-editor #sceneForm,.shared-ui .tool-drawer .prep{grid-template-columns:1fr}.shared-ui #shopPrep>summary{display:none}.shared-ui .tool-drawer .scene-editor .fields{grid-template-columns:1fr 1fr}.shared-ui .tool-drawer #notes{min-height:240px}.shared-ui .tool-drawer #prep>div>small,.shared-ui .tool-drawer #prep h3{display:none}
.shared-ui .dm-reference>details{border-top:1px solid var(--edge);padding:18px 0}.shared-ui .reference-version{margin:0 0 24px;color:var(--muted);font-size:12px}.shared-ui .dc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.shared-ui .dc-grid span{background:#23383b;border-radius:8px;padding:12px 8px;text-align:center;font-size:10px;color:var(--muted)}.shared-ui .dc-grid b{display:block;font:26px Georgia,serif;color:var(--gold);margin-top:6px}.shared-ui .dm-reference dt{font-size:14px;color:var(--gold);margin-top:15px}.shared-ui .dm-reference dd{margin:5px 0 0;font-size:13px;line-height:1.6;color:#becdca}.shared-ui .dm-reference p{font-size:12px;line-height:1.65}.shared-ui #privateNotes summary span{float:right;color:#93aca1;font-size:11px;font-weight:400}.shared-ui .rules-credit summary{font-size:12px;color:var(--muted)}.shared-ui a{color:var(--gold)}
.shared-ui[data-access="waiting"] main,.shared-ui[data-access="waiting"] footer,.shared-ui[data-access="waiting"] header>.modes,.shared-ui[data-access="waiting"] header>.local,.shared-ui[data-access="waiting"] header>button{display:none}.shared-ui .welcome-gate{display:grid;grid-template-columns:.8fr 1fr;gap:7%;max-width:1100px;margin:0 auto;padding:10vh 4%;min-height:75vh;align-items:center}.shared-ui .welcome-copy h2{font-size:clamp(46px,6vw,78px);line-height:1.05;letter-spacing:-2px;margin:15px 0 20px}.shared-ui .welcome-copy>p:not(.eyebrow){font-size:17px;color:var(--muted);margin-bottom:35px}.shared-ui .eyebrow{font-size:11px;letter-spacing:3px;color:var(--gold)}.shared-ui .join-row{display:flex;gap:8px;margin:8px 0}.shared-ui .join-row button{white-space:nowrap}.shared-ui .welcome-copy>small{font-size:11px;letter-spacing:0;color:var(--muted)}.shared-ui #accessError{font-size:13px;color:#e7b8a1;min-height:18px}.shared-ui .welcome-art{position:relative;aspect-ratio:1;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle,#e6ba781a,transparent 68%)}.shared-ui .welcome-art>span{font-size:160px;color:var(--gold);text-shadow:0 0 90px #e6ba7833}.shared-ui .orbit{position:absolute;inset:12%;border:1px solid #a3ba9e3a;transform:rotate(45deg);border-radius:18%}.shared-ui .orbit-two{inset:0;transform:rotate(15deg);border-style:dashed;border-color:#a3ba9e20}.shared-ui .welcome-gate aside{display:block}
@media(max-width:1000px){.shared-ui main{grid-template-columns:minmax(0,1fr) 260px;gap:16px}.shared-ui .local{display:none}.shared-ui .welcome-gate{grid-template-columns:.6fr 1fr}.shared-ui .welcome-art>span{font-size:110px}}
@media(max-width:760px){.shared-ui header{padding:16px 5%;gap:12px}.shared-ui h1{font-size:22px}.shared-ui .sigil{font-size:28px}.shared-ui .modes{margin-left:0}.shared-ui main{display:flex;flex-direction:column;padding:20px 4%;gap:18px}.shared-ui main>.scene{width:100%}.shared-ui main>aside{display:grid;grid-template-columns:1fr;gap:16px}.shared-ui .panel{margin:0}.shared-ui #characters{grid-template-columns:1fr}.shared-ui .welcome-gate{display:block;padding:7vh 7%}.shared-ui .welcome-art{display:none}.shared-ui .welcome-copy h2{font-size:58px}.shared-ui .join-row{flex-direction:column}.shared-ui .join-row input{min-height:46px}.shared-ui .table-tools{gap:6px}.shared-ui .table-tools button{padding:9px 10px;font-size:12px}.shared-ui .tool-drawer{padding:20px}.shared-ui footer{padding:18px 4%}.shared-ui #dmInventory{grid-template-columns:1fr}}
