:root{--bg-primary:#fff;--bg-secondary:#f5f4f0;--bg-tertiary:#eeece6;--bg-info:#e6f1fb;--bg-danger:#fcebeb;--bg-warning:#faeeda;--bg-page:#e8e6df;--text-primary:#1a1a18;--text-secondary:#5f5e5a;--text-tertiary:#888780;--text-info:#185fa5;--text-info-strong:#0c447c;--text-danger:#a32d2d;--text-warning:#854f0b;--text-on-accent:#fff;--border-subtle:#0000001f;--border-medium:#00000038;--border-info:#85b7eb;--border-danger:#e8aaaa;--border-warning:#ef9f27;--accent:#378add;--gold:#c9a84c;--gold-border:#b8922e;--hp-high:#639922;--hp-mid:#ba7517;--hp-low:#e24b4a;--avatar-teal-bg:#e1f5ee;--avatar-teal-text:#0f6e56;--avatar-purple-bg:#eeedfe;--avatar-purple-text:#3c3489;--avatar-coral-bg:#faece7;--avatar-coral-text:#993c1d;--avatar-amber-bg:#faeeda;--avatar-amber-text:#854f0b;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-pill:20px;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--anim-fast:.15s;--anim-base:.25s;--anim-slow:.35s;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--turn-pulse-color:#378add73;--glow-info:#378add38;--glow-info-dim:#378add14;--glow-warning:#ba751738;--glow-warning-dim:#ba751714;--glow-danger:#e24b4a38;--glow-danger-dim:#e24b4a14;--detail-slide-dist:60px}[data-theme=dark]{--bg-primary:#070f1a;--bg-secondary:#0b1624;--bg-tertiary:#101e30;--bg-info:#052638;--bg-danger:#2e0810;--bg-warning:#221200;--bg-page:#030810;--text-primary:#c4e4f0;--text-secondary:#5e8fa6;--text-tertiary:#2e5264;--text-info:#38c8e0;--text-info-strong:#70dce8;--text-danger:#f06070;--text-warning:#e08c18;--text-on-accent:#020c10;--border-subtle:#00b4c81a;--border-medium:#00b4c833;--border-info:#0c4a62;--border-danger:#5a1020;--border-warning:#5a3006;--accent:#00c8b0;--hp-high:#00b894;--hp-mid:#d4890a;--hp-low:#f04060;--avatar-teal-bg:#032028;--avatar-teal-text:#00c8b0;--avatar-purple-bg:#100820;--avatar-purple-text:#9870f0;--avatar-coral-bg:#280610;--avatar-coral-text:#f06888;--avatar-amber-bg:#1a0c00;--avatar-amber-text:#e09020;--turn-pulse-color:#00c8b073;--gold:#e0b84a;--gold-border:#c9a030;--glow-info:#00c8b08c;--glow-info-dim:#00c8b02e;--glow-warning:#d4890a8c;--glow-warning-dim:#d4890a2e;--glow-danger:#f040608c;--glow-danger-dim:#f040602e}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;height:100%}body{height:100%;font-family:var(--font-sans);background-image:linear-gradient(var(--bg-secondary), var(--bg-secondary)), url(/images/ocean-texture.jpg);background-blend-mode:hard-light;color:var(--text-primary);background-repeat:no-repeat,no-repeat;background-size:cover,cover;background-attachment:fixed,fixed;overflow:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}*{scrollbar-width:thin;scrollbar-color:var(--border-medium) transparent}a{color:var(--text-info);text-decoration:none}button{font-family:var(--font-sans);cursor:pointer}input,textarea,select{font-family:var(--font-sans)}@view-transition{navigation:auto}::view-transition-old(root){animation:.3s ease-in both slide-out-left}::view-transition-new(root){animation:.3s ease-out both slide-in-right}@keyframes slide-out-left{to{opacity:0;transform:translate(-40px)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(40px)}}.app-layout{height:100%;display:flex;overflow:hidden}.sidebar{background:var(--bg-primary);border-right:.5px solid var(--border-subtle);width:220px;transition:width .24s var(--ease-in-out);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.sidebar-collapsed .sidebar{width:52px}.sidebar-header{border-bottom:.5px solid var(--border-subtle);flex-shrink:0;align-items:center;gap:10px;padding:14px;display:flex}.sidebar-logo{text-align:center;width:24px;color:var(--accent);flex-shrink:0;font-size:20px}.sidebar-wordmark{color:var(--text-primary);white-space:nowrap;font-size:15px;font-weight:600}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:8px 6px;display:flex;overflow-y:auto}.sidebar-item{border-radius:var(--radius-md);color:var(--text-secondary);transition:background var(--anim-fast), color var(--anim-fast);white-space:nowrap;align-items:center;gap:10px;min-height:44px;padding:10px 8px;text-decoration:none;display:flex}.sidebar-item:hover{background:var(--bg-secondary);color:var(--text-primary)}.sidebar-item-active{background:var(--bg-secondary);color:var(--text-primary);font-weight:500}.sidebar-item-icon{text-align:center;flex-shrink:0;width:24px;font-size:20px}.sidebar-item-label,.sidebar-wordmark{white-space:nowrap;opacity:1;max-width:160px;transition:max-width .24s var(--ease-in-out), opacity .16s;font-size:14px;overflow:hidden}.sidebar-collapsed .sidebar-item-label,.sidebar-collapsed .sidebar-wordmark{opacity:0;max-width:0}.sidebar-collapsed .sidebar-item,.sidebar-collapsed .sidebar-header,.sidebar-collapsed .sidebar-toggle{justify-content:center}.sidebar-chat-open .sidebar{width:400px}.sidebar-chat-only{display:none}.sidebar-chat-open .sidebar-nav-only{display:none!important}.sidebar-chat-open .sidebar-chat-only{align-items:center;display:flex}.sidebar-chat-open span.sidebar-chat-only{display:block}.sidebar-chat-close{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-tertiary);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;margin-left:auto}.sidebar-chat-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.sidebar-chat-body{border-top:.5px solid var(--border-subtle);flex-direction:column;flex:1;display:none;overflow:hidden}.sidebar-chat-open .sidebar-chat-body{display:flex}.sidebar-chat-inner{flex-direction:column;flex:1;display:flex;overflow:hidden}.sidebar-unread-badge{background:var(--accent);color:var(--text-on-accent);border-radius:var(--radius-pill);justify-content:center;align-items:center;min-width:16px;height:16px;margin-left:auto;padding:0 3px;font-size:9px;font-weight:700;display:flex}.sidebar-footer{border-top:.5px solid var(--border-subtle);flex-shrink:0;padding:6px}.sidebar-toggle{width:100%;color:var(--text-tertiary);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;min-height:44px;transition:background var(--anim-fast), color var(--anim-fast);background:0 0;border:none;align-items:center;gap:10px;padding:10px 8px;display:flex}.sidebar-toggle:hover{background:var(--bg-secondary);color:var(--text-secondary)}.app-content{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden auto}.combat-page{flex-direction:column;height:100%;display:flex;overflow:hidden}.app-shell{padding:16px}.topbar{background:var(--bg-primary);border-bottom:.5px solid var(--border-subtle);z-index:150;box-shadow:0 2px 24px #00000080, 0 1px 0 var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 16px;display:flex;position:sticky;top:0}.topbar-title{font-size:15px;font-weight:500}.topbar-meta{color:var(--text-secondary);margin-top:1px;font-size:12px}.card{background:var(--bg-primary);border-radius:var(--radius-lg);border:.5px solid var(--border-subtle);overflow:hidden}.card-header{border-bottom:.5px solid var(--border-subtle);background:var(--bg-primary);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.card-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:500}.combat-layout{flex:1;display:flex;overflow:hidden}.combat-layout .col+.col{border-left:.5px solid var(--border-subtle)}.col-left{background:var(--bg-primary);flex-direction:column;width:34%;display:flex;overflow:hidden}.col-right{background:var(--bg-primary);flex-direction:column;flex:1;display:flex;overflow:hidden}.setup-layout{flex:1;display:flex;overflow:hidden}.setup-layout .col-setup+.col-setup{border-left:.5px solid var(--border-subtle)}.col-setup{background:var(--bg-primary);flex-direction:column;flex:1;display:flex;overflow-y:auto}.bottom-bar{background:var(--bg-primary);border-top:.5px solid var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.bottom-bar-meta{color:var(--text-secondary);font-size:12px}.section-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;font-size:11px;font-weight:500}.bestiary-filters{border-bottom:.5px solid var(--border-subtle);background:var(--bg-primary);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 16px;display:flex}.bestiary-search-form{flex:1;min-width:160px}.bestiary-search{background:var(--bg-secondary);border:.5px solid var(--border-subtle);border-radius:var(--radius-md);width:100%;color:var(--text-primary);box-sizing:border-box;padding:6px 12px;font-size:13px}.bestiary-search:focus{outline:1px solid var(--accent);border-color:var(--accent)}.bestiary-filter-group{gap:4px;display:flex}.bestiary-pill{border-radius:var(--radius-pill);color:var(--text-secondary);transition:color var(--anim-fast), background var(--anim-fast), border-color var(--anim-fast);white-space:nowrap;border:.5px solid #0000;padding:4px 12px;font-size:12px;text-decoration:none}.bestiary-pill:hover{color:var(--text-primary);background:var(--bg-secondary)}.bestiary-pill-active{color:var(--text-primary);background:var(--bg-secondary);border-color:var(--border-medium)}.bestiary-body{padding:12px 16px}.bestiary-empty{color:var(--text-tertiary);flex-direction:column;align-items:center;gap:8px;padding:60px 0;font-size:14px;display:flex}.bestiary-empty i{font-size:36px}.bestiary-list{flex-direction:column;gap:2px;display:flex}.bestiary-item{border-radius:var(--radius-md);background:var(--bg-primary);transition:background var(--anim-fast), border-color var(--anim-fast);border:.5px solid #0000;align-items:center;gap:12px;padding:8px 10px;display:flex}.bestiary-item:hover{background:var(--bg-secondary);border-color:var(--border-subtle)}.bestiary-thumb{border-radius:var(--radius-sm);background:var(--bg-tertiary);flex-shrink:0;width:40px;height:40px;position:relative;overflow:hidden}.bestiary-thumb-img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.bestiary-item-info{flex:1;min-width:0}.bestiary-item-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.bestiary-item-type{color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.bestiary-item-stats{color:var(--text-secondary);white-space:nowrap;flex-shrink:0;align-items:center;gap:5px;font-size:12px;display:flex}.bestiary-cr{color:var(--text-primary);font-weight:600}.bestiary-stat-dot{color:var(--text-tertiary)}.bestiary-item-end{flex-shrink:0;align-items:center;gap:6px;display:flex}.bestiary-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-pill);padding:2px 7px;font-size:10px;font-weight:600}.bestiary-badge-homebrew{background:var(--bg-warning);color:var(--text-warning)}.bestiary-badge-srd{background:var(--bg-secondary);color:var(--text-tertiary)}.bestiary-pagination{justify-content:center;margin-top:20px;display:flex}.btn{border-radius:var(--radius-md);border:.5px solid var(--border-medium);color:var(--text-primary);cursor:pointer;white-space:nowrap;background:0 0;align-items:center;gap:6px;min-height:44px;padding:6px 14px;font-size:13px;font-weight:400;display:inline-flex}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent);font-weight:500}.btn-primary:disabled{opacity:.4}.btn-info{color:var(--text-info);border-color:var(--border-info)}.btn-danger{color:var(--text-danger);border-color:var(--border-danger)}.btn-ghost{color:var(--text-secondary);border-color:#0000}.btn-danger-ghost{color:var(--text-tertiary);border-color:#0000}.btn-danger-ghost:hover{color:var(--text-danger);background:0 0}.btn-icon{width:36px;height:36px;min-height:unset;justify-content:center;padding:0;font-size:20px}.btn-icon-sm{width:28px;height:28px;min-height:unset;justify-content:center;padding:0;font-size:14px}.btn-sm{min-height:unset;padding:3px 10px;font-size:12px}.btn-hp{border-radius:var(--radius-md);border:.5px solid var(--border-medium);background:var(--bg-secondary);width:44px;height:44px;min-height:unset;justify-content:center;align-items:center;font-size:22px;display:flex}.btn-next-turn{background-color:var(--accent);background-image:radial-gradient(ellipse at center, #0009 0%, #000000d6 100%), linear-gradient(var(--accent), var(--accent)), url(/images/copper-patina.png);background-blend-mode:normal, color, normal;color:var(--gold);text-shadow:0 1px 6px #000000e6;border:1px solid var(--gold-border);border-radius:var(--radius-md);background-repeat:no-repeat,no-repeat,no-repeat;background-size:cover,cover,cover;flex-shrink:0;justify-content:center;align-items:center;gap:8px;min-height:44px;margin:12px;padding:12px;font-size:14px;font-weight:500;display:flex}.avatar{border-radius:var(--radius-md);background:var(--bg-secondary);border:.5px solid var(--border-subtle);flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:18px;display:flex}.avatar-sm{width:36px;height:36px}.avatar-lg{border-radius:var(--radius-md);width:64px;height:64px;font-size:32px}.avatar-player{font-size:12px;font-weight:500}.avatar-teal{background:var(--avatar-teal-bg);color:var(--avatar-teal-text)}.avatar-purple{background:var(--avatar-purple-bg);color:var(--avatar-purple-text)}.avatar-coral{background:var(--avatar-coral-bg);color:var(--avatar-coral-text)}.avatar-amber{background:var(--avatar-amber-bg);color:var(--avatar-amber-text)}.enemy-thumb{cursor:pointer;position:relative;overflow:hidden}.enemy-thumb-img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.enemy-thumb-generate{color:var(--text-tertiary);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:14px;display:flex;position:absolute;inset:0}.enemy-thumb-spinner{background:#00000073;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.enemy-thumb-regen{color:#fff;opacity:0;background:#00000080;justify-content:center;align-items:center;font-size:14px;transition:opacity .15s;display:flex;position:absolute;inset:0}.enemy-thumb:hover .enemy-thumb-regen{opacity:1}@keyframes thumb-spin{to{transform:rotate(360deg)}}.enemy-thumb-spin{color:#fff;animation:.7s linear infinite thumb-spin;display:inline-block}.enemy-thumb-standalone{border-radius:var(--radius-md);width:100px;height:100px;margin-bottom:16px;overflow:hidden}.enemy-portrait-box{background:var(--bg-secondary);border:.5px solid var(--border-subtle);cursor:pointer;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.enemy-portrait-box .enemy-thumb-generate{font-size:20px}.enemy-portrait-box .enemy-thumb-regen{font-size:18px}.bestiary-thumb .enemy-portrait-box{background:var(--bg-tertiary);border:none}.bestiary-thumb .enemy-thumb-generate{font-size:14px}.bestiary-thumb .enemy-portrait-generate-label{display:none}.bestiary-thumb .enemy-thumb-regen{font-size:13px}.image-modal-overlay{z-index:9999;background:#000c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.image-modal-box{width:min(480px,90vw);position:relative}.image-modal-img-wrap{aspect-ratio:1;background:var(--bg-secondary);border-radius:var(--radius-md);position:relative;overflow:hidden;box-shadow:0 24px 60px #0009}.image-modal-img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.image-modal-spinner{justify-content:center;align-items:center;width:100%;height:100%;min-height:280px;display:flex}.image-modal-regen{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;border-radius:var(--radius-sm);cursor:pointer;background:#0009;border:1px solid #fff3;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:500;transition:background .15s;display:flex;position:absolute;bottom:12px;right:12px}.image-modal-regen:hover{background:#000c}.image-modal-close{background:var(--bg-primary);border:1px solid var(--border-subtle);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;z-index:1;border-radius:50%;justify-content:center;align-items:center;font-size:14px;transition:color .15s;display:flex;position:absolute;top:-14px;right:-14px}.image-modal-close:hover{color:var(--text-primary)}.image-modal-name{text-align:center;color:#fff;text-shadow:0 1px 4px #00000080;margin-top:14px;font-size:17px;font-weight:600}.hp-bar{background:var(--bg-secondary);border-radius:2px;flex:1;height:4px;overflow:hidden}.hp-bar-lg{height:6px}.hp-fill{height:100%;transition:width var(--anim-slow) var(--ease-out), background var(--anim-base) var(--ease-out);border-radius:2px}.hp-fill-high{background:var(--hp-high)}.hp-fill-mid{background:var(--hp-mid)}.hp-fill-low{background:var(--hp-low)}.hp-text{color:var(--text-secondary);white-space:nowrap;font-size:11px}.pill{border-radius:var(--radius-sm);padding:1px 5px;font-size:10px}.pill-warning{background:var(--bg-warning);color:var(--text-warning)}.pill-danger{background:var(--bg-danger);color:var(--text-danger)}.pill-info{background:var(--bg-info);color:var(--text-info)}@keyframes cond-glow-info{0%,to{box-shadow:0 0 4px 2px var(--glow-info-dim)}50%{box-shadow:0 0 14px 5px var(--glow-info)}}@keyframes cond-glow-warning{0%,to{box-shadow:0 0 4px 2px var(--glow-warning-dim)}50%{box-shadow:0 0 14px 5px var(--glow-warning)}}@keyframes cond-glow-danger{0%,to{box-shadow:0 0 4px 2px var(--glow-danger-dim)}50%{box-shadow:0 0 14px 5px var(--glow-danger)}}@keyframes cond-click-burst{0%{transform:scale(1)}25%{transform:scale(.86)}65%{transform:scale(1.08)}to{transform:scale(1)}}.cond-tag{border-radius:var(--radius-pill);cursor:pointer;border:.5px solid var(--border-subtle);background:var(--bg-secondary);color:var(--text-secondary);min-height:44px;transition:background var(--anim-fast), transform var(--anim-fast);align-items:center;padding:4px 10px;font-size:12px;display:inline-flex}.cond-tag:hover{background:var(--bg-tertiary)}.cond-tag-warning{background:var(--bg-warning);color:var(--text-warning);border-color:var(--border-warning);animation:2.8s ease-in-out -1.4s infinite cond-glow-warning}.cond-tag-danger{background:var(--bg-danger);color:var(--text-danger);border-color:var(--hp-low);animation:2.8s ease-in-out -.6s infinite cond-glow-danger}.cond-tag-info{background:var(--bg-info);color:var(--text-info);border-color:var(--accent);animation:2.8s ease-in-out -2.1s infinite cond-glow-info}.cond-tag-warning.cond-clicked{animation:cond-glow-warning 2.8s ease-in-out infinite, cond-click-burst .38s var(--ease-out)}.cond-tag-danger.cond-clicked{animation:cond-glow-danger 2.8s ease-in-out infinite, cond-click-burst .38s var(--ease-out)}.cond-tag-info.cond-clicked{animation:cond-glow-info 2.8s ease-in-out infinite, cond-click-burst .38s var(--ease-out)}.cond-tag.cond-clicked{animation:cond-click-burst .38s var(--ease-out)}.chip{color:var(--text-info);border:.5px solid var(--border-info);border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;background:0 0;align-items:center;min-height:44px;padding:4px 10px;font-size:12px;display:inline-flex}.chip-custom{color:var(--text-secondary);border-color:var(--border-medium)}.stat-chip{background:var(--bg-secondary);border-radius:var(--radius-md);text-align:center;flex:1;padding:7px 8px}.stat-val{font-size:15px;font-weight:500}.stat-lbl{color:var(--text-secondary);margin-top:1px;font-size:10px}.combatant-card{border-bottom:.5px solid var(--border-subtle);cursor:pointer;min-height:56px;transition:background var(--anim-fast);align-items:center;gap:10px;padding:10px 12px;display:flex}.combatant-card:hover{background:var(--bg-secondary)}@keyframes turn-pulse{0%{box-shadow:0 0 0 3px var(--turn-pulse-color)}to{box-shadow:0 0 #0000}}@keyframes combatant-slide-in{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.combatant-card-active{background:var(--bg-info);border-left:3px solid var(--accent);animation:turn-pulse var(--anim-slow) var(--ease-out);box-shadow:inset 4px 0 20px #00c8b012, inset 0 1px 0 var(--border-info)}.combatant-enter{transition:opacity var(--anim-base) var(--ease-out), transform var(--anim-base) var(--ease-out)}.combatant-enter-start{opacity:0;transform:translate(-12px)}.combatant-enter-end{opacity:1;transform:translate(0)}.combatant-card-active .combatant-name{color:var(--text-info-strong)}.init-badge{color:var(--text-secondary);text-align:center;cursor:text;min-width:22px;font-size:13px;font-weight:500}.init-badge-active{color:var(--text-info);font-weight:600}.init-badge-input{width:36px;color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--accent);border-radius:var(--radius-sm);text-align:center;-moz-appearance:textfield;outline:none;flex-shrink:0;padding:1px 4px;font-size:13px;font-weight:500}.init-badge-input::-webkit-outer-spin-button{-webkit-appearance:none}.init-badge-input::-webkit-inner-spin-button{-webkit-appearance:none}.end-combat-row{flex-shrink:0;padding:8px 12px 12px}.btn-end-combat{border:.5px solid var(--border-danger);border-radius:var(--radius-md);width:100%;color:var(--text-danger);cursor:pointer;background:0 0;justify-content:center;align-items:center;gap:6px;min-height:40px;padding:9px 12px;font-size:13px;font-weight:500;display:flex}.btn-end-combat:hover{background:var(--bg-danger)}.end-combat-confirm{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.end-combat-question{color:var(--text-danger);flex:1;min-width:0;font-size:13px}.combatant-name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.attack-row{background:var(--bg-secondary);border-radius:var(--radius-md);cursor:pointer;border:.5px solid #0000;align-items:center;gap:10px;min-height:52px;padding:9px 12px;display:flex}.attack-name{font-size:13px;font-weight:500}.attack-meta{color:var(--text-secondary);font-size:12px}.game-bar{border-top:.5px solid var(--border-subtle);background:var(--bg-primary);flex-shrink:0;align-items:center;gap:8px;padding:8px 12px;display:flex}.game-bar-icon{color:var(--accent);flex-shrink:0;font-size:15px}.game-input{background:var(--bg-secondary);border:.5px solid var(--border-subtle);border-radius:var(--radius-pill);color:var(--text-tertiary);cursor:pointer;outline:none;flex:1;min-height:36px;padding:7px 14px;font-size:13px}.game-bar-open-btn{flex-shrink:0;min-height:36px;padding:4px 12px;font-size:12px}.game-panel-messages{flex-direction:column;flex:1;gap:10px;padding:12px 14px;display:flex;overflow-y:auto}.game-panel-empty{color:var(--text-tertiary);text-align:center;padding:32px 0;font-size:13px;line-height:1.5}.game-msg{max-width:90%;font-size:13px;line-height:1.5}.game-msg-user{align-self:flex-end}.game-msg-user .game-msg-content{background:var(--accent);color:var(--text-on-accent);border-radius:var(--radius-md) var(--radius-md) var(--radius-sm) var(--radius-md);padding:8px 12px}.game-msg-assistant{align-self:flex-start;max-width:95%}.game-msg-assistant .game-msg-content{background:var(--bg-secondary);color:var(--text-primary);border-radius:var(--radius-md) var(--radius-md) var(--radius-md) var(--radius-sm);white-space:pre-wrap;padding:8px 12px}.game-msg-alert{align-self:stretch;max-width:100%}.game-msg-alert .game-msg-content{background:var(--bg-warning);border:.5px solid var(--border-warning);color:var(--text-warning);border-radius:var(--radius-md);padding:7px 12px;font-size:12px}.game-msg-proposal{align-self:stretch;max-width:100%}.game-proposal-card{background:var(--bg-tertiary);border:1px solid var(--border-medium);border-radius:var(--radius-md);flex-direction:column;gap:6px;padding:12px 14px;display:flex}.game-proposal-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);font-size:10px;font-weight:700}.game-proposal-monster{flex-direction:column;gap:2px;display:flex}.game-proposal-name{color:var(--text-primary);font-size:14px;font-weight:600}.game-proposal-stats{color:var(--text-secondary);font-size:12px}.game-proposal-qty{border-top:.5px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:12px;margin-top:8px;padding-top:8px;display:flex}.game-proposal-qty-group{align-items:center;gap:8px;display:flex}.game-proposal-qty-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;font-size:11px;font-weight:500}.game-proposal-qty-row{border:.5px solid var(--border-medium);border-radius:var(--radius-sm);align-items:center;gap:0;display:flex;overflow:hidden}.game-proposal-qty-btn{background:var(--bg-secondary);width:30px;height:30px;color:var(--text-primary);cursor:pointer;transition:background var(--anim-fast);border:none;justify-content:center;align-items:center;font-size:16px;display:flex}.game-proposal-qty-btn:hover:not(:disabled){background:var(--bg-tertiary)}.game-proposal-qty-btn:disabled{opacity:.4;cursor:default}.game-proposal-qty-input{background:var(--bg-primary);border:none;border-left:.5px solid var(--border-medium);border-right:.5px solid var(--border-medium);width:40px;height:30px;color:var(--text-primary);text-align:center;font-size:13px;font-weight:500;font-family:var(--font-sans)}.game-proposal-qty-input::-webkit-inner-spin-button{-webkit-appearance:none}.game-proposal-qty-input::-webkit-outer-spin-button{-webkit-appearance:none}.game-proposal-init-input{background:var(--bg-primary);border:.5px solid var(--border-medium);border-radius:var(--radius-sm);width:52px;height:30px;color:var(--text-primary);text-align:center;font-size:13px;font-weight:500;font-family:var(--font-sans)}.game-proposal-init-input::-webkit-inner-spin-button{-webkit-appearance:none}.game-proposal-init-input::-webkit-outer-spin-button{-webkit-appearance:none}.game-proposal-init-input:disabled{opacity:.5}.game-proposal-actions{gap:8px;margin-top:4px;display:flex}.game-proposal-accept{background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:none;padding:5px 16px;font-size:13px;font-weight:500;transition:opacity .15s}.game-proposal-accept:hover:not(:disabled){opacity:.85}.game-proposal-accept:disabled{opacity:.55;cursor:default}.game-proposal-cancel{color:var(--text-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:5px 14px;font-size:13px;transition:background .15s}.game-proposal-cancel:hover:not(:disabled){background:var(--bg-secondary)}.game-proposal-result{margin-top:2px;font-size:12px;font-style:italic}.game-proposal-result-accepted{color:var(--hp-high)}.game-proposal-result-cancelled{color:var(--text-tertiary)}.game-proposal-result-error{color:var(--text-danger)}.game-msg-quick_replies{align-self:stretch}.quick-replies{flex-direction:column;gap:6px;display:flex}.quick-reply-btn{background:var(--bg-secondary);border:.5px solid var(--border-medium);border-radius:var(--radius-md);width:100%;color:var(--text-primary);text-align:left;cursor:pointer;transition:background var(--anim-fast), border-color var(--anim-fast);min-height:44px;font-size:13px;font-weight:500;font-family:var(--font-sans);padding:11px 14px}.quick-reply-btn:hover{background:var(--bg-tertiary);border-color:var(--accent);color:var(--accent)}.quick-reply-btn:active{opacity:.75}.game-msg-homebrew_draft{align-self:stretch;max-width:100%}.homebrew-draft-card{background:var(--bg-tertiary);border:1px solid var(--border-medium);border-radius:var(--radius-md);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.homebrew-draft-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);font-size:10px;font-weight:700}.homebrew-draft-name{color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);box-sizing:border-box;width:100%;padding:5px 8px;font-size:15px;font-weight:600}.homebrew-draft-type{color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);box-sizing:border-box;width:100%;padding:4px 8px;font-size:12px}.homebrew-draft-stats{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.homebrew-draft-stats-2{grid-template-columns:repeat(4,1fr)}.homebrew-stat{flex-direction:column;gap:2px;display:flex}.homebrew-stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);white-space:nowrap;font-size:9px;font-weight:700}.homebrew-stat-input{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);box-sizing:border-box;width:100%;padding:3px 6px;font-size:12px}.homebrew-stat-input:focus,.homebrew-draft-name:focus,.homebrew-draft-type:focus{outline:1px solid var(--accent);border-color:var(--accent)}.homebrew-scores{border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);grid-template-columns:repeat(6,1fr);gap:4px;padding:6px 0;display:grid}.homebrew-score{flex-direction:column;align-items:center;gap:1px;display:flex}.homebrew-score-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-tertiary);font-size:8px;font-weight:700}.homebrew-score-input{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);text-align:center;box-sizing:border-box;-moz-appearance:textfield;width:100%;padding:2px 0;font-size:11px}.homebrew-score-input::-webkit-inner-spin-button{-webkit-appearance:none}.homebrew-score-input::-webkit-outer-spin-button{-webkit-appearance:none}.homebrew-score-input:focus{outline:1px solid var(--accent);border-color:var(--accent)}.homebrew-score-mod{color:var(--text-secondary);min-height:14px;font-size:10px}.homebrew-entries-section{flex-direction:column;gap:4px;display:flex}.homebrew-section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);font-size:10px;font-weight:700}.homebrew-entry{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);flex-direction:column;gap:3px;padding:6px 8px;display:flex}.homebrew-entry-top{align-items:center;gap:4px;display:flex}.homebrew-entry-name{border:none;border-bottom:1px solid var(--border-subtle);color:var(--text-primary);background:0 0;flex:1;padding:2px 0;font-size:12px;font-weight:600}.homebrew-entry-name:focus{border-color:var(--accent);outline:none}.homebrew-entry-remove{color:var(--text-tertiary);cursor:pointer;transition:color var(--anim-fast);background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:16px;line-height:1}.homebrew-entry-remove:hover{color:var(--text-danger)}.homebrew-entry-desc{color:var(--text-secondary);resize:vertical;box-sizing:border-box;background:0 0;border:none;width:100%;padding:2px 0;font-family:inherit;font-size:11px;line-height:1.4}.homebrew-entry-desc:focus{outline:none}.homebrew-add-btn{border:1px dashed var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-tertiary);cursor:pointer;text-align:center;width:100%;transition:background var(--anim-fast), color var(--anim-fast);background:0 0;padding:4px 10px;font-size:11px}.homebrew-add-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.homebrew-resistances{flex-direction:column;gap:4px;display:flex}.game-msg-cursor{color:var(--text-tertiary);margin-left:1px;font-size:10px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.game-msg-typing{background:var(--bg-secondary);border-radius:var(--radius-md);gap:4px;padding:8px 12px;display:inline-flex}.game-msg-typing span{background:var(--text-tertiary);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite typing-bounce}.game-msg-typing span:nth-child(2){animation-delay:.2s}.game-msg-typing span:nth-child(3){animation-delay:.4s}@keyframes typing-bounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-5px)}}.game-panel-input-row{border-top:.5px solid var(--border-subtle);background:var(--bg-primary);flex-shrink:0;align-items:center;gap:8px;padding:10px 12px;display:flex}.game-panel-input{background:var(--bg-secondary);border:.5px solid var(--border-subtle);border-radius:var(--radius-pill);color:var(--text-primary);outline:none;flex:1;min-height:40px;padding:8px 14px;font-size:13px}.game-panel-input:focus{border-color:var(--accent)}.game-panel-input:disabled{opacity:.5}.game-panel-send{background:var(--accent);width:36px;height:36px;color:var(--text-on-accent);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:opacity .1s;display:flex}.game-panel-send:disabled{opacity:.4;cursor:not-allowed}.game-toasts{z-index:210;pointer-events:none;flex-direction:column-reverse;gap:8px;max-width:300px;display:flex;position:fixed;bottom:80px;right:48px}.game-toast{pointer-events:all;background:var(--bg-primary);border:.5px solid var(--border-medium);border-radius:var(--radius-md);cursor:pointer;box-shadow:0 4px 16px var(--border-subtle);align-items:flex-start;gap:8px;padding:10px 12px;display:flex}.game-toast:hover{background:var(--bg-secondary)}.game-toast-icon{color:var(--accent);flex-shrink:0;margin-top:1px;font-size:14px}.game-toast-text{color:var(--text-primary);flex:1;font-size:12px;line-height:1.4}.game-toast-close{width:20px;height:20px;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;display:flex}.game-toast-close:hover{background:var(--bg-tertiary);color:var(--text-secondary)}.game-toast-enter{transition:transform .2s,opacity .2s}.game-toast-enter-start{opacity:0;transform:translate(30px)}.game-toast-enter-end{opacity:1;transform:translate(0)}.form-group{flex-direction:column;gap:6px;display:flex}.form-label{color:var(--text-secondary);font-size:12px;font-weight:500}.form-input{background:var(--bg-secondary);border:.5px solid var(--border-medium);border-radius:var(--radius-md);color:var(--text-primary);outline:none;width:100%;min-height:44px;padding:9px 12px;font-size:14px}.form-input:focus{border-color:var(--accent);background:var(--bg-primary)}.form-input-sm{min-height:36px;padding:5px 10px;font-size:13px}.form-error{color:var(--text-danger);font-size:12px}.form-hint{color:var(--text-tertiary);font-size:11px}.color-picker{gap:8px;display:flex}.color-swatch{border-radius:var(--radius-md);cursor:pointer;border:2px solid #0000;justify-content:center;align-items:center;width:36px;height:36px;font-size:11px;font-weight:600;display:flex}.color-swatch-teal{background:var(--avatar-teal-bg);color:var(--avatar-teal-text)}.color-swatch-purple{background:var(--avatar-purple-bg);color:var(--avatar-purple-text)}.color-swatch-coral{background:var(--avatar-coral-bg);color:var(--avatar-coral-text)}.color-swatch-amber{background:var(--avatar-amber-bg);color:var(--avatar-amber-text)}.color-swatch-selected{border-color:var(--accent)}.roster-row{border-bottom:.5px solid var(--border-subtle);align-items:center;gap:12px;min-height:56px;padding:12px 16px;display:flex}.roster-row-name{flex:1;font-size:14px;font-weight:500}.roster-row-meta{color:var(--text-secondary);font-size:12px}.empty-state{text-align:center;color:var(--text-tertiary);padding:48px 24px}.empty-state-title{color:var(--text-secondary);margin-bottom:6px;font-size:15px;font-weight:500}.empty-state-body{font-size:13px;line-height:1.5}.session-card{border-bottom:.5px solid var(--border-subtle);color:inherit;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:12px;min-height:60px;padding:14px 16px;display:flex}.session-card:hover{background:var(--bg-secondary)}.session-card:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.session-card-title-row{align-items:center;gap:6px;display:flex}.session-card-title{font-size:14px;font-weight:500}.session-card-title-input{color:var(--text-primary);background:var(--bg-secondary);border:1px solid var(--accent);border-radius:var(--radius-sm);outline:none;width:100%;min-width:0;max-width:300px;padding:1px 6px;font-size:14px;font-weight:500}.session-card-meta{color:var(--text-secondary);margin-top:2px;font-size:12px}.topbar-title-row{align-items:center;gap:6px;display:flex}.topbar-title-input{background:var(--bg-secondary);border:1px solid var(--accent);border-radius:var(--radius-sm);outline:none;width:auto;min-width:120px;padding:1px 6px}.title-edit-btn{width:26px;height:26px;color:var(--text-tertiary);border-radius:var(--radius-sm);cursor:pointer;opacity:0;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:opacity .1s;display:inline-flex}.session-card:hover .title-edit-btn,.session-card:focus-within .title-edit-btn,.topbar-title-row:hover .title-edit-btn,.topbar-title-row:focus-within .title-edit-btn{opacity:1}.title-edit-btn:hover{background:var(--bg-tertiary);color:var(--text-secondary)}.status-badge{border-radius:var(--radius-pill);padding:2px 8px;font-size:11px}.status-badge-active{background:var(--bg-info);color:var(--text-info)}.status-badge-setup{background:var(--bg-secondary);color:var(--text-secondary)}.status-badge-ended{background:var(--bg-tertiary);color:var(--text-tertiary)}.setup-player-row{border-bottom:.5px solid var(--border-subtle);cursor:pointer;align-items:center;gap:10px;min-height:56px;padding:11px 14px;display:flex}.setup-player-row-selected{background:var(--bg-info)}.setup-player-row-removing{background:var(--bg-danger)}.setup-check{border:1.5px solid var(--border-medium);color:#0000;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:13px;display:flex}.setup-check-on{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.init-input{text-align:center;border-radius:var(--radius-md);border:.5px solid var(--border-medium);background:var(--bg-secondary);width:52px;height:36px;color:var(--text-primary);outline:none;font-size:15px;font-weight:500}.init-input:focus{border-color:var(--accent);background:var(--bg-primary)}.init-input-filled{background:var(--bg-primary);border-color:var(--accent);color:var(--text-info)}.init-placeholder{border-radius:var(--radius-md);border:.5px dashed var(--border-subtle);width:52px;height:36px;color:var(--text-tertiary);flex-shrink:0;justify-content:center;align-items:center;font-size:11px;display:flex}.rolled-badge{color:var(--text-info);background:var(--bg-info);border-radius:var(--radius-md);white-space:nowrap;text-align:center;min-width:52px;padding:3px 8px;font-size:12px;font-weight:500}.setup-enemy-row{border-bottom:.5px solid var(--border-subtle);align-items:center;gap:10px;min-height:56px;padding:11px 14px;display:flex}.setup-enemy-info{flex:1;min-width:0}.setup-enemy-name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.setup-enemy-meta{color:var(--text-secondary);margin-top:1px;font-size:11px}.search-section{border-bottom:.5px solid var(--border-subtle);padding:10px 14px;position:relative}.search-input-row{align-items:center;gap:8px;display:flex}.search-results{background:var(--bg-primary);border:.5px solid var(--border-medium);border-radius:var(--radius-md);z-index:10;box-shadow:0 4px 16px var(--border-subtle);position:absolute;top:calc(100% - 4px);left:14px;right:14px;overflow:hidden}.search-result-item{border-bottom:.5px solid var(--border-subtle);cursor:pointer;justify-content:space-between;align-items:center;min-height:44px;padding:10px 14px;display:flex}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background:var(--bg-secondary)}.search-result-name{font-size:13px;font-weight:500}.search-result-cr{color:var(--text-secondary);font-size:12px}.search-empty{color:var(--text-tertiary);padding:12px 14px;font-size:13px}.chips-row{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.combatant-list{flex:1;overflow-y:auto}.combatant-body{flex:1;min-width:0}.combatant-hp-row{align-items:center;gap:6px;margin-top:3px;display:flex}.combatant-conditions{flex-wrap:wrap;gap:4px;margin-top:3px;display:flex}.combatant-cond-pill{border-radius:var(--radius-sm);background:var(--bg-warning);color:var(--text-warning);padding:1px 5px;font-size:10px}.detail-content-pane{flex-direction:column;flex:1;display:flex;overflow:hidden}@keyframes detail-panel-slide-up{0%{opacity:0;transform:translateY(var(--detail-slide-dist))}to{opacity:1;transform:translateY(0)}}@keyframes detail-panel-slide-down{0%{opacity:0;transform:translateY(calc(var(--detail-slide-dist) * -1))}to{opacity:1;transform:translateY(0)}}.detail-panel-animate-up{animation:detail-panel-slide-up var(--anim-base) var(--ease-out)}.detail-panel-animate-down{animation:detail-panel-slide-down var(--anim-base) var(--ease-out)}.detail-header{border-bottom:.5px solid var(--border-subtle);background-image:linear-gradient(160deg, var(--bg-secondary) 0%, var(--bg-primary) 100%), url(/images/ocean-texture.jpg);background-blend-mode:hard-light, normal;background-repeat:no-repeat,no-repeat;background-size:cover,cover;flex-shrink:0;align-items:flex-start;gap:12px;padding:14px 16px;display:flex;box-shadow:0 4px 16px #00000059}.detail-portrait{border-radius:var(--radius-md);background:var(--bg-secondary);border:.5px solid var(--border-subtle);flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;font-size:32px;display:flex}.detail-portrait-player{font-size:18px;font-weight:600}.detail-info{flex:1;min-width:0}.detail-name{white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:600;line-height:1.2;overflow:hidden}.detail-sub{color:var(--text-secondary);margin-top:2px;margin-bottom:8px;font-size:12px}.hp-adjuster{align-items:center;gap:8px;display:flex}.hp-center{flex-direction:column;align-items:center;min-width:52px;display:flex}.hp-display{font-size:16px;font-weight:600;line-height:1}.hp-label{color:var(--text-tertiary);margin-top:2px;font-size:10px}.ac-block{background:var(--bg-secondary);border:.5px solid var(--border-subtle);border-radius:var(--radius-md);flex-direction:column;flex-shrink:0;align-items:center;min-width:52px;padding:8px 12px;display:flex}.ac-val{font-size:20px;font-weight:700;line-height:1}.ac-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-top:2px;font-size:10px}.detail-body{flex-direction:column;flex:1;gap:0;display:flex;overflow-y:auto}.detail-section{border-bottom:.5px solid var(--border-subtle);padding:12px 16px}.stats-row{gap:6px;display:flex}.conditions-row{flex-wrap:wrap;gap:6px;display:flex}.attacks-list{flex-direction:column;gap:6px;display:flex}.trait-text{color:var(--text-primary);font-size:13px;line-height:1.5}.trait-name{font-weight:500}.condition-cards{flex-direction:column;gap:6px;margin-top:8px;display:flex}.condition-card{background:var(--bg-secondary);border:.5px solid var(--border-subtle);border-radius:var(--radius-md);overflow:hidden}.condition-card-header{cursor:pointer;justify-content:space-between;align-items:center;gap:8px;min-height:36px;padding:7px 10px;display:flex}.condition-card-name{color:var(--text-primary);font-size:12px;font-weight:500}.condition-card-preview{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:12px;overflow:hidden}.condition-card-chevron{color:var(--text-tertiary);flex-shrink:0;font-size:14px;transition:transform .15s}.condition-card-chevron-open{transform:rotate(180deg)}.condition-card-body{border-top:.5px solid var(--border-subtle);padding:0 10px 9px}.condition-card-lines{flex-direction:column;gap:3px;padding-top:7px;display:flex}.condition-card-line{color:var(--text-secondary);padding-left:10px;font-size:12px;line-height:1.5;position:relative}.condition-card-line:before{content:"•";color:var(--text-tertiary);position:absolute;left:0}.ref-overlay{z-index:200;background:#00000073;position:fixed;inset:0}.ref-drawer{background:var(--bg-primary);border-radius:var(--radius-lg) var(--radius-lg) 0 0;z-index:201;flex-direction:column;height:70vh;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 32px #0000002e}.ref-search-bar{border-bottom:.5px solid var(--border-subtle);flex-shrink:0;align-items:center;gap:10px;padding:14px 16px 12px;display:flex}.ref-search-icon{color:var(--text-tertiary);flex-shrink:0;font-size:18px}.ref-search-input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;min-width:0;font-size:16px}.ref-search-input::placeholder{color:var(--text-tertiary)}.ref-close-btn{cursor:pointer;color:var(--text-tertiary);border-radius:var(--radius-sm);background:0 0;border:none;padding:4px 6px;font-size:20px;line-height:1}.ref-body{-webkit-overflow-scrolling:touch;flex:1;overflow-y:auto}.ref-section-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);padding:12px 16px 4px;font-size:11px;font-weight:600}.ref-result-row{border-bottom:.5px solid var(--border-subtle);cursor:pointer;align-items:center;gap:10px;min-height:52px;padding:11px 16px;display:flex}.ref-result-row:active{background:var(--bg-secondary)}.ref-result-name{color:var(--text-primary);font-size:15px;font-weight:500;line-height:1.3}.ref-result-sub{color:var(--text-tertiary);margin-top:1px;font-size:12px}.ref-result-chevron{color:var(--text-tertiary);flex-shrink:0;margin-left:auto;font-size:14px}.ref-empty{text-align:center;color:var(--text-tertiary);padding:40px 16px;font-size:14px}.ref-loading{color:var(--text-tertiary);justify-content:center;align-items:center;gap:8px;padding:40px 16px;font-size:14px;display:flex}.ref-detail-header{border-bottom:.5px solid var(--border-subtle);padding:16px 16px 12px}.ref-back-btn{color:var(--text-info);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0 0 8px;font-size:13px;display:inline-flex}.ref-detail-name{color:var(--text-primary);font-size:20px;font-weight:600;line-height:1.25}.ref-detail-sub{color:var(--text-secondary);margin-top:3px;font-size:13px}.ref-meta-row{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.ref-meta-chip{background:var(--bg-secondary);border:.5px solid var(--border-subtle);border-radius:var(--radius-pill);color:var(--text-secondary);align-items:center;gap:4px;padding:3px 9px;font-size:12px;display:inline-flex}.ref-meta-chip-accent{background:var(--bg-info);border-color:var(--border-info);color:var(--text-info)}.ref-component-row{flex-wrap:wrap;align-items:flex-start;gap:6px;margin-top:8px;display:flex}.ref-component-badge{background:var(--bg-tertiary);border-radius:var(--radius-sm);width:24px;height:24px;color:var(--text-secondary);flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:inline-flex}.ref-material-text{color:var(--text-tertiary);padding-top:3px;font-size:12px;font-style:italic;line-height:1.4}.ref-detail-body{flex-direction:column;gap:12px;padding:14px 16px 24px;display:flex}.ref-desc-para{color:var(--text-secondary);font-size:14px;line-height:1.65}.ref-higher-level{background:var(--bg-secondary);border-radius:var(--radius-md);border-left:3px solid var(--accent);padding:10px 12px}.ref-higher-level-label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-tertiary);margin-bottom:4px;font-size:11px;font-weight:600}.ref-higher-level-text{color:var(--text-secondary);font-size:13px;line-height:1.5}.detail-name-row{align-items:center;gap:4px;display:flex}.detail-name-input{border:none;border-bottom:1.5px solid var(--accent);min-width:0;line-height:inherit;font:inherit;color:inherit;background:0 0;outline:none;flex:1;padding:0}.detail-descriptor-row{min-height:20px;margin-top:2px}.detail-descriptor-text{color:var(--text-secondary);cursor:text;font-size:12px;font-style:italic}.detail-descriptor-input{width:100%;color:var(--text-secondary);border:none;border-bottom:1px solid var(--border-medium);background:0 0;outline:none;padding:0;font-size:12px;font-style:italic}.detail-add-link{color:var(--text-tertiary);cursor:pointer;letter-spacing:.01em;background:0 0;border:none;padding:0;font-size:11px}.detail-add-link:hover{color:var(--text-secondary)}.field-edit-btn{color:var(--text-tertiary);cursor:pointer;opacity:0;background:0 0;border:none;padding:2px 4px;font-size:13px;line-height:1;transition:opacity .15s}.field-edit-btn-sm{font-size:11px}.detail-name-row:hover .field-edit-btn,.detail-name-row:focus-within .field-edit-btn,.detail-descriptor-row:hover .field-edit-btn,.detail-descriptor-row:focus-within .field-edit-btn{opacity:1}.stat-overridden{color:var(--accent);text-underline-offset:2px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.hp-max-input{border:none;border-bottom:1.5px solid var(--accent);width:52px;font:inherit;color:inherit;text-align:center;-moz-appearance:textfield;background:0 0;outline:none}.hp-max-input::-webkit-outer-spin-button{-webkit-appearance:none}.hp-max-input::-webkit-inner-spin-button{-webkit-appearance:none}.ac-edit-input{border:none;border-bottom:1.5px solid var(--accent);width:44px;color:inherit;text-align:center;-moz-appearance:textfield;background:0 0;outline:none;font-size:22px;font-weight:700}.ac-edit-input::-webkit-outer-spin-button{-webkit-appearance:none}.ac-edit-input::-webkit-inner-spin-button{-webkit-appearance:none}.form-body{flex-direction:column;gap:16px;max-width:680px;margin:0 auto;padding:20px 16px 40px;display:flex}.form-row{align-items:flex-start;gap:12px;display:flex}.form-group{flex-direction:column;flex:1;gap:4px;display:flex}.form-label{color:var(--text-secondary);letter-spacing:.02em;font-size:12px;font-weight:500}.form-hint{color:var(--text-tertiary);font-size:11px;font-weight:400}.form-input{background:var(--bg-secondary);border:.5px solid var(--border-medium);border-radius:var(--radius-md);color:var(--text-primary);outline:none;padding:8px 10px;font-family:inherit;font-size:14px}.form-input:focus{border-color:var(--accent)}.form-select{cursor:pointer}.form-textarea{resize:vertical;min-height:80px;font-size:13px;line-height:1.5}.form-error{color:var(--text-danger);margin-top:2px;font-size:11px}.form-section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);margin-bottom:-8px;font-size:11px;font-weight:600}.ability-scores-row{grid-template-columns:repeat(6,1fr);gap:8px;display:grid}.ability-score-group{text-align:center;align-items:center}.ability-score-input{text-align:center;-moz-appearance:textfield;padding:6px 4px}.ability-score-input::-webkit-outer-spin-button{-webkit-appearance:none}.ability-score-input::-webkit-inner-spin-button{-webkit-appearance:none}.ability-mod-preview{color:var(--text-tertiary);text-align:center;height:16px;font-size:11px}.alert-success{border-radius:var(--radius-md);background:var(--bg-secondary);border-left:3px solid var(--accent);color:var(--text-secondary);padding:10px 14px;font-size:13px}.setup-enemy-label-row{gap:6px;margin-top:5px;display:flex}.setup-label-input{background:var(--bg-secondary);border:.5px solid var(--border-light);border-radius:var(--radius-sm);min-width:0;color:var(--text-primary);outline:none;flex:1;padding:4px 8px;font-family:inherit;font-size:12px}.setup-label-input:focus{border-color:var(--accent)}.setup-label-input::placeholder{color:var(--text-tertiary)}.splatter-overlay{pointer-events:none;z-index:9999;width:100vw;height:100vh;position:fixed;top:0;left:0}@keyframes splat-fly{0%{opacity:0;transform:translate(var(--ox), var(--oy)) scale(.06) rotate(0deg)}4%{opacity:1}9%{opacity:1;transform:translate(0, 0) scale(1.18) rotate(var(--rot))}15%{opacity:.96;transform:translate(0, 0) scale(.95) rotate(var(--rot))}21%{opacity:.93;transform:translate(0, 0) scale(1) rotate(var(--rot))}to{opacity:0;transform:translate(0, var(--fall)) scale(.84) rotate(var(--rot))}}@keyframes streak-appear{0%{opacity:0}5%{opacity:.9}25%{opacity:.55}to{opacity:0}}
