:root{--bg-global:#070b0a;--bg-canvas:#0b0f17;--bg-surface:#101816;--bg-surface-secondary:#16231f;--bg-surface-elevated:#1d2b26;--border-subtle:#2b3a34;--border-active:#d6a84f;--accent-primary:#d6a84f;--accent-secondary:#3fbf8f;--text-strong:#f4efe3;--text-normal:#d7d0c2;--text-weak:#9ca89f;--danger:#d66a5e;--warning:#e0b45c;--success:#69c98f;--bg-primary:var(--bg-global);--bg-secondary:var(--bg-surface);--bg-card:var(--bg-surface-secondary);--bg-input:var(--bg-surface-elevated);--bg-hover:#d6a84f14;--bg-active:#d6a84f26;--bg-tooltip:var(--bg-surface-elevated);--bg-modal:var(--bg-surface-elevated);--text-primary:var(--text-strong);--text-secondary:var(--text-normal);--text-tertiary:var(--text-weak);--text-muted:var(--text-weak);--text-brand:var(--accent-primary);--text-inverse:#070b0a;--border-color:var(--border-subtle);--border-hover:var(--border-active);--border-light:#ffffff0f;--accent:var(--accent-primary);--accent-dim:#d6a84f1f;--accent-glow:#d6a84f40;--brand-green:var(--accent-secondary);--brand-green-dim:#3fbf8f1f;--danger-dim:#d66a5e26;--success-dim:#69c98f26;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--shadow-soft:0 8px 24px #00000040;--shadow-panel:0 12px 40px #00000059;--shadow-glow-gold:0 0 0 1px #d6a84f59, 0 0 24px #d6a84f14;--text-xs:11px;--text-sm:12px;--text-md:14px;--text-lg:16px;--text-xl:20px;--text-2xl:24px;--scrollbar-thumb:var(--border-subtle);--scrollbar-track:transparent;color:var(--text-primary);background:var(--bg-global);font-synthesis:none;text-rendering:optimizelegibility;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}[data-theme=light]{--bg-global:#faf9f5;--bg-canvas:#f0ede5;--bg-surface:#fff;--bg-surface-secondary:#f5f3ed;--bg-surface-elevated:#fff;--border-subtle:#e0ddd5;--border-active:#b8860b;--accent-primary:#b8860b;--accent-secondary:var(--accent-primary);--text-strong:#1a1a1a;--text-normal:#444;--text-weak:#888;--danger:#c0392b;--warning:#b8860b;--success:#16a34a;--bg-primary:var(--bg-global);--bg-secondary:var(--bg-surface);--bg-card:var(--bg-surface-secondary);--bg-input:var(--bg-surface-secondary);--bg-hover:#0000000a;--bg-active:#b8860b1a;--bg-tooltip:#2a2a2a;--bg-modal:#fff;--text-primary:var(--text-strong);--text-secondary:var(--text-normal);--text-tertiary:var(--text-weak);--text-muted:var(--text-weak);--text-brand:var(--accent-primary);--text-inverse:#f0ede0;--border-color:var(--border-subtle);--border-hover:#ccc8be;--border-light:#0000000f;--accent:var(--accent-primary);--accent-dim:#b8860b1f;--accent-glow:#b8860b33;--brand-green:var(--accent-secondary);--brand-green-dim:#1f5f431f;--danger-dim:#c0392b1a;--success-dim:#16a34a1a;--scrollbar-thumb:#ccc8be;--scrollbar-track:transparent;color:var(--text-primary);background:var(--bg-global)}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}::selection{background:var(--accent-dim);color:var(--text-strong)}button,input,select,textarea{font:inherit}button{cursor:pointer}.auth-shell{grid-template-columns:minmax(0,1.2fr) minmax(360px,480px);min-height:100vh;display:grid}.auth-visual{color:#f8f4e8;background:linear-gradient(135deg,#1b4332eb,#0c221af5),radial-gradient(circle at 70% 28%,#bfa14a47,#0000 35%);flex-direction:column;justify-content:space-between;padding:56px;display:flex}.brand-mark{color:#fff8e5;align-items:center;gap:10px;width:fit-content;font-weight:800;display:inline-flex}.brand-mark svg{color:#f2c14e;width:26px;height:26px}.brand-mark.compact{color:#181f1b}.auth-visual h1{letter-spacing:0;max-width:720px;margin:96px 0 0;font-size:clamp(3rem,8vw,6.8rem);line-height:.94}.auth-visual p{color:#ded8c8;max-width:620px;margin:28px 0 0;font-size:1.1rem;line-height:1.7}.status-strip{flex-wrap:wrap;gap:10px;margin-top:48px;display:flex}.status-strip span{color:#fff8e5;border:1px solid #fff8e53d;border-radius:8px;padding:9px 12px;font-size:.86rem}.auth-panel{background:var(--bg-surface-secondary);border-left:1px solid #d7d0c0;flex-direction:column;justify-content:center;padding:48px;display:flex}.auth-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:28px;display:grid}.auth-tabs button,.ghost-button,.primary-button{border-radius:var(--radius-md);min-height:44px;font-weight:600;font-size:var(--text-sm);cursor:pointer;justify-content:center;align-items:center;gap:9px;display:inline-flex}.auth-tabs button,.ghost-button{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);color:var(--text-normal)}.ghost-button:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-color)}.auth-tabs button.active,.primary-button{border:1px solid var(--accent-primary);background:var(--accent-primary);color:#070b0a;font-weight:700}.primary-button:hover:not(:disabled){background:#c49a3e;border-color:#c49a3e}.primary-button:disabled,.ghost-button:disabled{cursor:wait;opacity:.62}.primary-button svg,.ghost-button svg,.auth-tabs svg{width:18px;height:18px}.form-stack{gap:16px;display:grid}label{color:var(--text-weak);gap:8px;font-size:.9rem;font-weight:750;display:grid}input,select,textarea{color:#151a17;background:#fff;border:1px solid #cfc7b6;border-radius:8px;outline:none;width:100%}input{min-height:44px;padding:0 12px}select{min-height:44px;padding:0 10px}textarea{resize:vertical;padding:12px}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px;transition:outline-color .15s}.message{color:var(--warning);margin:18px 0 0;font-weight:750}.message.docked{background:var(--accent-dim);border:1px solid #e4d1a5;border-radius:8px;max-width:360px;padding:14px 16px;transition:opacity .3s;position:fixed;bottom:24px;right:24px}.app-shell{grid-template-columns:88px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--bg-surface-secondary);border-right:1px solid #d7d0c0;flex-direction:column;align-items:center;gap:12px;padding:24px 14px;display:flex}.sidebar .ghost-button{width:56px;min-height:48px;padding:0;font-size:0}.topbar{justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px;display:flex}.topbar h1{letter-spacing:0;margin:0;font-size:clamp(2rem,4vw,4.2rem);line-height:1}.topbar svg{width:42px;height:42px;color:var(--brand-green)}.topbar-status{color:var(--text-weak);align-items:center;gap:12px;font-size:.86rem;font-weight:800;display:flex}.topbar-status svg{flex:none}.realtime-pill{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-surface-secondary);min-height:28px;color:var(--text-weak);font-size:var(--text-sm);align-items:center;gap:.35rem;padding:0 10px;font-weight:500;display:inline-flex}.realtime-pill:before{content:"";background:var(--text-weak);border-radius:50%;flex-shrink:0;width:7px;height:7px}.realtime-pill.online{border-color:var(--accent-secondary);background:var(--brand-green-dim);color:var(--accent-secondary)}.realtime-pill.online:before{background:var(--accent-secondary);box-shadow:0 0 6px #3fbf8f66}.realtime-pill.connecting{border-color:var(--warning);color:var(--warning);background:#e0b45c1f}.realtime-pill.connecting:before{background:var(--warning);animation:1.5s infinite pulse-bell}.small-label{color:var(--text-weak);margin:0 0 8px;font-size:.88rem;font-weight:800}.panel{background:var(--bg-surface-secondary);border:1px solid #d7d0c0;border-radius:8px;min-height:260px;padding:22px}.panel h2{margin:0 0 18px;font-size:1.15rem}.panel h3{margin:28px 0 12px;font-size:.96rem}.campaign-list{gap:10px;display:grid}.campaign-row{color:#171c18;text-align:left;background:#fff;border:1px solid #ddd5c6;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;width:100%;padding:14px;display:flex}.campaign-row.selected{border-color:var(--brand-green);background:#eef5ef}.campaign-row span{gap:4px;display:grid}.campaign-row small,.member-row small,.muted{color:var(--text-weak)}.campaign-row em{color:#8a3b12;text-transform:uppercase;font-size:.78rem;font-style:normal;font-weight:900}.detail-panel{min-height:520px}.action-row{flex-wrap:wrap;gap:10px;margin:20px 0 0;display:flex}.invite-code{overflow-wrap:anywhere;color:#233026;background:#f4f1e8;border:1px solid #d7d0c0;border-radius:8px;max-width:100%;margin:14px 0 0;padding:12px;display:block}.member-list{gap:8px;display:grid}.member-row{border-bottom:1px solid #ece5d8;justify-content:space-between;gap:16px;padding:11px 0;display:flex}.character-section{border-top:1px solid #ece5d8;margin-top:32px;padding-top:10px}.section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.section-heading svg{color:#8a3b12;width:22px;height:22px}.character-form{gap:14px;margin-top:12px;display:grid}.mini-grid,.ability-grid{gap:10px;display:grid}.mini-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.mini-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.ability-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.ability-grid label,.mini-grid label{font-size:.76rem}.ability-grid input,.mini-grid input{min-height:38px;padding:0 8px}.character-layout{grid-template-columns:minmax(220px,.9fr) minmax(260px,1.1fr);gap:14px;margin-top:18px;display:grid}.character-list{align-content:start;gap:8px;display:grid}.character-row{color:#171c18;text-align:left;background:#fff;border:1px solid #ddd5c6;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:12px;display:flex}.character-row.selected{background:var(--accent-dim);border-color:#8a3b12}.character-row span{gap:4px;display:grid}.character-row small{color:var(--text-weak)}.character-row em{color:var(--brand-green);white-space:nowrap;font-size:.78rem;font-style:normal;font-weight:900}.sheet-preview{background:var(--bg-surface-secondary);border:1px solid #d7d0c0;border-radius:8px;padding:16px}.sheet-title{justify-content:space-between;gap:16px;display:flex}.sheet-title h4{margin:0;font-size:1.12rem}.sheet-title p,.sheet-notes{color:var(--text-weak);margin:7px 0 0;line-height:1.5}.sheet-title svg{color:#8a3b12;flex:none;width:26px;height:26px}.stat-strip,.ability-summary{gap:8px;margin-top:16px;display:grid}.stat-strip{grid-template-columns:repeat(4,minmax(0,1fr))}.stat-strip span,.ability-summary span{color:#263229;text-align:center;background:#fff;border:1px solid #ddd5c6;border-radius:8px;place-items:center;min-height:48px;font-size:.82rem;font-weight:850;display:grid}.ability-summary{grid-template-columns:repeat(6,minmax(0,1fr))}.ability-summary span{gap:2px;min-height:58px}.ability-summary strong{color:#8a3b12;font-size:.7rem}.compact-empty{min-height:120px}.session-section{border-top:1px solid #ece5d8;margin-top:32px;padding-top:10px}.session-layout,.roll-log-layout{gap:14px;margin-top:14px;display:grid}.session-layout{grid-template-columns:minmax(280px,1.1fr) minmax(240px,.9fr)}.roll-form,.log-note-form{align-content:start;gap:14px;display:grid}.roll-log-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.log-panel{background:var(--bg-surface-secondary);border:1px solid #d7d0c0;border-radius:8px;min-height:220px;padding:14px}.log-panel h4{margin:0 0 12px;font-size:.94rem}.roll-row,.log-row{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:14px;padding:11px 0;display:flex}.roll-row:last-child,.log-row:last-child{border-bottom:0}.roll-row span{gap:4px;display:grid}.roll-row small,.log-row small{color:var(--text-weak);font-size:.78rem}.roll-row em{background:var(--brand-green);min-width:46px;min-height:46px;color:var(--text-inverse);border-radius:8px;place-items:center;font-style:normal;font-weight:900;display:grid}.log-row{align-items:flex-start}.log-row.roll span{color:var(--brand-green);font-weight:750}.empty-state{color:#6a756d;text-align:center;place-items:center;gap:12px;min-height:160px;display:grid}.empty-state svg{color:#a8662f;width:42px;height:42px}@media (width<=1180px){.workspace-grid{grid-template-columns:minmax(280px,1fr) minmax(320px,1.2fr)}.detail-panel{grid-column:1/-1}}@media (width<=980px){.character-layout,.session-layout,.roll-log-layout{grid-template-columns:1fr}}@media (width<=780px){.auth-shell,.app-shell{grid-template-columns:1fr}.auth-visual,.auth-panel,.workspace{padding:28px}.auth-visual h1{margin-top:56px}.sidebar{border-bottom:1px solid #d7d0c0;border-right:0;flex-direction:row;justify-content:space-between}.workspace-grid{grid-template-columns:1fr}.mini-grid,.stat-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.mini-grid.three{grid-template-columns:1fr}.ability-grid,.ability-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}.vtt-section{border-top:1px solid #ece5d8;margin-top:32px;padding-top:10px}.vtt-layout{grid-template-columns:minmax(420px,1fr) minmax(280px,360px);gap:14px;margin-top:14px;display:grid}.vtt-board-panel,.vtt-control-panel{background:var(--bg-surface-secondary);border:1px solid #d7d0c0;border-radius:8px;min-height:360px;padding:14px}.vtt-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.vtt-toolbar div{gap:4px;display:grid}.vtt-toolbar small{color:var(--text-weak);font-size:.78rem;font-weight:750}.map-scroll{background:#ece5d8;border:1px solid #d7d0c0;border-radius:8px;max-width:100%;overflow:auto}.map-board{background-color:#f4f1e8;background-image:linear-gradient(to right, var(--border-subtle) 1px, transparent 1px), linear-gradient(to bottom, var(--border-subtle) 1px, transparent 1px);min-width:100%;min-height:360px;position:relative}.map-token{color:var(--text-inverse);border:3px solid #fffdf7;border-radius:999px;place-items:center;font-size:.78rem;font-weight:950;display:grid;position:absolute;box-shadow:0 8px 18px #141c1638}.vtt-control-panel,.scene-form,.token-form,.token-list{align-content:start;gap:12px;display:grid}.vtt-control-panel h4{margin:0;font-size:.94rem}.token-row{border-bottom:1px solid var(--border-subtle);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 0;display:grid}.token-row:last-child{border-bottom:0}.token-row span{gap:4px;display:grid}.token-row small{color:var(--text-weak);font-size:.78rem}.token-move-grid{grid-template-rows:repeat(2,32px);grid-template-columns:repeat(3,32px);gap:4px;display:grid}.token-move-grid button{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);min-width:32px;min-height:32px;color:var(--text-normal);border-radius:8px;font-weight:900}.token-move-grid button:first-child{grid-column:2}.token-move-grid button:nth-child(2){grid-area:2/1}.token-move-grid button:nth-child(3){grid-area:2/2}.token-move-grid button:nth-child(4){grid-area:2/3}@media (width<=980px){.vtt-layout{grid-template-columns:1fr}}.combat-section{border-top:1px solid #ece5d8;margin-top:32px;padding-top:10px}.combat-layout{grid-template-columns:minmax(420px,1fr) minmax(280px,360px);gap:14px;margin-top:14px;display:grid}.combat-panel{background:var(--bg-surface-secondary);border:1px solid #d7d0c0;border-radius:8px;min-height:260px;padding:14px}.combat-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.combat-toolbar div{gap:4px;display:grid}.combat-toolbar small{color:var(--text-weak);font-size:.78rem;font-weight:750}.encounter-form,.combatant-form{gap:12px;display:grid}.combat-action-row{flex-wrap:wrap;gap:8px;margin:14px 0;display:flex}.combatant-row{background:#fff;border:1px solid #ddd5c6;border-radius:8px;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.combatant-row.active{border-color:var(--accent-primary);background:var(--accent-dim)}.initiative-score{background:var(--brand-green);width:42px;height:42px;color:var(--text-inverse);border-radius:8px;place-items:center;font-weight:950;display:grid}.combatant-main{gap:4px;display:grid}.combatant-main small{color:var(--text-weak);font-size:.78rem}.combatant-actions{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.combatant-actions button{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);min-height:32px;color:var(--text-normal);border-radius:8px;font-weight:850}@media (width<=980px){.combat-layout{grid-template-columns:1fr}.combatant-row{grid-template-columns:42px minmax(0,1fr)}.combatant-actions{grid-column:1/-1;justify-content:flex-start}}.asset-form,.asset-picker{border-top:1px solid var(--border-subtle);align-content:start;gap:12px;padding-top:12px;display:grid}.asset-form h4,.asset-picker h4{margin:0;font-size:.94rem}.map-board.with-background{background-image:none;overflow:hidden}.map-board.with-background:after{content:"";z-index:1;pointer-events:none;background-image:linear-gradient(to right, var(--border-subtle) 1px, transparent 1px), linear-gradient(to bottom, var(--border-subtle) 1px, transparent 1px);background-size:inherit;position:absolute;inset:0}.map-background-image{z-index:0;object-fit:cover;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.map-token{z-index:2}.campaign-view-tabs{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);border-radius:12px;grid-template-columns:repeat(5,minmax(120px,1fr));gap:8px;margin:18px 0;padding:8px;display:grid}.campaign-view-tabs button{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);min-height:72px;color:var(--text-normal);text-align:left;border-radius:10px;gap:4px;padding:10px;display:grid}.campaign-view-tabs button.active{border-color:var(--accent-primary);background:var(--accent-dim);box-shadow:inset 0 0 0 1px var(--accent-primary)}.campaign-view-tabs small{color:var(--text-weak);font-size:.72rem;line-height:1.25}.campaign-view-shell{gap:18px;display:grid}.detail-panel{max-width:none}@media (width<=1100px){.campaign-view-tabs{flex-wrap:wrap}.campaign-view-tabs button{min-width:120px}}@media (width<=620px){.campaign-view-tabs{gap:var(--space-1);flex-direction:column}.campaign-view-tabs button{align-items:center;gap:var(--space-2);flex-direction:row;min-height:40px}.campaign-view-tabs button small{display:none}}.session-workspace{grid-template-columns:minmax(620px,1fr) minmax(340px,430px);align-items:start;gap:16px;display:grid}.session-side-zone{gap:16px;min-width:0;display:grid}.session-workspace .vtt-section,.session-workspace .combat-section,.session-workspace .session-section{border-top:0;margin-top:0;padding-top:0}.session-workspace .vtt-control-panel{grid-template-columns:repeat(2,minmax(220px,1fr));align-items:start;display:grid}.session-workspace .combat-layout,.session-workspace .session-grid{grid-template-columns:1fr}.session-workspace .map-scroll{max-height:72vh}@media (width<=1250px){.session-workspace,.session-workspace .vtt-control-panel{grid-template-columns:1fr}}.tool-card{background:var(--bg-surface-secondary);border:1px solid #d7d0c0;border-radius:10px;overflow:hidden}.tool-card summary{cursor:pointer;color:var(--text-normal);border-bottom:1px solid #0000;padding:12px 14px;font-weight:950;list-style:none}.tool-card summary::-webkit-details-marker{display:none}.tool-card summary:after{content:"+";float:right;font-weight:950}.tool-card[open] summary{border-bottom-color:var(--border-subtle);background:#f4f1e8}.tool-card[open] summary:after{content:"−"}.vtt-control-panel{gap:10px}.session-workspace .vtt-control-panel{max-height:72vh;padding-right:8px;overflow:auto}.session-workspace .tool-card{box-shadow:0 6px 16px #070b0a26}.session-workspace .vtt-board-panel{min-height:70vh}.session-workspace .map-board{min-height:60vh}.combat-command-card{background:var(--bg-surface-secondary);border:1px solid #d7d0c0;border-radius:12px;gap:12px;padding:14px;display:grid;box-shadow:0 8px 24px #070b0a26}.combat-command-header{justify-content:space-between;align-items:start;gap:16px;display:flex}.combat-command-header h4{margin:4px 0;font-size:1.15rem}.combat-command-header p{color:var(--text-weak);margin:0;font-size:.84rem;font-weight:750}.combat-status{width:fit-content;color:var(--text-normal);text-transform:uppercase;background:#ede7d8;border-radius:999px;padding:4px 8px;font-size:.72rem;font-weight:950;display:inline-flex}.combat-status.active{background:var(--accent-dim);color:var(--brand-green)}.combat-status.ended{color:var(--danger);background:#f1dedb}.combat-active-strip{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);border-radius:10px;justify-content:space-between;gap:12px;padding:10px 12px;display:flex}.combat-active-strip span{color:var(--text-weak);text-transform:uppercase;font-size:.78rem;font-weight:850}.combat-action-row.compact{margin:0}.combat-compact-layout{grid-template-columns:minmax(360px,1fr) minmax(280px,360px);gap:14px;margin-top:14px;display:grid}.combat-initiative-card,.combat-tools-card{background:var(--bg-surface-secondary);border:1px solid #d7d0c0;border-radius:12px;padding:14px}.combat-tools-card{align-content:start;gap:10px;display:grid}.combat-subheading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.combat-subheading h4{margin:0}.combat-subheading small{color:var(--text-weak);font-weight:850}.compact-initiative-list{gap:8px;display:grid}.compact-combatant-row{background:#fff;border:1px solid #ddd5c6;border-radius:10px;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;display:grid}.compact-combatant-row.active{border-color:var(--accent-primary);background:var(--accent-dim);box-shadow:inset 4px 0 0 var(--accent-primary)}.compact-combatant-row.defeated{opacity:.55}.compact-initiative-score{background:var(--brand-green);width:38px;height:38px;color:var(--text-inverse);border-radius:9px;place-items:center;font-weight:950;display:grid}.compact-combatant-main{gap:3px;min-width:0;display:grid}.compact-combatant-main strong,.compact-combatant-main small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.compact-combatant-main small{color:var(--text-weak);font-size:.78rem}.condition-line{color:var(--warning)!important}.compact-combatant-actions{gap:4px;display:flex}.compact-combatant-actions button{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);min-height:30px;color:var(--text-normal);border-radius:8px;padding:0 8px;font-weight:850}@media (width<=980px){.combat-command-header,.combat-active-strip{display:grid}.combat-compact-layout{grid-template-columns:1fr}.compact-combatant-row{grid-template-columns:38px minmax(0,1fr)}.compact-combatant-actions{grid-column:1/-1}}.session-command-card{background:var(--bg-surface-secondary);border:1px solid #d7d0c0;border-radius:12px;gap:10px;padding:14px;display:grid;box-shadow:0 8px 24px #070b0a26}.session-command-card h4{margin:4px 0;font-size:1.08rem}.session-command-card p{color:var(--text-weak);margin:0;font-size:.84rem;font-weight:750}.session-status{background:var(--accent-dim);width:fit-content;color:var(--brand-green);text-transform:uppercase;border-radius:999px;padding:4px 8px;font-size:.72rem;font-weight:950;display:inline-flex}.session-compact-layout{grid-template-columns:minmax(280px,360px) minmax(280px,1fr) minmax(280px,1fr);gap:14px;margin-top:14px;display:grid}.session-tools-card,.session-history-card{background:var(--bg-surface-secondary);border:1px solid #d7d0c0;border-radius:12px;align-content:start;gap:10px;padding:14px;display:grid}.session-subheading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:2px;display:flex}.session-subheading h4{margin:0}.session-subheading small{color:var(--text-weak);font-weight:850}.compact-roll-list,.compact-log-list{gap:8px;display:grid}.compact-roll-row,.compact-log-row{background:#fff;border:1px solid #ddd5c6;border-radius:10px;justify-content:space-between;align-items:start;gap:12px;padding:10px;display:flex}.compact-roll-row span{gap:3px;min-width:0;display:grid}.compact-roll-row strong,.compact-roll-row small,.compact-log-row span{text-overflow:ellipsis;overflow:hidden}.compact-roll-row strong,.compact-log-row span{color:var(--text-normal)}.compact-roll-row small,.compact-log-row small{color:var(--text-weak);font-size:.76rem;font-weight:750}.compact-roll-row em{background:var(--brand-green);min-width:42px;height:38px;color:var(--text-inverse);border-radius:9px;place-items:center;font-style:normal;font-weight:950;display:grid}.compact-log-row.note{border-left:4px solid #b7791f}.compact-log-row.roll{border-left:4px solid var(--accent-primary)}.session-workspace .session-compact-layout{grid-template-columns:1fr}@media (width<=1180px){.session-compact-layout{grid-template-columns:1fr}}body{background:radial-gradient(circle at top left, var(--accent-dim), transparent 34rem), linear-gradient(135deg, #f7f2e6 0%, #efe6d2 48%, #e6ddc9 100%);min-height:100vh}.app-shell{background:0 0;grid-template-columns:92px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--border-subtle);background:var(--bg-surface);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);align-self:start;height:100vh;padding:18px 12px;position:sticky;top:0;box-shadow:8px 0 24px #2330280f}.sidebar .brand-mark.compact{justify-content:center;width:100%;margin-bottom:18px}.sidebar .ghost-button{justify-content:center;width:100%;min-height:46px;padding:10px}.sidebar .ghost-button svg{margin:0}.sidebar .ghost-button{font-size:0}.sidebar .ghost-button svg{width:20px;height:20px}.workspace{width:100%;min-width:0;max-width:1840px;margin:0 auto;padding:24px}.topbar{z-index:20;background:var(--bg-surface);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid #2530281f;margin:-24px -24px 22px;padding:18px 24px;position:sticky;top:0}.topbar h1{letter-spacing:-.04em;margin:2px 0 0}.topbar-status{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);border-radius:999px;padding:8px 10px}.workspace-grid{grid-template-columns:minmax(260px,340px) minmax(260px,360px) minmax(0,1fr);align-items:start;gap:18px;display:grid}.panel{border:1px solid var(--border-subtle);background:var(--bg-surface-elevated);border-radius:16px;box-shadow:0 12px 30px #070b0a26}.detail-panel{min-width:0;padding:18px}.detail-panel>h2{letter-spacing:-.04em;margin-top:0;font-size:clamp(1.35rem,2vw,2rem)}.campaign-list{max-height:calc(100vh - 150px);overflow:auto}.campaign-row{border-radius:12px}.campaign-row.selected{box-shadow:inset 4px 0 0 var(--accent-primary)}.campaign-view-tabs{z-index:15;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow-soft);position:sticky;top:82px}.campaign-view-tabs button{transition:transform .15s,box-shadow .15s,border-color .15s,background .15s}.campaign-view-tabs button:hover{transform:translateY(-1px);box-shadow:0 6px 16px #0003}.campaign-view-shell{min-width:0}.section-heading h3{letter-spacing:-.03em}.vtt-board-panel,.combat-command-card,.combat-initiative-card,.combat-tools-card,.session-command-card,.session-tools-card,.session-history-card,.sheet-preview{border-radius:16px}.map-scroll{background-color:#0000;background-image:linear-gradient(45deg,#2530280a 25%,#0000 25%),linear-gradient(-45deg,#2530280a 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#2530280a 75%),linear-gradient(-45deg,#0000 75%,#2530280a 75%);background-position:0 0,0 14px,14px -14px,-14px 0;background-repeat:repeat,repeat,repeat,repeat;background-size:28px 28px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;border-radius:14px}.map-board{box-shadow:inset 0 0 0 1px #25302829}.map-token{border:2px solid var(--border-subtle);box-shadow:0 8px 18px #070b0a40}.session-workspace{align-items:stretch}.session-map-zone,.session-side-zone{min-width:0}.session-side-zone{max-height:calc(100vh - 190px);padding-right:6px;overflow:auto}.session-side-zone::-webkit-scrollbar{width:8px}.campaign-list::-webkit-scrollbar{width:8px}.vtt-control-panel::-webkit-scrollbar{width:8px}.session-side-zone::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:999px}.campaign-list::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:999px}.vtt-control-panel::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:999px}.tool-card{transition:border-color .15s,box-shadow .15s}.tool-card:hover{border-color:var(--accent-secondary)}.primary-button,.ghost-button,button{transition:transform .12s,box-shadow .12s,border-color .12s,background .12s}.primary-button:hover:not(:disabled),.ghost-button:hover:not(:disabled),button:hover:not(:disabled){transform:translateY(-1px)}input,textarea,select{border-radius:10px;transition:border-color .15s,box-shadow .15s}.message.docked{z-index:50;max-width:min(520px,100vw - 48px);transition:opacity .3s;position:fixed;bottom:24px;right:24px;box-shadow:0 18px 40px #2330282e}@media (width<=1350px){.workspace-grid{grid-template-columns:minmax(260px,320px) minmax(0,1fr)}.workspace-grid>.detail-panel{grid-column:1/-1}.campaign-view-tabs{top:78px}}@media (width<=900px){.app-shell{grid-template-columns:1fr}.sidebar{border-bottom:1px solid #2530281f;border-right:0;align-items:center;gap:8px;height:auto;padding:10px;display:flex;position:static}.sidebar .brand-mark.compact{width:auto;margin:0 auto 0 0}.sidebar .ghost-button{width:auto}.workspace{padding:16px}.topbar{margin:-16px -16px 16px;padding:14px 16px;position:static}.workspace-grid{grid-template-columns:1fr}.campaign-list{max-height:none}.campaign-view-tabs{position:static}.session-side-zone{max-height:none;padding-right:0;overflow:visible}}.session-quick-actions{border:1px solid var(--border-subtle);background:var(--bg-surface-elevated);border-radius:16px;grid-column:1/-1;justify-content:space-between;align-items:center;gap:14px;padding:12px 14px;display:flex;box-shadow:0 12px 30px #070b0a14}.quick-context{gap:2px;min-width:220px;display:grid}.quick-context span{color:var(--brand-green);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:950}.quick-context strong{color:var(--text-normal);font-size:1rem}.quick-context small{color:var(--text-weak);font-size:.78rem;font-weight:750}.quick-action-buttons{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.quick-action-buttons .ghost-button,.quick-action-buttons .primary-button{min-height:40px;padding:8px 12px}.quick-action-buttons svg{width:16px;height:16px}@media (width<=900px){.session-quick-actions{display:grid}.quick-action-buttons{justify-content:flex-start}}.map-ux-toolbar{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:12px 0;padding:10px;display:flex}.map-zoom-controls{align-items:center;gap:8px;display:inline-flex}.map-zoom-controls button,.snap-toggle{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);min-height:36px;color:var(--text-normal);border-radius:10px;font-weight:900}.map-zoom-controls button{width:36px;padding:0}.map-zoom-controls svg,.snap-toggle svg{width:16px;height:16px}.snap-toggle{align-items:center;gap:6px;padding:8px 10px;display:inline-flex}.snap-toggle.active{border-color:var(--accent-primary);background:var(--accent-dim);color:var(--brand-green)}.selected-token-card{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);border-radius:10px;gap:2px;min-width:180px;padding:8px 10px;display:grid}.selected-token-card span{color:var(--brand-green);text-transform:uppercase;letter-spacing:.08em;font-size:.68rem;font-weight:950}.selected-token-card strong{color:var(--text-normal)}.selected-token-card small,.compact-help{color:var(--text-weak);font-size:.78rem;font-weight:750}.map-zoom-surface{position:relative}.map-board{transform-origin:0 0}.map-board.is-dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.map-token{touch-action:none;cursor:grab}.map-token.dragging{cursor:grabbing;opacity:.82}.map-token.selected{z-index:4;outline-offset:3px;box-shadow:0 0 0 4px var(--border-subtle), 0 12px 28px #23302857;outline:3px solid #f5c542}.token-row.selected{border-color:var(--accent-primary);background:var(--accent-dim);box-shadow:inset 4px 0 0 var(--accent-primary)}@media (width<=760px){.map-ux-toolbar{display:grid}.selected-token-card{min-width:0}}.pan-toggle,.reset-map-button{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);min-height:36px;color:var(--text-normal);border-radius:10px;align-items:center;gap:6px;padding:8px 10px;font-weight:900;display:inline-flex}.pan-toggle.active{border-color:var(--accent-primary);background:var(--accent-dim);color:var(--brand-green)}.reset-map-button svg{width:16px;height:16px}.map-scroll.pan-mode{cursor:grab}.map-scroll.panning{cursor:grabbing;-webkit-user-select:none;user-select:none}.map-scroll.pan-mode .map-board{cursor:grab}.map-scroll.panning .map-board{cursor:grabbing}.map-scroll.pan-mode .map-token{cursor:pointer}.keyboard-help{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);border-radius:10px;min-width:210px}.keyboard-help summary{cursor:pointer;color:var(--text-normal);padding:8px 10px;font-size:.78rem;font-weight:950;list-style:none}.keyboard-help summary::-webkit-details-marker{display:none}.keyboard-help[open] summary{border-bottom:1px solid var(--border-subtle)}.keyboard-help div{grid-template-columns:auto 1fr;align-items:center;gap:6px 8px;padding:7px 10px;display:grid}.keyboard-help div+div{border-top:1px solid #ebe3d4}.keyboard-help kbd{background:var(--bg-surface-secondary);min-width:24px;min-height:24px;color:var(--text-normal);border:1px solid #cfc5b4;border-bottom-width:2px;border-radius:6px;place-items:center;margin-right:3px;padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.72rem;font-weight:950;display:inline-grid}.keyboard-help span{color:var(--text-weak);font-size:.76rem;font-weight:800}@media (width<=760px){.keyboard-help{min-width:0}}.map-overview{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--bg-surface-secondary);gap:8px;margin:0 0 12px;padding:10px;display:grid}.map-overview-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.map-overview-header span{color:var(--text-normal);font-size:.82rem;font-weight:950}.map-overview-header small{color:var(--text-weak);font-size:.74rem;font-weight:800}.map-overview-map{border:1px solid var(--border-subtle);background:linear-gradient(to right, var(--border-subtle) 1px, transparent 1px), linear-gradient(to bottom, var(--border-subtle) 1px, transparent 1px), var(--bg-canvas);cursor:crosshair;background-size:16px 16px;border-radius:10px;width:100%;height:118px;padding:0;display:block;position:relative;overflow:hidden}.map-overview-background{object-fit:cover;opacity:.72;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.map-overview-viewport{z-index:2;pointer-events:none;background:#f5c54229;border:2px solid #f5c542;border-radius:6px;min-width:18px;min-height:18px;position:absolute;box-shadow:0 0 0 999px #2530281f}.map-overview-token{z-index:3;pointer-events:none;border:2px solid #fffdf7;border-radius:999px;width:9px;height:9px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 6px #070b0a4d}.map-overview-token.selected{border-color:#f5c542;width:13px;height:13px;box-shadow:0 0 0 3px #f5c54247,0 4px 10px #23302857}.session-workspace .map-overview-map{height:96px}@media (width<=760px){.map-overview-map{height:96px}}.workspace{width:100%;max-width:none;margin:0;padding:16px 18px}.detail-panel{width:100%;max-width:none}.campaign-view-shell{width:100%;min-width:0}.session-workspace{grid-template-columns:minmax(820px,1fr) minmax(340px,420px);gap:14px;width:100%}.session-map-zone{min-width:0}.session-side-zone{max-height:calc(100vh - 170px)}.vtt-section{min-width:0}.vtt-layout{grid-template-columns:minmax(760px,1fr) minmax(320px,380px);align-items:start;gap:14px;display:grid}.session-workspace .vtt-layout{grid-template-columns:minmax(0,1fr) minmax(300px,340px)}.vtt-board-panel{min-width:0;min-height:calc(100vh - 220px)}.vtt-control-panel{gap:10px;max-height:calc(100vh - 220px);padding-right:6px;display:grid;overflow:auto}.session-workspace .vtt-control-panel{grid-template-columns:1fr;max-height:calc(100vh - 220px)}.map-scroll{background-color:#e8ddc7;border:1px solid #25302829;border-radius:16px;width:100%;height:calc(100vh - 340px);min-height:620px;max-height:none;overflow:auto}.session-workspace .map-scroll{height:calc(100vh - 300px);min-height:660px;max-height:none}.map-zoom-surface{min-width:100%;min-height:100%}.map-ux-toolbar{z-index:8;background:var(--bg-surface-elevated);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);margin:0 0 10px;position:sticky;top:0}.map-overview{background:var(--bg-surface-secondary);border-radius:14px;margin:0;padding:12px;box-shadow:0 8px 24px #070b0a14}.map-overview-map{background-color:#efe6d2;height:auto;min-height:0;max-height:none}.map-overview-background{object-fit:contain;background:#efe6d2}.map-overview-viewport{background:#f5c54233;border-color:#f5c542;box-shadow:0 0 0 999px #2530281a}.map-overview-token{width:10px;height:10px}.map-overview-token.selected{width:15px;height:15px}.token-detail-panel{position:relative}.tool-card{background:var(--bg-surface-secondary)}.tool-card summary{min-height:42px}@media (width>=1500px){.vtt-layout{grid-template-columns:minmax(900px,1fr) 400px}.session-workspace .vtt-layout{grid-template-columns:minmax(0,1fr) 360px}.map-scroll{min-height:700px}.session-workspace .map-scroll{min-height:720px}}@media (width<=1250px){.session-workspace,.vtt-layout,.session-workspace .vtt-layout{grid-template-columns:1fr}.vtt-control-panel,.session-workspace .vtt-control-panel,.session-side-zone{max-height:none;overflow:visible}.map-scroll,.session-workspace .map-scroll{height:70vh;min-height:520px}}@media (width<=760px){.workspace{padding:10px}.map-scroll,.session-workspace .map-scroll{height:62vh;min-height:420px}.map-ux-toolbar{position:static}}.floating-toggle.active{border-color:var(--accent-primary);background:var(--accent-dim);color:var(--brand-green)}.vtt-control-panel.floating-widgets-active{border:1px dashed var(--border-subtle);background:var(--bg-surface-secondary);border-radius:14px;min-height:180px;padding:10px}.floating-widget{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);overflow:auto;border:1px solid var(--border-subtle)!important;box-shadow:var(--shadow-panel)!important}.floating-widget-drag-handle{z-index:3;border-bottom:1px solid var(--border-subtle);background:var(--brand-green);min-height:34px;color:var(--text-inverse);cursor:move;-webkit-user-select:none;user-select:none;border-radius:12px 12px 0 0;align-items:center;margin:-1px -1px 10px;padding:8px 12px;font-size:.78rem;font-weight:950;display:flex;position:sticky;top:0}.floating-widget-resize-handle{z-index:4;float:right;border-right:3px solid var(--accent-primary);border-bottom:3px solid var(--accent-primary);cursor:nwse-resize;opacity:.8;border-radius:2px;width:18px;height:18px;margin-top:6px;transition:opacity .15s,border-color .15s;position:sticky;bottom:6px;right:6px}.floating-widget-resize-handle:hover{opacity:1}.floating-widget.map-overview{padding:10px}.floating-widget.token-detail-panel,.floating-widget.tool-card{background:var(--bg-surface-elevated)}@media (width<=760px){.floating-widget{width:calc(100vw - 16px)!important;left:8px!important}}.floating-widget-toolbar{z-index:6;border-bottom:1px solid var(--border-subtle);background:var(--brand-green);min-height:38px;color:var(--text-inverse);cursor:move;-webkit-user-select:none;user-select:none;border-radius:12px 12px 0 0;justify-content:space-between;align-items:center;gap:8px;margin:-1px -1px 10px;padding:7px 8px 7px 12px;display:flex;position:sticky;top:0}.floating-widget-toolbar-title{min-width:0;color:var(--text-inverse);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;font-weight:950;overflow:hidden}.floating-widget-toolbar-actions{flex-shrink:0;gap:4px;display:flex}.floating-widget-toolbar-actions button{min-height:26px;color:var(--text-inverse);background:#070b0a1f;border:1px solid #070b0a59;border-radius:7px;padding:3px 7px;font-size:.68rem;font-weight:900;transition:background .15s,border-color .15s}.floating-widget-toolbar-actions button:hover{background:#070b0a38}.floating-widget-locked{border-color:var(--accent-glow)!important}.floating-widget-locked .floating-widget-toolbar{background:var(--accent-primary);cursor:default}.floating-widget-locked .floating-widget-resize-handle{display:none}.floating-widget-collapsed{height:auto;overflow:hidden}.floating-widget-collapsed .floating-widget-toolbar{border-radius:12px;margin-bottom:-1px}.floating-widget.floating-widget-collapsed{min-height:38px}@media (width<=760px){.floating-widget-toolbar{display:grid}.floating-widget-toolbar-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}}.vtt-panels-menu{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);border-radius:10px;min-height:36px;position:relative}.vtt-panels-menu.active{border-color:var(--accent-primary);background:var(--accent-dim)}.vtt-panels-menu summary{cursor:pointer;color:var(--text-normal);padding:9px 12px;font-size:.84rem;font-weight:950;list-style:none}.vtt-panels-menu summary::-webkit-details-marker{display:none}.vtt-panels-menu-content{z-index:220;border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);min-width:210px;box-shadow:var(--shadow-soft);border-radius:10px;gap:6px;padding:8px;display:grid;position:absolute;right:0}.vtt-panels-menu-content button{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);min-height:34px;color:var(--text-normal);text-align:left;border-radius:8px;justify-content:flex-start;padding:7px 9px;font-size:.8rem;font-weight:850;transition:background .15s,border-color .15s,color .15s}.vtt-panels-menu-content button:hover:not(:disabled){border-color:var(--accent-primary);background:var(--accent-dim)}.vtt-panels-menu-content button:disabled{cursor:not-allowed;opacity:.45}.vtt-panels-menu-content .danger-lite{border-color:var(--danger);background:var(--danger-dim);color:var(--danger)}@media (width<=760px){.vtt-panels-menu{width:100%}.vtt-panels-menu-content{width:100%;left:0;right:auto}}.vtt-panels-menu-group{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);border-radius:10px;gap:6px;padding:6px;display:grid}.vtt-panels-menu-group+.vtt-panels-menu-group{margin-top:4px}.vtt-panels-menu-group strong{color:var(--text-weak);text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:950}.vtt-panels-menu-group:first-child button{border-color:var(--accent-secondary);background:var(--accent-dim);color:var(--brand-green)}html{scroll-behavior:smooth;font-size:14px}.sidebar{padding:10px 8px}.workspace{max-width:none;padding:10px 12px}.topbar{margin:-10px -12px 12px;padding:10px 16px}.topbar h1{font-size:clamp(1.7rem,2.6vw,2.5rem);line-height:1}.workspace-grid{gap:12px}.panel,.detail-panel,.vtt-board-panel,.token-detail-panel,.map-overview,.tool-card{border-radius:12px}.campaign-view-tabs{margin:10px 0;padding:6px;top:60px}.section-heading h3{font-size:1rem}.vtt-layout,.session-workspace .vtt-layout{gap:10px}.vtt-board-panel{padding:10px;overflow:hidden}.vtt-toolbar,.map-ux-toolbar{gap:8px;padding:8px}.map-ux-toolbar{align-items:center;display:flex}.map-zoom-controls strong{text-align:center;min-width:42px}.keyboard-help summary{padding:7px 9px}.map-scroll,.session-workspace .map-scroll{height:calc(100vh - 260px);min-height:560px}.vtt-control-panel,.session-workspace .vtt-control-panel{max-height:calc(100vh - 170px)}.vtt-panels-menu{min-height:32px}.vtt-panels-menu summary{padding:7px 10px;font-size:.78rem}.vtt-panels-menu-content{z-index:999;min-width:260px;max-height:min(620px,100vh - 140px);overflow:auto}.vtt-panels-menu-notice{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);color:var(--text-weak);border-radius:8px;padding:7px 8px;font-size:.74rem;font-weight:850}.vtt-panels-menu-group{gap:5px;padding:6px}.vtt-panels-menu-group button{cursor:pointer}.vtt-panels-menu-group button:disabled{cursor:not-allowed}.vtt-panels-menu-group .preset-button{border-color:var(--accent-secondary);background:var(--accent-dim);min-height:44px;color:var(--brand-green);gap:2px;display:grid}.vtt-panels-menu-group .preset-button span{font-weight:950}.vtt-panels-menu-group .preset-button small{color:var(--text-weak);font-size:.68rem;font-weight:750}.vtt-panels-menu-group .preset-button:hover{border-color:var(--accent-primary);background:var(--accent-dim)}@media (width>=1300px){.workspace-grid{grid-template-columns:minmax(220px,280px) minmax(220px,280px) minmax(0,1fr)}.detail-panel{min-width:0}}@media (width>=1500px){.map-scroll,.session-workspace .map-scroll{height:calc(100vh - 240px);min-height:620px}}@media (width<=900px){html{font-size:13px}.app-shell{grid-template-columns:1fr}.map-scroll,.session-workspace .map-scroll{height:66vh;min-height:420px}}html{font-size:12px}body{overflow-x:hidden}.app-shell{grid-template-columns:48px minmax(0,1fr)}.sidebar{width:48px;padding:6px 4px}.sidebar .brand-mark.compact{transform:scale(.82)}.sidebar .ghost-button{min-height:34px;padding:6px}.workspace{padding:6px 8px}.topbar{min-height:52px;margin:-6px -8px 8px;padding:7px 12px}.topbar h1{font-size:clamp(1.45rem,2vw,2rem)}.topbar p,.topbar small{font-size:.72rem}.topbar-status{padding:5px 8px}.workspace-grid{grid-template-columns:minmax(180px,230px) minmax(180px,230px) minmax(0,1fr);gap:8px}.detail-panel{padding:8px}.campaign-view-tabs{gap:4px;margin:6px 0;padding:4px;top:50px}.campaign-view-tabs button{min-height:42px;padding:5px 7px}.campaign-view-tabs strong{font-size:.78rem}.campaign-view-tabs small{font-size:.64rem}.section-heading{margin-bottom:5px}.vtt-board-panel{padding:7px}.vtt-toolbar{padding:6px 8px}.map-ux-toolbar{gap:6px;margin-bottom:6px;padding:6px}.map-zoom-controls{gap:4px}.map-zoom-controls strong{min-width:36px;font-size:.78rem}.keyboard-help{min-width:130px}.keyboard-help summary{padding:5px 7px;font-size:.7rem}.keyboard-help kbd{min-width:18px;min-height:18px;padding:1px 4px;font-size:.62rem}.keyboard-help span{font-size:.66rem}.map-scroll,.session-workspace .map-scroll{overscroll-behavior:contain;place-items:center;height:calc(100vh - 205px);min-height:600px;display:grid;overflow:auto}.map-zoom-surface{place-items:center;min-width:100%;min-height:100%;display:grid}.map-board{margin:auto}.vtt-layout,.session-workspace .vtt-layout{grid-template-columns:minmax(0,1fr) minmax(260px,320px);gap:8px}.vtt-control-panel,.session-workspace .vtt-control-panel{gap:7px;max-height:calc(100vh - 120px)}.map-overview{padding:7px}.map-overview-map{max-height:160px}.token-detail-panel{padding:8px}.tool-card summary{min-height:32px;padding:7px 9px;font-size:.78rem}.tool-card>form,.tool-card>div{padding:8px}.floating-widget{max-width:min(360px,100vw - 20px);max-height:calc(100vh - 20px)}.floating-widget-toolbar{min-height:30px;padding:5px 6px 5px 9px}.floating-widget-toolbar-title{font-size:.68rem}.floating-widget-toolbar-actions button{min-height:21px;padding:1px 5px;font-size:.58rem}.vtt-panels-menu-content{min-width:230px;max-height:min(520px,100vh - 110px)}.vtt-panels-menu-group .preset-button{min-height:36px}.vtt-panels-menu-group .preset-button small{display:none}.form-stack,.scene-form,.asset-form,.token-form{gap:7px}input,textarea,select{min-height:28px;padding:5px 7px;font-size:.78rem}.primary-button,.ghost-button{min-height:30px;padding:5px 8px;font-size:.76rem}@media (width>=1500px){.map-scroll,.session-workspace .map-scroll{height:calc(100vh - 185px);min-height:660px}.vtt-layout,.session-workspace .vtt-layout{grid-template-columns:minmax(0,1fr) 300px}}@media (width<=1250px){.workspace-grid,.vtt-layout,.session-workspace .vtt-layout{grid-template-columns:1fr}.map-scroll,.session-workspace .map-scroll{height:68vh;min-height:460px}}.gm-mode-switch{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);border-radius:10px;gap:3px;padding:3px;display:inline-flex}.gm-mode-switch button{min-height:28px;color:var(--text-weak);background:0 0;border:0;border-radius:8px;padding:4px 8px;font-size:.72rem;font-weight:950}.gm-mode-switch button.active{background:var(--brand-green);color:var(--text-inverse)}.gm-mode-play .vtt-layout{grid-template-columns:minmax(0,1fr) 280px}.gm-mode-play .vtt-control-panel{gap:8px}.gm-mode-play .vtt-control-panel>.tool-card{display:none}.gm-mode-play .vtt-control-panel>.map-overview,.gm-mode-play .vtt-control-panel>.token-detail-panel{display:grid}.gm-mode-play .map-scroll{height:calc(100vh - 190px);min-height:680px}.gm-mode-prepare .vtt-layout{grid-template-columns:minmax(0,1fr) 320px}.gm-mode-prepare .vtt-control-panel>.tool-card,.gm-mode-prepare .vtt-control-panel>.map-overview,.gm-mode-prepare .vtt-control-panel>.token-detail-panel{display:grid}.gm-mode-prepare .map-scroll{height:calc(100vh - 220px);min-height:620px}.gm-mode-advanced .vtt-layout{grid-template-columns:minmax(0,1fr) 260px}.gm-mode-advanced .map-scroll{height:calc(100vh - 190px);min-height:680px}.gm-mode-play .floating-toggle{border-color:var(--border-subtle)}.gm-mode-advanced .floating-toggle{border-color:var(--accent-primary);background:var(--accent-dim);color:var(--brand-green)}.gm-mode-play .map-ux-toolbar{z-index:20;position:sticky;top:0}.gm-mode-play .keyboard-help,.gm-mode-play .compact-help{display:none}@media (width<=1250px){.gm-mode-play .vtt-layout,.gm-mode-prepare .vtt-layout,.gm-mode-advanced .vtt-layout{grid-template-columns:1fr}.gm-mode-play .map-scroll,.gm-mode-prepare .map-scroll,.gm-mode-advanced .map-scroll{height:70vh;min-height:460px}}.gm-cockpit{border:1px solid var(--border-subtle);background:var(--bg-surface-elevated);border-radius:12px;grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:8px;margin:0 0 8px;padding:8px;display:grid;box-shadow:0 8px 22px #070b0a26}.gm-cockpit-main{gap:2px;min-width:0;display:grid}.gm-cockpit-label{background:var(--accent-dim);width:fit-content;color:var(--brand-green);text-transform:uppercase;letter-spacing:.08em;border-radius:999px;padding:2px 6px;font-size:.62rem;font-weight:950}.gm-cockpit-main strong{color:var(--text-normal);text-overflow:ellipsis;white-space:nowrap;font-size:.95rem;overflow:hidden}.gm-cockpit-main small{color:var(--text-weak);font-size:.68rem;font-weight:800}.gm-cockpit-stats{align-items:stretch;gap:6px;display:flex}.gm-cockpit-stats span{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);border-radius:10px;gap:1px;min-width:72px;padding:6px 8px;display:grid}.gm-cockpit-stats small{color:var(--text-weak);text-transform:uppercase;letter-spacing:.05em;font-size:.58rem;font-weight:950}.gm-cockpit-stats strong{color:var(--text-normal);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.gm-cockpit-actions{flex-wrap:wrap;justify-content:flex-end;gap:5px;display:flex}.gm-cockpit-actions button{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);min-height:28px;color:var(--text-normal);border-radius:8px;padding:4px 7px;font-size:.68rem;font-weight:900}.gm-cockpit-actions button:hover{border-color:var(--accent-primary);background:var(--accent-dim);color:var(--brand-green)}.gm-mode-play .gm-cockpit{grid-template-columns:minmax(220px,1fr) auto auto}.gm-mode-play .map-scroll,.session-workspace .gm-mode-play .map-scroll{height:calc(100vh - 245px)}@media (width<=1200px){.gm-cockpit{grid-template-columns:1fr}.gm-cockpit-stats,.gm-cockpit-actions{justify-content:flex-start}}@media (width<=760px){.gm-cockpit-stats,.gm-cockpit-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}}.gm-mode-play .section-heading{display:none}.gm-mode-play .vtt-board-panel{padding:6px}.gm-mode-play .gm-cockpit{margin-bottom:6px;padding:6px 8px}.gm-mode-play .gm-cockpit-actions button:nth-child(3),.gm-mode-play .gm-cockpit-actions button:nth-child(5){display:none}.gm-mode-play .map-ux-toolbar{gap:5px;padding:5px;display:flex}.gm-mode-play .vtt-layout{grid-template-columns:minmax(0,1fr) 240px;gap:6px}.gm-mode-play .vtt-control-panel{gap:6px;max-height:calc(100vh - 96px);padding-right:3px}.gm-mode-play .vtt-control-panel>.tool-card,.gm-mode-play .vtt-control-panel>.token-detail-panel{display:none}.gm-mode-play .vtt-control-panel>.gm-inspector-panel,.gm-mode-play .vtt-control-panel>.map-overview{display:grid}.gm-mode-play .gm-inspector-panel,.gm-mode-play .map-overview{border-radius:10px;padding:7px}.gm-mode-play .gm-inspector-grid{grid-template-columns:1fr 1fr;gap:4px}.gm-mode-play .gm-inspector-grid span{padding:5px}.gm-mode-play .gm-inspector-actions{grid-template-columns:1fr;display:grid}.gm-mode-play .gm-inspector-actions button{min-height:25px;padding:3px 6px}.gm-mode-play .map-overview-header{margin-bottom:4px}.gm-mode-play .map-overview-map{max-height:130px}.gm-mode-play .map-scroll,.session-workspace .gm-mode-play .map-scroll{height:calc(100vh - 178px);min-height:700px}.gm-mode-play .map-token{font-size:.68rem}.gm-mode-play .selected-token-card{min-width:130px;padding:5px 7px}.gm-mode-play .selected-token-card span{font-size:.56rem}.gm-mode-play .selected-token-card strong,.gm-mode-play .selected-token-card small{font-size:.68rem}.gm-mode-advanced .gm-cockpit,.gm-mode-advanced .map-ux-toolbar{z-index:10;position:relative}@media (width>=1500px){.gm-mode-play .vtt-layout{grid-template-columns:minmax(0,1fr) 250px}.gm-mode-play .map-scroll,.session-workspace .gm-mode-play .map-scroll{height:calc(100vh - 168px);min-height:740px}}@media (width<=1250px){.gm-mode-play .vtt-layout{grid-template-columns:1fr}.gm-mode-play .map-scroll,.session-workspace .gm-mode-play .map-scroll{height:72vh;min-height:460px}.gm-mode-play .vtt-control-panel>.map-overview{max-width:320px}}.floating-widget.tool-card>summary,.floating-widget.map-overview .map-overview-header,.floating-widget.token-detail-panel .token-detail-heading{display:none}.floating-widget.tool-card>form,.floating-widget.tool-card>div:not(.floating-widget-toolbar):not(.floating-widget-resize-handle){padding-top:2px}.floating-widget.map-overview,.floating-widget.token-detail-panel,.floating-widget.tool-card{padding-top:0}.floating-widget.floating-widget-collapsed{width:auto;min-width:170px}.floating-widget.floating-widget-collapsed .floating-widget-toolbar{margin-bottom:-1px}.gm-mode-advanced .floating-widget{border-radius:12px}.vtt-panels-list button,.vtt-panels-preset-grid button{text-align:left;gap:2px;min-height:42px;padding:7px 8px;display:grid}.vtt-panels-list button span,.vtt-panels-preset-grid button span{font-size:.76rem;font-weight:950}.vtt-panels-list button small,.vtt-panels-preset-grid button small{color:var(--text-weak);font-size:.62rem;font-weight:750}.vtt-panels-list button:not(:disabled){border-color:var(--border-subtle);background:var(--bg-surface-secondary)}.vtt-panels-list button:not(:disabled):hover,.vtt-panels-preset-grid button:hover{border-color:var(--accent-primary);background:var(--accent-dim);color:var(--brand-green)}.vtt-panels-manager-footer{display:grid}.vtt-panels-menu-content .danger-lite{justify-content:center;min-height:34px}.gm-mode-advanced .vtt-panels-menu[open] .vtt-panels-menu-content{top:74px}@media (width<=760px){.vtt-panels-menu[open] .vtt-panels-menu-content{width:auto;left:8px;right:8px}.vtt-panels-preset-grid{grid-template-columns:1fr}}.vtt-panels-preset-grid .preset-button{border:1px solid var(--accent-secondary);background:var(--accent-dim);min-height:46px;color:var(--brand-green);text-align:left;border-radius:8px;gap:2px;padding:7px 8px;display:grid}.vtt-panels-preset-grid .preset-button:last-child{border-color:var(--accent-primary);background:var(--accent-dim);color:var(--accent-primary);grid-column:1/-1}.vtt-panels-preset-grid .preset-button span,.save-layout-button span{font-size:.76rem;font-weight:950}.vtt-panels-preset-grid .preset-button small,.save-layout-button small{color:var(--text-weak);font-size:.62rem;font-weight:750}.save-layout-button{border:1px solid var(--accent-primary);background:var(--accent-dim);min-height:44px;color:var(--accent-primary);text-align:left;border-radius:8px;gap:2px;padding:7px 8px;display:grid}.save-layout-button:hover:not(:disabled),.vtt-panels-preset-grid .preset-button:hover{border-color:var(--accent-primary);background:var(--accent-dim);color:var(--brand-green)}@media (width<=760px){.vtt-panels-menu[open] .vtt-panels-menu-content{width:auto;left:8px;right:8px}.vtt-panels-preset-grid{grid-template-columns:1fr}}.gm-mode-play .floating-widget-dock{padding:5px 7px;bottom:8px}@media (width<=760px){.floating-widget-dock{border-radius:14px;max-width:none;display:grid;bottom:8px;left:8px;right:8px;transform:none}.floating-widget-dock-list{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}}.floating-widget.tool-card>summary,.floating-widget.map-overview .map-overview-header,.floating-widget.token-detail-panel .token-detail-heading{display:none}@media (width<=760px){.vtt-panels-menu[open] .vtt-panels-menu-content{width:auto;left:8px;right:8px}.vtt-panels-preset-grid{grid-template-columns:1fr}.floating-widget-dock{border-radius:14px;max-width:none;display:grid;bottom:8px;left:8px;right:8px;transform:none}.floating-widget-dock-list{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}}.floating-widget[data-floating-runtime-state=closed]{display:none}.floating-widget[data-floating-runtime-state=collapsed]{outline:2px solid #f5c54247}.floating-widget-dock-list button[data-floating-dock-state=fermé],.floating-widget-dock-list button[data-floating-dock-state=closed]{border-color:var(--danger);background:var(--danger-dim);color:var(--danger)}.floating-widget-dock-list button[data-floating-dock-state=réduit],.floating-widget-dock-list button[data-floating-dock-state=collapsed]{border-color:var(--border-subtle);background:var(--bg-surface-secondary);color:var(--text-normal)}.floating-widget.tool-card>summary,.floating-widget.map-overview .map-overview-header,.floating-widget.token-detail-panel .token-detail-heading{display:none}@media (width<=760px){.vtt-panels-menu[open] .vtt-panels-menu-content{width:auto;left:8px;right:8px}.vtt-panels-preset-grid{grid-template-columns:1fr}.floating-widget-dock{border-radius:14px;max-width:none;display:grid;bottom:8px;left:8px;right:8px;transform:none}.floating-widget-dock-list{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}}.vtt-control-panel [data-vtt-panel]{min-width:0}.floating-widget[data-vtt-panel]>summary,.floating-widget[data-vtt-panel] .map-overview-header,.floating-widget[data-vtt-panel] .token-detail-heading{display:none}.floating-widget[data-vtt-panel].floating-widget-collapsed>:not(.floating-widget-toolbar){display:none}.vtt-panels-list button{cursor:pointer}.vtt-panels-list button:disabled{cursor:not-allowed;opacity:.48}.detail-panel[class*=campaign-view-] .campaign-overview-tab,.detail-panel[class*=campaign-view-] .character-section,.detail-panel[class*=campaign-view-] .vtt-section,.detail-panel[class*=campaign-view-] .combat-section,.detail-panel[class*=campaign-view-] .session-section{display:none}.detail-panel.campaign-view-overview .campaign-overview-tab,.detail-panel.campaign-view-characters .character-section{display:grid}.detail-panel.campaign-view-table .vtt-section,.detail-panel.campaign-view-combat .combat-section,.detail-panel.campaign-view-journal .session-section,.detail-panel.campaign-view-session .vtt-section,.detail-panel.campaign-view-session .combat-section,.detail-panel.campaign-view-session .session-section{display:block}.campaign-overview-tab{gap:16px}.campaign-view-tabs{z-index:40;background:var(--bg-surface);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);margin-top:0;position:sticky;top:0}.campaign-view-tabs button{min-height:58px}.campaign-view-tabs button.active{border-color:var(--accent-primary);background:var(--bg-active);color:var(--accent-primary)}.detail-panel.campaign-view-characters .character-section,.detail-panel.campaign-view-journal .session-section{border-top:0;margin-top:0;padding-top:0}@media (width<=780px){.campaign-view-tabs{position:static}}.vtt-panels-manager-header{background:var(--brand-green);color:var(--text-inverse);border-radius:10px;gap:2px;padding:8px;display:grid}.vtt-panels-manager-header span{text-transform:uppercase;letter-spacing:.08em;opacity:.86;font-size:.62rem;font-weight:950}.vtt-panels-manager-header strong{font-size:.78rem;font-weight:950}.save-layout-button:disabled{cursor:not-allowed;opacity:.48}.floating-widget.tool-card>summary,.floating-widget.map-overview .map-overview-header,.floating-widget.token-detail-panel .token-detail-heading{display:none}.floating-widget .floating-widget-toolbar{margin:-1px -1px 7px}.floating-widget-dock-list button{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);max-width:150px;min-height:28px;color:var(--text-normal);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;padding:4px 9px;font-size:.7rem;font-weight:900;transition:background .15s,border-color .15s,color .15s;overflow:hidden}.floating-widget-dock-list button[data-floating-dock-state=réduit]{border-color:var(--border-subtle);background:var(--bg-surface-secondary);color:var(--text-normal)}@media (width<=760px){.vtt-panels-menu[open] .vtt-panels-menu-content{width:auto;left:8px;right:8px}.vtt-panels-preset-grid{grid-template-columns:1fr}.floating-widget-dock{border-radius:14px;max-width:none;display:grid;bottom:8px;left:8px;right:8px;transform:none}.floating-widget-dock-list{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}}.gm-workspace-tabs{grid-template-columns:repeat(7,minmax(110px,1fr))}.detail-panel[class*=campaign-view-] .campaign-overview-tab,.detail-panel[class*=campaign-view-] .character-section,.detail-panel[class*=campaign-view-] .vtt-section,.detail-panel[class*=campaign-view-] .combat-section,.detail-panel[class*=campaign-view-] .session-section,.detail-panel[class*=campaign-view-] .gm-placeholder-tab{display:none}.detail-panel.campaign-view-campaign .campaign-overview-tab,.detail-panel.campaign-view-characters .character-section{display:grid}.detail-panel.campaign-view-live .vtt-section,.detail-panel.campaign-view-live .combat-section,.detail-panel.campaign-view-live .session-section,.detail-panel.campaign-view-preparation .vtt-section,.detail-panel.campaign-view-journal .session-section{display:block}.detail-panel.campaign-view-library .gm-library-placeholder,.detail-panel.campaign-view-settings .gm-settings-placeholder{display:grid}.gm-placeholder-tab{border:1px dashed var(--border-subtle);background:var(--bg-surface-secondary);border-radius:12px;gap:12px;padding:16px}@media (width<=1300px){.gm-workspace-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=760px){.gm-workspace-tabs{grid-template-columns:1fr}}.session-live-mode-bar{display:none}.detail-panel.campaign-view-live .session-live-mode-bar{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);border-radius:12px;gap:12px;margin-bottom:14px;padding:12px;display:grid}.session-live-mode-bar h3{margin:2px 0}.session-live-mode-bar p{color:var(--text-weak);margin:0;font-size:.86rem;font-weight:700}.session-live-mode-buttons{grid-template-columns:repeat(5,minmax(120px,1fr));gap:8px;display:grid}.session-live-mode-buttons button{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);min-height:58px;color:var(--text-normal);text-align:left;border-radius:10px;gap:4px;padding:9px;display:grid}.session-live-mode-buttons button.active{border-color:var(--accent-primary);background:var(--accent-dim);color:var(--brand-green);box-shadow:inset 0 0 0 1px var(--accent-primary)}.session-live-mode-buttons strong{font-size:.82rem}.session-live-mode-buttons small{color:var(--text-weak);font-size:.68rem;line-height:1.2}@media (width<=1200px){.session-live-mode-buttons{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=680px){.session-live-mode-buttons{grid-template-columns:1fr}}.gm-notes-panel textarea{resize:vertical;border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);min-height:160px;color:var(--text-normal);font:inherit;border-radius:8px;font-size:.82rem;line-height:1.45}.gm-notes-panel small{color:var(--text-weak);font-size:.68rem;font-weight:750}.gm-notes-panel{gap:10px;display:grid}.gm-notes-panel label{color:var(--text-normal);gap:6px;font-size:.78rem;font-weight:900;display:grid}.gm-notes-footer small{color:var(--text-weak);font-size:.68rem;font-weight:750}.party-summary-panel{gap:10px;display:grid}.party-summary-list{gap:8px;display:grid}.party-summary-row.selected{border-color:var(--accent-primary);background:var(--accent-dim)}.party-summary-row header span{gap:2px;display:grid}.party-summary-row strong{color:var(--text-normal);font-size:.86rem}.party-summary-row b{background:var(--accent-dim);color:var(--brand-green);border-radius:999px;padding:3px 6px;font-size:.68rem;font-weight:950}@media (width<=760px){.party-summary-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.initiative-card{min-height:260px}.initiative-panel{gap:10px;display:grid}.initiative-panel-header{gap:8px;display:grid}.initiative-panel-header span{gap:2px;display:grid}.initiative-panel-header strong{color:var(--text-normal);font-size:.86rem}.initiative-panel-header small{color:var(--text-weak);font-size:.68rem;font-weight:750}.initiative-panel-header div{flex-wrap:wrap;gap:6px;display:flex}.initiative-panel button{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);min-height:28px;color:var(--text-normal);border-radius:8px;padding:4px 8px;font-size:.68rem;font-weight:900}.initiative-panel button:hover:not(:disabled){border-color:var(--accent-primary);background:var(--accent-dim);color:var(--brand-green)}.initiative-panel button:disabled{cursor:not-allowed;opacity:.45}.initiative-list{gap:7px;display:grid}.initiative-row{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);border-radius:10px;grid-template-columns:32px minmax(0,1fr) 64px 44px;align-items:center;gap:6px;padding:7px;display:grid}.initiative-row.active{border-color:var(--accent-primary);background:var(--accent-dim);box-shadow:inset 0 0 0 1px var(--border-subtle)}.initiative-turn-button{width:28px;min-width:28px;padding:0!important}.initiative-row span{gap:2px;min-width:0;display:grid}.initiative-row strong{color:var(--text-normal);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.initiative-row small{color:var(--text-weak);text-overflow:ellipsis;white-space:nowrap;font-size:.62rem;font-weight:750;overflow:hidden}.initiative-row input{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);width:100%;min-height:30px;color:var(--text-normal);font:inherit;text-align:center;border-radius:8px;padding:4px 6px;font-size:.76rem;font-weight:900}.initiative-panel-footer{justify-content:flex-end;display:flex}@media (width<=760px){.initiative-row{grid-template-columns:30px minmax(0,1fr)}.initiative-row input,.initiative-row>button:last-child{grid-column:span 1}}.quick-actions-card{min-height:240px}.quick-actions-panel{gap:12px;display:grid}.quick-actions-panel section{gap:7px;display:grid}.quick-actions-panel section>strong{color:var(--text-strong);text-transform:uppercase;letter-spacing:.04em;font-size:.76rem;font-weight:700}.quick-actions-context{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.quick-actions-context span{min-width:0;padding:var(--space-1) var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface-secondary);color:var(--text-weak);gap:2px;font-size:.62rem;font-weight:600;display:grid}.quick-actions-context b{color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}.quick-actions-grid,.quick-actions-dice{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.quick-actions-dice{grid-template-columns:repeat(3,minmax(0,1fr))}.quick-actions-panel button{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface-secondary);min-height:30px;color:var(--text-normal);cursor:pointer;padding:5px 8px;font-size:.68rem;font-weight:600;transition:all .15s}.quick-actions-panel button:hover:not(:disabled){border-color:var(--accent-primary);background:var(--accent-dim);color:var(--accent-primary)}.quick-actions-panel button:disabled{cursor:not-allowed;opacity:.45}.quick-actions-roll{padding:var(--space-2);border:1px solid var(--accent-primary);border-radius:var(--radius-md);background:var(--accent-dim);color:var(--accent-primary);align-items:center;gap:6px;margin:0;font-size:.78rem;font-weight:700;display:flex}.quick-actions-roll strong{font-size:1rem}.quick-actions-roll small{color:var(--text-weak);margin-left:auto;font-size:.62rem}@media (width<=760px){.quick-actions-context,.quick-actions-grid,.quick-actions-dice{grid-template-columns:1fr}}.visibility-inspector-card{min-height:280px}.visibility-inspector-panel{gap:12px;display:grid}.visibility-inspector-panel section{gap:7px;display:grid}.visibility-inspector-panel section>strong{color:var(--text-normal);text-transform:uppercase;letter-spacing:.04em;font-size:.76rem;font-weight:950}.visibility-inspector-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.visibility-inspector-overview article,.visibility-token-card,.visibility-token-list article{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);border-radius:10px;gap:3px;padding:8px;display:grid}.visibility-inspector-overview span,.visibility-token-card small,.visibility-token-list small{color:var(--text-weak);font-size:.62rem;font-weight:850}.visibility-inspector-overview strong,.visibility-token-card b,.visibility-token-list b{color:var(--text-normal);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.visibility-token-card.hidden,.visibility-token-list article.hidden{border-color:var(--danger);background:var(--danger-dim)}.visibility-token-card em,.visibility-token-list em{background:var(--accent-dim);color:var(--brand-green);white-space:nowrap;border-radius:999px;padding:3px 6px;font-size:.62rem;font-style:normal;font-weight:950}.visibility-token-card.hidden em,.visibility-token-list article.hidden em{color:var(--danger);background:#f7d7d0}.visibility-alerts ul{color:var(--text-weak);gap:5px;margin:0;padding-left:18px;font-size:.72rem;font-weight:750;display:grid}.visibility-filter-buttons,.visibility-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.visibility-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.visibility-inspector-panel button{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);min-height:30px;color:var(--text-normal);border-radius:8px;padding:5px 8px;font-size:.68rem;font-weight:900}.visibility-inspector-panel button.active,.visibility-inspector-panel button:hover:not(:disabled){border-color:var(--accent-primary);background:var(--accent-dim);color:var(--brand-green)}.visibility-token-list>div{gap:6px;max-height:220px;display:grid;overflow:auto}.visibility-token-list article{grid-template-columns:minmax(0,1fr) auto;align-items:center}.visibility-token-list span{gap:2px;min-width:0;display:grid}.visibility-inspector-panel footer small{color:var(--text-weak);font-size:.66rem;font-weight:750}@media (width<=760px){.visibility-inspector-overview,.visibility-filter-buttons,.visibility-actions{grid-template-columns:1fr}}.visibility-bulk-actions{gap:6px;display:flex}.visibility-bulk-actions .ghost-button{align-items:center;gap:4px;padding:4px 10px;font-size:.72rem;display:flex}.visibility-token-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.visibility-token-actions .ghost-button.compact{justify-content:center;min-width:28px;padding:2px 6px;font-size:.7rem}.visibility-token-card{justify-content:space-between;align-items:center;gap:8px;display:flex}.gm-mode-play .vtt-panels-menu,.gm-mode-prepare .vtt-panels-menu{display:block}.vtt-panels-menu[open]{z-index:8000}.vtt-panels-menu[open] .vtt-panels-menu-content{z-index:8000;border:1px solid var(--border-subtle);background:var(--bg-surface-elevated);width:min(410px,100vw - 36px);max-height:calc(100vh - 110px);box-shadow:var(--shadow-panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:14px;gap:10px;padding:10px;display:grid;position:fixed;top:74px;right:18px;overflow:auto}.vtt-panels-preset-grid .preset-button:last-child,.save-layout-button{border-color:var(--accent-primary);background:var(--accent-dim);color:var(--accent-primary)}.vtt-panels-preset-grid .preset-button:hover,.vtt-panels-list button:hover,.save-layout-button:hover:not(:disabled){border-color:var(--accent-primary);background:var(--accent-dim);color:var(--brand-green)}.vtt-panels-preset-grid .preset-button span,.vtt-panels-list button span,.save-layout-button span{font-size:.76rem;font-weight:950}.vtt-panels-preset-grid .preset-button small,.vtt-panels-list button small,.save-layout-button small{color:var(--text-weak);font-size:.62rem;font-weight:750}.floating-widget[data-vtt-panel]{max-width:calc(100vw - 24px);max-height:calc(100vh - 24px)}.floating-widget[data-vtt-panel]>summary,.floating-widget[data-vtt-panel] .map-overview-header,.floating-widget[data-vtt-panel] .token-detail-heading,.floating-widget[data-vtt-panel] h4:first-child{display:none}.floating-widget-toolbar{min-height:32px}.floating-widget[data-vtt-panel] .floating-widget-toolbar{margin:-1px -1px 7px}.floating-widget-toolbar-actions{gap:3px}.floating-widget-toolbar-actions button{place-items:center;width:24px;min-width:24px;min-height:23px;padding:0;font-size:.68rem;line-height:1;display:grid}.floating-widget-toolbar-title{max-width:calc(100% - 150px)}.floating-widget.floating-widget-pinned{max-width:none;max-height:none;overflow:visible;box-shadow:0 8px 22px #070b0a14!important}.floating-widget-pinned .floating-widget-toolbar{cursor:default;background:var(--accent-primary)}.floating-widget.floating-widget-collapsed{width:auto;min-width:180px;height:auto;overflow:hidden}.floating-widget-collapsed>:not(.floating-widget-toolbar){display:none}.floating-widget-dock-list button:hover{border-color:var(--accent-primary);background:var(--accent-dim);color:var(--brand-green)}@media (width<=760px){.vtt-panels-menu[open] .vtt-panels-menu-content{width:auto;left:8px;right:8px}.vtt-panels-preset-grid{grid-template-columns:1fr}.floating-widget-dock{border-radius:14px;max-width:none;display:grid;bottom:8px;left:8px;right:8px;transform:none}.floating-widget-dock-list{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}}.reset-panels-button{display:none}.vtt-panels-manager-footer{gap:8px;display:grid}.vtt-panels-manager-footer .save-layout-button{width:100%}.vtt-panels-manager-footer .danger-lite{border:1px solid var(--danger);background:var(--danger-dim);min-height:36px;color:var(--danger);border-radius:9px;font-weight:950}.vtt-panels-manager-footer .danger-lite:hover:not(:disabled){border-color:var(--danger);background:#f7d7d0}.vtt-panels-manager-footer button:disabled{cursor:not-allowed;opacity:.5}.reset-map-button{white-space:nowrap}.floating-widget-drag-handle,.floating-widget[data-vtt-panel]>summary,.floating-widget[data-vtt-panel] .map-overview-header,.floating-widget[data-vtt-panel] .token-detail-heading,.floating-widget[data-vtt-panel] .token-list>h4:first-child,.floating-widget[data-vtt-panel] .scene-form>h4:first-child,.floating-widget[data-vtt-panel] .asset-form>h4:first-child,.floating-widget[data-vtt-panel] .asset-picker>h4:first-child,.floating-widget[data-vtt-panel] .token-form>h4:first-child{display:none}.vtt-panels-manager-footer{border-top:1px solid var(--border-subtle);justify-content:flex-end;padding-top:4px;display:flex}.vtt-panels-manager-footer .danger-lite{min-height:32px}.quick-actions-panel-compact{gap:10px;min-width:0;display:grid;overflow-x:hidden}.quick-actions-context-card{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.quick-actions-context-card span{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);border-radius:9px;gap:2px;min-width:0;padding:7px;display:grid}.quick-actions-context-card small{color:var(--text-weak);text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:.58rem;font-weight:900;overflow:hidden}.quick-actions-context-card strong{color:var(--text-normal);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;font-weight:950;overflow:hidden}.quick-actions-section{gap:6px;display:grid}.quick-actions-section header{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.quick-actions-section header strong{color:var(--text-normal);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem;font-weight:950}.quick-actions-section header small{color:var(--text-weak);text-overflow:ellipsis;white-space:nowrap;font-size:.6rem;font-weight:800;overflow:hidden}.quick-actions-button-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.quick-actions-button-grid button{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);min-width:0;min-height:38px;color:var(--text-normal);text-align:left;border-radius:8px;gap:1px;padding:5px 6px;display:grid}.quick-actions-button-grid button strong{text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;font-weight:950;overflow:hidden}.quick-actions-button-grid button small{color:var(--text-weak);text-overflow:ellipsis;white-space:nowrap;font-size:.56rem;font-weight:750;overflow:hidden}.quick-actions-preset-row,.quick-actions-dice-row,.quick-actions-utility-row{gap:6px;display:grid}.quick-actions-preset-row{grid-template-columns:repeat(5,minmax(0,1fr))}.quick-actions-dice-row{grid-template-columns:repeat(6,minmax(0,1fr))}.quick-actions-utility-row{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-actions-preset-row button,.quick-actions-dice-row button,.quick-actions-utility-row button{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);min-width:0;min-height:30px;color:var(--text-normal);text-overflow:ellipsis;white-space:nowrap;border-radius:8px;padding:4px 6px;font-size:.62rem;font-weight:950;overflow:hidden}.quick-actions-preset-row button{border-color:var(--accent-secondary);background:var(--accent-dim);color:var(--brand-green)}.quick-actions-dice-row button{border-color:var(--accent-primary);background:var(--accent-dim);color:var(--accent-primary)}.quick-actions-panel-compact button{transition:background .15s,border-color .15s}.quick-actions-panel-compact button:hover{border-color:var(--accent-primary);background:var(--accent-dim);color:var(--brand-green)}.quick-actions-roll{border:1px solid var(--accent-primary);background:var(--accent-dim);color:var(--accent-primary);border-radius:9px;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin:0;padding:6px 8px;display:grid}.quick-actions-roll span{font-size:.66rem;font-weight:950}.quick-actions-roll strong{font-size:1rem;font-weight:1000}.quick-actions-roll small{color:#7b6c4a;font-size:.58rem;font-weight:850}.quick-actions-copy-status{color:var(--brand-green);font-size:.62rem;font-weight:900}@media (width<=760px){.quick-actions-context-card,.quick-actions-button-grid{grid-template-columns:1fr}.quick-actions-preset-row{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-actions-dice-row{grid-template-columns:repeat(3,minmax(0,1fr))}}.gm-workspace-tabs{grid-template-columns:repeat(7,minmax(110px,1fr));gap:8px;margin:12px 0 16px;display:grid}.gm-workspace-tabs button{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);min-height:58px;color:var(--text-normal);text-align:left;border-radius:10px;gap:4px;padding:9px;display:grid}.gm-workspace-tabs button.active{border-color:var(--accent-primary);background:var(--accent-dim);color:var(--brand-green);box-shadow:inset 0 0 0 1px var(--accent-primary)}.gm-workspace-tabs strong{font-size:.82rem}.gm-workspace-tabs small{color:var(--text-weak);font-size:.66rem;line-height:1.2}.detail-panel.campaign-view-live>.character-section,.detail-panel.campaign-view-live>.combat-section,.detail-panel.campaign-view-live>.session-section,.detail-panel.campaign-view-preparation>.character-section,.detail-panel.campaign-view-preparation>.combat-section,.detail-panel.campaign-view-preparation>.session-section,.detail-panel.campaign-view-journal .vtt-section,.detail-panel.campaign-view-journal .combat-section,.detail-panel.campaign-view-characters .vtt-section,.detail-panel.campaign-view-characters .combat-section,.detail-panel.campaign-view-characters .session-section{display:none}.gm-placeholder-tab{border:1px dashed var(--border-subtle);background:var(--bg-surface-secondary);border-radius:12px;gap:12px;padding:16px;display:grid}.gm-placeholder-tab h3{margin:0}.gm-placeholder-tab ul{margin:0;padding-left:18px}@media (width<=1300px){.gm-workspace-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=760px){.gm-workspace-tabs{grid-template-columns:1fr}}.map-ux-toolbar .reset-panels-button,.gm-cockpit .reset-panels-button{display:none}.vtt-panels-category{gap:6px;display:grid}.vtt-panels-category>span{color:var(--text-weak);text-transform:uppercase;letter-spacing:.08em;font-size:.64rem;font-weight:950}.vtt-panels-preset-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.vtt-panels-list{gap:6px;display:grid}.vtt-panels-preset-grid .preset-button,.vtt-panels-list button,.save-layout-button{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);min-height:42px;color:var(--text-normal);text-align:left;border-radius:8px;gap:2px;padding:7px 8px;display:grid}.vtt-panels-preset-grid .preset-button{border-color:var(--accent-secondary);background:var(--accent-dim);color:var(--brand-green)}.save-layout-button{border-color:var(--accent-primary);background:var(--accent-dim);color:var(--accent-primary)}.floating-widget[data-vtt-panel]>summary,.floating-widget[data-vtt-panel] .map-overview-header,.floating-widget[data-vtt-panel] .token-detail-heading,.floating-widget[data-vtt-panel] .token-list>h4:first-child,.floating-widget[data-vtt-panel] .scene-form>h4:first-child,.floating-widget[data-vtt-panel] .asset-form>h4:first-child,.floating-widget[data-vtt-panel] .asset-picker>h4:first-child,.floating-widget[data-vtt-panel] .token-form>h4:first-child,.floating-widget-drag-handle{display:none}.floating-widget-dock{z-index:8200;border:1px solid var(--border-subtle);background:var(--bg-surface-elevated);max-width:min(820px,100vw - 24px);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:999px;align-items:center;gap:8px;padding:7px 9px;display:flex;position:fixed;bottom:12px;left:50%;transform:translate(-50%)}.floating-widget-dock[hidden]{display:none}.floating-widget-dock>strong{color:var(--brand-green);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;font-size:.66rem;font-weight:950}.floating-widget-dock-list{flex-wrap:wrap;gap:5px;display:flex}.floating-widget-dock-list button{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);max-width:180px;min-height:28px;color:var(--text-normal);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;padding:4px 9px;font-size:.7rem;font-weight:900;overflow:hidden}.floating-widget-dock-list button[data-floating-dock-state=fermé]{border-color:var(--danger);background:var(--danger-dim);color:var(--danger)}.floating-widget-pinned .floating-widget-resize-handle{display:none}@media (width<=760px){.vtt-panels-preset-grid{grid-template-columns:1fr}.floating-widget-dock{border-radius:14px;max-width:none;bottom:8px;left:8px;right:8px;transform:none}.floating-widget-dock-list{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}}.gm-notes-card{min-height:260px}.gm-notes-panel{gap:10px;min-width:0;display:grid}.gm-notes-context{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.gm-notes-context span{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);border-radius:9px;gap:2px;min-width:0;padding:7px;display:grid}.gm-notes-context small{color:var(--text-weak);text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap;font-size:.58rem;font-weight:900;overflow:hidden}.gm-notes-context strong{color:var(--text-normal);text-overflow:ellipsis;white-space:nowrap;font-size:.74rem;font-weight:950;overflow:hidden}.gm-notes-panel textarea{resize:vertical;border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);width:100%;min-height:150px;color:var(--text-normal);font:inherit;border-radius:10px;padding:9px;font-size:.78rem;line-height:1.45}.gm-notes-panel textarea:focus{border-color:var(--brand-green);outline:2px solid var(--border-subtle)}.gm-notes-footer{justify-content:space-between;align-items:center;gap:8px;display:flex}.gm-notes-footer span,.gm-notes-help{color:var(--text-weak);font-size:.64rem;font-weight:750}.gm-notes-footer div{gap:6px;display:flex}.gm-notes-footer button{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);min-height:28px;color:var(--text-normal);border-radius:8px;padding:4px 8px;font-size:.66rem;font-weight:900}.gm-notes-footer button:hover:not(:disabled){border-color:var(--accent-primary);background:var(--accent-dim);color:var(--brand-green)}.gm-notes-footer button:disabled{cursor:not-allowed;opacity:.45}.gm-notes-help{margin:0}@media (width<=760px){.gm-notes-context{grid-template-columns:1fr}.gm-notes-footer{flex-direction:column;align-items:stretch}}.party-summary-card{min-height:260px}.party-summary-panel{gap:10px;min-width:0;display:grid}.party-summary-overview{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.party-summary-overview span{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);border-radius:9px;gap:2px;min-width:0;padding:7px;display:grid}.party-summary-overview small{color:var(--text-weak);text-transform:uppercase;font-size:.58rem;font-weight:900}.party-summary-overview strong{color:var(--text-normal);font-size:.9rem;font-weight:1000}.party-summary-list{gap:8px;max-height:360px;padding-right:2px;display:grid;overflow:auto}.party-summary-row{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);border-radius:10px;gap:7px;padding:9px;display:grid}.party-summary-row.selected{border-color:var(--accent-primary);background:var(--accent-dim);box-shadow:inset 0 0 0 1px var(--border-subtle)}.party-summary-row.danger{border-color:var(--danger);background:var(--danger-dim)}.party-summary-row header{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.party-summary-row header span{gap:2px;min-width:0;display:grid}.party-summary-row strong{color:var(--text-normal);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:950;overflow:hidden}.party-summary-row small{color:var(--text-weak);font-size:.64rem;font-weight:750}.party-summary-row b{background:var(--accent-dim);color:var(--brand-green);white-space:nowrap;border-radius:999px;padding:3px 6px;font-size:.62rem;font-weight:950}.party-summary-row.danger b{color:var(--danger);background:#f7d7d0}.party-summary-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;display:grid}.party-summary-stats em{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);color:var(--text-normal);text-align:center;border-radius:8px;padding:5px;font-size:.62rem;font-style:normal;font-weight:950}.party-summary-health{background:#eadfce;border-radius:999px;height:6px;overflow:hidden}.party-summary-health i{border-radius:inherit;background:var(--brand-green);height:100%;display:block}.party-summary-row.danger .party-summary-health i{background:var(--danger)}.party-summary-note{max-height:2.8em;line-height:1.4;display:block;overflow:hidden}@media (width<=760px){.party-summary-overview{grid-template-columns:1fr}.party-summary-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.gm-panel-content{min-width:0;color:var(--text-normal);gap:10px;display:grid}.gm-panel-section{gap:7px;min-width:0;display:grid}.gm-panel-section>header,.gm-panel-section-header{justify-content:space-between;align-items:baseline;gap:8px;min-width:0;display:flex}.gm-panel-section>header strong,.gm-panel-section-header strong,.gm-panel-title{color:var(--text-normal);letter-spacing:.04em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:.72rem;font-weight:950;overflow:hidden}.gm-panel-section>header small,.gm-panel-section-header small,.gm-panel-subtitle,.gm-panel-muted{color:var(--text-weak);text-overflow:ellipsis;font-size:.62rem;font-weight:750;line-height:1.3;overflow:hidden}.gm-panel-context{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.gm-panel-context.three,.gm-panel-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.gm-panel-context.four,.gm-panel-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.gm-panel-stat,.gm-panel-card,.gm-panel-row{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);border-radius:10px;min-width:0;padding:8px}.gm-panel-stat{gap:2px;display:grid}.gm-panel-stat small,.gm-panel-card small,.gm-panel-row small{color:var(--text-weak);text-overflow:ellipsis;font-size:.6rem;font-weight:850;line-height:1.25;overflow:hidden}.gm-panel-stat strong,.gm-panel-card strong,.gm-panel-row strong{color:var(--text-normal);text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;font-weight:950;overflow:hidden}.gm-panel-list{gap:8px;max-height:360px;padding-right:2px;display:grid;overflow:auto}.gm-panel-row{gap:7px;display:grid}.gm-panel-row.selected,.gm-panel-card.selected{border-color:var(--accent-primary);background:var(--accent-dim);box-shadow:inset 0 0 0 1px var(--border-subtle)}.gm-panel-row.danger,.gm-panel-card.danger,.gm-panel-danger{border-color:var(--danger);background:var(--danger-dim);color:var(--danger)}.gm-panel-row.success,.gm-panel-card.success,.gm-panel-success{border-color:var(--accent-secondary);background:var(--accent-dim);color:var(--brand-green)}.gm-panel-row>header,.gm-panel-card>header{justify-content:space-between;align-items:flex-start;gap:8px;min-width:0;display:flex}.gm-panel-row>header span,.gm-panel-card>header span{gap:2px;min-width:0;display:grid}.gm-panel-badge{background:var(--accent-dim);min-height:20px;color:var(--brand-green);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:3px 7px;font-size:.62rem;font-style:normal;font-weight:950;display:inline-flex}.gm-panel-badge.danger{color:var(--danger);background:#f7d7d0}.gm-panel-badge.warning{background:var(--accent-dim);color:var(--accent-primary)}.gm-panel-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.gm-panel-actions{flex-wrap:wrap;gap:6px;display:flex}.gm-panel-actions.grid{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.gm-panel-actions.three{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.gm-panel-button,.gm-panel-actions button,.gm-panel-content button{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);min-width:0;min-height:30px;color:var(--text-normal);text-overflow:ellipsis;white-space:nowrap;border-radius:8px;padding:5px 8px;font-size:.66rem;font-weight:900;transition:background .15s,border-color .15s,color .15s;overflow:hidden}.gm-panel-button:hover:not(:disabled),.gm-panel-actions button:hover:not(:disabled),.gm-panel-content button:hover:not(:disabled){border-color:var(--accent-primary);background:var(--accent-dim);color:var(--brand-green)}.gm-panel-button:disabled,.gm-panel-actions button:disabled,.gm-panel-content button:disabled{cursor:not-allowed;opacity:.45}.gm-panel-textarea,.gm-panel-content textarea{resize:vertical;border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);width:100%;min-height:150px;color:var(--text-normal);font:inherit;border-radius:10px;padding:9px;font-size:.78rem;line-height:1.45}.gm-panel-textarea:focus,.gm-panel-content textarea:focus{border-color:var(--brand-green);outline:2px solid var(--border-subtle)}.gm-panel-footer{justify-content:space-between;align-items:center;gap:8px;display:flex}.gm-panel-progress{background:#eadfce;border-radius:999px;height:6px;overflow:hidden}.gm-panel-progress i{border-radius:inherit;background:var(--brand-green);height:100%;display:block}.gm-panel-progress.danger i{background:var(--danger)}@media (width<=760px){.gm-panel-context,.gm-panel-context.three,.gm-panel-context.four,.gm-panel-grid,.gm-panel-grid.three,.gm-panel-grid.four,.gm-panel-actions.grid,.gm-panel-actions.three{grid-template-columns:1fr}.gm-panel-footer{flex-direction:column;align-items:stretch}}.gm-notes-panel textarea{min-height:150px}.party-summary-panel .gm-panel-list{max-height:360px}.token-detail-card{min-height:260px}.token-detail-panel-standard{min-width:0}.token-detail-color-card{justify-content:space-between;align-items:center;gap:8px;display:flex}.token-detail-color-card span{gap:2px;min-width:0;display:grid}.token-detail-color-card i{border:2px solid #fffdf7;border-radius:999px;flex:none;width:26px;height:26px;box-shadow:0 0 0 1px #d8d1c2}.token-detail-nudge-grid{grid-template-columns:repeat(3,minmax(0,34px));justify-content:center;gap:6px;display:grid}.token-detail-nudge-grid button:first-child{grid-column:2}.token-detail-nudge-grid button:nth-child(2){grid-column:1}.token-detail-nudge-grid button:nth-child(3){grid-column:3}.token-detail-nudge-grid button:nth-child(4){grid-column:2}.token-detail-nudge-grid button{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);min-width:34px;min-height:32px;color:var(--text-normal);border-radius:8px;padding:0;font-size:.82rem;font-weight:950;transition:background .15s,border-color .15s}.token-detail-nudge-grid button:hover{border-color:var(--accent-primary);background:var(--accent-dim);color:var(--brand-green)}.handout-section{margin:16px 0}.handout-actions{margin-bottom:12px}.handout-form{flex-direction:column;gap:10px;margin-bottom:14px;padding:14px;display:flex}.handout-form label{color:#4a4234;flex-direction:column;gap:3px;font-size:.82rem;display:flex}.handout-form input,.handout-form textarea,.handout-form select{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);border-radius:8px;padding:8px 10px;font-size:.88rem}.handout-form textarea{resize:vertical;min-height:80px}.handout-list{flex-direction:column;gap:8px;display:flex}.handout-row{border:1px solid var(--border-subtle);background:var(--bg-surface-secondary);border-radius:10px;justify-content:space-between;align-items:flex-start;gap:10px;padding:12px;display:flex}.handout-row.revealed{border-color:var(--accent-primary);background:var(--accent-dim)}.handout-main{flex-direction:column;gap:4px;min-width:0;display:flex}.handout-main strong{color:var(--text-normal);font-size:.92rem}.handout-main small{color:#6b5e4b;align-items:center;gap:4px;font-size:.76rem;display:flex}.handout-preview{color:#5a4e3e;white-space:pre-wrap;margin:6px 0 0;font-size:.8rem;line-height:1.45}.handout-row-actions{flex-shrink:0;gap:4px;display:flex}.handout-row-actions button.danger{color:#c0392b;transition:background .15s,color .15s}.handout-row-actions button.danger:hover{background:#fdecea;border-color:#c0392b}.player-view{color:#161b18;background:#f8f6f0;min-height:100vh}.player-campaign-header{color:#f8f4e8;background:linear-gradient(135deg,#1b4332,#081c15);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;padding:16px 24px;display:flex}.player-campaign-header h2{align-items:center;gap:8px;margin:0;font-size:1.3rem;display:flex}.player-campaign-header p.muted{color:#d4cdb8;margin:4px 0 0;font-size:.82rem}.player-header-meta{flex-shrink:0;align-items:center;gap:16px;display:flex}.player-status{color:#d4cdb8;align-items:center;gap:6px;font-size:.82rem;display:flex}.player-header-meta .ghost-button{color:#f8f4e8;border-color:#f8f4e84d}.player-header-meta .ghost-button:hover{background:#f8f4e81f;border-color:#f8f4e899}.player-tab-bar{background:#fff;border-bottom:1px solid #d4cdb8;gap:0;padding:0 24px;display:flex}.player-tab-btn{color:#6b5e4b;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:12px 20px;font-size:.92rem;transition:all .15s;display:flex}.player-tab-btn.active{color:#1b4332;border-bottom-color:#1b4332;font-weight:600}.player-tab-content{max-width:1200px;padding:24px}.player-char-layout{grid-template-columns:240px 1fr 320px;gap:24px;display:grid}.player-char-sidebar{background:#fff;border:1px solid #d4cdb8;border-radius:8px;overflow:hidden}.player-char-sidebar h3{background:#f3f1ea;border-bottom:1px solid #d4cdb8;margin:0;padding:12px 16px;font-size:.92rem}.player-char-row{text-align:left;cursor:pointer;color:#161b18;background:0 0;border:none;border-left:3px solid #0000;justify-content:space-between;align-items:center;width:100%;padding:10px 16px;font-size:.88rem;transition:background .15s;display:flex}.player-char-row.selected{background:#e8f5e9;border-left-color:#2d6a4f;font-weight:600}.player-char-row span{flex-direction:column;display:flex}.player-char-row small{color:#6b5e4b;margin-top:2px;font-size:.76rem}.player-char-row em{color:#2d6a4f;align-items:center;gap:4px;font-size:.82rem;display:flex}.player-sheet-preview{background:#fff;border:1px solid #d4cdb8;border-radius:8px;padding:20px}.player-char-create{background:#fff;border:1px solid #d4cdb8;border-radius:8px;padding:20px;overflow-y:auto}.player-char-create h3{margin:0 0 16px;font-size:.95rem}.player-char-create .form-stack{gap:10px}.player-char-create label{font-size:.82rem}.player-char-create input,.player-char-create textarea{padding:7px 10px;font-size:.85rem}.player-quick-rolls{border-top:1px solid #e0d8c8;margin-top:16px;padding-top:12px}.quick-roll-buttons{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.quick-roll-btn{color:#2d6a4f;cursor:pointer;background:#fff;border:1px solid #d4cdb8;border-radius:4px;padding:5px 12px;font-size:.8rem;transition:all .15s}.quick-roll-btn:hover{background:#e8f5e9;border-color:#2d6a4f}.player-dice-layout{grid-template-columns:1fr 1fr;gap:24px;display:grid}.player-dice-roller{background:#fff;border:1px solid #d4cdb8;border-radius:8px;padding:24px}.player-dice-roller h3{align-items:center;gap:8px;margin:0 0 16px;font-size:1.1rem;display:flex}.player-dice-roller label{font-size:.82rem}.player-dice-roller input{padding:8px 12px;font-size:.92rem}.dice-result-highlight{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border:1px solid #a5d6a7;border-radius:8px;align-items:center;gap:16px;margin-top:20px;padding:16px;display:flex}.dice-result-highlight strong{color:#1b4332;font-size:2rem;display:block}.dice-result-highlight small{color:#5a4e3e;font-size:.8rem}.player-roll-history{background:#fff;border:1px solid #d4cdb8;border-radius:8px;padding:24px}.player-roll-history h3{margin:0 0 12px;font-size:.95rem}.roll-list-compact{max-height:400px;overflow-y:auto}.roll-row-compact{border-bottom:1px solid #f0ece5;align-items:center;gap:10px;padding:6px 0;font-size:.84rem;display:flex}.roll-total{color:#2d6a4f;text-align:center;min-width:32px;font-size:1rem;font-weight:700}.roll-formula{color:#6b5e4b;min-width:70px}.roll-label{color:#5a4e3e;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.player-tab.handouts{padding-right:0}.handout-card{background:#fff;border:1px solid #d4cdb8;border-radius:8px;margin-bottom:12px;padding:16px}.handout-card.revealed{background:#f0faf0;border-color:#a5d6a7}.handout-card-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.handout-card-header h4{margin:0;font-size:.95rem}.handout-visibility-badge{color:#6b5e4b;background:#f3f1ea;border-radius:3px;padding:2px 8px;font-size:.74rem}.handout-content{white-space:pre-wrap;color:#161b18;margin:0;font-size:.84rem;line-height:1.5}.markdown-rendered{color:var(--text-secondary);font-size:.84rem;line-height:1.6}.markdown-rendered h1,.markdown-rendered h2,.markdown-rendered h3{color:var(--text-primary);margin:.75rem 0 .35rem}.markdown-rendered h1{font-size:1.2rem}.markdown-rendered h2{font-size:1.05rem}.markdown-rendered h3{font-size:.95rem}.markdown-rendered p{margin:.35rem 0}.markdown-rendered ul,.markdown-rendered ol{margin:.35rem 0;padding-left:1.25rem}.markdown-rendered li{margin:.15rem 0}.markdown-rendered code{color:var(--accent);background:#ffffff14;border-radius:3px;padding:.1rem .35rem;font-size:.8rem}.markdown-rendered pre{background:#0000004d;border-radius:4px;padding:.5rem .75rem;font-size:.78rem;overflow-x:auto}.markdown-rendered pre code{color:inherit;background:0 0;padding:0}.markdown-rendered blockquote{color:var(--text-tertiary);border-left:3px solid #c5b358;margin:.5rem 0;padding:.25rem .75rem;font-style:italic}.markdown-rendered table{border-collapse:collapse;width:100%;margin:.5rem 0;font-size:.78rem}.markdown-rendered th,.markdown-rendered td{text-align:left;border:1px solid #3a4a3e;padding:.3rem .5rem}.markdown-rendered th{background:var(--bg-hover);color:var(--text-primary);font-weight:600}.markdown-rendered a{color:var(--accent);text-decoration:underline}.markdown-rendered hr{border:none;border-top:1px solid #3a4a3e;margin:.75rem 0}.player-combat-view{grid-template-columns:280px 1fr;gap:24px;display:grid}.encounter-list{flex-direction:column;gap:4px;display:flex}.combatant-readonly-list{background:#fff;border:1px solid #d4cdb8;border-radius:8px;padding:16px}.combatant-readonly-row{border-bottom:1px solid #f0ece5;justify-content:space-between;align-items:center;padding:8px 12px;font-size:.88rem;display:flex}.combatant-readonly-row:last-child{border-bottom:none}.combatant-readonly-row strong{color:#161b18}.combatant-readonly-row small{color:#6b5e4b;margin-left:8px;font-size:.74rem}.player-toast{color:#f8f4e8;z-index:100;background:#1b4332;border-radius:8px;align-items:center;gap:12px;padding:10px 20px;font-size:.88rem;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 4px 24px #00000026}.player-toast p{margin:0}.player-toast .ghost-button{color:#f8f4e8;border-color:#0000;padding:2px 6px}.invite-shell{background:linear-gradient(135deg,#1b4332,#081c15);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.invite-card{text-align:center;background:#fff;border-radius:12px;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:480px;padding:40px;display:flex;box-shadow:0 8px 32px #0000004d}.invite-card h1{color:#1b4332;margin:0;font-size:1.6rem}.invite-card h2{color:#161b18;margin:0;font-size:1.1rem}.invite-card p{color:#5a4e3e;margin:0 0 4px;font-size:.9rem}.invite-card .muted{color:#6b5e4b;font-size:.82rem}.invite-card .error-text{color:#c0392b;font-size:.84rem}.invite-card .primary-button{margin-top:8px;padding:12px 32px;font-size:1rem}.invite-card .auth-view{width:100%}@media (width<=900px){.player-char-layout,.player-dice-layout,.player-combat-view{grid-template-columns:1fr}.player-campaign-header{flex-direction:column;align-items:flex-start}}.sheet-preview.editable{background:0 0;border:none;padding:0}.sheet-actions{flex-shrink:0;gap:4px;display:flex}.sheet-actions .ghost-button.compact{padding:4px 8px;font-size:.75rem}.sheet-name-edit{color:#161b18;border:1px solid #d4cdb8;border-radius:4px;width:100%;max-width:280px;padding:4px 8px;font-size:1.1rem;font-weight:700}.character-edit-form{flex-direction:column;gap:14px;margin-top:12px;display:flex}.edit-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.edit-grid label,.edit-abilities label{color:#5a4e3e;flex-direction:column;gap:3px;font-size:.78rem;display:flex}.edit-grid input,.edit-abilities input,.character-edit-form textarea,.edit-notes textarea{background:#fff;border:1px solid #d4cdb8;border-radius:4px;padding:6px 8px;font-size:.85rem}.edit-abilities h5{color:#1b4332;margin:0 0 8px;font-size:.85rem}.edit-section{border:1px solid #e0d8c8;border-radius:6px;padding:10px}.edit-section summary{color:#1b4332;cursor:pointer;font-size:.84rem;font-weight:600}.edit-section textarea{width:100%;min-height:80px;margin-top:8px;font-family:monospace;font-size:.78rem}.edit-section small{color:#6b5e4b;margin-top:4px;font-size:.7rem;display:block}.edit-notes{color:#5a4e3e;flex-direction:column;gap:3px;font-size:.78rem;display:flex}.sheet-section{border-top:1px solid #e0d8c8;margin-top:14px;padding-top:10px}.sheet-section h5{color:#1b4332;margin:0 0 6px;font-size:.85rem}.sheet-list{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.sheet-list li{color:#161b18;padding:2px 0;font-size:.82rem}.sheet-toast{color:#2d6a4f;background:#e8f5e9;border:1px solid #a5d6a7;border-radius:6px;justify-content:space-between;align-items:center;margin-top:10px;padding:8px 12px;font-size:.82rem;display:flex}.sheet-toast p{margin:0}.sheet-toast button{cursor:pointer;color:#2d6a4f;background:0 0;border:none;font-size:.9rem}.category-filter-list{flex-wrap:wrap;gap:4px;margin-top:8px;display:flex}.category-filter-list .ghost-button{padding:4px 8px;font-size:.72rem}.pinned-section{background:#fffbeb;border:1px solid #fbbf24}.log-row-content{flex:1;min-width:0}.log-row-header{justify-content:space-between;align-items:flex-start;gap:4px;display:flex}.log-row-header>span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.log-row-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.pin-btn{color:#6b5e4b;min-width:20px;transition:all .15s;background:0 0!important;border:none!important;padding:2px 4px!important}.pin-btn:hover{color:#f59e0b}.category-select{color:#6b5e4b;background:#fff;border:1px solid #d4cdb8;border-radius:3px;max-width:100px;padding:2px 4px;font-size:.66rem}.compact-log-row.pinned{background:#fffbeb;border-left:3px solid #f59e0b}.compact-log-row .log-row-content small{margin-top:2px;display:block}.homebrew-panel{border-top:1px solid #e0d8c8;margin-top:16px;padding-top:16px}.homebrew-tab-bar{flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:12px;display:flex}.homebrew-tab-btn{cursor:pointer;color:#5a4e3e;background:#fff;border:1px solid #d4cdb8;border-radius:6px;align-items:center;gap:4px;padding:6px 14px;font-size:.82rem;display:flex}.homebrew-tab-btn.active{color:#1b4332;background:#e8f5e9;border-color:#2d6a4f;font-weight:600}.homebrew-toolbar-spacer{flex:1}.import-label{color:#5a4e3e;cursor:pointer;border:1px solid #d4cdb8;border-radius:6px;align-items:center;gap:4px;padding:4px 10px;font-size:.78rem;transition:all .15s;display:flex}.import-label:hover{background:#f3f1ea}.homebrew-content{background:#fff;border:1px solid #d4cdb8;border-radius:8px;padding:16px}.homebrew-creature-layout{grid-template-columns:200px 1fr 280px;gap:16px;display:grid}.homebrew-list-sidebar{border-right:1px solid #e0d8c8;padding-right:8px}.homebrew-list-sidebar h4{margin:0 0 8px;font-size:.85rem}.homebrew-row{text-align:left;cursor:pointer;background:0 0;border:none;border-left:3px solid #0000;border-radius:3px;justify-content:space-between;align-items:center;width:100%;margin-bottom:2px;padding:6px 8px;font-size:.8rem;transition:background .15s;display:flex}.homebrew-row:hover{background:#f3f1ea}.homebrew-row.selected{background:#e8f5e9;border-left-color:#2d6a4f;font-weight:600}.homebrew-row span{flex-direction:column;display:flex}.homebrew-row small{color:#6b5e4b;font-size:.68rem}.homebrew-row em{color:#2d6a4f;font-size:.72rem}.homebrew-detail h4{margin:0 0 8px;font-size:1rem}.homebrew-detail-actions{flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;display:flex}.mini-select-label{color:#5a4e3e;align-items:center;gap:4px;font-size:.76rem;display:flex}.mini-select-label select{border:1px solid #d4cdb8;border-radius:4px;padding:3px 6px;font-size:.74rem}.homebrew-create{background:#faf9f5;border:1px solid #e0d8c8;border-radius:6px;max-height:500px;padding:12px;overflow-y:auto}.homebrew-create h4{margin:0 0 10px;font-size:.85rem}.homebrew-create .form-stack{gap:8px}.homebrew-create label{font-size:.76rem}.homebrew-create input,.homebrew-create select,.homebrew-create textarea{padding:5px 8px;font-size:.8rem}.homebrew-toast{color:#2d6a4f;background:#e8f5e9;border:1px solid #a5d6a7;border-radius:6px;justify-content:space-between;align-items:center;margin-top:10px;padding:8px 12px;font-size:.82rem;display:flex}.homebrew-toast button{cursor:pointer;color:#2d6a4f;background:0 0;border:none;font-size:.9rem}@media (width<=900px){.homebrew-creature-layout{grid-template-columns:1fr}}.fog-layer-container{pointer-events:none;z-index:10;position:absolute;top:0;left:0}.fog-canvas{pointer-events:auto}.fog-toolbar{z-index:20;pointer-events:auto;gap:6px;display:flex;position:absolute;top:8px;right:8px}.fog-toggle-btn{cursor:pointer;color:#5a4e3e;background:#fff;border:1px solid #d4cdb8;border-radius:6px;align-items:center;gap:4px;padding:4px 10px;font-size:.78rem;font-weight:600;display:flex}.fog-toggle-btn.active{color:#f8f4e8;background:#1b4332;border-color:#1b4332}.fog-save-error{z-index:20;color:#ffd6d6;pointer-events:none;background:#2d1212eb;border:1px solid #dc3c3c8c;border-radius:6px;padding:4px 8px;font-size:.72rem;position:absolute;top:48px;right:8px}.landing-shell{background:linear-gradient(160deg,#1a1e2b 0%,#2a3a2e 50%,#1a1e2b 100%);flex-direction:column;justify-content:center;align-items:center;gap:3rem;min-height:100vh;padding:3rem clamp(1rem,5vw,4rem);display:flex}.landing-hero{text-align:center}.landing-hero .brand-mark.large{color:var(--accent);flex-direction:column;gap:1rem}.landing-hero .brand-mark.large h1{letter-spacing:.04em;color:#f8f4e8;font-size:2.4rem;font-weight:800}.landing-tagline{color:#a0a898;max-width:560px;margin-top:1rem;font-size:1.1rem}.landing-choices{flex-wrap:wrap;justify-content:center;gap:1.5rem;width:100%;max-width:720px;display:flex}.landing-choice{background:var(--bg-hover);color:var(--text-brand);text-align:left;cursor:pointer;border:2px solid #3a4a3e;border-radius:12px;flex:280px;align-items:center;gap:1.25rem;padding:1.75rem 2rem;transition:border-color .2s,background .2s,transform .15s;display:flex}.landing-choice:hover{transform:translateY(-2px)}.landing-choice.gm-choice:hover{border-color:var(--accent);background:#c5b35814}.landing-choice.player-choice:hover{background:#7c3aed14;border-color:#7c3aed}.landing-choice h2{margin:0 0 .3rem;font-size:1.15rem;font-weight:700}.landing-choice p{color:#9aa898;margin:0;font-size:.88rem;line-height:1.45}.landing-choice svg{opacity:.8;flex-shrink:0}.landing-choice.gm-choice svg{color:var(--accent)}.landing-choice.player-choice svg{color:#7c3aed}.landing-footer{color:var(--text-muted);gap:2rem;font-size:.82rem;display:flex}.auth-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.auth-role-badge{color:var(--accent);background:#c5b3581f;border-radius:8px;align-items:center;gap:.5rem;padding:.35rem .85rem;font-size:.85rem;font-weight:600;display:flex}.auth-role-badge svg{opacity:.85}.player-map-shell{flex-direction:column;gap:.5rem;height:100%;min-height:50vh;display:flex}.player-map-toolbar{background:var(--bg-hover);border-radius:8px;flex-wrap:wrap;align-items:center;gap:1rem;padding:.5rem .75rem;display:flex}.player-map-toolbar strong{color:var(--text-brand);font-size:1rem}.player-map-toolbar small{color:var(--text-weak);font-size:.8rem}.player-map-toolbar select{background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-normal);font-size:var(--text-sm);padding:.25rem .5rem}.player-map-zoom{align-items:center;gap:.4rem;margin-left:auto;display:flex}.player-map-zoom button{color:#e8e4d8;cursor:pointer;background:#2a3a2e;border:1px solid #4a5a4e;border-radius:4px;padding:.15rem .45rem;font-size:.85rem;font-weight:600}.player-map-zoom span{color:#8a9a8e;text-align:center;min-width:2.8rem;font-size:.8rem}.player-map-viewport{background:#1a1e2b;border:1px solid #3a4a3e;border-radius:8px;flex:1;overflow:auto}.player-map-surface{min-width:100%;min-height:100%;position:relative}.player-map-board{transform-origin:0 0;background-image:linear-gradient(#4a5a4e33 1px,#0000 1px),linear-gradient(90deg,#4a5a4e33 1px,#0000 1px);position:relative}.player-map-bg{object-fit:fill;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.player-token{color:#fff;text-shadow:0 1px 2px #0009;pointer-events:none;z-index:5;border:2px solid #ffffff80;border-radius:50%;justify-content:center;align-items:center;font-size:.65rem;font-weight:800;display:flex;position:absolute}.dice-mode-toggle{gap:.35rem;display:flex}.dice-mode-toggle button{color:#b0b8a0;cursor:pointer;background:#2a3a3a;border:1px solid #4a5a4e;border-radius:6px;flex:1;padding:.35rem .5rem;font-size:.78rem;font-weight:600;transition:background .15s}.dice-mode-toggle button.active{color:var(--accent);border-color:var(--accent);background:#1b4332}.quick-roll-btn.skill{background:#7c3aed1f;border-color:#7c3aed4d}.quick-roll-btn.skill:hover{background:#7c3aed40}.player-char-io{border-top:1px solid #3a4a3e;gap:.5rem;margin-top:.75rem;padding-top:.5rem;display:flex}.player-journal-layout{flex-direction:column;gap:1.5rem;display:flex}.player-note-form{flex-direction:column;gap:.6rem;display:flex}.player-note-form h3{color:var(--text-primary);align-items:center;gap:.4rem;margin:0;font-size:1rem;display:flex}.player-note-form textarea{width:100%;color:var(--text-brand);resize:vertical;background:#2a3a2e;border:1px solid #4a5a4e;border-radius:8px;padding:.6rem .8rem;font-family:inherit;font-size:.88rem}.player-note-form textarea::placeholder{color:var(--text-muted)}.player-session-log .section-heading{justify-content:space-between;align-items:center;display:flex}.player-session-log .section-heading h3{color:var(--text-primary);margin:0;font-size:1rem}.log-list-compact{flex-direction:column;gap:.35rem;max-height:40vh;display:flex;overflow-y:auto}.log-row-compact{color:var(--text-secondary);background:#ffffff08;border-radius:4px;align-items:baseline;gap:.5rem;padding:.35rem .5rem;font-size:.84rem;display:flex}.log-entry-type{flex-shrink:0;font-size:.9rem}.log-entry-msg{color:var(--text-primary);flex:1}.log-entry-char{color:#8a9a8e;flex-shrink:0;font-size:.78rem}.combatant-readonly-row.my-turn{background:#c5b35814;border-left:3px solid #c5b358;padding-left:.75rem}.my-turn-badge{color:var(--accent);margin-left:.4rem;font-size:.75rem;font-weight:600;display:inline-block}.auth-page-shell{background:linear-gradient(135deg, var(--bg-global) 0%, var(--bg-surface) 100%);min-height:100vh;display:flex}.auth-page-hero{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1.5rem;padding:3rem 2rem;display:flex}.auth-page-hero .brand-mark.large{flex-direction:column;align-items:center;gap:.75rem;display:flex}.auth-page-hero .brand-mark.large h1{color:var(--text-brand);margin:0;font-size:2rem;font-weight:700}.auth-page-tagline{color:#8a9a8e;text-align:center;max-width:24rem;font-size:1.1rem;line-height:1.5}.auth-page-form{border-left:1px solid var(--border-color);background:#141e19e6;flex-direction:column;flex:0 0 28rem;gap:1.25rem;padding:2.5rem 2rem;display:flex;overflow-y:auto}.auth-page-form .auth-tabs{gap:.5rem;display:flex}.auth-page-form .auth-tabs button{color:#8a9a8e;cursor:pointer;background:#1a2a1e;border:1px solid #3a4a3e;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:.4rem;padding:.6rem 1rem;font-size:.9rem;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:flex}.auth-page-form .auth-tabs button.active{color:var(--accent);border-color:var(--accent);background:#1b4332}.account-type-radio-group{border:none;flex-direction:column;gap:.6rem;margin:0;padding:0;display:flex}.account-type-radio-group legend{color:#8a9a8e;margin-bottom:.25rem;font-size:.82rem;font-weight:600}.account-type-radio{cursor:pointer;background:#1e282399;border:2px solid #2a3a2e;border-radius:10px;align-items:center;gap:.75rem;padding:.85rem 1rem;transition:border-color .15s,background .15s;display:flex}.account-type-radio input[type=radio]{display:none}.account-type-radio.selected{border-color:var(--accent);background:#c5b35814}.account-type-radio svg{color:var(--accent);opacity:.7;flex-shrink:0}.account-type-radio.selected svg{opacity:1}.account-type-radio div{flex-direction:column;gap:.15rem;display:flex}.account-type-radio strong{color:var(--text-primary);font-size:.9rem}.account-type-radio small{color:var(--text-muted);font-size:.75rem}.password-input-wrapper{align-items:center;display:flex;position:relative}.password-input-wrapper input{flex:1;padding-right:2.5rem}.password-input-wrapper .icon-button{color:#8a9a8e;cursor:pointer;background:0 0;border:none;align-items:center;padding:.25rem;display:flex;position:absolute;right:.5rem}.password-input-wrapper .icon-button:hover{color:var(--accent)}.password-strength{align-items:center;gap:.5rem;display:flex}.password-strength-bar{background:#2a3a2e;border-radius:2px;flex:1;height:4px;overflow:hidden}.password-strength-fill{border-radius:2px;height:100%;transition:width .2s,background .2s}.password-strength-fill.strength-0{background:#c44}.password-strength-fill.strength-1{background:#c64}.password-strength-fill.strength-2{background:#c94}.password-strength-fill.strength-3{background:#8a4}.password-strength-fill.strength-4{background:#4a4}.password-strength-fill.strength-5{background:#4a6}.strength-label{text-align:right;min-width:5rem;font-size:.75rem}.strength-label.strength-0,.strength-label.strength-1{color:#c64}.strength-label.strength-2{color:#c94}.strength-label.strength-3,.strength-label.strength-4,.strength-label.strength-5{color:#8a4}.field-error{color:#c64;margin-top:.25rem;font-size:.78rem;display:block}.honeypot{opacity:0;pointer-events:none;border:none;outline:none;width:0;height:0;margin:0;padding:0;position:absolute;top:-9999px;left:-9999px}.auth-switch-hint{text-align:center;color:var(--text-muted);font-size:.85rem}.auth-switch-hint .link-button{color:var(--accent);cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.auth-switch-hint .link-button:hover{color:#e8d48a}@media (width<=768px){.auth-page-shell{flex-direction:column}.auth-page-hero{gap:1rem;padding:2rem 1.5rem}.auth-page-hero .brand-mark.large h1{font-size:1.5rem}.auth-page-form{border-left:none;border-top:1px solid var(--border-color);flex:none;padding:1.5rem 1.25rem}}.lobby-shell{background:linear-gradient(135deg, var(--bg-global) 0%, var(--bg-surface) 100%);flex-direction:column;min-height:100vh;display:flex}.lobby-header{border-bottom:1px solid var(--border-color);background:#141c18f2;align-items:center;gap:1rem;padding:.75rem 1.5rem;display:flex}.lobby-header .brand-mark.compact{color:var(--text-brand);align-items:center;gap:.5rem;font-size:1.1rem;font-weight:700;display:flex}.lobby-user-info{align-items:center;gap:.6rem;margin-left:auto;display:flex}.lobby-user-info>span:first-child{color:var(--text-secondary);font-size:.9rem}.role-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:6px;align-items:center;padding:.15rem .6rem;font-size:.72rem;font-weight:700;display:inline-flex}.role-badge.gm{background:var(--accent-dim);color:var(--accent)}.role-badge.player{color:#6aaeff;background:#4a90e226}.lobby-content{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2rem;padding:2rem;display:flex}.lobby-hero{text-align:center;flex-direction:column;align-items:center;gap:.75rem;display:flex}.lobby-hero svg{color:var(--accent);opacity:.7}.lobby-hero h2{color:var(--text-brand);margin:0;font-size:1.5rem}.lobby-hero .muted{color:var(--text-muted);max-width:28rem;font-size:.95rem;line-height:1.5}.lobby-footer{border-top:1px solid var(--border-color);text-align:center;color:#4a5a4e;padding:.75rem 1.5rem;font-size:.82rem}.player-lobby .lobby-invite-section{width:100%;max-width:32rem}.invite-code-form label{color:#8a9a8e;flex-direction:column;gap:.4rem;font-size:.85rem;font-weight:600;display:flex}.invite-input-row{gap:.5rem;display:flex}.invite-input-row input{color:var(--text-brand);background:#2a3a2e;border:1px solid #4a5a4e;border-radius:8px;flex:1;padding:.6rem .8rem;font-size:.9rem}.invite-input-row input::placeholder{color:#5a6a5e}.invite-preview-card{text-align:center;background:#1e2823cc;border:1px solid #3a4a3e;border-radius:12px;flex-direction:column;align-items:center;gap:.6rem;margin-top:1.5rem;padding:1.5rem;display:flex}.invite-preview-card.error{border-color:#633}.invite-preview-card svg{color:var(--accent)}.invite-preview-card h3{color:var(--text-brand);margin:0;font-size:1.15rem}.invite-preview-card p{color:#b0b8a0;margin:0;font-size:.88rem}.invite-preview-card .error-text{color:#c64}.gm-lobby .lobby-create-section{width:100%;max-width:36rem}.gm-lobby .lobby-create-section h3{color:var(--text-primary);margin:0 0 1rem;font-size:1.1rem}.gm-lobby .lobby-create-section .form-stack{gap:.75rem}.campaign-map-shell{flex-direction:column;height:100%;min-height:0;display:flex;position:relative}.campaign-map-empty{justify-content:center;align-items:center;gap:var(--space-4);height:100%;min-height:20vh;color:var(--text-weak);text-align:center;padding:var(--space-6);flex-direction:column;display:flex}.campaign-map-empty:before{content:"🗺️";margin-bottom:var(--space-2);opacity:.6;font-size:2.5rem}.campaign-map-empty .muted{font-size:var(--text-lg);color:var(--text-weak);max-width:320px;line-height:1.5}.campaign-map-empty .muted:after{content:"Ajoute une carte pour commencer ta session.";font-size:var(--text-sm);color:var(--text-weak);margin-top:var(--space-2);opacity:.7;display:block}.campaign-map-toolbar{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;flex-shrink:0;min-height:44px;display:flex}.campaign-map-toolbar strong{font-size:var(--text-md);color:var(--text-strong);font-weight:600}.campaign-map-toolbar select{padding:var(--space-1) var(--space-2);background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-normal);font-size:var(--text-sm);min-width:10rem}.campaign-map-toolbar select:focus-visible{border-color:var(--accent-primary);outline:none}.campaign-map-zoom{align-items:center;gap:var(--space-1);margin-left:auto;display:flex}.campaign-map-zoom button{background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-normal);cursor:pointer;min-width:1.5rem;padding:.15rem .5rem;font-size:.85rem;font-weight:600;transition:all .15s}.campaign-map-zoom button:hover{background:var(--bg-hover);border-color:var(--border-color)}.campaign-map-zoom span{font-size:var(--text-xs);color:var(--text-weak);text-align:center;min-width:2.8rem}.campaign-map-grid-toggle,.campaign-map-pan-toggle{background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-weak);cursor:pointer;font-size:var(--text-xs);align-items:center;gap:.3rem;padding:.25rem .5rem;transition:all .15s;display:flex}.campaign-map-grid-toggle:hover,.campaign-map-pan-toggle:hover{background:var(--bg-hover);color:var(--text-normal)}.campaign-map-grid-toggle.active,.campaign-map-pan-toggle.active{background:var(--bg-active);color:var(--accent-primary);border-color:var(--accent-primary)}.campaign-map-viewport{background:var(--bg-canvas);cursor:default;flex:1;overflow:auto}.campaign-map-viewport.pan-mode{cursor:grab}.campaign-map-viewport.panning{cursor:grabbing}.campaign-map-surface{min-width:100%;min-height:100%;position:relative}.campaign-map-board{background-image:linear-gradient(var(--border-subtle) 1px, transparent 1px), linear-gradient(90deg, var(--border-subtle) 1px, transparent 1px);transform-origin:0 0;position:relative}.campaign-map-board.with-background{background-image:none}.campaign-map-bg{object-fit:fill;pointer-events:none;z-index:0;width:100%;height:100%;position:absolute;inset:0}.campaign-map-token{color:#fff;text-shadow:0 1px 2px #0009;cursor:grab;z-index:5;border:2px solid #fff6;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:.65rem;font-weight:800;display:flex;position:absolute}.campaign-map-token.dragging{cursor:grabbing;opacity:.85}.gm-campaign-shell{background:var(--bg-primary);grid-template-columns:240px 1fr 340px;height:100vh;display:grid;overflow:hidden}.gm-campaign-shell.focus-map{grid-template-columns:0 1fr 0}.gm-campaign-shell.focus-map .gm-sidebar,.gm-campaign-shell.focus-map .gm-panels{display:none}.gm-sidebar{gap:var(--space-3);padding:var(--space-4);background:var(--bg-surface);border-right:1px solid var(--border-subtle);resize:horizontal;flex-direction:column;min-width:180px;max-width:360px;display:flex;overflow-y:auto}.gm-sidebar .brand-mark.compact{align-items:center;gap:var(--space-2);font-size:var(--text-xl);color:var(--accent-primary);padding-bottom:var(--space-3);margin-bottom:var(--space-1);border-bottom:1px solid var(--border-subtle);letter-spacing:-.02em;font-weight:800;display:flex}.gm-campaign-list h4,.gm-members-list h4{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--text-weak);margin:0 0 var(--space-2);font-weight:600}.gm-campaign-item{width:100%;padding:var(--space-2) var(--space-3);margin-bottom:var(--space-1);border-radius:var(--radius-md);color:var(--text-normal);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;flex-direction:column;font-size:.82rem;transition:all .15s;display:flex}.gm-campaign-item:hover{background:var(--bg-hover);border-color:var(--border-subtle)}.gm-campaign-item.selected{background:var(--accent-dim);border-color:var(--accent-primary);box-shadow:var(--shadow-glow-gold)}.gm-campaign-item strong{color:var(--text-strong);font-size:.85rem;font-weight:600}.gm-campaign-item small{color:var(--text-weak);margin-top:2px;font-size:.72rem}.gm-member-row{padding:var(--space-1) var(--space-2);color:var(--text-normal);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;font-size:.82rem;display:flex}.gm-member-row:hover{background:var(--bg-hover)}.gm-member-row small{color:var(--text-weak);text-transform:capitalize;font-size:var(--text-xs);background:var(--bg-surface-secondary);border-radius:999px;padding:2px 8px}.gm-sidebar-actions{gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border-subtle);flex-direction:column;margin-top:auto;display:flex}.gm-map-area{background:var(--bg-canvas);flex-direction:column;display:flex;overflow:hidden}.gm-map-topbar{padding:var(--space-3) var(--space-4);background:var(--bg-surface);border-bottom:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:space-between;align-items:center;gap:var(--space-4);flex-shrink:0;min-height:52px;display:flex}.gm-map-topbar>:first-child{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-weak);display:flex}.gm-campaign-name{font-weight:700;font-size:var(--text-lg);color:var(--text-strong);letter-spacing:-.01em}.session-live-mode-buttons.compact{gap:.25rem;display:flex}.session-live-mode-buttons.compact button{background:var(--bg-surface-elevated);border:1px solid var(--border-color);color:var(--text-weak);cursor:pointer;border-radius:4px;padding:.2rem .55rem;font-size:.72rem;font-weight:600}.session-live-mode-buttons.compact button.active{background:var(--bg-active);color:var(--accent);border-color:var(--accent)}.focus-map-btn{background:var(--bg-surface-elevated);border:1px solid var(--border-color);width:28px;height:28px;color:var(--text-weak);cursor:pointer;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.focus-map-btn:hover{background:var(--scrollbar-thumb);color:var(--text-primary)}.gm-panels{background:var(--bg-surface);border-left:1px solid var(--border-subtle);resize:horizontal;direction:rtl;flex-direction:column;gap:0;min-width:260px;max-width:520px;display:flex;overflow-y:auto}.gm-panels>*{direction:ltr}.gm-panel-section{border-bottom:1px solid var(--border-subtle)}.gm-panel-section summary{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);font-size:var(--text-sm);color:var(--text-normal);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;font-weight:600;transition:background .15s;display:flex}.gm-panel-section summary::-webkit-details-marker{display:none}.gm-panel-section summary:before{content:"▸";color:var(--text-weak);flex-shrink:0;font-size:.65rem;transition:transform .2s}.gm-panel-section[open] summary:before{transform:rotate(90deg)}.gm-panel-section summary:hover{background:var(--bg-hover)}.gm-panel-section[open] summary{background:var(--bg-surface-secondary);color:var(--text-strong);border-bottom:1px solid var(--border-subtle)}.panel-detach-btn{border-radius:var(--radius-sm);width:26px;height:26px;color:var(--text-weak);cursor:pointer;background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;padding:0;transition:all .15s;display:inline-flex}.panel-detach-btn:hover{background:var(--accent-dim);border-color:var(--accent-primary);color:var(--accent-primary)}.gm-panels-toggle{background:var(--bg-surface-elevated);border:1px solid var(--border-color);width:28px;height:28px;color:var(--text-weak);cursor:pointer;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.gm-panels-toggle:hover{background:var(--scrollbar-thumb);color:var(--text-primary)}.gm-panels-toggle.active{background:var(--bg-active);color:var(--accent);border-color:var(--accent)}.floating-panel{background:var(--bg-surface);border:1px solid var(--border-color);box-shadow:var(--shadow-panel);-webkit-user-select:none;user-select:none;border-radius:8px;flex-direction:column;display:flex;position:fixed;overflow:hidden}.floating-panel.dragging{opacity:.9;cursor:grabbing}.floating-panel.resizing{-webkit-user-select:none;user-select:none}.floating-panel.minimized{height:auto}.floating-panel-titlebar{background:var(--bg-surface-elevated);border-bottom:1px solid var(--border-color);cursor:grab;flex-shrink:0;align-items:center;gap:.5rem;padding:.45rem .6rem;display:flex}.floating-panel-titlebar:active{cursor:grabbing}.drag-handle-icon{color:var(--text-weak);flex-shrink:0}.floating-panel-title{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.82rem;font-weight:600;overflow:hidden}.floating-panel-actions{gap:.25rem;display:flex}.floating-panel-btn{width:24px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;padding:0;display:flex}.floating-panel-btn:hover{color:var(--text-secondary);background:#ffffff14}.floating-panel-btn-close:hover{color:var(--danger);background:#dc3c3c33}.floating-panel-content{color:var(--text-secondary);flex:1;padding:.5rem;font-size:.8rem;overflow-y:auto}.floating-panel-resize-handle{cursor:nwse-resize;background:linear-gradient(135deg,#0000 50%,#4a5a4e 50%);border-radius:0 0 6px;width:16px;height:16px;position:absolute;bottom:0;right:0}.gm-panel-section[open] summary{border-bottom:1px solid var(--border-color)}.gm-panel-section .character-section,.gm-panel-section .character-form,.gm-panel-section .character-list{padding:.5rem .75rem}.gm-panel-section .character-form{flex-direction:column;gap:.35rem;display:flex}.gm-panel-section .character-form input{color:#e8e4d8;background:#2a3a2e;border:1px solid #4a5a4e;border-radius:4px;width:100%;padding:.35rem .5rem;font-size:.8rem}.gm-panel-section .mini-grid{grid-template-columns:1fr 1fr;gap:.35rem;display:grid}.gm-panel-section .character-list{flex-direction:column;gap:.25rem;max-height:30vh;display:flex;overflow-y:auto}.player-campaign-shell{background:var(--bg-primary);flex-direction:column;height:100vh;display:flex;overflow:hidden}.player-workspace{flex:1;display:flex;overflow:hidden}.player-map-area{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.player-panels{background:var(--bg-secondary);border-left:1px solid var(--border-color);flex-direction:column;flex-shrink:0;gap:0;width:340px;padding:0;display:flex;overflow-y:auto}.player-tab-bar{border-bottom:1px solid var(--border-color);background:#141c18f2;flex-shrink:0;display:flex;overflow-x:auto}.player-tab-btn{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex-direction:column;flex-shrink:0;align-items:center;gap:.15rem;min-width:52px;padding:.45rem .6rem;font-size:.7rem;font-weight:600;transition:all .15s;display:flex}.player-tab-btn:hover{color:var(--text-secondary);background:#ffffff08}.player-tab-btn.active{color:var(--accent);border-bottom-color:var(--accent)}.tab-icon{font-size:1rem;line-height:1}.tab-label{font-size:.65rem}.player-tab-content{flex:1;overflow-y:auto}.player-tab-content .player-tab,.player-tab-content .player-tab-section{border-bottom:1px solid var(--border-color);padding:.75rem}.quick-dice-row{flex-wrap:wrap;gap:.35rem;margin-bottom:.5rem;display:flex}.quick-dice-btn{color:var(--text-secondary);cursor:pointer;background:#2a3a2e;border:1px solid #3a4a3e;border-radius:4px;padding:.35rem .5rem;font-size:.72rem;font-weight:600;transition:all .15s}.quick-dice-btn:hover{background:var(--scrollbar-thumb);color:var(--text-primary);border-color:var(--accent)}.quick-dice-btn:active{background:#1b4332;transform:scale(.95)}.combat-notification{border:1px solid var(--accent);color:var(--text-primary);z-index:2000;background:#1b4332;border-radius:8px;padding:.5rem 1.25rem;font-size:.85rem;font-weight:600;animation:.3s ease-out combatNotifyIn,.3s ease-in 3s forwards combatNotifyOut;position:fixed;top:60px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0006}@keyframes combatNotifyIn{0%{opacity:0;transform:translate(-50%)translateY(-10px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes combatNotifyOut{0%{opacity:1}to{opacity:0}}.player-panels h3{color:var(--text-primary);align-items:center;gap:.4rem;margin:0 0 .5rem;font-size:.95rem;display:flex}.player-panels .character-form{flex-direction:column;gap:.35rem;display:flex}.player-panels .character-form input,.player-panels .character-form select{color:#e8e4d8;background:#2a3a2e;border:1px solid #4a5a4e;border-radius:4px;width:100%;padding:.35rem .5rem;font-size:.8rem}.player-panels .mini-grid{grid-template-columns:1fr 1fr;gap:.35rem;display:grid}.player-panels .player-char-row{width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:space-between;align-items:center;padding:.4rem .5rem;font-size:.82rem;transition:background .15s;display:flex}.player-char-row:hover{background:var(--bg-hover)}.player-panels .player-char-row.selected{background:var(--accent-dim);border-color:var(--accent-glow)}.personal-chars-section{width:100%;max-width:40rem;margin-top:1rem}.personal-chars-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.6rem;display:flex}.personal-chars-header h3{color:var(--text-primary);align-items:center;gap:.4rem;margin:0;font-size:1rem;display:flex}.char-count{color:var(--text-muted);font-size:.78rem}.quick-create-form{gap:.4rem;margin-bottom:.75rem;display:flex}.quick-create-form input{color:var(--text-brand);background:#2a3a2e;border:1px solid #4a5a4e;border-radius:8px;flex:1;padding:.45rem .65rem;font-size:.85rem}.quick-create-form input::placeholder{color:#5a6a5e}.quick-create-form .icon-button{background:var(--scrollbar-thumb);color:var(--accent);cursor:pointer;border:1px solid #5a6a5e;border-radius:8px;justify-content:center;align-items:center;padding:.3rem .7rem;display:flex}.quick-create-form .icon-button:disabled{opacity:.35;cursor:not-allowed}.personal-chars-list{flex-direction:column;gap:.4rem;max-height:35vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.personal-char-card{border:1px solid var(--border-color);background:#1e282399;border-radius:8px;justify-content:space-between;align-items:center;padding:.6rem .75rem;transition:background .15s;display:flex}.personal-char-card:hover{background:#28322db3}.char-card-left{flex:1;align-items:center;gap:.6rem;min-width:0;display:flex}.char-icon{color:var(--accent);opacity:.6;flex-shrink:0}.char-card-info{flex-direction:column;gap:.15rem;min-width:0;display:flex}.char-name{color:var(--text-primary);align-items:baseline;gap:.4rem;font-size:.9rem;display:flex}.char-sub{color:#8a9a8e;font-size:.72rem;font-weight:400}.char-stats{color:#7a8a7e;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.72rem;display:flex}.stat-line{gap:.3rem;display:flex}.attr-chip{color:#b0a880;text-transform:uppercase;background:#c5b35814;border-radius:4px;padding:.05rem .3rem;font-size:.65rem;font-weight:600}.char-card-actions{flex-shrink:0;gap:.3rem;margin-left:.5rem;display:flex}.char-card-actions .icon-button{color:#8a9a8e;cursor:pointer;background:0 0;border:1px solid #3a4a3e;border-radius:6px;justify-content:center;align-items:center;padding:.25rem .5rem;display:flex}.char-card-actions .icon-button:hover{color:var(--accent);background:#2a3a2e}.char-card-actions .icon-button:disabled{opacity:.35;cursor:not-allowed}.char-card-actions .submit-button{color:#4aae6e;border-color:#3a5a3e}.char-card-actions .submit-button:hover{background:#4aae6e1a}.error-text{color:#c64;margin:.25rem 0;font-size:.82rem}.message-text{color:#8a9a8e;margin:.25rem 0;font-size:.82rem}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:.8s linear infinite spin}@media (width<=1024px){.auth-shell{grid-template-columns:1fr}.auth-visual{min-height:20vh;padding:1.5rem}.lobby-content{gap:1.5rem;padding:1.25rem}.lobby-hero h2{font-size:1.25rem}.lobby-hero .muted{max-width:22rem;font-size:.88rem}.personal-chars-section{max-width:100%}.gm-campaign-shell{grid-template-rows:auto 1fr;grid-template-columns:1fr}.gm-sidebar{border-right:none;border-bottom:1px solid var(--border-color);flex-flow:wrap;align-items:center;gap:.5rem;padding:.5rem;overflow-y:visible}.gm-sidebar .brand-mark.compact{border-bottom:none;margin-right:auto;padding-bottom:0}.gm-sidebar-actions{border-top:none;flex-direction:row;gap:.3rem;margin-top:0;padding-top:0}.gm-map-area{grid-area:2/1}.campaign-map-toolbar{flex-wrap:nowrap;gap:.5rem;overflow-x:auto}.player-workspace{flex-direction:column}.player-panels{border-left:none;border-top:1px solid var(--border-color);flex-shrink:0;width:100%;max-height:35vh}.auth-page-hero{padding:1.5rem}.auth-page-hero .brand-mark.large{font-size:1.4rem}.auth-page-form{padding:1.25rem}.two-column{grid-template-columns:1fr}}@media (width<=600px){.lobby-header{flex-wrap:wrap;gap:.5rem;padding:.5rem .75rem}.lobby-header .brand-mark.compact{font-size:.95rem}.lobby-user-info>span:first-child{display:none}.lobby-hero svg{width:48px;height:48px}.lobby-hero h2{font-size:1.1rem}.lobby-hero .muted{max-width:18rem;font-size:.8rem}.invite-input-row{flex-direction:column}.invite-input-row button{width:100%}.personal-char-card{flex-direction:column;align-items:stretch;gap:.4rem}.char-card-actions{align-self:flex-end;margin-left:0}.gm-campaign-shell{grid-template-columns:1fr}.gm-sidebar{flex-direction:column;gap:.35rem}.gm-campaign-item{font-size:.78rem}.player-workspace{flex-direction:column}.player-map-area{flex:none;height:50vh}.player-panels{width:100%;max-height:45vh}.campaign-map-toolbar select{min-width:8rem;font-size:.75rem}.campaign-map-zoom button{padding:.1rem .4rem;font-size:.75rem}.auth-page-hero h1{font-size:1.2rem}.auth-page-form{padding:1rem}}.gm-message-panel{flex-direction:column;gap:.5rem;display:flex}.message-tabs{gap:.25rem;display:flex}.message-tab{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-weak);cursor:pointer;background:0 0;align-items:center;gap:.3rem;padding:.25rem .55rem;font-size:.75rem;display:flex}.message-tab.active{background:var(--accent-dim);border-color:var(--accent-primary);color:var(--accent-primary)}.message-tab:hover:not(.active){background:var(--bg-hover)}.message-field{flex-direction:column;gap:.2rem;display:flex}.message-field label{color:var(--text-weak);text-transform:uppercase;letter-spacing:.4px;font-size:.72rem}.message-field select,.message-field input{background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-normal);font-size:var(--text-sm);padding:.3rem .5rem}.message-form textarea{background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-normal);font-size:var(--text-sm);resize:vertical;min-height:3rem;padding:.4rem .5rem}.message-form{flex-direction:column;gap:.4rem;display:flex}.message-status{color:#8a9a8e;margin:0;font-size:.78rem}.player-notifications{position:relative}.notification-bell{color:#8a9a8e;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;padding:.25rem;display:flex;position:relative}.notification-bell.has-unread{color:var(--accent);animation:2s ease-in-out infinite pulse-bell}@keyframes pulse-bell{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.notification-bell .badge{color:#fff;background:#c44;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:.6rem;font-weight:700;display:flex;position:absolute;top:-2px;right:-2px}.notification-dropdown{z-index:100;background:#1a2820;border:1px solid #3a4a3e;border-radius:10px;width:300px;max-height:60vh;margin-top:.4rem;padding:.75rem;position:absolute;top:100%;right:0;overflow-y:auto;box-shadow:0 8px 24px #00000080}.notification-dropdown h4{color:#8a9a8e;text-transform:uppercase;letter-spacing:.4px;align-items:center;gap:.3rem;margin:.75rem 0 .35rem;font-size:.78rem;display:flex}.notification-dropdown h4:first-child{margin-top:0}.msg-list{flex-direction:column;gap:.2rem;margin:0;padding:0;list-style:none;display:flex}.msg-item{cursor:pointer;background:#1e282366;border:1px solid #0000;border-radius:6px;justify-content:space-between;align-items:flex-start;gap:.4rem;padding:.4rem .5rem;font-size:.8rem;display:flex}.msg-item.unread{border-color:var(--accent-glow);background:#c5b35814}.msg-item:hover{background:#323c3799}.msg-item .msg-content{color:var(--text-secondary);word-break:break-word;flex:1;line-height:1.35}.msg-item .msg-time{color:#5a6a5e;flex-shrink:0;margin-top:.1rem;font-size:.68rem}.map-tools-bar{top:var(--space-2);right:var(--space-2);z-index:40;padding:var(--space-1);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);flex-direction:column;gap:4px;display:flex;position:absolute}.map-tool-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-weak);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;transition:all .15s;display:flex}.map-tool-btn:hover{color:var(--accent-primary);background:var(--bg-hover);border-color:var(--border-subtle)}.map-tool-btn.active{color:var(--accent-primary);border-color:var(--accent-primary);background:var(--accent-dim);box-shadow:var(--shadow-glow-gold)}.map-tools-overlay{z-index:35;pointer-events:auto;position:absolute;inset:0}.map-ping-dot{background:var(--accent-dim);border:2px solid var(--accent-primary);pointer-events:none;border-radius:50%;width:24px;height:24px;animation:2.5s ease-out forwards ping-fade;transform:translate(-50%,-50%)}@keyframes ping-fade{0%{opacity:1;transform:translate(-50%,-50%)scale(.3)}30%{opacity:.8;transform:translate(-50%,-50%)scale(1.1)}to{opacity:0;transform:translate(-50%,-50%)scale(1.5)}}.map-ruler{pointer-events:none}.ruler-line{background:var(--accent-dim);border-radius:1px;height:2px}.ruler-line:after{content:"";background:var(--accent-primary);border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;right:-4px}.ruler-label{color:var(--accent-primary);background:var(--bg-surface);white-space:nowrap;border-radius:4px;padding:1px 5px;font-size:.7rem;font-weight:600}.map-ruler.preview .ruler-line{background:var(--accent-glow);border:1px dashed var(--accent-primary)}.character-row{align-items:center;gap:0;display:flex}.character-row-btn{text-align:left;color:var(--text-secondary);cursor:pointer;background:#1e282366;border:1px solid #0000;border-radius:6px 0 0 6px;flex:1;justify-content:space-between;align-items:center;padding:.45rem .5rem;font-size:.8rem;display:flex}.character-row-btn:hover,.character-row.selected .character-row-btn{background:#323c3799;border-color:#3a4a3e}.character-inspect-btn{color:#8a9a8e;cursor:pointer;background:#1e282366;border:1px solid #0000;border-left:none;border-radius:0 6px 6px 0;padding:.45rem .5rem;font-size:.85rem;transition:color .15s}.character-inspect-btn:hover{color:var(--accent)}.gm-char-inspector.backdrop{z-index:80;background:#0009;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.gm-char-inspector.modal{background:#1a2a1e;border:1px solid #3a4a3e;border-radius:12px;width:100%;max-width:600px;max-height:85vh;overflow-y:auto;box-shadow:0 12px 48px #00000080}.inspect-header{border-bottom:1px solid var(--border-color);flex-wrap:wrap;align-items:baseline;gap:.75rem;padding:1rem 1.25rem;display:flex}.inspect-header h2{color:var(--text-primary);margin:0;font-size:1.2rem}.inspect-header .close-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:.25rem;font-size:1.1rem}.inspect-header .close-btn:hover{color:var(--accent)}.inspect-body{flex-direction:column;gap:1rem;padding:1rem 1.25rem;display:flex}.inspect-stats{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}.stat-card{border:1px solid var(--border-color);color:var(--text-secondary);background:#1e282380;border-radius:8px;flex-direction:column;align-items:center;gap:.15rem;padding:.5rem;display:flex}.stat-card .stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;font-size:.65rem}.stat-card .stat-value{color:var(--text-primary);font-size:1rem;font-weight:700}.stat-bar{background:var(--scrollbar-thumb);border-radius:2px;width:100%;height:4px;margin-top:.2rem;overflow:hidden}.stat-fill{background:var(--accent);border-radius:2px;height:100%;transition:width .3s;display:block}.inspect-section{flex-direction:column;gap:.5rem;display:flex}.inspect-section h4{color:#8a9a8e;text-transform:uppercase;letter-spacing:.3px;margin:0;font-size:.85rem}.inspect-row{align-items:center;gap:.4rem;display:flex}.inspect-row input{color:var(--text-primary);background:#0a0e0b;border:1px solid #3a4a3e;border-radius:5px;padding:.35rem .5rem;font-size:.8rem}.hp-input{width:70px}.xp-input{width:100px}.item-name-input{flex:1;min-width:100px}.item-qty-input{width:50px}.note-input{flex:1;min-width:80px}.hp-quick{gap:.3rem;display:flex}.quick-btn{cursor:pointer;border:1px solid #0000;border-radius:4px;padding:.2rem .5rem;font-size:.75rem;font-weight:600}.quick-btn.heal{color:var(--success);background:#22c55e26;border-color:#22c55e4d}.quick-btn.heal:hover{background:#22c55e40}.quick-btn.damage{color:#ef4444;background:#ef444426;border-color:#ef44444d}.quick-btn.damage:hover{background:#ef444440}.conditions-grid{flex-wrap:wrap;gap:.35rem;display:flex}.cond-chip{color:#8a9a8e;cursor:pointer;-webkit-user-select:none;user-select:none;background:#1e282366;border:1px solid #3a4a3e;border-radius:4px;align-items:center;gap:.2rem;padding:.2rem .5rem;font-size:.75rem;display:flex}.cond-chip.active{background:var(--accent-dim);border-color:var(--accent-glow);color:var(--accent)}.cond-chip input{display:none}.inv-list{flex-direction:column;gap:.25rem;max-height:200px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.inv-item{background:#1e28234d;border-radius:4px;align-items:center;gap:.4rem;padding:.3rem .5rem;font-size:.78rem;display:flex}.inv-name{color:var(--text-secondary);font-weight:500}.inv-qty{color:var(--text-muted)}.inv-desc{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.7rem;overflow:hidden}.inv-remove{color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:.15rem}.inv-remove:hover{color:#ef4444}.inspect-message{background:var(--accent-dim);border:1px solid var(--accent-glow);color:var(--accent);border-radius:6px;margin:0;padding:.5rem;font-size:.8rem}.map-tools-separator{background:var(--scrollbar-thumb);width:70%;height:1px;margin:2px 0}.aoe-size-selector{align-items:center;gap:2px;display:flex}.aoe-size-btn{background:var(--bg-surface-secondary);border:1px solid var(--border-subtle);width:18px;height:18px;color:var(--text-weak);cursor:pointer;border-radius:3px;justify-content:center;align-items:center;padding:0;font-size:.55rem;display:flex}.aoe-size-btn:hover{color:var(--accent-primary);border-color:var(--accent-primary)}.aoe-size-label{color:var(--accent-primary);text-align:center;min-width:30px;font-size:.62rem;font-weight:600}.aoe-shape{pointer-events:none}.aoe-sphere{background:radial-gradient(circle, var(--accent-dim) 0%, #d6a84f0d 70%, transparent 100%);border:1px solid var(--accent-glow);border-radius:50%}.aoe-cube{background:var(--accent-dim);border:1px dashed var(--accent-glow)}.aoe-line{background:linear-gradient(90deg, transparent, var(--accent-dim) 20%, var(--accent-dim) 50%, var(--accent-dim) 80%, transparent);border-top:2px solid var(--accent-glow);border-bottom:2px solid var(--accent-glow)}.rules-reference{flex-direction:column;gap:.4rem;display:flex}.rules-search{color:var(--text-muted);background:#0a0e0b;border:1px solid #3a4a3e;border-radius:6px;align-items:center;gap:.4rem;padding:.3rem .5rem;display:flex}.rules-search-input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;font-size:.78rem}.rules-search-input::placeholder{color:#5a6a5e}.rules-list{flex-direction:column;gap:.15rem;max-height:400px;display:flex;overflow-y:auto}.rules-section-header{width:100%;color:var(--text-secondary);cursor:pointer;text-align:left;background:#1e28234d;border:1px solid #0000;border-radius:4px;align-items:center;gap:.4rem;padding:.4rem .5rem;font-size:.78rem;display:flex}.rules-section-header:hover{background:#323c3766;border-color:#3a4a3e}.rules-section-header.expanded{border-color:var(--accent-glow);color:var(--accent);background:#c5b35814}.rules-chevron{color:var(--text-muted);margin-left:auto;font-size:.65rem}.rules-section-body{border-left:2px solid #3a4a3e;margin-left:.3rem;padding:.4rem .6rem}.rules-line{color:#8a9a8e;margin:0 0 .2rem;font-size:.73rem;line-height:1.4}.rules-line strong{color:var(--text-secondary)}.rules-footer{text-align:center;padding:.25rem 0;font-size:.62rem}.campaign-map-grid-toggle{color:#8a9a8e;cursor:pointer;background:#2a3a2e;border:1px solid #4a5a4e;border-radius:4px;align-items:center;padding:.15rem .5rem;transition:all .15s;display:flex}.campaign-map-grid-toggle:hover{color:var(--text-secondary);border-color:#5a6a5e}.campaign-map-grid-toggle.active{color:var(--accent);border-color:var(--accent)}.campaign-map-minimap{background:var(--bg-primary);z-index:10;opacity:.85;border:1px solid #3a4a3e;border-radius:4px;position:absolute;bottom:8px;right:8px;box-shadow:0 2px 8px #00000080}.campaign-map-minimap:hover{opacity:1}.campaign-map-board{transition:opacity .3s}.campaign-map-board.scene-transitioning{opacity:.5}.campaign-map-board.is-dragging{cursor:grabbing}.campaign-map-token.token-bloodied{border-color:#dc3c3c80;box-shadow:0 0 8px #dc3c3c99,0 2px 6px #0006}.campaign-map-token.token-defeated{opacity:.5;filter:grayscale(.8);border-color:#64646480}.campaign-map-token.token-concentrating{border-color:#c5b35899;box-shadow:0 0 10px #c5b358b3,0 2px 6px #0006}.token-snap-highlight{background:var(--accent-dim);pointer-events:none;z-index:5;border:2px dashed #c5b35880;border-radius:4px;position:absolute}.campaign-map-board.show-grid{background-image:linear-gradient(var(--bg-hover) 1px, transparent 1px), linear-gradient(90deg, var(--bg-hover) 1px, transparent 1px)}.campaign-map-token{cursor:pointer;-webkit-user-select:none;user-select:none;border:2px solid #0000004d;border-radius:6px;justify-content:center;align-items:center;transition:box-shadow .15s,border-color .15s;display:flex;position:absolute;overflow:visible;box-shadow:0 2px 6px #0006}.campaign-map-token:hover{border-color:#fff6;box-shadow:0 4px 12px #00000080}.campaign-map-token.selected{border-color:var(--accent);box-shadow:0 0 12px #c5b35866}.campaign-map-token.player-owned{border-color:#22c55e80}.token-icon{color:#ffffffe6;text-shadow:0 1px 2px #0009;pointer-events:none;z-index:2;font-size:.75rem;font-weight:800}.token-nameplate{color:var(--text-strong);background:var(--bg-surface);white-space:nowrap;pointer-events:none;z-index:3;border-radius:3px;padding:1px 4px;font-size:.55rem;font-weight:600;position:absolute;bottom:-16px;left:50%;transform:translate(-50%)}.token-hp-bar{z-index:3;background:#00000080;border-radius:2px;height:4px;position:absolute;bottom:-3px;left:4px;right:4px;overflow:hidden}.token-hp-fill{background:linear-gradient(90deg,#22c55e,#16a34a);border-radius:2px;height:100%;transition:width .3s;display:block}.token-ring{pointer-events:none;z-index:1;border:2px solid #c5b358;border-radius:8px;animation:1.5s ease-in-out infinite ring-pulse;position:absolute;inset:-3px}@keyframes ring-pulse{0%,to{opacity:.5}50%{opacity:1}}.token-conditions{z-index:5;pointer-events:none;gap:1px;display:flex;position:absolute;top:-8px;right:-4px}.token-condition-badge{background:#000c;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;line-height:1;display:flex}.token-condition-more{color:#ccc;font-size:8px;font-weight:700}.aoe-label{color:var(--accent-primary);background:var(--bg-surface);white-space:nowrap;pointer-events:none;border-radius:3px;padding:1px 4px;font-size:.6rem;font-weight:700;position:absolute}.combat-tracker{gap:var(--space-2);padding:var(--space-2) 0;flex-direction:column;display:flex}.combat-select{padding:var(--space-1) var(--space-2);background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-normal);font-size:var(--text-sm)}.combat-message{padding:var(--space-1) var(--space-2);background:var(--accent-dim);border:1px solid var(--accent-glow);border-radius:var(--radius-sm);color:var(--accent-primary);margin:0;font-size:.73rem}.combat-header{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.combat-round{color:var(--accent-primary);align-items:center;gap:.4rem;font-size:.85rem;font-weight:700;display:flex}.combat-actions{gap:.3rem;display:flex}.combat-btn{background:var(--bg-surface-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-weak);cursor:pointer;align-items:center;gap:.2rem;padding:.25rem .5rem;font-size:.72rem;transition:all .15s;display:flex}.combat-btn:hover{color:var(--text-normal);border-color:var(--border-color);background:var(--bg-hover)}.combat-btn.primary{color:var(--success);border-color:var(--success-dim);background:var(--success-dim)}.combat-btn.primary:hover{background:#69c98f33}.combat-btn.danger{color:var(--danger);border-color:var(--danger-dim);background:var(--danger-dim)}.combat-btn.danger:hover{background:#d66a5e33}.combat-btn:disabled{opacity:.4;cursor:not-allowed}.combatant-row{background:var(--bg-surface-secondary);border-radius:var(--radius-sm);border:1px solid #0000;flex-wrap:wrap;align-items:center;gap:.35rem;padding:.4rem .5rem;transition:all .2s;display:flex}.combatant-row.active{border-color:var(--accent-primary);background:var(--accent-dim);box-shadow:var(--shadow-glow-gold)}.combatant-row.defeated{opacity:.5}.combatant-row.defeated .combatant-name{text-decoration:line-through}.combatant-init{background:var(--accent-dim);border:1px solid var(--accent-primary);border-radius:var(--radius-sm);width:22px;height:22px;color:var(--accent-primary);flex-shrink:0;justify-content:center;align-items:center;font-size:.65rem;font-weight:700;display:flex}.combatant-meta{color:var(--text-weak);font-size:.62rem}.combatant-hp-bar{background:var(--bg-surface-elevated);border-radius:3px;flex:1;height:6px;overflow:hidden}.combatant-info{flex-direction:column;flex:1;gap:.05rem;min-width:80px;display:flex;overflow:hidden}.combatant-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;font-weight:600;overflow:hidden}.combatant-hp{align-items:center;gap:.3rem;min-width:90px;display:flex}.combatant-hp-fill{border-radius:3px;height:100%;transition:width .3s;display:block}.combatant-hp-fill.good{background:linear-gradient(90deg,#22c55e,#16a34a)}.combatant-hp-fill.warn{background:linear-gradient(90deg,#eab308,#ca8a04)}.combatant-hp-fill.crit{background:linear-gradient(90deg,#ef4444,#dc2626)}.combatant-hp-text{color:#8a9a8e;text-align:right;min-width:40px;font-size:.65rem;font-weight:600}.combatant-dmg-btns{gap:2px;display:flex}.dmg-btn,.heal-btn{cursor:pointer;border:1px solid #0000;border-radius:3px;padding:.1rem .3rem;font-size:.58rem;font-weight:600;transition:all .1s}.dmg-btn{color:#ef4444;background:#ef44441a;border-color:#ef444433}.dmg-btn:hover{background:#ef444433}.dmg-btn.sm{padding:.1rem .25rem;font-size:.55rem}.dmg-btn.revive,.heal-btn{color:var(--success);background:#22c55e1a;border-color:#22c55e33}.heal-btn:hover{background:#22c55e33}.combatant-conditions{flex-wrap:wrap;gap:2px;width:100%;display:flex}.cond-tag{border:1px solid var(--accent-glow);color:var(--accent);background:#c5b35814;border-radius:3px;padding:.05rem .3rem;font-size:.58rem}.encounter-builder{flex-direction:column;gap:.5rem;display:flex}.eb-config{gap:.5rem;display:flex}.eb-config label{color:#8a9a8e;align-items:center;gap:.3rem;font-size:.73rem;display:flex}.eb-config input{width:50px;color:var(--text-primary);background:#0a0e0b;border:1px solid #3a4a3e;border-radius:4px;padding:.25rem .3rem;font-size:.75rem}.eb-add-form{gap:.3rem;display:flex}.eb-add-form input,.eb-add-form select{color:var(--text-primary);background:#0a0e0b;border:1px solid #3a4a3e;border-radius:5px;flex:1;min-width:0;padding:.3rem .4rem;font-size:.75rem}.eb-random{gap:.3rem;display:flex}.eb-random select{color:var(--text-primary);background:#0a0e0b;border:1px solid #3a4a3e;border-radius:5px;flex:1;padding:.3rem .4rem;font-size:.75rem}.eb-monsters{flex-direction:column;gap:2px;max-height:200px;display:flex;overflow-y:auto}.eb-monster-row{background:#1e28234d;border-radius:4px;align-items:center;gap:.4rem;padding:.25rem .4rem;font-size:.73rem;display:flex}.eb-monster-name{color:var(--text-secondary);flex:1}.eb-monster-cr{color:var(--accent);font-weight:600}.eb-monster-count{color:var(--text-muted)}.eb-difficulty{flex-direction:column;gap:.2rem;display:flex}.eb-diff-bar{background:#2a3a2e;border-radius:4px;height:8px;overflow:hidden}.eb-diff-fill{border-radius:4px;height:100%;transition:width .3s;display:block}.eb-diff-info{justify-content:space-between;font-size:.7rem;display:flex}.dice-roller{flex-direction:column;gap:.5rem;display:flex}.dice-stage{background:radial-gradient(ellipse at center, var(--bg-surface-secondary) 0%, var(--bg-surface) 100%);border:1px solid var(--border-subtle);border-radius:var(--radius-md);justify-content:center;align-items:center;height:130px;display:flex;position:relative;overflow:hidden}.dice-placeholder{color:var(--text-weak);flex-direction:column;align-items:center;gap:.3rem;display:flex}.dice-body{background:linear-gradient(135deg, var(--accent-primary), #8a7a2e);border-radius:var(--radius-md);border:2px solid #ffffff26;justify-content:center;align-items:center;width:40px;height:40px;display:flex;box-shadow:0 4px 12px #0006,inset 0 1px #ffffff1a}.dice-face{color:#070b0a;text-shadow:0 1px #fff3;font-size:1.1rem;font-weight:800}.crit-success .dice-body{background:linear-gradient(135deg, var(--success), #16a34a);box-shadow:0 0 16px #69c98f66,0 4px 12px #0006}.crit-fail .dice-body{background:linear-gradient(135deg, var(--danger), #dc2626);box-shadow:0 0 12px #d66a5e4d}.dice-visual{animation:.6s ease-out dice-roll;position:absolute}@keyframes dice-roll{0%{opacity:0;transform:translateY(-40px)rotate(0)scale(.5)}30%{opacity:1;transform:translateY(5px)rotate(180deg)scale(1.1)}60%{transform:translateY(-10px)rotate(360deg)scale(.9)}to{transform:translateY(0)rotate(540deg)scale(1)}}.dice-result{flex-direction:column;align-items:center;gap:.15rem;animation:.4s ease-out result-pop;display:flex}@keyframes result-pop{0%{opacity:0;transform:scale(.3)}60%{transform:scale(1.15)}to{opacity:1;transform:scale(1)}}.dice-total{color:var(--text-primary);text-shadow:0 2px 4px #00000080;font-size:2.5rem;font-weight:900}.dice-result.nat20 .dice-total{color:var(--success);text-shadow:0 0 20px #22c55e66,0 2px 4px #00000080;animation:.5s ease-in-out infinite alternate nat20-glow}@keyframes nat20-glow{0%{text-shadow:0 0 10px #22c55e4d}to{text-shadow:0 0 30px #22c55e99,0 0 60px #22c55e33}}.dice-result.nat1 .dice-total{color:#ef4444}.dice-label{color:#8a9a8e;text-align:center;max-width:200px;font-size:.7rem}.dice-controls{flex-direction:column;gap:.3rem;display:flex}.dice-formula-row{gap:.3rem;display:flex}.dice-formula-input{color:var(--text-primary);background:#0a0e0b;border:1px solid #3a4a3e;border-radius:5px;flex:1;padding:.35rem .5rem;font-size:.85rem;font-weight:600}.dice-mode-btns{gap:2px;display:flex}.dice-mode-btn{color:var(--text-muted);cursor:pointer;background:#1e282366;border:1px solid #3a4a3e;border-radius:4px;padding:.25rem .4rem;font-size:.62rem;font-weight:600;transition:all .15s}.dice-mode-btn.active{color:var(--accent);border-color:var(--accent);background:#c5b35814}.dice-mode-btn:hover{color:var(--text-secondary)}.dice-quick-row{flex-wrap:wrap;align-items:center;gap:.2rem;display:flex}.dice-quick-btn{border:1px solid var(--accent-dim);color:#8a9a8e;cursor:pointer;background:#c5b3580f;border-radius:4px;padding:.2rem .4rem;font-size:.65rem;font-weight:600;transition:all .15s}.dice-quick-btn:hover{color:var(--accent);border-color:var(--accent-glow)}.dice-label-input{color:#8a9a8e;background:#0a0e0b;border:1px solid #3a4a3e;border-radius:4px;flex:1;min-width:80px;padding:.2rem .4rem;font-size:.7rem}.dice-roll-btn{color:#0a0e0b;cursor:pointer;box-shadow:0 2px 8px var(--accent-glow);background:linear-gradient(135deg,#c5b358,#8a7a2e);border:none;border-radius:6px;align-items:center;gap:.2rem;padding:.3rem .7rem;font-size:.78rem;font-weight:800;transition:all .2s;display:flex}.dice-roll-btn:hover{box-shadow:0 4px 12px var(--accent-glow);transform:translateY(-1px)}.dice-roll-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.quick-actions{flex-direction:column;gap:.4rem;display:flex}.qa-bar{flex-wrap:wrap;gap:.3rem;display:flex}.qa-btn{cursor:pointer;white-space:nowrap;background:#1e282366;border:1px solid;border-radius:6px;align-items:center;gap:.2rem;padding:.3rem .5rem;font-size:.7rem;font-weight:600;transition:all .15s;display:flex}.qa-btn:hover{filter:brightness(1.3);transform:translateY(-1px)}.qa-label{font-size:.7rem}.qa-formula{opacity:.6;font-size:.58rem}.qa-editor{background:#1e282333;border:1px solid #3a4a3e;border-radius:6px;flex-direction:column;gap:.35rem;padding:.4rem;display:flex}.qa-add-row{align-items:center;gap:.25rem;display:flex}.qa-input{color:var(--text-primary);background:#0a0e0b;border:1px solid #3a4a3e;border-radius:4px;flex:1;min-width:0;padding:.25rem .3rem;font-size:.7rem}.qa-input-sm{width:70px;color:var(--text-primary);background:#0a0e0b;border:1px solid #3a4a3e;border-radius:4px;padding:.25rem .3rem;font-size:.7rem}.qa-color{cursor:pointer;background:0 0;border:1px solid #3a4a3e;border-radius:4px;width:28px;height:28px;padding:0}.qa-macro-list{flex-direction:column;gap:1px;display:flex}.qa-macro-item{color:#8a9a8e;align-items:center;gap:.3rem;padding:.2rem .3rem;font-size:.68rem;display:flex}.session-stats{flex-direction:column;gap:.5rem;display:flex}.ss-grid{grid-template-columns:repeat(3,1fr);gap:.35rem;display:grid}.ss-card{color:var(--text-secondary);background:#1e282366;border:1px solid #3a4a3e;border-radius:8px;align-items:center;gap:.35rem;padding:.5rem;display:flex}.ss-card>div{flex-direction:column;display:flex}.ss-value,.ss-nat{color:var(--text-primary);font-size:1rem;font-weight:800}.ss-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.2px;font-size:.58rem}.ss-card.highlight{background:#22c55e0f;border-color:#22c55e4d}.ss-card.highlight .ss-nat{color:var(--success)}.ss-card.danger{background:#ef44440f;border-color:#ef44444d}.ss-card.danger .ss-nat{color:#ef4444}.ss-details{flex-direction:column;gap:2px;display:flex}.ss-detail-row{color:#8a9a8e;background:#141c1666;border-radius:4px;justify-content:space-between;align-items:center;padding:.3rem .4rem;font-size:.7rem;display:flex}.ss-detail-val{color:var(--text-secondary);font-weight:700}.panel-loading{opacity:.7;flex-direction:column;align-items:stretch;gap:.5rem;min-height:200px;padding:1rem;display:flex}.skeleton{background:linear-gradient(90deg,#2a3a2e 25%,#3a4a3e 50%,#2a3a2e 75%) 0 0/200% 100%;border-radius:4px;animation:1.5s ease-in-out infinite skeleton-shimmer}.skeleton-title{width:60%;height:1.2rem}.skeleton-text{width:100%;height:.85rem}.skeleton-text.short{width:75%}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.toast-container{z-index:5000;pointer-events:none;flex-direction:column-reverse;gap:.5rem;display:flex;position:fixed;bottom:1rem;right:1rem}.toast-item{pointer-events:auto;border:1px solid var(--accent);color:var(--text-primary);background:#1b4332;border-radius:6px;align-items:center;gap:.5rem;max-width:360px;padding:.6rem 1rem;font-size:.82rem;font-weight:500;animation:.3s ease-out toastIn;display:flex;box-shadow:0 4px 12px #0000004d}.toast-item.error{color:#f0c0c0;background:#432020;border-color:#c0392b}.toast-item button{color:inherit;opacity:.6;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;font-size:.9rem}.toast-item button:hover{opacity:1}@keyframes toastIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes panel-pulse{0%,to{opacity:.4}50%{opacity:.8}}.bestiary-panel{flex-direction:column;gap:0;display:flex}.bestiary-filters{border-bottom:1px solid var(--border-color);flex-direction:column;gap:.35rem;padding:.5rem .75rem;display:flex}.bestiary-search-row{gap:.35rem;display:flex}.bestiary-search-row input{color:#e8e4d8;background:#2a3a2e;border:1px solid #4a5a4e;border-radius:4px;flex:1;padding:.35rem .5rem;font-size:.8rem}.bestiary-filter-row{grid-template-columns:1fr 1fr 1fr;gap:.25rem;display:grid}.bestiary-filter-row select{color:var(--text-secondary);background:#2a3a2e;border:1px solid #4a5a4e;border-radius:4px;padding:.25rem .35rem;font-size:.7rem}.bestiary-cr-row{flex-wrap:wrap;gap:.25rem;display:flex}.bestiary-cr-chip{color:#8a9a8e;cursor:pointer;background:#2a3a2e;border:1px solid #3a4a3e;border-radius:4px;padding:.15rem .4rem;font-size:.68rem}.bestiary-cr-chip.active{color:var(--accent);border-color:var(--accent);background:#1b4332}.bestiary-list{flex:1;overflow-y:auto}.bestiary-row{border:none;border-bottom:1px solid var(--border-color);width:100%;color:inherit;cursor:pointer;text-align:left;background:0 0;align-items:center;gap:.5rem;padding:.4rem .75rem;font-size:.78rem;display:flex}.bestiary-row:hover{background:#ffffff08}.bestiary-cr{color:var(--accent);min-width:50px;font-size:.72rem;font-weight:700}.bestiary-name{color:var(--text-primary);flex:1;font-weight:600}.bestiary-meta{color:var(--text-muted);text-align:right;max-width:140px;font-size:.68rem}.modal-overlay{z-index:3000;background:#0009;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.bestiary-detail-modal{background:var(--bg-surface);border:1px solid #3a4a3e;border-radius:8px;width:100%;max-width:640px;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #00000080}.bestiary-detail-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:flex-start;padding:1rem 1rem .5rem;display:flex}.bestiary-detail-header h2{color:var(--text-primary);margin:0;font-size:1.15rem}.bestiary-subtitle{color:var(--text-muted);margin:.15rem 0 0;font-size:.8rem;font-style:italic}.bestiary-stats-grid{border-bottom:1px solid var(--border-color);color:var(--text-secondary);grid-template-columns:1fr 1fr;gap:.35rem;padding:.75rem 1rem;font-size:.82rem;display:grid}.bestiary-stats-grid strong{color:#8a9a8e;text-transform:uppercase;margin-right:.35rem;font-size:.72rem}.bestiary-cr-badge{color:var(--accent);font-weight:700}.bestiary-ability-scores{border-bottom:1px solid var(--border-color);gap:.25rem;padding:.5rem 1rem;display:flex}.bestiary-ability{background:#ffffff05;border-radius:4px;flex-direction:column;flex:1;align-items:center;padding:.3rem;display:flex}.ability-label{color:var(--text-muted);font-size:.6rem;font-weight:700}.ability-score{color:var(--text-primary);font-size:1rem;font-weight:700}.ability-mod{color:var(--accent);font-size:.7rem;font-weight:600}.bestiary-detail-section{border-bottom:1px solid var(--border-color);color:var(--text-secondary);padding:.5rem 1rem;font-size:.8rem}.bestiary-detail-section strong{color:#8a9a8e;text-transform:uppercase;min-width:120px;margin-right:.5rem;font-size:.72rem;display:inline-block}.bestiary-detail-section h3{color:var(--accent);border-bottom:1px solid var(--border-color);margin:0 0 .35rem;padding-bottom:.25rem;font-size:.85rem}.bestiary-trait{margin:.35rem 0;line-height:1.5}.bestiary-trait em{color:var(--text-primary);font-style:normal;font-weight:600}.bestiary-detail-footer{color:#5a6a5e;text-align:right;padding:.5rem 1rem;font-size:.7rem}.dungeon-generator{flex-direction:column;gap:0;display:flex}.dungeon-controls{border-bottom:1px solid var(--border-color);flex-direction:column;gap:.35rem;padding:.5rem .75rem;display:flex}.dungeon-control-row{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.dungeon-control-row label{color:var(--text-muted);text-transform:uppercase;flex-direction:column;gap:.15rem;font-size:.68rem;font-weight:600;display:flex}.dungeon-control-row select,.dungeon-control-row input{color:var(--text-secondary);background:#2a3a2e;border:1px solid #4a5a4e;border-radius:4px;min-width:70px;padding:.25rem .35rem;font-size:.75rem}.dungeon-seed{color:#5a6a5e;font-family:monospace;font-size:.7rem}.dungeon-preview{flex:1;justify-content:center;align-items:center;min-height:200px;padding:.5rem;display:flex;overflow:auto}.dungeon-canvas-wrapper{flex-direction:column;align-items:center;display:flex}.dungeon-canvas-wrapper canvas{border:1px solid #3a4a3e;border-radius:4px;max-width:100%;height:auto}.dungeon-info{color:var(--text-muted);margin:.35rem 0 0;font-size:.7rem}.character-wizard{flex-direction:column;gap:0;min-height:300px;display:flex}.wizard-progress{border-bottom:1px solid var(--border-color);gap:0;display:flex}.wizard-step{color:#5a6a5e;border-bottom:2px solid #0000;flex:1;align-items:center;gap:.35rem;padding:.5rem;font-size:.7rem;display:flex}.wizard-step.active{color:var(--accent);border-bottom-color:var(--accent)}.wizard-step.done{color:var(--text-muted)}.wizard-step-num{background:#2a3a2e;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:.65rem;font-weight:700;display:flex}.wizard-step.active .wizard-step-num,.wizard-step.done .wizard-step-num{color:var(--accent);background:#1b4332}.wizard-body{flex-direction:column;flex:1;gap:.5rem;padding:.75rem;display:flex;overflow-y:auto}.wizard-body h4{color:var(--text-primary);margin:0;font-size:.85rem}.wizard-body label{color:var(--text-muted);flex-direction:column;gap:.2rem;font-size:.72rem;font-weight:600;display:flex}.wizard-body input[type=text],.wizard-body input[type=number]{color:#e8e4d8;background:#2a3a2e;border:1px solid #4a5a4e;border-radius:4px;padding:.35rem .5rem;font-size:.8rem}.wizard-grid{grid-template-columns:1fr 1fr;gap:.35rem;display:grid}.wizard-option{color:var(--text-secondary);cursor:pointer;text-align:left;background:#2a3a2e;border:1px solid #3a4a3e;border-radius:6px;flex-direction:column;gap:.15rem;padding:.5rem;font-size:.78rem;display:flex}.wizard-option:hover{border-color:#5a6a5e}.wizard-option.selected{border-color:var(--accent);background:var(--accent-dim)}.wizard-option strong{color:var(--text-primary);font-size:.82rem}.wizard-option small{color:var(--text-muted);font-size:.68rem}.wizard-stats-header{justify-content:space-between;align-items:center;display:flex}.wizard-stats{flex-direction:column;gap:.3rem;display:flex}.wizard-stat-row{align-items:center;gap:.5rem;display:flex}.wizard-stat-label{color:#8a9a8e;width:40px;font-size:.72rem;font-weight:700}.wizard-stat-row input{width:60px}.wizard-stat-mod{color:var(--accent);min-width:30px;font-size:.78rem;font-weight:700}.wizard-review{flex-direction:column;gap:.35rem;display:flex}.wizard-review-row{color:var(--text-secondary);font-size:.8rem}.wizard-review-row strong{color:#8a9a8e;text-transform:uppercase;min-width:60px;margin-right:.5rem;font-size:.7rem;display:inline-block}.wizard-stats-preview{flex-wrap:wrap;gap:.35rem;margin-top:.35rem;display:flex}.wizard-stat-badge{color:var(--text-secondary);background:#2a3a2e;border-radius:4px;padding:.15rem .4rem;font-size:.7rem;font-weight:600}.wizard-nav{border-top:1px solid var(--border-color);gap:.5rem;padding:.5rem .75rem;display:flex}.campaign-view-tabs{gap:var(--space-1);padding:var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);border-bottom:1px solid var(--border-subtle);margin:var(--space-2) 0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#00000040;flex-wrap:wrap;display:flex}.campaign-view-tabs button{border-radius:var(--radius-md);min-width:100px;min-height:52px;color:var(--text-weak);padding:var(--space-2) var(--space-3);cursor:pointer;font-size:var(--text-sm);text-align:left;background:0 0;border:1px solid #0000;flex-direction:column;flex:1;justify-content:center;gap:2px;line-height:1.2;transition:all .2s;display:flex}.campaign-view-tabs button strong{font-size:var(--text-sm);color:var(--text-normal);font-weight:600;transition:color .2s}.campaign-view-tabs button small{font-size:var(--text-xs);color:var(--text-weak);line-height:1.3;transition:color .2s;display:block}.campaign-view-tabs button:hover{background:var(--bg-hover);border-color:var(--border-subtle)}.campaign-view-tabs button:hover strong{color:var(--text-strong)}.campaign-view-tabs button:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px}.campaign-view-tabs button.active{background:var(--bg-active);border-color:var(--accent-primary);box-shadow:var(--shadow-glow-gold)}.campaign-view-tabs button.active strong{color:var(--accent-primary)}.campaign-view-tabs button.active small{color:var(--text-normal)}.campaign-overview{padding:.5rem}.campaign-overview .action-row{margin:.5rem 0}
