*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f1117;--surface: #1a1d2e;--surface2: #252840;--border: #2e3354;--gold: #c9a84c;--gold-dim: #7a6230;--text: #e2e2e8;--text-dim: #8b8fa8;--player: #4a9eff;--enemy: #e74c3c;--ally: #2ecc71;--red: #e74c3c;--green: #2ecc71;--yellow: #f39c12;--radius: 6px}body{background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,sans-serif;font-size:14px;height:100vh;overflow:hidden}#root{height:100vh;display:flex;flex-direction:column}input,textarea,select{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:4px 8px;font-size:13px;font-family:inherit;width:100%;outline:none;transition:border-color .15s}input:focus,textarea:focus{border-color:var(--gold)}input[type=checkbox]{width:auto}input[type=number]{text-align:center}button{cursor:pointer;font-family:inherit;transition:all .15s}h2{font-size:18px;color:var(--gold)}h3{font-size:13px;color:var(--gold-dim);text-transform:uppercase;letter-spacing:.05em;margin:16px 0 8px;border-bottom:1px solid var(--border);padding-bottom:4px}.tab{background:none;border:none;color:var(--text-dim);padding:6px 14px;border-radius:var(--radius);font-size:13px}.tab:hover{color:var(--text);background:var(--surface2)}.tab.active{color:var(--gold);background:var(--surface2);font-weight:600}.tab-bar{display:flex;gap:4px;margin-bottom:16px}.btn-primary{width:100%;padding:10px;background:var(--gold);color:#111;border:none;border-radius:var(--radius);font-size:15px;font-weight:600;margin-top:8px}.btn-primary:hover{background:#e0b84e}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-small{background:var(--surface2);border:1px solid var(--border);color:var(--text-dim);border-radius:var(--radius);padding:4px 10px;font-size:12px;margin-top:8px}.btn-small:hover{color:var(--text);border-color:var(--gold-dim)}.btn-save{background:var(--surface2);border:1px solid var(--border);color:var(--text-dim);border-radius:var(--radius);padding:5px 14px;font-size:13px}.btn-save-dirty{border-color:var(--gold);color:var(--gold)}.btn-ponder{background:#5a82c4;border:1px solid #5a82c4;color:#fff;font-weight:600}.btn-ponder:hover{background:#6e96d8;border-color:#6e96d8}.btn-save-dirty:hover{background:var(--gold);color:#111}.disconnect-banner{position:fixed;top:0;left:0;right:0;z-index:100;background:#7a3030;color:#ffd;text-align:center;padding:6px;font-size:13px;font-weight:600}.lobby{flex:1;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#1a1d2e,#0f1117 70%)}.lobby-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:40px;width:420px;box-shadow:0 20px 60px #00000080}.lobby-title{text-align:center;margin-bottom:28px}.lobby-tome{font-size:40px;display:block;margin-bottom:8px}.lobby-title h1{font-size:28px;color:var(--gold);letter-spacing:.04em}.lobby-subtitle{color:#5a82c4;font-size:13px;margin-top:4px;font-style:italic}.auth-loading{height:100vh;display:flex;align-items:center;justify-content:center;font-size:60px;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.login-prompt{font-size:13px;color:var(--text-dim);text-align:center;margin-bottom:4px}.btn-google{display:flex;align-items:center;justify-content:center;gap:10px;padding:10px 20px;border-radius:6px;border:1px solid var(--border);background:#fff;color:#3c4043;font-size:14px;font-weight:500;text-decoration:none;cursor:pointer;transition:box-shadow .15s}.btn-google:hover{box-shadow:0 2px 8px #0000004d}.google-icon{width:20px;height:20px;flex-shrink:0}.lobby-user-bar{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:#ffffff0a;border-radius:6px;margin-bottom:8px}.lobby-user-name{font-size:12px;color:var(--text-dim)}.lobby-logout-btn{font-size:11px;color:var(--text-dim);background:none;border:none;cursor:pointer;padding:2px 6px;border-radius:4px}.lobby-logout-btn:hover{color:var(--text);background:#ffffff14}.lobby-form{display:flex;flex-direction:column;gap:8px}.lobby-form label{font-size:12px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em}.lobby-form input{padding:8px 12px;font-size:14px}.code-input{text-transform:uppercase;letter-spacing:.2em;text-align:center;font-size:18px}.error{color:var(--red);font-size:13px}.lobby-entry-btns{display:flex;gap:10px;margin-top:4px}.lobby-entry-btns .btn-primary,.lobby-entry-btns .btn-save,.lobby-entry-btns .btn-ponder{flex:1;font-size:15px;padding:12px;margin-top:0;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px}.lobby-section-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-weight:600;margin:0 0 4px}.lobby-back-link{background:none;border:none;color:var(--text-dim);font-size:13px;cursor:pointer;text-align:left;padding:0;margin-top:0;line-height:1}.lobby-back-link:hover{color:var(--gold)}.lobby-back-spacer{height:13px;flex-shrink:0}.campaign-list{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.campaign-item-row{display:flex;gap:6px;align-items:stretch}.campaign-item{display:flex;flex-direction:column;gap:3px;padding:10px 14px;background:var(--surface2);border:1px solid var(--border);border-radius:6px;cursor:pointer;text-align:left;transition:all .15s;flex:1}.campaign-item:hover:not(:disabled){border-color:var(--gold-dim);background:#c9a84c0f}.ci-name{font-size:14px;font-weight:600;color:var(--text)}.ci-meta{font-size:12px;color:var(--text-dim)}.ci-code{font-size:11px;color:var(--gold-dim);letter-spacing:.1em;font-family:monospace}.campaign-delete-btn{background:var(--surface2);border:1px solid var(--border);border-radius:6px;color:var(--text-dim);font-size:15px;padding:0 10px;cursor:pointer;transition:all .15s;flex-shrink:0}.campaign-delete-btn:hover:not(:disabled){border-color:var(--red);color:var(--red);background:#e74c3c14}.delete-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0009;display:flex;align-items:center;justify-content:center}.delete-modal{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:28px 32px;max-width:420px;width:90%;display:flex;flex-direction:column;gap:12px}.delete-modal h3{color:var(--red);margin:0;font-size:18px}.delete-modal p{color:var(--text-dim);font-size:13px;margin:0;line-height:1.5}.delete-modal-prompt{color:var(--text)!important}.delete-modal-input{padding:8px 12px;border-radius:6px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font-size:14px;letter-spacing:.05em;width:100%;box-sizing:border-box}.delete-modal-btns{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}.btn-danger{background:var(--red);color:#fff;border:none;border-radius:var(--radius);padding:8px 18px;font-size:13px;cursor:pointer;transition:opacity .15s}.btn-danger:disabled{opacity:.4;cursor:not-allowed}.label-optional{font-size:11px;color:var(--text-dim);font-style:italic;text-transform:none;letter-spacing:0}.lobby-select{background:var(--surface2);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:14px;padding:8px 12px}.lobby-select.placeholder{color:var(--text-dim)}.ap-list{display:flex;flex-direction:column;gap:3px;max-height:260px;overflow-y:auto;border:1px solid var(--border);border-radius:6px;padding:4px;background:var(--surface2)}.ap-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 10px;border-radius:4px;border:1px solid transparent;background:transparent;color:var(--text);font-size:13px;text-align:left;cursor:pointer;transition:background .12s,border-color .12s}.ap-item:not(.ap-locked):hover{background:var(--surface);border-color:var(--border)}.ap-item.ap-selected{background:#c9a84c1f;border-color:var(--gold-dim);color:var(--gold)}.ap-item.ap-locked{color:var(--text-dim);cursor:not-allowed;opacity:.45}.ap-name{flex:1}.ap-lock{font-size:11px;flex-shrink:0}.lobby-lookup{font-size:12px;color:var(--text-dim);font-style:italic}.point-buy-options{display:flex;flex-direction:column;gap:5px;margin-top:2px}.point-buy-option{display:flex;flex-direction:column;gap:2px;padding:9px 12px;background:var(--surface2);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:all .15s}.point-buy-option:hover{border-color:var(--gold-dim)}.point-buy-option.selected{background:#c9a84c1a;border-color:var(--gold)}.pb-top{display:flex;justify-content:space-between;align-items:center}.pb-label{font-size:13px;font-weight:600;color:var(--text)}.pb-value{font-size:12px;color:var(--gold);font-weight:600}.pb-desc{font-size:11px;color:var(--text-dim)}.campaign-preview{background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:10px 14px;display:flex;flex-direction:column;gap:5px}.cp-row{display:flex;justify-content:space-between;align-items:baseline;font-size:13px;gap:12px}.cp-row span{color:var(--text-dim);font-size:12px}.cp-row strong{color:var(--text)}.sandbox-room{display:flex;flex-direction:column;height:100vh;background:var(--bg);position:relative}.sandbox-header{display:flex;align-items:center;gap:16px;padding:0 16px;height:48px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.sandbox-exit-btn{background:none;border:1px solid var(--gold-dim);color:var(--gold);font-size:13px;cursor:pointer;padding:5px 14px;border-radius:4px;white-space:nowrap;flex-shrink:0;transition:background .15s,border-color .15s,color .15s}.sandbox-exit-btn:hover{background:#c9a84c1a;border-color:var(--gold)}.arena-room-code{font-size:12px;font-weight:600;color:var(--text-dim);letter-spacing:.08em;padding:4px 8px;border:1px solid var(--border);border-radius:var(--radius);white-space:nowrap}.arena-combat-log{position:absolute;bottom:50px;right:120px;z-index:20;width:500px;max-height:340px;display:flex;flex-direction:column;background:#0e111ce6;border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:auto}.arena-combat-log-header{display:flex;align-items:center;justify-content:space-between;font-size:10px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;padding:3px 6px 3px 20px;border-bottom:1px solid var(--border);flex-shrink:0}.acl-resize-handle{position:absolute;z-index:2}.acl-resize-corner{top:0;left:0;width:18px;height:18px;cursor:nw-resize}.acl-resize-left{top:18px;left:0;width:6px;bottom:0;cursor:w-resize}.acl-resize-top{top:0;left:18px;right:0;height:6px;cursor:n-resize}.arena-combat-log-entries{overflow-y:auto;flex:1;padding:5px 8px;display:flex;flex-direction:column;gap:3px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}.arena-combat-log-entries::-webkit-scrollbar{width:6px}.arena-combat-log-entries::-webkit-scrollbar-track{background:transparent}.arena-combat-log-entries::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px;border:1px solid transparent;background-clip:padding-box}.arena-combat-log-entries::-webkit-scrollbar-thumb:hover{background:#ffffff47;border:1px solid transparent;background-clip:padding-box}.acl-empty{font-size:11px;color:var(--text-dim);font-style:italic}.acl-entry{font-size:11px;color:var(--text);line-height:1.4;padding:2px 0;border-bottom:1px solid rgba(255,255,255,.04)}.acl-entry--attack{color:#e8d5a0}.acl-entry--move{color:var(--text-dim)}.acl-entry--defeat{color:#c0504d;font-weight:600}.acl-entry--combat_end{color:var(--gold);font-weight:600}.acl-entry--turn_start,.acl-entry--end_turn{color:var(--text-dim);font-style:italic}.arena-roster{position:absolute;top:12px;left:12px;z-index:20;min-width:170px;max-width:220px;background:#0e111ce6;border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.arena-roster-header{font-size:11px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}.arena-roster-list{list-style:none;display:flex;flex-direction:column;gap:5px}.arena-roster-entry{display:flex;align-items:center;gap:7px}.arena-roster-dot{width:7px;height:7px;border-radius:50%;background:var(--green);flex-shrink:0}.arena-roster-text{display:flex;flex-direction:column;gap:1px;overflow:hidden}.arena-roster-player{font-size:12px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.arena-roster-me .arena-roster-player{color:var(--gold)}.arena-enemy-roster{left:auto;right:12px}.arena-enemy-name{color:#c0504d}.arena-right-group{position:absolute;top:12px;right:12px;z-index:20;display:flex;flex-direction:row;align-items:flex-start;gap:8px}.arena-right-group .arena-roster{position:static;top:auto;left:auto;right:auto}.arena-right-group .initiative-tracker{position:static;top:auto;right:auto}.arena-roster-char{font-size:10px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.arena-enter-btn{background:#d4af371f;border:1px solid var(--gold-dim);color:var(--gold);font-size:13px;font-weight:600;padding:5px 14px;border-radius:6px;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s}.arena-enter-btn:hover:not(:disabled){background:#d4af3738;border-color:var(--gold)}.arena-enter-btn--disabled,.arena-enter-btn:disabled{opacity:.35;cursor:not-allowed}.arena-combat{display:flex;flex-direction:column;height:100vh;background:var(--bg)}.sandbox-header-right{margin-left:auto;flex-shrink:0}.arena-combat-body{flex:1;display:flex;flex-direction:column;overflow:hidden}.arena-combat-map-area{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.arena-combat-ended-banner{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:25;padding:8px 20px;background:#c9a84c26;border:1px solid var(--gold-dim);border-radius:var(--radius);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--gold);font-size:13px;font-weight:600;text-align:center;white-space:nowrap;pointer-events:none}.sandbox-tabs{display:flex;gap:4px;flex:1;justify-content:center}.sandbox-tab{background:none;border:none;color:var(--text-dim);font-size:13px;padding:6px 14px;border-radius:6px;cursor:pointer;transition:background .15s,color .15s}.sandbox-tab:hover{color:var(--text);background:#ffffff0d}.sandbox-tab.active{color:var(--gold);background:#d4af371a}.sandbox-header-left{flex-shrink:0;width:70px}.sandbox-content{flex:1;overflow:hidden;display:flex;flex-direction:column;position:relative}.sandbox-data-loading,.sandbox-coming-soon{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-dim);font-size:14px}.game-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:8px 16px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.header-left{display:flex;align-items:center;gap:16px}.header-center{display:flex;gap:4px;justify-content:center}.header-right{display:flex;align-items:center;gap:10px;justify-content:flex-end}.logo-small{color:var(--gold);font-weight:700;font-size:15px}.campaign-name{color:var(--text);font-size:13px;font-weight:600;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:default}.room-code{color:var(--text-dim);font-size:12px}.room-code strong{color:var(--text-dim);letter-spacing:.1em;font-size:11px}.player-count{color:var(--text-dim);font-size:12px}.my-name{color:var(--player);font-weight:600;font-size:13px}.campaign-room{display:flex;flex-direction:column;height:100vh}.force-char-builder-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;flex-direction:column;background:var(--bg);overflow:hidden}.game-body{display:flex;flex:1;overflow:hidden}.left-col{flex:1;display:flex;flex-direction:column;overflow:hidden;border-right:1px solid var(--border)}.right-col{width:380px;flex-shrink:0;display:flex;flex-direction:column;transition:width .2s;overflow:hidden}.right-col:has(.chat-collapsed){width:36px}.right-col:has(.chat-collapsed) .player-roster{display:none}.map-area,.shop-panel{flex:1;display:flex;flex-direction:column;overflow:hidden}.map-with-overlay{flex:1;display:flex;flex-direction:column;position:relative;overflow:hidden}.map-view-toggle-btn{padding:3px 12px;background:#141824d9;border:1px solid var(--gold-dim);color:var(--gold);font-size:11px;font-weight:700;border-radius:4px;cursor:pointer;letter-spacing:.05em;white-space:nowrap}.map-view-toggle-btn:hover{background:#c9a84c26}.map-3d-float-btns{position:absolute;bottom:10px;left:50%;transform:translate(-50%);z-index:30;display:flex;gap:8px;align-items:center}.map-3d-dm-btn{padding:4px 10px;background:#141824d9;border:1px solid var(--border);color:var(--text-dim);font-size:11px;border-radius:4px;cursor:pointer}.map-3d-dm-btn:hover{border-color:var(--gold-dim);color:var(--gold)}.token-art-panel{position:absolute;top:12px;left:190px;z-index:30;width:240px;background:var(--panel);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 20px #0009}.token-art-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--border)}.token-art-title{font-size:13px;font-weight:600;color:var(--gold)}.token-art-close{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:14px;padding:0;line-height:1}.token-art-list{padding:8px;display:flex;flex-direction:column;gap:6px;max-height:360px;overflow-y:auto}.token-art-row{display:flex;align-items:center;gap:6px}.token-art-preview{width:32px;height:32px;border-radius:50%;object-fit:cover;border:1px solid var(--border);flex-shrink:0}.token-art-name{flex:1;font-size:12px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.token-art-pick-btn{padding:3px 8px;background:#c9a84c1f;border:1px solid var(--gold-dim);color:var(--gold);font-size:11px;border-radius:3px;cursor:pointer;white-space:nowrap}.token-art-clear-btn{padding:3px 8px;background:#e74c3c1f;border:1px solid rgba(231,76,60,.4);color:#e74c3c;font-size:11px;border-radius:3px;cursor:pointer}.token-art-empty{font-size:12px;color:var(--text-dim);text-align:center;padding:12px}.flight-control-panel{position:absolute;bottom:38px;left:8px;z-index:30;width:300px;background:var(--panel);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 20px #0009;padding:12px}.flight-ctrl-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.flight-ctrl-title{font-size:13px;font-weight:600;color:var(--gold)}.flight-ctrl-close{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:14px;padding:0}.flight-ctrl-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}.flight-ctrl-label{font-size:12px;color:var(--text-dim);min-width:110px}.flight-ctrl-input{width:70px;padding:3px 6px;background:var(--input-bg, #1a1f2e);border:1px solid var(--border);color:var(--text);font-size:12px;border-radius:3px}.flight-ctrl-select{flex:1;padding:3px 6px;background:var(--input-bg, #1a1f2e);border:1px solid var(--border);color:var(--text);font-size:12px;border-radius:3px}.flight-ctrl-actions{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.flight-ctrl-btn{padding:4px 10px;font-size:12px;border-radius:4px;cursor:pointer;border:1px solid}.flight-ctrl-apply{background:#4a9aff26;border-color:#4a9aff80;color:#4a9eff}.flight-ctrl-hover{background:#c9a84c1f;border-color:var(--gold-dim);color:var(--gold)}.flight-ctrl-land{background:#2ecc711f;border-color:#2ecc7166;color:#2ecc71}.fly-check-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:200;display:flex;align-items:center;justify-content:center}.fly-check-dialog{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:20px;width:320px;box-shadow:0 8px 32px #000000b3}.fly-check-title{font-size:15px;font-weight:700;color:var(--gold);margin:0 0 6px}.fly-check-reason{font-size:12px;color:var(--text-dim);margin:0 0 12px}.fly-check-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:13px}.fly-check-label{color:var(--text-dim);min-width:90px}.fly-check-value{color:var(--text);font-weight:600}.fly-check-input-row{display:flex;align-items:center;gap:8px;margin-top:12px}.fly-check-input{width:60px;padding:4px 8px;background:var(--input-bg, #1a1f2e);border:1px solid var(--border);color:var(--text);font-size:13px;border-radius:3px}.fly-check-submit-btn{padding:4px 14px;background:#4a9aff26;border:1px solid rgba(74,154,255,.5);color:#4a9eff;font-size:12px;border-radius:4px;cursor:pointer}.fly-check-result{margin-top:12px;padding:8px 12px;border-radius:4px;font-size:13px}.fly-check-pass{background:#2ecc7126;border:1px solid rgba(46,204,113,.35);color:#2ecc71}.fly-check-fail{background:#e74c3c26;border:1px solid rgba(231,76,60,.35);color:#e74c3c}.fly-check-consequence{font-size:11px;margin-top:4px;opacity:.8}.fly-check-close-btn{margin-top:14px;width:100%;padding:6px;background:none;border:1px solid var(--border);color:var(--text-dim);font-size:12px;border-radius:4px;cursor:pointer}.debug-panel{flex-shrink:0;border-bottom:1px solid rgba(255,80,80,.25);background:#ff28280d}.debug-panel-toggle{width:100%;display:flex;align-items:center;gap:8px;padding:5px 12px;background:none;border:none;cursor:pointer;color:var(--text-dim);font-size:12px;text-align:left}.debug-panel-toggle:hover{background:#ff282814}.debug-badge{background:#ff3c3c40;color:#ff8080;border:1px solid rgba(255,60,60,.4);border-radius:3px;font-size:10px;font-weight:700;letter-spacing:.08em;padding:1px 6px}.debug-panel-body{display:flex;gap:8px;padding:8px 12px;flex-wrap:wrap}.debug-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:6px 12px;background:#ff50501a;border:1px solid rgba(255,80,80,.3);color:#ff9090;border-radius:4px;cursor:pointer;font-size:12px;font-weight:600}.debug-btn:hover{background:#ff505033}.debug-btn-desc{font-size:10px;font-weight:400;color:var(--text-dim)}.combat-map-wrapper{flex:1;display:flex;flex-direction:column;overflow:hidden}.combat-map-scroll{flex:1;overflow:hidden;padding:12px;background:#0a0c14;display:flex;justify-content:center;align-items:center;-webkit-user-select:none;user-select:none}.combat-map-scroll:active{cursor:grabbing}.combat-map-scroll::-webkit-scrollbar{width:10px;height:10px}.combat-map-scroll::-webkit-scrollbar-track{background:transparent}.combat-map-scroll::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:5px;border:2px solid transparent;background-clip:padding-box}.combat-map-scroll::-webkit-scrollbar-thumb:hover{background:#ffffff47;border:2px solid transparent;background-clip:padding-box}.map-with-labels{display:flex;flex-direction:column}.map-col-headers{display:flex;flex-direction:row}.map-row-labels{display:flex;flex-direction:column;flex-shrink:0}.map-axis-label{display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;color:#c9a84c8c;flex-shrink:0;-webkit-user-select:none;user-select:none;font-family:monospace;letter-spacing:0}.map-col-label{height:20px}.map-row-label{width:26px}.combat-map{background-color:#1a1f2e;background-image:linear-gradient(rgba(201,168,76,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(201,168,76,.08) 1px,transparent 1px);background-size:48px 48px;border:1px solid var(--border);border-radius:4px;overflow:visible;cursor:default;-webkit-user-select:none;user-select:none}.grid-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.token{position:absolute;border-radius:50%;border:2px solid;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s,box-shadow .15s;flex-direction:column}.token:hover{transform:scale(1.1);box-shadow:0 0 8px #ffffff4d}.token-active{box-shadow:0 0 0 3px #ffe066,0 0 12px #ffe06680;animation:pulse-active 1.5s ease-in-out infinite}@keyframes pulse-active{0%,to{box-shadow:0 0 0 3px #ffe066,0 0 12px #ffe06680}50%{box-shadow:0 0 0 3px #ffe066,0 0 20px #ffe066cc}}.token-targetable{box-shadow:0 0 0 2px #f44,0 0 10px #ff444480;animation:pulse-target 1s ease-in-out infinite}@keyframes pulse-target{0%,to{box-shadow:0 0 0 2px #f44,0 0 10px #f446}50%{box-shadow:0 0 0 3px #f44,0 0 18px #f44c}}.token-initial{font-size:12px;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6);line-height:1}.token-label{position:absolute;top:calc(100% + 2px);left:50%;transform:translate(-50%);font-size:9px;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.9);background:#000000b8;padding:1px 5px;border-radius:3px;pointer-events:none;z-index:5;white-space:nowrap;line-height:1.3}.hp-bar-wrap{position:absolute;bottom:2px;left:4px;right:4px;height:3px;background:#00000080;border-radius:2px;overflow:hidden}.hp-bar-fill{height:100%;border-radius:2px;transition:width .3s}.condition-dot{position:absolute;top:2px;right:2px;width:7px;height:7px;background:#f39c12;border-radius:50%;border:1px solid rgba(0,0,0,.4)}.token-tooltip{position:absolute;background:var(--surface);border:1px solid var(--gold-dim);border-radius:var(--radius);padding:8px 12px;min-width:160px;display:flex;flex-direction:column;gap:3px;z-index:10;font-size:12px;box-shadow:0 4px 20px #00000080}.token-tooltip strong{color:var(--gold);font-size:13px}.tt-type{color:var(--text-dim)}.tt-pos{color:var(--text-dim);font-size:11px}@keyframes enemyTrailFade{0%{opacity:1}60%{opacity:.85}to{opacity:0}}.enemy-trail-svg{animation:enemyTrailFade 3s ease-in forwards}.map-legend{position:relative;display:flex;align-items:center;gap:16px;padding:6px 12px;background:var(--surface);border-top:1px solid var(--border);font-size:12px;color:var(--text-dim);flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:5px}.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.legend-dot.player{background:var(--player)}.legend-dot.enemy{background:var(--enemy)}.legend-dot.ally{background:var(--ally)}.legend-dot.object{background:#95a5a6}.legend-size{margin-left:auto;color:var(--text-dim)}.legend-center{position:absolute;left:50%;transform:translate(-50%)}.combat-action-bar{position:absolute;bottom:38px;left:50%;transform:translate(-50%);z-index:25;pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 14px 8px;background:#0a0c14f5;border:1px solid var(--gold-dim);border-radius:var(--radius);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);width:max-content;max-width:min(700px,calc(100vw - 32px))}.combat-action-bar--waiting{flex-direction:row;padding:7px 16px;border-color:var(--border)}.cab-waiting{color:var(--text-dim);font-size:13px}.cab-top-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cab-turn-banner{font-weight:700;font-size:14px;color:var(--gold);white-space:nowrap;flex-shrink:0}.cab-chips{display:flex;gap:5px;flex-wrap:wrap}.cab-chip{display:flex;align-items:center;gap:4px;padding:2px 7px;border-radius:10px;font-size:10px;font-weight:600;white-space:nowrap;border:1px solid transparent}.cab-chip--avail{background:#2ecc711f;border-color:#2ecc7166;color:#2ecc71}.cab-chip--used{background:#7f7f7f1a;border-color:#7f7f7f4d;color:var(--text-dim);text-decoration:line-through}.cab-chip--na{background:transparent;border-color:#7f7f7f26;color:#7f7f7f66}.cab-chip-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;background:currentColor}.cab-actions{display:flex;gap:8px;flex-wrap:wrap}.cab-btn{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,transform .1s;white-space:nowrap}.cab-btn:hover:not(:disabled){background:var(--surface-hover);border-color:var(--gold-dim)}.cab-btn:disabled{opacity:.38;cursor:not-allowed}.cab-btn.active{background:#ffa0002e;border-color:var(--gold)}.cab-btn--attack.active{background:#e74c3c38;border-color:#e74c3c;color:#ff6b6b}.cab-btn--move.active{background:#3498db38;border-color:#3498db;color:#74b9ff}.cab-btn--end{border-color:#2ecc71;color:#2ecc71}.cab-btn--end:hover:not(:disabled){background:#2ecc7126}.cab-btn--confirm{border-color:#3498db;color:#74b9ff}.cab-btn--confirm:hover:not(:disabled){background:#3498db2e}.cab-btn--undo{font-size:12px;padding:5px 10px}.cab-btn--cancel{font-size:12px;padding:5px 10px;color:var(--text-dim)}.cab-move-left{font-size:10px;color:var(--text-dim);line-height:1}.cab-mode-hint{position:absolute;bottom:-22px;left:50%;transform:translate(-50%);background:var(--surface);border:1px solid var(--gold-dim);border-radius:4px;padding:2px 8px;font-size:10px;color:var(--gold);white-space:nowrap;pointer-events:none;z-index:20}.cab-path-confirm{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-top:4px;border-top:1px solid rgba(52,152,219,.25)}.cab-path-summary{font-size:11px;color:#74b9ff;flex:1;min-width:100px}.cab-filter-bar{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;padding:4px 0 2px;border-bottom:1px solid rgba(255,255,255,.07);width:100%}.shape-btn{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:52px;height:56px;background:none;border:none;cursor:pointer;opacity:.45;transition:opacity .15s,transform .1s,filter .15s;flex-shrink:0;padding:0}.shape-btn:hover:not(:disabled){opacity:.8;transform:scale(1.1)}.shape-btn--active{opacity:1!important;filter:drop-shadow(0 0 6px var(--shape-color, #fff))}.shape-btn-svg{width:32px;height:32px;fill:var(--shape-color, #4b5563);transition:fill .15s}.shape-btn-sublabel{font-size:9px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--shape-color, #4b5563);line-height:1;white-space:nowrap;opacity:.9}.shape-btn-badge{position:absolute;top:-2px;right:-2px;min-width:16px;height:16px;border-radius:8px;background:#6c63ff;color:#fff;font-size:10px;font-weight:700;line-height:16px;text-align:center;padding:0 3px;pointer-events:none}.cab-portrait{display:flex;align-items:center;gap:10px;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.07);width:100%}.cab-portrait-avatar{position:relative;width:44px;height:44px;border-radius:50%;background:var(--surface-2, #1a1e2e);border:2px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:visible}.cab-portrait-initial{font-size:20px;font-weight:700;color:var(--gold);line-height:1}.cab-portrait-ac-badge{position:absolute;bottom:-6px;right:-6px;width:26px;height:26px;display:flex;align-items:center;justify-content:center}.cab-shield-svg{width:26px;height:26px;position:absolute;top:0;right:0;bottom:0;left:0}.cab-portrait-ac-num{position:relative;font-size:10px;font-weight:800;color:#000;line-height:1;z-index:1;margin-top:1px}.cab-portrait-info{min-width:0;display:flex;flex-direction:column;gap:3px}.cab-portrait-name{font-size:13px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cab-portrait-class{font-size:11px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cab-portrait-bars{display:flex;flex-direction:column;gap:3px;margin-top:2px}.cab-bar-row{display:flex;align-items:center;gap:5px}.cab-bar-label{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);width:20px;flex-shrink:0}.cab-bar-track{width:120px;height:6px;background:#ffffff14;border-radius:3px;overflow:hidden;flex-shrink:0}.cab-bar-fill{height:100%;border-radius:3px;transition:width .3s ease}.cab-bar-fill--hp{background:#2ecc71}.cab-bar-fill--hp.low{background:#e74c3c}.cab-bar-fill--move{background:#3498db}.cab-pa-row{margin-top:5px}.cab-pa-btn{width:100%;background:#ffffff0d;border:1px solid var(--border);border-radius:4px;color:var(--text-dim);font-size:10px;font-weight:600;letter-spacing:.04em;padding:3px 6px;cursor:pointer;transition:background .15s,border-color .15s,color .15s;text-align:center}.cab-pa-btn:hover:not(:disabled){border-color:var(--text-dim);color:var(--text)}.cab-pa-btn--on{background:#ef444426;border-color:#ef4444;color:#ef4444}.cab-pa-btn--on:hover:not(:disabled){background:#ef444440}.cab-pa-btn:disabled{opacity:.4;cursor:not-allowed}.cab-confirm-pa{font-size:11px;color:#f97316;margin-top:2px}.cab-bar-value{font-size:10px;color:var(--text-dim);width:30px;text-align:right;flex-shrink:0}.cab-action-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;padding:4px 0}.cab-action-item{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 6px 6px;background:var(--surface-2, #1a1e2e);border:1px solid var(--border);border-radius:var(--radius, 6px);cursor:pointer;transition:background .12s,border-color .12s;text-align:center}.cab-action-item:hover:not(.cab-action-item--disabled){background:var(--surface-hover, #222640);border-color:var(--gold-dim, rgba(255,160,0,.4))}.cab-action-item--disabled{opacity:.35;cursor:not-allowed}.cab-action-icon{font-size:20px;line-height:1}.cab-action-label{font-size:11px;font-weight:600;color:var(--text);line-height:1.2}.cab-action-sublabel{font-size:9px;color:var(--text-dim);line-height:1.2}.cab-confirm-panel{display:flex;flex-direction:column;align-items:center;gap:8px;padding:6px 0 4px;border-top:1px solid rgba(255,255,255,.07)}.cab-confirm-body{display:flex;flex-direction:column;gap:6px}.cab-confirm-title{font-size:14px;font-weight:700;color:var(--text)}.cab-confirm-badge{display:inline-block;padding:1px 7px;border-radius:10px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;background:#6c63ff33;color:#a89aff;border:1px solid rgba(108,99,255,.4);margin-left:6px;vertical-align:middle}.cab-confirm-stat{font-size:11px;color:var(--text-dim);display:flex;gap:4px;align-items:baseline}.cab-confirm-stat strong{color:var(--text);font-weight:600}.cab-confirm-hint{font-size:11px;color:var(--gold-dim, rgba(255,160,0,.7));font-style:italic}.cab-confirm-target{font-size:12px;color:var(--enemy, #e74c3c);font-weight:600;margin-top:2px}.cab-confirm-btns{display:flex;gap:6px;flex-wrap:wrap}.cab-end-turn-wrap{position:absolute;top:8px;right:10px}.acl-name{font-weight:700}.acl-name--player{color:#74b9ff}.acl-name--enemy{color:#ff7675}.acl-name--ally{color:#55efc4}.acl-d20-img{display:inline-block;width:32px;height:32px;vertical-align:middle;margin:0 2px;image-rendering:auto}.acl-d20-img--nat20{filter:sepia(1) saturate(4) hue-rotate(10deg)}.acl-d20-img--nat1{filter:sepia(1) saturate(10) hue-rotate(300deg) brightness(1.1)}.acl-hit{color:#e17055;font-weight:600}.acl-miss{color:var(--text-dim);font-style:italic}.acl-formula{color:#a29bfe;font-family:monospace;font-size:.85em}.acl-save-pass{color:#55efc4;font-weight:600}.acl-save-fail{color:#fd79a8;font-weight:600}.initiative-tracker{position:absolute;top:10px;right:10px;z-index:10;background:#0e111ce0;border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;min-width:180px;max-width:240px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 4px 20px #00000080;pointer-events:none}.initiative-title{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--gold-dim);margin-bottom:6px}.initiative-list{display:flex;flex-direction:column;gap:4px}.init-empty{color:var(--text-dim);font-size:11px;font-style:italic}.initiative-entry{display:flex;align-items:center;gap:5px;border-radius:3px;padding:3px 6px;font-size:12px;transition:background .15s}.initiative-active{background:#ffe0661f}.init-arrow{width:12px;font-size:10px;color:#ffe066;flex-shrink:0;line-height:1}.init-marker{width:8px;height:8px;border-radius:50%;flex-shrink:0}.init-name{color:var(--text);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.init-roll{color:var(--gold);font-weight:600;font-size:11px;flex-shrink:0}.init-hp{font-size:10px;flex-shrink:0}.skill-check-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#0000008c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.skill-check-prompt{background:var(--surface);border:1px solid var(--gold-dim);border-radius:var(--radius);padding:32px 40px;display:flex;flex-direction:column;align-items:center;gap:16px;box-shadow:0 8px 40px #000000b3;min-width:280px}.scp-label{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim)}.scp-skill{font-size:28px;font-weight:700;color:var(--gold)}.scp-roll-btn{margin-top:8px;background:var(--gold);color:#111;border:none;border-radius:var(--radius);padding:12px 32px;font-size:16px;font-weight:700;cursor:pointer;transition:background .15s}.scp-roll-btn:hover{background:#e0b84e}.scp-cancel-btn{margin-top:6px;background:none;border:1px solid var(--border);color:var(--text-dim);padding:6px 18px;border-radius:var(--radius);font-size:13px;cursor:pointer;transition:color .15s,border-color .15s}.scp-cancel-btn:hover{color:var(--red);border-color:var(--red)}.player-roster{flex-shrink:0;background:var(--surface);border-bottom:1px solid var(--border);padding:8px 12px}.roster-header{font-size:11px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}.roster-list{list-style:none;display:flex;flex-direction:column;gap:5px}.roster-entry{display:flex;align-items:center;gap:8px}.roster-dot{width:8px;height:8px;border-radius:50%;background:var(--green);flex-shrink:0}.roster-text{display:flex;flex-direction:column;min-width:0}.roster-player-name{font-size:12px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.roster-me .roster-player-name{color:var(--gold)}.roster-char-name{font-size:11px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-panel{display:flex;flex-direction:column;flex:1;min-height:0;background:var(--surface);transition:width .2s}.chat-panel.chat-collapsed{width:36px!important;min-width:36px!important;overflow:hidden}.chat-header{padding:10px 14px;font-size:13px;font-weight:600;color:var(--gold);border-bottom:1px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:space-between}.chat-header-btns{display:flex;align-items:center;gap:4px}.chat-collapse-btn{background:none;border:none;color:var(--text-dim);font-size:12px;cursor:pointer;padding:2px 4px;border-radius:3px;line-height:1}.chat-collapse-btn:hover{color:var(--gold);background:var(--surface2)}.chat-expand-solo{width:100%;display:flex;justify-content:center}.chat-tts-btn{background:none;border:none;color:var(--text-dim);font-size:14px;cursor:pointer;padding:2px 4px;border-radius:3px;line-height:1}.chat-tts-btn:hover{background:var(--surface2)}.chat-tts-btn.tts-on{color:var(--gold)}.chat-log-wrapper{flex:1;position:relative;min-height:0;display:flex;flex-direction:column}.chat-log{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px;min-height:0}.chat-log::-webkit-scrollbar{width:4px}.chat-log::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.chat-new-messages-btn{position:absolute;bottom:8px;left:50%;transform:translate(-50%);background:#4a6fa5;color:#fff;border:none;border-radius:16px;padding:6px 16px;font-size:.78rem;font-weight:600;cursor:pointer;box-shadow:0 2px 8px #00000080;white-space:nowrap;z-index:10;transition:background .15s}.chat-new-messages-btn:hover{background:#3d5f8f}.chat-empty{text-align:center;color:var(--text-dim);padding:24px}.chat-empty p{margin-bottom:8px;line-height:1.5}.chat-hint{font-style:italic;font-size:12px}.chat-system{text-align:center;color:var(--text-dim);font-size:12px;font-style:italic;padding:4px 0}.chat-meta{display:flex;align-items:center;gap:6px;margin-bottom:3px}.chat-name{font-size:12px;font-weight:600;color:var(--text-dim)}.dm-name{color:var(--gold)}.chat-time{font-size:11px;color:var(--text-dim);opacity:.6}.chat-bubble{border-radius:var(--radius);padding:8px 12px;line-height:1.55;font-size:13px;max-width:100%;word-break:break-word}.player-bubble{background:var(--surface2);border:1px solid var(--border)}.chat-mine .chat-name{color:var(--player)}.chat-mine .player-bubble{border-color:#4a9eff4d}.dm-bubble{background:#c9a84c12;border:1px solid rgba(201,168,76,.2);color:var(--text)}.dm-bubble p{margin-bottom:4px}.dm-bubble p:last-child{margin-bottom:0}.dm-emph{font-style:italic}.dm-thinking{display:flex;align-items:center;gap:5px;padding:10px 14px}.thinking-dot{width:7px;height:7px;background:var(--gold-dim);border-radius:50%;animation:bounce 1.2s ease-in-out infinite}.thinking-dot:nth-child(2){animation-delay:.2s}.thinking-dot:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,80%,to{transform:translateY(0);opacity:.4}40%{transform:translateY(-5px);opacity:1}}.chat-input-area{position:relative;display:flex;flex-direction:column;gap:6px;padding:10px;border-top:1px solid var(--border);flex-shrink:0}.chat-input-row{display:flex;gap:8px;align-items:flex-end}.chat-input-area textarea{flex:1;resize:none;font-size:13px;line-height:1.4;min-height:60px}.btn-send{background:var(--gold);color:#111;border:none;border-radius:var(--radius);padding:8px 16px;font-weight:600;font-size:14px;align-self:flex-end;height:40px}.btn-send:hover{background:#e0b84e}.btn-send:disabled{opacity:.4;cursor:not-allowed}.btn-skill-roll{font-size:18px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);width:40px;height:40px;flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;align-self:flex-end;transition:border-color .15s,background .15s}.btn-skill-roll:hover:not(:disabled){border-color:var(--gold-dim);background:var(--surface)}.btn-skill-roll.active{border-color:var(--gold);background:#c9a84c1f}.btn-skill-roll:disabled{opacity:.3;cursor:not-allowed}.skill-picker{position:absolute;bottom:calc(100% + 4px);left:10px;right:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 -4px 20px #00000080;z-index:20;display:flex;flex-direction:column;max-height:320px}.skill-picker-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--border);font-size:12px;font-weight:600;color:var(--gold);gap:10px;flex-shrink:0}.skill-search{flex:1;font-size:12px;padding:3px 8px;background:var(--surface2);border:1px solid var(--border);border-radius:4px;color:var(--text)}.skill-picker-list{overflow-y:auto;display:flex;flex-direction:column;gap:1px;padding:4px}.skill-pick-btn{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;border-radius:4px;border:none;background:transparent;color:var(--text);font-size:13px;cursor:pointer;text-align:left;gap:8px}.skill-pick-btn:hover:not(:disabled){background:var(--surface2)}.skill-pick-btn.skill-has-ranks{color:var(--gold)}.skill-pick-btn.skill-untrained{opacity:.35;cursor:not-allowed}.spb-name{flex:1}.spb-total{font-weight:600;font-size:12px;color:var(--text-dim);flex-shrink:0}.skill-pick-btn.skill-has-ranks .spb-total{color:var(--gold)}.roll-bubble{font-family:monospace;font-size:13px;background:#c9a84c14!important;border:1px solid rgba(201,168,76,.2)!important;color:var(--gold)!important}.character-sheet{display:flex;flex-direction:column;height:100%}.sheet-empty{padding:24px;color:var(--text-dim);text-align:center}.char-picker{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:40px 24px}.char-picker-cards{display:flex;flex-direction:column;gap:6px;width:338px}.char-picker-card{background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:10px 14px;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;gap:3px;transition:border-color .15s,background .15s}.char-picker-card:hover{border-color:var(--gold-dim);background:#c9a84c0f}.char-picker-card.char-picker-new{align-items:center;justify-content:center;border-style:dashed;border-color:var(--text-dim);padding:10px 14px}.char-picker-card.char-picker-new:hover{border-color:var(--gold);border-style:dashed}.cpc-name{font-size:14px;font-weight:600;color:var(--text)}.cpc-meta{font-size:12px;color:var(--text-dim)}.cpc-new-label{color:var(--gold-dim);font-weight:500;font-size:14px}.char-picker-card.char-picker-new:hover .cpc-new-label{color:var(--gold)}.char-picker-empty{padding:20px;color:var(--text-dim);font-size:13px;text-align:center}.char-picker-row{display:flex;gap:6px;align-items:stretch}.char-picker-row .char-picker-card{flex:1;cursor:pointer;display:flex;flex-direction:row;align-items:center;justify-content:space-between}.cpc-main{display:flex;flex-direction:column;gap:3px}.char-picker-level-btn{background:transparent;border:1px solid var(--border);border-radius:4px;padding:3px 8px;cursor:pointer;color:var(--gold-dim);font-size:11px;font-weight:600;white-space:nowrap;transition:all .15s;flex-shrink:0}.char-picker-level-btn:hover{border-color:var(--gold);color:var(--gold);background:#d4af3712}.char-picker-delete-btn{background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:0 10px;cursor:pointer;color:var(--text-dim);font-size:15px;transition:all .15s;display:flex;align-items:center;justify-content:center;flex-shrink:0}.char-picker-delete-btn:hover{border-color:var(--red);color:var(--red);background:#e74c3c14}.char-arena-select-btn{width:28px;height:28px;border-radius:50%;border:1px solid var(--border);background:var(--surface3);color:var(--text-dim);font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;align-self:center;transition:all .15s;line-height:1;padding:0}.char-arena-select-btn:hover{border-color:var(--gold);color:var(--gold)}.char-arena-select-btn.chosen{border-color:var(--gold);background:#c9a84c40;color:var(--gold)}.sheet-header{display:flex;align-items:center;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;gap:6px}.sheet-back-btn{background:none;border:none;color:var(--text-dim);font-size:13px;cursor:pointer;padding:4px 8px;border-radius:4px;flex-shrink:0;transition:color .15s,background .15s}.sheet-back-btn:hover{color:var(--text);background:var(--surface2)}.sheet-title-left{font-size:18px;color:var(--gold);margin:0}.sheet-title-area{display:flex;flex-direction:column;gap:2px}.sheet-hint{font-size:12px;color:var(--text-dim);margin-top:2px}.sheet-header-right{display:flex;align-items:center;gap:10px}.save-error{font-size:12px;color:var(--red);max-width:220px;text-align:right}.sheet-tabs{display:flex;gap:2px;padding:6px 8px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;flex-wrap:wrap}.sheet-body{flex:1;overflow-y:auto;padding:16px}.sheet-body::-webkit-scrollbar{width:4px}.sheet-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.sheet-proficiency-line{font-size:12px;color:var(--text-dim);margin:2px 0 10px;line-height:1.5}.sheet-derived-note{font-size:13px;margin:0 0 8px}.field{display:flex;flex-direction:column;gap:3px}.field label{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.field-full{grid-column:1 / -1}.field-locked-value{font-size:13px;color:var(--text);padding:5px 8px;background:transparent;border:1px solid transparent;border-radius:var(--radius);opacity:.55;-webkit-user-select:text;user-select:text;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.field-locked-char-builder .field-locked-value{opacity:.55}.field-locked-dm .field-locked-value{opacity:.45}.field-locked textarea.field-locked-value{white-space:pre-wrap;overflow:visible;resize:none;pointer-events:none}.textarea-locked{padding:6px 8px;border:1px solid transparent;border-radius:var(--radius);background:transparent;color:var(--text);opacity:.55;font-size:13px;white-space:pre-wrap;min-height:4em;-webkit-user-select:text;user-select:text}.field-locked-dm .textarea-locked{opacity:.45}.textarea-locked-empty{color:var(--text-dim);font-style:italic}.field-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:4px}.field-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:4px}.class-choices-section{border-top:1px solid var(--border);margin-top:4px}.class-choices-row{display:flex;align-items:baseline;gap:8px;padding:4px 0;font-size:13px}.class-choices-label{color:var(--gold-dim);font-weight:600;min-width:90px;flex-shrink:0}.class-choices-value{color:var(--text)}.ability-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:8px}.ability-block{display:flex;flex-direction:column;align-items:center;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:8px 4px;gap:4px}.ability-name{font-size:11px;color:var(--gold-dim);text-transform:uppercase;font-weight:700;letter-spacing:.06em}.ability-score{text-align:center;font-size:18px;font-weight:700;border:none;background:none;color:var(--text);width:52px}.ability-block-char-builder{opacity:.7}.ability-score-locked{text-align:center;font-size:18px;font-weight:700;color:var(--text);-webkit-user-select:text;user-select:text}.ability-mod{font-size:16px;font-weight:600;color:var(--gold)}.ac-matrix{display:flex;flex-direction:column;gap:4px;margin:8px 0;overflow-x:auto}.ac-matrix-headers,.ac-matrix-row{display:grid;grid-template-columns:100px 50px 36px repeat(8,46px);align-items:center;column-gap:8px;row-gap:4px}.ac-matrix-headers{font-size:11px;color:var(--text-dim);text-transform:uppercase}.ac-matrix-headers span{text-align:center}.acm-col-label{text-align:left!important}.acm-row-label{font-size:13px;font-weight:400;color:var(--text);text-transform:none;letter-spacing:normal;text-align:left;padding-right:0}.acm-total{font-size:15px;font-weight:700;color:var(--gold);text-align:center}.acm-eq{font-size:11px;color:var(--text-dim);text-align:center;white-space:nowrap}.acm-cell{width:100%;height:24px;background:transparent;border:none;border-bottom:1px solid transparent;color:var(--text-dim);font-size:13px;font-family:inherit;text-align:center;box-sizing:border-box;padding:0;display:block;-moz-appearance:textfield}.acm-cell::-webkit-inner-spin-button,.acm-cell::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.acm-cell:focus{outline:none}.acm-cell-ro{cursor:default}.acm-cell-blank{height:24px}.atk-matrix,.cmb-matrix{display:flex;flex-direction:column;gap:4px;overflow-x:auto}.atk-matrix-headers,.atk-matrix-row,.cmb-matrix-headers,.cmb-matrix-row{display:grid;grid-template-columns:100px 50px 36px repeat(4,46px);align-items:center;column-gap:8px}.atk-matrix-headers,.cmb-matrix-headers{font-size:11px;color:var(--text-dim);text-transform:uppercase}.atk-matrix-headers span,.cmb-matrix-headers span{text-align:center}.atk-matrix-headers .acm-col-label,.cmb-matrix-headers .acm-col-label{text-align:left!important}.computed-field{display:flex;flex-direction:column;gap:3px}.computed-field label{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.computed-field span{font-size:18px;font-weight:700;color:var(--gold);padding:4px 8px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);text-align:center}.saves-grid{display:grid;grid-template-columns:100px 50px 72px 65px 90px 55px;column-gap:8px;row-gap:4px;align-items:center;margin-bottom:8px}.save-header{font-size:11px;color:var(--text-dim);text-transform:uppercase}.save-row{display:contents}.save-row>span{text-align:center}.save-row>span:first-child{text-align:left}.save-label{font-size:13px;color:var(--text)}.save-total{font-size:15px;font-weight:700;color:var(--gold)}.save-input{text-align:center}.weapon-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr 1fr 2fr;gap:6px;margin-bottom:8px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:8px}.weapon-row-cs{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;margin-bottom:8px;display:flex;flex-direction:column;gap:6px}.weapon-row-inputs{display:grid;grid-template-columns:2fr 1fr 52px 1fr 1fr 80px auto 2fr;gap:6px;align-items:end}.weapon-ranged-label{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--text-dim);cursor:pointer;white-space:nowrap;padding-bottom:4px}.weapon-ranged-label input[type=checkbox]{cursor:pointer}.weapon-row-computed{display:flex;align-items:center;gap:16px}.weapon-row-computed .computed-field{min-width:80px}.weapon-row-computed .computed-field span{font-size:14px;padding:2px 8px}.weapon-remove-btn{margin-left:auto;background:none;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dim);font-size:11px;padding:2px 7px;cursor:pointer;transition:color .15s,border-color .15s}.weapon-remove-btn:hover{color:#c0504d;border-color:#c0504d}.btn-add-weapon{background:none;border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-dim);font-size:12px;padding:5px 12px;cursor:pointer;width:100%;transition:color .15s,border-color .15s}.btn-add-weapon:hover{color:var(--gold);border-color:var(--gold-dim)}.skills-header{display:grid;grid-template-columns:1fr 40px 30px 50px 50px 50px;gap:4px;padding:4px 6px;font-size:11px;color:var(--text-dim);text-transform:uppercase;border-bottom:1px solid var(--border);margin-bottom:4px}.skill-row{display:grid;grid-template-columns:1fr 40px 30px 50px 50px 50px;gap:4px;align-items:center;padding:2px 6px;border-radius:3px}.skill-row:hover{background:var(--surface2)}.skill-trained-only{opacity:.5}.skill-name{font-size:12px;color:var(--text)}.skill-ability{font-size:11px;color:var(--text-dim);text-align:center}.skill-num{width:50px;text-align:center;font-size:12px;padding:2px 4px}.skill-num-locked{display:inline-block;width:50px;text-align:center;font-size:12px;padding:2px 4px;opacity:.45;-webkit-user-select:text;user-select:text}.skill-locked-check{opacity:.45;pointer-events:none;cursor:default}.save-input-locked{text-align:center;font-size:12px;padding:2px 4px;opacity:.45;-webkit-user-select:text;user-select:text}.skill-total{font-size:13px;font-weight:600;color:var(--gold);text-align:center}.skill-note{font-size:11px;color:var(--text-dim);margin-top:8px}.char-creation{display:flex;flex-direction:column;flex:1;min-height:0;background:var(--bg);overflow:hidden}.creation-header{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;overflow:hidden}.creation-header--simple{justify-content:space-between}.creation-header-title{font-size:14px;font-weight:600;color:var(--text);letter-spacing:.02em}.creation-steps-scroll-wrap{position:relative;flex:1;min-width:0;overflow:hidden}.creation-steps-bar{display:flex;gap:2px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:2px 0}.creation-steps-bar::-webkit-scrollbar{display:none}.steps-scroll-arrow{position:absolute;top:0;bottom:0;width:32px;border:none;color:var(--text);font-size:20px;line-height:1;cursor:pointer;z-index:2;display:flex;align-items:center;justify-content:center;padding:0}.steps-scroll-arrow--left{left:0;background:linear-gradient(to right,var(--surface) 55%,transparent)}.steps-scroll-arrow--right{right:0;background:linear-gradient(to left,var(--surface) 55%,transparent)}.steps-scroll-arrow:hover{color:var(--gold)}.creation-step-btn{background:none;border:1px solid transparent;color:var(--text-dim);border-radius:var(--radius);padding:4px 10px;font-size:12px;white-space:nowrap;flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:1px}.step-btn-label{line-height:1.3}.step-btn-summary{font-size:10px;opacity:.75;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2}.creation-step-btn.done{color:var(--green);border-color:transparent}.creation-step-btn.done:hover{background:#2ecc7114}.creation-step-btn.active{color:var(--gold);border-color:var(--gold-dim);background:var(--surface2);font-weight:600}.creation-step-btn:not(.active):not(.done):hover{color:var(--text);background:var(--surface2)}.cc-group{display:inline-flex;flex-direction:column;align-items:stretch;flex-shrink:0}.cc-group-label{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);text-align:center;padding:2px 8px 1px;border-top:1px solid var(--border);border-left:1px solid var(--border);border-right:1px solid var(--border);border-radius:4px 4px 0 0}.cc-group-steps{display:flex;flex-direction:row;justify-content:center;gap:2px;padding:2px;border-left:1px solid var(--border);border-right:1px solid var(--border);border-bottom:1px solid var(--border);border-radius:0 0 4px 4px}.cc-group:has(.creation-step-btn.done:not(.active)) .cc-group-label,.cc-group:has(.creation-step-btn.done:not(.active)) .cc-group-steps{border-color:#2ecc7159}.cc-group:has(.creation-step-btn.active) .cc-group-label,.cc-group:has(.creation-step-btn.active) .cc-group-steps{border-color:var(--gold-dim)}.creation-close-btn{background:none;border:none;color:var(--text-dim);font-size:16px;padding:4px 8px;border-radius:var(--radius);flex-shrink:0}.creation-close-btn:hover{color:var(--red);background:#e74c3c1a}.creation-header-right{display:flex;align-items:center;gap:8px;margin-left:auto;flex-shrink:0}.creation-body{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.creation-footer{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--surface);border-top:1px solid var(--border);flex-shrink:0}.creation-footer-right{display:flex;gap:8px;align-items:center}.creation-next-btn{width:auto;margin-top:0;padding:8px 24px;font-size:14px}.creation-save-error{color:#e05555;font-size:12px;max-width:200px;text-align:right;line-height:1.3}.creation-loading{display:flex;align-items:center;justify-content:center;gap:6px;height:100%;color:var(--text-dim)}.creation-no-data{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;height:100%;padding:40px;text-align:center;color:var(--text)}.creation-no-data h2{font-size:22px}.creation-no-data p{color:var(--text-dim);max-width:460px;line-height:1.6}.creation-no-data code{display:block;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:10px 20px;font-family:Consolas,monospace;font-size:13px;color:var(--gold);letter-spacing:.02em}.creation-no-data-note{font-size:12px!important;font-style:italic}.step-center{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;height:100%;padding:40px}.step-title{font-size:20px;color:var(--gold);text-align:center;font-weight:600}.step-title .optional{font-size:14px;color:var(--text-dim);font-weight:400}.creation-name-input{max-width:420px;width:100%;font-size:22px;text-align:center;padding:12px 16px;border-color:var(--gold-dim)}.creation-name-input:focus{border-color:var(--gold)}.step-4panel{display:flex;height:100%;overflow:hidden;gap:0}.step-3panel{display:flex;height:100%;overflow:hidden}.panel{display:flex;flex-direction:column;border-right:1px solid var(--border);overflow:hidden}.panel:last-child{border-right:none}.panel-narrow{width:140px;flex-shrink:0}.panel-medium{width:200px;flex-shrink:0}.panel-detail{flex:1;overflow-y:auto}.panel-detail::-webkit-scrollbar{width:4px}.panel-detail::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.panel-header{padding:8px 10px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--gold-dim);background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-header-sub{color:var(--text-dim);font-weight:400;text-transform:none;font-size:11px}.panel-search{padding:6px 6px 0;flex-shrink:0}.panel-search input{font-size:12px;padding:4px 8px}.panel-list{flex:1;overflow-y:auto;padding:4px;display:flex;flex-direction:column;gap:1px}.panel-list::-webkit-scrollbar{width:3px}.panel-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.panel-item{background:none;border:1px solid transparent;border-radius:4px;color:var(--text);font-size:12px;padding:5px 8px;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:4px;cursor:pointer;transition:background .1s,color .1s}.panel-item:hover{background:var(--surface2)}.panel-item.selected{background:var(--surface2);border-color:var(--gold-dim);color:var(--gold);font-weight:600}.panel-item.disabled-item{opacity:.4;cursor:default}.panel-item.disabled-item:hover{background:var(--surface2);opacity:.6}.panel-item.disabled-item.inspected{opacity:.75;border-color:var(--text-dim)}.panel-item-meta{font-size:10px;color:var(--text-dim);font-weight:400;margin-left:auto;flex-shrink:0}.panel-empty{color:var(--text-dim);font-size:12px;font-style:italic;padding:16px;text-align:center}.detail-hint{padding:40px 20px}.item-lock{font-size:10px;flex-shrink:0}.item-check{color:var(--green);font-size:11px;flex-shrink:0}.detail-content{padding:14px 16px;display:flex;flex-direction:column;gap:10px}.detail-title{font-size:18px;color:var(--gold);font-weight:700;margin:0}.detail-source{font-size:11px;color:var(--text-dim);font-style:italic}.arch-racial-requirement{font-size:12px;margin:5px 0 0}.arch-racial-req-label{color:var(--gold);font-weight:600;margin-right:2px}.detail-description{font-size:13px;color:var(--text-dim);line-height:1.6;margin:8px 0 4px;font-style:italic}.detail-source-block{margin:4px 0 8px}.detail-source-line{display:flex;gap:6px;font-size:12px;line-height:1.6}.detail-source-label{color:var(--text-dim);min-width:80px;flex-shrink:0}.detail-source-value{color:var(--gold-dim);font-style:italic}.detail-align{font-size:12px;color:var(--yellow)}.detail-desc{font-size:12px;color:var(--text-dim);line-height:1.55}.detail-languages{font-size:12px;color:var(--text-dim)}.detail-skills{font-size:12px;color:var(--text-dim);line-height:1.5}.detail-skills strong{color:var(--text)}.detail-stats{display:flex;flex-wrap:wrap;gap:8px}.detail-stat{display:flex;flex-direction:column;align-items:center;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:6px 12px;min-width:64px;gap:2px}.detail-stat label{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em}.detail-stat span{font-size:14px;font-weight:600;color:var(--text)}.detail-stat .capitalize{text-transform:capitalize}.detail-stat .good-save{color:var(--green)}.detail-stat .poor-save{color:var(--red)}.detail-stat-block{flex-direction:column;align-items:flex-start;width:100%;background:none;border:none;padding:0;gap:2px}.detail-stat-block label{font-size:10px}.detail-stat-block span{font-size:12px;font-weight:400;color:var(--text-dim);line-height:1.5}.template-detail-rows{display:flex;flex-direction:column;gap:10px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.detail-table-wrap{overflow-x:auto}.progression-table{width:100%;border-collapse:collapse;font-size:11px}.progression-table th{background:var(--surface2);color:var(--gold-dim);text-align:center;padding:4px 6px;border:1px solid var(--border);text-transform:uppercase;letter-spacing:.04em;font-size:10px;white-space:nowrap}.progression-table td{text-align:center;padding:3px 6px;border:1px solid var(--border);color:var(--text-dim)}.detail-proficiency{font-size:12px;color:var(--text-dim);margin:6px 0;line-height:1.5}.detail-proficiency strong{color:var(--text)}.detail-requirements{margin:8px 0;padding:8px 10px;background:#785a281f;border-left:2px solid var(--gold-dim);border-radius:0 4px 4px 0}.detail-req-title{font-size:11px;font-weight:700;color:var(--gold-dim);text-transform:uppercase;letter-spacing:.06em;margin:0 0 4px}.detail-req-list{margin:0;padding:0 0 0 14px;font-size:12px;color:var(--text-dim);line-height:1.6}.progression-table td.special-col{text-align:left;color:var(--text);max-width:220px}.progression-table tr.level-1-row td{background:#c9a84c12;color:var(--text);font-weight:600}.progression-table tbody tr:hover td{background:var(--surface2)}.spell-table-title{margin:12px 0 4px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--gold-dim)}.spell-table{width:100%;border-collapse:collapse;font-size:11px}.spell-table th{background:var(--surface2);color:var(--gold-dim);text-align:center;padding:4px 5px;border:1px solid var(--border);text-transform:uppercase;letter-spacing:.04em;font-size:10px;white-space:nowrap}.spell-table td{text-align:center;padding:3px 5px;border:1px solid var(--border);color:var(--text-dim)}.spell-table tr.level-1-row td{background:#c9a84c12;color:var(--text);font-weight:600}.spell-table tbody tr:hover td{background:var(--surface2)}.wildblooded-mutation-picker{display:flex;flex-direction:column;gap:5px;margin:10px 0 8px}.wildblooded-mutation-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--gold)}.wildblooded-mutation-select{background:var(--surface2);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:6px 8px;font-size:13px;cursor:pointer;width:fit-content;max-width:100%}.wildblooded-mutation-select:focus{outline:none;border-color:var(--gold)}.wildblooded-power-type{font-weight:400;font-size:11px;color:var(--text-dim)}.wildblooded-replaces{font-size:11px;color:var(--text-dim);margin-top:3px}.wildblooded-replaces em{font-style:normal;color:var(--red)}.arch-replaces{font-size:12px;color:var(--text-dim);margin-bottom:3px}.arch-replaces strong{margin-right:4px}.arch-replaces-changed strong{color:#5a82c4}.arch-replaces-replaced strong{color:var(--red)}.arch-features{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.arch-feature{font-size:12px;line-height:1.5}.arch-feature strong{color:var(--gold);display:block;margin-bottom:2px}.arch-feature p{color:var(--text-dim);margin:0 0 4px}.arch-feature p:last-child{margin-bottom:0}.feature-inline-table{border-collapse:collapse;margin:6px 0;font-size:11px}.feature-inline-table th,.feature-inline-table td{border:1px solid var(--border);padding:3px 10px;text-align:left}.feature-inline-table th{background:var(--bg-elevated);color:var(--gold);font-weight:600}.feature-inline-table td{color:var(--text-dim)}.table-footnote{font-size:10px;color:var(--text-dim);margin:2px 0 6px;font-style:italic}.class-features-section{margin-top:12px}.arch-feat-replaced{text-decoration:line-through;color:var(--red)}.arch-feat-changed{color:#5a82c4}.arch-feat-optional{text-decoration:line-through;opacity:.5}.arch-feat-new{color:var(--green)}.feat-sep{color:var(--text-dim)}.race-ability-mods{display:flex;flex-direction:column;gap:6px;font-size:12px}.race-ability-mods strong{color:var(--text)}.race-mods-grid{display:flex;gap:6px;flex-wrap:wrap}.race-mod{display:flex;flex-direction:column;align-items:center;background:var(--surface2);border:1px solid var(--border);border-radius:4px;padding:4px 10px;font-size:11px}.race-mod span:first-child{color:var(--text-dim);font-size:10px;text-transform:uppercase}.race-mod span:last-child{font-weight:700;font-size:13px}.race-mod.pos span:last-child{color:var(--green)}.race-mod.neg span:last-child{color:var(--red)}.race-traits-list{display:flex;flex-direction:column;gap:6px}.race-section-header{font-size:13px;font-weight:700;color:var(--text);background:var(--surface-2);border-left:3px solid var(--accent);padding:4px 8px;margin:4px 0 2px;border-radius:2px}.race-trait{font-size:12px;color:var(--text-dim);line-height:1.5}.race-trait strong{color:var(--text)}.race-trait-replaces{color:var(--text-dim);font-style:italic}.step-abilities{padding:20px 24px;overflow-y:auto;height:100%}.step-abilities::-webkit-scrollbar{width:4px}.step-abilities::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.ability-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:10px}.points-remaining{font-size:14px;font-weight:600;color:var(--green);background:#2ecc711a;border:1px solid rgba(46,204,113,.3);border-radius:var(--radius);padding:4px 14px}.points-remaining.over-budget{color:var(--red);background:#e74c3c1a;border-color:#e74c3c4d}.abilities-race-banner{display:flex;align-items:baseline;gap:12px;margin-bottom:14px;padding:8px 12px;background:#b48c3c14;border:1px solid var(--border);border-left:3px solid var(--gold-dim);border-radius:4px}.abilities-race-name{font-size:14px;font-weight:700;color:var(--gold);flex-shrink:0}.abilities-race-mods{font-size:13px;color:var(--text-dim)}.abilities-race-mods--none{font-style:italic}.ability-buy-table{display:flex;flex-direction:column;gap:4px;width:fit-content}.ability-col-headers{display:grid;grid-template-columns:140px 130px 60px 110px 80px 80px 80px;gap:12px;padding:4px 14px;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-weight:600}.ability-col-headers span:not(:first-child){text-align:center}.ability-col-headers--npc{grid-template-columns:160px 160px 1fr}.ability-col-headers--npc-bonus{grid-template-columns:160px 160px 100px 80px 1fr}.ability-buy-row{display:grid;grid-template-columns:140px 130px 60px 110px 80px 80px 80px;align-items:center;gap:12px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:8px 14px}.ability-buy-row--npc{grid-template-columns:160px 160px 1fr}.ability-buy-row--npc-bonus{grid-template-columns:160px 160px 100px 80px 1fr}.ability-buy-row.drag-over{border-color:var(--gold-dim);background:#d4af3712}.ab-label{font-size:13px;color:var(--text);font-weight:500}.ab-controls{display:flex;align-items:center;justify-content:center;gap:10px}.ab-btn{width:28px;height:28px;background:var(--surface);border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:16px;display:flex;align-items:center;justify-content:center;padding:0}.ab-btn:hover:not(:disabled){border-color:var(--gold-dim);color:var(--gold)}.ab-btn:disabled{opacity:.3;cursor:not-allowed}.ab-base{font-size:20px;font-weight:700;color:var(--text);min-width:28px;text-align:center}.ab-cost{font-size:13px;color:var(--text-dim);text-align:center}.ab-race-mod{font-size:13px;text-align:center;display:flex;align-items:center;justify-content:center}.ab-race-mod.pos{color:var(--green)}.ab-race-mod.neg{color:var(--red)}.ab-age-mod{font-size:13px;text-align:center}.ab-age-mod.pos{color:var(--green)}.ab-age-mod.neg{color:var(--red)}.ab-final-score{font-size:18px;font-weight:700;color:var(--gold);text-align:center}.ab-final-mod{font-size:14px;font-weight:600;text-align:center}.ab-final-mod.pos{color:var(--green)}.ab-final-mod.neg{color:var(--red)}.ability-note{font-size:12px;color:var(--text-dim);margin-top:16px;font-style:italic}.alignment-grid{display:grid;grid-template-columns:repeat(3,120px);gap:8px}.align-btn{display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:14px 10px;color:var(--text);transition:border-color .15s,background .15s}.align-btn:hover:not(.disabled-item){border-color:var(--gold-dim);background:var(--surface)}.align-btn.selected{border-color:var(--gold);background:#c9a84c1f}.align-btn.disabled-item{opacity:.3;cursor:not-allowed}.align-code{font-size:18px;font-weight:700;color:var(--gold);letter-spacing:.05em}.align-label{font-size:11px;color:var(--text-dim);text-align:center}.align-restriction{font-size:13px;color:var(--yellow);text-align:center;max-width:400px}.step-deity{display:flex;flex-direction:column;gap:10px;padding:16px 20px;height:100%;overflow:hidden}.deity-filters{display:flex;gap:8px;flex-shrink:0;align-items:center;flex-wrap:wrap}.deity-filter-select{width:auto;min-width:160px;flex-shrink:0}.creation-search{font-size:13px;padding:6px 10px;flex-shrink:0}.deity-domain-dropdown{position:relative;flex-shrink:0;outline:none}.deity-domain-trigger{display:flex;align-items:center;gap:6px;min-width:160px;padding:6px 10px;background:var(--surface2);border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:13px;cursor:pointer;white-space:nowrap;text-align:left}.deity-domain-trigger:hover{border-color:var(--gold-dim)}.deity-domain-arrow{margin-left:auto;font-size:10px;color:var(--text-dim)}.deity-domain-clear{color:var(--text-dim);font-size:11px;line-height:1}.deity-domain-clear:hover{color:var(--gold)}.search-wrap{display:flex;align-items:center;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s}.search-wrap:has(input:focus){border-color:var(--gold)}.search-wrap input{background:transparent;border:none;border-radius:0;outline:none;transition:none;field-sizing:content;flex:0 1 auto;min-width:0;width:auto}.search-clear{flex-shrink:0;margin-right:4px;background:none;border:none;color:var(--text-dim);font-size:11px;line-height:1;cursor:pointer;padding:2px 4px}.search-clear:hover{color:var(--gold)}.pick-controls .search-wrap{flex:1;min-width:0}.spell-controls .search-wrap{flex:1;min-width:180px}.panel-search .search-wrap{width:100%}.skill-picker-header .search-wrap{flex:1}.deity-filters .search-wrap{width:100%}.deity-domain-list{position:absolute;top:calc(100% + 4px);left:0;z-index:100;min-width:200px;max-height:280px;overflow-y:auto;background:var(--surface2);border:1px solid var(--border);border-radius:4px;box-shadow:0 4px 16px #00000080;display:flex;flex-direction:column}.deity-domain-hint{padding:6px 10px;font-size:11px;color:var(--gold-dim);border-bottom:1px solid var(--border)}.deity-domain-option{display:flex;align-items:center;gap:8px;padding:5px 10px;font-size:13px;text-align:left;background:none;border:none;color:var(--text);cursor:pointer}.deity-domain-option:hover:not(.disabled){background:var(--surface);color:var(--gold)}.deity-domain-option.selected{color:var(--gold)}.deity-domain-option.disabled{color:var(--text-dim);cursor:default}.deity-domain-check{width:12px;font-size:11px;color:var(--gold)}.deity-scroll-wrapper{flex:1;overflow-x:auto;overflow-y:hidden;display:flex;flex-direction:column;min-height:0}.deity-scroll-wrapper::-webkit-scrollbar{height:4px}.deity-scroll-wrapper::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.deity-list{flex:1;overflow-y:auto;overflow-x:visible;min-height:0;display:flex;flex-direction:column;gap:2px}.deity-list::-webkit-scrollbar{width:4px}.deity-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.dcol-align,.dcol-domains,.dcol-subdomains,.dcol-weapon{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.dcol-name{min-width:0;display:flex;flex-direction:column;gap:1px}.deity-name-text{font-weight:500}.deity-epithet{font-size:11px;color:var(--text-dim);font-style:italic}.dcol-align{color:var(--gold-dim);font-size:11px}.dcol-domains,.dcol-subdomains,.dcol-weapon{font-size:11px;color:var(--text-dim)}.deity-found-count,.found-count{font-size:11px;color:var(--text-dim);padding:4px 2px;flex-shrink:0}.deity-detail-label{min-width:110px;color:var(--text-dim);font-size:12px}.deity-item{display:grid;grid-template-columns:180px 320px 160px 200px;column-gap:24px;align-items:center;background:none;border:1px solid transparent;border-radius:var(--radius);padding:6px 10px;font-size:13px;color:var(--text);text-align:left;cursor:pointer}.deity-item:hover{background:var(--surface2)}.deity-item.selected{background:var(--surface2);border-color:var(--gold-dim)}.deity-item .dcol-name{font-weight:500}.deity-detail{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;font-size:12px;color:var(--text-dim);flex-shrink:0;line-height:1.6}.deity-detail strong{color:var(--gold)}.deity-list-header.selectable,.deity-row-summary.selectable{grid-template-columns:36px minmax(160px,2fr) minmax(180px,2fr) minmax(200px,2.5fr) minmax(140px,1.5fr) 130px}.deity-list-header{display:grid;grid-template-columns:minmax(160px,2fr) minmax(180px,2fr) minmax(200px,2.5fr) minmax(140px,1.5fr) 130px;column-gap:16px;padding:4px 10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);border-bottom:1px solid var(--border);flex-shrink:0;min-width:830px}.deity-row{border:1px solid transparent;border-radius:var(--radius);cursor:pointer;transition:background .1s}.deity-row:hover{background:var(--surface2)}.deity-row.selected{background:var(--surface2);border-color:var(--gold-dim)}.deity-row.expanded{background:var(--surface2);border-color:var(--border)}.deity-row-summary{display:grid;grid-template-columns:minmax(160px,2fr) minmax(180px,2fr) minmax(200px,2.5fr) minmax(140px,1.5fr) 130px;column-gap:16px;align-items:start;padding:6px 10px;font-size:13px;min-width:830px}.deity-row-summary .dcol-name{font-weight:500}.deity-none-label{color:var(--text-dim);font-style:italic}.deity-epithet{font-weight:400;color:var(--text-dim);font-size:12px}.deity-row-detail{border-top:1px solid var(--border);padding:10px 14px 12px;font-size:13px;color:var(--text);line-height:1.7}.deity-detail-grid{display:flex;flex-direction:column;gap:3px}.deity-detail-row{display:flex;gap:12px}.deity-detail-label{min-width:130px;color:var(--text-dim);font-size:12px;flex-shrink:0}.deity-detail-source{margin-top:6px;border-top:1px solid var(--border);padding-top:6px}.deity-detail-tags{display:flex;flex-wrap:wrap;gap:4px}.deity-tag{display:inline-block;padding:1px 7px;border-radius:10px;font-size:11px;line-height:1.6}.deity-tag-domain{background:#b48c3c26;border:1px solid rgba(180,140,60,.35);color:var(--gold-dim)}.deity-tag-subdomain{background:#648cb41f;border:1px solid rgba(100,140,180,.3);color:var(--text-dim)}.deity-weapon-choice{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.deity-weapon-choice-group{display:flex;align-items:center;gap:6px}.deity-weapon-or{font-size:11px;color:var(--text-dim);font-style:italic}.deity-weapon-tag{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;background:#648cb41f;border:1px solid rgba(100,140,180,.3);color:var(--text-dim)}.deity-weapon-btn{padding:3px 10px;border-radius:10px;font-size:12px;border:1px solid var(--border);background:var(--surface2);color:var(--text);cursor:pointer;transition:border-color .15s,background .15s,color .15s}.deity-weapon-btn:hover{border-color:var(--gold-dim);color:var(--gold-dim)}.deity-weapon-btn.chosen{background:#b48c3c2e;border-color:var(--gold);color:var(--gold);font-weight:600}.step-hint-warning{color:var(--gold-dim);font-style:italic}.step-pick-list{display:flex;flex-direction:column;gap:8px;padding:14px 18px;height:100%;overflow:hidden}.pick-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap;flex-shrink:0}.pick-cats{display:flex;gap:4px;flex-wrap:wrap}.pick-cat-btn{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dim);font-size:11px;padding:3px 10px}.pick-cat-btn:hover{color:var(--text);border-color:var(--gold-dim)}.pick-cat-btn.active{color:var(--gold);border-color:var(--gold);background:#c9a84c14}.pick-note{font-size:11px;color:var(--text-dim);font-style:italic;flex-shrink:0}.pick-more{font-size:11px;color:var(--text-dim);text-align:center;padding:8px;font-style:italic}.pick-items{flex:1;overflow-y:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:4px;align-content:start}.pick-items::-webkit-scrollbar{width:4px}.pick-items::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.pick-item{display:flex;flex-direction:column;gap:2px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:7px 10px;font-size:12px;color:var(--text);text-align:left;cursor:pointer;position:relative;transition:border-color .1s}.pick-item:hover:not(.disabled-item){border-color:var(--gold-dim)}.pick-item.selected{border-color:var(--gold);background:#c9a84c14}.pick-item.disabled-item{opacity:.4;cursor:not-allowed}.pick-item-name{font-weight:500;line-height:1.3}.pick-item-type{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.pick-item .item-check{position:absolute;top:6px;right:6px}.step-review{padding:20px 24px;overflow-y:auto;flex:1;min-height:0;display:flex;flex-direction:column;gap:20px}.step-review>*{flex-shrink:0}.step-review::-webkit-scrollbar{width:4px}.step-review::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.review-grid{display:flex;flex-direction:column;gap:2px;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.review-row{display:grid;grid-template-columns:110px 1fr auto;align-items:center;gap:12px;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--surface2);font-size:13px}.review-row:last-child{border-bottom:none}.review-label{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.review-value{color:var(--text);word-break:break-word}.review-row--missing .review-value{color:var(--red, #e74c3c)}.review-name-input{background:transparent;border:none;border-bottom:1px solid var(--border);color:var(--text);font-size:13px;padding:2px 4px;outline:none;width:100%}.review-name-input:focus{border-bottom-color:var(--gold-dim)}.review-name-input::placeholder{color:var(--text-dim)}.review-base-btns{display:flex;gap:6px}.review-base-actions{display:flex;gap:4px}.review-hp-value-cell{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.review-hp-toggle{display:flex;gap:4px;flex-shrink:0}.review-hp-btn{padding:3px 10px;font-size:12px;font-weight:600;border:1px solid var(--border);border-radius:4px;background:var(--surface1);color:var(--text-dim);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.review-hp-btn.active{background:var(--gold-dim);border-color:var(--gold);color:var(--bg)}.review-hp-result{font-size:13px;color:var(--text)}.review-hp-result strong{color:var(--green);font-size:15px}.review-hp-breakdown{color:var(--text-dim);font-size:12px;margin-left:2px}.review-hp-roll-note{color:var(--text-dim)}.review-hp-roll-hint{font-style:italic;font-size:12px;margin-left:4px}.review-row-wealth .review-wealth-value{color:var(--gold);font-weight:600}.review-wealth-note{color:var(--text-dim);font-size:11px;font-weight:400;margin-left:4px}.review-edit{background:none;border:1px solid var(--border);border-radius:4px;color:var(--text-dim);font-size:11px;padding:2px 8px}.review-edit:hover{border-color:var(--gold-dim);color:var(--gold)}.review-abilities h3{margin:0 0 10px}.review-ab-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.review-ab{display:flex;flex-direction:column;align-items:center;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:8px 4px;gap:3px}.review-ab-label{font-size:10px;color:var(--gold-dim);text-transform:uppercase;font-weight:700;letter-spacing:.06em}.review-ab-score{font-size:18px;font-weight:700;color:var(--text)}.review-ab-mod{font-size:13px;color:var(--gold)}.review-note{font-size:12px;color:var(--text-dim);font-style:italic;text-align:center;line-height:1.6}@media (max-width: 600px){.step-review{padding:12px;gap:14px}.review-row{grid-template-columns:90px 1fr auto;gap:6px;padding:7px 8px;font-size:12px}.review-label{font-size:10px}.review-ab-grid{grid-template-columns:repeat(3,1fr)}.review-hp-toggle{flex-wrap:wrap}.review-hp-btn{padding:3px 7px;font-size:11px}}@media (max-width: 380px){.step-review{padding:8px;gap:10px}.review-row{grid-template-columns:72px 1fr auto;gap:4px;padding:6px}.review-ab-grid{grid-template-columns:repeat(3,1fr);gap:5px}.review-ab-score{font-size:15px}}.count-met{color:var(--green);font-size:14px}.count-unmet{color:var(--yellow);font-size:14px}.drawback-bonus-note{font-size:12px;color:var(--green);font-weight:400}.skill-pick-list{display:flex;flex-direction:column;flex:1;overflow-y:auto}.skill-pick-list::-webkit-scrollbar{width:4px}.skill-pick-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.skill-pick-group-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--text-dim);padding:8px 12px 4px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.skill-pick-group-label.cs{color:var(--gold)}.skill-pick-none{font-size:12px;color:var(--text-dim);font-style:italic;padding:8px 12px;border-bottom:1px solid var(--border)}.skill-pick-header{display:grid;grid-template-columns:32px 1fr 60px 52px;gap:10px;padding:4px 12px;background:var(--surface);border-bottom:1px solid var(--border);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-weight:600;flex-shrink:0}.skill-pick-row{display:grid;grid-template-columns:32px 1fr 60px 52px;gap:10px;padding:6px 12px;border-bottom:1px solid var(--border);align-items:center;transition:background .1s;cursor:pointer}.skill-pick-row:hover{background:var(--surface2)}.skill-pick-row.selected{background:#c9a84c12}.skill-pick-row.trained-only-dim{opacity:.55}.skill-pick-name{font-size:13px;color:var(--text)}.skill-trained-star{color:var(--gold-dim);font-size:11px;margin-left:1px}.skill-pick-ability{font-size:11px;font-weight:700;color:var(--text-dim);text-transform:uppercase}.skill-pick-total{font-size:13px;font-weight:700;text-align:right}.skill-pick-total.pos{color:var(--green)}.skill-pick-total.neg{color:var(--red)}.skill-pick-other{font-size:12px;font-weight:700;text-align:right;white-space:nowrap}.skill-pick-other.pos{color:var(--gold)}.skill-pick-other.neg{color:var(--red)}.skill-pick-other.zero{color:var(--text-dim);font-weight:400}.skill-picker-core .skill-pick-header,.skill-picker-core .skill-pick-row{grid-template-columns:26px 32px 26px 1fr 56px 60px 56px}.skill-picker-core .skill-pick-header span:nth-child(2){text-align:center}.skill-picker-core .skill-pick-header span:nth-child(5){text-align:center}.skill-picker-core .skill-pick-header span:nth-child(6){text-align:right}.skill-picker-core .skill-pick-header span:nth-child(7){text-align:right}.skill-picker-core .skill-pick-ability{text-align:center}.skill-picker-rank-count{font-size:13px;font-weight:700;color:var(--text);text-align:center;line-height:1}.skill-picker-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;background:var(--surface2);border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:14px;font-weight:700;cursor:pointer;padding:0;line-height:1;transition:border-color .15s,background .15s}.skill-picker-btn:hover:not(:disabled){border-color:var(--gold-dim);background:var(--surface3)}.skill-picker-btn:disabled,.skill-picker-btn.disabled{opacity:.25;cursor:default}.levelBuilder-current-class{border-color:var(--gold-dim)!important}.levelBuilder-current-tag{font-size:9px;font-weight:700;color:var(--gold-dim);text-transform:uppercase;letter-spacing:.06em;margin-left:5px;opacity:.85}.panel-locked-archetypes{display:flex;flex-direction:column;gap:0}.panel-locked-note{font-size:12px;color:var(--text-dim);font-style:italic;padding:10px 12px;line-height:1.5}.levelBuilder-header-title{font-size:12px;color:var(--text-dim);white-space:nowrap;font-weight:500}.levelBuilder-header-arrow{color:var(--gold-dim);font-weight:700;margin-left:2px}.step-drawbacks{display:flex;flex-direction:column;gap:10px;padding:16px 20px;height:100%;overflow:hidden}.step-note{font-size:12px;color:var(--text-dim);font-style:italic;line-height:1.6;flex-shrink:0}.step-note-inline{font-size:12px;color:var(--text-dim);font-style:italic}.drawback-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.drawback-list::-webkit-scrollbar{width:4px}.drawback-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.drawback-item{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;cursor:pointer;transition:border-color .15s,background .15s}.drawback-item:hover{border-color:var(--gold-dim);background:var(--surface)}.drawback-item.selected{border-color:var(--gold);background:#c9a84c14}.drawback-header{display:flex;align-items:baseline;gap:10px;margin-bottom:4px}.drawback-name{font-weight:600;color:var(--text);font-size:13px;flex:1}.drawback-source{font-size:11px;color:var(--text-dim);flex-shrink:0}.drawback-desc{font-size:12px;color:var(--text-dim);line-height:1.55}.step-list-picker{display:flex;flex-direction:column;gap:8px;padding:14px 18px;height:100%;overflow:hidden}.list-picker-header{flex-shrink:0;display:flex;flex-direction:column;gap:4px}.selection-list-wrap{flex:1;display:flex;flex-direction:column;overflow-x:auto;overflow-y:hidden;min-height:0}.selection-list-wrap::-webkit-scrollbar{height:4px}.selection-list-wrap::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.selection-list-header{display:grid;grid-template-columns:32px 200px 120px 1fr;gap:12px;padding:6px 12px;border-bottom:1px solid var(--border);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-weight:600;flex-shrink:0;min-width:500px}.selection-list-header.feats-header{grid-template-columns:32px 200px 110px 160px 1fr;min-width:750px}.selection-list{flex:1;overflow-y:auto;display:flex;flex-direction:column}.selection-list::-webkit-scrollbar{width:4px}.selection-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.sl-row{display:grid;grid-template-columns:32px 200px 120px 1fr;gap:12px;padding:7px 12px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s;align-items:start;font-size:13px;min-width:500px}.sl-row:last-child{border-bottom:none}.sl-row:hover:not(.sl-disabled){background:var(--surface2)}.sl-row.selected{background:#c9a84c14}.sl-row.sl-disabled{opacity:.4;cursor:not-allowed}.sl-row.feat-row{grid-template-columns:32px 200px 110px 160px 1fr;min-width:750px}.selection-list-header.trait-header,.sl-row.trait-row{grid-template-columns:32px 200px 80px 120px 1fr;min-width:650px}.selection-list-header.trait-header.has-ap-col,.sl-row.trait-row.has-ap-col{grid-template-columns:32px 200px 160px 120px 1fr;min-width:650px}.selection-list-header.trait-header.has-birthdate-col,.sl-row.trait-row.has-birthdate-col{grid-template-columns:32px 200px 140px 120px 1fr;min-width:650px}.selection-list-header.has-ap-col,.sl-row.has-ap-col{grid-template-columns:32px 200px 180px 1fr;min-width:650px}.sl-col-ap{font-size:11px;color:var(--gold-dim);text-transform:uppercase;letter-spacing:.04em;padding-top:1px}.trait-ap-filter{margin-top:-6px;padding-top:4px;border-top:1px solid var(--border)}.selection-list-header.feats-header.has-race-col,.sl-row.feat-row.has-race-col{grid-template-columns:32px 200px 110px 100px 160px 1fr;min-width:860px}.sl-col-feat-race{font-size:11px;color:var(--text-dim);font-style:italic;padding-top:1px}.feat-race-filter{margin-top:-6px;padding-top:4px;border-top:1px solid var(--border)}.selection-list-header.feats-header.browse-mode,.sl-row.feat-row.browse-mode{grid-template-columns:200px 110px 160px 1fr;min-width:700px}.selection-list-header.feats-header.has-race-col.browse-mode,.sl-row.feat-row.has-race-col.browse-mode{grid-template-columns:200px 110px 100px 160px 1fr;min-width:800px}.selection-list-header.trait-header.browse-mode,.sl-row.trait-row.browse-mode{grid-template-columns:200px 80px 120px 1fr;min-width:600px}.selection-list-header.drawbacks-header.browse-mode,.sl-row.drawback-row.browse-mode{grid-template-columns:220px 1fr;min-width:400px}.selection-list-header.has-birthdate-col,.sl-row.has-birthdate-col{grid-template-columns:32px 200px 160px 1fr}.sl-col-birthdate{font-size:11px;color:var(--gold-dim);letter-spacing:.02em;padding-top:1px;font-variant-numeric:tabular-nums}.sl-row.prereq-unmet{opacity:.45}.sl-row.prereq-unmet:hover:not(.sl-disabled){background:var(--surface2);opacity:.7}.sl-col-name{font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sl-col-type{font-size:11px;color:var(--gold-dim);text-transform:uppercase;letter-spacing:.04em;padding-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sl-col-req{font-size:11px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sl-col-desc{font-size:12px;color:var(--text-dim);line-height:1.5;overflow:hidden}.sl-col-feat-name{font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:baseline;gap:5px}.feat-choice-tag{font-size:11px;color:var(--gold);font-weight:400;white-space:nowrap;flex-shrink:0}.sl-col-feat-type{font-size:11px;color:var(--gold-dim);text-transform:uppercase;letter-spacing:.04em;padding-top:1px}.sl-col-feat-prereq{font-size:11px;color:var(--text-dim);line-height:1.4}.sl-col-feat-desc{font-size:12px;color:var(--text-dim);line-height:1.5;overflow:hidden}.sl-col-feat-desc.expanded{white-space:pre-wrap;overflow:visible}.sl-col-desc.expanded{overflow:visible}.sl-check{color:var(--gold);font-weight:700}.trait-roll-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:12px}.trait-roll-table th{background:#0000004d;color:var(--gold);font-weight:600;padding:4px 10px;text-align:left;border:1px solid var(--border)}.trait-roll-table td{padding:3px 10px;border:1px solid var(--border);color:var(--text-dim);vertical-align:top;line-height:1.5}.trait-roll-table tr:nth-child(2n) td{background:#ffffff08}.trait-roll-range{white-space:nowrap;font-weight:500;color:var(--gold-dim);width:52px}.selection-list-header.drawbacks-header,.sl-row.drawback-row{grid-template-columns:32px 220px 1fr;min-width:450px}.sl-row.region-row{grid-template-columns:1fr}.sl-pinned-divider{border-top:1px solid var(--gold-dim);margin:4px 0;opacity:.4}.sl-sticky{position:sticky;top:0;z-index:1;background:linear-gradient(#c9a84c14,#c9a84c14) var(--bg)!important;border-bottom:1px solid rgba(122,98,48,.4)!important}.sl-sticky-group{position:sticky;top:0;z-index:1;background:var(--bg);border-bottom:1px solid rgba(122,98,48,.4)}.sl-sticky-group-inner{max-height:35vh;overflow-y:auto}.btn-link{background:none;border:none;color:var(--gold-dim);cursor:pointer;font-size:12px;padding:0 4px;text-decoration:underline}.btn-link:hover{color:var(--gold)}.detail-saves-row{margin-top:4px}.any-bonus-btn{padding:4px 8px;background:var(--surface2);border:1px solid var(--border);border-radius:4px;color:var(--text-dim);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s;line-height:1}.any-bonus-btn:hover{border-color:var(--gold-dim);color:var(--text)}.any-bonus-btn.selected{background:#c9a84c2e;border-color:var(--gold);color:var(--gold);font-weight:700}.any-bonus-btn.inline{padding:3px 6px;font-size:12px}.any-bonus-btn.inline.needs-pick{border-color:var(--gold-dim);color:var(--gold-dim)}.step-spells{display:flex;flex-direction:column;gap:12px;flex:1;overflow-y:auto;padding:16px 20px;-webkit-overflow-scrolling:touch}.step-spells::-webkit-scrollbar{width:4px}.step-spells::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.step-spells-header{display:flex;flex-direction:column;gap:4px}.step-spells-title{font-size:18px;color:var(--gold);font-weight:700;margin:0}.step-spells-note{font-size:12px;color:var(--text-dim);margin:0}.spell-loading{color:var(--text-dim);font-style:italic}.spell-controls{display:flex;gap:10px;flex-wrap:wrap}.spell-search{flex:1;min-width:180px;background:var(--surface2);border:1px solid var(--border);border-radius:4px;color:var(--text);padding:6px 10px;font-size:13px}.spell-search:focus{outline:none;border-color:var(--gold-dim)}.spell-school-select{background:var(--surface2);border:1px solid var(--border);border-radius:4px;color:var(--text);padding:6px 8px;font-size:13px;cursor:pointer}.spell-descriptor-wrap{position:relative}.spell-descriptor-btn{display:flex;align-items:center;gap:6px;background:var(--surface2);border:1px solid var(--border);border-radius:4px;color:var(--text-dim);padding:6px 10px;font-size:13px;cursor:pointer;white-space:nowrap;transition:border-color .15s,color .15s}.spell-descriptor-btn:hover{border-color:var(--gold-dim);color:var(--text)}.spell-descriptor-btn.active{border-color:var(--gold);color:var(--gold);background:#c9a84c1a}.spell-descriptor-arrow{font-size:9px;opacity:.6}.spell-descriptor-panel{position:absolute;top:calc(100% + 4px);left:0;z-index:20;min-width:180px;max-height:260px;overflow-y:auto;background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:6px 4px;box-shadow:0 4px 16px #0006}.spell-descriptor-panel::-webkit-scrollbar{width:4px}.spell-descriptor-panel::-webkit-scrollbar-track{background:transparent}.spell-descriptor-panel::-webkit-scrollbar-thumb{background:#c9a84c4d;border-radius:2px}.spell-descriptor-clear{display:block;width:100%;text-align:left;background:none;border:none;color:var(--gold-dim);font-size:11px;padding:2px 8px 6px;cursor:pointer;border-bottom:1px solid var(--border);margin-bottom:4px}.spell-descriptor-clear:hover{color:var(--gold)}.spell-descriptor-option{display:flex;align-items:center;gap:8px;padding:4px 8px;font-size:13px;color:var(--text);cursor:pointer;border-radius:3px;-webkit-user-select:none;user-select:none}.spell-descriptor-option:hover{background:#ffffff0d}.spell-descriptor-option input[type=checkbox]{accent-color:var(--gold);cursor:pointer}.spell-descriptor-empty{display:block;padding:6px 8px;font-size:12px;color:var(--text-dim)}.spell-level-tabs{display:flex;gap:6px;flex-wrap:wrap}.spell-level-tab{padding:4px 12px;background:var(--surface2);border:1px solid var(--border);border-radius:4px;color:var(--text-dim);font-size:12px;cursor:pointer;transition:all .15s}.spell-level-tab:hover{border-color:var(--gold-dim);color:var(--text)}.spell-level-tab.active{background:#c9a84c2e;border-color:var(--gold);color:var(--gold);font-weight:600}.spell-tab-count{margin-left:5px;font-size:11px;background:#c9a84c26;border-radius:3px;padding:0 4px}.spell-tab-count.full{background:#c9a84c59;color:var(--gold);font-weight:700}.spell-count{font-size:12px;color:var(--text-dim)}.spell-list{display:flex;flex-direction:column;gap:2px}.spell-row{background:var(--surface2);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:border-color .15s;overflow:hidden}.spell-row:hover,.spell-row.expanded{border-color:var(--gold-dim)}.spell-row.selected{border-color:var(--gold);background:#c9a84c12}.spell-row-summary{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:8px 12px}.spell-row-summary.browse-mode{grid-template-columns:1fr auto}.spell-select-btn{width:24px;height:24px;border-radius:50%;border:1px solid var(--border);background:var(--surface3);color:var(--text-dim);font-size:14px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s;line-height:1;padding:0}.spell-select-btn:hover{border-color:var(--gold);color:var(--gold)}.spell-select-btn.chosen{border-color:var(--gold);background:#c9a84c40;color:var(--gold)}.spell-select-btn.at-limit{opacity:.35;cursor:not-allowed}.spell-select-btn.at-limit:hover{border-color:var(--border);color:var(--text-dim)}.spell-select-btn.already-known-btn{opacity:.5;cursor:default}.spell-select-btn.already-known-btn:hover{border-color:var(--gold);color:var(--gold)}.spell-row.already-known{opacity:.6}.spell-name{font-size:14px;font-weight:600;color:var(--text)}.spell-level-badge{font-size:11px;font-weight:700;color:var(--gold);background:#c9a84c1f;border:1px solid rgba(201,168,76,.3);border-radius:3px;padding:2px 6px;white-space:nowrap}.spell-school{font-size:12px;color:var(--text-dim);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.spell-casting-time{font-size:12px;color:var(--text-dim);white-space:nowrap}.magic-section{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}.magic-section-header{font-size:13px;font-weight:700;color:var(--gold);text-transform:uppercase;letter-spacing:.07em;margin:0;padding-bottom:6px;border-bottom:1px solid var(--border)}.magic-level-group{display:flex;flex-direction:column;gap:6px}.magic-level-header{font-size:11px;font-weight:600;color:var(--gold-dim);text-transform:uppercase;letter-spacing:.08em;margin:4px 0 2px}.magic-spell-card{background:var(--surface2);border:1px solid var(--border);border-radius:4px;padding:8px 10px;display:flex;flex-direction:column;gap:4px}.magic-spell-card.collapsible{cursor:pointer;-webkit-user-select:none;user-select:none}.magic-spell-card.collapsible:hover{border-color:var(--gold-dim)}.magic-spell-name{font-size:13px;font-weight:600;color:var(--text);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.magic-spell-chevron{margin-left:auto;font-size:10px;color:var(--text-dim);flex-shrink:0}.magic-spell-school{font-size:10px;color:var(--text-dim);background:var(--surface);border:1px solid var(--border);border-radius:3px;padding:1px 5px;text-transform:uppercase;letter-spacing:.04em;font-weight:400}.magic-prepared-count{font-size:12px;color:var(--gold-dim);font-weight:400}.magic-spell-props{display:flex;flex-direction:column;gap:2px}.magic-spell-prop{display:flex;gap:6px;font-size:11px;color:var(--text);line-height:1.4}.magic-spell-prop span{color:var(--text-dim);font-weight:600;min-width:100px;flex-shrink:0}.magic-spell-desc{font-size:11px;color:var(--text-dim);line-height:1.5;padding-top:4px;border-top:1px solid var(--border);margin-top:2px}.magic-spell-desc p{margin:0}.magic-spell-desc p+p{margin-top:4px}.spell-detail{padding:0 12px 10px;display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--border);margin-top:0}.spell-detail p{font-size:13px;color:var(--text);margin:3px 0;line-height:1.5}.spell-detail p strong{color:var(--gold-dim)}.spell-desc{color:var(--text-dim)!important}.spell-empty{color:var(--text-dim);font-style:italic;text-align:center;padding:20px}.spell-desc-table{border-collapse:collapse;margin:6px 0;color:var(--text-dim)}.spell-desc-table th,.spell-desc-table td{border:1px solid var(--border);padding:4px 10px;text-align:left;font-size:inherit}.spell-desc-table th{background:#c9a84c14;color:var(--text);font-weight:600}.spell-detail .spell-desc-table{font-size:13px}.magic-spell-desc .spell-desc-table{font-size:11px}.step-age{max-width:680px}.age-ageless-note{font-size:13px;color:var(--text-dim);background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:8px 12px;margin-bottom:12px;text-align:left}.age-category-grid{display:flex;flex-direction:column;gap:4px;width:100%;max-width:660px;margin-top:12px}.age-cat-header-row,.age-cat-card{display:grid;grid-template-columns:160px 1fr 1fr;align-items:center;gap:12px;width:100%}.age-cat-header-row{padding:4px 14px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim)}.age-cat-card{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:8px 14px;cursor:pointer;text-align:left;transition:border-color .15s,background .15s}.age-cat-card:hover:not(.locked){border-color:var(--gold-dim);background:var(--surface-2)}.age-cat-card.selected{border-color:var(--gold);background:#c9a84c1a}.age-cat-card.locked{cursor:default;opacity:.75}.age-cat-left{display:flex;flex-direction:column;gap:1px}.age-cat-name{font-size:13px;font-weight:500;color:var(--text)}.age-cat-card.selected .age-cat-name{color:var(--gold);font-weight:600}.age-cat-range{font-size:11px;color:var(--text-dim)}.age-cat-mods{font-size:13px}.age-mods-none{color:var(--text-dim);font-style:italic}.age-mods-mid{color:#7ec8a0}.age-mods-old{color:#c87e7e}.step-favored-class{max-width:560px}.favclass-section{margin-top:18px;display:flex;flex-direction:column;gap:8px;width:100%;max-width:420px;align-self:center}.favclass-label{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-weight:600}.favclass-select{background:var(--surface2);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:14px;padding:8px 12px;max-width:340px}.favclass-bonus-options{display:flex;flex-direction:column;gap:6px;width:100%}.favclass-bonus-item{display:flex;flex-direction:column;gap:2px;padding:10px 14px;background:var(--surface2);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:all .15s;width:100%;box-sizing:border-box}.favclass-bonus-item:hover{border-color:var(--gold-dim)}.favclass-bonus-item.selected{background:#c9a84c1a;border-color:var(--gold)}.favclass-bonus-item strong{font-size:13px;color:var(--text)}.favclass-bonus-item span{font-size:12px;color:var(--text-dim)}.favclass-no-bonus{font-size:13px;color:var(--text-dim);font-style:italic;margin:0}.step-languages{max-width:600px}.language-slots{margin:12px 0 16px;font-size:13px}.language-grid{display:flex;flex-wrap:wrap;gap:6px}.lang-btn{padding:6px 12px;background:var(--surface2);border:1px solid var(--border);border-radius:4px;color:var(--text-dim);font-size:13px;cursor:pointer;transition:all .15s}.lang-btn:hover:not(.sl-disabled){border-color:var(--gold-dim);color:var(--text)}.lang-btn.selected{background:#c9a84c26;border-color:var(--gold);color:var(--gold);font-weight:600}.lang-btn.sl-disabled{opacity:.35;cursor:not-allowed}.mobile-chat-toggle,.mobile-chat-backdrop{display:none}@media (max-width: 768px){.game-header{padding:6px 10px;gap:6px}.campaign-name,.room-code,.player-count{display:none}.logo-small{font-size:13px}.mobile-chat-toggle{display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--border);border-radius:6px;color:var(--text-dim);font-size:16px;width:36px;height:36px;cursor:pointer;flex-shrink:0}.right-col{position:fixed;top:0;right:0;bottom:0;width:88vw!important;max-width:360px;transform:translate(100%);transition:transform .25s ease;z-index:200;box-shadow:-4px 0 24px #00000080}.right-col.mobile-chat-open{transform:translate(0)}.mobile-chat-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:199}.sandbox-header{padding:6px 8px;gap:8px;height:auto;min-height:48px;flex-wrap:wrap}.sandbox-tabs{justify-content:flex-start;overflow-x:auto;flex:1;-webkit-overflow-scrolling:touch;scrollbar-width:none}.sandbox-tabs::-webkit-scrollbar{display:none}.sandbox-tab{white-space:nowrap;padding:6px 10px;font-size:12px}.sandbox-header-left{display:none}.spell-controls{flex-wrap:wrap}.spell-search{width:100%}.spell-level-tabs{gap:4px}.spell-level-tab{font-size:11px;padding:4px 8px}.sandbox-room,.campaign-room,.force-char-builder-overlay{height:100dvh}.step-4panel,.step-3panel{flex-direction:column;height:auto;overflow:visible}.step-4panel>.panel-narrow,.step-3panel>.panel-narrow{width:100%;flex-direction:row;flex-wrap:nowrap;height:auto;border-right:none;border-bottom:1px solid var(--border);overflow:hidden}.step-4panel>.panel-narrow .panel-header,.step-3panel>.panel-narrow .panel-header{writing-mode:horizontal-tb;white-space:nowrap;padding:8px 10px;flex-shrink:0}.step-4panel>.panel-narrow .panel-list,.step-3panel>.panel-narrow .panel-list{flex-direction:row;flex-wrap:nowrap;overflow-x:auto;gap:4px;padding:6px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.step-4panel>.panel-narrow .panel-list::-webkit-scrollbar,.step-3panel>.panel-narrow .panel-list::-webkit-scrollbar{display:none}.step-4panel>.panel-narrow .panel-item,.step-3panel>.panel-narrow .panel-item{white-space:nowrap;flex-shrink:0}.step-4panel>.panel-medium,.step-3panel>.panel-medium{width:100%;max-height:220px;border-right:none;border-bottom:1px solid var(--border)}.panel-detail{width:100%;overflow-y:visible;border-right:none}.creation-footer{position:fixed;bottom:0;left:0;right:0;z-index:50;padding-bottom:max(10px,env(safe-area-inset-bottom))}.creation-body{padding-bottom:64px;overflow-y:auto}.lobby{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:20px 16px}.lobby-card{flex-shrink:0;margin-top:auto;margin-bottom:auto;width:100%;max-width:420px;border-radius:8px;padding:24px 20px;box-shadow:none}button,select,input[type=text],input[type=number]{min-height:36px}.arena-combat-map-area,.map-area{overflow:hidden}.map-with-overlay{flex:1;min-height:0}.combat-map-scroll{overflow:auto;-webkit-overflow-scrolling:touch;justify-content:flex-start;align-items:flex-start;padding:8px 8px 160px}.combat-map-scroll .map-with-labels{transform:none!important}.combat-action-bar{position:fixed!important;bottom:0!important;left:0!important;right:0!important;width:100%!important;max-width:100%!important;transform:none!important;border-radius:0!important;border-left:none!important;border-right:none!important;padding-bottom:max(8px,env(safe-area-inset-bottom))!important;z-index:50}.arena-roster,.arena-right-group,.arena-combat-log,.map-with-overlay .initiative-tracker{display:none!important}.map-view-toggle-btn{padding:2px 8px;font-size:11px}.cab-top-row{gap:6px}.cab-turn-banner{font-size:12px}.cab-chips{gap:4px}.cab-chip{font-size:9px;padding:2px 5px}.cab-actions{gap:4px;flex-wrap:wrap}.cab-btn{font-size:11px;padding:5px 10px}}.base-creature-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:12px}.browser-layout{display:flex;gap:0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;flex:1;min-height:320px;max-height:480px}.browser-list{width:280px;flex-shrink:0;overflow-y:auto;border-right:1px solid var(--border);background:var(--surface)}.browser-item{display:flex;flex-direction:column;gap:2px;padding:7px 12px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .1s}.browser-item:hover{background:var(--surface2)}.browser-item.selected{background:#c9a84c1f;border-left:3px solid var(--gold);padding-left:9px}.bi-name{font-size:13px;font-weight:500;color:var(--text)}.bi-meta{font-size:11px;color:var(--text-dim)}.browser-detail{flex:1;overflow-y:auto;padding:14px 16px;font-size:13px;color:var(--text);line-height:1.6}.browser-detail h3{margin:0 0 4px;font-size:15px;color:var(--gold)}.browser-hint{color:var(--text-dim);font-style:italic;font-size:13px}.detail-meta{font-size:12px;color:var(--text-dim);margin:0 0 10px}.detail-section{margin-bottom:6px;font-size:12px;color:var(--text-dim)}.detail-section strong{color:var(--text)}.browser-cat-tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}.monster-filters{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap}.browser-search{flex:1;min-width:140px;padding:6px 10px;font-size:13px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text)}.browser-select{padding:5px 8px;font-size:12px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text)}.race-browser,.monster-browser{display:flex;flex-direction:column;flex:1}.step-templates{padding:0 2px}.template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin-top:10px}.template-card{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;cursor:pointer;transition:border-color .15s,background .15s;text-align:left}.template-card:hover{border-color:var(--gold-dim)}.template-card.selected{background:#c9a84c1f;border-color:var(--gold)}.tc-name{font-size:13px;font-weight:600;color:var(--text);margin-bottom:2px}.tc-meta{font-size:11px;color:var(--gold-dim);margin-bottom:4px}.tc-desc{font-size:11px;color:var(--text-dim);line-height:1.5}.template-selected-summary{margin-top:12px;font-size:13px;color:var(--text-dim)}.step-classes{padding:0 2px}.class-entry-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}.class-entry-select{flex:1;min-width:180px;padding:6px 8px;font-size:13px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text)}.class-entry-level-label{font-size:12px;color:var(--text-dim);white-space:nowrap}.class-entry-level{width:56px;padding:5px 6px;font-size:13px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);text-align:center}.btn-remove-class{background:none;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dim);padding:4px 8px;font-size:12px;cursor:pointer}.btn-remove-class:hover{color:#e05;border-color:#e05}.btn-add-class{display:inline-flex;align-items:center;gap:6px;background:none;border:1px dashed var(--border);border-radius:var(--radius);color:var(--gold-dim);padding:7px 16px;font-size:13px;cursor:pointer;margin-top:4px;transition:border-color .15s,color .15s}.btn-add-class:hover:not(:disabled){border-color:var(--gold);color:var(--gold)}.btn-add-class:disabled{opacity:.4;cursor:not-allowed}.ability-stepper{display:flex;align-items:center;gap:4px}.ability-stepper button{width:24px;height:24px;min-height:unset;padding:0;font-size:16px;line-height:1;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center}.ability-stepper button:hover{border-color:var(--gold-dim)}.ability-stepper .ability-score{font-size:20px}.ability-racial{font-size:10px;color:var(--gold-dim)}.ability-cost{font-size:10px;color:var(--text-dim)}.ability-budget-bar{font-size:13px;color:var(--text-dim);margin-bottom:10px}.ability-budget-bar strong{color:var(--text)}.free-bonus-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap;font-size:13px;color:var(--text-dim)}.free-bonus-buttons{display:flex;gap:6px;flex-wrap:wrap}.free-bonus-btn{padding:4px 10px;font-size:12px;font-weight:600;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dim);cursor:pointer;transition:all .15s}.free-bonus-btn:hover{border-color:var(--gold-dim);color:var(--text)}.free-bonus-btn.selected{background:#c9a84c26;border-color:var(--gold);color:var(--gold)}.di-name{font-weight:500;font-size:13px}.di-meta{font-size:12px;color:var(--text-dim)}.di-domains{font-size:11px;color:var(--gold-dim)}.step-spells h2,.step-spells .step-note{flex-shrink:0}.feat-filters{display:flex;flex-direction:column;gap:8px;margin-bottom:10px;flex-shrink:0}.feat-cat-tabs{display:flex;flex-wrap:wrap;gap:4px}.feat-list{overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:6px}.feat-item{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:8px 12px;cursor:pointer;font-size:13px;transition:border-color .12s,background .12s;text-align:left}.feat-item:hover{border-color:var(--gold-dim)}.feat-item.selected{background:#c9a84c1f;border-color:var(--gold)}.fi-header{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:2px}.fi-name{font-weight:600;color:var(--text)}.fi-types{font-size:11px;color:var(--gold-dim)}.fi-prereq{font-size:11px;color:var(--text-dim);margin-bottom:2px}.fi-benefit{font-size:12px;color:var(--text-dim);line-height:1.4}.selected-summary{font-size:12px;color:var(--text-dim);background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:6px 10px;flex-shrink:0}.selected-summary strong{color:var(--text)}.language-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.lang-chip{padding:4px 12px;font-size:12px;background:var(--surface2);border:1px solid var(--border);border-radius:999px;color:var(--text-dim);cursor:pointer;transition:all .12s}.lang-chip:hover{border-color:var(--gold-dim);color:var(--text)}.lang-chip.selected{background:#c9a84c26;border-color:var(--gold);color:var(--gold);font-weight:600}.custom-lang-row{display:flex;gap:8px;margin-bottom:8px}.custom-lang-input{flex:1;padding:6px 10px;font-size:13px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text)}.custom-lang-tag{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;font-size:12px;background:#c9a84c1f;border:1px solid var(--gold-dim);border-radius:999px;color:var(--gold);margin:2px 4px 2px 0}.custom-lang-tag button{background:none;border:none;padding:0;min-height:unset;font-size:11px;color:var(--gold-dim);cursor:pointer;line-height:1}.step-skills{display:flex;flex-direction:column;height:100%;overflow:hidden}.skill-budget{font-size:13px;color:var(--text-dim);margin-bottom:8px;flex-shrink:0}.skill-budget-detail{margin-left:8px;font-size:11px;opacity:.75}.skills-two-col{display:flex;gap:16px;overflow-y:auto;flex:1}.skills-col{flex:1;min-width:0}.skills-col-head{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--gold-dim);margin:0 0 6px}.skills-guide-table{width:100%;border-collapse:collapse;font-size:12px}.skills-guide-table thead th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);padding:2px 6px 4px;border-bottom:1px solid var(--border)}.skills-guide-table tbody tr{border-bottom:1px solid rgba(255,255,255,.04)}.skills-guide-table tbody td{padding:3px 6px;color:var(--text-dim);vertical-align:middle}.skills-guide-table tbody td:first-child{padding-left:2px}.skill-row-active td{color:var(--text)}.skill-rank-btn{width:20px;height:20px;min-height:unset;padding:0;font-size:11px;background:var(--surface2);border:1px solid var(--border);border-radius:3px;color:var(--text-dim);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.skill-rank-btn:hover{border-color:var(--gold-dim)}.skill-rank-btn.active{background:#c9a84c33;border-color:var(--gold);color:var(--gold)}.skill-total{font-weight:600;color:var(--gold-dim);text-align:right}.review-section{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:8px}.review-section-head{display:flex;justify-content:space-between;align-items:center;padding:6px 12px;background:var(--surface2);border-bottom:1px solid var(--border)}.review-section-head h3{margin:0;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--gold-dim)}.review-edit-btn{font-size:11px;padding:2px 8px;background:none;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dim);cursor:pointer;min-height:unset}.review-edit-btn:hover{border-color:var(--gold-dim);color:var(--text)}.review-section-body{padding:8px 12px;font-size:13px;color:var(--text)}.review-section-body p{margin:0 0 4px}.review-section-body p:last-child{margin-bottom:0}.review-abilities{display:flex;flex-wrap:wrap;gap:12px}.review-ab{font-size:13px}.review-ab strong{color:var(--gold-dim);margin-right:4px}.ability-col-headers--npc-race,.ability-buy-row--npc-race{grid-template-columns:140px 130px 60px 100px 80px 80px}.npc-ability-budget-controls{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.npc-pointbuy-options{display:flex;gap:4px}.npc-pointbuy-btn{padding:4px 10px;font-size:11px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dim);cursor:pointer}.npc-pointbuy-btn.active{border-color:var(--gold-dim);color:var(--gold);background:#d4af371a}.npc-pointbuy-btn:hover:not(.active){border-color:var(--border-light, var(--border));color:var(--text)}.step-abilities-npc{display:flex;flex-direction:column;gap:16px;padding:4px 2px}.bonus-pool{display:flex;flex-direction:column;gap:8px;background:var(--surface2);border:2px dashed var(--border);border-radius:var(--radius);padding:12px 16px;transition:border-color .15s,background .15s}.bonus-pool.drag-over{border-color:var(--gold-dim);background:#c9a84c0f}.bonus-pool-label{font-size:12px;color:var(--text-dim)}.bonus-tokens{display:flex;gap:8px;flex-wrap:wrap}.bonus-token{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:36px;padding:0 10px;font-size:15px;font-weight:700;border-radius:var(--radius);border:2px solid var(--gold-dim);background:#c9a84c1f;color:var(--gold);cursor:grab;-webkit-user-select:none;user-select:none;transition:border-color .12s,background .12s,transform .1s}.bonus-token:active{cursor:grabbing;transform:scale(1.08)}.bonus-token:hover{border-color:var(--gold);background:#c9a84c33}.bonus-token.assigned{font-size:13px;min-width:38px;height:30px}.bonus-all-assigned{color:var(--gold);font-weight:600;margin-left:6px}.ability-rows-npc{display:flex;flex-direction:column;gap:6px}.ability-row-npc{display:flex;align-items:center;gap:12px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:8px 14px;transition:border-color .12s,background .12s}.ability-row-npc.drag-over{border-color:var(--gold);background:#c9a84c14}.ability-row-npc.has-bonus{border-color:var(--gold-dim)}.arn-label{width:100px;font-size:12px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.arn-scores{display:flex;align-items:center;gap:10px;flex:1}.arn-base-block,.arn-final-block{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:36px}.arn-score-val{font-size:18px;font-weight:700;color:var(--text);line-height:1}.arn-final-val{color:var(--gold)}.arn-score-sub{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em}.arn-bonus-slot{display:flex;align-items:center;justify-content:center;min-width:48px;height:36px;border-radius:var(--radius);border:2px dashed var(--border);transition:border-color .12s}.arn-bonus-slot.occupied{border-style:solid;border-color:var(--gold-dim)}.arn-drop-hint{font-size:10px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;pointer-events:none}.monster-detail{font-size:12px;color:var(--text-dim);line-height:1.6}.md-name{font-size:16px;font-weight:700;color:var(--gold);margin:0 0 2px}.md-type{font-size:12px;color:var(--text-dim);margin:0 0 10px;font-style:italic}.md-row{margin-bottom:4px;font-size:12px;color:var(--text-dim)}.md-row strong{color:var(--text);margin-right:4px}.md-abilities{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0;padding:6px 8px;background:var(--surface2);border-radius:var(--radius)}.md-ab{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:32px}.md-ab-label{font-size:9px;font-weight:700;text-transform:uppercase;color:var(--gold-dim);letter-spacing:.05em}.md-ab-score{font-size:14px;font-weight:600;color:var(--text)}.md-flavor{margin-top:10px;font-style:italic;color:var(--text-dim);font-size:11px;line-height:1.6;border-top:1px solid var(--border);padding-top:8px}.npc-cr-badge{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;background:#c9a84c26;border:1px solid var(--gold-dim);border-radius:999px;color:var(--gold);margin-left:8px;vertical-align:middle}.btn-delete-npc{background:none;border:1px solid var(--border);color:var(--text-dim);font-size:14px;padding:4px 10px;cursor:pointer;border-radius:var(--radius);transition:border-color .12s,color .12s}.btn-delete-npc:hover{border-color:#e05;color:#e05}.step-class-choices{padding:16px 20px;display:flex;flex-direction:column;gap:12px;flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.step-class-choices::-webkit-scrollbar{width:4px}.step-class-choices::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.step-class-choices h2{font-size:18px;color:var(--gold);font-weight:600}.step-hint{color:var(--text-dim);font-size:13px;line-height:1.6}.step-hint strong{color:var(--text)}.step-hint.chosen-count{color:var(--text);font-size:13px}.step-hint-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin-bottom:-4px}.step-hint-label .chosen-count{font-weight:400;font-size:12px;color:var(--text-dim)}.class-choice-search{width:100%;padding:7px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:13px}.class-choice-search:focus{outline:none;border-color:var(--gold-dim)}.class-choice-grid{display:flex;flex-wrap:wrap;gap:6px}.class-choice-btn{padding:6px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:13px;cursor:pointer;transition:border-color .12s,background .12s,color .12s;white-space:nowrap}.class-choice-btn:hover:not(.disabled){border-color:var(--gold-dim);background:var(--surface2)}.class-choice-btn.selected{border-color:var(--gold);background:#c9a84c1f;color:var(--gold);font-weight:600}.class-choice-btn.selected.opposition{border-color:var(--red);background:#e74c3c1a;color:var(--red)}.class-choice-btn.disabled{opacity:.35;cursor:not-allowed}.domain-row-disabled{opacity:.5}.domain-row-disabled .spell-name{opacity:.65}.domain-restricted-badge{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);background:var(--surface3);border:1px solid var(--border);border-radius:3px;padding:2px 6px;white-space:nowrap}.domain-detail{gap:8px!important}.domain-description{color:var(--text-dim)!important;font-style:italic;margin-bottom:4px!important}.domain-section{display:flex;flex-direction:column;gap:4px}.domain-section-header{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--gold-dim);border-bottom:1px solid var(--border);padding-bottom:3px;margin-bottom:2px}.domain-power{font-size:13px;color:var(--text);line-height:1.5}.domain-power-name{font-weight:600;color:var(--gold-dim)}.domain-power-desc{color:var(--text-dim)}.bloodline-power-level{font-weight:400;font-size:11px;color:var(--text-dim)}.bloodline-race-req{font-size:11px;color:var(--red);margin-left:6px;opacity:.85}.spell-row.race-locked{opacity:.5}.domain-spells-list{display:flex;flex-direction:column;gap:2px}.domain-spell-entry{font-size:13px;color:var(--text)}.domain-spell-level{font-weight:600;color:var(--gold-dim);min-width:32px;display:inline-block}.domain-spell-name{color:var(--text)}.domain-deities-list{font-size:13px;color:var(--text-dim);line-height:1.6;margin:0}.domain-subdomains-section{display:flex;flex-direction:column;gap:6px;margin-top:4px}.domain-subdomain-list{display:flex;flex-direction:column;gap:4px;margin-top:4px}.domain-subdomain-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.domain-subdomain-panel.expanded{border-color:var(--gold-dim)}.domain-subdomain-trigger{width:100%;display:flex;align-items:center;gap:8px;padding:4px 10px;background:none;color:var(--text)}.domain-subdomain-trigger:hover,.domain-subdomain-panel.expanded .domain-subdomain-trigger{background:var(--surface2)}.domain-subdomain-expand{flex:1;display:flex;align-items:center;justify-content:space-between;background:none;border:none;cursor:pointer;text-align:left;gap:8px;color:inherit;padding:2px 0}.domain-subdomain-name{font-size:13px;font-weight:500;color:var(--text);flex:1}.domain-subdomain-arrow{font-size:10px;color:var(--text-dim);flex-shrink:0}.domain-subdomain-detail{border-top:1px solid var(--border);padding:10px 12px;display:flex;flex-direction:column;gap:8px;background:var(--surface2)}.domain-subdomain-power-text{font-size:13px;color:var(--text-dim);line-height:1.6;margin:0;white-space:pre-wrap}.lobby-toggle-label{display:flex;align-items:center;gap:8px;cursor:pointer;margin-bottom:8px;color:var(--text);font-size:14px}.lobby-toggle-label input[type=checkbox]{accent-color:var(--gold);width:16px;height:16px;cursor:pointer}.step-spells-prepared{display:flex;flex-direction:column;gap:14px;height:100%}.prepared-slots-counter{display:flex;align-items:center;gap:10px}.step-note-inline{font-size:12px;color:var(--text-dim)}.prepare-math-block{background:var(--bg-panel, #1a1e2a);border:1px solid var(--border);border-radius:6px;padding:12px 16px;display:flex;flex-direction:column;gap:10px;flex-shrink:0}.prepare-math-stat{font-size:13px;color:var(--text-dim);display:flex;align-items:center;gap:6px}.prepare-math-stat strong{color:var(--text)}.prepare-math-score{font-size:13px;color:var(--gold);font-weight:700;margin-left:4px}.prepare-math-mod{font-size:12px;color:var(--text-dim)}.prepare-math-table{width:100%;border-collapse:collapse;font-size:12px}.prepare-math-table th{text-align:left;color:var(--text-dim);font-weight:600;padding:2px 8px 4px 0;border-bottom:1px solid var(--border);white-space:nowrap}.prepare-math-table td{padding:3px 8px 3px 0;color:var(--text);white-space:nowrap}.prepare-math-table tr:not(:last-child) td{border-bottom:1px solid rgba(255,255,255,.05)}.prepare-math-total{color:var(--gold);font-weight:700}.spell-name-group{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}.bloodline-subchoice-select{background:var(--surface2);border:1px solid var(--gold);border-radius:4px;color:var(--text);font-size:12px;padding:2px 6px;cursor:pointer;flex-shrink:0}.bloodline-subchoice-select:focus{outline:none;border-color:var(--gold)}.channel-energy-section{background:var(--bg-panel, #1a1e2a);border:1px solid var(--border);border-radius:6px;padding:14px 16px;display:flex;flex-direction:column;gap:8px;flex-shrink:0}.channel-energy-heading{font-size:13px;font-weight:700;color:var(--gold);letter-spacing:.03em;margin:0}.channel-energy-locked-note{font-size:11px;color:var(--gold-dim, #a08040);font-style:italic;margin:0}.channel-energy-toggle{display:flex;gap:10px}.channel-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 16px;background:var(--bg-row, #1e2235);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:13px;font-weight:600;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.channel-btn:hover:not(:disabled){border-color:var(--gold-dim, #a08040)}.channel-btn:disabled{opacity:.4;cursor:not-allowed}.channel-btn.chosen{background:color-mix(in srgb,var(--gold) 12%,transparent);border-color:var(--gold);color:var(--gold)}.channel-btn.positive.chosen{border-color:#6abeae;color:#6abeae;background:color-mix(in srgb,#6abeae 10%,transparent)}.channel-btn.negative.chosen{border-color:#9c6bae;color:#9c6bae;background:color-mix(in srgb,#9c6bae 10%,transparent)}.channel-btn-sub{font-size:10px;font-weight:400;color:var(--text-dim);letter-spacing:.02em}.channel-btn.chosen .channel-btn-sub{color:inherit;opacity:.75}.domain-spell-picker{background:var(--bg-panel, #1a1e2a);border:1px solid var(--gold);border-radius:6px;padding:12px 16px;display:flex;flex-direction:column;gap:10px;flex-shrink:0}.domain-spell-picker-header{font-size:13px;font-weight:700;color:var(--gold);letter-spacing:.03em}.domain-spell-picker-note{font-size:11px;color:var(--text-dim);margin:0}.domain-picker-level-group{display:flex;flex-direction:column;gap:6px}.domain-picker-level-header{font-size:11px;font-weight:700;color:var(--gold-dim, #a08040);text-transform:uppercase;letter-spacing:.07em}.domain-picker-spell-list{display:flex;flex-direction:column;gap:2px}.domain-spell-badge{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--gold);border:1px solid var(--gold);border-radius:3px;padding:0 4px;margin-left:6px;vertical-align:middle;opacity:.85}.spell-row.domain-locked{background:color-mix(in srgb,var(--gold) 5%,transparent)}.spell-row.opposed-spell{opacity:.55}.opposed-spell-badge{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:#8b1a1a;border-radius:3px;padding:1px 5px;margin-left:6px;vertical-align:middle}.spell-level-sections{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:16px;padding-right:4px}.spell-level-group{display:flex;flex-direction:column;gap:6px}.spell-level-header{font-size:12px;font-weight:700;color:var(--gold-dim);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--border);padding-bottom:4px}.spell-grid{display:flex;flex-wrap:wrap;gap:6px}.prepared-list{font-size:13px;color:var(--text-dim);border-top:1px solid var(--border);padding-top:8px}.step-shop{display:flex;flex-direction:column;gap:12px;height:100%}.shop-gold-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.shop-gold-prompt{font-size:14px;color:var(--text-dim)}.shop-gold-btn{padding:5px 12px;font-size:13px}.shop-gold-total,.shop-gold-remaining{font-size:14px}.shop-gold-reroll{background:none;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dim);padding:2px 8px;cursor:pointer;font-size:16px}.shop-gold-reroll:hover{border-color:var(--gold-dim);color:var(--gold)}.ib-layout{display:flex;gap:12px;flex:1;min-height:0}.ib-browser{display:flex;flex-direction:column;gap:8px;flex:1;min-width:0}.ib-tabs{display:flex;gap:4px}.ib-tab{padding:5px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dim);cursor:pointer;font-size:13px}.ib-tab.active{border-color:var(--gold);color:var(--gold);background:#c9a84c14}.ib-controls{display:flex;flex-direction:column;gap:6px}.ib-search{padding:6px 10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:13px;width:100%}.ib-cat-btns{display:flex;flex-wrap:wrap;gap:4px}.ib-cat-btn{padding:3px 10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dim);cursor:pointer;font-size:12px}.ib-cat-btn.active{border-color:var(--gold-dim);color:var(--gold)}.ib-items{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:2px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.ib-items::-webkit-scrollbar{width:4px}.ib-items::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.ib-items::-webkit-scrollbar-track{background:transparent}.ib-row{border:1px solid transparent;border-radius:var(--radius);cursor:pointer;transition:background .1s}.ib-row:hover:not(.ib-item-disabled){background:var(--surface2)}.ib-row.expanded{background:var(--surface2);border-color:var(--border)}.ib-item-disabled{opacity:.4;cursor:default}.ib-row-summary{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;gap:8px}.ib-item-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.ib-item-name{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ib-item-meta{display:flex;gap:8px;flex-wrap:wrap}.ib-item-meta span{font-size:11px;color:var(--text-dim)}.ib-item-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.ib-item-cost{font-size:11px;color:var(--gold-dim);white-space:nowrap}.ib-add-btn{width:24px;height:24px;border-radius:50%;background:var(--surface2);border:1px solid var(--border);color:var(--gold);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:1;flex-shrink:0}.ib-add-btn:hover:not(:disabled){background:#c9a84c26;border-color:var(--gold)}.ib-add-btn:disabled{opacity:.3;cursor:not-allowed}.weapon-row{display:grid!important;grid-template-columns:minmax(120px,2fr) 52px 58px 62px 48px 68px 64px minmax(60px,1fr) 78px;align-items:center;column-gap:14px;padding:6px 10px}.ib-browser .weapon-row:not(.weapon-header){background:transparent;border:none;border-radius:0;margin-bottom:0}.ib-browser .weapon-header{background:transparent;border:none;border-radius:0;margin-bottom:0;border-bottom:1px solid var(--border)}.weapon-row.has-btn{grid-template-columns:minmax(120px,2fr) 52px 58px 62px 48px 68px 64px minmax(60px,1fr) 78px 28px}.weapon-header{flex-shrink:0;padding:4px 10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);border-bottom:1px solid var(--border)}.weapon-cell{font-size:11px;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.weapon-cell-name{font-size:13px;font-weight:500;color:var(--text)}.weapon-cell-cost{color:var(--gold-dim);text-align:right}.magic-item-row{display:grid;grid-template-columns:minmax(120px,2fr) 120px 100px;align-items:center;column-gap:14px;padding:6px 10px}.magic-item-row.has-btn{grid-template-columns:minmax(120px,2fr) 120px 100px 28px}.magic-item-header{flex-shrink:0;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);border-bottom:1px solid var(--border)}.magic-item-cell-cost{color:var(--gold-dim);text-align:right}.ib-browser .magic-item-header{background:transparent;border-top:none;border-left:none;border-right:none}.ib-row-detail{border-top:1px solid var(--border);padding:10px 14px 12px;font-size:13px;color:var(--text);line-height:1.7}.ib-detail-grid{display:flex;flex-direction:column;gap:3px}.ib-detail-row{display:flex;gap:12px}.ib-detail-label{min-width:150px;color:var(--text-dim);font-size:12px;flex-shrink:0}.ib-detail-section-heading{font-size:11px;font-weight:700;color:var(--gold-dim);text-transform:uppercase;letter-spacing:.08em;margin-top:8px;padding-top:6px;border-top:1px solid var(--border)}.ib-mode-toggle{margin-bottom:4px;flex-shrink:0}.ib-cart{width:200px;flex-shrink:0;display:flex;flex-direction:column;gap:6px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px}.ib-cart-header{font-size:12px;font-weight:700;color:var(--gold-dim);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--border);padding-bottom:6px}.ib-cart-empty{font-size:12px;color:var(--text-dim)}.ib-cart-list{list-style:none;display:flex;flex-direction:column;gap:4px;overflow-y:auto;flex:1}.ib-cart-item{display:flex;align-items:flex-start;gap:6px;font-size:12px;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.04)}.ib-ci-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ib-ci-cost{color:var(--gold-dim);white-space:nowrap}.ib-ci-remove{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:12px;padding:2px;flex-shrink:0}.ib-ci-remove:hover{color:var(--red)}.ib-cart-total{font-size:13px;font-weight:600;border-top:1px solid var(--border);padding-top:6px}.ib-browse-root{overflow:hidden}.ib-browse-root .ib-browser{flex:1;min-height:0;overflow:hidden}.eb-root{display:flex;flex-direction:column;gap:8px;flex:1;min-height:0;overflow:hidden}.eb-root .ib-browser{flex:1;min-height:0;overflow:hidden}.eb-static-panel{display:flex;flex-direction:column;gap:10px;padding:4px 2px}.eb-static-heading{font-size:13px;font-weight:600;color:var(--gold-dim);text-transform:uppercase;letter-spacing:.06em;margin:8px 0 2px;border-bottom:1px solid var(--border);padding-bottom:4px}.eb-static-heading:first-child{margin-top:0}.eb-static-body{font-size:13px;color:var(--text);line-height:1.65;margin:0}.eb-static-note{font-size:12px;color:var(--text-dim);margin:0}.eb-static-cost-row{display:flex;gap:10px;font-size:13px}.eb-static-cost-label{color:var(--text-dim);flex-shrink:0}.eb-static-cost-value{color:var(--text)}.eb-bonus-table{border-collapse:collapse;font-size:13px;width:auto}.eb-bonus-table th{text-align:left;padding:4px 14px 4px 0;color:var(--text-dim);font-size:11px;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--border)}.eb-bonus-table td{padding:4px 14px 4px 0;color:var(--text)}.eb-bonus-table tr:last-child td{border-bottom:none}.btn-inv-enhance{padding:2px 8px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);color:var(--gold-dim);font-size:11px;cursor:pointer;flex-shrink:0;white-space:nowrap}.btn-inv-enhance:hover{border-color:var(--gold);color:var(--gold);background:#c9a84c1a}.enhance-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:300}.enhance-modal{position:relative;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);width:min(900px,95vw);height:min(720px,90vh);display:flex;flex-direction:column;padding:20px;overflow:hidden}.enhance-modal-close{position:absolute;top:10px;right:12px;background:transparent;border:none;color:var(--text-dim);font-size:18px;cursor:pointer;line-height:1;padding:4px 6px;border-radius:var(--radius)}.enhance-modal-close:hover{color:var(--text);background:var(--surface2)}.enhance-modal .eb-root{flex:1;min-height:0;overflow:hidden}.ssg-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:200}.ssg-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:min(900px,96vw);max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.ssg-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border)}.ssg-title{font-size:16px;font-weight:700;color:var(--gold)}.ssg-steps{display:flex;align-items:center;gap:6px}.ssg-step-dot{width:24px;height:24px;border-radius:50%;background:var(--surface2);border:2px solid var(--border);color:var(--text-dim);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}.ssg-step-dot.active{border-color:var(--gold);color:var(--gold);background:#c9a84c1f}.ssg-step-dot.done{border-color:var(--gold-dim);background:#c9a84c14;color:var(--gold-dim)}.ssg-step-line{width:24px;height:2px;background:var(--border)}.ssg-body{flex:1;display:flex;flex-direction:column;gap:16px;overflow:hidden}.ssg-gold-step{padding:24px;align-items:center}.ssg-step-title{font-size:20px;font-weight:700;color:var(--gold)}.ssg-note{font-size:14px;color:var(--text-dim);text-align:center;max-width:480px}.ssg-gold-options{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.ssg-gold-btn{padding:10px 20px;font-size:15px;display:flex;align-items:center;gap:8px}.ssg-rolled-result{font-size:13px;color:inherit}.ssg-gold-locked{display:flex;align-items:center;gap:12px;background:#c9a84c14;border:1px solid var(--gold-dim);border-radius:var(--radius);padding:10px 16px}.ssg-gold-amount{font-size:16px}.ssg-gold-locked-label{font-size:12px;color:var(--gold-dim)}.ssg-footer{display:flex;justify-content:space-between;padding:14px 18px;border-top:1px solid var(--border);flex-shrink:0}.ssg-footer button:last-child{margin-left:auto}.ssg-shop-step{padding:0}.ssg-shop-top{padding:10px 18px;border-bottom:1px solid var(--border);flex-shrink:0}.ssg-gold-bar{display:flex;gap:20px;font-size:14px}.ssg-shop-step .ib-layout{flex:1;min-height:0;padding:12px 18px 0}.ssg-shop-step .ssg-footer{margin-top:0}.psp-root{display:flex;flex-direction:column;gap:12px}.psp-loading{display:flex;gap:6px;justify-content:center;padding:32px}.psp-empty{color:var(--text-dim);font-size:14px;padding:20px 0}.psp-search{width:100%;box-sizing:border-box;padding:7px 12px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-deep);color:var(--text-main);font-size:14px}.psp-search:focus{outline:none;border-color:var(--gold-dim)}.psp-slot-summary{display:flex;flex-wrap:wrap;gap:6px}.psp-slot-chip{display:flex;flex-direction:column;align-items:center;padding:4px 8px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-panel);min-width:42px}.psp-slot-chip.psp-slot-full{border-color:var(--gold-dim);background:#c9a84c14}.psp-slot-chip.psp-slot-locked{opacity:.4}.psp-slot-level{font-size:10px;color:var(--text-dim)}.psp-slot-count{font-size:13px;font-weight:600;color:var(--text-main)}.psp-levels{display:flex;flex-direction:column;gap:16px}.psp-level-section{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.psp-level-section.psp-level-locked{opacity:.5}.psp-level-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--bg-deep);border-bottom:1px solid var(--border)}.psp-level-name{font-size:13px;font-weight:700;color:var(--gold)}.psp-level-slots{font-size:12px;color:var(--text-dim)}.psp-slots-full{color:var(--gold);font-weight:600}.psp-slots-avail{color:var(--text-main)}.psp-slot-breakdown{color:var(--text-dim);font-size:11px}.psp-level-locked-label{font-size:12px;color:var(--text-dim)}.psp-spell-list{display:flex;flex-direction:column}.psp-spell-row{display:flex;align-items:center;gap:10px;padding:6px 12px;border-bottom:1px solid rgba(255,255,255,.04);transition:background .1s}.psp-spell-row:last-child{border-bottom:none}.psp-spell-row.psp-spell-prepared{background:#c9a84c0f}.psp-spell-row.psp-spell-disabled{opacity:.4}.psp-counter{display:flex;align-items:center;gap:4px;flex-shrink:0}.psp-counter-btn{width:22px;height:22px;border-radius:50%;border:1px solid var(--border);background:var(--bg-deep);color:var(--text-main);font-size:14px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}.psp-counter-btn:hover:not(:disabled){border-color:var(--gold-dim);color:var(--gold)}.psp-counter-btn:disabled{opacity:.3;cursor:default}.psp-counter-val{width:20px;text-align:center;font-size:14px;font-weight:600;color:var(--text-main)}.psp-spell-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.psp-spell-name{font-size:14px;color:var(--text-main);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.psp-spell-meta{display:flex;gap:8px;flex-wrap:wrap}.feattab-heading{font-size:13px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;margin:0 0 8px}.feattab-empty{font-size:13px;color:var(--text-dim);font-style:italic;margin:0 0 16px}.feattab-table-wrap{overflow-x:auto;margin-bottom:24px}.feattab-table{width:100%;border-collapse:collapse;font-size:13px;color:var(--text)}.feattab-table thead tr{background:var(--surface2);border-bottom:2px solid var(--border)}.feattab-table th{padding:7px 12px;text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);white-space:nowrap}.feattab-table td{padding:8px 12px;vertical-align:top;border-bottom:1px solid var(--border);line-height:1.5}.feattab-col-level{width:96px}.feattab-col-name,.feattab-col-trait-name{width:220px}.feattab-col-benefit{min-width:200px}.feattab-cell-level{font-size:12px;color:var(--text-dim);text-align:center}.feattab-cell-name,.feattab-cell-trait-name{font-weight:500;white-space:nowrap}.feattab-row--expandable{cursor:pointer}.feattab-row--expandable:hover{background:var(--surface2)}.feattab-cell-benefit{font-size:12px;color:var(--text-dim)}.feattab-cell-benefit.expanded{white-space:pre-wrap}.levelhistory-section{padding:0}.levelhistory-empty{color:var(--text-dim);font-style:italic;padding:24px}.levelhistory-table-wrap{overflow-x:auto}.levelhistory-table{width:100%;border-collapse:collapse;font-size:13px;color:var(--text)}.levelhistory-table thead tr{background:var(--surface2);border-bottom:2px solid var(--border)}.levelhistory-table th{padding:8px 12px;text-align:left;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);white-space:nowrap}.levelhistory-table td{padding:8px 12px;vertical-align:top;border-bottom:1px solid var(--border)}.levelhistory-row-even{background:var(--surface1)}.levelhistory-row-odd{background:var(--surface2)}.levelhistory-col-level{width:42px}.levelhistory-col-class{width:140px;white-space:nowrap}.levelhistory-col-archetypes{width:160px}.levelhistory-col-hp{width:60px;text-align:center}.levelhistory-col-fc{width:130px;white-space:nowrap}.levelhistory-col-choices{width:200px}.levelhistory-col-feats{min-width:160px}.levelhistory-col-skills,.levelhistory-col-spells{min-width:180px}.levelhistory-level-num{font-size:15px;font-weight:700;color:var(--gold);text-align:center}.levelhistory-class-name{font-weight:600;color:var(--text)}.levelhistory-class-level{font-size:11px;color:var(--text-dim);font-weight:500}.levelhistory-feat-tag{display:inline-block;background:var(--surface3);border:1px solid var(--border);border-radius:4px;padding:1px 6px;margin:1px 2px 1px 0;font-size:12px;white-space:nowrap}.levelhistory-skill-entry{display:inline-block;margin:1px 6px 1px 0;white-space:nowrap}.levelhistory-skill-ranks{color:var(--gold-dim);font-weight:600;font-size:12px}.sheet-note{color:var(--text-dim);font-size:12px;margin-bottom:10px;line-height:1.5}.sheet-empty{color:var(--text-dim);font-style:italic;font-size:13px;padding:12px 0}.attack-cards{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.attack-card{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.attack-card-header{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#ffffff08;border-bottom:1px solid var(--border);flex-wrap:wrap}.attack-card-weapon-name{font-size:15px;font-weight:600;color:var(--gold);flex-shrink:0}.attack-card-unnamed{color:var(--text-dim);font-style:italic;font-weight:400;font-size:13px}.attack-card-stats{display:flex;align-items:center;gap:8px;flex:1;flex-wrap:wrap}.attack-card-bonus{font-size:18px;font-weight:700;color:var(--text);letter-spacing:.02em}.attack-card-slot-tag{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:2px 7px;border-radius:3px;flex-shrink:0;background:var(--surface);border:1px solid var(--border);color:var(--text-dim)}.attack-card-slot-unarmed{color:var(--text-dim);border-color:var(--border)}.attack-card-slot-spell{color:var(--player);border-color:var(--player);background:#4a9eff14}.attack-card-slot-primary{color:#e8a83a;border-color:#e8a83a;background:#e8a83a14}.attack-card-slot-secondary{color:var(--text-muted);border-color:var(--border);background:var(--surface)}.npc-fullattack-summary{border-color:var(--gold)}.npc-fullattack-line{padding:10px 14px;margin:0;font-size:13px;font-family:var(--font-mono, monospace);color:var(--text);line-height:1.5;border-top:1px solid var(--border);word-break:break-word}.npc-fullattack-note{padding:4px 14px 10px;margin:0;font-size:11px;color:var(--text-dim);font-style:italic}.attack-card-fields{display:flex;flex-wrap:wrap;gap:8px;padding:12px 14px;align-items:end;background:var(--surface);border-radius:0 0 var(--radius) var(--radius)}.attack-card-selector{width:100%}.attack-card-selector select{background:var(--surface2);border-color:var(--border);font-size:13px}.attack-card-selector select:focus{border-color:var(--gold)}.attack-card-fields .field{min-width:90px}.attack-entries{display:flex;flex-direction:column;gap:8px}.attack-entry-row{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px}.attack-entry-name{font-size:14px;font-weight:600;color:var(--gold);margin-bottom:5px}.attack-entry-stats{display:flex;align-items:center;gap:8px;font-size:13px;flex-wrap:wrap}.attack-bonus-str{font-size:16px;font-weight:700;color:var(--text);letter-spacing:.02em}.attack-entry-sep{color:var(--border)}.attack-dmg{color:var(--ally);font-weight:600}.attack-crit{color:var(--yellow)}.attack-type{color:var(--text-dim);font-size:11px;border:1px solid var(--border);border-radius:3px;padding:1px 5px}.attack-range-tag{color:var(--player);font-size:11px}.attack-entry-notes{font-size:11px;color:var(--text-dim);margin-top:5px;font-style:italic}.cf-tab .spell-list{margin-top:4px}.cf-meta{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-dim);white-space:nowrap;margin-left:auto}.cf-no-desc{color:var(--text-dim);font-style:italic}.gold-total{font-size:12px;color:var(--text-dim);margin-top:2px;margin-bottom:8px}.gold-inline{display:flex;align-items:center;gap:14px;margin-bottom:8px;font-size:14px;font-variant-numeric:tabular-nums}.gold-inline-amount{display:flex;align-items:center;gap:5px;font-weight:600}.coin-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;display:inline-block}.coin-gp{color:#c9a227}.coin-gp .coin-dot{background:#c9a227;box-shadow:inset 0 1px #ffffff4d,inset 0 -1px #0000004d}.coin-sp{color:#a8a9ad}.coin-sp .coin-dot{background:#a8a9ad;box-shadow:inset 0 1px #ffffff4d,inset 0 -1px #0000004d}.coin-cp{color:#b87333}.coin-cp .coin-dot{background:#b87333;box-shadow:inset 0 1px #ffffff4d,inset 0 -1px #0000004d}.equip-slots-grid{display:grid;grid-template-columns:96px 1fr;gap:4px 10px;margin-bottom:16px;max-width:520px}.equip-slot-row{display:contents}.equip-slot-label{display:flex;align-items:center;font-size:12px;color:var(--text-dim);font-weight:500;padding:3px 0}.equip-slot-label--slotless{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--gold-dim)}.equip-slot-value{display:flex;align-items:center;gap:6px;padding:2px 0}.equip-slot-select{flex:1;font-size:12px;padding:3px 6px;max-width:340px}.equip-slot-filled{font-size:13px;color:var(--text)}.equip-slot-empty{font-size:12px;color:var(--text-dim);font-style:italic}.equip-versatile-btn{flex-shrink:0;padding:3px 9px;font-size:11px;font-weight:700;border-radius:4px;border:1px solid var(--border);background:var(--surface2);color:var(--text-dim);cursor:pointer;transition:all .15s}.equip-versatile-btn:hover{border-color:var(--gold-dim);color:var(--gold)}.equip-versatile-btn--active{border-color:var(--gold);color:var(--gold);background:#c9a84c1a}.equip-slot-twohanded{font-size:12px;color:var(--text-dim);font-style:italic;padding:3px 6px;border:1px solid var(--border);border-radius:var(--radius);background:#ffffff08;display:block;max-width:340px}.slotless-list{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.slotless-item-row{display:flex;align-items:center;gap:8px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:5px 10px;font-size:12px;max-width:520px}.slotless-item-name{flex:1}.btn-unequip{background:none;border:none;color:var(--text-dim);font-size:14px;cursor:pointer;padding:0 4px;line-height:1}.btn-unequip:hover{color:var(--enemy)}.slotless-add-row{display:flex;align-items:center;gap:8px;max-width:520px;margin-top:4px}.inventory-list{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.inv-card{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:border-color .15s}.inv-card--open{border-color:var(--gold-dim)}.inv-card-header{display:flex;align-items:center;gap:8px;padding:7px 10px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:12px}.inv-card-header:hover{background:#ffffff08}.inv-item-name{font-size:13px;font-weight:500;flex-shrink:0}.inv-card-tag{font-size:11px;color:var(--text-dim);background:var(--surface);border:1px solid var(--border);border-radius:3px;padding:1px 5px;white-space:nowrap;flex-shrink:0}.inv-card-spacer{flex:1;min-width:8px}.inv-item-qty{color:var(--text-dim);font-size:12px;flex-shrink:0}.inv-item-cost{color:var(--gold-dim);flex-shrink:0;font-size:12px}.inv-card-chevron{font-size:10px;color:var(--text-dim);flex-shrink:0;width:14px;text-align:center}.inv-qty-input{width:48px!important;text-align:center;padding:2px 4px;font-size:12px;flex-shrink:0}.inv-notes-input{flex:1;font-size:12px;padding:3px 6px;min-width:80px}.inv-card-detail{border-top:1px solid var(--border)}.btn-inv-equip{background:none;border:1px solid var(--border);border-radius:4px;color:var(--text-dim);font-size:11px;padding:3px 10px;cursor:pointer;white-space:nowrap;flex-shrink:0}.btn-inv-equip:hover:not(:disabled){border-color:var(--gold);color:var(--gold)}.btn-inv-equip:disabled{opacity:.4;cursor:not-allowed}.btn-inv-drop{background:none;border:none;color:var(--text-dim);font-size:14px;padding:2px 4px;cursor:pointer;flex-shrink:0;line-height:1}.btn-inv-drop:hover{color:var(--enemy)}.inv-add-row{display:flex;align-items:center;gap:8px;max-width:520px;margin-top:8px}.inv-add-input{flex:1}.sheet-body--shop{overflow:hidden}.sheet-section--spells{display:flex;flex-direction:column;gap:12px}.sheet-section--shop{padding:0;height:100%;display:flex;flex-direction:column;overflow:hidden}.shop-gold-bar{display:flex;align-items:baseline;gap:10px;padding:10px 16px 8px;border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0}.shop-gold-label{font-size:12px;color:var(--text-dim);font-weight:600;text-transform:uppercase;letter-spacing:.05em}.shop-gold-amount{font-size:14px;color:var(--gold);font-weight:600}.shop-gold-total{font-size:12px;color:var(--text-dim)}.shop-gold-after{font-size:12px;color:var(--ally)}.sheet-section--shop .ib-layout{flex:1;min-height:0;padding:0 16px}.sheet-section--shop .ib-cart{position:sticky;top:0;align-self:flex-start;max-height:calc(100vh - 160px);overflow-y:auto;display:flex;flex-direction:column}.ib-ci-info{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.ib-ci-name{font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ib-ci-cost{font-size:11px;color:var(--gold-dim)}.ib-purchase-btn{width:100%;margin-top:8px;padding:8px 10px;background:var(--gold);color:#111;border:none;border-radius:var(--radius);font-size:13px;font-weight:700;cursor:pointer;transition:background .15s;flex-shrink:0}.ib-purchase-btn:hover:not(:disabled){background:#e0b84e}.ib-purchase-btn:disabled{background:var(--surface2);border:1px solid var(--border);color:var(--text-dim);cursor:not-allowed;font-weight:500}.psp-spell-meta span{font-size:11px;color:var(--text-dim)}.feat-choice-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:9999}.feat-choice-modal{background:var(--surface1);border:1px solid var(--border);border-radius:var(--radius);padding:24px;min-width:340px;max-width:460px;display:flex;flex-direction:column;gap:14px;box-shadow:0 8px 40px #00000080}.feat-choice-header{display:flex;align-items:baseline;gap:10px;border-bottom:1px solid var(--border);padding-bottom:10px}.feat-choice-feat-name{font-size:16px;font-weight:700;color:var(--gold)}.feat-choice-kind-label{font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.feat-choice-prompt{font-size:13px;color:var(--text);margin:0}.feat-choice-input-row{display:flex;flex-direction:column;gap:6px}.feat-choice-text-input,.feat-choice-select{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:14px;padding:8px 10px;width:100%;box-sizing:border-box}.feat-choice-text-input:focus,.feat-choice-select:focus{outline:none;border-color:var(--gold-dim)}.feat-choice-select option{background:var(--surface2)}.feat-choice-actions{display:flex;justify-content:flex-end;gap:8px}.feat-choice-btn-cancel{background:transparent;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dim);font-size:13px;padding:7px 16px;cursor:pointer;transition:border-color .15s,color .15s}.feat-choice-btn-cancel:hover{border-color:var(--text-dim);color:var(--text)}.feat-choice-btn-confirm{background:var(--gold);border:none;border-radius:var(--radius);color:#111;font-size:13px;font-weight:700;padding:7px 20px;cursor:pointer;transition:background .15s}.feat-choice-btn-confirm:hover:not(:disabled){background:#e0b84e}.feat-choice-btn-confirm:disabled{background:var(--surface2);border:1px solid var(--border);color:var(--text-dim);cursor:not-allowed;font-weight:500}.prereq-clause{display:inline}.prereq-clause--met{color:#6dbf6d}.prereq-clause--unmet{color:#e06060}.prereq-clause--unknown{color:var(--text-dim)}.feat-choice-restricted-empty{font-size:13px;color:#e06060;margin:0}.sheet-shop-inset{display:flex;height:580px;overflow:hidden;margin-top:8px}.export-tab{padding:16px 20px 32px;display:flex;flex-direction:column;gap:24px;color:var(--text)}.export-print-btn{align-self:flex-start;background:var(--gold);color:#111;border:none;border-radius:var(--radius);font-size:13px;font-weight:700;padding:8px 20px;cursor:pointer;transition:background .15s}.export-print-btn:hover{background:#e0b84e}.export-section{display:flex;flex-direction:column;gap:10px}.export-section-title{font-size:15px;font-weight:700;color:var(--gold);text-transform:uppercase;letter-spacing:.08em;margin:0 0 4px;padding-bottom:6px;border-bottom:1px solid var(--border)}.export-sub-heading{font-size:12px;font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:.07em;margin:8px 0 4px}.export-kv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:4px 16px}.export-kv-grid--horiz{display:flex;flex-wrap:wrap;gap:4px 24px}.export-kv-row{display:flex;gap:6px;align-items:baseline;font-size:13px}.export-kv-label{font-size:11px;font-weight:600;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.export-abilities{display:flex;gap:10px;flex-wrap:wrap}.export-ability{display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:8px 14px;min-width:64px}.export-ability-name{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim)}.export-ability-score{font-size:20px;font-weight:700;color:var(--text);line-height:1}.export-ability-mod{font-size:12px;color:var(--gold-dim)}.export-saves-table,.export-skills-table,.export-inv-table{width:100%;border-collapse:collapse;font-size:12px}.export-saves-table th,.export-skills-table th,.export-inv-table th{text-align:left;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);padding:3px 8px 3px 0;border-bottom:1px solid var(--border)}.export-saves-table td,.export-skills-table td,.export-inv-table td{padding:3px 8px 3px 0;color:var(--text);border-bottom:1px solid rgba(255,255,255,.04)}.export-feature-row{display:flex;flex-direction:column;gap:2px;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.05)}.export-feature-header{display:flex;align-items:baseline;gap:8px}.export-feature-name{font-size:13px;font-weight:700;color:var(--text)}.export-feature-source{font-size:11px;color:var(--text-dim)}.export-feature-desc{font-size:12px;color:var(--text-dim);white-space:pre-wrap}.export-pre{font-size:12px;color:var(--text);white-space:pre-wrap;margin:0;font-family:inherit}.export-empty{font-size:12px;color:var(--text-dim);font-style:italic}@media print{.sheet-header,.sheet-nav,.export-print-btn,.right-col,.debug-panel,.combat-action-bar{display:none!important}html,body,#root,.campaign-room,.game-header,.game-body,.left-col,.character-sheet,.sheet-body{display:block!important;overflow:visible!important;height:auto!important;min-height:unset!important;max-height:none!important;flex:none!important;width:100%!important;background:#fff!important;color:#000!important;box-shadow:none!important;border:none!important}.game-header{display:none!important}.export-tab{color:#000;padding:0}.export-section-title{color:#333;border-bottom-color:#aaa}.export-kv-label,.export-ability-name,.export-feature-source,.export-sub-heading{color:#555}.export-ability{background:#f5f5f5;border-color:#ccc}.export-ability-score{color:#000}.export-ability-mod{color:#333}.export-saves-table th,.export-skills-table th,.export-inv-table th{color:#555;border-bottom-color:#aaa}.export-saves-table td,.export-skills-table td,.export-inv-table td{color:#000;border-bottom-color:#e0e0e0}.export-feature-row{border-bottom-color:#ddd}.export-feature-desc{color:#333}.export-pre{color:#000}.export-empty{color:#777}}
