:root{--bg-color: #0f172a;--panel-bg: #1e293b;--panel-border: #334155;--text-primary: #f8fafc;--text-secondary: #94a3b8;--accent-pressed: #22c55e;--accent-released: #3b82f6;--accent-warning: #f59e0b;--accent-danger: #ef4444;--badge-bg: #334155;--focus-ring: #f59e0b;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.4;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;min-height:100vh;min-height:100dvh;background-color:var(--bg-color);color:var(--text-primary);overflow:hidden}#app{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.game-app-shell{width:100%;height:100%;max-width:1280px;margin:0 auto;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px);padding-right:env(safe-area-inset-right,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px)}.interactive-viewport{width:100%;height:100%;display:flex;flex-direction:column;outline:none;cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:manipulation}.interactive-viewport:focus-visible{box-shadow:inset 0 0 0 3px var(--focus-ring)}.screen-container{width:100%;height:100%;display:flex;flex-direction:column;padding:clamp(.75rem,3vw,1.5rem);gap:.75rem;background-color:var(--bg-color);overflow-y:auto}.stage-screen{overflow-y:hidden}.screen-header{text-align:center;display:flex;flex-direction:column;align-items:center;gap:.25rem}.game-main-title{font-size:clamp(1.25rem,4vw,2rem);font-weight:800;color:var(--text-primary)}.screen-title{font-size:clamp(1.1rem,3.5vw,1.6rem);font-weight:700}.subtitle{font-size:clamp(.85rem,2.5vw,1rem);color:var(--text-secondary)}.badge{background-color:var(--badge-bg);color:var(--text-primary);padding:.2rem .6rem;border-radius:9999px;font-size:.75rem;font-weight:600}.success-badge{background-color:var(--accent-pressed)}.danger-badge{background-color:var(--accent-danger)}.year-badge{background-color:var(--accent-released)}.screen-body{flex:1;display:flex;flex-direction:column;gap:1rem}.center-content{justify-content:center;align-items:center}.info-card,.rule-summary-card,.project-card,.result-summary-card,.annual-summary-card,.final-score-card,.bankrupt-card,.record-card{background-color:var(--panel-bg);border:1px solid var(--panel-border);border-radius:10px;padding:clamp(.75rem,2.5vw,1.25rem);width:100%}.record-card{width:min(100%,34rem);text-align:center;padding:.75rem 1rem}.record-card h2,.record-card p{margin:.15rem 0}.record-details{display:grid;grid-template-columns:repeat(3,auto auto);justify-content:center;gap:.15rem .5rem;margin:.4rem 0 0}.record-details dd{margin:0;font-weight:700}.record-result{display:flex;justify-content:center;gap:1rem;margin:.6rem 0}.record-result.new-best{color:#ffd166;flex-direction:column;gap:.1rem;font-size:1.2rem}.storage-status{margin:.25rem 0;color:#ffd166;font-size:.85rem}@media(max-width:480px){.record-details{grid-template-columns:repeat(2,auto auto)}}.rule-summary-card h2,.result-reasons-box h3{font-size:1rem;margin-bottom:.5rem;border-bottom:1px solid var(--panel-border);padding-bottom:.25rem}.rule-summary-card ul,.result-reasons-box ul{list-style-type:none;display:flex;flex-direction:column;gap:.4rem;font-size:clamp(.8rem,2.5vw,.95rem)}kbd{background-color:var(--panel-border);color:var(--text-primary);padding:.1rem .3rem;border-radius:4px;font-family:monospace}.cta-banner{margin-top:1rem;text-align:center}.prompt-text{font-size:clamp(.9rem,3vw,1.1rem);font-weight:700;color:var(--accent-warning)}.pulse-animation{animation:pulse 1.5s infinite alternate}@keyframes pulse{0%{opacity:.6;transform:scale(.98)}to{opacity:1;transform:scale(1.02)}}.project-title{font-size:clamp(1.1rem,3vw,1.3rem);margin-bottom:.5rem;color:var(--accent-released)}.detail-grid,.status-grid,.annual-metrics,.final-details-grid,.bankrupt-details,.financial-breakdown{display:grid;grid-template-columns:auto 1fr;gap:.3rem .75rem;font-size:clamp(.8rem,2.5vw,.95rem)}.detail-grid dt,.financial-breakdown dt,.annual-metrics dt,.final-details-grid dt{color:var(--text-secondary)}.amount{font-weight:700;color:var(--accent-pressed)}.description-box{margin-top:.75rem;padding-top:.5rem;border-top:1px dashed var(--panel-border);font-size:clamp(.8rem,2.3vw,.9rem);color:var(--text-secondary)}.member-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem;list-style:none}.member-card{background-color:var(--panel-bg);border:1px solid var(--panel-border);border-radius:8px;padding:.75rem;display:flex;flex-direction:column;gap:.3rem}.team-screen{overflow-x:hidden}.team-screen-body{min-width:0}.team-project-label,.team-auto-label,.team-status-label,.team-generalist-label{font-size:.75rem;font-weight:700}.team-auto-label,.team-status-label,.team-generalist-label{display:inline-block;border:1px solid var(--panel-border);border-radius:9999px;padding:.15rem .5rem;background:var(--badge-bg)}.team-intro,.team-coordination{text-align:center}.team-status-list{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.25rem}.team-stage-assignment{color:var(--accent-released)}.team-member-reasons{margin-top:.25rem;padding-left:1.2rem;color:var(--text-secondary);font-size:.8rem}.team-assigned-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.team-waiting-grid{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr))}@media(max-width:720px){.team-assigned-grid{grid-template-columns:1fr}}.member-header{display:flex;justify-content:space-between;align-items:center}.member-role{font-size:.75rem;color:var(--accent-released);font-weight:600}.member-tag{font-size:.7rem;padding:.1rem .4rem;border-radius:4px}.tag-new{background-color:var(--accent-warning);color:#000}.tag-continued{background-color:var(--badge-bg)}.member-name{font-size:1rem}.member-ability{font-size:.75rem;color:var(--text-secondary)}.stage-hud{display:flex;flex-direction:column;gap:.45rem;background-color:var(--panel-bg);border:1px solid var(--panel-border);border-radius:12px;padding:.7rem .85rem}.hud-top-bar{display:flex;justify-content:space-between;align-items:center;gap:.75rem;font-size:clamp(.75rem,2.3vw,.85rem)}.hud-project-info{color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:70%}.hud-timer{font-size:clamp(.9rem,2.5vw,1.05rem);color:var(--accent-warning);font-weight:700}.hud-stage-meta{display:flex;flex-direction:column;gap:.35rem}.hud-stage-name{font-size:clamp(.95rem,2.8vw,1.15rem);font-weight:700;text-align:center}.hud-progress-container{display:flex;flex-direction:column;gap:.2rem}.progress-bar-label{display:flex;justify-content:space-between;font-size:.75rem;color:var(--text-secondary)}.game-progress-bar{width:100%;height:10px;accent-color:var(--accent-pressed);border-radius:999px}.stage-main-area{flex:1;display:flex;flex-direction:column;gap:clamp(.55rem,1.2vh,.9rem);justify-content:flex-start}.stage-member-banner{display:flex;align-items:center;gap:.75rem;background-color:var(--panel-bg);border:1px solid var(--panel-border);border-radius:10px;padding:.6rem .8rem}.main-member-avatar{font-size:1.8rem;min-width:2.5rem;text-align:center}.main-member-avatar.good{color:var(--accent-pressed)}.main-member-avatar.caution,.main-member-avatar.warning,.main-member-avatar.critical{color:var(--accent-warning)}.main-member-details{display:flex;flex-direction:column;gap:.2rem;min-width:0}.role-badge{font-size:.72rem;color:var(--accent-released);font-weight:600}.member-name-text{font-size:clamp(.95rem,2.6vw,1.1rem)}.stage-indicators{display:flex;gap:.35rem;flex-wrap:wrap}.indicator-chip{display:inline-flex;align-items:center;gap:.25rem;font-size:.72rem;color:var(--text-secondary)}.indicator-icon{display:inline-flex;align-items:center}.member-state-list{display:flex;gap:.3rem;flex-wrap:wrap;margin-top:.2rem}.member-state-pill{display:inline-flex;align-items:center;border-radius:999px;padding:.2rem .45rem;font-size:.72rem;background-color:#3b82f633;border:1px solid rgba(59,130,246,.35)}.member-state-pill.secondary{background-color:#f59e0b29;border-color:#f59e0b59}.member-state-pill.state-critical{background-color:#ef44442e;border-color:#ef444466}.member-state-pill.state-warning{background-color:#f59e0b2e;border-color:#f59e0b66}.member-state-pill.state-caution{background-color:#eab3082e;border-color:#eab30866}.status-summary{font-size:.75rem;color:var(--text-secondary)}.stage-input-status-box{border-radius:10px;padding:.8rem .9rem;text-align:center;transition:background-color .15s,border-color .15s}.status-released{background-color:#3b82f629;border:2px solid var(--accent-released)}.status-pressed{background-color:#22c55e29;border:2px solid var(--accent-pressed)}.status-indicator-badge{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font-size:clamp(.95rem,2.8vw,1.1rem);font-weight:700}.current-action-desc{font-size:clamp(.78rem,2.3vw,.9rem);margin-top:.25rem;color:var(--text-primary)}.current-action-desc.detail{color:var(--text-secondary)}.quality-hint-box{background-color:#f59e0b1f;border:1px dashed var(--accent-warning);border-radius:8px;padding:.55rem .7rem;font-size:clamp(.75rem,2.2vw,.85rem);color:var(--text-primary)}.hint-label-row{display:flex;justify-content:space-between;gap:.5rem;margin-bottom:.3rem}.hint-pill{display:inline-flex;align-items:center;padding:.15rem .45rem;border-radius:999px;font-weight:700;background-color:#94a3b833}.hint-warning{background-color:#f59e0b3d}.hint-critical{background-color:#ef444438}.hint-secondary{color:var(--text-secondary);font-size:.72rem}.stage-footer-metrics{font-size:.82rem;color:var(--text-secondary);border-top:1px solid var(--panel-border);padding-top:.45rem}.metrics-row{display:flex;justify-content:space-around;gap:.4rem;flex-wrap:wrap}.secondary-row{margin-top:.3rem;justify-content:center}.metric-pill{display:inline-flex;align-items:center;gap:.2rem}@media(min-width:1200px){.stage-screen{max-width:1500px;margin-inline:auto}}@media(max-width:959px){.stage-member-banner{flex-direction:column;align-items:flex-start}.metrics-row{justify-content:flex-start}}@media(max-width:599px){.screen-container{padding:.6rem;gap:.55rem}.stage-hud{padding:.6rem .7rem}.hud-top-bar{flex-direction:column;align-items:flex-start}.hud-project-info{max-width:100%}.stage-main-area{gap:.55rem}.main-member-avatar{font-size:1.5rem}.metric-pill{font-size:.72rem}.stage-footer-metrics{display:none}}.screen-footer{text-align:center;padding-top:.4rem}.action-hint{font-size:clamp(.75rem,2.3vw,.85rem);color:var(--accent-warning)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.balance-lab-host{align-items:stretch}.balance-lab{width:100%;height:100%;min-height:100vh;padding:clamp(.75rem,2vw,1.5rem);color:#eef7ff;background:#07131f;overflow-y:auto}.balance-lab__header,.balance-lab__actions,.balance-lab__paging{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.balance-lab__panel{margin-top:1rem;padding:1rem;border:1px solid #34536c;border-radius:.75rem;background:#102334}.balance-lab__controls{display:grid;grid-template-columns:max-content minmax(8rem,1fr);align-items:center;gap:.6rem .8rem;max-width:32rem}.balance-lab input,.balance-lab select,.balance-lab button,.balance-lab .button-link{min-height:2.75rem;padding:.55rem .75rem;border:1px solid #6f99b8;border-radius:.4rem}.balance-lab button,.balance-lab .button-link{color:#fff;background:#174e74;text-decoration:none;cursor:pointer}.balance-lab button:disabled{cursor:not-allowed;opacity:.5}.balance-lab :focus-visible{outline:3px solid #ffd166;outline-offset:2px}.balance-lab progress{width:100%;height:1rem;margin-top:1rem}.balance-lab__workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(20rem,1fr);gap:1rem}.balance-lab__metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.6rem}.balance-lab__metrics>div{padding:.6rem;border-radius:.4rem;background:#081a29}.balance-lab__metrics dt{color:#9fc3dd;font-size:.8rem}.balance-lab__metrics dd{margin:.2rem 0 0;overflow-wrap:anywhere}.balance-lab__table-scroll{overflow-x:auto}.balance-lab table{width:100%;border-collapse:collapse}.balance-lab th,.balance-lab td{padding:.45rem;border-bottom:1px solid #34536c;text-align:left}@media(max-width:700px){.balance-lab__workspace,.balance-lab__controls{grid-template-columns:1fr}}.ability-rank-badge{display:inline-block;font-size:.65rem;font-weight:700;padding:.1rem .35rem;border-radius:4px;vertical-align:middle}.rank-s{background-color:#8c30e8;color:#fff}.rank-a{background-color:#e99f0c;color:#1a1a1a}.rank-b{background-color:#1f8dd6;color:#fff}.rank-c{background-color:gray;color:#fff}.member-ability-row{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.25rem}.ability-item{font-size:.7rem;color:var(--text-secondary)}.member-style-hint{font-size:.65rem;color:var(--text-secondary);margin-top:.15rem;font-style:italic;line-height:1.3}.member-badge-group{display:flex;gap:.3rem;align-items:center}.team-warning-badge{background-color:var(--accent-danger, #e53935);color:#fff;font-size:.65rem;font-weight:700;padding:.1rem .4rem;border-radius:4px}.team-fatigue-badge{background-color:var(--panel-bg);border:1px solid var(--panel-border);font-size:.65rem;padding:.1rem .35rem;border-radius:4px;color:var(--text-secondary)}.personnel-event-screen .event-card{background-color:var(--panel-bg);border:1px solid var(--panel-border);border-radius:12px;padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.personnel-event-screen .status-resigned{background-color:#d32f2f;color:#fff}.personnel-event-screen .status-warning{background-color:#f57c00;color:#fff}.personnel-event-screen .status-concern{background-color:#fbc02d;color:#1a1a1a}.personnel-event-screen .reasons-box{background-color:#0003;border-radius:8px;padding:.75rem 1rem}.personnel-event-screen .turnover-cost-card{display:flex;justify-content:space-between;align-items:center;background-color:#d32f2f26;border:1px solid rgba(211,47,47,.4);padding:.75rem 1rem;border-radius:8px}.personnel-event-screen .cost-value{color:#ef5350;font-size:1.1rem}.tutorial-screen-container{display:flex;flex-direction:column;height:100%;width:100%;max-width:1280px;margin:0 auto;box-sizing:border-box;padding:1rem;gap:1rem;overflow:hidden;-webkit-user-select:none;user-select:none}.tutorial-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem}.tutorial-badge-container{display:flex;align-items:center;gap:.5rem}.practice-badge{background-color:#3b82f6;color:#fff;font-weight:700;font-size:.85rem;padding:.25rem .6rem;border-radius:6px;box-shadow:0 2px 4px #0003}.score-ineligible-badge{background-color:#9ca3af33;color:#d1d5db;border:1px solid rgba(156,163,175,.4);font-size:.75rem;padding:.2rem .5rem;border-radius:6px}.tutorial-step-progress{display:flex;align-items:center;gap:.4rem;background:#0f172a99;border:1px solid rgba(255,255,255,.1);padding:.25rem .75rem;border-radius:20px}.tutorial-step-progress .progress-label{font-size:.75rem;color:#94a3b8}.tutorial-step-progress .progress-value{font-size:.9rem;font-weight:700;color:#38bdf8}.tutorial-main-card{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#1e293bd9;border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:1.25rem 1.5rem;box-shadow:0 4px 12px #0000004d;text-align:center;gap:1rem;overflow-y:auto}.tutorial-title{font-size:1.5rem;font-weight:700;color:#f8fafc;margin:0}.tutorial-description{display:flex;flex-direction:column;gap:.25rem;max-width:600px}.tutorial-description-line{margin:0;font-size:1.05rem;line-height:1.5;color:#e2e8f0}.tutorial-warning-banner{display:flex;align-items:center;gap:.5rem;background-color:#ef444426;border:1px solid rgba(239,68,68,.5);color:#fca5a5;padding:.6rem 1rem;border-radius:8px;font-size:.95rem}.tutorial-fallback-hint{display:flex;align-items:center;gap:.5rem;background-color:#eab30826;border:1px solid rgba(234,179,8,.4);color:#fde047;padding:.5rem .85rem;border-radius:8px;font-size:.9rem}.tutorial-gauge-section{width:100%;max-width:400px;display:flex;flex-direction:column;gap:.35rem;margin-top:.5rem}.tutorial-gauge-section .gauge-header{display:flex;justify-content:space-between;font-size:.85rem;color:#cbd5e1}.tutorial-gauge-section .gauge-track{height:12px;background:#0f172acc;border-radius:6px;overflow:hidden;border:1px solid rgba(255,255,255,.1)}.tutorial-gauge-section .gauge-fill{height:100%;background:linear-gradient(90deg,#38bdf8,#818cf8);transition:width .1s linear}.tutorial-hud-footer{display:flex;flex-direction:column;gap:.5rem;background:#0f172ae6;border:1px solid rgba(255,255,255,.15);border-radius:10px;padding:.75rem 1rem}.tutorial-hud-footer.phase-overfocused{border-color:#ef4444b3;background:#2d0a0ae6}.tutorial-hud-footer .hud-status-row{display:flex;align-items:center;gap:1rem}.tutorial-hud-footer .hud-status-badge{display:flex;align-items:center;gap:.4rem;padding:.25rem .6rem;border-radius:6px;font-size:.8rem;font-weight:700}.tutorial-hud-footer .hud-status-badge.phase-released{background:#94a3b833;color:#cbd5e1}.tutorial-hud-footer .hud-status-badge.phase-pressing{background:#38bdf840;color:#38bdf8}.tutorial-hud-footer .hud-status-badge.phase-overfocused{background:#ef44444d;color:#fca5a5}.tutorial-hud-footer .hud-action-info{display:flex;align-items:center;gap:.4rem;font-size:.9rem;color:#e2e8f0}.tutorial-hud-footer .hud-action-info .action-label{color:#94a3b8;font-size:.8rem}.tutorial-hud-footer .hud-instruction-row{display:flex;align-items:center;gap:.5rem;background:#1e293b99;padding:.4rem .75rem;border-radius:6px;font-size:.9rem;color:#f1f5f9}@media(max-height:600px),(max-width:480px){.tutorial-screen-container{padding:.5rem;gap:.5rem}.tutorial-main-card{padding:.75rem 1rem;gap:.5rem}.tutorial-title{font-size:1.2rem}.tutorial-description-line{font-size:.9rem}.tutorial-hud-footer{padding:.5rem .75rem}}.audio-settings-trigger{position:fixed;z-index:40;top:max(.65rem,env(safe-area-inset-top));right:max(.65rem,env(safe-area-inset-right));min-width:5.5rem;min-height:2.75rem;border:1px solid rgba(148,163,184,.65);border-radius:999px;color:#f8fafc;background:#0f172af0;font-weight:700;cursor:pointer}.game-app-shell{padding-top:calc(env(safe-area-inset-top,0px) + 3.5rem)}.game-app-shell>.interactive-viewport{flex:1 1 auto;min-height:0;height:auto}.audio-settings-backdrop{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));background:#020617c7;overflow:auto}.audio-settings-dialog{width:min(100%,30rem);max-height:100%;overflow:auto;padding:1.25rem;border:1px solid #64748b;border-radius:14px;background:#172033;box-shadow:0 18px 50px #00000073}.audio-settings-dialog h2{margin:0 0 1rem;text-align:center}.audio-setting-row,.audio-volume-control{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:.75rem 0}.audio-volume-control{align-items:stretch;flex-direction:column}.audio-volume-control label{display:flex;justify-content:space-between;font-weight:700}.audio-volume-control input[type=range]{width:100%;min-height:2.75rem}.audio-settings-dialog button{min-width:6rem;min-height:2.75rem;border:1px solid #94a3b8;border-radius:8px;color:#f8fafc;background:#26344d;font-weight:700;cursor:pointer}.audio-dialog-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1rem}.audio-settings-trigger:focus-visible,.audio-settings-dialog button:focus-visible,.audio-settings-dialog input:focus-visible{outline:3px solid #facc15;outline-offset:3px}.stage-input-status-box .status-icon{display:inline-block}.stage-input-status-box.phase-focused .status-icon{animation:phase-focus-breathe .9s ease-in-out infinite alternate}.stage-input-status-box.phase-overfocused,.stage-input-status-box.phase-efficiency-drop{border-color:#f87171;background:#450a0ab8}@keyframes phase-focus-breathe{0%{transform:scale(1)}to{transform:scale(1.1)}}@media(max-width:480px),(max-height:600px){.game-app-shell{padding-top:calc(env(safe-area-inset-top,0px) + 3rem)}.audio-settings-trigger{top:max(.35rem,env(safe-area-inset-top));right:max(.35rem,env(safe-area-inset-right));min-width:4.8rem;min-height:2.4rem;font-size:.82rem}.audio-settings-dialog{padding:.85rem}.audio-settings-dialog h2{margin-bottom:.45rem;font-size:1.2rem}.audio-setting-row,.audio-volume-control{margin:.4rem 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.pulse-animation,.stage-input-status-box .status-icon,.tutorial-gauge-section .gauge-fill{animation:none!important;transform:none!important;transition:none!important}}
