*,*: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-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}.migrate-banner{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#5a82c41f;border:1px solid #5a82c4;border-radius:6px;padding:8px 12px;font-size:12px;margin-bottom:4px}.migrate-btn{font-size:11px!important;padding:4px 10px!important}.migrate-dismiss{background:none;border:none;color:var(--text-dim);cursor:pointer;margin-left:auto}.migrate-success{font-size:12px;color:#6dbf87;text-align:center}.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{flex:1;font-size:15px;padding:12px;margin-top:0;cursor:pointer}.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:4px 0;margin-top:2px}.lobby-back-link:hover{color:var(--gold)}.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)}.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)}.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}.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}.game-room{display:flex;flex-direction:column;height:100vh}.force-guide-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{flex:1;display:flex;flex-direction:column;overflow:hidden}.map-with-overlay{flex:1;display:flex;flex-direction:column;position:relative;overflow:hidden}.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:auto;padding:12px;background:#0a0c14;display:flex;justify-content:center;align-items:center}.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;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-dragging{transform:scale(1.15)!important;box-shadow:0 4px 16px #0009!important;transition:none!important}.token-drag-hint{position:absolute;bottom:-1px;left:50%;transform:translate(-50%);width:12px;height:3px;background:#fff6;border-radius:2px}.tt-hint{color:var(--text-dim);font-size:10px;font-style:italic}.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-initial{font-size:16px;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6);line-height:1}.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}.map-legend{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)}.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-wrap:wrap;gap:16px;justify-content:center;max-width:720px}.char-picker-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:20px 28px;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:160px;min-height:72px;transition:border-color .15s,background .15s}.char-picker-card:hover{border-color:var(--gold);background:#d4af370d}.char-picker-card.char-picker-new{align-items:center;justify-content:center;border-style:dashed;border-color:var(--text-dim)}.char-picker-card.char-picker-new:hover{border-color:var(--gold);border-style:dashed}.cpc-name{font-size:15px;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}.char-picker-card.char-picker-new:hover .cpc-new-label{color:var(--gold)}.sheet-header{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.sheet-back-btn{background:none;border:none;color:var(--text-dim);font-size:13px;cursor:pointer;padding:4px 8px;border-radius:4px;margin-right:8px;flex-shrink:0;transition:color .15s,background .15s}.sheet-back-btn:hover{color:var(--text);background:var(--surface2)}.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}.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-guide .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}.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-guide{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-display{display:flex;gap:16px;margin:8px 0}.ac-big{display:flex;flex-direction:column;align-items:center;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:10px 20px;gap:4px}.ac-big span{font-size:28px;font-weight:700;color:var(--gold);line-height:1}.ac-big label{font-size:11px;color:var(--text-dim);text-transform:uppercase}.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:120px 60px 50px 60px 60px 60px;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-label{font-size:13px;color:var(--text)}.save-total{font-size:15px;font-weight:700;color:var(--gold)}.save-input{width:50px;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}.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{display:inline-block;width:50px;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;height:100%;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-x:auto}.creation-header::-webkit-scrollbar{height:0}.creation-steps-bar{display:flex;gap:2px;flex:1;flex-wrap:nowrap}.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)}.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;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-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}.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)}.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);white-space:pre-wrap}.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-traits-list strong{font-size:12px;color:var(--text)}.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;max-width:700px}.ability-col-headers{display:grid;grid-template-columns:140px 130px 60px 110px 80px 80px;gap:12px;padding:4px 14px;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-weight:600}.ability-buy-row{display:grid;grid-template-columns:140px 130px 60px 110px 80px 80px;align-items:center;gap:12px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);padding:8px 14px}.ab-label{font-size:13px;color:var(--text);font-weight:500}.ab-controls{display:flex;align-items: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-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)}.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-list{flex:1;overflow-y:auto;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}.deity-list-header{display:grid;grid-template-columns:180px 320px 160px 200px;column-gap:24px;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)}.dcol-align{color:var(--gold-dim);font-size:11px;white-space:nowrap}.dcol-domains{font-size:11px;color:var(--text-dim)}.dcol-weapon{font-size:11px;color:var(--text-dim);white-space:nowrap}.deity-found-count,.found-count{font-size:11px;color:var(--text-dim);padding:4px 2px;flex-shrink:0}.deity-detail-row{display:flex;gap:12px}.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)}.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-controls .creation-search{width:200px;flex-shrink:0}.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;height:100%;display:flex;flex-direction:column;gap:20px}.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-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}.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-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)}.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:hidden;border:1px solid var(--border);border-radius:var(--radius)}.selection-list-header{display:grid;grid-template-columns:32px 200px 120px 1fr;gap:12px;padding:6px 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}.selection-list-header.feats-header{grid-template-columns:32px 200px 110px 160px 1fr}.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}.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}.selection-list-header.trait-header,.sl-row.trait-row{grid-template-columns:32px 200px 80px 120px 1fr}.selection-list-header.trait-header.has-ap-col,.sl-row.trait-row.has-ap-col{grid-template-columns:32px 200px 160px 120px 1fr}.selection-list-header.trait-header.has-birthdate-col,.sl-row.trait-row.has-birthdate-col{grid-template-columns:32px 200px 140px 120px 1fr}.selection-list-header.has-ap-col,.sl-row.has-ap-col{grid-template-columns:32px 200px 180px 1fr}.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}.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.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}.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}.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)}.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-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}.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;white-space:pre-wrap}.spell-empty{color:var(--text-dim);font-style:italic;text-align:center;padding:20px}.step-favored-class{max-width:560px}.favclass-section{margin-top:18px;display:flex;flex-direction:column;gap:8px}.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}.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;max-width:420px}.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,.game-room,.force-guide-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}button,select,input[type=text],input[type=number]{min-height:36px}}.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}.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:8px 16px 16px;display:flex;flex-direction:column;gap:12px;max-width:700px;margin:0 auto;height:100%;overflow-y:auto}.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}.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)}.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)}.shop-layout{display:flex;gap:12px;flex:1;min-height:0}.shop-browser{display:flex;flex-direction:column;gap:8px;flex:1;min-width:0}.shop-tabs{display:flex;gap:4px}.shop-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}.shop-tab.active{border-color:var(--gold);color:var(--gold);background:#c9a84c14}.shop-controls{display:flex;flex-direction:column;gap:6px}.shop-search{padding:6px 10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:13px;width:100%}.shop-cat-btns{display:flex;flex-wrap:wrap;gap:4px}.shop-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}.shop-cat-btn.active{border-color:var(--gold-dim);color:var(--gold)}.shop-items{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.shop-item{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);gap:8px}.shop-item:hover:not(.shop-item-disabled){border-color:var(--gold-dim)}.shop-item-disabled{opacity:.4}.shop-item-info{display:flex;flex-direction:column;gap:2px;min-width:0}.shop-item-name{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shop-item-meta{display:flex;gap:8px;flex-wrap:wrap}.shop-item-meta span{font-size:11px;color:var(--text-dim)}.shop-item-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.shop-item-cost{font-size:12px;color:var(--gold-dim);white-space:nowrap}.shop-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}.shop-add-btn:hover:not(:disabled){background:#c9a84c26;border-color:var(--gold)}.shop-add-btn:disabled{opacity:.3;cursor:not-allowed}.shop-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}.shop-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}.shop-cart-empty{font-size:12px;color:var(--text-dim)}.shop-cart-list{list-style:none;display:flex;flex-direction:column;gap:4px;overflow-y:auto;flex:1}.shop-cart-item{display:flex;align-items:center;gap:4px;font-size:12px}.sci-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sci-cost{color:var(--gold-dim);white-space:nowrap}.sci-remove{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:12px;padding:2px;flex-shrink:0}.sci-remove:hover{color:var(--red)}.shop-cart-total{font-size:13px;font-weight:600;border-top:1px solid var(--border);padding-top:6px}.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:var(--gold)}.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 .shop-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}.psp-spell-meta span{font-size:11px;color:var(--text-dim)}
