*,:before,:after{box-sizing:border-box}body{color:#e2e8f0;-webkit-font-smoothing:antialiased;background:#0f1117;margin:0;font-family:Noto Sans KR,Apple SD Gothic Neo,Malgun Gothic,system-ui,sans-serif}#root{min-height:100vh}h1,h2,h3,h4{margin:0;font-weight:700}p{margin:0}a{color:inherit}button{font-family:inherit}*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f1117;--bg2:#1a1d27;--bg3:#242736;--border:#2d3148;--text:#e2e8f0;--text-muted:#94a3b8;--green:#22c55e;--green-bg:#052e16;--red:#f87171;--red-bg:#450a0a;--yellow:#fbbf24;--yellow-bg:#451a03;--blue:#60a5fa;--blue-bg:#0f1f3d;--purple:#a78bfa;--accent:#3b82f6}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:Noto Sans KR,Apple SD Gothic Neo,sans-serif;font-size:14px;line-height:1.6}.app{max-width:1400px;margin:0 auto;padding:0 16px 64px}.header{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 0;display:flex}.header-left{flex-direction:column;gap:4px;display:flex}.game-title{color:var(--text);letter-spacing:-.5px;font-size:20px;font-weight:700}.hospital-name{color:var(--text-muted);font-size:13px}.header-meta{flex-wrap:wrap;align-items:center;gap:10px;margin-top:4px;display:flex}.current-month{color:var(--blue);font-size:18px;font-weight:600}.grade-badge{color:#fff;border-radius:20px;padding:2px 10px;font-size:12px;font-weight:600}.beds-info{color:var(--text-muted);font-size:13px}.status-alert{border-radius:4px;padding:3px 10px;font-size:12px;font-weight:700}.status-alert.crisis{background:var(--yellow-bg);color:var(--yellow)}.status-alert.bankruptcy{background:var(--red-bg);color:var(--red);animation:1.5s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.header-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.header-auth{border-right:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:6px;padding-right:8px;display:flex}.header-auth input{background:var(--bg3);border:1px solid var(--border);width:112px;color:var(--text);border-radius:6px;padding:5px 8px;font-size:12px}.header-auth input:focus{outline:1px solid var(--blue);border-color:var(--blue)}.header-user{color:var(--blue);font-size:12px;font-weight:800}.header-auth-status{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;max-width:170px;font-size:11px;overflow:hidden}.btn{border:1px solid var(--border);background:var(--bg3);color:var(--text);cursor:pointer;border-radius:6px;padding:7px 14px;font-size:13px;font-weight:500;transition:all .15s}.btn:hover{background:var(--bg2);border-color:var(--accent)}.btn-sm{padding:5px 10px;font-size:12px}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:#2563eb}.btn-danger{color:var(--red);background:#7f1d1d;border-color:#991b1b}.btn-danger:hover{background:#991b1b}.status-banner{border-radius:6px;margin:12px 0;padding:10px 16px;font-size:14px;font-weight:600}.crisis-banner{background:var(--yellow-bg);color:var(--yellow);border:1px solid var(--yellow)}.bankruptcy-banner{background:var(--red-bg);color:var(--red);border:1px solid var(--red)}.candidate-banner{color:var(--purple);border:1px solid var(--purple);background:#1e1b4b}.tab-bar{border-bottom:1px solid var(--border);gap:4px;margin:16px 0 0;display:flex}.tab-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;padding:8px 18px;font-size:14px;font-weight:500;transition:all .15s}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:var(--blue);border-bottom-color:var(--blue)}.main-content{flex-direction:column;gap:24px;margin-top:24px;display:flex}.section{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:20px}.section-title{color:var(--text);border-bottom:1px solid var(--border);margin-bottom:16px;padding-bottom:8px;font-size:16px;font-weight:700}.dashboard-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;display:grid}.metric-card{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:14px 16px;transition:border-color .15s}.metric-card.positive{background:#052e1620;border-color:#166534}.metric-card.negative{background:#450a0a20;border-color:#991b1b}.metric-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:11px}.metric-value{color:var(--text);font-size:22px;font-weight:700}.metric-card.positive .metric-value{color:var(--green)}.metric-card.negative .metric-value{color:var(--red)}.ops-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;display:grid}.ops-item{background:var(--bg3);border:1px solid var(--border);border-radius:6px;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.ops-item.warn{background:#451a03;border-color:#92400e}.ops-item.good{background:var(--green-bg);border-color:#166534}.ops-label{color:var(--text-muted);font-size:12px}.ops-value{color:var(--text);font-size:14px;font-weight:600}.progress-bar-wrap{align-items:center;gap:12px;margin-bottom:16px;display:flex}.progress-bar-bg{background:var(--bg3);border-radius:5px;flex:1;height:10px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--accent), var(--purple));border-radius:5px;height:100%;transition:width .4s}.progress-label{color:var(--text-muted);white-space:nowrap;font-size:13px}.goals-list{flex-direction:column;gap:6px;display:flex}.goal-item{border-radius:6px;align-items:center;gap:10px;padding:8px 12px;font-size:13px;display:flex}.goal-item.fulfilled{background:var(--green-bg);color:var(--green)}.goal-item.unfulfilled{background:var(--bg3);color:var(--text-muted)}.goal-icon{text-align:center;width:18px;font-weight:700}.goal-label{flex:1}.goal-current{color:var(--text-muted);white-space:nowrap;font-size:12px}.goal-item.fulfilled .goal-current{color:var(--green)}.center-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-bottom:12px;display:grid}.center-card{background:var(--bg3);border:1px solid #1e3a5f;border-radius:8px;padding:14px}.center-name{color:var(--blue);margin-bottom:6px;font-size:15px;font-weight:700}.center-effects{color:var(--text-muted);margin-bottom:8px;font-size:12px;line-height:1.5}.center-meta{color:var(--text-muted);gap:12px;font-size:11px;display:flex}.center-count{color:var(--text-muted);margin-top:8px;font-size:13px}.empty-text{color:var(--text-muted);padding:12px 0;font-size:13px}.dept-insight-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}.dept-score-card{background:var(--bg3);border:1px solid var(--border);border-radius:8px;min-width:0;padding:13px 14px}.dept-score-card.positive{background:#052e1659;border-color:#166534}.dept-score-card.negative{background:#450a0a47;border-color:#991b1b}.dept-score-card.warning{background:#451a0347;border-color:#92400e}.dept-score-card span,.dept-score-card em{color:var(--text-muted);font-size:12px;font-style:normal;display:block}.dept-score-card strong{color:var(--text);overflow-wrap:anywhere;margin:4px 0 2px;font-size:20px;line-height:1.25;display:block}.dept-overview-grid{grid-template-columns:minmax(360px,1.05fr) minmax(420px,1.4fr);gap:12px;margin-bottom:14px;display:grid}.dept-portfolio,.dept-highlight-card{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:14px}.mini-panel-header{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.mini-panel-header h3,.dept-highlight-card h3{color:var(--text);font-size:14px}.mini-panel-header span{color:var(--text-muted);text-align:right;font-size:11px}.portfolio-map{border:1px solid var(--border);background:linear-gradient(90deg,#f871711f,#0000 45%,#22c55e1f),linear-gradient(#60a5fa1f,#0000 55%);border-radius:8px;height:290px;position:relative;overflow:hidden}.portfolio-map:before,.portfolio-map:after{content:"";background:#94a3b829;position:absolute}.portfolio-map:before{height:1px;top:50%;left:0;right:0}.portfolio-map:after{width:1px;top:0;bottom:0;left:50%}.map-axis{z-index:1;color:var(--text-muted);background:#0f1117b8;border-radius:4px;padding:2px 6px;font-size:11px;position:absolute}.map-axis.x{bottom:8px;right:8px}.map-axis.y{top:8px;left:8px}.map-zero-line{background:#60a5fa38;width:1px;position:absolute;top:0;bottom:0;left:50%}.portfolio-dot{color:#fff;cursor:help;border:1px solid #ffffff61;border-radius:999px;justify-content:center;align-items:center;padding:0;font-size:9px;font-weight:800;line-height:1;display:inline-flex;position:absolute;transform:translate(-50%,-50%)}.portfolio-dot.profit{background:#22c55ed1}.portfolio-dot.loss{background:#f87171d1}.portfolio-dot.linked{box-shadow:0 0 0 3px #60a5fa47}.portfolio-dot:hover{z-index:3;outline:2px solid var(--blue)}.dept-highlight-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.dept-highlight-card{min-width:0}.dept-highlight-card h3{margin-bottom:8px}.dept-highlight-list{flex-direction:column;gap:6px;display:flex}.dept-highlight-item{border-bottom:1px solid #2d3148bf;justify-content:space-between;gap:10px;padding:6px 0;font-size:12px;display:flex}.dept-highlight-item:last-child{border-bottom:0}.dept-highlight-item span{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dept-highlight-item strong{color:var(--text);flex:none}.table-scroll{-webkit-overflow-scrolling:touch;border:1px solid var(--border);scrollbar-gutter:stable;border-radius:8px;max-height:min(68vh,720px);overflow:auto}.dept-table{border-collapse:collapse;width:100%;min-width:1680px;font-size:12px}.dept-table th{background:var(--bg3);color:var(--text-muted);text-align:right;white-space:nowrap;border-bottom:1px solid var(--border);z-index:2;box-shadow:0 1px 0 var(--border);padding:8px 10px;font-weight:600;position:sticky;top:0}.dept-table th:first-child,.dept-table th:nth-child(2),.dept-table th:nth-child(3),.dept-table th:nth-child(4){text-align:left}.dept-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.dept-table th.sortable:hover{color:var(--text)}.dept-table th.active{color:var(--blue)}.dept-table td{border-bottom:1px solid var(--border);text-align:right;white-space:nowrap;padding:7px 10px}.dept-table td:first-child,.dept-table td:nth-child(2),.dept-table td:nth-child(3),.dept-table td:nth-child(4){text-align:left}.dept-table .row-danger td{background:#45001020}.dept-table .row-warn td{background:#45150020}.dept-table .row-ok td{background:0 0}.dept-table tr:hover td{background:var(--bg3)}.dept-name{color:var(--text);font-weight:600}.strategy-type{color:var(--text-muted);font-size:11px}.dept-signal{white-space:nowrap;border-radius:999px;align-items:center;min-height:20px;padding:2px 7px;font-size:10px;font-weight:800;display:inline-flex}.dept-signal.profit{background:var(--green-bg);color:var(--green)}.dept-signal.watch{background:var(--yellow-bg);color:var(--yellow)}.dept-signal.loss{background:var(--red-bg);color:var(--red)}.category-badge{border-radius:4px;padding:2px 6px;font-size:10px;font-weight:600}.cat-내과계{color:#93c5fd;background:#1e3a5f}.cat-외과계{color:#86efac;background:#1a2e1a}.cat-지원계{color:#c4b5fd;background:#2d1f3d}.cat-센터성{color:#fcd34d;background:#3d2800}.pos{color:var(--green)}.neg{color:var(--red)}.neutral{color:var(--text-muted)}.warn-text{color:var(--yellow)}.leaderboard-section{border-color:#1d4ed8}.leaderboard-score-grid{grid-template-columns:1.4fr repeat(5,minmax(120px,1fr));gap:10px;margin-bottom:14px;display:grid}.leaderboard-score-grid>div{background:var(--bg3);border:1px solid var(--border);border-radius:8px;min-width:0;padding:13px 14px}.leaderboard-score-main{border-color:var(--blue)!important;background:#0f1f3dbf!important}.leaderboard-score-grid span,.leaderboard-score-grid em{color:var(--text-muted);font-size:12px;font-style:normal;display:block}.leaderboard-score-grid strong{color:var(--text);margin:4px 0 2px;font-size:20px;line-height:1.25;display:block}.leaderboard-score-main strong{color:var(--blue);font-size:28px}.auth-ranking-panel{background:var(--bg3);border:1px solid var(--border);border-radius:8px;margin-bottom:14px;padding:14px}.auth-form,.auth-user-card,.auth-actions,.auth-mode-tabs{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.auth-form input{background:var(--bg3);border:1px solid var(--border);width:170px;color:var(--text);border-radius:6px;padding:9px 10px;font-size:13px}.auth-form input:focus{outline:1px solid var(--blue);border-color:var(--blue)}.auth-user-card{justify-content:space-between}.auth-user-card span,.auth-user-card em,.leaderboard-status{color:var(--text-muted);font-size:12px;font-style:normal}.auth-user-card strong{color:var(--text);font-size:18px;display:block}.leaderboard-status{margin-top:10px;display:block}.leaderboard-scroll{max-height:min(60vh,560px)}.leaderboard-scroll.compact{max-height:280px}.leaderboard-table{min-width:1120px}.leaderboard-table th:first-child,.leaderboard-table th:nth-child(2),.leaderboard-table td:first-child,.leaderboard-table td:nth-child(2){text-align:left}.empty-ranking{color:var(--text-muted);text-align:center!important;padding:24px!important}.ranking-block{margin-top:14px}.ranking-block h3{color:var(--text);margin-bottom:8px;font-size:14px}.decision-header{justify-content:space-between;align-items:center;display:flex}.selection-count{color:var(--blue);font-size:14px;font-weight:600}.decision-hint{color:var(--text-muted);margin-bottom:16px;font-size:12px}.cards-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-bottom:20px;display:grid}.decision-card{background:var(--bg3);border:2px solid var(--border);cursor:pointer;border-radius:10px;padding:16px;transition:all .15s;position:relative}.decision-card:hover{border-color:var(--accent);transform:translateY(-1px)}.decision-card.selected{border-color:var(--accent);background:var(--blue-bg)}.decision-card.dimmed{opacity:.45;cursor:not-allowed}.decision-card.applied{opacity:.35;cursor:not-allowed;border-style:dashed}.card-header{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;display:flex}.card-category{background:var(--bg2);color:var(--text-muted);border:1px solid var(--border);border-radius:12px;padding:2px 7px;font-size:10px}.card-risk{border-radius:12px;padding:2px 7px;font-size:10px;font-weight:600}.risk-low{color:var(--green);background:#052e16}.risk-medium{background:var(--yellow-bg);color:var(--yellow)}.risk-high{background:var(--red-bg);color:var(--red)}.card-selected-badge{background:var(--accent);color:#fff;border-radius:12px;margin-left:auto;padding:2px 7px;font-size:10px;font-weight:700}.card-title{color:var(--text);margin-bottom:6px;font-size:14px;font-weight:700}.card-desc{color:var(--text-muted);margin-bottom:10px;font-size:12px;line-height:1.5}.card-effects{flex-direction:column;gap:4px;margin-bottom:10px;font-size:12px;display:flex}.label-pro{color:var(--green);margin-right:4px;font-weight:600}.label-con{color:var(--red);margin-right:4px;font-weight:600}.label-expected{color:var(--blue);margin-right:4px;font-weight:600}.card-pro,.card-con,.card-expected{color:var(--text-muted)}.card-meta{flex-wrap:wrap;gap:8px;font-size:11px;display:flex}.card-cost,.card-monthly-cost{border-radius:4px;padding:2px 7px;font-weight:600}.card-cost.neg,.card-monthly-cost.neg{background:var(--red-bg);color:var(--red)}.card-cost.pos,.card-monthly-cost.pos{background:var(--green-bg);color:var(--green)}.card-center-tag{color:var(--purple);background:#1e1b4b;border-radius:4px;padding:2px 7px;font-weight:600}.advance-wrap{justify-content:flex-end;display:flex}.btn-advance{padding:12px 32px;font-size:16px;font-weight:700}.modal-overlay{z-index:100;background:#000000bf;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg2);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:16px;width:100%;max-width:760px;max-height:90vh;padding:24px;display:flex;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;display:flex}.modal-header h2{font-size:18px;font-weight:700}.modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:18px}.modal-close:hover{color:var(--text);background:var(--bg3)}.report-narrative{background:var(--bg3);border-left:3px solid var(--blue);color:var(--text);border-radius:0 6px 6px 0;padding:12px 16px;font-size:14px;line-height:1.7}.report-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;display:grid}.report-section h3{color:var(--text-muted);margin-bottom:10px;font-size:14px;font-weight:700}.report-table{border-collapse:collapse;width:100%;font-size:13px}.report-table td{border-bottom:1px solid var(--border);padding:6px 8px}.report-table td:nth-child(2){text-align:right;font-weight:600}.report-table td:nth-child(3){text-align:right;font-size:12px}.report-cards{color:var(--text-muted);padding-left:20px;font-size:13px;line-height:1.8}.report-event{border-radius:6px;padding:12px 16px;font-size:13px}.report-event h3{margin-bottom:4px;font-weight:700}.event-meta{gap:6px;margin-bottom:8px;display:flex}.event-meta span,.event-response-cards span{background:#ffffff14;border-radius:999px;align-items:center;min-height:22px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.event-report-text{color:var(--text);margin-top:8px}.event-response-cards{margin-top:10px}.event-response-cards strong{color:var(--text);margin-bottom:6px;display:block}.event-response-cards div{flex-wrap:wrap;gap:6px;display:flex}.event-positive{background:var(--green-bg);color:var(--green);border:1px solid #166534}.event-mixed{color:var(--yellow);background:#f59e0b1f;border:1px solid #b45309}.event-negative{background:var(--red-bg);color:var(--red);border:1px solid #991b1b}.tertiary-ready{border-color:var(--purple);text-align:center;background:linear-gradient(135deg,#1e1b4b,#0f2027);padding:28px}.tertiary-ready h2{color:var(--purple);margin-bottom:8px;font-size:20px}.tertiary-ready p{color:var(--text-muted);margin-bottom:16px}.btn-apply{background:var(--purple);border-color:var(--purple);color:#fff;padding:12px 32px;font-size:16px}.btn-apply:hover{background:#7c3aed}.tertiary-success{border-color:var(--yellow);text-align:center;background:linear-gradient(135deg,#1c1a00,#2d2600);padding:24px}.tertiary-success h2{color:var(--yellow);margin-bottom:8px;font-size:22px}.tertiary-success p{color:var(--text-muted)}.medical-system-panel{border-color:var(--blue)}.medical-system-panel .goal-stage.done{border-color:var(--green);background:#16a34a14}.medical-system-panel .goal-stage.done .goal-stage-header span{color:var(--green)}.tertiary-apply-modal{text-align:center}.apply-success .trophy{margin:16px 0;font-size:60px}.apply-success h3{color:var(--yellow);margin-bottom:12px;font-size:22px}.apply-success p{color:var(--text-muted);margin-bottom:8px;line-height:1.7}.ending-credits{border-color:var(--yellow);background:linear-gradient(180deg, #78350f38, var(--bg2))}.ending-hero{text-align:center;max-width:760px;margin:0 auto 22px}.ending-kicker{color:var(--yellow);text-transform:uppercase;margin-bottom:6px;font-size:12px;font-weight:800}.ending-hero h2{color:var(--yellow);margin-bottom:10px;font-size:28px}.ending-hero p{color:var(--text-muted);line-height:1.7}.ending-summary-grid{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:22px;display:grid}.ending-summary-grid div{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:14px}.ending-summary-grid span{color:var(--text-muted);margin-bottom:6px;font-size:12px;display:block}.ending-summary-grid strong{color:var(--text);font-size:18px}.ending-chart{background:var(--bg3);border:1px solid var(--border);border-radius:8px;margin-bottom:16px;padding:16px}.ending-chart h3,.ending-columns h3{color:var(--text);margin-bottom:12px;font-size:15px}.ending-bar-row{grid-template-columns:120px 1fr 64px;align-items:center;gap:10px;margin:10px 0;font-size:13px;display:grid}.ending-bar-track{background:var(--bg);border-radius:999px;height:12px;overflow:hidden}.ending-bar{border-radius:999px;height:100%}.ending-bar.pos{background:var(--green)}.ending-bar.neg{background:var(--red)}.ending-bar-row strong{text-align:right}.ending-columns{grid-template-columns:1fr 1fr;gap:12px;display:grid}.ending-columns>div{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:16px}.ending-columns p{border-bottom:1px solid var(--border);justify-content:space-between;gap:12px;padding:8px 0;font-size:13px;display:flex}.ending-columns p:last-child{border-bottom:0}.ending-columns span{color:var(--text-muted);flex:none}@media (width<=768px){.dashboard-grid{grid-template-columns:repeat(2,1fr)}.ops-grid{grid-template-columns:1fr 1fr}.cards-grid{grid-template-columns:1fr}.header{flex-direction:column}.header-actions{justify-content:flex-start;width:100%}.header-auth{border-right:0;width:100%;padding-right:0}.header-auth input{flex:120px}.header-auth-status{max-width:none}.game-title{font-size:17px}.ending-summary-grid,.ending-columns{grid-template-columns:1fr 1fr}.ending-bar-row{grid-template-columns:96px 1fr 54px}}@media (width<=480px){.dashboard-grid{grid-template-columns:1fr 1fr}.metric-value{font-size:18px}.ending-summary-grid,.ending-columns{grid-template-columns:1fr}.ending-bar-row{grid-template-columns:1fr;gap:6px}.ending-bar-row strong{text-align:left}}.btn-ai{color:#c4b5fd;background:linear-gradient(135deg,#1e1b4b,#0f172a);border-color:#6d28d9;font-weight:600}.btn-ai:hover:not(:disabled){color:#ddd6fe;background:linear-gradient(135deg,#2e1065,#1e1b4b);border-color:#7c3aed}.btn-ai:disabled{opacity:.6;cursor:not-allowed}.btn-ai-toggle{font-weight:600;transition:all .2s}.btn-ai-toggle.active{color:#c4b5fd;background:linear-gradient(135deg,#2e1065,#1e1b4b);border-color:#7c3aed}.ai-buttons-row{border-top:1px solid var(--border);flex-wrap:wrap;gap:8px;padding:12px 0 4px;display:flex}.ai-modal{max-width:680px}.ai-fallback-notice{color:#fbbf24;background:#451a03;border:1px solid #92400e;border-radius:6px;padding:8px 12px;font-size:12px}.ai-cache-notice{color:var(--blue);background:#2563eb1f;border:1px solid #2563eb;border-radius:6px;padding:8px 12px;font-size:12px}.ai-error-detail{opacity:.8}.ai-loading{color:var(--text-muted);flex-direction:column;align-items:center;gap:16px;padding:40px 0;display:flex}.ai-spinner{border:3px solid var(--border);border-top-color:#7c3aed;border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.ai-report-text{color:var(--text);max-height:420px;padding:4px 0;font-size:13px;line-height:1.8;overflow-y:auto}.ai-report-text p{margin:0}.ai-report-text br{content:"";margin:4px 0;display:block}.ai-heading{color:var(--blue);font-weight:700;margin-top:12px!important}.section-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;display:flex}.section-title-row .section-title{margin-bottom:0}.section-subtitle{color:var(--text-muted);margin-top:4px;font-size:12px}.goal-stage-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;display:grid}.goal-stage{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:14px}.goal-stage.next{border-color:var(--blue);box-shadow:0 0 0 1px #2563eb40}.goal-stage-header{justify-content:space-between;gap:12px;margin-bottom:12px;display:flex}.goal-stage-header h3{color:var(--text);margin-bottom:4px;font-size:15px;font-weight:700}.goal-stage-header p{color:var(--text-muted);font-size:12px;line-height:1.5}.goal-stage-header span{color:var(--blue);flex:none;font-size:12px;font-weight:700}.dept-toolbar{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.filter-tabs{flex-wrap:wrap;gap:6px;display:flex}.filter-chip{border:1px solid var(--border);background:var(--bg3);color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:6px;padding:7px 10px;font-size:12px}.filter-chip:hover,.filter-chip.active{border-color:var(--blue);color:var(--text);background:var(--blue-bg)}.sort-select-wrap{color:var(--text-muted);white-space:nowrap;align-items:center;gap:8px;font-size:12px;display:flex}.sort-select-wrap select{background:var(--bg3);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:7px 28px 7px 10px;font-size:12px}@media (width<=768px){.dept-insight-grid,.dept-overview-grid,.dept-highlight-grid,.leaderboard-score-grid{grid-template-columns:1fr}.auth-form input,.auth-form button,.auth-actions,.auth-actions button{width:100%}.portfolio-map{height:240px}.dept-toolbar{flex-direction:column}.sort-select-wrap,.sort-select-wrap select{width:100%}.table-scroll{border-left:0;border-right:0;border-radius:0;max-height:70vh;margin-left:-16px;margin-right:-16px;padding:0 16px 8px}}
