:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-serif:"Spectral", Georgia, "Times New Roman", serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font-sans:"IBM Plex Sans", system-ui, -apple-system, sans-serif;--paper:#efe9dd;--card:#fbf8f1;--ink:#221f19;--ink-muted:#6c6556;--hairline:#221f191a;--hairline-strong:#221f1933;--well:#e7e0d2;--band:var(--well);--surface-raised:var(--card);--surface-muted:var(--well);--border:var(--hairline);--border-strong:var(--hairline-strong);--gilt:#7a6639;--gilt-soft:#221f1924;--gilt-dark:#5e4e2a;--hatch-a:#e4ddcf;--hatch-b:#d9d1c1;--question-bg:#1e5a7824;--question-fg:#1b5068;--card-radius:18px;--field-radius:12px;--pill-radius:999px;--chip-radius:999px;--portrait-radius:16px;--mention-ink:#8a3b2a;--important-bg:#b0781a3d;--important-fg:#6d4a0c;--secret-bg:#6b35602e;--secret-fg:#5c1f4f;--theory-bg:#9a822833;--theory-fg:#5c4d10;--moment-bg:#9646822e;--moment-fg:#6b2f5a;--followup-bg:#b0522a29;--followup-fg:#7a3117;--player-fg:#6b6656;--danger:#8a3b2a;--danger-bg:#8a3b2a1f;--ok:#3f7a4d;--shadow-card:0 1px 2px #221f190d, 0 8px 22px -14px #221f1947;--shadow-sm:0 1px 4px #221f191f;--shadow-md:0 14px 34px -12px #221f1959;--dock-clearance:calc(70px + env(safe-area-inset-bottom));--bottom-nav-height:var(--dock-clearance)}:root,.app-shell,.tinted{--accent:var(--tint,#5b5242);--accent-fg:var(--tint-ink,#fbf8f1);--tint-soft:color-mix(in srgb, var(--accent) 12%, var(--card));--tint-glow:color-mix(in srgb, var(--accent) 16%, transparent);--primary-bg:var(--accent);--primary-fg:var(--accent-fg)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;touch-action:pan-x pan-y}body{min-height:100vh;font-family:var(--font-sans);background:var(--paper);color:var(--ink);touch-action:pan-x pan-y;-webkit-tap-highlight-color:transparent;margin:0}#root{flex-direction:column;min-height:100vh;display:flex}.app-shell{background:var(--paper);min-height:100vh;color:var(--ink);flex-direction:column;display:flex}a{color:var(--mention-ink)}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3{font-family:var(--font-serif);letter-spacing:-.01em;margin:0;font-weight:600}h1{font-size:26px;line-height:1.1}h2{font-size:20px;line-height:1.2}h3{font-size:17px}p{font-family:var(--font-serif);margin:0;font-size:15px;line-height:1.6}.mono-label{font:600 9.5px var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.mono-meta{font:400 10.5px var(--font-mono);color:var(--ink-muted)}.muted{color:var(--ink-muted)}.small{font-size:12.5px}.italic{font-style:italic}.row{flex-wrap:wrap;align-items:center;gap:.6em;display:flex}.row.between{justify-content:space-between}.header-actions{flex-wrap:wrap;gap:.5em;display:flex}.header-actions>*{flex:100px;min-width:100px}.rest-menu{z-index:10;box-shadow:var(--shadow-md);padding:6px;position:absolute;top:calc(100% + 6px);left:0;right:0}.stack{flex-direction:column;gap:.75em;display:flex}main.content{width:100%;max-width:460px;padding:calc(14px + env(safe-area-inset-top)) 18px calc(44px + env(safe-area-inset-bottom));flex:1;margin:0 auto}.app-shell.has-floats main.content{padding-top:calc(64px + env(safe-area-inset-top));padding-bottom:calc(100px + env(safe-area-inset-bottom))}.card{background:var(--card);border:1px solid var(--hairline);border-radius:var(--card-radius);box-shadow:var(--shadow-card);padding:14px 16px}.card.accent{background:var(--tint-soft);border-color:color-mix(in srgb, var(--accent) 45%, transparent)}.card.gilt{border-color:var(--hairline-strong)}.screen-header{isolation:isolate;flex:none;margin:0 -18px 2px;padding:8px 18px 12px;position:relative;overflow:hidden}.screen-header:has(>.glyph-watermark){background:radial-gradient(ellipse 130px min(50%, 110px) at calc(100% - 60px) 50%, var(--tint-glow), transparent)}.screen-header>*{z-index:1;position:relative}.screen-header .title-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.screen-header h1{font-size:30px}.screen-header h2{font-size:24px}.screen-header .ornament{display:none}.screen-header>[role=tablist]{margin-top:12px}.glyph-watermark{color:var(--accent);opacity:.12;pointer-events:none;flex:none}.screen-header>.glyph-watermark{z-index:0;width:auto;height:min(140px,100% + 24px);position:absolute;top:50%;right:-10px;transform:translateY(-50%)}.ornament{justify-content:center;align-items:center;gap:6px;margin:10px 0;display:flex}.ornament .line{background:var(--hairline-strong);flex:1;max-width:64px;height:1px}.ornament .node{display:none}.ornament .node.big{background:var(--accent);opacity:.55;flex:none;width:6px;height:6px;display:block;transform:rotate(45deg)}.drop-cap-block{align-items:flex-start;gap:11px;display:flex}.drop-cap{background:var(--accent);width:44px;height:44px;color:var(--accent-fg);font:600 28px/1 var(--font-serif);border-radius:12px;flex:none;justify-content:center;align-items:center;display:flex}.drop-cap-text{font:400 15px/1.6 var(--font-serif);color:var(--ink);flex:1}button{background:var(--card);border:1px solid var(--hairline-strong);color:var(--ink);border-radius:var(--pill-radius);cursor:pointer;font:500 13.5px var(--font-sans);min-height:44px;padding:.6em 1.15em;transition:background-color .14s,border-color .14s,transform .12s}button:hover{border-color:color-mix(in srgb, var(--accent) 55%, transparent)}button:active:not(:disabled){transform:scale(.97)}button:focus-visible,.link-button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--primary-bg);color:var(--primary-fg);border-color:var(--primary-bg);box-shadow:0 8px 18px -12px color-mix(in srgb, var(--accent) 80%, black);font-weight:600}button.primary:hover{border-color:var(--primary-bg)}button.danger{border-color:color-mix(in srgb, var(--danger) 55%, transparent);color:var(--danger);background:0 0}button.small{min-width:40px;min-height:40px;padding:.4em .95em;font-size:12px}button.pill{border-radius:var(--pill-radius)}button.ghost{border-color:var(--hairline-strong);background:0 0}button.icon-btn{width:36px;height:36px;min-height:36px;color:var(--ink-muted);background:0 0;border-color:#0000;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}button.icon-btn:hover{color:var(--accent);background:var(--tint-soft)}.link-button{background:var(--card);border:1px solid var(--hairline-strong);color:var(--ink);border-radius:var(--pill-radius);font:500 13.5px var(--font-sans);justify-content:center;align-items:center;min-height:44px;padding:.6em 1.15em;text-decoration:none;display:inline-flex}.link-button:hover{border-color:color-mix(in srgb, var(--accent) 55%, transparent)}.link-button.primary{background:var(--primary-bg);color:var(--primary-fg);border-color:var(--primary-bg);font-weight:600}button.icon-btn svg{display:block}.stepper{align-items:center;gap:7px;display:flex}.stepper button{width:36px;height:36px;min-height:0;font:500 17px/1 var(--font-sans);border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex}.stepper .value{font:500 13px var(--font-mono);text-align:center;min-width:1.6em}.resource-pips{flex-wrap:wrap;gap:8px;display:flex}.resource-pips .pip{border:1.6px solid var(--ink-muted);background:0 0;border-radius:50%;width:24px;height:24px;min-height:0;padding:0;display:inline-block}.resource-pips .pip.filled{background:var(--accent);border-color:var(--accent)}.resource-pips .pip.die{border-radius:5px;transform:rotate(45deg)scale(.86)}.resource-pips .pip.die.filled{background:var(--accent)}.quick-actions-row{-webkit-overflow-scrolling:touch;gap:8px;margin:0 -2px;padding:2px 2px 6px;display:flex;overflow-x:auto}.quick-action-card{background:var(--card);border:1px solid var(--hairline);min-width:112px;box-shadow:var(--shadow-card);border-radius:16px;flex-direction:column;flex:none;gap:5px;padding:10px 12px 9px;font-size:12.5px;display:flex;position:relative}.quick-action-card strong{font-family:var(--font-serif);padding-right:14px;font-size:14.5px;line-height:1.2}.quick-action-remove{width:20px;height:20px;min-height:0;color:var(--ink-muted);background:0 0;border:none;padding:0;font-size:13px;line-height:1;position:absolute;top:4px;right:5px}.quick-action-remove:hover{color:var(--danger)}.star-toggle{min-height:0;color:var(--gilt);background:0 0;border:none;padding:0 2px;font-size:16px;line-height:1}.star-toggle[aria-pressed=false]{color:var(--ink-muted);opacity:.7}.death-saves .badge.ok{margin-left:auto}input[type=text],input[type=password],input[type=number],input[type=date],input[type=search],select,textarea{background:var(--card);border:1px solid var(--hairline-strong);border-radius:var(--field-radius);width:100%;font-family:var(--font-sans);min-height:44px;padding:.6em .8em;font-size:15px}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);outline:none}textarea{resize:vertical;min-height:90px;font-family:var(--font-serif);line-height:1.5}input[type=search]{border-radius:var(--pill-radius);padding-inline:1.1em}label{color:var(--ink-muted);font-size:12px;font-family:var(--font-sans);margin:.7em 0 .3em;display:block}fieldset{border:1px solid var(--hairline-strong);border-radius:var(--card-radius);margin:.5em 0}.search-field{background:var(--card);border:1px solid var(--hairline-strong);border-radius:var(--pill-radius);height:44px;color:var(--ink-muted);align-items:center;gap:9px;margin:0;padding:0 14px;font-size:15px;display:flex}.search-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent)}.search-field svg{flex:none}.search-field input[type=search]{min-width:0;min-height:0;color:var(--ink);box-shadow:none;background:0 0;border:none;flex:1;padding:0}.chip-row{flex-wrap:wrap;gap:6px;display:flex;overflow-x:auto}.chip{font:500 12px var(--font-sans);border:1px solid var(--hairline-strong);border-radius:var(--pill-radius);background:var(--card);cursor:pointer;white-space:nowrap;min-height:36px;padding:0 14px}.chip.active{background:var(--accent);color:var(--accent-fg);border-color:var(--accent);font-weight:600}.badge{border-radius:var(--pill-radius);border:1px solid var(--hairline-strong);font:500 10.5px var(--font-mono);color:var(--ink-muted);padding:.3em .7em;display:inline-block}.badge.ok{border-color:color-mix(in srgb, var(--accent) 50%, transparent);color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent)}.badge.warn{border-color:color-mix(in srgb, var(--danger) 50%, transparent);color:var(--danger);background:var(--danger-bg)}.badge.gilt{border-color:color-mix(in srgb, var(--gilt) 45%, transparent);color:var(--gilt-dark);background:color-mix(in srgb, var(--gilt) 12%, transparent)}.badge.visibility-tag{text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:5px;display:inline-flex}.badge.visibility-tag.is-private{color:var(--ink);background:var(--surface-muted);border-color:var(--hairline-strong)}.badge.visibility-tag.is-shared{color:var(--accent-fg);background:var(--accent);border-color:var(--accent)}.visibility-switch{border-radius:var(--pill-radius);background:var(--surface-muted);border:1px solid var(--hairline);gap:2px;padding:3px;display:inline-flex}.visibility-switch button{min-height:36px;color:var(--ink-muted);background:0 0;border-color:#0000;align-items:center;gap:6px;padding:.3em .95em;font-size:12.5px;display:inline-flex}.visibility-switch button.is-on{background:var(--card);color:var(--ink);border-color:var(--hairline-strong);font-weight:600;box-shadow:0 2px 6px -3px #00000040}.visibility-switch button.is-on:last-child{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.journal-visibility{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:11px;display:flex}.knowledge-tag{font:500 8.5px var(--font-mono);text-transform:uppercase;border-radius:6px;flex:none;padding:3px 6px}.knowledge-tag.character_knows{color:var(--accent);border:1px solid var(--accent)}.knowledge-tag.character_suspects{color:var(--gilt-dark);border:1px solid color-mix(in srgb, var(--gilt) 55%, transparent)}.knowledge-tag.secret{color:var(--secret-fg);border:1px solid #6b356073}.knowledge-tag.disproved{color:var(--ink-muted);border:1px solid var(--hairline-strong);text-decoration:line-through}.knowledge-tag.player_only{color:var(--ink-muted);border:1px dashed #221f1959;font-style:italic}.knowledge-text.disproved{color:var(--ink-muted);text-decoration:line-through}.knowledge-text.player_only{color:var(--ink-muted);font-style:italic}.icon-tile{color:var(--c);background:color-mix(in srgb, var(--c) 13%, var(--card));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--c) 20%, transparent);flex:none;place-items:center;display:grid}.icon-tile svg{display:block}.plate{border:1px solid var(--hairline);background:repeating-linear-gradient(45deg, var(--hatch-a) 0 4px, var(--hatch-b) 4px 8px);border-radius:12px;flex:none;overflow:hidden}.plate.accented{border:1.5px solid var(--accent)}.plate.no-art{text-align:center;font:400 8px var(--font-mono);color:var(--ink-muted);background:0 0;border:1.4px dashed #221f1947;justify-content:center;align-items:center;display:flex}.floats{z-index:25;pointer-events:none;align-items:center;gap:8px;padding:0 12px;display:flex;position:fixed;left:0;right:0}.floats>*{pointer-events:auto}.floats__spacer{pointer-events:none;flex:auto}.floats--top{top:calc(env(safe-area-inset-top) + 8px)}.floats--bottom{bottom:calc(env(safe-area-inset-bottom) + 10px)}.glass{min-height:0;color:var(--ink);background:color-mix(in srgb, var(--card) 66%, transparent);-webkit-backdrop-filter:blur(22px)saturate(180%);backdrop-filter:blur(22px)saturate(180%);border:1px solid var(--hairline);border-radius:999px;justify-content:center;align-items:center;padding:0;text-decoration:none;transition:transform .14s,background-color .14s;display:flex;box-shadow:0 10px 30px -12px #221f196b,inset 0 1px #ffffff80}.glass:hover{border-color:var(--hairline)}.glass:active{transform:scale(.96)}.glass--pill{white-space:nowrap;gap:6px;min-width:0;height:40px;padding:0 16px;overflow:hidden}.glass--back{color:var(--ink);gap:2px;padding:0 16px 0 9px}.glass--back svg{color:var(--accent);flex:none}.glass__title{text-overflow:ellipsis;font:600 17px/1 var(--font-serif);letter-spacing:-.01em;overflow:hidden}.glass--round{flex:none;width:44px;height:44px}.glass--cluster{flex:none;gap:1px;height:44px;padding:3px}.glass--cluster button{width:40px;height:38px;min-height:0;color:var(--ink-muted);background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;padding:0;display:inline-flex}.glass--cluster button:active{background:color-mix(in srgb, var(--ink) 10%, transparent)}.glass--cluster button[aria-pressed=true]{background:var(--accent);color:var(--accent-fg)}.dock{gap:10px}.dock__tabs{border-radius:26px;flex:auto;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;min-width:0;padding:5px;display:grid}.dock__tabs a{min-width:0;min-height:50px;color:var(--ink-muted);font:500 10.5px var(--font-sans);letter-spacing:.01em;border-radius:21px;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:6px 3px 5px;text-decoration:none;transition:background-color .16s,color .16s;display:flex}.dock__tabs a span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.dock__tabs a:active{transform:scale(.96)}.dock__tabs a.active{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent);font-weight:600}.dock__combat{background:var(--accent);width:60px;height:60px;color:var(--accent-fg);border-color:color-mix(in srgb, var(--accent) 40%, transparent);box-shadow:0 12px 26px -12px color-mix(in srgb, var(--accent) 85%, black), 0 2px 6px -3px #221f1959;border-radius:30px;flex:none;gap:8px}.dock__combat:active{transform:scale(.94)}.dock__combat.is-live{width:auto;padding:0 18px 0 16px}.dock__round{font:500 14px var(--font-mono);font-variant-numeric:tabular-nums;align-items:center;gap:7px;display:inline-flex}.dock__round:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px;animation:1.6s ease-in-out infinite dock-pulse}.dock__combat.is-current{box-shadow:0 0 0 3px var(--paper), 0 0 0 5.5px var(--accent), 0 12px 26px -12px color-mix(in srgb, var(--accent) 85%, black)}@keyframes dock-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, currentColor 55%, transparent);opacity:1}70%{opacity:.72;box-shadow:0 0 0 6px #0000}}@media (prefers-reduced-motion:reduce){.glass,.dock__tabs a,button{transition:none}.dock__round:before{animation:none}}.home{gap:14px}.home-header{align-items:center;gap:10px;min-height:44px;display:flex}.home-brand{font:600 13px var(--font-mono);letter-spacing:.24em;color:var(--ink);align-items:center;gap:9px;display:inline-flex}.home-brand svg{color:var(--accent)}.home-user{text-overflow:ellipsis;white-space:nowrap;background:var(--well);max-width:45vw;font:500 12px var(--font-sans);color:var(--ink-muted);border-radius:999px;margin-left:auto;padding:7px 13px;overflow:hidden}.home-signout{color:var(--ink-muted)}.home-title{margin:4px 0 2px;font-size:32px}.home-section{flex-direction:column;gap:10px;display:flex}.home-section__label{margin:8px 2px 0}.home-card{isolation:isolate;background:linear-gradient(105deg, var(--tint-soft) 0%, var(--card) 72%);border:1px solid color-mix(in srgb, var(--accent) 16%, var(--hairline));min-height:92px;box-shadow:var(--shadow-card);border-radius:20px;align-items:center;gap:14px;padding:14px 14px 14px 18px;transition:transform .12s;display:flex;position:relative;overflow:hidden}.home-card:active{transform:scale(.985)}.home-card:before{content:"";background:var(--accent);border-radius:0 4px 4px 0;width:4px;position:absolute;top:16px;bottom:16px;left:0}.home-card__glyph{z-index:-1;opacity:.14;position:absolute;top:50%;right:-16px;transform:translateY(-50%)}.home-card__body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.home-card__enter{text-align:left;width:100%;min-height:0;font:inherit;color:inherit;background:0 0;border:0;border-radius:0;padding:0;display:block}.home-card__enter:after{content:"";z-index:1;border-radius:20px;position:absolute;inset:0}.home-card .home-card__enter:active{transform:none}.home-card__enter:focus-visible{outline:none}.home-card:has(.home-card__enter:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.home-card__name,.home-card__class,.home-card__meta{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.home-card__name{font:600 19px/1.15 var(--font-serif);letter-spacing:-.01em;color:var(--ink)}.home-card__class{font:600 11px var(--font-mono);letter-spacing:.03em;color:var(--accent)}.home-card__meta{font:italic 400 13.5px var(--font-serif);color:var(--ink-muted)}.home-card__dm{z-index:2;background:color-mix(in srgb, var(--card) 80%, transparent);flex:none;position:relative}.home-card__chevron{color:var(--accent);opacity:.7;flex:none}.home-portrait{background:color-mix(in srgb, var(--accent) 16%, var(--card));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 22%, transparent);border-radius:16px;flex:none;place-items:center;display:grid;overflow:hidden}.home-portrait img{display:block}.home-portrait__initials{font:600 22px var(--font-serif);color:var(--accent)}.home-list{padding:2px 16px}.home-list__row{border-top:1px solid var(--hairline);align-items:center;gap:10px;min-height:56px;padding:6px 0;display:flex}.home-list__row:first-child{border-top:0}.home-list__main{text-align:left;background:0 0;border:0;border-radius:0;flex:1;justify-content:space-between;align-items:center;gap:10px;min-width:0;min-height:44px;padding:0;display:flex}.home-list__main--static{flex-direction:column;justify-content:center;align-items:flex-start;gap:1px}.home-list__name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:400 16px var(--font-serif);color:var(--ink);overflow:hidden}.home-list__row--fallen{opacity:.75}.home-list .home-portrait{filter:grayscale();border-radius:50%}.home-list .home-portrait__initials{font-size:14px}.home-create{text-align:left;border-radius:var(--card-radius);background:0 0;border:1.5px dashed #221f1938;align-items:center;gap:14px;width:100%;min-height:64px;padding:12px 16px;display:flex}.home-create:hover{border-color:color-mix(in srgb, var(--accent) 55%, transparent)}.home-create__icon{background:var(--tint-soft);width:40px;height:40px;color:var(--accent);border-radius:50%;flex:none;place-items:center;display:grid}.home-create__text{flex-direction:column;gap:2px;display:flex}.home-create__text strong{font:600 16px var(--font-serif);color:var(--ink)}.sheet-hero{isolation:isolate;border:1px solid color-mix(in srgb, var(--accent) 14%, var(--hairline));background:radial-gradient(ellipse 150px 120px at calc(100% - 50px) 40%, var(--tint-glow), transparent), linear-gradient(160deg, var(--tint-soft), var(--card) 62%);box-shadow:var(--shadow-card);border-radius:24px;padding:16px;position:relative;overflow:hidden}.sheet-hero>.glyph-watermark{z-index:-1;opacity:.13;position:absolute;top:-18px;right:-26px}.sheet-hero__main{align-items:center;gap:14px;display:flex}.sheet-hero__id{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.sheet-hero__id h1{overflow-wrap:anywhere;font-size:28px;line-height:1.06}.sheet-hero__id input{min-height:38px}.sheet-hero__line{font:italic 400 14px/1.35 var(--font-serif);color:var(--ink-muted)}.sheet-hero__class{font:600 13px/1.35 var(--font-sans);color:var(--accent);margin-top:3px}.sheet-portrait{flex:none;width:88px;height:108px;position:relative}.sheet-portrait__frame{background:color-mix(in srgb, var(--accent) 16%, var(--card));width:100%;height:100%;min-height:0;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 22%, transparent), var(--shadow-card);border:0;border-radius:20px;place-items:center;padding:0;display:grid;overflow:hidden}.sheet-portrait__frame img{display:block}.sheet-portrait__initials{font:600 30px var(--font-serif);color:var(--accent)}.sheet-portrait__badge{border:2px solid var(--card);background:var(--accent);width:32px;min-width:0;height:32px;min-height:0;color:var(--accent-fg);box-shadow:var(--shadow-sm);border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;bottom:-7px;right:-7px}.sheet-portrait__badge:hover{border-color:var(--card)}.sheet-actions{align-items:stretch;gap:8px;display:flex}.sheet-actions>*{flex:1 1 0;min-width:0}.sheet-actions button{width:100%;box-shadow:var(--shadow-card);justify-content:center;align-items:center;gap:7px;display:inline-flex}.sheet-actions button.ghost{background:var(--card)}.sheet-actions .sheet-actions__history{width:44px;color:var(--ink-muted);flex:0 0 44px;padding:0}.stat-tiles{grid-template-columns:1.45fr repeat(5,minmax(0,1fr));gap:6px;display:grid}.stat-tile{border:1px solid var(--hairline);background:var(--card);min-width:0;min-height:64px;box-shadow:var(--shadow-card);color:var(--ink);text-align:center;font:inherit;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:8px 2px 7px;text-decoration:none;display:flex}.stat-tile:hover{border-color:color-mix(in srgb, var(--accent) 45%, transparent)}.stat-tile__label{font:600 9px var(--font-mono);letter-spacing:.1em;color:var(--accent)}.stat-tile__value{font:500 20px/1.05 var(--font-serif);white-space:nowrap}.stat-tile__value small{font:500 10px var(--font-mono);color:var(--ink-muted);margin-left:1px}.stat-tile__hint{font:500 8.5px/1.1 var(--font-mono);color:var(--ink-muted);white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.stat-tile--hp{background:var(--tint-soft);border-color:color-mix(in srgb, var(--accent) 22%, transparent)}.stat-tile--hp.is-low .stat-tile__value{color:var(--danger)}.stat-tile--static{cursor:default}.ability-tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.ability-tile{border:1px solid var(--hairline);background:var(--card);box-shadow:var(--shadow-card);border-radius:18px;flex-direction:column;align-items:center;gap:2px;padding:8px 6px 9px;display:flex}@media (width>=640px){.ability-tiles{grid-template-columns:repeat(6,minmax(0,1fr))}}.ability-tile__label{font:600 9.5px var(--font-mono);letter-spacing:.14em;color:var(--ink-muted)}.ability-tile__score{font:400 28px/1.05 var(--font-serif)}.ability-tile input{text-align:center;width:100%;min-height:38px;font:400 22px var(--font-serif);padding:2px}.ability-tile__mod{background:var(--tint-soft);min-width:38px;color:var(--accent);font:600 12px var(--font-mono);text-align:center;border-radius:999px;padding:2px 9px}.sheet-savebar{bottom:calc(var(--dock-clearance) + 10px);z-index:5;background:color-mix(in srgb, var(--card) 70%, transparent);-webkit-backdrop-filter:blur(20px)saturate(170%);backdrop-filter:blur(20px)saturate(170%);border:1px solid var(--hairline);border-radius:999px;flex-wrap:nowrap;padding:5px;position:sticky;box-shadow:0 10px 30px -12px #221f196b}.error-banner{background:var(--danger-bg);border:1px solid color-mix(in srgb, var(--danger) 45%, transparent);color:var(--danger);border-radius:14px;padding:.75em 1em}.conflict-banner{background:color-mix(in srgb, var(--gilt) 14%, var(--card));border:1px solid color-mix(in srgb, var(--gilt) 50%, transparent);border-radius:14px;padding:.75em 1em}.offline-banner{background:var(--danger-bg);color:var(--danger-fg,var(--ink));text-align:center;font:500 12px var(--font-sans);padding:.5em}.app-shell.has-floats .offline-banner{margin:calc(env(safe-area-inset-top) + 58px) 12px 0;border-radius:14px;padding:.6em 1em}.app-shell.has-floats .offline-banner+main.content{padding-top:12px}.dm-studio{width:min(1500px,100%);margin:0 auto}.dm-studio-header{border-bottom:2px solid var(--gilt);justify-content:space-between;align-items:flex-end;padding:10px 2px 14px;display:flex}.dm-studio-header h1{margin:.2rem 0 0}.dm-nav{z-index:8;background:var(--paper);border-bottom:1px solid var(--gilt-soft);gap:4px;padding:8px 0;display:flex;position:sticky;top:0;overflow:auto}.dm-nav a{color:var(--ink-muted);white-space:nowrap;font:600 12px var(--font-mono);letter-spacing:.04em;border-radius:6px;padding:8px 13px;text-decoration:none}.dm-nav a.active{color:var(--paper);background:var(--ink)}.dm-workspace{padding-top:12px}.dm-panel{background:var(--card);border:1px solid var(--gilt-soft);border-radius:10px;min-width:0;padding:16px;box-shadow:0 2px 9px #19120a0d}.dm-panel h2{margin-top:0}.dm-dashboard-grid{grid-template-columns:minmax(0,2fr) minmax(280px,.8fr);align-items:start;gap:14px;display:grid}.dm-dashboard-side{gap:14px;display:grid}.dm-party-grid{grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:10px;display:grid}.dm-party-card{border:1px solid #4d391f33;border-left:4px solid var(--gilt);background:#ffffff47;border-radius:8px;gap:8px;padding:13px;display:grid}.dm-ac{border:1px solid var(--gilt-soft);border-radius:50%;place-items:center;width:49px;height:49px;font-size:12px;display:grid}.dm-hp,.dm-resource{align-items:center;gap:9px;display:flex}.dm-hp strong{font:700 20px var(--font-mono)}.dm-resource{background:#412e190f;border-radius:5px;justify-content:space-between;padding:5px 8px}.death-glance{background:#771c1714;border-radius:6px;flex-wrap:wrap;align-items:center;gap:7px;padding:7px 9px;font-size:12px;display:flex}.death-glance .success{color:#285a38}.death-glance .failure{color:#8d2923}.spell-watch{justify-content:flex-start}.spell-level-icon{border:1px solid var(--gilt);min-width:31px;height:24px;font-family:var(--font-mono);color:var(--ink);border-radius:5px;place-items:center;padding:0 5px;font-weight:800;display:inline-grid}.spell-watch i{border:1px solid var(--gilt);border-radius:50%;width:10px;height:10px;margin-right:4px;display:inline-block}.spell-watch .slot-ready{background:var(--gilt);box-shadow:0 0 0 2px #af7e311f}.spell-watch .slot-used{opacity:.35;background:0 0}.dm-quick-actions{flex-wrap:wrap;gap:5px;display:flex}.dm-quick-actions button{padding:5px 8px;font-size:11px}.check-row{align-items:center;gap:7px;padding:4px 0;font-size:12px;display:flex}.dm-encounter-layout{grid-template-columns:minmax(230px,.7fr) minmax(450px,1.7fr) minmax(220px,.65fr);align-items:start;gap:12px;display:grid}.encounter-template-row{border-top:1px solid var(--gilt-soft);gap:4px;padding:10px 0;display:grid}.turn-controls{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;display:grid}.initiative-list{gap:7px;display:grid}.initiative-group{border:1px solid #4b351b2e;border-radius:7px;overflow:hidden}.initiative-group.current{border:2px solid var(--gilt);box-shadow:0 0 0 2px #ad7e271f}.initiative-head{background:#45311a0f;align-items:center;gap:9px;padding:9px;display:flex}.initiative-score{font:700 18px var(--font-mono);text-align:center;width:30px}.initiative-instance{border-top:1px solid #4b351b1f;grid-template-columns:55px minmax(110px,1fr) repeat(4,auto);align-items:center;gap:5px;padding:7px 9px;font-size:12px;display:grid}.initiative-instance button{padding:4px 6px;font-size:10px}.encounter-add{margin-top:12px}.monster-guide{grid-template-columns:minmax(230px,.65fr) minmax(0,2fr);gap:12px;min-height:66vh;display:grid}.monster-list{flex-direction:column;gap:4px;display:flex}.monster-list>button{text-align:left;background:0 0;border:0;border-left:3px solid #0000;border-radius:0;flex-direction:column;align-items:flex-start;display:flex}.monster-list>button.selected{border-left-color:var(--gilt);background:#523a1d14}.monster-list>button span{color:var(--ink-muted);font-size:11px}.monster-vitals{grid-template-columns:repeat(4,1fr);gap:7px;margin:12px 0;display:grid}.monster-vitals>b{border:1px solid var(--gilt-soft);text-align:center;border-radius:6px;padding:10px}.ability-grid{grid-template-columns:repeat(6,1fr);gap:6px;margin:10px 0;display:grid}.ability-grid>div,.ability-grid>label{text-align:center;border:1px solid var(--gilt-soft);border-radius:5px;gap:3px;padding:7px 3px;font-size:11px;display:grid}.ability-grid input{text-align:center;min-width:0}.monster-section{border-top:1px solid var(--gilt-soft);margin-top:14px;padding-top:9px}.monster-section article{margin:7px 0;line-height:1.45}.monster-editor{gap:12px;display:grid}.form-grid{grid-template-columns:repeat(3,1fr);gap:9px;display:grid}.form-grid label,.monster-editor>label{text-transform:uppercase;letter-spacing:.06em;gap:4px;font-size:11px;display:grid}.entry-editor{grid-template-columns:minmax(120px,.35fr) 1fr;gap:7px;margin:6px 0;display:grid}.session-layout{grid-template-columns:minmax(0,2fr) minmax(250px,.7fr);gap:12px;display:grid}.session-card,.loot-card{border-top:1px solid var(--gilt-soft);padding:12px 0}.loot-entry{background:#412e190d;border-radius:6px;justify-content:space-between;align-items:center;gap:10px;margin:5px 0;padding:8px;display:flex}.reveal-editor{max-width:720px}.reveal-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:16px;display:grid}@media (width<=900px){.dm-dashboard-grid,.dm-encounter-layout,.monster-guide,.maps-library,.session-layout{grid-template-columns:1fr}.dm-encounter-layout>.dm-panel:first-child{order:2}.dm-encounter-layout>.dm-initiative{order:1}.dm-encounter-layout>.dm-panel:last-child{order:3}.monster-list{max-height:32vh;overflow:auto}.form-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=901px){.app-shell:has(.dm-studio) main.content{max-width:1540px;padding-inline:28px}}@media (width<=600px){.dm-studio-header{align-items:center}.dm-studio-header h1{font-size:25px}.dm-nav{margin-inline:-14px;padding-inline:14px}.dm-party-grid,.form-grid{grid-template-columns:1fr}.monster-vitals{grid-template-columns:repeat(2,1fr)}.ability-grid{grid-template-columns:repeat(3,1fr)}.initiative-instance{grid-template-columns:35px 1fr repeat(2,auto)}.initiative-instance .badge{display:none}.entry-editor{grid-template-columns:1fr}.loot-entry{flex-direction:column;align-items:flex-start}}.success-banner{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--ink);border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);border-radius:var(--card-radius);padding:.65em .85em;font-size:13px}.mention{--tag-ink:#5a4b69;--tag-wash:#5a4b692b;color:var(--tag-ink);background:linear-gradient(transparent 42%, var(--tag-wash) 42%);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:2px;padding:0 .1em;font-weight:600;text-decoration:none}.mention-character{--tag-ink:#245578;--tag-wash:#387fa933}.mention-npc{--tag-ink:#81503a;--tag-wash:#a6674230}.mention-place{--tag-ink:#356848;--tag-wash:#50976833}.mention-faction{--tag-ink:#65632d;--tag-wash:#99974130}.mention-historical_event{--tag-ink:#704c70;--tag-wash:#975c992e}.mention-quest{--tag-ink:#76571f;--tag-wash:#b3893a38}.mention-key_item{--tag-ink:#654c79;--tag-wash:#8762a530}.mention-creature{--tag-ink:#803e4b;--tag-wash:#b14c602e}.mention-deity{--tag-ink:#5b527e;--tag-wash:#7068a32e}.mention-spell{--tag-ink:#414e8c;--tag-wash:#5f70b930}.mention-other{--tag-ink:#52616a;--tag-wash:#5c78852b}.mention:hover,.mention:focus-visible{background:var(--tag-wash);text-underline-offset:2px;text-decoration:underline;text-decoration-thickness:1px}button.mention-pending,span.mention-pending{min-height:0;color:var(--tag-ink);background:linear-gradient(transparent 42%, var(--tag-wash) 42%);font:inherit;font-weight:600;line-height:inherit;vertical-align:baseline;border:0;padding:0 .1em;display:inline}span.mention-pending{cursor:default}.mention-autocomplete{z-index:30;background:var(--card);border-radius:var(--chip-radius,8px);border:1px solid #0000002e;min-width:180px;max-width:min(320px,100vw - 32px);max-height:220px;margin:4px 0 0;padding:4px;list-style:none;position:fixed;overflow-y:auto;box-shadow:0 10px 30px #00000040}.mention-autocomplete li{border-radius:calc(var(--chip-radius,8px) - 3px);font:400 14px var(--font-serif);color:var(--ink);cursor:pointer;justify-content:space-between;gap:10px;padding:6px 8px;display:flex}.mention-autocomplete li.active,.mention-autocomplete li:hover{background:color-mix(in srgb, var(--accent) 14%, transparent)}.mention-autocomplete-type{font:500 9.5px var(--font-mono);color:var(--ink-muted);text-transform:uppercase;flex:none;align-self:center}.annotation-question{color:var(--question-fg)}.annotation-important{color:var(--important-fg)}.annotation-follow_up{color:var(--followup-fg)}.annotation-secret{color:var(--secret-fg)}.annotation-player_knowledge{color:var(--player-fg)}.annotation-theory{color:var(--theory-fg)}.annotation-character_moment{color:var(--moment-fg)}.inline-annotation,.annotation-tag{background:color-mix(in srgb, currentColor 16%, transparent);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:2px;padding:0 .12em;font-weight:600}.annotation-tag{text-transform:capitalize;font-size:11px}.ability-row{border-top:1px solid var(--hairline-strong);border-bottom:1px solid var(--hairline);justify-content:space-between;padding:10px 0;display:flex}.ability{text-align:center;flex:1}.ability .label{font:600 8.5px var(--font-mono);color:var(--ink-muted)}.ability .score{font:400 20px/1.2 var(--font-serif)}.ability .mod{font:500 9.5px var(--font-mono);color:var(--accent)}.stat-strip{font:400 11.5px var(--font-mono);color:var(--ink-muted);flex-wrap:wrap;align-items:baseline;gap:9px;margin-top:9px;display:flex}.stat-strip .sep{color:var(--hairline-strong)}.stat-strip button{min-height:0;font:inherit;color:inherit;cursor:pointer;border:none;border-bottom:1px dotted var(--ink-muted);background:0 0;border-radius:0;margin:0;padding:0}.stat-strip button:hover{color:var(--accent);border-bottom-color:var(--accent)}.stat-strip .effective-differs{color:var(--accent);font-weight:600}.normal-hint{opacity:.8;font-size:10px}.override-hint{opacity:.8;font-style:italic}.stat-breakdown-row{justify-content:space-between;gap:12px;padding:3px 0;font-size:13.5px;display:flex}.stat-breakdown-row .label{color:var(--ink)}.stat-breakdown-row .label.temporary{color:var(--accent)}.stat-breakdown-row .value{font:500 13px var(--font-mono);flex:none}.stat-breakdown-divider{background:var(--hairline-strong);height:1px;margin:5px 0}.stat-breakdown-total{font-family:var(--font-serif);justify-content:space-between;padding-top:2px;font-size:16px;display:flex}.stat-breakdown-total .value{font:600 17px var(--font-mono)}.stat-breakdown-normal{color:var(--ink-muted);justify-content:space-between;margin-top:6px;font-size:12.5px;display:flex}.stat-breakdown-advdis{font:600 10px var(--font-mono);text-transform:uppercase;letter-spacing:.06em;border:1px solid;border-radius:6px;padding:1px 6px}.field-row{border-top:1px solid var(--hairline);font-family:var(--font-serif);justify-content:space-between;align-items:center;padding:11px 0;font-size:15px;display:flex}.field-row:last-child{border-bottom:1px solid var(--hairline)}.field-row.add{color:var(--accent);cursor:pointer}.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 10px;display:grid}.skill-row{cursor:pointer;text-align:left;min-height:36px;font:400 13px var(--font-serif);color:var(--ink);background:0 0;border:none;border-radius:10px;align-items:center;gap:6px;padding:6px 0;display:flex}.skill-dot{border:1.4px solid var(--ink-muted);background:0 0;border-radius:50%;flex:none;width:9px;height:9px}.skill-row.proficient .skill-dot{background:var(--accent);border-color:var(--accent)}.skill-row.proficient{font-weight:600}.skill-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.skill-ability{font:600 9px var(--font-mono);letter-spacing:.06em;color:var(--ink-muted);flex:none}.skill-bonus{font:500 12px var(--font-mono);text-align:right;min-width:1.8em;color:var(--ink-muted);flex:none}.skill-row.proficient .skill-bonus{color:var(--ink)}@media (width<=380px){.skills-grid{grid-template-columns:1fr}}.proficiency-panel .chip.dim,.proficiency-panel .skill-row.dim{opacity:.45}.grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75em;display:grid}.grid-4{grid-template-columns:repeat(4,1fr);gap:7px;display:grid}.party-grid{grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:12px;display:grid}.party-tile{min-height:176px;padding:14px 15px}.party-tile.is-linked-target,.fallen-party-row.is-linked-target{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 25%, transparent);opacity:1}.party-hp-value{font:600 12px var(--font-mono)}.hp-bar.party-hp-bar{height:8px;margin-top:4px}.party-statuses{flex-wrap:wrap;gap:5px;display:flex}.badge.concentration{border-color:color-mix(in srgb, var(--accent) 50%, transparent);color:var(--accent);background:color-mix(in srgb, var(--accent) 9%, transparent)}.party-slot-groups{flex-direction:column;gap:6px;padding-top:2px;display:flex}.party-slot-group{align-items:center;gap:8px;display:flex}.party-slot-level{text-align:center;width:24px;font:600 10px var(--font-mono);color:var(--ink-muted);flex:none}.party-slot-pips{flex-wrap:wrap;gap:5px;display:flex}.party-slot-token{border:1.5px solid var(--accent);width:25px;height:25px;color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);font:600 8px var(--font-mono);letter-spacing:-.04em;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.party-slot-token.spent{color:#221f194d;background:#221f190e;border-color:#221f1929}.party-death-saves{border:1px solid color-mix(in srgb, var(--danger) 35%, transparent);background:var(--danger-bg);border-radius:12px;flex-wrap:wrap;align-items:center;gap:7px;padding:7px 10px;display:flex}.party-save-track{gap:3px;display:inline-flex}.party-save-track span{color:#221f193d;width:18px;height:18px;font:600 11px var(--font-mono);border:1px solid #221f192e;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.party-save-track.success span.marked{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent)}.party-save-track.failure span.marked{color:var(--danger);border-color:var(--danger);background:var(--danger-bg)}.fallen-party{margin-top:8px}.fallen-party-row{opacity:.72;align-items:center;padding:10px 12px}.hp-bar{background:#221f191a;border-radius:3px;height:6px;margin-top:2px;overflow:hidden}.hp-bar .fill{background:var(--accent);border-radius:inherit;height:100%}.hp-bar .fill.low{background:var(--danger)}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--hairline);font-family:var(--font-serif);padding:.5em}th{color:var(--ink-muted);font:600 10px var(--font-mono);text-transform:uppercase;letter-spacing:.1em}.dashed-action{border-radius:var(--card-radius);text-align:center;min-height:48px;font:500 10.5px var(--font-mono);letter-spacing:.08em;color:var(--accent);cursor:pointer;background:0 0;border:1.5px dashed #221f193d;width:100%;padding:12px}.dashed-action:hover{border-color:color-mix(in srgb, var(--accent) 55%, transparent);background:var(--tint-soft)}.spell-picker-backdrop{z-index:50;padding:16px 16px calc(16px + env(safe-area-inset-bottom));background:#14100c7a;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.spell-picker{border-radius:24px;width:min(100%,560px);max-height:min(78vh,720px);overflow-y:auto;box-shadow:0 18px 60px #00000059}.spell-picker-row{border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:center;gap:14px;padding:12px 2px;display:flex}.spell-picker-row>div{flex:1;min-width:0}.spell-picker-row strong{font-family:var(--font-serif);font-size:16px}.spell-card-heading{align-items:center;gap:12px;min-width:0;display:flex}.spell-summary-grid{grid-template-columns:1fr 1fr;gap:7px 14px;margin-top:12px;font-size:13px;display:grid}.spell-details{border-top:1px solid var(--hairline);border-radius:0 0 var(--card-radius) var(--card-radius);background:#221f1906;margin:14px -16px -14px;padding:14px 16px}.spell-detail-grid{grid-template-columns:minmax(100px,.65fr) 1fr;gap:6px 12px;margin:0;display:grid}.spell-detail-grid dt{font:600 9px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted)}.spell-detail-grid dd{margin:0;font-size:13px}@media (width>=640px){.spell-picker-backdrop{align-items:center}}.modal-backdrop{z-index:50;padding:16px 16px calc(16px + env(safe-area-inset-bottom));background:#14100c7a;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal-sheet{border-radius:24px;width:min(100%,560px);max-height:min(78vh,720px);overflow-y:auto;box-shadow:0 18px 60px #00000059}@media (width>=640px){.modal-backdrop{align-items:center}}.focal-picker-backdrop{z-index:55;background:#14100c7a;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.focal-picker{border-radius:24px;width:min(100%,420px);box-shadow:0 18px 60px #00000059}.focal-picker-image{cursor:crosshair;border-radius:14px;width:100%;line-height:0;position:relative;overflow:hidden}.focal-picker-image img{-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.focal-picker-marker{border:2px solid var(--accent);pointer-events:none;border-radius:50%;width:26px;height:26px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #ffffffd9,0 1px 4px #0006}.focal-picker-preview{border:1.5px solid var(--hairline-strong);border-radius:50%;flex:none;width:56px;height:56px;display:block;overflow:hidden}@media (width>=640px){main.content{max-width:620px}}@media (width>=900px){main.content{max-width:760px;padding:28px 32px 44px}.app-shell.has-floats main.content{padding-top:calc(76px + env(safe-area-inset-top));padding-bottom:calc(112px + env(safe-area-inset-bottom))}.screen-header{margin-inline:-32px;padding-inline:32px}.floats--top{max-width:760px;margin-inline:auto;padding-inline:26px}.dock{max-width:544px;margin-inline:auto}.dock__tabs a:hover:not(.active){background:color-mix(in srgb, var(--ink) 6%, transparent);color:var(--ink)}.app-shell:has(.combat-page) main.content{max-width:980px}.app-shell:has(.combat-page) .floats--top{max-width:980px}.combat-grid{grid-template-columns:repeat(3,1fr);align-items:start;gap:16px;display:grid}}.turn-panel{background:var(--card);border:1px solid var(--hairline);box-shadow:var(--shadow-card);border-radius:22px;flex-direction:column;gap:10px;padding:10px 14px;display:flex}@media (width<=899px){.turn-panel{left:12px;right:12px;bottom:calc(var(--dock-clearance) + 8px);z-index:18;background:color-mix(in srgb, var(--card) 86%, transparent);-webkit-backdrop-filter:blur(20px)saturate(170%);backdrop-filter:blur(20px)saturate(170%);position:fixed;box-shadow:0 12px 30px -12px #221f196b}}.turn-panel-handle{cursor:pointer;background:0 0;border:none;border-radius:0;justify-content:space-between;align-items:center;width:100%;min-height:0;padding:0;display:flex}.turn-panel-pips{align-items:flex-end;gap:8px;display:flex}.turn-pip{border:1px solid var(--hairline-strong);background:0 0;border-radius:14px;flex-direction:column;flex:1;align-items:center;gap:3px;min-height:0;padding:6px 4px;display:flex}.turn-pip.ready{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent)}.turn-pip.spent{opacity:.55}.turn-pip-mark{font:600 15px var(--font-mono);line-height:1}.turn-panel-movement{flex-direction:column;flex:1.3;align-items:center;gap:3px;display:flex}.turn-panel-movement .row{flex-wrap:nowrap}.turn-panel-movement button.small{width:32px;min-width:32px;height:32px;min-height:32px;padding:0}.card.accent .mono-label{color:var(--accent)}.upcoming-group{flex-direction:column;gap:2px;display:flex}.upcoming-row{text-align:left;width:100%;min-height:0;font:400 12.5px var(--font-serif);color:var(--ink);background:0 0;border:none;border-radius:0;padding:2px 0;display:block}.upcoming-row:disabled{color:var(--ink-muted);cursor:default}.upcoming-row:not(:disabled):hover{color:var(--accent)}.quick-action-card.unavailable{opacity:.6}.quick-action-reason{line-height:1.3;display:block}.vital-detail-toggle{min-height:0;color:var(--ink-muted);background:0 0;border:none;padding:0;font-size:10px;line-height:1}.vital-detail-toggle:hover{color:var(--accent)}.undo-toast{left:50%;bottom:calc(var(--dock-clearance) + 14px);z-index:40;background:var(--ink);color:var(--card);border-radius:var(--pill-radius);font:500 13px var(--font-sans);align-items:center;gap:12px;max-width:calc(100vw - 32px);padding:8px 8px 8px 18px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 12px 30px -10px #00000080}.undo-toast button{color:var(--card);background:0 0;border-color:#fbf8f180}.card.edit-mode{border-style:dashed;border-color:color-mix(in srgb, var(--accent) 45%, transparent)}.view-switch{background:var(--card);border:1px solid var(--hairline);border-radius:var(--pill-radius);box-shadow:var(--shadow-card);flex-wrap:nowrap;gap:0;padding:3px}.view-switch button{border-radius:var(--pill-radius);min-height:38px;box-shadow:none;border:none;flex:1}.tabletop-map-view{flex-direction:column;gap:10px;display:flex}.tabletop-dm-controls .row{flex-wrap:wrap;gap:8px}.tabletop-token-list{flex-direction:column;gap:4px;margin:8px 0 0;padding:0;list-style:none;display:flex}.tabletop-token-list li{justify-content:space-between;align-items:center;gap:8px;padding:4px 0;display:flex}@media (width>=901px){.app-shell:has(.combat-page[data-view=map]) main.content{max-width:1300px}}.map-canvas-viewport{aspect-ratio:4/3;touch-action:none;background:linear-gradient(45deg, #0000000f 25%, transparent 25%, transparent 75%, #0000000f 75%) 0 0/20px 20px, linear-gradient(45deg, #0000000f 25%, transparent 25%, transparent 75%, #0000000f 75%) 10px 10px/20px 20px, var(--band);border:1px solid var(--border);border-radius:var(--card-radius);width:100%;position:relative;overflow:hidden}.map-canvas-stage{transform-origin:0 0;position:absolute;inset:0}.map-canvas-svg{width:100%;height:100%;display:block}.map-canvas-grid-line{stroke:#0006;stroke-width:1px;vector-effect:non-scaling-stroke;pointer-events:none}.map-canvas-empty{height:100%;color:var(--ink-muted);font:400 13px var(--font-serif);text-align:center;place-items:center;padding:24px;display:grid}.map-canvas-controls{z-index:2;flex-direction:column;gap:4px;display:flex;position:absolute;bottom:8px;right:8px}.map-canvas-controls button{width:30px;height:30px;min-height:0;padding:0;font-size:15px;line-height:1}.token-sprite{cursor:default}.token-sprite.draggable{cursor:grab}.token-sprite.draggable:active{cursor:grabbing}.token-sprite-initial{fill:#fff;font-weight:700;font-family:var(--font-serif);pointer-events:none}.token-sprite-label{fill:#fff;font-family:var(--font-sans);paint-order:stroke fill;stroke:#000000d9;stroke-width:.12em;stroke-linejoin:round;pointer-events:none;font-weight:600}.token-sprite-condition{fill:var(--paper);font-family:var(--font-mono);paint-order:stroke fill;stroke:var(--danger);stroke-width:.12em;stroke-linejoin:round;pointer-events:none;font-weight:700}.token-sprite-hp-track{fill:#00000059}.token-sprite-hp-fill{fill:var(--ok)}.token-sprite-hp-fill.low{fill:var(--danger)}.token-sprite-hp-text{fill:#fff;font-family:var(--font-mono);paint-order:stroke fill;stroke:#000000d9;stroke-width:.12em;pointer-events:none;font-weight:600}.token-sprite-pip{fill:#00000059;stroke:#ffffffb3;stroke-width:1px;vector-effect:non-scaling-stroke;pointer-events:none}.token-sprite-pip.filled{fill:var(--gilt);stroke:#00000080}.maps-library{grid-template-columns:minmax(230px,.65fr) minmax(0,2fr);align-items:start;gap:12px;display:grid}.maps-library-list{flex-direction:column;gap:10px;display:flex}.maps-library-preview{margin-top:2px}.maps-library-live-notice{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:2px;display:flex}.battlemap-list{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;display:grid}.battlemap-card{text-align:left;background:#ffffff47;border:1px solid #4b351b2e;border-radius:8px;gap:6px;padding:8px;display:grid}.battlemap-card.selected{border-color:var(--gilt);box-shadow:0 0 0 2px #ad7e271f}.battlemap-thumb{aspect-ratio:4/3;object-fit:cover;border:1px solid var(--border);border-radius:6px;width:100%}@media (width<=600px){.map-canvas-viewport{aspect-ratio:1}}.map-canvas-zone{fill:color-mix(in srgb, var(--ok) 22%, transparent);stroke:var(--ok);stroke-width:2px;vector-effect:non-scaling-stroke;pointer-events:none}.map-canvas-draw-rect{fill:color-mix(in srgb, var(--accent) 25%, transparent);stroke:var(--accent);stroke-width:2px;stroke-dasharray:6 4;vector-effect:non-scaling-stroke;pointer-events:none}.map-canvas-wall{stroke:var(--gilt-dark);stroke-width:4px;stroke-linecap:round;vector-effect:non-scaling-stroke;pointer-events:none}.map-canvas-draw-wall-line{stroke:var(--gilt);stroke-width:4px;stroke-linecap:round;stroke-dasharray:6 4;vector-effect:non-scaling-stroke;pointer-events:none}.map-canvas-path-preview-line{fill:none;stroke-width:3px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke;pointer-events:none}.map-canvas-path-preview.ok .map-canvas-path-preview-line{stroke:var(--ok)}.map-canvas-path-preview.warn .map-canvas-path-preview-line{stroke:var(--gilt)}.map-canvas-path-preview.blocked .map-canvas-path-preview-line{stroke:var(--danger)}.map-canvas-path-preview-label{font-family:var(--font-mono);paint-order:stroke fill;stroke:#000000d9;stroke-width:.12em;pointer-events:none;font-weight:700}.map-canvas-path-preview.ok .map-canvas-path-preview-label{fill:var(--ok)}.map-canvas-path-preview.warn .map-canvas-path-preview-label{fill:var(--gilt)}.map-canvas-path-preview.blocked .map-canvas-path-preview-label{fill:var(--danger)}.map-canvas-controls button.active,.map-canvas-controls button[aria-pressed=true]{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.tabletop-wall-editor .tabletop-wall-list,.tabletop-wall-list{flex-direction:column;gap:6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.tabletop-wall-list li{justify-content:space-between;align-items:center;gap:8px;padding:4px 0;display:flex}.tabletop-turn-hud{flex-direction:column;gap:6px;display:flex}.tabletop-turn-hud-controls{gap:6px}.tabletop-turn-hud-pips{align-items:center;gap:6px}.tabletop-turn-hud-pip{border:1px solid var(--border-strong);width:18px;height:18px;font:700 10px var(--font-mono);color:var(--ink-muted);background:#0000000f;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.tabletop-turn-hud-pip.filled{color:var(--accent-fg);background:var(--gilt);border-color:var(--gilt-dark)}.tabletop-entrance-setup ul,.tabletop-readiness-list,.tabletop-entrance-list,.tabletop-zone-list{flex-direction:column;gap:6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.tabletop-entrance-checklist label{cursor:pointer}.tabletop-readiness-list li,.tabletop-zone-list li{justify-content:space-between;align-items:center;gap:8px;padding:4px 0;display:flex}.tabletop-entrance-row{border-top:1px solid var(--border);margin-top:6px;padding-top:8px}.tabletop-entrance-row:first-child{border-top:none;margin-top:0;padding-top:0}.tabletop-entrance-row .tabletop-zone-list{margin-left:4px}.tabletop-pause-control{justify-content:flex-start}.dm-tabletop-bar{justify-content:space-between;align-items:center;gap:10px;padding:2px 2px 0;display:flex}@media (width>=901px){.app-shell:has(.dm-tabletop-panel) main.content{max-width:none;padding-inline:20px}.dm-studio:has(.dm-tabletop-panel){width:100%}.app-shell:has(.dm-tabletop-live){height:100vh}.app-shell:has(.dm-tabletop-live) main.content{flex-direction:column;height:100%;min-height:0;padding-block:14px;display:flex}.dm-studio:has(.dm-tabletop-live){flex-direction:column;flex:1;min-height:0;display:flex}.dm-studio:has(.dm-tabletop-live) .dm-workspace{flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}.dm-tabletop-live{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex}.dm-tabletop-live .tabletop-map-view{flex:1;min-height:0;position:relative}.dm-tabletop-live .map-canvas-viewport{aspect-ratio:auto;position:absolute;inset:0}.dm-tabletop-live .tabletop-pause-control,.dm-tabletop-live .tabletop-entrance-setup,.dm-tabletop-live .tabletop-readiness{z-index:3;max-width:min(280px,100% - 16px);box-shadow:var(--shadow-md);margin:0;position:absolute;top:8px;left:8px}.dm-tabletop-live .tabletop-pause-control{background:var(--card);border:1px solid var(--border);border-radius:var(--card-radius);padding:6px 10px}.dm-tabletop-live .tabletop-dm-controls{z-index:3;width:min(400px,100% - 16px);box-shadow:var(--shadow-md);position:absolute;top:8px;right:8px}.dm-tabletop-live .tabletop-turn-hud{z-index:3;background:var(--card);border:1px solid var(--border);border-radius:var(--card-radius);max-width:min(280px,100% - 16px);box-shadow:var(--shadow-md);margin:0;padding:6px 10px;position:absolute;bottom:8px;left:8px}.dm-tabletop-live .tabletop-map-view>.card{padding:8px 12px}.dm-tabletop-live .tabletop-map-view>.card h3{margin:0 0 6px;font-size:12.5px}.dm-tabletop-live .tabletop-dm-controls .row>select{flex:none;width:auto;min-width:80px}.dm-tabletop-live .tabletop-dm-controls .row>input{flex:90px;width:auto;min-width:0}.dm-tabletop-live .tabletop-dm-controls .row>button{flex:none}.dm-tabletop-live .tabletop-token-list,.dm-tabletop-live .tabletop-entrance-checklist,.dm-tabletop-live .tabletop-readiness-list{max-height:min(30vh,220px);overflow-y:auto}}.spell-slot-overview{flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}.spell-slot-overview__item{border:1px solid var(--hairline);white-space:nowrap;border-radius:999px;padding:5px 8px;font-size:12px}.spell-slot-overview__item strong{color:var(--accent)}.journal-summary-preview{color:var(--ink-muted);margin:0;line-height:1.5}.journal-cover{object-fit:cover;background:var(--well);width:100%;display:block}.journal-cover-card{border-radius:10px;height:clamp(130px,24vw,220px);margin-bottom:6px}.journal-cover-detail{aspect-ratio:16/9;border-radius:var(--card-radius);max-height:420px}.journal-image-choices{flex-wrap:wrap;gap:10px;display:flex}.journal-image-choice{text-align:center;gap:5px;width:116px;min-height:0;padding:5px;font-size:12px;display:grid}.journal-image-choice img{object-fit:cover;border-radius:6px;width:100%;height:82px}.journal-image-choice.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}
