@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--bg-primary:#0d1117;--bg-secondary:#161b22;--bg-tertiary:#1c2333;--bg-card:#1c2333;--bg-card-hover:#222d3f;--bg-input:#0d1117;--bg-modal:#000000b3;--border-primary:#30363d;--border-subtle:#21262d;--border-focus:#4a9eff;--text-primary:#e6edf3;--text-secondary:#8b949e;--text-muted:#6e7681;--text-accent:#79c0ff;--accent-blue:#4a9eff;--accent-green:#3fb950;--accent-red:#f85149;--accent-orange:#d29922;--accent-purple:#bc8cff;--accent-cyan:#39d2c0;--positive:#3fb950;--negative:#f85149;--warning:#d29922;--info:#4a9eff;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Cascadia Code", "Fira Code", monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.9375rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 24px #00000080;--transition-fast:.12s ease;--transition-base:.2s ease;--transition-slow:.35s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);min-height:100vh;line-height:1.5}#root{min-height:100vh}h1,h2,h3,h4{letter-spacing:-.01em;font-weight:600;line-height:1.25}.mono{font-family:var(--font-mono)}.card{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--space-4);transition:border-color var(--transition-base)}.card:hover{border-color:var(--border-focus)}.card-header{margin-bottom:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;display:flex}.card-title{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);font-weight:600}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);font-family:var(--font-sans);font-size:var(--text-sm);border:1px solid var(--border-primary);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;font-weight:500;display:inline-flex}.btn:hover{background:var(--bg-card-hover);border-color:var(--border-focus)}.btn:active{transform:scale(.98)}.btn-primary{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff}.btn-primary:hover{background:#5bacff;border-color:#5bacff}.btn-success{background:var(--accent-green);border-color:var(--accent-green);color:#fff}.btn-success:hover{background:#56d364;border-color:#56d364}.btn-danger{background:var(--accent-red);border-color:var(--accent-red);color:#fff}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}.btn-lg{padding:var(--space-3) var(--space-8);font-size:var(--text-lg)}.input{padding:var(--space-2) var(--space-3);font-family:var(--font-mono);font-size:var(--text-sm);background:var(--bg-input);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-primary);width:100%;transition:border-color var(--transition-fast)}.input:focus{border-color:var(--accent-blue);outline:none;box-shadow:0 0 0 2px #4a9eff26}.value-positive{color:var(--positive)}.value-negative{color:var(--negative)}.value-neutral{color:var(--text-secondary)}.value-change{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500}.stat{gap:var(--space-1);flex-direction:column;display:flex}.stat-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:500}.stat-value{font-family:var(--font-mono);font-size:var(--text-lg);color:var(--text-primary);font-weight:600}.progress-bar{background:var(--bg-primary);border-radius:3px;width:100%;height:6px;overflow:hidden}.progress-bar-fill{height:100%;transition:width var(--transition-base);border-radius:3px}input[type=range]{appearance:none;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:3px;outline:none;width:100%;height:6px}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent-blue);cursor:pointer;border:2px solid var(--bg-primary);width:18px;height:18px;box-shadow:var(--shadow-sm);transition:transform var(--transition-fast);border-radius:50%}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}input[type=range]::-moz-range-thumb{background:var(--accent-blue);cursor:pointer;border:2px solid var(--bg-primary);border-radius:50%;width:18px;height:18px}.title-screen{min-height:100vh;padding:var(--space-8);text-align:center;background:radial-gradient(ellipse at 50% 30%, #151d2e 0%, var(--bg-primary) 70%);flex-direction:column;justify-content:center;align-items:center;display:flex}.title-screen h1{font-size:var(--text-3xl);letter-spacing:-.03em;margin-bottom:var(--space-3);background:linear-gradient(135deg, var(--accent-blue), var(--accent-cyan));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:700}.title-screen .subtitle{font-size:var(--text-base);color:var(--text-secondary);max-width:400px;margin-bottom:var(--space-10);line-height:1.6}.title-screen .seed-input{margin-top:var(--space-6);align-items:center;gap:var(--space-3);display:flex}.title-screen .seed-input label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.title-screen .seed-input .input{text-align:center;width:140px}.game-screen{max-width:1200px;min-height:100vh;padding:var(--space-4);gap:var(--space-4);grid-template-rows:auto 1fr;margin:0 auto;display:grid}.game-header{padding:var(--space-3) var(--space-4);background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);justify-content:space-between;align-items:center;display:flex}.game-header .turn-info{align-items:baseline;gap:var(--space-4);display:flex}.game-header .turn-month{font-size:var(--text-xl);color:var(--text-primary);font-weight:700}.game-header .turn-detail{font-size:var(--text-sm);color:var(--text-secondary)}.game-header .stats-row{gap:var(--space-6);display:flex}.game-header .stat-inline{align-items:baseline;gap:var(--space-2);display:flex}.game-header .stat-inline .stat-label{font-size:var(--text-xs)}.game-header .stat-inline .stat-value{font-size:var(--text-base)}.game-content{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}@media (width<=900px){.game-content{grid-template-columns:1fr}}.game-left,.game-right{gap:var(--space-4);flex-direction:column;display:flex}.news-panel .news-item{padding:var(--space-3);background:var(--bg-secondary);border-radius:var(--radius-sm);border-left:3px solid var(--accent-orange);margin-bottom:var(--space-2)}.news-panel .news-headline{font-size:var(--text-base);color:var(--accent-orange);margin-bottom:var(--space-1);font-weight:600}.news-panel .news-description{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5}.news-panel .no-news{font-size:var(--text-sm);color:var(--text-muted);padding:var(--space-3);font-style:italic}.market-panel .sector-row{align-items:center;gap:var(--space-4);padding:var(--space-2) 0;border-bottom:1px solid var(--border-subtle);grid-template-columns:1fr auto auto;display:grid}.market-panel .sector-row:last-child{border-bottom:none}.market-panel .sector-name{font-size:var(--text-sm);font-weight:500}.market-panel .sector-price{font-family:var(--font-mono);font-size:var(--text-sm);text-align:right;font-weight:600}.market-panel .sector-change{font-family:var(--font-mono);font-size:var(--text-xs);text-align:right;min-width:60px;font-weight:500}.market-panel .trade-controls{align-items:center;gap:var(--space-2);margin-top:var(--space-2);padding-top:var(--space-2);display:flex}.market-panel .trade-controls .input{text-align:center;width:60px;padding:var(--space-1) var(--space-2);font-size:var(--text-xs)}.market-panel .portfolio-info{font-size:var(--text-xs);color:var(--text-muted);margin-top:var(--space-1)}.allocation-panel .action-row{align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border-subtle);grid-template-columns:120px 1fr 60px;display:grid}.allocation-panel .action-row:last-child{border-bottom:none}.allocation-panel .action-label{font-size:var(--text-sm);font-weight:500}.allocation-panel .action-hours{font-family:var(--font-mono);font-size:var(--text-sm);text-align:right;color:var(--accent-blue);font-weight:600}.allocation-panel .hours-summary{padding:var(--space-3) 0;margin-top:var(--space-2);border-top:1px solid var(--border-primary);justify-content:space-between;align-items:center;display:flex}.allocation-panel .hours-total{font-family:var(--font-mono);font-size:var(--text-base);font-weight:600}.allocation-panel .hours-remaining{font-size:var(--text-sm);color:var(--text-muted)}.allocation-panel .hours-over{color:var(--negative)}.modal-overlay{background:var(--bg-modal);z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn var(--transition-base);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);padding:var(--space-6);width:90%;max-width:560px;max-height:80vh;box-shadow:var(--shadow-lg);animation:slideUp var(--transition-slow);overflow-y:auto}.modal h2{font-size:var(--text-xl);margin-bottom:var(--space-4);color:var(--accent-blue)}.modal .result-section{margin-bottom:var(--space-4)}.modal .result-section h3{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:var(--space-2)}.modal .result-row{padding:var(--space-1) 0;font-size:var(--text-sm);justify-content:space-between;display:flex}.modal .result-messages{gap:var(--space-2);flex-direction:column;display:flex}.modal .result-message{font-size:var(--text-sm);color:var(--text-secondary);padding:var(--space-2) var(--space-3);background:var(--bg-tertiary);border-radius:var(--radius-sm)}.modal .modal-actions{margin-top:var(--space-6);justify-content:flex-end;display:flex}.game-end{min-height:100vh;padding:var(--space-8);text-align:center;background:radial-gradient(ellipse at 50% 30%, #151d2e 0%, var(--bg-primary) 70%);flex-direction:column;justify-content:center;align-items:center;display:flex}.game-end h1{font-size:var(--text-2xl);margin-bottom:var(--space-2);color:var(--accent-cyan);font-weight:700}.game-end .end-subtitle{font-size:var(--text-base);color:var(--text-secondary);margin-bottom:var(--space-8)}.game-end .final-stats{gap:var(--space-4);width:100%;max-width:600px;margin-bottom:var(--space-8);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));display:grid}.game-end .final-stat{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-md);padding:var(--space-4)}.game-end .portfolio-summary{width:100%;max-width:600px;margin-bottom:var(--space-8)}.game-end .actions{gap:var(--space-4);display:flex}.status-bar-condensed{gap:var(--space-4);flex-wrap:wrap;display:flex}.status-bar-condensed .stat-chip{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);background:var(--bg-tertiary);border-radius:var(--radius-sm);font-size:var(--text-xs);display:flex}.status-bar-condensed .stat-chip .chip-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.status-bar-condensed .stat-chip .chip-value{font-family:var(--font-mono);color:var(--text-primary);font-weight:600}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-primary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}
