:root{color:#1a1f2b;background:#f5f1e8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{margin:0}.shell{align-items:center;display:flex;min-height:100vh;padding:24px}.status-panel{border-left:4px solid #9c2f2f;max-width:560px;padding:8px 0 8px 24px;width:100%}.admin-panel{max-width:460px}.eyebrow{color:#656b78;font-size:.8125rem;font-weight:700;letter-spacing:0;margin:0 0 8px;text-transform:uppercase}h1{font-size:2.25rem;line-height:1.1;margin:0 0 24px}.status,.health-grid{font-size:1rem;margin:0}.loading{color:#4b5563}.failure{color:#9c2f2f}.health-grid{display:grid;gap:12px}.health-grid div{display:grid;gap:4px}.health-grid dt{color:#656b78;font-size:.8125rem;font-weight:700}.health-grid dd{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;margin:0;overflow-wrap:anywhere}.admin-form,.admin-summary{display:grid;gap:16px;margin-top:24px}.admin-form label{color:#374151;display:grid;font-size:.875rem;font-weight:700;gap:8px}.admin-form input{border:1px solid #b8bec9;border-radius:6px;box-sizing:border-box;color:#1a1f2b;font:inherit;min-height:42px;padding:8px 10px;width:100%}button{background:#1f6f5b;border:0;border-radius:6px;color:#fff;cursor:pointer;font:inherit;font-weight:700;min-height:42px;padding:8px 14px}button:disabled{background:#8a939f;cursor:wait}.recommendation-shell{align-items:center;box-sizing:border-box;display:flex;justify-content:center;min-height:100vh;padding:24px}.recommendation-panel{display:grid;gap:20px;max-width:720px;width:100%}.tutorial-panel{align-content:center}.recommendation-panel h1{max-width:680px}.answer-list,.result-list,.house-list{display:grid;gap:10px}.answer{background:#fff;border:1px solid #c7c0b3;color:#1a1f2b;min-height:54px;text-align:left}.answer.selected{background:#1f6f5b;border-color:#1f6f5b;color:#fff}.recommendation-actions{display:flex;flex-wrap:wrap;gap:10px}.recommendation-actions button{min-width:132px}.guide-dialogue,.skip-confirm{border-left:4px solid #1f6f5b;display:grid;gap:8px;padding-left:14px}.guide-dialogue p,.skip-confirm p{margin:0}.result-item{border:1px solid #d4cfc4;border-radius:8px;display:grid;gap:10px;padding:16px}.house-item{align-items:center;border:1px solid #d4cfc4;border-radius:8px;display:flex;gap:16px;justify-content:space-between;padding:16px}.house-item div{display:grid;gap:6px}.house-item h2,.character-card h3,.house-item p,.result-item h2,.result-item p{margin:0}.score{color:#656b78;font-size:.875rem;font-weight:700}.tag-list{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}.tag-list li{background:#ebe5da;border-radius:999px;color:#374151;font-size:.8125rem;font-weight:700;padding:6px 10px}.character-roster,.character-list,.character-detail,.inventory-panel,.season-panel,.cosmetics-panel,.exploration-panel,.pve-panel,.party-panel,.codex-panel{display:grid;gap:14px}.character-roster h2,.character-detail h2,.inventory-panel h2,.season-panel h2,.cosmetics-panel h2,.exploration-panel h2,.pve-panel h2,.party-panel h2,.codex-panel h2{margin:0}.character-card,.character-detail,.inventory-panel,.season-panel,.cosmetics-panel,.exploration-panel,.pve-panel,.party-panel,.codex-panel,.pve-report,.party-report,.codex-detail{border:1px solid #d4cfc4;border-radius:8px;padding:16px}.character-card{display:grid;gap:12px}.character-card p,.character-detail p{margin:0}.status-chip{background:#edf2f7;border-radius:999px;color:#374151;display:inline-flex;font-size:.75rem;font-weight:700;margin-top:8px;padding:4px 8px;width:fit-content}.status-chip.dispatched{background:#f9e5c7;color:#7a4a00}.secondary-button{background:transparent;border:1px solid #c7c0b3;color:#1a1f2b;width:fit-content}.character-meta,.stat-grid,.season-metrics,.training-metrics,.exploration-summary,.party-times{display:grid;gap:8px;margin:0}.character-meta,.season-metrics,.training-metrics,.exploration-summary,.party-times{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-grid{grid-template-columns:repeat(7,minmax(52px,1fr))}.stat-grid.compact{grid-template-columns:repeat(7,minmax(44px,1fr))}.character-meta div,.stat-grid div,.season-metrics div,.training-metrics div,.exploration-summary div,.party-times div{border:1px solid #e2ddd3;border-radius:6px;padding:8px}.character-meta dt,.stat-grid dt,.season-metrics dt,.training-metrics dt,.exploration-summary dt,.party-times dt{color:#656b78;font-size:.75rem;font-weight:700}.character-meta dd,.stat-grid dd,.season-metrics dd,.training-metrics dd,.exploration-summary dd,.party-times dd{font-weight:800;margin:2px 0 0;overflow-wrap:anywhere}.stat-formula{color:#656b78;display:block;font-size:.6875rem;font-weight:700;margin-top:3px}.season-metrics.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.season-rankings{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.season-ranking-list,.season-report,.season-archive{border-top:1px solid #d4cfc4;display:grid;gap:10px;padding-top:12px}.season-ranking-list h3,.season-report h3,.season-archive h3{margin:0}.season-ranking-list ol,.season-report-list,.season-archive ul{display:grid;gap:8px;list-style:none;margin:0;padding:0}.season-ranking-list li,.season-report-list li,.season-archive li{align-items:center;background:#fff;border:1px solid #e2ddd3;border-radius:6px;display:grid;gap:8px;grid-template-columns:auto minmax(0,1fr) auto;padding:10px}.season-ranking-list small,.season-report-list span,.season-archive span{color:#656b78;font-size:.8125rem;font-weight:700}.cosmetic-loadout{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin:0}.cosmetic-loadout div{border:1px solid #e2ddd3;border-radius:6px;padding:8px}.cosmetic-loadout dt{color:#656b78;font-size:.75rem;font-weight:700}.cosmetic-loadout dd{font-weight:800;margin:2px 0 0;overflow-wrap:anywhere}.cosmetic-columns{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.cosmetic-columns h3{margin:0 0 10px}.cosmetic-list{display:grid;gap:10px}.cosmetic-card{align-items:center;background:#fff;border:1px solid #d4cfc4;border-radius:8px;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto;min-height:82px;padding:12px}.cosmetic-card.active{border-color:#1f6f5b;box-shadow:inset 0 0 0 1px #1f6f5b}.cosmetic-card.compact{grid-template-columns:1fr}.cosmetic-card div{display:grid;gap:4px}.cosmetic-card small,.cosmetic-card span{color:#656b78;font-size:.8125rem;font-weight:700}.inventory-list,.equipment-slots{display:grid;gap:10px}.inventory-item,.equipment-slot{align-items:center;background:#fff;border:1px solid #d4cfc4;border-radius:8px;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto;padding:12px}.inventory-item div,.equipment-slot div{display:grid;gap:4px}.inventory-item small,.inventory-item span,.equipment-slot small{color:#656b78;font-size:.8125rem;font-weight:700}.equipment-panel{border-top:1px solid #d4cfc4;display:grid;gap:12px;padding-top:14px}.equipment-slot label{color:#374151;display:grid;font-size:.8125rem;font-weight:700;gap:6px}.equipment-slot select{border:1px solid #b8bec9;border-radius:6px;box-sizing:border-box;color:#1a1f2b;font:inherit;min-height:38px;padding:7px 9px;width:100%}.equipment-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.training-panel{border-top:1px solid #d4cfc4;display:grid;gap:12px;padding-top:14px}.training-header{align-items:start;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) minmax(180px,.5fr)}.training-header h3{margin:0}.training-stat-list{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.training-stat{background:#fff;border:1px solid #d4cfc4;color:#1a1f2b;display:grid;gap:4px;min-height:76px;padding:10px;text-align:left}.training-stat.selected{border-color:#1f6f5b;box-shadow:inset 0 0 0 1px #1f6f5b}.training-stat span,.training-stat small{color:#656b78;font-size:.8125rem;font-weight:700}.training-actions{display:flex;flex-wrap:wrap;gap:10px}.exploration-form{align-items:end;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr)) auto}.pve-form,.party-form{align-items:end;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto}.exploration-form label,.pve-form label,.party-form label{color:#374151;display:grid;font-size:.8125rem;font-weight:700;gap:6px}.exploration-form select,.pve-form select,.party-form select{border:1px solid #b8bec9;border-radius:6px;box-sizing:border-box;color:#1a1f2b;font:inherit;min-height:42px;padding:8px 10px;width:100%}.tab-row,.party-actions{display:flex;flex-wrap:wrap;gap:8px}.tab-button{background:transparent;border:1px solid #c7c0b3;color:#1a1f2b;min-height:34px;padding:6px 12px;width:fit-content}.tab-button.active{background:#1f6f5b;border-color:#1f6f5b;color:#fff}.party-list{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.party-list-item{background:#fff;border:1px solid #d4cfc4;color:#1a1f2b;display:grid;gap:4px;min-height:76px;padding:10px;text-align:left}.party-list-item.active{border-color:#1f6f5b;box-shadow:inset 0 0 0 1px #1f6f5b}.party-list-item small,.party-member span{color:#656b78;display:block;font-size:.8125rem;font-weight:700;margin-top:4px}.party-detail,.party-report{background:#fff;display:grid;gap:12px}.party-members{display:grid;gap:8px}.party-member{border:1px solid #e2ddd3;border-radius:6px;padding:10px}.party-actions button{min-height:34px;padding:6px 10px;width:fit-content}.pve-enemy-card,.pve-report-heading{align-items:stretch;display:grid;gap:12px;grid-template-columns:112px minmax(0,1fr)}.pve-image{aspect-ratio:1;background:#ebe5da;border:1px solid #d4cfc4;border-radius:6px;box-sizing:border-box;color:#656b78;display:grid;font-size:.75rem;font-weight:700;height:112px;object-fit:cover;overflow:hidden;place-items:center;text-align:center;width:112px}.image-placeholder span{max-width:92px;overflow-wrap:anywhere}.choice-preview-list{display:flex;flex-wrap:wrap;gap:8px}.choice-preview-list button{display:grid;gap:4px;text-align:left}.choice-preview-list small{font-weight:500;opacity:.82}.reward-list{display:grid;gap:6px;margin:12px 0;padding-left:20px}.exploration-check-result{border:1px solid #b8bec9;border-radius:8px;margin:12px 0;padding:12px}.exploration-check-result.success{background:#eef8ef;border-color:#68a36f}.exploration-check-result.failure{background:#fff1ef;border-color:#c7776d}.exploration-check-result p{margin:4px 0 0}.exploration-error{display:grid;gap:8px}.pve-enemy-meta{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr));margin:0}.pve-enemy-meta div{border:1px solid #e2ddd3;border-radius:6px;padding:8px}.pve-enemy-meta dt{color:#656b78;font-size:.75rem;font-weight:700}.pve-enemy-meta dd{font-weight:800;margin:2px 0 0;overflow-wrap:anywhere}.pve-report{background:#fff;display:grid;gap:12px}.pve-report.victory{border-color:#68a36f}.pve-report.defeat{border-color:#c7776d}.pve-report p{margin:0}.combat-log{display:grid;gap:6px;margin:0;padding-left:22px}.codex-filters{align-items:end;display:flex;flex-wrap:wrap;gap:10px}.codex-filters label{color:#374151;display:grid;font-size:.8125rem;font-weight:700;gap:6px}.codex-filters select{border:1px solid #b8bec9;border-radius:6px;box-sizing:border-box;color:#1a1f2b;font:inherit;min-height:40px;padding:7px 9px;width:180px}.codex-progress{display:grid;gap:8px}.codex-progress>div{align-items:center;display:flex;justify-content:space-between}.codex-progress progress{accent-color:#1f6f5b;height:12px;width:100%}.codex-progress dl,.codex-meta{display:grid;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr));margin:0}.codex-progress dl div,.codex-meta div{border:1px solid #e2ddd3;border-radius:6px;padding:8px}.codex-progress dt,.codex-meta dt{color:#656b78;font-size:.75rem;font-weight:700}.codex-progress dd,.codex-meta dd{font-weight:800;margin:2px 0 0;overflow-wrap:anywhere}.codex-list{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.codex-card{align-items:center;background:#fff;border:1px solid #d4cfc4;color:#1a1f2b;display:grid;gap:10px;grid-template-columns:58px minmax(0,1fr);min-height:96px;padding:10px;text-align:left}.codex-card.discovered,.codex-card.encountered,.codex-detail.discovered,.codex-detail.encountered{filter:grayscale(1)}.codex-card.recruited,.codex-detail.recruited{background:#eef8ef;border-color:#68a36f}.codex-card small,.codex-card em{color:#656b78;display:block;font-size:.75rem;font-style:normal;font-weight:700}.codex-card strong{display:block;margin:3px 0;overflow-wrap:anywhere}.codex-portrait{align-items:center;background:#ebe5da;border:1px solid #d4cfc4;border-radius:6px;color:#656b78;display:flex;font-size:.625rem;font-weight:700;justify-content:center;min-height:58px;overflow:hidden;padding:4px;text-align:center}.codex-card.undiscovered .codex-portrait,.codex-detail.undiscovered .codex-portrait{background:#292f3a}.codex-detail{display:grid;gap:12px}.codex-detail .codex-portrait{min-height:120px}.codex-detail p{margin:0}.codex-stat-block{display:grid;gap:10px}.codex-ability{border-left:4px solid #1f6f5b;display:grid;gap:4px;padding-left:12px}.admin-shell{box-sizing:border-box;min-height:100vh;padding:24px}.admin-topbar,.admin-workspace,.section-heading,.admin-account,.filter-bar,.pager,.row-actions,.editor-actions{align-items:center;display:flex;gap:12px}.admin-topbar{border-bottom:1px solid #d4cfc4;justify-content:space-between;padding-bottom:18px}.admin-topbar h1,.section-heading h2{margin:0}.admin-account{color:#374151;flex-wrap:wrap;font-size:.875rem;justify-content:flex-end}.admin-workspace{align-items:flex-start;margin-top:20px}.admin-nav{display:grid;flex:0 0 220px;gap:8px}.admin-nav button{background:transparent;border:1px solid #c7c0b3;color:#1a1f2b;text-align:left}.admin-nav button[aria-current=page]{background:#9c2f2f;border-color:#9c2f2f;color:#fff}.admin-content{display:grid;flex:1;gap:16px;min-width:0}.monetization-tools{border:1px solid #d4cfc4;border-radius:8px;display:grid;gap:12px;padding:12px}.section-heading{align-items:flex-start;justify-content:space-between}.section-heading p{color:#656b78;margin:6px 0 0;max-width:760px}.filter-bar{align-items:end;border:1px solid #d4cfc4;border-radius:8px;flex-wrap:wrap;padding:12px}.filter-bar label,.editor label{color:#374151;display:grid;font-size:.8125rem;font-weight:700;gap:6px}.filter-bar input,.filter-bar select,.editor input,.editor select,.editor textarea{border:1px solid #b8bec9;border-radius:6px;box-sizing:border-box;color:#1a1f2b;font:inherit;min-height:38px;padding:7px 9px}.filter-bar input,.filter-bar select{width:180px}.table-wrap{border:1px solid #d4cfc4;border-radius:8px;overflow:auto}table{border-collapse:collapse;font-size:.875rem;min-width:920px;width:100%}th,td{border-bottom:1px solid #e2ddd3;padding:10px;text-align:left;vertical-align:top}th{background:#ebe5da;color:#374151;font-size:.75rem;text-transform:uppercase}td{overflow-wrap:anywhere}td code,pre{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;white-space:pre-wrap}.row-actions{align-items:stretch;flex-wrap:wrap}.row-actions button,.pager button,.section-heading button,.admin-account button,.editor-actions button{min-height:34px;padding:6px 10px}.empty-state{border:1px dashed #b8bec9;border-radius:8px;color:#656b78;margin:0;padding:18px}.pager{justify-content:flex-end}.modal-backdrop{align-items:center;background:#1a1f2b6b;display:flex;inset:0;justify-content:center;padding:24px;position:fixed}.editor{background:#fdfaf3;border-radius:8px;box-shadow:0 18px 50px #1a1f2b4d;box-sizing:border-box;display:grid;gap:16px;max-height:calc(100vh - 48px);max-width:920px;overflow:auto;padding:18px;width:100%}.editor-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.wide-field{grid-column:1 / -1}.editor textarea{resize:vertical;width:100%}.asset-preview{align-items:center;border:1px solid #d4cfc4;border-radius:8px;display:flex;gap:12px;padding:12px}.asset-preview img{aspect-ratio:1;background:#ebe5da;border:1px solid #d4cfc4;border-radius:6px;height:96px;object-fit:cover;width:96px}.asset-preview span{color:#656b78;font-size:.8125rem;font-weight:700;overflow-wrap:anywhere}details summary{cursor:pointer;font-weight:700}@media(max-width:760px){.admin-topbar,.admin-workspace,.section-heading,.house-item{align-items:stretch;flex-direction:column}.admin-nav{flex:auto}.editor-grid{grid-template-columns:1fr}.character-meta,.stat-grid,.stat-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.exploration-form,.exploration-summary,.cosmetic-columns,.season-metrics,.season-metrics.compact,.season-rankings,.pve-enemy-card,.pve-report-heading,.training-header,.training-metrics,.codex-progress dl,.codex-meta{grid-template-columns:1fr}.codex-filters select{width:100%}}.player-auth-bar{align-items:center;background:#111827;color:#f9fafb;display:flex;gap:1rem;justify-content:flex-end;padding:.75rem 1.25rem}.player-auth-panel{max-width:34rem}
