@import "https://fonts.googleapis.com/css2?family=Barlow&family=Bitter&family=EB+Garamond&family=Lora&family=Merriweather&family=Nunito&family=Oswald&family=Playfair+Display&family=Rajdhani&family=Spectral&family=Vollkorn&display=swap";@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,600;9..144,700&display=swap";:root,[data-theme=default]{--bg-page:#1a1a2e;--bg-section:#16213e;--bg-input:#0f3460;--bg-card:#1a1a2e;--border:#3a3a5c;--border-accent:#c4a35a;--bg-hover:#4a4a6c;--text:#e0e0e0;--text-muted:#aaa;--text-faint:#888;--accent:#c4a35a;--accent-hover:#e0c070;--success:#2ecc71;--danger:#e74c3c;--bg-button:#3a3a5c;--success-dark:#27ae60;--danger-light:#ff6b6b;--border-faint:#2a2a4c;--font-family:system-ui, -apple-system, sans-serif;--font-display:"Fraunces", Georgia, "Times New Roman", serif}:root{--card-bg:var(--bg-section);--card-border:var(--border);--surface-sunken:var(--bg-page);--chip-bg:transparent;--chip-border:var(--border);--chip-fg:var(--text-muted);--chip-accent-fg:var(--accent);--chip-accent-border:var(--accent);--chip-danger-fg:var(--danger-light);--chip-danger-border:var(--danger);--callout-bg:var(--bg-input);--callout-fg:var(--text);--callout-edge:var(--border-accent);--link:var(--accent)}[data-theme=berserker]{--bg-page:#0d0a08;--bg-section:#1a1210;--bg-input:#2a1510;--bg-card:#0d0a08;--border:#4a2818;--border-accent:#f40;--bg-hover:#3a2018;--text:#f0e0d0;--text-muted:#c89878;--text-faint:#8a6048;--accent:#f40;--accent-hover:#ff7040;--bg-button:#4a2818;--border-faint:#2a1810;--font-family:"Oswald", sans-serif}[data-theme=cheat]{--bg-page:#100c08;--bg-section:#1c1810;--bg-input:#28201a;--bg-card:#100c08;--border:#484030;--border-accent:#60d040;--bg-hover:#383020;--text:#e8e0d0;--text-muted:#b8a888;--text-faint:#807060;--accent:#e08030;--accent-hover:#ff9848;--success:#8898b0;--success-dark:#6878a0;--bg-button:#484030;--border-faint:#201810;--font-family:"Lora", serif}[data-theme=commander]{--bg-page:#121214;--bg-section:#1c1c20;--bg-input:#28282e;--bg-card:#121214;--border:#48484e;--border-accent:#d42020;--bg-hover:#38383e;--text:#e0e0e0;--text-muted:#a0a0a8;--text-faint:#686870;--accent:#d42020;--accent-hover:#ff3838;--bg-button:#48484e;--border-faint:#2a2a30;--font-family:"Barlow", sans-serif}[data-theme=hunter]{--bg-page:#080e08;--bg-section:#101c10;--bg-input:#182418;--bg-card:#080e08;--border:#2a4428;--border-accent:#e8a030;--bg-hover:#1e3820;--text:#d0dcc8;--text-muted:#88a878;--text-faint:#587848;--accent:#e8a030;--accent-hover:#ffc050;--bg-button:#2a4428;--border-faint:#142018;--font-family:"Bitter", serif}[data-theme=mage]{--bg-page:#0a0e14;--bg-section:#141c26;--bg-input:#1c2830;--bg-card:#0a0e14;--border:#2e3e4e;--border-accent:#c8a040;--bg-hover:#243040;--text:#e0e8f0;--text-muted:#78a0b8;--text-faint:#4a6878;--accent:#c8a040;--accent-hover:#e8c060;--bg-button:#2e3e4e;--border-faint:#162028;--font-family:"Spectral", serif}[data-theme=oathsworn]{--bg-page:#120808;--bg-section:#1e1010;--bg-input:#2a1818;--bg-card:#120808;--border:#4a2020;--border-accent:#ffc020;--bg-hover:#3a1818;--text:#f0e0d0;--text-muted:#c09080;--text-faint:#886058;--accent:#ffc020;--accent-hover:#ffe050;--bg-button:#4a2020;--border-faint:#2a1010;--font-family:"EB Garamond", serif}[data-theme=shadowmancer]{--bg-page:#0c0818;--bg-section:#181030;--bg-input:#201840;--bg-card:#0c0818;--border:#3a2860;--border-accent:#60e890;--bg-hover:#301838;--text:#d8c8f0;--text-muted:#e890c8;--text-faint:#a868b8;--accent:#60e890;--accent-hover:#f0a0d0;--bg-button:#3a2860;--border-faint:#1a1030;--font-family:"Vollkorn", serif}[data-theme=shepherd]{--bg-page:#100e18;--bg-section:#1c1828;--bg-input:#262234;--bg-card:#100e18;--border:#3e3450;--border-accent:#d4a840;--bg-hover:#2e2840;--text:#ece4f0;--text-muted:#b098c8;--text-faint:#786090;--accent:#d4a840;--accent-hover:#f0c860;--bg-button:#3e3450;--border-faint:#1e1a2a;--font-family:"Merriweather", serif}[data-theme=songweaver]{--bg-page:#10081a;--bg-section:#1c1028;--bg-input:#281838;--bg-card:#10081a;--border:#402858;--border-accent:#fc0;--bg-hover:#302048;--text:#e8d8f0;--text-muted:#a888c0;--text-faint:#785898;--accent:#fc0;--accent-hover:#ffe040;--bg-button:#402858;--border-faint:#181028;--font-family:"Playfair Display", serif}[data-theme=stormshifter]{--bg-page:#060e0a;--bg-section:#0e1a14;--bg-input:#14241c;--bg-card:#060e0a;--border:#204038;--border-accent:#c070ff;--bg-hover:#183830;--text:#c8e8d8;--text-muted:#78b898;--text-faint:#488868;--accent:#c070ff;--accent-hover:#d898ff;--bg-button:#204038;--border-faint:#0a1c14;--font-family:"Nunito", sans-serif}[data-theme=zephyr]{--bg-page:#0a0c10;--bg-section:#141820;--bg-input:#1c222c;--bg-card:#0a0c10;--border:#303848;--border-accent:#20e8d0;--bg-hover:#283040;--text:#d8e0e8;--text-muted:#8898a8;--text-faint:#586878;--accent:#20e8d0;--accent-hover:#50fce8;--bg-button:#303848;--border-faint:#181e28;--font-family:"Rajdhani", sans-serif}[data-theme=ramen]{--accent:#e05a1a;--accent-hover:#ff7a3a;--border-accent:#e05a1a}[data-theme=matrix]{--bg-page:#0a0a0a;--bg-section:#0f0f0f;--bg-input:#1a1a1a;--bg-card:#0a0a0a;--border:#1a3a1a;--border-accent:#3f3;--bg-hover:#1a2a1a;--text:#cfc;--text-muted:#6a6;--text-faint:#363;--accent:#3f3;--accent-hover:#6f6;--success:#3f3;--success-dark:#2c2;--danger:#f33;--danger-light:#f66;--bg-button:#1a3a1a;--border-faint:#121;--font-family:"Courier New", Courier, monospace}h1,h2{line-height:1.15}h2{letter-spacing:-.01em;font-size:1.7rem;font-weight:600}h3{font-weight:600}a{color:var(--link)}*{box-sizing:border-box;margin:0;padding:0}button{font:inherit;background:var(--bg-button);color:var(--accent);border:1px solid var(--accent);cursor:pointer;border-radius:4px;padding:.4rem .8rem}button:disabled{opacity:.5;cursor:not-allowed}body{font-family:var(--font-family);background:var(--bg-page);color:var(--text);line-height:1.5}.app{max-width:800px;margin:0 auto;padding:1rem}.theme-selector{margin-bottom:.5rem}.theme-selector label{color:var(--text-faint);flex-direction:row;align-items:center;gap:.5rem;font-size:.8rem;display:inline-flex}.theme-selector select{width:auto;padding:.2rem .4rem;font-size:.8rem}.hamburger-bar{z-index:200;background:var(--bg-page);border-radius:8px;align-items:center;gap:.5rem;padding:.5rem;display:flex;position:fixed;top:.5rem;left:.5rem}.hamburger-bar h1{font-family:var(--font-display);font-optical-sizing:auto;letter-spacing:-.02em;color:var(--accent);font-size:2rem;font-weight:600}.hamburger{background:var(--bg-button);color:var(--accent);border:1px solid var(--accent);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;padding:.4rem;display:flex}.hamburger:hover{background:var(--bg-hover)}.sidebar-overlay{z-index:300;background:#00000080;position:fixed;inset:0}.sidebar{background:var(--bg-section);border-right:1px solid var(--border);z-index:400;flex-direction:column;width:260px;height:100%;transition:transform .2s;display:flex;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-top{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1rem;display:flex}.sidebar-title{font-family:var(--font-display);font-optical-sizing:auto;color:var(--accent);letter-spacing:-.02em;font-size:1.7rem;font-weight:600;text-decoration:none}.sidebar-title:hover{color:var(--accent-hover)}.sidebar-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;padding:.2rem;display:flex}.sidebar-close:hover{color:var(--text)}.sidebar-links{flex-direction:column;flex:1;gap:.5rem;padding:1rem;display:flex}.sidebar-links a{color:var(--text);border-radius:4px;padding:.5rem .75rem;text-decoration:none}.sidebar-links a:hover{background:var(--bg-button);color:var(--accent)}.sidebar-bottom{border-top:1px solid var(--border);padding:1rem}.sidebar-footer{border-top:1px solid var(--border);color:var(--text-faint);padding:.75rem 1rem;font-size:.75rem}.sidebar-greeting{color:var(--text-muted);padding:0 .75rem .15rem;font-size:.85rem;display:block}.sidebar-account-email{color:var(--text-faint);word-break:break-all;padding:0 .75rem .5rem;font-size:.75rem;display:block}.sidebar-account-link{color:var(--accent);padding:.5rem .75rem;font-size:.9rem;text-decoration:none;display:block}.sidebar-account-link:hover{background:var(--bg-button)}.sidebar-bottom button{color:var(--danger);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:4px;width:100%;padding:.5rem .75rem;font-size:.9rem}.sidebar-bottom button:hover{background:var(--bg-button)}header{text-align:center;margin-bottom:2rem}@media (width<=500px){header{padding-top:3rem}}.title-link{text-decoration:none}header p{color:var(--text-faint);margin-bottom:.5rem}.sheet-subtitle{text-align:center;color:var(--text-faint);margin-bottom:1rem}.sheet-subtitle a,.sheet-subtitle a:visited{color:var(--accent)}.site-footer{color:var(--text-faint);text-align:center;margin-top:2rem;margin-bottom:4rem;padding-top:1rem;font-size:.75rem}header p a,header p a:visited{color:var(--accent)}header button{background:var(--bg-button);color:var(--accent);border:1px solid var(--accent);cursor:pointer;border-radius:4px;padding:.4rem 1rem;font-size:.9rem}header button:hover{background:var(--bg-hover)}.cloud-save{color:var(--text-muted);cursor:pointer;flex-direction:row;align-items:center;gap:.4rem;font-size:.85rem;display:inline-flex}.cloud-save input[type=checkbox]{width:auto}.save-status{color:var(--text-faint);font-size:.8rem}.help-icon{color:var(--text-faint);cursor:help;vertical-align:middle;align-items:center;display:inline-flex}.header-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;display:flex}.header-actions button{justify-content:center;align-items:center;height:2rem;display:inline-flex}.auth-greeting{color:var(--text-muted);font-size:.85rem}.auth-form{text-align:left;max-width:320px;margin-top:1rem;margin-left:auto;margin-right:auto}.auth-form form{flex-direction:column;gap:.6rem;display:flex}.auth-form button[type=submit]{background:var(--bg-button);color:var(--accent);border:1px solid var(--accent);cursor:pointer;border-radius:4px;margin-top:.25rem;padding:.4rem 1rem;font-size:.9rem}.auth-form button[type=submit]:hover{background:var(--bg-hover)}.auth-error{color:var(--danger);font-size:.85rem}.auth-toggle{color:var(--text-muted);text-align:center;margin-top:.5rem;font-size:.85rem}.auth-toggle-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;text-decoration:underline}.export-error{color:var(--danger);margin-top:.4rem;font-size:.85rem}section{background:var(--bg-section);border:1px solid var(--border);border-radius:8px;margin-bottom:1rem;padding:1rem}section h2{color:var(--accent);border-bottom:1px solid var(--border);margin-bottom:.75rem;padding-bottom:.25rem;font-size:1.2rem}section h3{color:var(--text-muted);margin-bottom:.5rem;font-size:1rem}label{color:var(--text-muted);flex-direction:column;gap:.2rem;font-size:.85rem;display:flex}input[type=text],input[type=number],textarea,select{background:var(--bg-input);border:1px solid var(--border);color:var(--text);border-radius:4px;width:100%;padding:.4rem .5rem;font-family:inherit;font-size:.95rem}input[readonly]{background:var(--bg-page);color:var(--text);border-color:var(--border-faint);cursor:default}input:focus-visible,textarea:focus-visible,select:focus-visible{border-color:var(--border-accent)}textarea{resize:vertical;font-family:inherit}.form-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem;display:grid}.form-row{gap:1rem;display:flex}.form-row label{flex:1}.stat-header{align-items:center;gap:.3rem;display:flex}.stat-triangles{flex-direction:column;gap:0;line-height:1;display:flex}.stat-triangle{cursor:pointer;color:var(--text-faint);background:0 0;border:none;padding:0;font-size:.6rem}.stat-triangle.filled{color:var(--accent)}.stat-triangle:hover{color:var(--accent-hover)}.stat-adv-warning{color:var(--danger);margin-bottom:.25rem;font-size:.75rem}.modal-overlay{z-index:500;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-section);border:1px solid var(--accent);width:90%;max-width:500px;max-height:80vh;color:var(--text);border-radius:8px;padding:1.5rem;overflow-y:auto}.modal-content h2{color:var(--accent);margin-bottom:1rem}.levelup-section{margin-bottom:1rem}.levelup-section h3{color:var(--accent);margin-bottom:.5rem;font-size:1rem}.levelup-ability{margin-bottom:.5rem;font-size:.9rem}.levelup-ability p{color:var(--text-muted);margin-top:.2rem}.levelup-usage{color:var(--text-faint);font-size:.8rem}.levelup-choice{cursor:pointer;flex-direction:row;align-items:flex-start;gap:.5rem;margin-bottom:.5rem;font-size:.9rem;display:flex}.levelup-choice input[type=radio]{width:auto;margin-top:.25rem}.levelup-choice-detail{color:var(--text-muted);margin-top:.15rem;font-size:.85rem}.levelup-buttons{gap:.75rem;margin-top:1rem;display:flex}.levelup-buttons button{background:var(--bg-button);color:var(--accent);border:1px solid var(--accent);cursor:pointer;border-radius:4px;padding:.4rem 1rem;font-size:.9rem}.levelup-buttons button:hover:not(:disabled){background:var(--bg-hover)}.levelup-buttons button:disabled{opacity:.4;cursor:default}.levelup-cancel{border-color:var(--text-faint)!important;color:var(--text-muted)!important;background:0 0!important}.levelup-error{color:var(--danger);margin-top:.3rem;font-size:.8rem}.levelup-warn{border-color:var(--danger)!important;color:var(--danger)!important}.class-abilities{flex-direction:column;gap:.5rem;display:flex}.usage-resets{gap:.5rem;margin-bottom:.5rem;display:flex}.reset-btn{background:var(--bg-button);color:var(--text-muted);border:1px solid var(--border);cursor:pointer;border-radius:4px;padding:.2rem .5rem;font-size:.75rem}.reset-btn:hover{background:var(--bg-hover);color:var(--accent)}.class-ability{background:var(--bg-page);border:1px solid var(--border);border-radius:4px;padding:.5rem}.class-ability.used{opacity:.5}.class-ability.highlighted{border-color:var(--success);box-shadow:0 0 4px #2ecc714d}.toth-tracker{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.85rem;display:flex}.toth-count{text-align:center;width:1.5rem;color:var(--text);font-size:1rem;font-weight:700}.class-ability-header{align-items:center;gap:.5rem;font-size:.9rem;display:flex}.ability-usage{cursor:pointer;flex-direction:row;align-items:center;gap:.3rem;display:flex}.ability-usage input[type=checkbox]{width:auto}.ability-usage-label{color:var(--text-faint);font-size:.75rem}.class-ability-desc{color:var(--text-muted);margin-top:.25rem;font-size:.85rem}.subclass-tag{color:var(--text-muted);font-size:.9rem;font-weight:400}.levelup-btn{background:var(--bg-button);width:24px;height:24px;color:var(--success);border:1px solid var(--success);cursor:pointer;vertical-align:middle;border-radius:4px;justify-content:center;align-items:center;margin-left:.5rem;padding:0;font-size:1rem;line-height:1;display:inline-flex}.levelup-btn:hover{background:var(--bg-hover);color:#4cdf91}.dying-warning{color:#e67e22;font-size:.9rem;font-weight:700}.calculated-override{border-color:var(--border-accent)!important}.calculated-label{cursor:context-menu}.calculated-menu{z-index:400;background:var(--bg-section);border:1px solid var(--accent);min-width:200px;color:var(--text);border-radius:8px;padding:.75rem;font-size:.85rem;position:fixed;box-shadow:0 4px 12px #0006}.calculated-menu-header{color:var(--accent);margin-bottom:.5rem}.calculated-menu-row{margin-bottom:.3rem}.calculated-menu-row span{color:var(--text-muted)}.calculated-menu-bonuses{margin-bottom:.5rem}.calculated-menu-bonuses span{color:var(--text-muted)}.calculated-menu-bonuses ul{margin:.2rem 0 0 1rem;padding:0;list-style:outside}.calculated-menu-bonuses li{color:var(--text);font-size:.8rem}.action-tracker{color:var(--text-muted);align-items:center;gap:.5rem;margin-top:.5rem;font-size:.85rem;display:flex}.rest-buttons{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.rest-btn{background:var(--bg-button);color:var(--text-muted);border:1px solid var(--border);cursor:pointer;border-radius:4px;padding:.3rem .6rem;font-size:.8rem}.rest-btn:hover{background:var(--bg-hover);color:var(--accent);border-color:var(--accent)}.rest-hp-display{color:var(--accent);margin-bottom:.5rem;font-size:1.1rem;font-weight:700}.rest-roll-result{color:var(--text);margin:.2rem 0;font-size:.9rem}.rest-total{color:var(--success);margin-top:.5rem;font-size:.9rem}.initiative-wounds-row{align-items:center;gap:1rem;margin-top:.75rem;display:flex}.initiative-wounds-row>label{flex:none;width:70px}.wounds{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.wounds>span{color:var(--text-muted);font-size:.85rem}.bubbles{flex-wrap:wrap;gap:.4rem;display:flex}.bubble{border:2px solid var(--accent);cursor:pointer;background:0 0;border-radius:50%;width:24px;height:24px;padding:0}.bubble.filled{background:var(--accent)}.bubble:hover{border-color:var(--accent-hover)}.wound-adjust{background:var(--bg-button);width:24px;height:24px;color:var(--accent);border:1px solid var(--accent);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:1rem;line-height:1;display:flex}.wound-adjust:hover:not(:disabled){background:var(--bg-hover)}.wound-adjust:disabled{opacity:.4;cursor:default}.death-warning{color:var(--danger);font-size:.9rem;font-weight:700}.inventory{flex-direction:column;gap:.4rem;margin:.75rem 0;display:flex}.inventory-slot{display:flex}.inventory-text-slot{flex:1;gap:.3rem;display:flex}.inventory-text-slot input{flex:1}.inventory-add-btn{background:var(--bg-button);color:var(--success);border:1px solid var(--success);cursor:pointer;border-radius:4px;align-items:center;padding:.2rem .4rem;display:flex}.inventory-add-btn:hover{background:var(--bg-hover)}.inventory-item{background:var(--bg-page);border:1px solid var(--border-faint);border-radius:4px;flex:1;align-items:center;gap:.5rem;padding:.4rem .5rem;display:flex}.inventory-item-main{flex-wrap:wrap;flex:none;align-items:baseline;gap:.4rem;font-size:.9rem;display:flex}.inventory-item-stats{color:var(--text-muted);font-size:.8rem}.inventory-item-props{color:var(--text-faint);font-size:.75rem;font-style:italic}.item-picker-overlay{z-index:500;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.item-picker{background:var(--bg-section);border:1px solid var(--accent);border-radius:8px;flex-direction:column;gap:.4rem;width:90%;max-width:400px;max-height:80vh;padding:1rem;display:flex;overflow-y:auto}.item-picker h3{color:var(--accent);margin-bottom:.5rem}.item-picker-option{background:var(--bg-input);border:1px solid var(--border);cursor:pointer;color:var(--text);text-align:left;border-radius:4px;padding:.5rem;font-size:.9rem}.item-picker-option:hover{border-color:var(--accent)}.inventory-item-note{min-width:60px;color:var(--accent);flex:1;padding:.2rem .3rem;font-size:.75rem;font-style:italic;border-style:dashed!important}.mana-tracker{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:.85rem;display:flex}.mana-max{color:var(--text-faint);font-size:.8rem}.control-tracker{margin-bottom:.75rem}.control-tracker-header{color:var(--text-muted);align-items:center;gap:.5rem;margin-bottom:.4rem;font-size:.85rem;display:flex}.control-option{background:var(--bg-page);border:1px solid var(--border-faint);color:var(--text);cursor:pointer;border-radius:4px;margin-bottom:.3rem;padding:.4rem .5rem;font-size:.85rem}.control-option:hover{border-color:var(--accent)}.control-option.used{opacity:.35}.spell-list{flex-direction:column;gap:.75rem;display:flex}.spell-tier-group h3{color:var(--accent);margin-bottom:.4rem;font-size:.95rem}.spell-card{background:var(--bg-page);border:1px solid var(--border-faint);border-radius:4px;margin-bottom:.3rem;padding:.5rem}.spell-card-header{color:var(--text-faint);gap:.5rem;margin-bottom:.2rem;font-size:.7rem;display:flex}.spell-element{color:var(--accent);font-weight:700}.spell-tier,.spell-actions{color:var(--text-muted)}.spell-card-name{align-items:baseline;gap:.4rem;font-size:.9rem;display:flex}.spell-mana-cost{color:#3498db;font-weight:700}.spell-damage{color:var(--danger);font-size:.85rem}.spell-meta{color:var(--text-faint);margin-right:.5rem;font-size:.75rem;display:inline-block}.spell-desc{color:var(--text-muted);margin-top:.2rem;font-size:.8rem}.spell-upcast{color:var(--success);margin-top:.2rem;font-size:.75rem;font-style:italic}.spell-upcast-label{font-weight:700}.languages{flex-direction:column;gap:.4rem;display:flex}.language-fixed{background:var(--bg-page);border:1px solid var(--border-faint);color:var(--accent);border-radius:4px;padding:.4rem .5rem;font-size:.95rem;font-style:italic}.roll-btn{color:var(--accent);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-size:.85rem;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.roll-btn:hover{color:var(--accent-hover)}.dice-roller{position:relative}.dice-roller-btn{background:var(--bg-button);color:var(--accent);border:1px solid var(--accent);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;padding:.4rem;display:flex}.dice-roller-btn:hover{background:var(--bg-hover)}.dice-roller-menu{background:var(--bg-section);border:1px solid var(--accent);z-index:300;border-radius:8px;flex-direction:column;gap:.25rem;margin-top:.25rem;padding:.4rem;display:flex;position:absolute;top:100%;right:0;box-shadow:0 4px 12px #0006}.dice-option{background:var(--bg-button);color:var(--accent);border:1px solid var(--accent);cursor:pointer;text-align:center;border-radius:4px;padding:.3rem .75rem;font-size:.85rem}.dice-option:hover{background:var(--bg-hover)}.dice-modifier-row{align-items:center;gap:.4rem;display:flex}.dice-modifier-label{color:var(--text-muted);font-size:.85rem}.dice-hidden{color:var(--text-muted);flex-direction:row;align-items:center;gap:.4rem;padding:.2rem 0;font-size:.85rem;display:flex}.roll-menu{z-index:300;background:var(--bg-section);border:1px solid var(--accent);border-radius:8px;flex-direction:column;gap:.4rem;padding:.5rem;display:flex;position:fixed;box-shadow:0 4px 12px #0006}.roll-menu-row{align-items:center;gap:.4rem;display:flex}.roll-menu-adjust{background:var(--bg-button);width:24px;height:24px;color:var(--accent);border:1px solid var(--accent);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:1rem;line-height:1;display:flex}.roll-menu-adjust:hover:not(:disabled){background:var(--bg-hover)}.roll-menu-adjust:disabled{opacity:.4;cursor:default}.roll-menu-count{text-align:center;width:1.5rem;color:var(--text);font-size:.9rem}.roll-menu-action{background:var(--bg-button);color:var(--accent);border:1px solid var(--accent);cursor:pointer;border-radius:4px;padding:.3rem .75rem;font-size:.85rem}.roll-menu-action:hover{background:var(--bg-hover)}.roll-log{background:var(--bg-section);border:1px solid var(--accent);z-index:100;border-radius:8px;flex-direction:column;width:380px;max-height:300px;display:flex;position:fixed;bottom:1rem;right:1rem;box-shadow:0 4px 12px #0006}.roll-log-header{background:var(--bg-button);color:var(--accent);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:7px 7px 0 0;justify-content:space-between;align-items:center;padding:.4rem .75rem;font-size:.9rem;font-weight:700;display:flex}.roll-log-body{flex:1;padding:.5rem .75rem;overflow-y:auto}.roll-log-empty{color:var(--text-faint);font-size:.85rem;font-style:italic}.roll-entry{border-bottom:1px solid var(--border);color:var(--text);padding:.2rem 0;font-size:.85rem}.roll-entry:last-child{border-bottom:none}.reveal-btn{color:var(--danger);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;text-decoration:underline}.reveal-btn:hover{color:var(--danger-light)}.revealed-tag{color:var(--success);font-size:.85rem}.ramen-section{background:var(--bg-section);border:1px solid var(--border);border-radius:8px;margin-bottom:1rem;padding:1rem}.ramen-section h2{color:var(--accent);border-bottom:2px solid var(--accent);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem;padding-bottom:.25rem;font-size:1.2rem}.ramen-subsection{margin-bottom:1rem}.ramen-subsection-header{color:var(--text-muted);text-transform:uppercase;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.5rem;font-size:.85rem;display:flex}.ramen-dates{color:var(--accent);font-size:.8rem}.ramen-inline{flex:1;min-width:150px}.ramen-dates-input{flex:none;max-width:250px}.ramen-project-row{grid-template-columns:1fr 2fr;gap:.75rem;margin-bottom:.5rem;display:grid}.ramen-constraint{color:var(--text-faint);margin-bottom:.75rem;font-size:.8rem}.ramen-invalid{color:var(--danger);font-weight:700}.ramen-competencies{flex-direction:column;gap:.4rem;display:flex}.ramen-competency{flex-direction:row;align-items:center;gap:.75rem;display:flex}.ramen-competency .roll-btn{text-align:left;flex:1}.ramen-competency input[type=number]{flex:none;width:60px}.ramen-credits label{align-items:center;gap:.5rem;font-weight:600;display:inline-flex}.ramen-credits input{width:7rem}.ramen-inventory-list{flex-direction:column;gap:.4rem;margin:.75rem 0;padding:0;list-style:none;display:flex}.ramen-inventory-item{border:1px solid var(--card-border);background:var(--card-bg);border-radius:6px;align-items:center;gap:.6rem;padding:.35rem .5rem;display:flex}.ramen-inventory-item-info,.ramen-inventory-item input[type=text]{flex:auto}.ramen-inventory-item-effect,.ramen-inventory-item-cost{color:var(--text-muted);font-size:.9rem}.ramen-inventory-add{background:var(--bg-button);color:var(--success);border:1px solid var(--success);cursor:pointer;border-radius:4px;align-items:center;padding:.2rem .4rem;display:flex}.ramen-inventory-add:hover{background:var(--bg-hover)}.characters-new{flex-wrap:wrap;justify-content:flex-start;gap:1rem;display:flex}.obr-instructions{background:var(--bg-section);border:1px solid var(--border);text-align:left;border-radius:8px;margin-top:2rem;padding:1rem}.obr-instructions h3{color:var(--accent);margin-bottom:.5rem}.obr-instructions p{color:var(--text-muted);margin-bottom:.5rem;font-size:.9rem}.obr-instructions a{color:var(--accent)}.obr-instructions code+p{margin-top:.75rem}.help-view{max-width:720px;margin:1rem auto 0;padding:0 1rem}.help-view h2{color:var(--accent);margin-bottom:1rem}.help-view .obr-instructions{margin-top:0}.help-back{margin-top:1.5rem}.help-back a{color:var(--accent)}.obr-url{background:var(--bg-input);border:1px solid var(--border);color:var(--text);word-break:break-all;-webkit-user-select:all;user-select:all;border-radius:4px;padding:.5rem;font-size:.85rem;display:block}.characters-view button{background:var(--bg-button);color:var(--accent);border:1px solid var(--accent);cursor:pointer;border-radius:4px;padding:.5rem 1.5rem;font-size:1rem}.characters-view button:hover{background:var(--bg-hover)}.characters-view{max-width:720px;margin:1rem auto 0;padding:0 1rem}.characters-view h2{color:var(--accent);margin-bottom:1rem}.characters-new{margin-bottom:1.25rem}.characters-hint{color:var(--text-muted);margin-bottom:1rem;font-size:.85rem}.characters-hint a{color:var(--accent)}.characters-empty{color:var(--text-muted);margin-top:.5rem}.characters-empty p{margin:.15rem 0}.characters-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.character-card{border:1px solid var(--card-border);background:var(--card-bg);border-radius:8px;align-items:center;gap:.6rem;padding:.6rem .8rem;display:flex}.character-card-main{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.character-name{color:var(--accent);font-weight:700;text-decoration:none}.character-name:hover{text-decoration:underline}.delete-btn{color:var(--danger);cursor:pointer;background:0 0;border:none;align-items:center;margin-left:auto;padding:.2rem;display:inline-flex}.delete-btn:hover{color:var(--danger-light)}.character-meta{color:var(--text-faint);font-size:.85rem}.character-sync{white-space:nowrap;align-items:center;gap:.3rem;margin-left:auto;font-size:.75rem;display:inline-flex}.character-sync.is-synced{color:var(--success,#2ecc71)}.character-sync.is-local{color:var(--text-faint)}.character-sync.is-cloud{color:var(--accent)}.character-actions{z-index:200;background:var(--bg-page);border-radius:8px;flex-direction:column;align-items:flex-end;gap:.5rem;padding:.5rem;display:flex;position:fixed;top:.5rem;right:.5rem}.character-actions-row{align-items:center;gap:.75rem;display:flex}.character-actions button{background:var(--bg-button);color:var(--accent);border:1px solid var(--accent);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;height:2rem;padding:.4rem 1rem;font-size:.9rem;display:inline-flex}.character-actions button:hover{background:var(--bg-hover)}.item-picker-modal{max-height:80vh;overflow-y:auto}.item-picker-search{margin-bottom:.75rem}.item-picker-categories{flex-direction:column;gap:.25rem;display:flex}.item-picker-category-header{background:var(--bg-page);border:1px solid var(--border);width:100%;color:var(--accent);cursor:pointer;text-align:left;border-radius:4px;justify-content:space-between;align-items:center;padding:.5rem .75rem;font-size:.9rem;font-weight:700;display:flex}.item-picker-category-header:hover{background:var(--bg-section)}.item-picker-category-count{color:var(--text-faint);font-size:.8rem;font-weight:400}.item-picker-category-items{flex-direction:column;gap:.15rem;padding:.25rem 0 .25rem .5rem;display:flex}.item-picker-item{background:var(--bg-page);border:1px solid var(--border-faint);border-radius:4px;justify-content:space-between;align-items:center;gap:.5rem;padding:.3rem .5rem;font-size:.8rem;display:flex}.item-picker-item-info{flex:1;min-width:0}.item-picker-item-stats{color:var(--text-faint)}.item-picker-item-props{color:var(--text-muted);font-size:.75rem}.item-picker-item-actions{flex-shrink:0;align-items:center;gap:.35rem;display:flex}.item-picker-cost{color:var(--accent);white-space:nowrap;font-size:.8rem}.item-picker-cost.unaffordable{color:var(--danger)}.item-picker-add-btn,.item-picker-buy-btn{cursor:pointer;border:1px solid var(--border);border-radius:3px;padding:.15rem .5rem;font-size:.75rem}.item-picker-add-btn{background:var(--bg-button);color:var(--text)}.item-picker-buy-btn{background:var(--success);color:#0f3460;border-color:var(--success)}.item-picker-buy-btn:disabled{background:var(--bg-page);color:var(--text-faint);border-color:var(--border);cursor:not-allowed}.item-picker-add-btn:hover{background:var(--bg-hover)}.item-picker-buy-btn:not(:disabled):hover{background:var(--success-dark)}.item-picker-category-header-static{border-bottom:1px solid var(--card-border);padding:.4rem 0;font-weight:600}.item-picker-credits{color:var(--text-muted);margin:0 0 .5rem}.character-creation{max-width:700px;margin:0 auto;padding:1rem}.creation-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.creation-skip{text-align:center;color:var(--text-faint);margin-bottom:1rem;font-size:.85rem}.creation-skip-link{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;text-decoration:underline}.creation-skip-link:hover{color:#e0c878}.creation-start-over{border:1px solid var(--danger);color:var(--danger);cursor:pointer;background:0 0;border-radius:4px;padding:.3rem .75rem;font-size:.85rem}.creation-start-over:hover{background:var(--danger);color:#fff}.creation-stepper{flex-wrap:wrap;gap:.25rem;margin-bottom:1.5rem;display:flex}.creation-step-btn{background:var(--bg-page);color:var(--text-faint);border:1px solid var(--border);cursor:pointer;border-radius:4px;padding:.3rem .6rem;font-size:.8rem}.creation-step-btn:disabled{cursor:not-allowed;opacity:.4}.creation-step-btn.active{background:var(--bg-button);color:var(--accent);border-color:var(--accent)}.creation-step-btn.done{color:var(--success);border-color:var(--success)}.creation-step{margin-bottom:1.5rem}.creation-step h3{color:var(--accent);margin-bottom:.75rem}.creation-step h4{color:var(--accent);margin-top:1rem;margin-bottom:.5rem;font-size:.95rem}.creation-step p{color:var(--text);margin-bottom:.5rem;font-size:.9rem}.creation-class-info,.creation-ancestry-info{background:var(--bg-page);border:1px solid var(--border);border-radius:4px;margin:.5rem 0;padding:.5rem .75rem;font-size:.9rem}.creation-stat-arrays{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.creation-array-option{background:var(--bg-page);border:1px solid var(--border);cursor:pointer;border-radius:4px;align-items:center;gap:.5rem;padding:.4rem .6rem;font-size:.9rem;display:flex}.creation-array-option:has(input:checked){border-color:var(--accent);background:var(--bg-section)}.creation-stat-assign{grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1rem;display:grid}.creation-stat-assign label{flex-direction:column;gap:.25rem;font-size:.9rem;display:flex}.creation-stat-assign label.adv-stat{color:var(--success)}.creation-stat-assign label.dis-stat{color:var(--danger)}.creation-stat-assign label.key-stat{color:var(--accent)}.stat-tags{gap:.25rem;min-height:1.2rem;display:flex}.key-stat-tag,.adv-stat-tag,.dis-stat-tag{border-radius:3px;padding:0 .3rem;font-size:.7rem}.key-stat-tag{background:var(--accent);color:#0f3460}.adv-stat-tag{background:var(--success);color:#0f3460}.dis-stat-tag{background:var(--danger);color:#fff}.creation-skills{flex-direction:column;gap:.3rem;display:flex}.creation-skill-row{background:var(--bg-page);border:1px solid var(--border);border-radius:4px;align-items:center;gap:.5rem;padding:.3rem .5rem;font-size:.85rem;display:flex}.creation-skill-name{width:140px;color:var(--accent);flex-shrink:0}.creation-skill-breakdown{color:var(--text-faint);flex:1;gap:.5rem;font-size:.8rem;display:flex}.creation-skill-total{text-align:right;width:50px}.creation-points-remaining{color:var(--accent);font-weight:700}.creation-points-done{color:var(--success);font-weight:700}.creation-secondary-grid{grid-template-columns:repeat(4,1fr);gap:.75rem;display:grid}.creation-stat-display{background:var(--bg-page);border:1px solid var(--border);border-radius:4px;flex-direction:column;align-items:center;padding:.5rem;font-size:.85rem;display:flex}.creation-stat-display span{color:var(--text-faint);font-size:.75rem}.creation-stat-display strong{color:var(--text);font-size:1.1rem}.creation-equipment-options{flex-direction:column;gap:.75rem;display:flex}.creation-equipment-option{background:var(--bg-page);border:1px solid var(--border);cursor:pointer;border-radius:4px;align-items:flex-start;gap:.5rem;padding:.75rem;display:flex}.creation-equipment-option:has(input:checked){border-color:var(--accent);background:var(--bg-section)}.creation-gear-list{color:var(--text);margin:.25rem 0 0 1rem;padding:0;font-size:.85rem}.creation-inventory{flex-direction:column;gap:.25rem;display:flex}.creation-inventory-slot{background:var(--bg-page);border:1px solid var(--border);border-radius:4px;align-items:center;gap:.5rem;padding:.3rem .5rem;font-size:.85rem;display:flex}.creation-inventory-slot .inventory-slot-num{color:var(--text-faint);text-align:center;width:1.5rem}.creation-inventory-item{flex:1;align-items:center;gap:.5rem;display:flex}.creation-option-list{flex-direction:column;gap:.4rem;margin-bottom:1rem;display:flex}.creation-option-card{background:var(--bg-page);border:1px solid var(--border);cursor:pointer;border-radius:4px;align-items:flex-start;gap:.5rem;padding:.5rem .75rem;font-size:.85rem;display:flex}.creation-option-card.selected{border-color:var(--accent);background:var(--bg-section)}.creation-option-card input[type=radio]{flex-shrink:0;margin-top:.2rem}.creation-option-meta{color:var(--text-faint);font-size:.8rem}.creation-option-size{color:var(--text-faint);font-size:.85rem}.creation-option-desc{color:var(--text-muted);margin:.15rem 0 0;font-size:.8rem}.creation-option-card.custom-class{padding:.4rem .75rem}.creation-option-card.custom-class input[type=text]{width:100%}.creation-warning{color:var(--danger);margin:.5rem 0;font-size:.85rem}.levelup-btn-create{background:var(--success);color:#0f3460;cursor:pointer;border:none;border-radius:6px;margin:1.5rem auto;padding:.75rem 2rem;font-size:1.1rem;font-weight:700;display:block}.levelup-btn-create:hover{background:var(--success-dark)}.admin-view{max-width:820px;margin:0 auto;padding:1rem}.admin-view h2{color:var(--accent);margin-bottom:1rem}.admin-tabs{border-bottom:1px solid var(--border);gap:.5rem;margin-bottom:1rem;display:flex}.admin-tab{color:var(--text-muted);border-bottom:2px solid #0000;margin-bottom:-1px;padding:.4rem .8rem;text-decoration:none}.admin-tab:hover{color:var(--text)}.admin-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.admin-settings-list{margin:0;padding:0;list-style:none}.admin-setting{border:1px solid var(--card-border);background:var(--card-bg);border-radius:6px;flex-direction:column;gap:.5rem;margin-bottom:.6rem;padding:.8rem;display:flex}.admin-setting-key{color:var(--accent);font-family:monospace;font-weight:600}.admin-setting label,.admin-setting-add label{color:var(--text-muted);flex-direction:column;gap:.2rem;font-size:.85rem;display:flex}.admin-setting-actions{align-items:center;gap:.6rem;display:flex}.admin-setting-actions button,.admin-setting-add button{background:var(--bg-button);color:var(--accent);border:1px solid var(--accent);cursor:pointer;border-radius:4px;align-self:flex-start;padding:.35rem .8rem}.admin-setting-saved{color:var(--success);font-size:.85rem}.admin-add-title{color:var(--text-muted);margin:1.5rem 0 .6rem}.admin-setting-add{flex-direction:column;gap:.5rem;max-width:480px;display:flex}.admin-pagination{justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;display:flex}.admin-pagination-info{color:var(--text-faint);font-size:.85rem}.admin-pagination-controls{gap:.5rem;display:flex}.admin-pagination-controls button{background:var(--bg-button);color:var(--accent);border:1px solid var(--accent);cursor:pointer;border-radius:4px;padding:.3rem .7rem}.admin-pagination-controls button:disabled{opacity:.4;cursor:default;color:var(--text-faint);border-color:var(--border)}.admin-bug-list{margin:0;padding:0;list-style:none}.admin-bug{border:1px solid var(--card-border);background:var(--card-bg);border-radius:6px;gap:.8rem;margin-bottom:.5rem;padding:.7rem .8rem;display:flex}.admin-bug-thumb{border:1px solid var(--border);background:var(--bg-page);cursor:pointer;border-radius:4px;flex:none;padding:0;line-height:0;overflow:hidden}.admin-bug-thumb img{object-fit:cover;object-position:top left;width:120px;height:80px}.admin-bug-body{min-width:0}.admin-bug-comment{white-space:pre-wrap;word-break:break-word}.admin-bug-meta{color:var(--text-faint);margin-top:.3rem;font-size:.8rem}.admin-bug-url{word-break:break-all;margin-top:.15rem;font-size:.8rem}.admin-bug-url a{color:var(--accent)}.admin-bug-zoom{z-index:80;cursor:zoom-out;background:#000000b3;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.admin-bug-zoom img{object-fit:contain;border:1px solid var(--border);max-width:100%;max-height:100%}.admin-error{color:var(--danger)}.admin-user-list{margin:0;padding:0;list-style:none}.admin-user{border:1px solid var(--card-border);border-radius:6px;margin-bottom:.5rem;overflow:hidden}.admin-user-row{background:var(--card-bg);cursor:pointer;text-align:left;width:100%;font:inherit;color:var(--text);border:none;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.6rem .8rem;display:flex}.admin-user-row:hover{background:var(--bg-hover)}.admin-user-name{align-items:center;gap:.4rem;font-weight:600;display:inline-flex}.admin-user-email{color:var(--text-muted);font-size:.9rem}.admin-user-meta{color:var(--text-muted);margin-left:auto;font-size:.85rem}.admin-badge{background:var(--chip-bg);color:var(--chip-accent-fg);border:1px solid var(--chip-accent-border);text-transform:uppercase;border-radius:4px;padding:.05rem .4rem;font-size:.7rem;font-weight:600}.admin-user-characters{background:var(--surface-sunken);padding:.3rem .8rem .7rem 2rem}.admin-user-characters ul{margin:0;padding:0;list-style:none}.admin-user-characters li{padding:.25rem 0}.admin-user-characters a{color:var(--accent)}.admin-char-meta{color:var(--text-muted);font-size:.85rem}.admin-user-actions{border-top:1px solid var(--card-border);margin-top:.6rem;padding-top:.5rem}.admin-user-delete{color:var(--danger);background:var(--bg-button);border:1px solid var(--danger);cursor:pointer;border-radius:4px;align-items:center;gap:.35rem;padding:.3rem .7rem;font-size:.85rem;display:inline-flex}.admin-user-delete:disabled{opacity:.5;cursor:default}.admin-user-pw{border-top:1px solid var(--card-border);flex-wrap:wrap;align-items:flex-end;gap:.6rem;margin-top:.6rem;padding-top:.5rem;display:flex}.admin-user-pw-label{color:var(--text-muted);flex-direction:column;gap:.2rem;font-size:.8rem;display:flex}.admin-user-pw-input{font-family:monospace}.admin-user-pw-btn{background:var(--bg-button);color:var(--accent);border:1px solid var(--accent);cursor:pointer;border-radius:4px;padding:.3rem .7rem}.admin-user-pw-btn:disabled{opacity:.5;cursor:default}.admin-user-pw-status{color:var(--text-muted);align-self:center;font-size:.85rem}.admin-muted{color:var(--text-muted);margin:.3rem 0;font-size:.9rem}.admin-error-list{margin:0;padding:0;list-style:none}.admin-error-row{border:1px solid var(--card-border);background:var(--card-bg);border-radius:6px;margin-bottom:.5rem;overflow:hidden}.admin-error-head{cursor:pointer;text-align:left;width:100%;font:inherit;color:var(--text);background:0 0;border:none;align-items:baseline;gap:.6rem;padding:.6rem .8rem;display:flex}.admin-error-head:hover{background:var(--bg-hover)}.admin-error-origin{text-transform:uppercase;background:var(--chip-bg);color:var(--chip-accent-fg);border:1px solid var(--chip-accent-border);border-radius:4px;flex:none;padding:.05rem .4rem;font-size:.65rem;font-weight:600}.admin-error-origin.is-server{color:var(--chip-danger-fg);border-color:var(--chip-danger-border)}.admin-error-kind{color:var(--accent);flex:none;font-weight:600}.admin-error-msg{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-muted);flex:auto;overflow:hidden}.admin-error-time{color:var(--text-faint);flex:none;font-size:.8rem}.admin-error-sub{color:var(--text-faint);flex-wrap:wrap;gap:.2rem .8rem;padding:0 .8rem .5rem;font-size:.8rem;display:flex}.admin-error-where{word-break:break-all}.admin-error-detail{background:var(--surface-sunken);border-top:1px solid var(--card-border);padding:.6rem .8rem .8rem}.admin-error-detail h4{color:var(--text-muted);margin:.8rem 0 .3rem;font-size:.85rem}.admin-error-fields{grid-template-columns:max-content 1fr;gap:.15rem .8rem;margin:0;font-size:.85rem;display:grid}.admin-error-fields dt{color:var(--text-faint)}.admin-error-fields dd{word-break:break-all;margin:0}.admin-error-frames{margin:0;padding-left:1.2rem;font-family:monospace;font-size:.8rem}.admin-error-frames li{padding:.1rem 0}.admin-error-fn{color:var(--text)}.admin-error-loc{color:var(--text-faint);word-break:break-all;margin-left:.5rem}.admin-error-crumbs{margin:0;padding:0;font-size:.8rem;list-style:none}.admin-error-crumbs li{gap:.5rem;padding:.1rem 0;display:flex}.admin-error-crumb-cat{color:var(--text-faint);flex:none;font-family:monospace}.admin-error-crumb-msg{word-break:break-word;min-width:0}.admin-db-tables{margin:0;padding:0;list-style:none}.admin-db-table-link{border:1px solid var(--card-border);background:var(--card-bg);color:var(--text);border-radius:6px;justify-content:space-between;gap:1rem;margin-bottom:.4rem;padding:.5rem .8rem;text-decoration:none;display:flex}.admin-db-table-link:hover{background:var(--bg-hover)}.admin-db-table-name{color:var(--accent);font-family:monospace;font-weight:600}.admin-db-table-count{color:var(--text-faint);font-size:.85rem}.admin-db-crumb{align-items:baseline;gap:.8rem;margin:0 0 .6rem;display:flex}.admin-db-current{color:var(--accent);font-family:monospace;font-weight:600}.admin-db-actions{align-items:center;gap:.5rem;margin:0 0 .8rem;display:flex}.admin-db-actions button{padding:.2rem .6rem;font-size:.8rem}.admin-db-copy-status{color:var(--accent);font-size:.85rem}.admin-db-total{color:var(--text-faint);font-size:.85rem}.admin-db-scroll{border:1px solid var(--card-border);border-radius:6px;overflow-x:auto}table.admin-db-grid{border-collapse:collapse;font-family:monospace;font-size:.78rem}.admin-db-grid th,.admin-db-grid td{border:1px solid var(--card-border);text-align:left;vertical-align:top;word-break:break-word;max-width:420px;padding:.3rem .5rem}.admin-db-grid th{background:var(--surface-sunken);color:var(--text-muted);white-space:nowrap}.admin-db-null{color:var(--text-faint);font-style:italic}.admin-db-cell-toggle{font:inherit;color:var(--accent);text-align:left;word-break:break-all;cursor:pointer;background:0 0;border:none;margin:0;padding:0}.admin-db-fk-head,.admin-db-fk-cell{word-break:break-all;text-decoration:none}.admin-db-fk-head:hover,.admin-db-fk-cell:hover{text-decoration:underline}.admin-db-fk-arrow{color:var(--text-faint);font-weight:400}.admin-db-hit td{background:var(--callout-bg);border-color:var(--accent)}.admin-db-orphan{background:var(--chip-bg);color:var(--danger);border:1px solid var(--danger);border-left:4px solid var(--danger);border-radius:6px;margin:0 0 .8rem;padding:.6rem .9rem;font-weight:600}.admin-db-orphan code{word-break:break-all;font-family:monospace}.admin-item-form{border:1px solid var(--card-border);background:var(--card-bg);border-radius:8px;margin-bottom:1rem;padding:.8rem}.admin-item-form h3{color:var(--text-muted);margin:0 0 .6rem}.admin-item-form-row{flex-wrap:wrap;gap:.6rem;margin-bottom:.6rem;display:flex}.admin-item-form label,.admin-item-data-label{color:var(--text-muted);flex-direction:column;gap:.2rem;font-size:.8rem;display:flex}.admin-item-data-label{margin-bottom:.6rem}.admin-item-data-label textarea{width:100%;font-family:monospace;font-size:.8rem}.admin-item-form-row input,.admin-item-form-row select{width:auto}.admin-item-form-actions{gap:.6rem;display:flex}.admin-item-gametype>h3{color:var(--accent);margin:1rem 0 .3rem}.admin-item-category>h4{color:var(--text-muted);margin:.5rem 0 .2rem;font-size:.85rem}.admin-item-list{margin:0;padding:0;list-style:none}.admin-item{border-bottom:1px solid var(--border-faint);align-items:center;gap:.6rem;padding:.3rem .5rem;display:flex}.admin-item-name{flex:0 0 10rem;font-weight:600}.admin-item-cost{color:var(--text-faint);flex:0 0 5rem;font-size:.85rem}.admin-item-data{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-faint);flex:auto;font-family:monospace;font-size:.75rem;overflow:hidden}.admin-item-actions{flex:none;gap:.4rem;display:inline-flex}.admin-item-actions button{padding:.2rem .5rem;font-size:.8rem}.admin-item-del{color:var(--danger);border-color:var(--danger)}.admin-readonly-bar{justify-content:space-between;align-items:center;gap:1rem;max-width:820px;margin:0 auto;padding:.6rem 1rem;display:flex}.admin-readonly-bar-actions{align-items:center;gap:.75rem;display:flex}.admin-readonly-badge{background:var(--chip-bg);color:var(--chip-danger-fg);border:1px solid var(--chip-danger-border);border-radius:4px;padding:.2rem .6rem;font-size:.8rem;font-weight:600}.admin-readonly{pointer-events:none}.admin-readonly-fieldset{border:0;min-width:0;margin:0;padding:0}.admin-readonly-fieldset:disabled,.admin-readonly-fieldset :disabled{opacity:1;color:inherit;-webkit-text-fill-color:inherit;cursor:default}.admin-note{color:var(--accent)}.combat-audit-tablewrap{margin:.6rem 0 1rem;overflow-x:auto}.combat-audit-table{width:100%;font-size:.82rem}.combat-audit-table td{vertical-align:top}.combat-audit-type{text-transform:uppercase;opacity:.8;margin-right:.5rem;font-size:.72rem;font-weight:600;display:inline-block}.combat-audit-desc{opacity:.9}.combat-audit-patch{background:var(--card-bg);border:1px solid var(--card-border);white-space:pre-wrap;word-break:break-word;border-radius:4px;margin:0;padding:.3rem .5rem;font-size:.72rem;overflow-x:auto}.combat-audit-compare{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.8rem;margin:.8rem 0;display:grid}.combat-audit-statebox{border:1px solid var(--card-border);border-radius:8px;padding:.5rem .75rem}.combat-audit-statebox h4{margin:0 0 .4rem}.combat-audit-meta{margin-bottom:.3rem;font-weight:600}.combat-audit-cols{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}.combat-audit-cols h5{margin:0 0 .2rem}.combat-audit-state ul{margin:0;padding:0;font-size:.85rem;list-style:none}.combat-audit-state li{padding:.1rem 0}.combat-audit-actions{flex-wrap:wrap;align-items:center;gap:.6rem;margin:.5rem 0 1.5rem;display:flex}.combat-audit-persist{border-color:#c62828}.combat-audit-ok{color:#2e7d32}.admin-success{color:var(--success)}.admin-json-editor{box-sizing:border-box;white-space:pre;overflow-wrap:normal;resize:vertical;width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem;line-height:1.4}.admin-json-actions{flex-wrap:wrap;gap:.6rem;margin-top:.75rem;display:flex}.admin-list{margin:0;padding:0;list-style:none}.admin-list-item{border:1px solid var(--card-border);border-radius:6px;margin-bottom:.5rem;overflow:hidden}.admin-list-row{background:var(--card-bg);width:100%;color:var(--text);cursor:pointer;flex-wrap:wrap;align-items:baseline;gap:.8rem;padding:.6rem .8rem;text-decoration:none;display:flex}.admin-list-row:hover{background:var(--bg-hover)}.admin-list-primary{font-weight:600}.admin-list-uuid{color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem}.admin-list-meta{color:var(--text-muted);font-size:.85rem}.admin-list-spacer{flex:auto}.admin-json-status{min-height:1.4rem;margin:.5rem 0 0}.games-view,.game-view{max-width:820px;margin:0 auto;padding:1rem}.games-error{color:var(--danger)}.games-section{margin-top:1.2rem}.games-list{margin:0;padding:0;list-style:none}.games-list li{border:1px solid var(--card-border);background:var(--card-bg);border-radius:6px;margin-bottom:.4rem;padding:.4rem .6rem}.games-list a{word-break:break-all;font-family:monospace}.games-view a,.game-view a,.games-view a:visited,.game-view a:visited{color:var(--accent)}.games-empty{color:var(--text-muted)}.game-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.game-role-badge{background:var(--chip-bg);border:1px solid var(--chip-border);color:var(--chip-fg);letter-spacing:.03em;text-transform:uppercase;border-radius:4px;align-items:center;padding:.1rem .5rem;font-size:.75rem;font-weight:600;display:inline-flex}.game-role-badge.role-owner{color:var(--chip-accent-fg);border-color:var(--chip-accent-border)}.game-role-badge.role-player{color:var(--chip-fg);border-color:var(--chip-border)}.game-share{margin:1rem 0}.game-share-row{gap:.5rem;margin-top:.3rem;display:flex}.game-share-row input{flex:1;font-family:monospace}.game-join{border:1px dashed var(--card-border);border-radius:6px;margin:1rem 0;padding:.8rem 1rem}.game-character-group{margin-top:1rem}.game-character-table{border-collapse:collapse;width:100%}.game-character-table th,.game-character-table td{text-align:left;border-bottom:1px solid var(--card-border);padding:.4rem .6rem}.game-character-link{color:var(--link);text-decoration:underline}.game-create,.game-add-row,.game-rename{gap:.5rem;margin:.6rem 0;display:flex}.game-create input,.game-rename input{flex:1;max-width:320px}.game-title{align-items:center;gap:.6rem;display:flex}.game-rename-btn,.game-visibility-btn{padding:.15rem .5rem;font-size:.8rem}.game-delete-btn{color:var(--danger);border-color:var(--danger);align-items:center;gap:.25rem;padding:.15rem .5rem;font-size:.8rem;display:inline-flex}.game-actions-col{white-space:nowrap;text-align:right;width:1%}.game-actions-col button{vertical-align:middle;margin-left:.4rem}.game-visibility-badge{text-transform:uppercase;background:var(--chip-bg);border:1px solid var(--chip-border);color:var(--chip-fg);border-radius:4px;align-items:center;margin-left:.5rem;padding:.05rem .4rem;font-size:.7rem;font-weight:600;display:inline-flex}.game-weeks{margin-top:1.5rem}.week-title-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.week-title-actions{gap:.5rem;margin-left:auto;display:inline-flex}.week-add-task .week-task-name{flex:0 11rem}.week-add-task .week-task-desc{flex:auto}.week-add-task .week-comp-select{flex:none;width:auto}.week-add-task-btn{cursor:pointer;justify-content:center;align-items:center;padding:.3rem;display:inline-flex}.week-warning{background:var(--callout-bg);color:var(--callout-fg);border-left:3px solid var(--callout-edge);border-radius:6px;padding:.5rem .8rem}.week-inventory{margin:.5rem 0 1rem}.week-inv-charname{margin:.6rem 0 .1rem}.week-inv-hint{opacity:.7;margin:0 0 .3rem;font-size:.8rem}.ramen-inventory-item.active{background:var(--chip-bg);outline:1px solid var(--accent);border-radius:6px;padding:.15rem .35rem}.week-task-list{flex-direction:column;gap:.6rem;display:flex}.week-task-card{border:1px solid var(--card-border);background:var(--card-bg);border-radius:8px;padding:.6rem .75rem}.week-task-head{align-items:center;gap:.6rem;display:flex}.week-task-name{font-weight:600}.week-task-desc{min-width:0;color:var(--text-muted);flex:1;font-size:.9rem}.week-task-name-input{flex:0 10rem}.week-task-desc-input{flex:12rem;min-width:0}.week-task-delete{flex:none;align-self:center}.week-task-controls{flex-wrap:wrap;align-items:end;gap:.5rem .75rem;margin-top:.55rem;display:flex}.week-field{flex-direction:column;flex:8.5rem;gap:.2rem;min-width:0;display:flex}.week-field-label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);font-size:.65rem;font-weight:600}.week-field select{width:100%}.week-field-narrow{flex:none}.week-comp-static,.week-total{padding:.4rem 0}.week-total{font-weight:600}.week-hidden-select{color:var(--text-faint);opacity:1;font-style:italic}.week-slot{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.week-slot select{flex:auto}.week-dice{vertical-align:middle;align-items:center;gap:.25rem;margin-left:.4rem;display:inline-flex}button.week-die{cursor:pointer;align-items:center;padding:.15rem;display:inline-flex}button.week-die:disabled{opacity:.4;cursor:default}.week-die.rolled{background:var(--chip-bg);border:1px solid var(--chip-accent-border);min-width:1.4rem;height:1.4rem;color:var(--chip-accent-fg);border-radius:4px;justify-content:center;align-items:center;padding:0 .25rem;font-size:.8rem;font-weight:600;display:inline-flex}.week-clear-btn,.week-task-table .delete-btn{vertical-align:middle;margin-left:.4rem;font-size:.8rem}@media (width<=600px){.week-task-head{flex-direction:column;align-items:stretch;gap:.35rem}.week-task-name-input,.week-task-desc-input{flex:auto}.week-task-delete{align-self:flex-end}.week-task-controls{flex-direction:column;align-items:stretch;gap:.6rem}.week-field{flex:auto;width:100%}.week-field-narrow{align-items:flex-start}.week-add-task .game-add-row{flex-direction:column;align-items:stretch}.week-add-task .week-task-name{flex:none}.week-add-task .week-comp-select{width:100%}}.game-items{margin-top:1.5rem}.game-items-toggle{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;padding:0}.game-items-help{color:var(--text-muted);margin:.25rem 0 .75rem;font-size:.9rem}.game-items-form{background:var(--card-bg);border:1px solid var(--card-border);border-radius:8px;flex-direction:column;gap:.6rem;margin-bottom:1rem;padding:.9rem;display:flex}.game-items-form-row{flex-wrap:wrap;gap:.75rem;display:flex}.game-items-form label,.game-items-data-label{color:var(--text-muted);flex-direction:column;gap:.2rem;font-size:.85rem;display:flex}.game-items-form-row label{flex:8rem}.game-items-data-label textarea{font-family:monospace;font-size:.85rem}.game-items-form-actions{gap:.5rem;display:flex}.game-items-gametype h4{margin:.75rem 0 .25rem}.game-items-category h5{color:var(--text-muted);margin:.5rem 0 .2rem}.game-items-list{margin:0;padding:0;list-style:none}.game-items-item{border-bottom:1px solid var(--card-border);align-items:center;gap:.75rem;padding:.3rem 0;display:flex}.game-items-item-name{flex:auto}.game-items-item-cost{color:var(--text-muted);font-size:.85rem}.game-items-item-actions{align-items:center;gap:.4rem;display:flex}.game-items-builder{border:1px solid var(--card-border);border-radius:6px;flex-direction:column;gap:.6rem;margin:0;padding:.75rem;display:flex}.game-items-builder:disabled{opacity:.5}.game-items-grow{flex:100%}.game-items-checkbox{align-self:flex-end;align-items:center;gap:.4rem;flex-direction:row!important}.game-items-checkbox input{width:auto}.game-items-advanced{flex-direction:column;gap:.4rem;display:flex}.game-items-adv-toggle,.game-items-linkbtn{color:var(--link);font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;padding:0}.game-items-adv-json{font-family:monospace;font-size:.85rem}.game-items-adv-note{color:var(--text-muted);margin:0;font-size:.85rem}.game-combat{margin-top:1.5rem}.combat-start-btn{margin-bottom:.6rem}.combat-active-badge,.combat-phase{text-transform:uppercase;background:var(--chip-bg);border:1px solid var(--chip-border);color:var(--chip-fg);border-radius:4px;align-items:center;padding:.05rem .4rem;font-size:.7rem;font-weight:600;display:inline-flex}.combat-active-badge{margin-left:.5rem}.combat-panel{border:1px solid var(--accent);background:var(--card-bg);border-radius:8px;margin:.5rem 0 1rem;padding:.6rem .75rem}.combat-panel-head{align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.combat-panel-head .combat-round{margin-left:auto}.combat-panel-you{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.4rem;display:flex}.combat-panel-you label{align-items:center;gap:.4rem;display:inline-flex}.combat-panel-actions{margin-left:auto}.combat-order{border-top:1px solid var(--card-border);margin:0;padding:.3rem 0 0;list-style:none}.combat-order li{justify-content:space-between;gap:.5rem;padding:.15rem 0;display:flex}.combat-order li.you{font-weight:600}.combat-order li.npc .combat-order-name{opacity:.85}.combat-order-meta{opacity:.7;font-variant-numeric:tabular-nums;flex:none;font-size:.8rem}.combat-page{padding:.75rem}.combat-bar{align-items:center;gap:.5rem;margin-bottom:.6rem;display:flex}.combat-round{margin-left:auto;font-weight:600}.combat-ended-note{opacity:.7;font-style:italic}.combat-phase-btn{width:100%;margin-bottom:.4rem;padding:.55rem;font-weight:600}.combat-group-title{margin:.8rem 0 .3rem}.combat-list{margin:0;padding:0;list-style:none}.combat-row{border-bottom:1px solid var(--card-border);flex-wrap:wrap;align-items:center;gap:.4rem;padding:.35rem 0;display:flex}.combat-name{text-overflow:ellipsis;white-space:nowrap;flex:6rem;min-width:0;overflow:hidden}input.combat-name-input{flex:6rem;width:auto;min-width:0}input.combat-num{text-align:center;flex:none;width:3.5rem}input.combat-hp{text-align:center;flex:none;width:5.5rem}.combat-actions{text-align:center;font-variant-numeric:tabular-nums;flex:none;min-width:1.5rem;font-weight:600}.combat-done-check{align-items:center;display:inline-flex}.combat-mini-btn{white-space:nowrap;flex:none;padding:.2rem .5rem;font-size:.75rem}.combat-excluded>*,.combat-done>*{opacity:.5}.combat-add-npc{align-items:center;gap:.4rem;margin:.6rem 0;display:flex}.combat-footer{justify-content:space-between;align-items:center;margin-top:.9rem;display:flex}.combat-chat{gap:.4rem;margin:.5rem 0;display:flex}.combat-chat input[type=text]{flex:auto;width:auto;min-width:0}.combat-chat button{flex:none}.combat-log{margin:0;padding:.5rem 0 0;font-size:.85rem;list-style:none}.combat-log li{border-bottom:1px dashed var(--card-border);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;padding:.2rem 0;display:flex}.combat-log-desc{flex:auto;min-width:0}.combat-log-time{opacity:.4;font-variant-numeric:tabular-nums;white-space:nowrap;cursor:default;flex:none;margin-left:auto;font-size:.65rem}.combat-log-round{opacity:.7;min-width:1.8rem;font-weight:600;display:inline-block}.privacy-notice{z-index:50;background:var(--bg-section);border-top:1px solid var(--border);color:var(--text-muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem 1rem;padding:.6rem 1rem;font-size:.8rem;display:flex;position:fixed;bottom:0;left:0;right:0}.privacy-notice-text{max-width:70ch;margin:0}.privacy-notice a{color:var(--accent)}.privacy-notice-ok{flex:none}.site-footer-legal a{color:var(--accent)}.privacy-view,.legal-view{max-width:720px;margin:0 auto;padding:1rem;line-height:1.55}.privacy-view h3,.legal-view h3{margin-top:1.5rem}.privacy-view a,.legal-view a{color:var(--accent)}.privacy-view ul,.privacy-view ol,.legal-view ul,.legal-view ol{margin:.5rem 0;padding-left:1.5rem}.privacy-view li,.legal-view li{margin:.3rem 0}.legal-updated{color:var(--text-faint);font-size:.85rem}.legal-back{margin-top:1.75rem}.bug-report-trigger{z-index:60;background:var(--bg-section);border:1px solid var(--border);width:2.1rem;height:2.1rem;color:var(--text-muted);opacity:.4;cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:opacity .15s,color .15s,border-color .15s;display:inline-flex;position:fixed;bottom:.75rem;right:.75rem}.bug-report-trigger:hover,.bug-report-trigger:focus-visible{opacity:1;color:var(--accent);border-color:var(--accent)}.bug-report-overlay{z-index:70;background:#00000080;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.bug-report-modal{background:var(--card-bg);border:1px solid var(--card-border);border-radius:10px;width:100%;max-width:440px;max-height:90vh;padding:1rem 1.1rem 1.1rem;overflow-y:auto}.bug-report-modal h3{margin-bottom:.25rem}.bug-report-hint{color:var(--text-muted);margin-bottom:.6rem;font-size:.85rem}.bug-report-shot{background:var(--bg-page);border:1px solid var(--border);border-radius:6px;justify-content:center;align-items:center;min-height:80px;margin-bottom:.6rem;display:flex;overflow:hidden}.bug-report-shot img{object-fit:contain;max-width:100%;max-height:200px;display:block}.bug-report-muted{text-align:center;color:var(--text-faint);padding:1rem;font-size:.8rem}.bug-report-comment{resize:vertical;width:100%}.bug-report-error{color:var(--danger);margin-top:.4rem;font-size:.85rem}.bug-report-actions{justify-content:flex-end;gap:.5rem;margin-top:.7rem;display:flex}.bug-report-send{background:var(--bg-button);color:var(--accent);border:1px solid var(--accent);cursor:pointer;border-radius:4px;padding:.4rem .9rem}.bug-report-cancel{color:var(--text-muted);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:4px;padding:.4rem .9rem}.bug-report-send:disabled,.bug-report-cancel:disabled{opacity:.5;cursor:default}.bug-report-thanks{text-align:center;color:var(--accent);padding:1rem .5rem}.account-view{max-width:480px;margin:1rem auto 0;padding:0 1rem}.account-view h2{color:var(--accent);margin-bottom:.5rem}.account-current{color:var(--text-muted);margin-bottom:1.5rem}.account-section{border:1px solid var(--card-border);background:var(--card-bg);border-radius:8px;margin-bottom:1.25rem;padding:1rem}.account-section h3{margin-bottom:.75rem}.account-section form{flex-direction:column;gap:.6rem;display:flex}.account-section label{color:var(--text-muted);flex-direction:column;gap:.2rem;font-size:.9rem;display:flex}.account-section button{background:var(--bg-button);color:var(--accent);border:1px solid var(--accent);cursor:pointer;border-radius:4px;align-self:flex-start;margin-top:.2rem;padding:.5rem 1rem}.account-section button:disabled{opacity:.5;cursor:default}.account-error{color:var(--danger);font-size:.85rem}.account-success{color:var(--success);font-size:.85rem}.account-danger{border-color:var(--danger)}.account-danger h3{color:var(--danger-light)}.account-danger p{color:var(--text-muted);margin-bottom:.75rem;font-size:.9rem}.account-section .account-delete-btn{color:var(--danger-light);border-color:var(--danger)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
