@font-face{font-family:Book Antiqua;font-weight:400;font-style:normal;src:local("Book Antiqua"),local("BookAntiqua"),url(/fonts/BookAntiqua.woff2) format("woff2")}@font-face{font-family:Book Antiqua;font-weight:700;font-style:normal;src:local("Book Antiqua Bold"),local("BookAntiqua-Bold"),local("Book Antiqua"),url(/fonts/BookAntiqua-Bold.woff2) format("woff2")}@font-face{font-family:Segoe UI Variable Display;font-weight:100 1000;src:local("Segoe UI Variable Display"),local("Segoe UI Variable"),local("Segoe UI")}@font-face{font-family:Segoe UI Variable Text;font-weight:100 1000;src:local("Segoe UI Variable Text"),local("Segoe UI Variable"),local("Segoe UI")}@font-face{font-family:Segoe UI Black;font-weight:700 900;src:local("Segoe UI Black"),local("Segoe UI")}@font-face{font-family:TeX Gyre Pagella;font-weight:400;font-style:normal;src:url(/fonts/texgyrepagella-regular.otf) format("opentype")}@font-face{font-family:TeX Gyre Pagella;font-weight:700;font-style:normal;src:url(/fonts/texgyrepagella-bold.otf) format("opentype")}@font-face{font-family:TeX Gyre Pagella;font-weight:400;font-style:italic;src:url(/fonts/texgyrepagella-italic.otf) format("opentype")}@font-face{font-family:TeX Gyre Pagella;font-weight:700;font-style:italic;src:url(/fonts/texgyrepagella-bolditalic.otf) format("opentype")}@font-face{font-family:Selawik;font-weight:400;src:local("Selawik"),url(/fonts/Selawik-Regular.woff2) format("woff2")}@font-face{font-family:Selawik;font-weight:600;src:local("Selawik Semibold"),url(/fonts/Selawik-Semibold.woff2) format("woff2")}@font-face{font-family:Selawik;font-weight:700;src:local("Selawik Bold"),url(/fonts/Selawik-Bold.woff2) format("woff2")}@font-face{font-family:Open Sans;font-weight:400;src:local("Open Sans"),url(/fonts/OpenSans-Regular.ttf) format("truetype")}@font-face{font-family:Open Sans;font-weight:700;src:local("Open Sans Bold"),url(/fonts/OpenSans-Bold.ttf) format("truetype")}@font-face{font-family:Open Sans;font-weight:800;src:local("Open Sans ExtraBold"),url(/fonts/OpenSans-ExtraBold.ttf) format("truetype")}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #1e1e1e;--bg-raised: #2a2a2a;--bg-sunken: #181818;--bg-hover: #333;--border: #3a3a3a;--border-light:#4a4a4a;--text: #e8e8e8;--text-dim: #999;--text-muted: #666;--accent: #4ea9ff;--accent-dark: #2a6cb6;--green: #34c759;--red: #ff453a;--red-dim: #cc3a31;--yellow: #ffd60a;--selected: #0a4a78;--row-alt: #222;--radius: 6px;--radius-sm: 4px}.upload-indicator{position:fixed;bottom:50px;left:50%;transform:translate(-50%);background:var(--accent-dark);color:#fff;padding:8px 20px;border-radius:20px;font-size:12px;z-index:10000;opacity:0;pointer-events:none;transition:opacity .2s}.upload-indicator.visible{opacity:1}.toast{position:fixed;bottom:50px;left:50%;transform:translate(-50%);background:var(--accent-dark, #0a4a78);color:#fff;padding:8px 20px;border-radius:20px;font-size:12px;z-index:10000;opacity:0;pointer-events:none;transition:opacity .2s}.toast.visible{opacity:1}html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,system-ui,sans-serif;font-size:13px;color:var(--text);background:var(--bg);overflow:hidden}.hidden{display:none!important}.hidden-input{position:absolute;width:0;height:0;opacity:0;pointer-events:none}.login-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--bg);z-index:10000}.login-card{width:320px;padding:32px 28px;background:var(--bg-raised);border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;gap:12px;box-shadow:0 8px 40px #0009}.login-title{font-size:22px;font-weight:700;text-align:center;letter-spacing:-.3px}.login-subtitle{font-size:12px;color:var(--text-dim);text-align:center;margin-bottom:4px}.login-btn{width:100%;margin-top:4px}.login-error{min-height:18px;font-size:12px;color:var(--red);text-align:center}.app-root{display:flex;flex-direction:column;height:100vh}.tab-bar{display:flex;background:var(--bg-raised);border-bottom:1px solid var(--border);flex-shrink:0;overflow-x:auto}.tab-btn{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-dim);padding:9px 18px;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:color .15s,border-color .15s}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:#fff;border-bottom-color:var(--accent)}.tab-bar-spacer{flex:1}.tab-bar-logout{margin-right:4px;align-self:center;flex-shrink:0}.tab-content{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:14px 16px;min-height:0}.tab-panel{display:none}.tab-panel.active{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto}.bottom-bar{display:flex;align-items:center;justify-content:space-between;padding:5px 10px;background:var(--bg-raised);border-top:1px solid var(--border);flex-shrink:0;min-height:36px;gap:8px}.bar-group{display:flex;align-items:center;gap:8px}.bar-center{flex:1;justify-content:center}.bar-divider{width:1px;height:16px;background:var(--border-light);margin:0 4px}.bar-status{font-size:12px;font-weight:600}.bar-status.disconnected{color:var(--red)}.bar-status.connecting{color:#f5a623}.bar-status.connected{color:var(--accent)}.bar-status-label{font-size:12px;color:var(--text-dim)}.bar-status-label strong{color:var(--text)}.sb-btn{background:var(--bg-raised);border:1px solid var(--border-light);color:var(--text);padding:5px 12px;border-radius:var(--radius-sm);font-size:12px;cursor:pointer;transition:background .12s;white-space:nowrap}.sb-btn:hover:not(:disabled){background:var(--bg-hover)}.sb-btn:active:not(:disabled){background:#444}.sb-btn:disabled{opacity:.4;cursor:default}.sb-btn-sm{padding:3px 8px;font-size:11px}.sb-btn-lg{padding:10px 28px;font-size:14px}.sb-btn-primary{background:var(--accent-dark);border-color:var(--accent);color:#fff}.sb-btn-primary:hover:not(:disabled){background:var(--accent)}.sb-btn-danger{color:var(--red)}.sb-btn-danger:hover:not(:disabled){background:#ff453a26}.sb-btn-green{background:#1a6b2e;border-color:var(--green);color:#fff;font-weight:700}.sb-btn-green:hover:not(:disabled){background:#22883a}.sb-btn-green:active:not(:disabled){background:#0e4a1e}.sb-btn-yellow{background:#7a6100;border-color:var(--yellow);color:#fff;font-weight:700}.sb-btn-yellow:hover:not(:disabled){background:#9a7a00}.sb-btn-yellow:active:not(:disabled){background:#5a4700}.sb-btn-active{background:#b71c1c;border-color:#ef5350;color:#fff;animation:record-pulse 1.5s ease-in-out infinite}@keyframes record-pulse{0%,to{opacity:1}50%{opacity:.7}}.sb-btn-ghost{background:transparent;border-color:transparent;color:var(--text-dim)}.sb-btn-ghost:hover:not(:disabled){color:var(--text);background:var(--bg-hover)}.sb-input{background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:6px 10px;font-size:13px;width:100%}.sb-input:focus{outline:none;border-color:var(--accent)}.sb-input-sm{padding:4px 8px;font-size:12px;width:auto}.sb-check{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--text-dim);cursor:pointer}.sb-check input[type=checkbox]{accent-color:var(--accent)}select.sb-input{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.table-wrap{max-height:30vh;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:10px;flex-shrink:0}#panel-roster.active{overflow-y:hidden}#panel-roster .section-heading,#panel-roster .toolbar{flex-shrink:0}.table-grow-npc{flex:1;min-height:80px;max-height:none}.sb-table{width:100%;border-collapse:collapse;font-size:12px}.sb-table thead{background:#2f2f2f;position:sticky;top:0;z-index:1}.sb-table th{padding:5px 8px;text-align:left;font-weight:600;color:var(--text-dim);border-bottom:1px solid var(--border)}.sb-table td{padding:4px 8px;border-bottom:1px solid var(--border)}.sb-table tbody tr:nth-child(odd){background:var(--bg-sunken)}.sb-table tbody tr:nth-child(2n){background:#1c1c1c}.sb-table tbody tr.selected{background:var(--selected)!important;color:#fff}.sb-table tbody tr:not(.empty-row){cursor:default}.sb-table tbody tr:not(.empty-row):hover{background:#2c2c2c}.empty-row td{color:var(--text-muted);font-style:italic;text-align:center;padding:16px}.cell-path{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:300px;direction:rtl;text-align:left}.list-box{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-sunken);min-height:200px;max-height:45vh;overflow-y:auto;padding:2px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.list-box-sm{min-height:100px;max-height:20vh}.list-box-grow{flex:1;min-height:150px;max-height:none}.list-box-mid{flex:1;min-height:120px;max-height:none}.list-item{padding:5px 10px;font-size:12px;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:3px}.list-item:hover{background:var(--bg-hover)}.list-item.selected{background:var(--selected);color:#fff}.section-heading{font-size:13px;font-weight:600;margin:10px 0 6px;color:var(--text)}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.toolbar-mini{display:flex;align-items:center;gap:6px;margin-bottom:8px}.toolbar-spacer{flex:1;min-width:8px}.toolbar-label{font-size:12px;color:var(--text-dim);white-space:nowrap}.saveload-header{display:flex;justify-content:flex-end;padding:8px 12px 0}.panel-center{display:flex;flex-direction:column;align-items:center;gap:12px;padding-top:40px}.panel-center-row{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.encounter-layout{display:flex;gap:14px;height:calc(100vh - 160px)}.encounter-col{flex:1;display:flex;flex-direction:column}.encounter-arrows{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:0 8px}.encounter-arrows .sb-btn{min-width:100px}.ctrl-layout{display:flex;gap:0;height:calc(100vh - 160px)}.ctrl-combat{width:280px;flex-shrink:0;display:flex;flex-direction:column;padding:12px;gap:4px;border-right:1px solid var(--border);overflow-y:auto}.ctrl-right{flex:1;display:flex;flex-direction:column;padding:12px;overflow-y:auto}.ctrl-section{display:flex;flex-direction:column;gap:6px}.ctrl-section-grow{flex:1;min-height:0}.ctrl-table-grow{flex:1;min-height:80px;overflow-y:auto}.ctrl-divider{border:none;border-top:1px solid var(--border);margin:4px 0}.ctrl-hint{font-size:11px;margin:0;line-height:1.4}.ctrl-filter-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ctrl-filter-label{font-weight:600;font-size:12px;white-space:nowrap}.ctrl-btn-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding-top:4px}.ctrl-btn-stack{display:flex;flex-direction:column;gap:4px}.ctrl-enc-row{display:flex;align-items:center;gap:8px;padding:4px 0}.ctrl-row-2col{display:flex;gap:6px}.ctrl-btn-wide{flex:2}.ctrl-npc-grid{display:flex;flex-direction:column;gap:4px;margin-top:4px;overflow-y:auto;flex:1}.ctrl-npc-grid.two-col{flex-direction:row;flex-wrap:wrap}.ctrl-btn{padding:6px 12px;font-size:12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-raised);color:var(--text);cursor:pointer;text-align:center;white-space:nowrap;min-height:30px;user-select:none;-webkit-user-select:none}.ctrl-btn:hover:not(:disabled){background:var(--bg-hover)}.ctrl-btn:active:not(:disabled){background:#444}.ctrl-btn:disabled{opacity:.45;cursor:default}.ctrl-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.ctrl-btn.deactivated{opacity:.35;text-decoration:line-through}.ctrl-btn-accent{flex:1;background:var(--accent);color:#fff;border-color:var(--accent)}.ctrl-btn-accent:hover:not(:disabled){filter:brightness(1.15)}.ctrl-npc-grid .ctrl-btn{width:100%}.ctrl-npc-grid.two-col .ctrl-btn{flex:1 1 calc(50% - 4px);width:auto;min-width:100px}.sb-table-striped tbody tr:nth-child(2n){background:#8080800f}.sb-table-striped tbody tr:nth-child(odd){background:#80808005}.sb-table-striped tbody tr.selected-row{background:var(--accent)!important;color:#fff}.sb-table-striped tbody tr:hover:not(.empty-row):not(.selected-row){background:#80808026}.qi-layout{display:flex;flex-direction:column;gap:10px;height:calc(100vh - 160px);padding:12px}.qi-toolbar{display:flex;gap:8px}.qi-drop-zone{flex:1;min-height:0;display:flex;flex-direction:column;border:1px solid var(--border);border-radius:10px;overflow:hidden;position:relative;transition:border-color .2s,border-style .2s}.qi-drop-zone.drag-over{border:2px dashed var(--accent);background:#6495ed0f}.qi-list-grow{flex:1;overflow-y:auto;max-height:none;border:0;border-radius:0;margin-bottom:0;flex-shrink:1}#tbl-quickimages{height:100%}#tbl-quickimages .qi-filler-row{height:100%;cursor:default}#tbl-quickimages .qi-filler-row td{border:0}#tbl-quickimages .qi-filler-row,#tbl-quickimages .qi-filler-row:hover,#tbl-quickimages .qi-filler-row td,#tbl-quickimages .qi-filler-row:hover td{background:transparent!important}.qi-empty{text-align:center;padding:32px 16px}.qi-empty strong{display:block;font-size:14px;margin-bottom:6px}.qi-empty span{font-size:12px;color:var(--text-muted)}.qi-push-row{display:flex;flex-wrap:wrap;gap:40px;justify-content:center;padding:4px 40px}.qi-push-col{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.qi-push-col>.sb-btn{min-width:160px}.qi-fitfill-row{display:flex;gap:4px;width:160px}.qi-fitfill-btn{flex:1;min-width:0;padding-left:0;padding-right:0}.qi-fitfill-btn.active-mode,.ctrl-fitfill-btn.active-mode{color:#4a9eff;font-weight:600}.ctrl-crop-sliders{display:flex;align-items:center;gap:6px;padding:0 6px}.ctrl-slider-lbl{font-size:11px;color:var(--text-dim);white-space:nowrap}.ctrl-slider{width:140px;min-width:140px;cursor:pointer;margin:0}.ctrl-slider:disabled{opacity:.4;cursor:default}.ctrl-slider-val{font-size:11px;color:var(--text-dim);font-variant-numeric:tabular-nums;min-width:28px;text-align:left;white-space:nowrap}.ctrl-fitfill-btn{min-width:85px}.qi-slider-col{display:flex;flex-direction:column;gap:10px;justify-content:center;padding-left:12px;border-left:1px solid var(--border);min-width:240px}.qi-slider-row{display:flex;align-items:center;gap:8px}.qi-slider-lbl{font-size:12px;color:var(--text-dim);width:36px;text-align:right}.qi-slider{flex:1;cursor:pointer;min-width:140px;margin:0}.qi-slider:disabled{opacity:.4;cursor:default}.qi-slider-val{font-size:11px;color:var(--text-dim);font-variant-numeric:tabular-nums;width:36px;text-align:left}.qi-status-unsynced{color:var(--text-muted);font-size:11px}#panel-initiative.active{overflow-y:hidden}.initiative-layout{display:flex;flex-direction:column;gap:8px;padding:12px;flex:1;min-height:0}.initiative-header{display:flex;align-items:baseline;gap:10px}.initiative-title{font-size:1.3rem;font-weight:700;margin:0}.initiative-enc-name{color:var(--text-dim);font-size:1rem}.initiative-list-grow{flex:1;overflow-y:auto;max-height:none;min-height:0;flex-shrink:1}.initiative-row{display:flex;align-items:center;gap:8px;padding:5px 8px;border-bottom:1px solid var(--border)}.initiative-row:hover{background:var(--bg-hover)}.initiative-row.current-turn,#tbl-initiative tr.current-turn{background:#22c55e26}.initiative-roll-input{width:36px;text-align:right;font-family:var(--font-mono, monospace);font-size:14px;padding:3px 6px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-raised);color:var(--text)}.initiative-roll-input:focus{outline:none;border-color:var(--accent)}.initiative-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.initiative-kind{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px;width:60px;text-align:right;margin-left:8px}.initiative-actions{display:flex;gap:8px;align-items:center;padding-top:6px;border-top:1px solid var(--border)}.init-dice-cell{width:30px;text-align:center;padding:2px!important}.init-rando-btn{font-size:14px;padding:3px 6px;cursor:pointer}.init-rando-cell{white-space:nowrap;text-align:right;width:80px}.init-rando-stepper{width:70px;margin-left:auto}.init-rando-stepper .rr-stepper-input{font-size:12px;padding:3px 1px}.init-rando-stepper .rr-stepper-btn{width:18px;padding:3px 0;font-size:12px}.init-header-row{background:transparent!important}.init-header-cell{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;padding:2px 8px 4px!important;border-bottom:1px solid var(--border)}.init-header-rando{text-align:right;padding-right:32px!important}@keyframes pulse-scale{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.next-turn-pulse{animation:pulse-scale .8s ease-in-out infinite}.tab-btn-initiative-active{background:var(--accent)!important;color:#fff!important}.panel-section{border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin-bottom:12px;background:var(--bg-raised)}.form-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}.form-row label{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-dim)}.log-box{margin-top:8px;padding:8px;background:var(--bg-sunken);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:11px;font-family:SF Mono,Menlo,Consolas,monospace;color:var(--text-dim);white-space:pre-wrap;max-height:200px;overflow-y:auto}.status-msg{margin-top:8px;font-size:12px;color:var(--text-dim);min-height:20px;text-align:center}.form-error{min-height:16px;font-size:12px;color:var(--red)}.divider-h{border:none;border-top:1px solid var(--border);width:100%;margin:6px 0}.sb-dialog{background:var(--bg-raised);color:var(--text);border:1px solid var(--border-light);border-radius:10px;padding:20px;width:320px;box-shadow:0 12px 50px #0009;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);margin:0}.sb-dialog::backdrop{background:#0000008c}.sb-dialog h3{margin-bottom:12px;font-size:15px}.dlg-body{display:flex;flex-direction:column;gap:10px}.dlg-buttons{display:flex;gap:8px;justify-content:flex-end;margin-top:6px}.dlg-buttons-col{flex-direction:column}.dlg-msg{font-size:12px;color:var(--text-dim);line-height:1.5}.stats-grid{display:flex;flex-direction:column;gap:8px}.stats-row{display:grid;grid-template-columns:1fr 88px 40px;align-items:center;gap:10px}.stats-label{color:var(--text);font-size:14px}.stats-input{width:100%;text-align:center}.stats-bonus{font-variant-numeric:tabular-nums;font-weight:600;color:var(--accent);text-align:right}.batch-check-row{display:flex;padding:3px 0}.dlg-batch-list{max-height:280px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.sb-dialog-wide{width:480px}.init-add-filters{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;padding-bottom:8px;border-bottom:1px solid var(--border)}.init-add-encounter{display:flex;align-items:center;gap:6px;font-size:12px}.init-add-encounter .sb-input{padding:4px 6px;font-size:12px;min-width:140px}.init-add-label-text{color:var(--text-dim)}.init-add-chk{display:inline-flex;align-items:center;gap:4px;font-size:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.init-add-chk input{margin:0}.init-add-list{max-height:340px;overflow-y:auto;border:1px solid var(--border);border-radius:6px;padding:4px;display:flex;flex-direction:column;gap:1px}.init-add-row{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:4px;cursor:pointer}.init-add-row:hover{background:#ffffff0d}.init-add-row input[type=checkbox]{margin:0;cursor:pointer}.init-add-name{flex:1;font-size:13px}.init-add-kind{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim)}.init-add-row.deactivated .init-add-name,.init-add-row.deactivated .init-add-kind{color:var(--text-dim);opacity:.55}.init-add-row.deactivated .init-add-name:after{content:" (deactivated)";font-size:11px;color:var(--text-dim);font-style:italic}.init-add-empty{padding:18px;text-align:center;color:var(--text-dim);font-size:12px}.init-add-buttons{padding-top:4px}.ctx-menu{display:none;position:fixed;z-index:9000;background:var(--bg-raised);border:1px solid var(--border-light);border-radius:var(--radius);min-width:180px;box-shadow:0 6px 24px #00000080;padding:4px 0}.ctx-menu.visible{display:block}.ctx-menu button{display:block;width:100%;text-align:left;background:none;border:none;color:var(--text);padding:6px 14px;font-size:12px;cursor:pointer}.ctx-menu button:hover{background:var(--selected)}.ctx-menu hr{border:none;border-top:1px solid var(--border);margin:3px 0}@media (max-width: 860px){.ctrl-layout{flex-direction:column;height:auto}.ctrl-combat{width:100%;border-right:none;border-bottom:1px solid var(--border)}.ctrl-right{width:100%}.encounter-layout{flex-direction:column;height:auto}}.rr-layout{display:flex;flex-direction:column;gap:12px;padding:14px;max-width:440px;width:100%;min-width:0;margin:0 auto;box-sizing:border-box}.rr-mode-bar{display:flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}.rr-mode-btn{flex:1;padding:8px 6px;font-size:13px;background:var(--bg-sunken);color:var(--text-dim);border:none;border-right:1px solid var(--border);cursor:pointer;transition:background .15s,color .15s}.rr-mode-btn:last-child{border-right:none}.rr-mode-btn:hover{background:var(--bg-hover);color:var(--text)}.rr-mode-btn.active{background:var(--accent-dark);color:#fff}.rr-mode-btn[data-rrmode=hidden].active{background:#8a6d3b}.rr-mode-btn[data-rrmode=silent].active{background:#555}.rr-advdis-bar{display:flex;gap:8px;align-items:center}.rr-advdis-btn{padding:5px 16px;font-size:12px;font-weight:600;letter-spacing:.5px;background:var(--bg-sunken);color:var(--text-muted);border:1px solid var(--border);border-radius:14px;cursor:pointer;transition:all .15s}.rr-advdis-btn:hover{color:var(--text-dim);border-color:var(--border-light)}.rr-adv-btn.active{background:#34c75933;color:var(--green);border-color:var(--green)}.rr-dis-btn.active{background:#ff453a33;color:var(--red);border-color:var(--red)}.rr-option-row{display:flex;align-items:center;gap:8px}.rr-label{font-size:12px;color:var(--text-dim);white-space:nowrap;flex-shrink:0}.rr-input{flex:.7;padding:5px 8px;font-size:13px;background:var(--bg-sunken);color:var(--text);border:1px solid var(--border);border-radius:4px;min-width:0}.rr-input::placeholder{color:var(--text-muted)}.rr-select{padding:5px 4px;font-size:12px;background:var(--bg-sunken);color:var(--text);border:1px solid var(--border);border-radius:4px;min-width:0;flex:1}.rr-main-row{display:flex;gap:12px;justify-content:center;width:100%}.rr-main-row .rr-dice-area{margin:0}.rr-name-list{width:160px;flex-shrink:0;align-self:flex-start;display:flex;flex-direction:column;gap:2px;height:380px;overflow-y:auto;background:var(--bg-sunken);border:1px solid var(--border);border-radius:5px;padding:4px}.rr-name-list.compact{height:auto}.rr-name-item{padding:5px 8px;font-size:12px;color:var(--text-dim);background:transparent;border:1px solid transparent;border-radius:4px;cursor:pointer;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:all .12s}.rr-name-item:hover{background:var(--bg-hover);color:var(--text)}.rr-name-item.active{background:var(--accent-dark);color:#fff;border-color:var(--accent)}.rr-name-empty{padding:8px;font-size:11px;color:var(--text-muted);text-align:center;font-style:italic}.rr-custom-input{width:100%;padding:6px 8px;font-size:12px;background:var(--bg-raised);color:var(--text);border:1px solid var(--border);border-radius:4px;box-sizing:border-box}.rr-custom-input::placeholder{color:var(--text-muted)}.rr-custom-label{font-size:11px;color:var(--text-muted);padding:4px 4px 2px}.rr-dice-area{display:flex;flex-direction:column;gap:8px;max-width:264px;margin:0 auto;width:100%}.rr-dice-grid{display:flex;flex-direction:column;gap:6px}.rr-dice-header{display:flex;align-items:center;gap:6px;padding:0 2px}.rr-dice-header span{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;text-align:center}.rr-hdr-qty{width:62px}.rr-hdr-die{flex:1}.rr-hdr-mod{width:70px}.rr-dice-row{display:flex;align-items:center;gap:6px}.rr-stepper{display:flex;align-items:center;border:1px solid var(--border);border-radius:4px;overflow:hidden;background:var(--bg-sunken)}.rr-stepper-btn{width:20px;padding:6px 0;font-size:13px;font-weight:600;background:var(--bg-raised);color:var(--text-dim);border:none;cursor:pointer;line-height:1;text-align:center;-webkit-user-select:none;user-select:none}.rr-stepper-btn:hover{background:var(--bg-hover);color:var(--text)}.rr-stepper-btn:active{background:#444}.rr-stepper-qty{width:62px}.rr-stepper-mod{width:70px}.rr-stepper-input{width:100%;padding:6px 2px;font-size:13px;text-align:center;background:var(--bg-sunken);color:var(--text);border:none;border-left:1px solid var(--border);border-right:1px solid var(--border);outline:none}.rr-stepper-input::placeholder{color:var(--text-muted)}.rr-dice-btn{flex:1;padding:10px 0;font-size:14px;font-weight:600;background:var(--bg-raised);color:var(--text);border:1px solid var(--border);border-radius:5px;cursor:pointer;transition:background .15s}.rr-dice-btn:hover{background:var(--accent-dark);color:#fff}.rr-dice-btn:active{background:var(--accent)}.rr-btn-row{display:flex;gap:8px}.rr-roll-all-btn{flex:1;padding:8px 0;font-size:13px;font-weight:600;background:var(--accent-dark);color:#fff;border:1px solid var(--accent);border-radius:5px;cursor:pointer;transition:background .15s}.rr-roll-all-btn:hover{background:var(--accent)}.rr-roll-all-btn:active{background:#5bb8ff}.rr-reset-btn{flex:1;padding:8px 0;font-size:13px;background:transparent;color:var(--text-dim);border:1px solid var(--border);border-radius:5px;cursor:pointer;transition:color .15s,border-color .15s}.rr-reset-btn:hover{color:var(--red);border-color:var(--red)}.rr-result{min-height:60px;padding:12px;text-align:center;font-size:15px;color:var(--accent);background:var(--bg-sunken);border:1px solid var(--border);border-radius:6px;line-height:1.5;white-space:pre-wrap;overflow-wrap:break-word;word-break:break-word;min-width:0}.rr-result:empty{display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.rr-result:empty:after{content:"Roll result will appear here"}.rr-result-silent{color:var(--text-dim)}.rr-result-hidden{color:#d4a74a}.rr-bonus-tools-wrap{position:relative}.rr-bonus-tools-btn{font-size:11px;color:var(--text-dim)}.rr-bonus-menu{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg-raised);border:1px solid var(--border-light);border-radius:6px;box-shadow:0 6px 20px #0006;z-index:100;min-width:180px;overflow:hidden}.rr-bonus-menu-item{display:block;width:100%;text-align:left;padding:8px 14px;font-size:13px;background:none;border:none;color:var(--text);cursor:pointer}.rr-bonus-menu-item:hover{background:var(--selected)}.stat-results{display:flex;flex-direction:column;gap:6px}.stat-row{display:flex;align-items:center;gap:10px;padding:6px 10px;background:var(--bg-sunken);border-radius:5px}.stat-total{font-size:22px;font-weight:700;color:var(--accent);min-width:36px;text-align:right}.stat-dice{display:flex;gap:5px;flex:1}.stat-die{width:28px;height:28px;line-height:28px;text-align:center;font-size:13px;font-weight:600;background:var(--bg-raised);border:1px solid var(--border);border-radius:4px;color:var(--text)}.stat-die-dropped{color:var(--text-muted);text-decoration:line-through;opacity:.5}.stat-row-empty{min-height:40px}.satellite-off{color:var(--text-muted)}.satellite-on{color:var(--accent);font-weight:600}#btn-satellite.sb-btn-active,#btn-obs-connection.obs-connected{background:#4ea9ff26;color:var(--accent);border-color:var(--accent);animation:record-pulse 1.5s ease-in-out infinite}.ctrl-btn-initiative-end{color:var(--red)!important;background:var(--bg-raised)!important;border-color:var(--border)!important}.ctrl-btn-initiative-end:hover:not(:disabled){background:#ff453a26!important;filter:none!important}.video-tab-layout{padding:16px;max-width:900px}.video-btn-end-session{color:var(--red)!important;background:var(--bg-raised)!important;border-color:var(--border)!important}.video-btn-end-session:hover:not(:disabled){background:#ff453a26!important;filter:none!important}.video-hint{color:#999;font-size:.85rem;margin:8px 0 0}.video-btn-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.video-link-block{margin-top:14px}.video-link-label{display:block;font-size:.8rem;color:#aaa;margin-bottom:4px}.video-link-row{display:flex;gap:6px}.video-link-input{flex:1;background:#1a1a1a;border:1px solid #444;color:#eee;padding:6px 8px;border-radius:4px;font-family:monospace;font-size:.78rem;outline:none}.video-link-input:focus{border-color:#666}.video-room-info{margin-top:14px;font-size:.82rem;color:#888}.video-preview-grid{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}.video-preview-card{display:flex;flex-direction:column;align-items:center;gap:4px;width:160px}.video-preview-label{font-size:.75rem;color:#bbb;font-weight:600;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}.video-preview-iframe-wrap{width:160px;height:90px;background:#111;border:1px solid #444;border-radius:4px;overflow:hidden;position:relative}.video-preview-iframe{width:160px;height:90px;border:none;pointer-events:none}.video-preview-status{display:flex;align-items:center;justify-content:center;text-align:center;height:100%;font-size:12px;color:#666;font-style:italic}.video-preview-status.connected{color:#5a5;font-style:normal;font-weight:600;flex-direction:column;gap:3px}.video-preview-status .connected-label{font-size:15px}.video-preview-status .connected-hint{font-size:11px}.video-preview-iframe-wrap.clickable{cursor:pointer;border-color:#5a5}.video-preview-iframe-wrap.clickable:hover{border-color:#7c7;background:#1a1a1a}.video-preview-iframe-wrap.clickable.previewing{border-color:#444}.video-preview-iframe-wrap.clickable.previewing:hover{border-color:#888;background:#111}.video-assign-select{width:100%;background:#222;border:1px solid #555;color:#ddd;padding:3px 6px;border-radius:3px;font-size:.75rem;font-family:inherit;cursor:pointer}.video-assign-select:focus{border-color:#4ea9ff;outline:none}
