@charset "UTF-8";
:root{--ink:#173e34;--muted:#5c7168;--paper:#f5f3ea;--card:#fffef9;--line:#dbe1d4;--green:#257354;--lime:#d9ebae;--gold:#c69540;--negative:#a64638;--shadow:0 8px 26px #163a2e08;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #c58c28;outline-offset:3px}a{color:inherit}button{min-height:44px}button,input,select{border-radius:10px}input,select{min-width:0;border:1px solid #bfccbf;background:#fffefa;color:var(--ink);padding:10px 12px;min-height:44px}input[type=number]{width:100%}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.16}h1{font-family:Georgia,"Times New Roman",serif;font-size:35px;font-weight:500;letter-spacing:-1px;margin:0}h2{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:28px;letter-spacing:-.5px;margin-bottom:10px}h3{font-size:16px;margin-bottom:12px}p{line-height:1.6}svg{display:block;max-width:100%}[hidden]{display:none!important}.skip-link{position:absolute;top:-100px;left:20px;z-index:100;background:white;padding:15px}.skip-link:focus{top:10px}.tycoon-shell{max-width:1460px;margin:0 auto;padding:28px 34px 18px}.game-header{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:25px}.back-link{font-size:12px;text-decoration:none;color:var(--muted);display:inline-flex;align-items:center;min-height:32px;margin-bottom:8px}.title-line{display:flex;align-items:center;gap:12px}.brand-glyph{width:39px;height:39px;display:grid;place-items:center;border-radius:12px;background:var(--ink);color:var(--lime);font-size:29px}.tagline{margin:9px 0 0 51px;color:var(--muted);font-size:13px}.header-meta{display:flex;flex-direction:column;align-items:flex-end;gap:7px;font-size:11px;color:var(--muted)}.practice-pill{border:1px solid #b9c8ad;padding:6px 11px;border-radius:20px;color:#436142;background:#eaf0de;font-size:11px;font-weight:650}.play-clock strong{font-variant-numeric:tabular-nums}.financial-hud{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;border:1px solid var(--line);border-radius:16px;background:var(--card);box-shadow:var(--shadow);margin-bottom:24px;overflow:hidden}.hud-item{padding:18px 24px;min-width:0;border-right:1px solid var(--line)}.hud-item:last-child{border:0}.hud-item:first-child{background:#eaf0dd}.tiny-label,.hud-label,.eyebrow{text-transform:uppercase;letter-spacing:1.6px;font-size:10px;font-weight:750;display:block;color:var(--muted)}.hud-value{display:block;font-size:25px;font-weight:600;letter-spacing:-.7px;margin:7px 0 4px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.hud-note{font-size:11px;color:var(--muted)}.positive{color:#2c7554}.negative{color:var(--negative)}.game-layout{display:grid;grid-template-columns:175px minmax(0,1fr) 270px;gap:24px;align-items:start}.game-tabs{display:flex;flex-direction:column;gap:6px;padding-top:5px}.game-tabs>button{display:flex;gap:12px;align-items:center;text-align:left;border:0;background:transparent;color:#587065;padding:11px 12px;font-size:13px;font-weight:550;min-height:47px}.game-tabs>button>span{font-size:20px;line-height:1;width:22px;text-align:center}.game-tabs>button[aria-current=page]{background:var(--ink);color:#fffef4;box-shadow:0 5px 16px #173e3415}.game-tabs>button:hover:not([aria-current=page]){background:#e5ebdc}.sidebar-foot{margin-top:36px;padding:18px 13px;border-top:1px solid var(--line)}.sidebar-foot>strong{display:block;font-size:13px;margin:10px 0}.sidebar-foot p{font-size:11px;color:var(--muted);line-height:1.7;margin:13px 0 10px}.progress-track{height:5px;border-radius:10px;background:#dce4d1;overflow:hidden}.progress-track span{display:block;height:100%;background:var(--green);border-radius:10px;transition:width .3s}.text-button{background:none;border:0;color:#476250;padding:5px 0;font-size:12px;text-decoration:underline;text-underline-offset:4px}.main-column{min-width:0}.section-top{display:flex;align-items:center;justify-content:space-between;margin:3px 0 16px;gap:12px}.section-top h2{margin:0}.section-top p{font-size:12px;color:var(--muted);margin:7px 0 0}.section-top .eyebrow{margin-bottom:8px}.scene-card{position:relative;background:#e7ecdc;border:1px solid #d2ddc5;border-radius:18px;overflow:hidden}.scene-card>svg{width:100%;height:auto;aspect-ratio:660/346}.scene-caption{position:absolute;top:18px;left:21px;z-index:2}.scene-caption .eyebrow{color:#567359;margin-bottom:7px}.scene-caption strong{font-family:Georgia,serif;font-size:23px;font-weight:500}.scene-badge{position:absolute;right:15px;top:18px;background:#fffef4df;padding:7px 10px;border:1px solid #d5dec9;border-radius:20px;font-size:10px;font-weight:650}.scene-footer{padding:15px 19px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid #cfdbc0;background:#f6f8ed}.scene-footer p{font-size:12px;color:var(--muted);line-height:1.5;margin:0}.scene-footer strong{display:block;font-size:13px;color:var(--ink);margin-bottom:3px}.primary-button,.small-button{border:1px solid transparent;background:var(--ink);color:#fffef4;font-weight:600;padding:12px 17px;font-size:12px;line-height:1.3;white-space:nowrap}.primary-button:hover:not(:disabled),.small-button:hover:not(:disabled){background:#285344}.small-button{padding:9px 13px;font-size:11px}.ghost{background:transparent;color:var(--ink);border:1px solid #becdb7}.ghost:hover:not(:disabled){background:#e7eddd}.button-row{display:flex;gap:8px;flex-wrap:wrap}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:17px}.panel{border:1px solid var(--line);border-radius:15px;background:var(--card);padding:19px;box-shadow:var(--shadow);min-width:0}.panel+.panel{margin-top:16px}.two-columns .panel+.panel{margin-top:0}.panel-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-top h3{margin:0}.muted{color:var(--muted)}.small{font-size:12px}.micro{font-size:10px;line-height:1.6}.money{font-variant-numeric:tabular-nums;letter-spacing:-.3px}.big-value{font-size:27px;font-weight:600;margin:12px 0 2px}.mini-label{font-size:11px;color:var(--muted)}.sparkline{width:100%;height:64px;margin-top:14px}.chart-labels{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:7px}.step-list{list-style:none;margin:12px 0 0;padding:0}.step-list li{display:flex;gap:11px;align-items:center;padding:9px 0;font-size:12px}.step-dot{width:24px;height:24px;display:grid;place-items:center;border:1px solid #c9d6bd;border-radius:50%;color:#597647;background:#edf3e3;font-size:10px;flex-shrink:0}.step-dot.done{background:var(--green);border-color:var(--green);color:white}.step-list .text-button{min-height:28px;text-decoration:none;font-size:12px}.week-panel{background:#e9eddf;border:1px solid #d3dcc8;border-radius:16px;padding:20px;position:sticky;top:18px}.week-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.week-heading h3{font-family:Georgia,serif;font-size:22px;font-weight:500;margin:0}.week-number{font-size:10px;font-weight:650;background:#fffdf4;padding:6px 8px;border-radius:7px}.form-field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;font-size:11px;font-weight:650}.form-field select{width:100%;font-size:12px;padding:11px 10px;background:#fffef8}.line-items{margin:15px 0 18px}.line-item{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:12px;padding:8px 0}.line-item span{color:var(--muted)}.line-item strong{font-weight:600;text-align:right}.line-item.total{border-top:1px solid #c7d4bb;padding-top:14px;margin-top:6px}.week-panel .primary-button{width:100%;padding:15px;display:flex;justify-content:space-between}.week-tip{margin:13px 0 0;font-size:11px;color:#5e7256;line-height:1.65}.soft-separator{height:1px;background:#d4dec9;margin:18px 0}.weather-card{display:flex;gap:12px;align-items:center;padding:12px;border-radius:12px;background:#f8faef;font-size:11px;color:#63735e}.weather-symbol{font-size:25px;color:#b28d3d}.weather-card strong{display:block;color:var(--ink);margin-bottom:3px}.action-feedback{font-size:12px;min-height:24px;padding:0 3px;margin:13px 0 0;color:var(--green)}.action-feedback.error{color:var(--negative)}.notice{border:1px solid #cfb778;border-radius:12px;padding:14px 18px;font-size:12px;background:#fff4d9;margin-bottom:20px}.notice p{margin-bottom:9px}.notice p:last-child{margin:0}.notice-warning{border-color:#d8ad6a}.soft-notice{border:1px solid #d3dfc6;background:#f0f5e7;border-radius:10px;padding:12px 14px;font-size:12px;line-height:1.65;color:#4a6450;margin-bottom:16px}.stat-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:17px 0}.stat-box{border:1px solid var(--line);border-radius:12px;padding:14px;background:var(--card);min-width:0}.stat-box strong{display:block;font-size:20px;margin-top:7px;overflow-wrap:anywhere}.control-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.control-grid>.panel{margin:0}.control-grid p{font-size:12px;color:var(--muted);margin-bottom:13px}.inline-input{display:flex;align-items:end;gap:8px;margin-top:12px}.inline-input label{font-size:11px;display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.inline-input .small-button{flex-shrink:0}.staff-row{display:grid;grid-template-columns:1fr auto;gap:9px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.staff-row:last-child{border:0}.staff-row strong{font-size:12px}.staff-row small{display:block;font-size:10px;line-height:1.5;color:var(--muted);margin-top:3px}.staff-actions{display:flex;align-items:center;gap:8px}.stepper{width:32px;padding:0;border:1px solid #c4d0bc;background:#f2f5e9;color:var(--ink);font-size:19px}.staff-count{font-size:13px;min-width:12px;text-align:center}.market-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.market-card{margin:0!important;padding:17px}.ticker-line{display:flex;justify-content:space-between;align-items:start;gap:10px}.ticker-icon{width:35px;height:35px;border:1px solid #d3dfc5;background:#edf3e4;display:grid;place-items:center;border-radius:10px;font-family:Georgia,serif;font-size:18px}.ticker-info{flex:1;min-width:0}.ticker-info strong{display:block;font-size:12px;margin-bottom:4px}.ticker-info span{font-size:10px;color:var(--muted)}.stock-price{font-size:23px;font-weight:600;margin:16px 0 3px}.return-tag{font-size:10px;font-weight:650}.market-card .sparkline{height:50px;margin:6px 0 14px}.holding-line{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin:10px 0}.trade-actions{display:grid;grid-template-columns:60px 1fr 1fr;gap:6px}.trade-actions input{padding:8px;font-size:12px}.trade-actions button{font-size:11px;padding:8px 5px}.option-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.option-form .form-field{margin:0}.option-form input,.option-form select{width:100%;font-size:12px}.quote-card{margin-top:18px;border-top:1px solid var(--line);padding-top:17px}.quote-card .button-row{margin-top:16px}.quote-value{font-size:27px;letter-spacing:-.5px;margin:6px 0}.payoff-chart{width:100%;margin:18px 0 8px}.position-row{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line)}.position-row:last-child{border:0}.position-row strong{display:block;font-size:12px}.position-row small{display:block;font-size:10px;line-height:1.65;color:var(--muted);margin-top:5px}.empty-card{text-align:center;padding:28px 22px;color:var(--muted);font-size:12px}.empty-icon{font-size:30px;margin-bottom:10px;display:block;color:#6c8969}.journal-list{display:flex;flex-direction:column;gap:12px}.journal-entry{display:flex;align-items:start;gap:14px;padding:16px;background:var(--card);border:1px solid var(--line);border-radius:13px}.journal-week{background:#eaf0df;border-radius:9px;padding:10px 8px;font-size:11px;min-width:46px;text-align:center;line-height:1.6}.journal-week b{display:block;font-size:16px}.journal-body{flex:1;min-width:0}.journal-body h3{font-size:13px;margin-bottom:6px}.journal-body p{font-size:11px;color:var(--muted);margin:0;line-height:1.65}.journal-body .line-item{font-size:11px;padding:3px 0}.record-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.record{border:1px solid var(--line);border-radius:11px;background:#f7f8ee;padding:13px}.record strong{display:block;font-size:19px;margin-top:8px}.record small{display:block;font-size:10px;color:var(--muted)}.game-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:30px;padding-top:18px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}.game-footer>span:last-child{display:flex;gap:16px}.game-footer .text-button{font-size:10px}.danger-button{border:1px solid #b96551;background:#ab4f3d;color:white}.allocation{height:10px;border-radius:10px;overflow:hidden;display:flex;background:#e5eadb;margin:16px 0}.allocation>span{min-width:0}.allocation-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:10px;color:var(--muted)}.allocation-legend i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px}.result-hero{padding:24px;border-radius:16px;background:var(--ink);color:var(--paper);margin-bottom:20px}.result-hero h2{color:var(--lime)}.result-hero p{font-size:13px;margin-bottom:0}.result-hero strong{font-size:34px;font-weight:500;display:block;margin:12px 0}details.rules{margin-top:16px;font-size:11px;color:var(--muted)}details.rules summary{cursor:pointer;min-height:44px;padding-top:12px}details.rules p,details.rules ul{font-size:11px;line-height:1.7}dialog{max-width:560px;width:calc(100% - 28px);border:1px solid #c5d3be;border-radius:20px;padding:0;background:var(--card);color:var(--ink);box-shadow:0 25px 100px #0e271c35}dialog::backdrop{background:#163a2a80;backdrop-filter:blur(3px)}.dialog-body{padding:30px;position:relative}.dialog-body .eyebrow{margin-bottom:11px}.dialog-body h2{padding-right:20px}.dialog-body p,.dialog-body li{font-size:13px;line-height:1.7;color:var(--muted)}.dialog-body ul{padding-left:20px}.dialog-close{position:absolute;top:12px;right:14px;width:36px;background:transparent;border:0;color:var(--muted);font-size:25px}.dialog-buttons{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin-top:24px}.dialog-buttons button{padding:11px 16px}.scene-person{animation:walk-bob 2.4s ease-in-out infinite}.scene-person:nth-of-type(2n){animation-delay:-1s}.scene-cloud{animation:cloud-drift 10s ease-in-out infinite alternate}.steam{animation:steam-rise 3s ease-in-out infinite}.week-transition .scene-card{animation:week-glow .6s ease-out}@keyframes walk-bob{50%{transform:translateY(-2px)}}@keyframes cloud-drift{to{transform:translateX(12px)}}@keyframes steam-rise{0%,100%{opacity:.3;transform:translateY(0)}50%{opacity:.65;transform:translateY(-4px)}}@keyframes week-glow{50%{box-shadow:0 0 0 5px #9fc57555}}
@media(min-width:1500px){.tycoon-shell{padding-top:35px}}@media(max-width:1180px){.tycoon-shell{padding:20px}.game-layout{grid-template-columns:150px minmax(0,1fr) 230px;gap:17px}.week-panel{padding:17px}.hud-item{padding:16px 18px}.game-tabs>button{font-size:12px;padding-left:9px;gap:8px}.control-grid{grid-template-columns:1fr}.game-tabs>button>span{width:18px}.scene-caption{top:16px;left:17px}.scene-caption strong{font-size:20px}.scene-caption .eyebrow{font-size:9px}}
@media(max-width:980px){.game-layout{grid-template-columns:minmax(0,1fr) 235px}.game-tabs{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;padding:0}.game-tabs>button{flex-direction:column;justify-content:center;gap:5px;text-align:center;font-size:11px;padding:10px 3px;border:1px solid var(--line)}.game-tabs>button>span{font-size:18px}.sidebar-foot{display:none}.financial-hud{margin-bottom:16px}.game-header{margin-bottom:20px}.game-layout{gap:17px}.two-columns{grid-template-columns:1fr}.hud-value{font-size:22px}.market-grid{grid-template-columns:1fr}.scene-footer{padding:13px;align-items:start;flex-direction:column}.scene-footer .primary-button{width:100%;text-align:center}.header-meta{font-size:10px}.week-panel{top:12px}}
@media(max-width:680px){.tycoon-shell{padding:12px 14px 18px}.game-header{align-items:start;gap:8px;margin-bottom:17px}.title-line{gap:8px}.brand-glyph{width:31px;height:31px;border-radius:9px;font-size:24px}h1{font-size:26px;letter-spacing:-.7px}.tagline{margin-left:39px;font-size:11px}.back-link{font-size:11px;margin-bottom:4px}.header-meta{padding-top:7px;gap:6px;max-width:116px;text-align:right}.practice-pill{font-size:9px;padding:5px 8px}.play-clock{font-size:9px}.financial-hud{grid-template-columns:1fr 1fr;border-radius:13px}.hud-item{padding:13px 15px;border-bottom:1px solid var(--line)}.hud-item:nth-child(2){border-right:0}.hud-item:nth-child(3),.hud-item:nth-child(4){border-bottom:0}.hud-value{font-size:23px;margin:5px 0 2px}.hud-label{font-size:8px;letter-spacing:1.1px}.hud-note{font-size:9px}.game-layout{display:flex;flex-direction:column;gap:16px}.game-tabs,.main-column,.week-panel{width:100%}.game-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.game-tabs>button{font-size:9px;line-height:1.3;min-height:62px;border-radius:9px;gap:7px}.game-tabs>button>span{font-size:18px}.week-panel{position:static;order:3;padding:18px}.week-panel .line-items{margin-top:8px}.week-panel .weather-card,.week-panel .soft-separator{display:none}.week-panel .week-heading{margin-bottom:15px}.week-panel .form-field{margin-bottom:10px}.week-panel .primary-button{font-size:13px}.section-top{margin:3px 0 13px}.section-top h2{font-size:25px}.section-top p{font-size:11px}.scene-caption{top:14px;left:15px}.scene-caption strong{font-size:19px}.scene-caption .eyebrow{font-size:8px;margin-bottom:5px}.scene-badge{top:13px;right:12px;font-size:8px;padding:6px 8px}.scene-card>svg{aspect-ratio:660/366}.scene-footer{flex-direction:row;align-items:center;gap:10px;padding:12px}.scene-footer .primary-button{width:auto;padding:11px;font-size:11px}.scene-footer p{font-size:10px}.scene-footer strong{font-size:12px}.two-columns{grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.panel{padding:15px;border-radius:13px}.two-columns .panel{padding:14px}.panel h3{font-size:13px}.big-value{font-size:23px}.mini-label{font-size:10px}.step-list li{font-size:10px;gap:7px;padding:8px 0}.step-list .text-button{font-size:10px}.step-dot{width:20px;height:20px;font-size:9px}.market-grid{grid-template-columns:1fr 1fr;gap:10px}.market-card{padding:13px}.ticker-icon{display:none}.ticker-info strong{font-size:11px}.stock-price{font-size:21px}.trade-actions{grid-template-columns:1fr 1fr}.trade-actions input{grid-column:1/-1;font-size:12px}.market-card .sparkline{height:42px}.holding-line{display:block;line-height:1.6}.control-grid{gap:12px}.stat-row{gap:8px}.stat-box{padding:11px 10px}.stat-box strong{font-size:18px}.stat-box .tiny-label{font-size:8px;letter-spacing:.8px}.game-footer{display:block;margin-top:23px}.game-footer>span:last-child{margin-top:8px;justify-content:space-between;gap:8px}.game-footer .text-button{font-size:10px}.record-grid{gap:8px}.record{padding:10px}.record strong{font-size:17px}.record small{font-size:9px}.option-form{gap:10px}.quote-value{font-size:24px}.line-item{font-size:11px}.dialog-body{padding:24px 20px}.journal-entry{padding:13px;gap:10px}.journal-week{min-width:39px;padding:8px 5px}.journal-body h3{font-size:12px}.allocation-legend{gap:8px;font-size:9px}}
@media(max-width:360px){.tycoon-shell{padding-left:10px;padding-right:10px}h1{font-size:23px}.brand-glyph{display:none}.tagline{margin-left:0;font-size:10px}.header-meta{max-width:98px}.game-tabs>button{font-size:8px}.hud-value{font-size:21px}.two-columns{grid-template-columns:1fr}.scene-caption strong{font-size:17px}.scene-badge{display:none}.scene-footer{flex-direction:column;align-items:stretch}.scene-footer .primary-button{width:100%}.market-grid{grid-template-columns:1fr 1fr}.market-card{padding:11px}.ticker-info strong{font-size:10px}.option-form{grid-template-columns:1fr 1fr}.inline-input{flex-wrap:wrap}.inline-input .small-button{flex:1}.game-footer{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media print{.game-tabs,.week-panel,.game-footer,.header-meta,.skip-link,.action-feedback{display:none!important}.game-layout{display:block}.tycoon-shell{padding:0}.financial-hud{break-inside:avoid}.panel,.scene-card{box-shadow:none;break-inside:avoid}}

/* Planning controls, separate practice modes and decision reviews. */
.mode-control{display:flex;align-items:center;gap:8px;font-size:11px}.mode-control select{max-width:215px;font-size:12px;padding:8px 10px}.clock-controls{display:flex;align-items:center;gap:14px}.play-clock{display:grid;grid-template-columns:auto auto;gap:2px 7px;align-items:baseline}.play-clock strong{font-size:15px}.play-clock #clock-status{grid-column:1/-1;text-align:right;font-size:10px}.clock-controls button{font-size:11px;padding:8px 12px;min-height:44px}.pause-notice{display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid #a9be9b;background:#e7edda;margin-bottom:18px}.pause-notice p{margin:0;font-size:13px}.pause-notice button{flex-shrink:0}#dialog-title:focus{outline:none}.scene-note{margin:0;padding:0 22px 13px;font-size:10px;line-height:1.5;color:var(--muted);background:#e1e8d4}.scene-badge{max-width:180px;text-align:right}.goal-title{font-size:17px;font-weight:650;margin:17px 0 6px}.goal-details{border-top:1px solid var(--line);margin-top:17px;padding-top:12px}.goal-details summary,.preview-details summary,.training-details summary,.time-budget summary{cursor:pointer;font-size:12px;font-weight:650;line-height:1.5;min-height:38px;padding:8px 0}.goal-details .step-list{margin:10px 0}.goal-details .step-list p{margin:1px 0 8px;line-height:1.5}.goal-details .text-button{text-align:left;line-height:1.5;min-height:38px}.recovery-panel{margin:0 0 16px}.recovery-risk{border-color:#d3bda0;background:#fffaf0}.recovery-list{list-style:none;padding:0;margin:10px 0 0}.recovery-list li{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;border-top:1px solid var(--line)}.recovery-list li strong{font-size:12px}.recovery-list li p{font-size:11px;line-height:1.6;color:var(--muted);margin:3px 0 0}.recovery-list button{white-space:nowrap;font-size:11px;flex-shrink:0}.recovery-list+.micro{margin-bottom:0}.time-budget{border:1px solid var(--line);border-radius:10px;padding:0 10px;margin-top:10px;background:#f6f7ed}.time-budget .line-item{font-size:11px;padding:5px 0}.time-budget p{margin:7px 0 11px}.preview-details,.training-details{border-top:1px solid var(--line);padding-top:6px;margin-top:16px}.training-details summary{display:flex;align-items:center;justify-content:space-between;gap:8px}.training-details summary::before{content:'▸';margin-right:2px}.training-details[open] summary::before{content:'▾'}.employee-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.employee-row strong,.trade-history-row strong{font-size:12px;display:block}.employee-row small,.trade-history-row small{font-size:10px;display:block;color:var(--muted);line-height:1.6;margin-top:3px}.employee-row button{font-size:10px;flex-shrink:0;padding:8px 10px}.training-badge{font-size:10px;white-space:nowrap;padding:6px 8px;background:#f0e4c5;border-radius:6px}.training-badge.complete{background:#e5edd8;color:#3b6a4b}.training-details>p{margin:10px 0 0}.preview-comparison{margin:5px 0 12px}.preview-comparison .line-item{font-size:11px}.preview-comparison+.micro{line-height:1.6}.upgrade-preview{border-top:1px solid var(--line);padding-top:10px;margin-top:10px}.upgrade-preview button{margin:10px 0;white-space:normal;text-align:left}.upgrade-preview .micro{margin:0}.order-review{padding:8px 14px;background:#f3f5e9;border:1px solid var(--line);border-radius:12px;margin:16px 0}.order-review .line-item{gap:14px;font-size:12px}.order-review .line-item strong{text-align:right}.trade-history-row{display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid var(--line);padding:12px 0}.trade-history-row>.money{font-size:12px;white-space:nowrap}#game-content>.panel+.panel{margin-top:16px}.scene-worker{transform-box:fill-box;transform-origin:center;animation:staff-work 1.9s ease-in-out infinite}.scene-trainee{animation-duration:3.8s}.scene-manager{animation:staff-work 3s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.shop-illustration[data-shop-operating="false"] .scene-worker,.shop-illustration[data-shop-operating="false"] .scene-manager,.shop-illustration[data-shop-operating="false"] .steam{animation:none}.tycoon-shell[data-game-paused="true"] .scene-card *,.shop-illustration[data-scene-paused="true"] *,html[data-dtp-motion="off"] .scene-card *{animation-play-state:paused!important;transition:none!important}.tycoon-shell[data-game-paused="true"] .scene-card{animation:none!important}@keyframes staff-work{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-2px) rotate(2deg)}}
@media(max-width:980px){.header-meta{gap:6px}.mode-control{flex-wrap:wrap;justify-content:flex-end}.scene-badge{max-width:150px}.week-panel .time-budget{width:100%}}
@media(max-width:680px){.game-header{align-items:flex-start;gap:16px;flex-direction:column}.header-meta{align-items:flex-start;width:100%;max-width:none;text-align:left;display:grid;grid-template-columns:1fr auto}.two-columns{grid-template-columns:1fr}.header-meta .practice-pill{grid-column:1/-1;justify-self:start}.mode-control{grid-column:1/-1;justify-content:flex-start}.mode-control select{max-width:none;flex:1}.header-meta #mode-hint{grid-column:1/-1}.clock-controls{grid-column:1/-1;justify-content:space-between}.play-clock #clock-status{text-align:left}.header-meta #save-status{grid-column:1/-1}.pause-notice{flex-direction:column;align-items:flex-start;gap:10px}.scene-caption{max-width:60%}.scene-badge{max-width:34%;font-size:9px;line-height:1.35}.scene-note{padding:0 15px 10px}.recovery-list li{align-items:flex-start;gap:10px}.employee-row{gap:8px}.employee-row small{max-width:185px}.employee-row button{max-width:116px;white-space:normal}.order-review{padding:7px 10px}.order-review .line-item{font-size:11px}.trade-history-row{gap:10px}.trade-history-row>.money{font-size:11px}.dialog-buttons{flex-wrap:wrap}.dialog-buttons button{flex:1}.game-footer>span:last-child{flex-wrap:wrap}.preview-comparison .line-item strong{white-space:nowrap}}
@media(prefers-reduced-motion:reduce){.scene-worker,.scene-manager{animation:none!important}}

/* Read-only planning and portfolio analysis. */
.planner-invitation{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 14px}.planner-invitation p{font-size:12px;color:var(--muted);margin:0}.planner-invitation button{flex-shrink:0}.planner-controls{margin-bottom:18px}.planner-controls .panel-top{align-items:center}.planner-controls .panel-top h3{margin:0}.planner-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.planner-fields .form-field{margin:0}.planner-fields input,.planner-fields select{width:100%}.planner-actions{margin-top:17px;gap:8px;flex-wrap:wrap}.planner-actions button{font-size:11px}.planner-controls #planner-draft-status{margin:12px 0 0}.planner-error{border-color:#d3bda0;background:#fffaf0}.planner-error ul{padding-left:20px;font-size:13px;line-height:1.7}.plan-summary-grid,.operations-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.plan-summary .soft-notice{margin:12px 0}.plan-summary .micro{margin:12px 0 0}.plan-scenarios{margin:22px 0}.plan-scenarios .panel-top h3{margin:0}.plan-scenarios>.small{font-size:12px;margin:10px 0 14px}.scenario-grid,.stress-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.scenario-card,.stress-card{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:16px;min-width:0}.scenario-card h4,.stress-card h4{margin:0 0 5px;font-size:12px}.scenario-card>.micro{color:var(--muted)}.scenario-money{margin:14px 0 10px}.scenario-money>span{display:block;font-size:10px;color:var(--muted);margin-bottom:5px}.scenario-money>strong{display:block;font-size:21px;overflow-wrap:anywhere}.scenario-card .line-item{display:block;font-size:10px;padding:7px 0}.scenario-card .line-item strong{display:block;margin-top:4px;font-size:13px}.scenario-card p{font-size:10px;line-height:1.55;margin:10px 0 0}.planner-details{margin-top:0}.break-even-panel .line-item,.personal-plan .line-item{font-size:11px;align-items:flex-start;gap:12px}.break-even-panel .line-item strong,.personal-plan .line-item strong{text-align:right}.break-even-panel p,.personal-plan p{margin:13px 0 0}.operations-review{margin-top:20px}.operations-review p{margin:12px 0 0}.operations-grid .line-item{font-size:11px;gap:12px}.table-scroll{overflow-x:auto;max-width:100%;border:1px solid var(--line);border-radius:10px;margin:12px 0}.table-scroll:focus-visible{outline:3px solid #c58c28;outline-offset:3px}.research-table{width:100%;min-width:480px;border-collapse:collapse;font-size:11px;text-align:left}.research-table th,.research-table td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top}.research-table thead th{background:#edf1e5;font-size:10px;font-weight:650;color:var(--muted);white-space:nowrap}.research-table tbody th{font-weight:650}.research-table th small{display:block;color:var(--muted);font-size:9px;font-weight:400;margin-top:4px}.research-table td{font-variant-numeric:tabular-nums;white-space:nowrap}.research-table tr:last-child>*{border-bottom:0}.selected-plan-row{background:#edf3e1}.job-comparison .research-table{min-width:600px}.portfolio-lab{margin-bottom:16px}.portfolio-lab .panel-top h3{margin:4px 0 0}.portfolio-lab .panel-top>.money{font-size:18px}.portfolio-lab>.micro{margin:13px 0}.portfolio-lab .allocation-legend{line-height:1.5}.portfolio-empty{margin:0 0 14px}.stress-card{padding:12px;background:#f5f7ec}.stress-card>.micro{display:block;color:var(--muted);font-size:8px;letter-spacing:.6px;margin-top:12px}.stress-card>.money{display:block;font-size:18px;overflow-wrap:anywhere;margin:5px 0}.stress-card p{font-size:10px;line-height:1.6;color:var(--muted);margin:0}.lab-details{border-top:1px solid var(--line);margin-top:13px;padding-top:4px}.lab-details summary{cursor:pointer;font-size:11px;font-weight:650;min-height:38px;padding:10px 0;line-height:1.5}.lab-details summary .micro{font-weight:400;color:var(--muted);margin-left:7px}.lab-details p{font-size:11px;line-height:1.65;color:var(--muted);margin:5px 0 12px}
@media(max-width:980px){.game-tabs{grid-template-columns:repeat(6,minmax(0,1fr))}.plan-summary-grid,.operations-grid{grid-template-columns:1fr}.scenario-grid{gap:8px}.scenario-card{padding:12px}.scenario-money>strong{font-size:18px}.planner-invitation{align-items:flex-start}.planner-invitation button{font-size:10px}.stress-grid{gap:7px}.stress-card{padding:10px}.stress-card>.money{font-size:15px}}
@media(max-width:680px){.game-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.game-tabs>button{min-height:54px;flex-direction:row;font-size:11px;gap:7px}.game-tabs>button>span{font-size:16px}.planner-invitation{flex-direction:column;gap:10px}.planner-fields{grid-template-columns:1fr 1fr;gap:12px}.planner-fields>.form-field:last-child{grid-column:1/-1}.planner-controls .panel-top{gap:12px}.planner-controls .panel-top button{font-size:10px}.planner-actions button{flex:1}.planner-actions .text-button{flex-basis:100%}.plan-summary-grid{grid-template-columns:1fr}.scenario-card{padding:12px}.scenario-card .line-item strong{font-size:12px}.scenario-money>strong{font-size:17px}.plan-scenarios>.panel-top{align-items:flex-start;gap:10px}.plan-scenarios>.panel-top>.micro{max-width:100px;text-align:right}.operations-grid{grid-template-columns:1fr}.portfolio-lab .panel-top>.money{font-size:16px}.stress-card h4{font-size:10px}.stress-card>.money{font-size:14px}.stress-card p{font-size:9px}}
@media(max-width:420px){.scenario-grid{grid-template-columns:1fr}.scenario-card{display:grid;grid-template-columns:1fr 1fr;gap:2px 16px}.scenario-card h4,.scenario-card>.micro,.scenario-card>p{grid-column:1/-1}.scenario-money{grid-column:1/-1;display:flex;justify-content:space-between;align-items:baseline;margin:10px 0 5px;gap:12px}.scenario-money>span{margin:0}.scenario-money>strong{font-size:21px}.stress-grid{grid-template-columns:1fr}.stress-card{display:grid;grid-template-columns:1fr 1fr;gap:3px 10px}.stress-card h4{grid-column:1/-1;font-size:12px}.stress-card>.micro{margin:4px 0 0}.stress-card>.money{grid-column:1;margin:0;font-size:20px}.stress-card p{grid-column:2;grid-row:2/4;align-self:center;font-size:10px}}

.indexed-history{margin:14px 0 8px;background:#f7f8f0;border:1px solid var(--line);border-radius:10px;padding:10px}.indexed-history>svg{width:100%;height:auto}.indexed-history figcaption{font-size:10px;line-height:1.6;color:var(--muted)}.history-legend{display:flex;flex-wrap:wrap;gap:5px 15px;margin-top:7px}.history-legend>span{display:inline-flex;align-items:center;gap:5px;font-weight:650}.history-legend svg{width:24px;height:10px}.research-details .research-table{min-width:570px}

/* Visual edition: a warm neighborhood, a clear financial desk. */
:root{
 --paper:#f6f3e9;
 --card:#fffef8;
 --line:#d9dfce;
 --muted:#586e60;
 --gold:#b17c2c;
 --shadow:0 2px 3px #263d2103,0 10px 24px #263d2105;
 --radius:18px;
}
body{background:linear-gradient(180deg,#faf8f0 0,#f6f3e9 390px);font-size:14px;line-height:1.5}
button,input,select{transition:background-color .16s,border-color .16s,box-shadow .16s}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,.table-scroll:focus-visible{outline:3px solid #ac731e;outline-offset:4px}
button:disabled{opacity:.5}
input,select{border-color:#b8c5af;background:#fffef8;box-shadow:inset 0 1px 2px #173e3404}
input:hover:not(:disabled),select:hover:not(:disabled){border-color:#738d69}
input:focus,select:focus{border-color:#6c845e}
h1{font-size:37px;letter-spacing:-1.3px}
h2{font-size:31px;letter-spacing:-.7px;line-height:1.18}
h3{line-height:1.3}
.ui-icon{display:inline-block;vertical-align:middle;flex-shrink:0;overflow:visible}
.tycoon-shell{max-width:1540px;padding:25px 30px 22px}
.game-header{gap:28px;margin-bottom:25px;align-items:center}
.game-identity{min-width:0}
.back-link{gap:7px;font-size:12px;margin-bottom:11px;min-height:28px}
.back-link:hover{text-decoration:underline;text-underline-offset:4px}
.title-line{gap:13px}
.brand-glyph{width:48px;height:48px;border-radius:15px;background:#173e34;box-shadow:0 3px 0 #0c2f28;color:#e4efbb;flex-shrink:0}
.tagline{font-size:13px;margin:9px 0 0 61px;letter-spacing:.05px}
.header-meta{display:grid;grid-template-columns:minmax(215px,1fr) auto;gap:22px;align-items:center;flex-shrink:0;font-size:11px}
.save-control,.session-control{display:flex;flex-direction:column;gap:7px;align-items:flex-start}
.save-control{padding-right:22px;border-right:1px solid var(--line)}
.practice-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;font-size:10px;line-height:1.4;letter-spacing:.15px;background:#eaf0dd;color:#3f5d3e;border-color:#c8d5b9;white-space:normal}
.mode-control{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:4px;font-size:10px;font-weight:650}
.mode-control select{width:100%;max-width:none;min-height:44px;font-size:12px;padding:8px 32px 8px 10px}
#mode-hint,#save-status{font-size:10px;line-height:1.5;color:#63715e}
.session-control{align-items:flex-end;gap:9px}
.clock-controls{display:flex;flex-direction:column;align-items:stretch;gap:10px}
.play-clock{grid-template-columns:auto auto;column-gap:12px;font-size:10px;text-transform:uppercase;letter-spacing:.7px}
.play-clock strong{font-size:19px;font-weight:600;letter-spacing:-.4px;line-height:1.15;color:var(--ink)}
.play-clock #clock-status{font-size:10px;letter-spacing:0;text-transform:none;margin-top:3px}
.clock-controls .small-button{font-size:11px;min-height:44px;padding:8px 11px;background:#fffdf5}
.tiny-label,.hud-label,.eyebrow{letter-spacing:1.45px;font-size:10px;line-height:1.4}
.financial-hud{grid-template-columns:1.18fr 1fr 1fr 1fr;min-height:119px;border-radius:17px;border-color:#d3dcc6;margin-bottom:25px;box-shadow:0 3px 7px #213c1e03,0 12px 28px #213c1e05}
.hud-item{padding:18px 22px 17px;position:relative;background:#fffef8}
.hud-item:first-child{background:#173e34;color:#f7f6e6;border-right-color:#173e34}
.hud-top{display:flex;align-items:center;gap:8px;min-height:20px}
.hud-top>.ui-icon{width:16px;height:16px;color:#64805b}
.hud-value{font-size:29px;font-weight:600;letter-spacing:-.85px;line-height:1.2;margin:9px 0 5px}
.hud-label{font-size:9px;letter-spacing:1.2px}
.hud-note,.hud-trend{font-size:11px;line-height:1.45}
.hud-item:first-child .hud-label,.hud-item:first-child .hud-note{color:#c7d7ba}
.hud-item:first-child .hud-top>.ui-icon{color:#d9ebb3}
.hud-item:first-child .positive{color:#d4edaa}
.hud-item:first-child .negative{color:#ffc2ab}
.hud-trend{display:inline-flex;align-items:center;gap:4px}
.hud-trend>.ui-icon{width:12px;height:12px}
.game-layout{grid-template-columns:178px minmax(0,1fr) 270px;gap:25px}
.game-tabs{gap:7px;padding-top:3px}
.game-tabs>button{gap:11px;min-height:48px;padding:11px 13px;font-size:12px;font-weight:600;border-radius:12px;color:#536a59}
.game-tabs>button>.ui-icon{width:20px;height:20px;opacity:.85}
.game-tabs>button>span{width:auto;font:inherit;line-height:1.35;text-align:left;min-width:0}
.game-tabs>button[aria-current=page]{background:#173e34;box-shadow:0 2px 0 #0d2e27,0 8px 16px #173e3410}
.game-tabs>button[aria-current=page]>.ui-icon{color:#d9e9ac;opacity:1}
.game-tabs>button:hover:not([aria-current=page]){background:#e8eddc;color:#173e34}
.sidebar-foot{padding:21px 13px 12px;margin-top:28px}
.sidebar-foot>strong{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:19px;margin:8px 0 14px}
.sidebar-foot p{font-size:11px;line-height:1.75;margin:14px 0 8px}
.progress-track{height:6px;background:#d9e2c9}
.progress-track span{background:#668d4e}
.section-top{margin:0 0 19px;gap:15px;align-items:flex-end}
.section-top .eyebrow{margin-bottom:8px;color:#6c7c50}
.section-top p{font-size:13px;line-height:1.65;margin-top:8px;max-width:55ch}
.panel{border-radius:var(--radius);padding:21px;background:var(--card);box-shadow:var(--shadow);border-color:#d9dfce}
.panel h3{font-size:15px;letter-spacing:-.15px}
.panel-top{gap:14px}
.panel-top>.micro{flex-shrink:0;font-size:10px}
.panel-heading{display:flex;align-items:center;gap:10px;min-width:0}
.panel-heading .ui-icon{color:#6b8654}
.two-columns{gap:16px;margin-top:18px}
.small{font-size:13px;line-height:1.7}
.micro{font-size:11px;line-height:1.65}
.big-value{font-size:31px;letter-spacing:-.7px;line-height:1.2;margin:15px 0 5px}
.mini-label{font-size:11px;line-height:1.5}
.primary-button,.small-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:12px;min-height:44px;border-radius:10px;box-shadow:0 2px 0 #0c2f2626}
.primary-button{padding:13px 17px}
.small-button{padding:10px 13px}
.primary-button:hover:not(:disabled),.small-button:hover:not(:disabled){background:#28523e;box-shadow:0 3px 0 #0c2f2630}
.ghost{box-shadow:none;background:#fffdf6;border-color:#bdcbb0}
.ghost:hover:not(:disabled){background:#e9efdd;box-shadow:none;border-color:#91a882}
.text-button{font-size:12px;color:#45643e;line-height:1.5}
.text-button:hover{color:#173e34;text-decoration-thickness:2px}
.primary-button>.ui-icon,.small-button>.ui-icon{width:16px;height:16px}
.button-row{gap:9px}
.notice{border-radius:14px;padding:16px 19px;font-size:13px;background:#fff3d7}
.notice p{line-height:1.7}
.pause-notice{background:#e8eedc;border-color:#becfa9}
.pause-notice strong{color:#173e34}
.soft-notice{padding:13px 15px;border-radius:12px;font-size:12px;background:#f0f4e6;border-color:#d6e0c8}
.action-feedback{font-size:12px;line-height:1.7;margin-top:14px;min-height:25px}

/* Illustration gets its own uninterrupted stage and readable state. */
.scene-card{background:#e9eddb;border:1px solid #cbd6bb;border-radius:20px;box-shadow:0 3px 0 #d9e1ca,0 12px 26px #4b62430a}
.scene-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 23px 17px;background:#f7f8ed;border-bottom:1px solid #d9e1cb}
.scene-heading>div{min-width:0}
.scene-heading .eyebrow{color:#5b7046;font-size:9px;letter-spacing:1.6px;margin-bottom:6px}
.scene-heading h3,.scene-heading strong{font-family:Georgia,"Times New Roman",serif;font-size:26px;line-height:1.2;font-weight:500;letter-spacing:-.5px;margin:0}
.scene-badge{position:static;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;max-width:180px;text-align:center;border:1px solid #c2d2ac;background:#e9f1db;color:#46623d;box-shadow:inset 0 1px #fff9;padding:7px 10px;border-radius:20px;font-size:10px;line-height:1.4;font-weight:650}
.scene-badge>.ui-icon{width:13px;height:13px;margin-right:5px}
.scene-idle .scene-badge{background:#f6e9ce;border-color:#d9c497;color:#785922}
.scene-stage{position:relative;overflow:hidden;background:#e9eddb;isolation:isolate}
.scene-stage>.shop-illustration,.scene-stage>svg,.scene-card>svg{display:block;width:100%;height:auto;aspect-ratio:760/420}
.scene-status-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:#f5f7eb;border-top:1px solid #d4ddc5;border-bottom:1px solid #d9e1cd}
.scene-stat{display:flex;align-items:center;gap:9px;min-width:0;padding:14px 16px;border-right:1px solid #d9e1cd}
.scene-stat:last-child{border-right:0}
.scene-stat>.ui-icon{color:#6b8454;width:21px;height:21px;flex-shrink:0}
.scene-stat>div{min-width:0}
.scene-stat strong{display:block;font-size:13px;font-weight:650;line-height:1.4;font-variant-numeric:tabular-nums}
.scene-stat small{display:block;color:#617251;font-size:10px;line-height:1.4;margin-top:2px}
.scene-footer{background:#fffdf4;border-top:0;gap:16px;flex-direction:row;align-items:center;padding:17px 22px 13px}
.scene-footer p{font-size:12px;line-height:1.6}
.scene-footer strong{font-size:13px;line-height:1.4;margin-bottom:4px}
.scene-footer .primary-button{width:auto;flex-shrink:0;font-size:12px;padding:12px 16px}
.scene-note{padding:0 22px 16px;background:#fffdf4;color:#67745d;font-size:10px;line-height:1.6}
.scene-caption{position:static;max-width:none}
.shop-growth{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:0;margin:17px 22px 2px;gap:0;border:1px solid #d9dfce;border-radius:13px;background:#fafbf2;overflow:hidden}
.growth-step{position:relative;display:flex;flex-direction:column;gap:7px;align-items:center;justify-content:flex-start;text-align:center;min-width:0;padding:13px 7px 12px;color:#617155;line-height:1.4;border-right:1px solid #e0e5d6}
.growth-step:last-child{border-right:0}
.growth-icon,.growth-node{width:29px;height:29px;border:1px solid #d2dac7;border-radius:50%;display:grid;place-items:center;background:#f4f7ed;color:#7c8b6b;font-size:11px;flex-shrink:0}
.growth-icon>.ui-icon,.growth-node>.ui-icon{width:15px;height:15px}
.growth-label{font-size:11px;line-height:1.4;font-weight:600;overflow-wrap:anywhere}
.growth-step small{display:block;font-size:10px;margin-top:3px;font-weight:400}
.growth-step.is-reached{color:#3f6443;background:#f1f6e7}
.growth-step.is-reached .growth-icon,.growth-step.is-reached .growth-node{background:#e3edce;border-color:#bdcea4;color:#4e733d}
.growth-step.is-current{background:#e6eecf;color:#284d36;box-shadow:inset 0 -3px #6c8a45}
.growth-step.is-current .growth-icon,.growth-step.is-current .growth-node{background:#416e43;color:#f5f7e8;border-color:#416e43}
.growth-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:11px;color:#637651;margin:19px 0 9px}
.growth-heading+.shop-growth{margin-top:0}
.goal-panel{background:#fbfcf4;border-color:#cfdcc0}
.goal-panel .panel-top h3{font-size:15px}
.goal-title{font-family:Georgia,"Times New Roman",serif;font-size:24px;line-height:1.25;font-weight:500;margin:15px 0 8px;letter-spacing:-.35px}
.goal-title>.ui-icon{width:21px;height:21px;margin:0 7px 3px 0;color:#7a9154}
.goal-panel>.positive>.ui-icon{margin-right:7px;color:#6f8a48}
.milestone-meter{height:7px;overflow:hidden;border-radius:10px;background:#e0e8d1;margin:16px 0 11px}
.milestone-meter>span{display:block;height:100%;border-radius:inherit;background:#6a8c46;transition:width .3s}
.goal-details{margin-top:18px;padding-top:10px}
.goal-details summary,.preview-details summary,.training-details summary,.time-budget summary{min-height:44px;font-size:12px}
.step-list li{padding:10px 0;align-items:flex-start;font-size:12px;gap:10px}
.step-dot{width:25px;height:25px;margin-top:4px;background:#f0f4e4;border-color:#cedaba}
.step-dot>.ui-icon{width:14px;height:14px}
.step-list .text-button{font-size:12px;min-height:34px}
.goal-details .step-list p{font-size:11px}

/* The week planner is the primary decision area, separate from the story. */
.week-panel{background:#edf1df;border:1px solid #cad6b9;border-top:4px solid #597347;border-radius:16px;padding:20px;box-shadow:0 5px 0 #e2e8d3;top:20px}
.week-heading{align-items:flex-start;gap:10px;margin-bottom:20px}
.week-heading h3{font-size:24px;line-height:1.15;letter-spacing:-.5px;max-width:7.2em}
.week-number{font-size:10px;background:#f6f8ec;border:1px solid #d7e0c5;line-height:1.4;padding:6px 8px;white-space:nowrap}
.form-field{font-size:11px;line-height:1.5;gap:8px}
.form-field select{font-size:12px;background:#fffef6;border-color:#bdcbae}
.time-budget{background:#f8f9ef;border-color:#d1ddc0;border-radius:11px;padding:0 11px;margin-top:12px}
.time-budget .line-item{font-size:11px}
.line-items{margin:14px 0 19px}
.line-item{font-size:12px;line-height:1.5;gap:15px;padding:8px 0}
.line-item.total{border-top-color:#bfceab;margin-top:7px;padding-top:14px}
.line-item.total strong{font-size:16px;letter-spacing:-.2px}
.week-panel .primary-button{display:flex;gap:8px;justify-content:space-between;min-height:49px;padding:14px 15px;font-size:12px;box-shadow:0 3px 0 #0d2e27}
.week-tip{font-size:11px;line-height:1.75;color:#617052;margin:15px 0 3px}
.week-panel>.text-button{font-size:11px}
.weather-card{background:#fafbf2;border:1px solid #d9e2c9;padding:13px 11px;font-size:11px;line-height:1.65;gap:10px}
.weather-symbol{display:grid;place-items:center;color:#9a7129;min-width:28px}
.weather-symbol>.ui-icon{width:26px;height:26px}
.weather-card strong{font-size:11px;line-height:1.5;margin-bottom:4px}
.soft-separator{margin:19px 0;background:#d1ddbe}

/* Business controls and planning cards. */
.stat-row{gap:13px;margin:20px 0}
.stat-box{background:#fffef8;border-color:#d8dfca;padding:15px;border-radius:13px;box-shadow:0 2px 0 #e7ebdc}
.stat-box strong{font-size:23px;letter-spacing:-.45px;margin-top:8px}
.stat-box .tiny-label{font-size:9px;letter-spacing:1.1px}
.control-grid{gap:16px}
.control-grid p{font-size:12px;line-height:1.75}
.inline-input{gap:9px;margin-top:14px}
.inline-input label{font-size:11px}
.inline-input .small-button{font-size:11px}
.staff-row{padding:15px 0;gap:12px}
.staff-row strong,.employee-row strong{font-size:13px}
.staff-row small,.employee-row small{font-size:11px;line-height:1.65}
.stepper{width:37px;border-radius:9px;background:#edf2e1;border-color:#c5d3b4}
.stepper:hover:not(:disabled){background:#dfeacc}
.staff-count{font-size:14px;min-width:16px;font-variant-numeric:tabular-nums}
.employee-row{padding:13px 0}
.training-badge{padding:6px 9px;border:1px solid #dfcda6;border-radius:8px;background:#f8edcf;line-height:1.5;font-size:10px}
.training-badge.complete{border-color:#cedcbb;background:#ebf2dd}
.recovery-panel{background:#fbfcf2;border-color:#d2dec1}
.recovery-risk{background:#fffaf0;border-color:#dbc79c}
.recovery-list li{padding:13px 0}
.recovery-list li strong{font-size:12px}
.recovery-list li p{font-size:11px;line-height:1.7}
.planner-invitation{padding:14px 16px;background:#edf2e2;border:1px solid #d5dfc5;border-radius:13px;gap:17px;margin-bottom:17px}
.planner-invitation p{font-size:12px;line-height:1.65}
.planner-controls{border-top:3px solid #6f8a53;padding-top:19px;background:#fdfdf5}
.planner-controls .panel-top{margin-bottom:12px}
.planner-controls .panel-top h3{font-family:Georgia,"Times New Roman",serif;font-size:24px;font-weight:500}
.planner-fields{gap:15px}
.planner-fields .form-field{font-size:11px}
.planner-actions{gap:9px;margin-top:20px}
.planner-actions button{font-size:11px}
.planner-controls #planner-draft-status{font-size:11px;line-height:1.6;margin-top:14px}
.plan-summary-grid,.operations-grid{gap:0 25px}
.plan-summary .line-item{padding:10px 0;font-size:11px;border-bottom:1px solid #e5e9dc}
.plan-summary .line-item:last-child{border-bottom:0}
.plan-scenarios{margin:26px 0 22px}
.plan-scenarios>.small{font-size:12px;line-height:1.75;margin:10px 0 16px}
.scenario-grid{gap:11px}
.scenario-card{padding:17px 15px;border-radius:15px;background:#fffdf5;border-color:#d8dfcb;box-shadow:0 2px 0 #e8ecdf}
.scenario-card:nth-child(2){background:#f1f5e7;border-color:#c4d3b1}
.scenario-card h4{font-size:12px;font-weight:650;line-height:1.4;margin:0 0 5px}
.scenario-card>.micro{font-size:10px}
.scenario-money{padding:12px 0 13px;margin:5px 0 5px;border-bottom:1px solid #dde4d0}
.scenario-money>span{font-size:10px;margin-bottom:6px}
.scenario-money>strong{font-size:22px;line-height:1.2;letter-spacing:-.6px}
.scenario-card .line-item{font-size:10px;padding:8px 0;line-height:1.5;border-bottom:1px solid #e4e8db}
.scenario-card .line-item:last-of-type{border-bottom:0}
.scenario-card .line-item strong{font-size:12px;text-align:left;margin-top:3px}
.scenario-card p{font-size:10px;line-height:1.7;margin-top:12px}
.break-even-panel .line-item,.personal-plan .line-item,.operations-grid .line-item{font-size:12px;padding:9px 0;line-height:1.55}
.table-scroll{border-radius:12px;border-color:#d3ddc5;margin:14px 0}
.research-table{font-size:12px}
.research-table th,.research-table td{padding:12px 13px}
.research-table thead th{background:#ecf1e1;font-size:11px;line-height:1.6;color:#4e654a}
.research-table th small{font-size:10px;line-height:1.55}
.research-table tbody tr:nth-child(even){background:#f7f9ef}
.research-table tbody tr.selected-plan-row{background:#e8f0d7}

/* Investments have visual breathing room without losing comparison details. */
.market-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,235px),1fr));gap:16px}
.market-card{padding:20px;border-radius:17px}
.ticker-line{gap:11px;align-items:center}
.ticker-icon{display:grid;width:39px;height:39px;border-radius:12px;background:#e8efdb;border-color:#cedcbb;font-family:Georgia,"Times New Roman",serif;font-size:21px;flex-shrink:0;box-shadow:inset 0 1px #fffd}
.market-card:nth-child(2n) .ticker-icon{background:#f5ead3;border-color:#e2d1ad;color:#795d2d}
.market-card:nth-child(3n) .ticker-icon{background:#e4edeb;border-color:#c8dbd5;color:#34685e}
.ticker-icon>.ui-icon{width:21px;height:21px}
.ticker-info strong{font-size:13px;line-height:1.4;margin-bottom:3px}
.ticker-info span{font-size:10px;line-height:1.4;letter-spacing:.15px}
.stock-price{font-size:28px;font-weight:600;margin:19px 0 4px;letter-spacing:-.7px}
.return-tag{font-size:11px;font-weight:600;line-height:1.5}
.market-card .sparkline{height:63px;margin:12px 0 15px}
.holding-line{font-size:11px;line-height:1.65;border-top:1px solid #e0e5d7;padding-top:12px;margin:11px 0 12px;gap:10px;flex-wrap:wrap}
.trade-actions{grid-template-columns:65px 1fr 1fr;gap:8px}
.trade-actions input{font-size:13px;padding:9px}
.trade-actions button{font-size:11px;padding:9px 7px}
.portfolio-lab{padding:22px;background:#f9fbf1;border-color:#cad8b8;margin-bottom:20px}
.portfolio-lab .panel-top h3{font-family:Georgia,"Times New Roman",serif;font-size:24px;font-weight:500;margin-top:6px;letter-spacing:-.4px}
.portfolio-lab .panel-top>.money{font-size:21px;letter-spacing:-.5px}
.portfolio-lab>.micro{font-size:11px;line-height:1.7;margin:15px 0}
.allocation{height:12px;margin:19px 0 12px;background:#e0e7d5;box-shadow:inset 0 1px 2px #193c3210}
.allocation>span+span{border-left:2px solid #fffef8}
.allocation-legend{gap:7px 14px;font-size:11px;line-height:1.6}
.allocation-legend i{width:8px;height:8px;margin-right:5px}
.allocation-legend>span{display:inline-flex;align-items:center;gap:5px;flex-wrap:wrap}
.allocation-legend>span>i{flex-shrink:0;margin-right:0}
.allocation-legend strong{font-weight:650;color:var(--ink);font-variant-numeric:tabular-nums}
.stress-grid{gap:10px}
.stress-card{padding:14px;border-radius:12px;background:#fffef7;border-color:#d6dfc9}
.stress-card h4{font-size:11px;line-height:1.4}
.stress-card>.micro{font-size:9px;letter-spacing:.6px;margin-top:15px}
.stress-card>.money{font-size:21px;line-height:1.3;letter-spacing:-.5px;margin:6px 0 8px}
.stress-card p{font-size:10px;line-height:1.7}
.lab-details{border-top-color:#d6dfc8;padding-top:5px;margin-top:16px}
.lab-details summary{font-size:12px;min-height:44px;padding:12px 0;line-height:1.6}
.lab-details p{font-size:12px;line-height:1.7}
.indexed-history{margin:16px 0 12px;border-radius:12px;background:#fffef7;padding:13px;border-color:#d6dfc8}
.indexed-history figcaption{font-size:11px;line-height:1.7}
.history-legend{gap:7px 15px;margin-top:10px}
.history-legend>span{font-size:11px;gap:6px}
.chart-labels{font-size:11px;margin-top:9px}
.sparkline{height:73px;margin-top:17px}
.option-form{gap:15px}
.option-form .form-field{font-size:11px}
.option-form input,.option-form select{font-size:13px}
.quote-card{margin-top:21px;padding-top:20px}
.quote-value{font-size:31px;letter-spacing:-.6px;margin:8px 0}
.order-review{background:#f1f5e6;border-color:#d3dfc2;padding:10px 16px;border-radius:13px}
.position-row{padding:17px 0;gap:15px}
.position-row strong{font-size:13px;line-height:1.5}
.position-row small{font-size:11px;line-height:1.7}
.empty-card{padding:33px 23px;font-size:13px;line-height:1.7;background:#f8faf0;border-radius:13px;margin:12px 0 2px}
.empty-icon{display:grid;place-items:center;margin:0 auto 13px;width:48px;height:48px;background:#e7efda;border-radius:15px;border:1px solid #d4e0c3;color:#698348}
.empty-icon>.ui-icon{width:25px;height:25px}
.journal-entry{border-radius:15px;padding:18px;gap:15px;box-shadow:var(--shadow)}
.journal-week{min-width:49px;border-radius:10px;background:#eaf0df;color:#536943;padding:10px 8px;font-size:9px;letter-spacing:.7px}
.journal-week b{font-family:Georgia,"Times New Roman",serif;font-weight:500;font-size:23px;letter-spacing:-.5px;line-height:1.4}
.journal-body h3{font-size:13px;line-height:1.5}
.journal-body p{font-size:12px;line-height:1.7}
.record{padding:16px;background:#f4f7e9;border-color:#d6dfc7;border-radius:13px}
.record strong{font-size:24px;letter-spacing:-.5px;line-height:1.3;margin-top:9px;overflow-wrap:anywhere}
.record small{font-size:10px;letter-spacing:.3px;line-height:1.6}
.trade-history-row strong{font-size:12px;line-height:1.5}
.trade-history-row small{font-size:11px;line-height:1.7}
.result-hero{padding:27px;border-radius:20px;box-shadow:0 4px 0 #0f3128}
.result-hero strong{font-size:39px;letter-spacing:-1px}
.game-footer{margin-top:33px;padding-top:19px;font-size:11px;line-height:1.7;gap:20px}
.game-footer .text-button{font-size:11px;min-height:40px}
.game-footer>span:last-child{gap:17px;flex-wrap:wrap}
dialog{border-color:#bacaa6;border-radius:21px;box-shadow:0 25px 100px #0e271c40}
.dialog-body{padding:32px}
.dialog-body h2{font-size:31px;line-height:1.2}
.dialog-body p,.dialog-body li{font-size:13px;line-height:1.8}
.dialog-buttons{gap:10px;margin-top:25px}
.dialog-buttons button{font-size:12px;min-height:44px}
.dialog-close{width:44px;height:44px;border-radius:50%}
.dialog-close:hover{background:#edf2e2}

/* Responsive content uses readable cards, not a scaled-down desktop. */
@media(min-width:1500px){.tycoon-shell{padding-top:30px}}
@media(max-width:1180px){
 .tycoon-shell{padding:22px}
 .game-layout{grid-template-columns:158px minmax(0,1fr) 247px;gap:19px}
 .game-tabs>button{padding:11px 9px;font-size:11px;gap:9px}
 .game-header{gap:22px}
 .header-meta{gap:18px;grid-template-columns:minmax(200px,1fr) auto}
 .save-control{padding-right:18px}
 h1{font-size:34px}
 .hud-item{padding:17px 18px}
 .hud-value{font-size:27px}
 .hud-label{font-size:8.5px;letter-spacing:1px}
 .week-panel{padding:18px}
 .week-heading h3{font-size:22px}
 .panel{padding:18px}
 .scene-heading{padding:18px 20px 16px}
 .scene-heading h3,.scene-heading strong{font-size:24px}
 .scene-stat{padding:13px 12px;gap:8px}
 .scene-stat strong{font-size:12px}
 .scene-stat small{font-size:10px}
 .scene-footer{padding:16px 19px 12px;gap:12px}
 .scene-footer .primary-button{font-size:11px;padding:12px}
 .scene-note{padding:0 19px 15px}
 .scenario-card{padding:15px 12px}
 .scenario-money>strong{font-size:20px}
 .stress-card{padding:12px 10px}
 .stress-card>.money{font-size:18px}
 .growth-label{font-size:11px}
 .portfolio-lab .panel-top h3{font-size:23px}
 .market-grid{gap:13px}
}
@media(max-width:980px){
 .tycoon-shell{padding:20px}
 .game-layout{grid-template-columns:minmax(0,1fr) 247px;gap:20px}
 .game-tabs{grid-column:1/-1;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;padding:0;margin-bottom:1px}
 .game-tabs>button{flex-direction:column;gap:7px;justify-content:center;text-align:center;font-size:11px;padding:11px 6px;min-height:70px;border:1px solid #d6deca;background:#f9faf1;border-radius:12px}
 .game-tabs>button>span{text-align:center}
 .game-tabs>button>.ui-icon{width:19px;height:19px}
 .game-tabs>button[aria-current=page]{border-color:#173e34}
 .sidebar-foot{display:none}
 .financial-hud{margin-bottom:20px}
 .game-header{margin-bottom:22px;gap:18px}
 .header-meta{gap:14px;grid-template-columns:minmax(185px,1fr) auto}
 .save-control{padding-right:14px}
 .title-line{gap:11px}
 .brand-glyph{width:43px;height:43px;border-radius:13px}
 h1{font-size:31px}
 .tagline{margin-left:54px;font-size:12px}
 .hud-item{padding:16px}
 .hud-value{font-size:25px}
 .hud-top{gap:6px}
 .hud-top>.ui-icon{width:14px;height:14px}
 .hud-note,.hud-trend{font-size:10px}
 .two-columns{grid-template-columns:1fr;gap:16px}
 .scene-heading{gap:12px;padding:18px}
 .scene-heading h3,.scene-heading strong{font-size:24px}
 .scene-badge{font-size:9px;max-width:135px;padding:7px 9px}
 .scene-stat{padding:12px 10px;gap:7px;align-items:flex-start}
 .scene-stat>.ui-icon{width:17px;height:17px;margin-top:2px}
 .scene-stat strong{font-size:12px}
 .scene-stat small{font-size:10px;line-height:1.5}
 .scene-footer{padding:15px 18px 12px;align-items:flex-start;flex-direction:column;gap:12px}
 .scene-footer .primary-button{width:100%;font-size:12px}
 .scene-note{padding:0 18px 15px}
 .week-panel{top:15px}
 .section-top h2{font-size:29px}
 .section-top p{font-size:12px}
 .plan-summary-grid,.operations-grid{grid-template-columns:1fr}
 .scenario-grid{gap:8px}
 .scenario-card{padding:13px 10px}
 .scenario-card h4{font-size:11px}
 .scenario-money>strong{font-size:18px}
 .scenario-card .line-item strong{font-size:11px}
 .scenario-card .line-item{font-size:10px}
 .scenario-card p{font-size:10px}
 .stress-grid{gap:8px}
 .stress-card{padding:11px 9px}
 .stress-card>.money{font-size:17px}
 .stress-card h4{font-size:10px}
 .planner-fields{gap:11px}
 .planner-invitation{flex-direction:column;align-items:flex-start;gap:11px}
 .planner-invitation button{font-size:11px}
 .portfolio-lab .panel-top{align-items:flex-start}
 .portfolio-lab .panel-top h3{font-size:23px}
 .portfolio-lab .panel-top>.money{font-size:18px}
}
@media(max-width:800px){
 .tycoon-shell{padding:18px}
 .game-header{align-items:flex-start;flex-direction:column;gap:20px}
 .header-meta{width:100%;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;text-align:left;max-width:none;padding:0}
 .save-control{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px 14px;padding-right:20px;align-items:center}
 .save-control>.practice-pill{grid-column:1;align-self:center;justify-self:start;max-width:140px}
 .mode-control{grid-column:2;grid-row:1/3;display:flex;flex-direction:column;align-items:stretch;gap:5px;justify-content:flex-start;min-width:0}
 .mode-control>span{font-size:10px}
 .mode-control select{width:100%;max-width:none;font-size:12px}
 .save-control #mode-hint{grid-column:1;line-height:1.5;max-width:145px}
 .session-control{align-items:flex-end}
 .clock-controls{display:flex;flex-direction:row;align-items:center;gap:15px;justify-content:flex-end}
 .play-clock{grid-template-columns:auto;font-size:9px;gap:3px;letter-spacing:.8px}
 .play-clock strong{font-size:18px}
 .play-clock #clock-status{text-align:left;font-size:9px;margin:0;max-width:105px}
 .clock-controls .small-button{font-size:11px;min-height:44px;padding:10px}
 #save-status{font-size:9px}
 .financial-hud{margin-bottom:18px}
 .game-layout{display:flex;flex-direction:column;gap:18px}
 .game-tabs,.main-column,.week-panel{width:100%}
 .game-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin:0 0 3px}
 .game-tabs>button{font-size:10px;min-height:70px;flex-direction:column;gap:6px}
 .week-panel{position:static;order:3;padding:21px}
 .week-heading{align-items:center;margin-bottom:18px}
 .week-heading h3{font-size:25px;max-width:none}
 .week-panel .form-field{margin-bottom:12px}
 .week-panel .primary-button{font-size:13px;min-height:50px}
 .week-panel .weather-card,.week-panel .soft-separator{display:none}
 .week-panel .line-items{margin-top:10px}
 .week-panel .week-tip{max-width:70ch}
 .two-columns{grid-template-columns:1fr 1fr;gap:15px}
 .scene-heading{padding:20px 22px 18px}
 .scene-heading h3,.scene-heading strong{font-size:27px}
 .scene-badge{font-size:10px;max-width:180px}
 .scene-stat{padding:15px 18px;gap:10px;align-items:center}
 .scene-stat>.ui-icon{width:21px;height:21px;margin:0}
 .scene-stat strong{font-size:13px}
 .scene-stat small{font-size:10px}
 .scene-footer{padding:18px 21px 13px;align-items:center;flex-direction:row;gap:17px}
 .scene-footer .primary-button{width:auto;font-size:12px;padding:12px 15px}
 .scene-note{padding:0 21px 16px;font-size:10px}
 .scene-stage>.shop-illustration,.scene-stage>svg,.scene-card>svg{aspect-ratio:760/420}
 .growth-label{font-size:11px}
 .market-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,235px),1fr));gap:15px}
 .market-card{padding:19px}
 .ticker-icon{display:grid}
 .ticker-info strong{font-size:13px}
 .stock-price{font-size:28px}
 .trade-actions{grid-template-columns:65px 1fr 1fr}
 .trade-actions input{grid-column:auto}
 .holding-line{display:flex;font-size:11px}
 .planner-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
 .planner-fields>.form-field:last-child{grid-column:auto}
 .planner-invitation{flex-direction:row;align-items:center}
 .plan-summary-grid,.operations-grid{grid-template-columns:1fr 1fr}
 .scenario-grid{gap:12px}
 .scenario-card{padding:16px 14px}
 .scenario-card h4{font-size:12px}
 .scenario-money>strong{font-size:22px}
 .scenario-card .line-item strong{font-size:12px}
 .stress-grid{gap:11px}
 .stress-card{padding:14px 12px}
 .stress-card h4{font-size:11px}
 .stress-card>.money{font-size:21px}
 .stress-card p{font-size:10px}
 .record strong{font-size:23px}
 .record small{font-size:10px}
 .game-footer{display:block}
 .game-footer>span:last-child{justify-content:flex-start;margin-top:9px;gap:19px}
}
@media(max-width:600px){
 .tycoon-shell{padding:16px 14px 20px}
 .game-header{gap:19px;margin-bottom:19px}
 .back-link{font-size:11px;margin-bottom:9px}
 .title-line{gap:11px}
 .brand-glyph{display:grid;width:42px;height:42px;border-radius:13px}
 .brand-glyph svg{width:29px;height:29px}
 h1{font-size:31px;letter-spacing:-1.15px}
 .tagline{font-size:12px;margin:8px 0 0 53px}
 .header-meta{display:grid;grid-template-columns:1fr;gap:13px}
 .save-control{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:5px 14px;border:0;padding:0;min-width:0;align-items:center}
 .save-control>.practice-pill{font-size:9px;max-width:none;padding:5px 8px;line-height:1.5}
 #mode-hint{font-size:10px;max-width:none}
 .mode-control{gap:5px}
 .mode-control select{font-size:16px;min-height:44px;padding:9px 26px 9px 10px}
 .session-control{border-top:1px solid #dbe2d0;padding-top:11px;display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:15px}
 .clock-controls{justify-content:flex-start;gap:12px;min-width:0}
 .play-clock{grid-template-columns:auto auto;gap:1px 8px;font-size:9px;letter-spacing:.3px;align-items:baseline}
 .play-clock strong{font-size:17px;line-height:1.2}
 .play-clock #clock-status{grid-column:1/-1;max-width:none;font-size:9px}
 .clock-controls .small-button{font-size:10px;min-height:44px;padding:9px 10px}
 #save-status{font-size:9px;max-width:100px;text-align:right;line-height:1.6}
 .financial-hud{grid-template-columns:1fr 1fr;border-radius:15px;margin-bottom:17px;min-height:0}
 .hud-item{padding:15px 16px 14px;border-bottom:1px solid #d9dfce}
 .hud-item:nth-child(2){border-right:0}
 .hud-item:nth-child(3),.hud-item:nth-child(4){border-bottom:0}
 .hud-top{gap:7px}
 .hud-top>.ui-icon{width:15px;height:15px}
 .hud-label{font-size:10px;letter-spacing:.6px}
 .hud-value{font-size:27px;margin:7px 0 5px;letter-spacing:-.8px;line-height:1.2}
 .hud-note,.hud-trend{font-size:10px;line-height:1.5}
 .game-layout{gap:17px}
 .game-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
 .game-tabs>button{flex-direction:row;gap:7px;font-size:11px;min-height:52px;padding:10px 6px;border-radius:10px}
 .game-tabs>button>.ui-icon{width:17px;height:17px}
 .game-tabs>button>span{text-align:left;line-height:1.35}
 .section-top{margin:0 0 17px;align-items:flex-start;gap:12px}
 .section-top h2{font-size:28px;line-height:1.22}
 .section-top p{font-size:12px;margin-top:8px;line-height:1.7}
 .section-top .eyebrow{font-size:9px;letter-spacing:1.3px}
 .section-top>.small-button{font-size:10px;padding:10px}
 .panel{padding:18px;border-radius:15px}
 .panel h3{font-size:15px}
 .panel-top{gap:10px;flex-wrap:wrap}
 .panel-top>.micro{font-size:10px}
 .small{font-size:12px;line-height:1.75}
 .micro{font-size:11px;line-height:1.7}
 .two-columns{grid-template-columns:1fr;gap:15px;margin-top:17px}
 .two-columns .panel{padding:18px}
 .big-value{font-size:30px}
 .mini-label{font-size:11px}
 .scene-card{border-radius:17px}
 .scene-heading{padding:17px 17px 15px;align-items:flex-start;gap:10px}
 .scene-heading .eyebrow{font-size:9px;letter-spacing:1.1px;line-height:1.5;margin-bottom:6px}
 .scene-heading h3,.scene-heading strong{font-size:24px;line-height:1.2}
 .scene-badge{display:inline-flex;max-width:39%;font-size:10px;padding:6px 9px;line-height:1.5;margin-top:2px}
 .scene-stage>.shop-illustration,.scene-stage>svg,.scene-card>svg{aspect-ratio:760/420}
 .scene-stat{padding:12px 9px;gap:5px;flex-direction:column;align-items:center;text-align:center}
 .scene-stat>.ui-icon{width:19px;height:19px;margin-bottom:2px}
 .scene-stat strong{font-size:12px;line-height:1.4}
 .scene-stat small{font-size:10px;line-height:1.45;margin-top:3px}
 .scene-footer{padding:16px 17px 12px;gap:13px;align-items:flex-start;flex-direction:column}
 .scene-footer p{font-size:11px;line-height:1.7}
 .scene-footer strong{font-size:13px}
 .scene-footer .primary-button{width:100%;padding:12px 15px;font-size:12px}
 .scene-note{padding:0 17px 15px;font-size:10px;line-height:1.65}
 .shop-growth{grid-template-columns:repeat(2,minmax(0,1fr));margin:16px 17px 2px;border-radius:12px}
 .growth-step{padding:14px 11px;gap:9px;flex-direction:row;text-align:left;align-items:center;justify-content:flex-start}
 .growth-step:nth-child(2){border-right:0}
 .growth-step:nth-child(-n+2){border-bottom:1px solid #dce3d0}
 .growth-label{font-size:11px;line-height:1.45}
 .growth-step small{font-size:10px;line-height:1.5}
 .growth-icon,.growth-node{width:26px;height:26px}
 .growth-icon>.ui-icon,.growth-node>.ui-icon{width:14px;height:14px}
 .goal-title{font-size:24px}
 .goal-panel .panel-top h3{font-size:15px}
 .step-list li{gap:10px;font-size:12px}
 .step-list .text-button{font-size:12px}
 .step-dot{width:25px;height:25px;font-size:10px}
 .week-panel{padding:20px;border-radius:15px}
 .week-heading h3{font-size:25px}
 .week-panel .form-field{font-size:10px;letter-spacing:.1px}
 input,select,.form-field select,.option-form input,.option-form select,.trade-actions input{font-size:16px}
 .line-item{font-size:12px;line-height:1.6}
 .week-tip{font-size:11px;line-height:1.75}
 .time-budget .line-item{font-size:11px}
 .pause-notice{gap:13px;align-items:flex-start;flex-direction:column}
 .pause-notice p{font-size:12px;line-height:1.75}
 .stat-row{gap:9px;margin:17px 0}
 .stat-box{padding:13px 10px;border-radius:11px}
 .stat-box strong{font-size:21px;margin-top:8px;line-height:1.25}
 .stat-box .tiny-label{font-size:10px;letter-spacing:.4px;line-height:1.5}
 .control-grid{grid-template-columns:1fr;gap:15px}
 .control-grid p{font-size:12px}
 .inline-input label{font-size:11px}
 .inline-input .small-button{font-size:11px}
 .staff-row{gap:9px}
 .staff-row small{font-size:11px}
 .staff-row strong{font-size:13px}
 .staff-actions{gap:7px}
 .stepper{width:36px}
 .employee-row{gap:10px;align-items:flex-start}
 .employee-row small{max-width:none;font-size:10px}
 .employee-row button{max-width:110px;font-size:10px;white-space:normal;padding:9px}
 .training-badge{font-size:9px;padding:6px}
 .planner-invitation{flex-direction:column;align-items:flex-start;padding:14px;gap:11px}
 .planner-invitation p{font-size:12px}
 .planner-invitation button{font-size:11px}
 .planner-controls .panel-top h3{font-size:25px}
 .planner-fields{grid-template-columns:1fr 1fr;gap:13px}
 .planner-fields>.form-field:last-child{grid-column:1/-1}
 .planner-fields .form-field{font-size:11px}
 .planner-actions button{font-size:11px;flex:1;white-space:normal}
 .planner-actions .text-button{flex-basis:100%}
 .plan-summary-grid,.operations-grid{grid-template-columns:1fr}
 .plan-summary .line-item{font-size:11px;line-height:1.7;gap:16px}
 .plan-scenarios>.panel-top{align-items:flex-start;gap:8px;flex-wrap:wrap}
 .plan-scenarios>.panel-top>.micro{max-width:none;text-align:left;font-size:9px}
 .scenario-grid{grid-template-columns:1fr;gap:11px}
 .scenario-card{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;padding:17px}
 .scenario-card h4,.scenario-card>.micro,.scenario-card>p{grid-column:1/-1}
 .scenario-card h4{font-size:14px;margin-bottom:3px}
 .scenario-card>.micro{font-size:11px}
 .scenario-money{grid-column:1/-1;display:flex;justify-content:space-between;align-items:baseline;margin:8px 0 3px;padding:10px 0 12px;gap:13px}
 .scenario-money>span{font-size:11px;margin:0}
 .scenario-money>strong{font-size:24px}
 .scenario-card .line-item{font-size:11px;padding:9px 0}
 .scenario-card .line-item strong{font-size:13px;margin-top:4px}
 .scenario-card p{font-size:11px;line-height:1.7;margin-top:11px}
 .break-even-panel .line-item,.personal-plan .line-item,.operations-grid .line-item{font-size:12px;line-height:1.65}
 .market-grid{grid-template-columns:1fr;gap:15px}
 .market-card{padding:20px}
 .ticker-icon{display:grid;width:42px;height:42px}
 .ticker-info strong{font-size:14px}
 .ticker-info span{font-size:11px}
 .stock-price{font-size:31px;margin-top:18px}
 .return-tag{font-size:11px}
 .market-card .sparkline{height:67px;margin:10px 0 15px}
 .holding-line{display:flex;font-size:11px;line-height:1.7}
 .trade-actions{grid-template-columns:72px 1fr 1fr;gap:9px}
 .trade-actions input{grid-column:auto}
 .trade-actions button{font-size:12px;padding:11px 8px}
 .portfolio-lab{padding:18px}
 .portfolio-lab .panel-top{flex-wrap:wrap;gap:10px;align-items:flex-start}
 .portfolio-lab .panel-top h3{font-size:25px}
 .portfolio-lab .panel-top>.money{font-size:22px}
 .portfolio-lab .allocation-legend{font-size:11px;line-height:1.7}
 .stress-grid{grid-template-columns:1fr;gap:10px}
 .stress-card{display:grid;grid-template-columns:1fr 1fr;gap:3px 12px;padding:15px}
 .stress-card h4{grid-column:1/-1;font-size:12px;margin-bottom:5px}
 .stress-card>.micro{font-size:9px;margin-top:4px;letter-spacing:.5px}
 .stress-card>.money{grid-column:1;font-size:23px;margin:2px 0 0}
 .stress-card p{grid-column:2;grid-row:2/4;align-self:center;font-size:10px;line-height:1.7}
 .lab-details summary{font-size:12px}
 .lab-details summary .micro{font-size:10px;display:block;margin:3px 0 0}
 .lab-details p{font-size:11px}
 .indexed-history{padding:10px}
 .indexed-history figcaption{font-size:11px}
 .history-legend{gap:7px 12px}
 .history-legend>span{font-size:10px}
 .research-table{font-size:12px}
 .research-table thead th{font-size:11px}
 .research-table th small{font-size:10px}
 .option-form{gap:13px}
 .quote-value{font-size:29px}
 .order-review{padding:9px 12px}
 .order-review .line-item{font-size:12px}
 .position-row{flex-wrap:wrap;align-items:flex-start;gap:12px}
 .position-row strong{font-size:12px}
 .position-row small{font-size:11px}
 .position-row>.small-button{margin-left:auto}
 .journal-entry{padding:15px;gap:11px}
 .journal-week{min-width:43px;padding:8px 6px}
 .journal-body .panel-top{align-items:flex-start;gap:6px;flex-wrap:wrap}
 .journal-body h3{font-size:12px;margin-bottom:4px}
 .journal-body p{font-size:11px;line-height:1.7;margin-top:5px}
 .journal-body .return-tag{font-size:11px}
 .record-grid{gap:9px}
 .record{padding:12px 9px}
 .record strong{font-size:21px;letter-spacing:-.5px;margin-top:8px}
 .record small{font-size:10px;letter-spacing:.2px;line-height:1.7}
 .trade-history-row{gap:10px}
 .trade-history-row strong{font-size:11px}
 .trade-history-row small{font-size:10px}
 .trade-history-row>.money{font-size:11px}
 .game-footer{font-size:10px;line-height:1.7;margin-top:25px}
 .game-footer>span:last-child{display:flex;justify-content:space-between;gap:10px;margin-top:10px}
 .game-footer .text-button{font-size:10px;min-height:44px}
 .dialog-body{padding:27px 21px}
 .dialog-body h2{font-size:28px;line-height:1.25}
 .dialog-body p,.dialog-body li{font-size:13px;line-height:1.75}
 .dialog-buttons{gap:9px}
 .dialog-buttons button{flex:1;font-size:12px}
 .result-hero{padding:23px}
 .result-hero strong{font-size:35px}
}
@media(max-width:360px){
 .tycoon-shell{padding-left:11px;padding-right:11px}
 h1{font-size:28px;letter-spacing:-1px}
 .brand-glyph{display:grid;width:38px;height:38px;border-radius:11px}
 .brand-glyph svg{width:26px;height:26px}
 .title-line{gap:9px}
 .tagline{font-size:11px;margin-left:47px}
 .hud-item{padding:14px}
 .hud-value{font-size:25px}
 .hud-label{font-size:10px;letter-spacing:.3px}
 .hud-top{gap:5px}
 .hud-top>.ui-icon{width:13px;height:13px}
 .game-tabs>button{font-size:11px;gap:5px;padding:10px 4px}
 .game-tabs>button>.ui-icon{width:16px;height:16px}
 .scene-heading{padding:15px}
 .scene-heading h3,.scene-heading strong{font-size:22px}
 .scene-badge{display:inline-flex;font-size:10px;max-width:40%;padding:5px 7px}
 .scene-stat{padding:11px 7px}
 .scene-stat strong{font-size:12px}
 .scene-stat small{font-size:10px}
 .growth-label{font-size:11px}
 .growth-step small{font-size:10px}
 .inline-input{flex-wrap:wrap}
 .inline-input .small-button{flex:1}
 .market-grid{grid-template-columns:1fr}
 .market-card{padding:17px}
 .ticker-info strong{font-size:13px}
 .staff-actions{gap:6px}
 .stepper{width:32px}
 .scenario-card{padding:15px;gap:0 13px}
 .scenario-money>strong{font-size:22px}
 .record-grid{grid-template-columns:1fr}
 .record{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:13px}
 .record small{font-size:10px}
 .record strong{font-size:23px;margin:0;text-align:right}
 .record strong small{display:inline}
}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
.tycoon-shell[data-game-paused="true"] .scene-card *,
.shop-illustration[data-scene-paused="true"] *,
html[data-dtp-motion="off"] .scene-card *{animation-play-state:paused!important;transition:none!important}
.tycoon-shell[data-game-paused="true"] .scene-card{animation:none!important}
@media print{
 body{background:white}
 .game-tabs,.week-panel,.game-footer,.header-meta,.skip-link,.action-feedback{display:none!important}
 .game-layout{display:block}
 .tycoon-shell{max-width:none;padding:0}
 .financial-hud,.panel,.scene-card{box-shadow:none;break-inside:avoid}
 .scene-stage>svg{max-height:300px}
}

/* Short practice goals keep progress attached to the player's current run. */
.practice-goals.panel{margin-top:19px;background:#fbfcf3;border-color:#cbd9ba;padding:22px}
.practice-goals>.panel-top{align-items:flex-start;gap:15px}
.practice-goals>.panel-top h3{font-family:Georgia,"Times New Roman",serif;font-size:25px;font-weight:500;letter-spacing:-.45px;margin:0}
.practice-goals>.panel-top .eyebrow{font-size:11px;margin-bottom:6px;letter-spacing:1px}
.practice-goals>p{font-size:12px;line-height:1.75;color:var(--muted);margin:12px 0 0}
.practice-goal-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:18px}
.practice-goal-card{display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:18px;background:#fffef7;border:1px solid #d5dfc7;border-radius:15px;box-shadow:0 2px 0 #e9eedf}
.practice-goal-card h4{font-family:Georgia,"Times New Roman",serif;font-size:22px;font-weight:500;letter-spacing:-.3px;line-height:1.25;margin:0 0 11px}
.practice-goal-card>p{font-size:12px;line-height:1.7;color:var(--muted);margin:12px 0 0}
.practice-goal-card>.panel-top{width:100%;align-items:flex-start;flex-wrap:wrap;gap:10px 12px}
.practice-goal-card>.panel-top h4{flex:1 1 145px;margin-bottom:0}
.practice-goal-card>.panel-top .goal-duration{flex-shrink:0;white-space:nowrap}
.practice-goal-card>.ui-icon{width:25px;height:25px;margin-bottom:12px;color:#5d7c44}
.practice-goal-card .goal-duration{display:inline-flex;align-items:center;gap:6px;max-width:100%;font-size:11px;line-height:1.5;font-weight:600;color:#4c673f;background:#edf3e1;border:1px solid #d6e2c6;border-radius:20px;padding:5px 9px}
.goal-duration>.ui-icon{width:14px;height:14px}
.goal-rules{font-size:12px;line-height:1.75;color:#536b4c;margin:14px 0 17px}
.goal-rules ul,ul.goal-rules{padding-left:18px;list-style:disc}
.goal-rules ul{margin:0}
.goal-rules li+li{margin-top:6px}
.goal-rules li::marker{color:#7a925b}
.goal-rules strong{font-weight:650;color:#34563a}
.practice-goal-card>.goal-start{margin-top:auto;align-self:stretch}
.goal-start button,button.goal-start{min-height:44px;width:100%;font-size:12px;white-space:normal;line-height:1.5;padding:11px 13px}
.goal-attempt{margin-top:18px;padding:20px;border:1px solid #bfcfa8;border-radius:15px;background:#fffef7;box-shadow:0 2px 0 #e0e9d1}
.practice-goals>.goal-attempt:first-child{margin-top:0}
.goal-attempt-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.goal-attempt-header>div{min-width:0}
.goal-attempt-header h3,.goal-attempt-header h4{font-family:Georgia,"Times New Roman",serif;font-size:24px;font-weight:500;letter-spacing:-.35px;line-height:1.25;margin:0 0 5px}
.goal-attempt-header p{font-size:12px;line-height:1.7;color:var(--muted);margin:6px 0 0}
.goal-attempt-header .eyebrow{font-size:11px;letter-spacing:1px;margin-bottom:6px}
.goal-deadline{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;max-width:45%;font-size:11px;font-weight:600;line-height:1.55;color:#735727;background:#f7eed8;border:1px solid #dfcfaa;border-radius:10px;padding:8px 10px;font-variant-numeric:tabular-nums}
.goal-deadline>.ui-icon{width:15px;height:15px}
.goal-week-track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:7px;list-style:none;padding:0;margin:20px 0 12px}
.goal-week{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;min-height:61px;border:1px solid #cfdac2;border-radius:10px;background:#f3f6e9;color:#536a45;font-size:13px;font-weight:650;line-height:1.4;padding:9px 4px;text-align:center;font-variant-numeric:tabular-nums}
.goal-week small{display:block;font-size:11px;font-weight:400;line-height:1.4;overflow-wrap:anywhere}
.goal-week>.ui-icon{width:15px;height:15px}
.goal-week.is-good{background:#e7f0d5;color:#345c36;border-color:#b1c88d;box-shadow:inset 0 -2px #c9ddad}
.goal-week.is-missed{background:#f8eade;color:#864c32;border-color:#d9b89f;box-shadow:inset 0 -2px #ebd1bc}
.goal-week.is-future{background:#fafbf3;color:#637356;border-color:#dce3d0;box-shadow:none;border-style:dashed}
.goal-week.is-current{border-color:#8a9f65;box-shadow:inset 0 0 0 1px #8a9f65}
.goal-progress-label{font-size:12px;line-height:1.75;color:#526b47;margin:12px 0 15px}
.goal-progress-label strong{color:var(--ink);font-weight:650}
.goal-checks{list-style:none;padding:0 14px;margin:16px 0 0;border:1px solid #d7e1c9;border-radius:12px;background:#f7f9ef}
.goal-checks>.goal-check,.goal-checks>.goal-check-row,.goal-checks>li{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:9px;font-size:12px;line-height:1.65;padding:12px 0;border-bottom:1px solid #dfe6d3;min-width:0}
.goal-checks>:last-child{border-bottom:0}
.goal-checks .ui-icon{width:18px;height:18px;color:#6d8551}
.goal-checks .goal-check-label{font-size:12px;line-height:1.65;color:#526a48;min-width:0}
.goal-checks strong{font-size:12px;font-weight:650;font-variant-numeric:tabular-nums;text-align:right;line-height:1.6;overflow-wrap:anywhere}
.goal-checks .is-good .ui-icon{color:#427347}
.goal-checks .is-met .ui-icon{color:#427347}
.goal-checks .is-missed .ui-icon{color:#965236}
.goal-result{padding:16px 17px;border:1px solid #c7d8b5;border-left:4px solid #6a8e4a;border-radius:12px;background:#edf4e1;margin:17px 0 0;font-size:12px;line-height:1.75;color:#45613b}
.goal-result>strong,.goal-result h4{display:block;font-size:15px;font-weight:650;line-height:1.4;margin:0 0 5px}
.goal-result p{font-size:12px;line-height:1.75;margin:6px 0 0}
.goal-result .ui-icon{width:19px;height:19px;margin-right:7px;vertical-align:-4px}
.goal-result{display:flex;align-items:flex-start;gap:10px}
.goal-result>.ui-icon{flex-shrink:0;margin:3px 0 0}
.goal-result>p{min-width:0;margin:0}
.goal-result.is-success{background:#edf4e1;border-color:#c7d8b5;border-left-color:#6a8e4a;color:#3f5f38}
.goal-result.is-expired{background:#fcf4e6;border-color:#e2cda9;border-left-color:#ac8143;color:#765b30}
.goal-attempt>.button-row{margin-top:17px}
.goal-attempt>details{margin-top:17px;padding-top:5px;border-top:1px solid #dbe3ce}
.goal-attempt>details>summary{cursor:pointer;min-height:44px;padding:11px 0;font-size:12px;font-weight:650;line-height:1.65;color:#3e603b}
.goal-attempt>details>.micro{font-size:11px;line-height:1.75;margin:8px 0 0}
.goal-attempt>.text-button{min-height:44px;margin-top:8px;font-size:12px}
.practice-goal-catalog{margin-top:18px;padding-top:5px;border-top:1px solid #d5dfc8}
.practice-goal-catalog>summary{cursor:pointer;min-height:44px;padding:11px 0;font-size:12px;font-weight:650;line-height:1.7;color:#3d603d}
.practice-goal-catalog>.practice-goal-cards{margin-top:14px}
.practice-goal-catalog>p{font-size:11px;line-height:1.75;color:var(--muted);margin:11px 0 0}
.practice-goal-catalog>.practice-goal-cards+p{margin-top:16px}
.goal-history{margin-top:19px;padding-top:7px;border-top:1px solid #d5dfc8;font-size:12px}
.goal-history summary{cursor:pointer;min-height:44px;padding:11px 0;font-size:12px;font-weight:650;line-height:1.7;color:#3d603d}
.goal-history ul,.goal-history ol{list-style:none;margin:3px 0 0;padding:0}
.goal-history li{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:12px 0;border-top:1px solid #e0e7d5;font-size:12px;line-height:1.7}
.goal-history li strong{font-size:12px;line-height:1.6;font-weight:650}
.goal-history li>span:first-child{display:flex;align-items:flex-start;gap:8px;min-width:0;flex:1}
.goal-history li>span:first-child>.ui-icon{width:16px;height:16px;flex-shrink:0;margin-top:3px;color:#6b814d}
.goal-history li>strong{max-width:45%;text-align:right}
.goal-history li small{display:block;font-size:11px;line-height:1.65;color:var(--muted);margin-top:3px}
.goal-history li>span:last-child{flex-shrink:0;font-size:11px;text-align:right}
.goal-history>p,.goal-history details>p{font-size:11px;line-height:1.75;color:var(--muted)}

/* Completed-week figures are a readable receipt for the player's decisions. */
.week-review.panel{margin-top:19px;padding:22px;border-color:#cad8bc;background:#fffef8;border-top:3px solid #7b9261}
.week-review>.panel-top{align-items:flex-start;gap:15px}
.week-review>.panel-top h3{font-family:Georgia,"Times New Roman",serif;font-size:25px;font-weight:500;letter-spacing:-.4px;line-height:1.25;margin:0}
.week-review .eyebrow{font-size:11px;letter-spacing:1px;margin-bottom:6px}
.week-review>p{font-size:12px;line-height:1.75;color:var(--muted);margin:13px 0 0}
.week-review-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0 4px}
.review-metric{min-width:0;padding:16px;border:1px solid #d7dfcb;border-radius:12px;background:#f6f8ed}
.review-metric:first-child{background:#edf3df;border-color:#c6d5b2}
.review-metric>span{display:block;font-size:11px;line-height:1.5;color:#56704c}
.review-metric>strong{display:block;font-size:26px;font-weight:600;line-height:1.25;letter-spacing:-.6px;font-variant-numeric:tabular-nums;margin:8px 0 6px;overflow-wrap:anywhere}
.review-metric>small{display:block;font-size:11px;font-weight:400;line-height:1.65;color:#596e4e}
.review-metric>.ui-icon{display:block;width:19px;height:19px;color:#6c8551;margin-bottom:8px}
.week-review-details{margin-top:17px;padding-top:6px;border-top:1px solid #d9e2cd}
.week-review-details summary{cursor:pointer;min-height:44px;padding:11px 0;font-size:12px;font-weight:650;line-height:1.65;color:#3e5e3c}
.week-review-details p,.week-review-details ul{font-size:12px;line-height:1.75;color:var(--muted)}
.week-review-details p{margin:8px 0 0}
.week-review-details ul{padding-left:18px;margin:8px 0 0}
.week-review-details li+li{margin-top:6px}
.week-review-details .line-item{font-size:12px;line-height:1.65;padding:9px 0}

@media(max-width:1180px){
 .practice-goals.panel,.week-review.panel{padding:19px}
 .practice-goal-cards{gap:11px}
 .practice-goal-card{padding:16px}
 .practice-goal-card h4{font-size:21px}
 .goal-attempt{padding:17px}
 .goal-attempt-header h3,.goal-attempt-header h4{font-size:23px}
 .goal-week-track{gap:5px}
 .goal-week{padding:9px 3px}
 .goal-deadline{max-width:42%;padding:7px 9px}
 .review-metric{padding:15px}
 .review-metric>strong{font-size:24px}
}
@media(max-width:980px) and (min-width:801px){
 .practice-goal-cards{grid-template-columns:1fr}
 .practice-goal-card{padding:18px}
 .goal-attempt-header{flex-direction:column;gap:10px}
 .goal-deadline{max-width:100%}
 .goal-week-track{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
 .goal-checks>.goal-check,.goal-checks>.goal-check-row,.goal-checks>li{grid-template-columns:20px minmax(0,1fr);gap:3px 9px}
 .goal-checks strong{grid-column:2;text-align:left}
 .week-review-metrics{grid-template-columns:1fr;gap:10px}
}
@media(max-width:600px){
 .practice-goals.panel,.week-review.panel{padding:18px;margin-top:17px}
 .practice-goals>.panel-top,.week-review>.panel-top{gap:11px;flex-wrap:wrap}
 .practice-goals>.panel-top h3,.week-review>.panel-top h3{font-size:24px}
 .practice-goals>.panel-top .eyebrow,.week-review .eyebrow{font-size:11px;letter-spacing:.7px}
 .practice-goal-cards{grid-template-columns:1fr;gap:12px;margin-top:16px}
 .practice-goal-card{padding:18px;border-radius:13px}
 .practice-goal-card h4{font-size:23px}
 .practice-goal-card .goal-duration{font-size:11px}
 .goal-rules{font-size:12px;line-height:1.75;margin:14px 0 18px}
 .goal-attempt{padding:16px;border-radius:13px;margin-top:16px}
 .goal-attempt-header{flex-direction:column;gap:11px}
 .goal-attempt-header h3,.goal-attempt-header h4{font-size:23px}
 .goal-deadline{max-width:100%;font-size:11px;padding:8px 10px}
 .goal-week-track{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:17px}
 .goal-week{min-height:61px;font-size:13px;padding:9px 4px}
 .goal-week small{font-size:11px}
 .goal-progress-label{font-size:12px;line-height:1.75}
 .goal-checks{padding:0 12px}
 .goal-checks>.goal-check,.goal-checks>.goal-check-row,.goal-checks>li{grid-template-columns:20px minmax(0,1fr);gap:3px 8px;padding:12px 0}
 .goal-checks .goal-check-label{font-size:12px}
 .goal-checks strong{grid-column:2;font-size:12px;text-align:left}
 .goal-result{padding:15px;font-size:12px;border-radius:11px}
 .goal-result>strong{font-size:14px}
 .goal-result p{font-size:12px}
 .goal-history li{flex-wrap:wrap;gap:6px}
 .goal-history li>span:first-child{flex-basis:100%}
 .goal-history li>strong{max-width:none;text-align:left;padding-left:24px}
 .goal-history li>span:last-child{flex-shrink:1;text-align:left;font-size:11px}
 .week-review-metrics{grid-template-columns:1fr;gap:10px;margin-top:16px}
 .review-metric{padding:16px}
 .review-metric>strong{font-size:27px}
 .review-metric>small,.review-metric>span{font-size:12px}
 .week-review-details summary{font-size:12px}
}
@media print{
 .practice-goal-card,.goal-attempt,.week-review,.review-metric{box-shadow:none;break-inside:avoid}
 .goal-start,.goal-attempt>.button-row{display:none!important}
}

/* Short challenges share the game's calm neighborhood palette. */
.challenge-intro{font-size:13px;line-height:1.75;color:var(--muted);max-width:70ch;margin:0 0 22px}
.challenge-invitation{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px;background:#f1f5e6;border-color:#c4d3b3}
.challenge-invitation h3{margin:8px 0}.challenge-invitation p{font-size:12px;line-height:1.6;color:var(--muted);margin:0}.challenge-invitation button{flex-shrink:0}
.challenge-catalog{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:20px}
.challenge-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:17px;padding:18px;background:var(--card);box-shadow:0 5px 16px #18372105}
.challenge-card:nth-child(2){background:#f3f5e8}.challenge-card:nth-child(3){background:#f6f1e4}.challenge-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:17px}
.challenge-number{font-family:Georgia,serif;font-size:38px;line-height:1;color:#8b9d78}.challenge-card h3{font-size:17px;line-height:1.35;margin:0 0 10px}.challenge-card>p{font-size:12px;color:var(--muted);line-height:1.65;margin:0 0 15px}
.challenge-start{border-top:1px solid var(--line);padding-top:12px;margin-top:auto}.challenge-start>span{font-size:9px;letter-spacing:1.2px;font-weight:700;color:var(--muted)}.challenge-start p{font-size:11px;line-height:1.65;margin:7px 0 14px}
.challenge-card-record{font-size:11px;font-weight:650;color:#3c6043;margin:0 0 13px;text-transform:none}.challenge-card>.primary-button{width:100%;font-size:11px;white-space:normal}
.challenge-active{margin-bottom:18px;border-color:#a7bd91;background:#f8faef}.challenge-finished{border-color:#c7b075;background:#fcf9ed}
.challenge-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.challenge-heading .eyebrow{font-size:9px}.challenge-heading h2{font-size:25px;line-height:1.2;margin:8px 0}.challenge-heading p{font-size:12px;line-height:1.65;margin:0;color:var(--muted)}
.challenge-medal{display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;min-width:86px;min-height:100px;border:1px solid #c9d5ba;border-radius:30px 30px 12px 12px;background:#edf2df;padding:12px 8px;color:#476044}
.challenge-medal>span{font-size:28px;line-height:1.2}.challenge-medal strong{text-transform:capitalize;font-size:14px;line-height:1.4}.challenge-medal small{font-size:10px;color:var(--muted)}.challenge-medal.gold{background:#f5e5b2;border-color:#cbb16b;color:#765c20}.challenge-medal.silver{background:#e9ece8;border-color:#b0b8ad;color:#52604f}.challenge-medal.bronze{background:#ecdbc7;border-color:#bb9b75;color:#7a5634}
.challenge-goals{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:15px 24px}.challenge-goals li{min-width:0}.challenge-goal-heading{display:flex;flex-direction:column;gap:5px;font-size:11px;line-height:1.5}.challenge-goal-heading>span{color:var(--muted)}.challenge-goal-heading i{font-style:normal;color:#647a53}.challenge-goal-heading strong{font-size:13px}.goal-met .challenge-goal-heading strong{color:#3f6a43}
.challenge-goal-track{height:4px;background:#e1e8d4;border-radius:3px;margin-top:7px;overflow:hidden}.challenge-goal-track>span{display:block;height:100%;background:#8aa970;border-radius:3px}.goal-met .challenge-goal-track>span{background:#527a46}
.challenge-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.challenge-actions button{font-size:11px}.challenge-active>.micro{line-height:1.65;margin:13px 0 0}
.challenge-result-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:20px;border:1px solid var(--line);border-radius:10px;overflow:hidden}.challenge-result-stats .hud-item{padding:13px;min-width:0}.challenge-result-stats .hud-value{font-size:22px;overflow-wrap:anywhere}.challenge-result-stats .hud-label{font-size:8px}.challenge-result-stats .hud-note{font-size:9px}
.challenge-comparison{margin-top:23px;border-top:1px solid var(--line);padding-top:18px}.challenge-comparison h3{font-size:15px}.comparison-chart{margin-top:8px}.comparison-chart svg{width:100%;height:auto;display:block}.comparison-legend{display:flex;flex-wrap:wrap;gap:9px 19px;font-size:10px;color:#3d6e4e;margin:3px 0 12px}.comparison-legend>span:last-child{color:#8c6b32}.comparison-metrics{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.comparison-metrics .line-item{flex-direction:column;align-items:flex-start;gap:4px;font-size:10px}.comparison-metrics strong{font-size:12px}.challenge-comparison>.micro{line-height:1.65;margin:13px 0 0}.challenge-history{margin-top:20px}
.challenge-tier-list{list-style:none;margin:18px 0;padding:0}.challenge-tier-list li{display:flex;align-items:flex-start;gap:12px;border-bottom:1px solid var(--line);padding:11px 0}.challenge-tier-list strong{font-size:11px;min-width:48px}.challenge-tier-list span{font-size:12px;line-height:1.6}.challenge-tier-list .gold{color:#866420}.challenge-tier-list .silver{color:#5d6b61}.challenge-tier-list .bronze{color:#8a603c}.dialog-body code{font-size:10px;overflow-wrap:anywhere}.week-panel>.small-button{width:100%;margin-top:10px}
@media(max-width:1180px){.challenge-catalog{grid-template-columns:1fr}.challenge-card{display:grid;grid-template-columns:1fr auto;gap:0 15px}.challenge-card-top{grid-column:1/-1;margin-bottom:9px}.challenge-number{font-size:27px}.challenge-card h3,.challenge-card>p,.challenge-start{grid-column:1/-1}.challenge-card-record{align-self:center;margin:0}.challenge-card>.primary-button{width:auto}.challenge-start p{margin-bottom:10px}.challenge-invitation{align-items:flex-start;flex-direction:column;gap:12px}}
@media(max-width:980px){.game-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}.challenge-heading h2{font-size:22px}.challenge-goals{gap:14px}.challenge-result-stats{grid-template-columns:1fr}.challenge-result-stats .hud-item{border-right:0;border-bottom:1px solid var(--line)}.challenge-result-stats .hud-item:last-child{border-bottom:0}.challenge-result-stats .hud-value{font-size:24px}.challenge-comparison .panel-top{align-items:flex-start;gap:10px}}
@media(max-width:680px){.game-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.game-tabs>button[data-tab="challenges"]:not([aria-current=page]){border-color:#a4b991;background:#edf3df}.challenge-card{padding:17px}.challenge-heading{gap:10px}.challenge-heading h2{font-size:24px}.challenge-medal{min-width:73px;min-height:90px}.challenge-goal-heading{font-size:11px}.challenge-goal-heading strong{font-size:12px}.challenge-goals{gap:16px 14px}.challenge-actions button{flex:1;min-width:120px;min-height:44px}.challenge-result-stats{grid-template-columns:1fr 1fr}.challenge-result-stats .hud-item:last-child{grid-column:1/-1}.comparison-metrics{gap:0 14px}.challenge-history .research-table{min-width:560px}.challenge-invitation{padding:18px}.challenge-card>.primary-button{min-height:44px}.challenge-tier-list li{gap:9px}}
@media(max-width:380px){.challenge-goals,.comparison-metrics{grid-template-columns:1fr}.challenge-card{display:flex}.challenge-card-record{align-self:flex-start;margin-bottom:10px}.challenge-card>.primary-button{width:100%}.challenge-heading h2{font-size:21px}.challenge-result-stats{grid-template-columns:1fr}.challenge-result-stats .hud-item:last-child{grid-column:auto}}
/* Challenge collection and the shared feedback shortcut. */
.brand-glyph img{display:block;width:100%;height:100%;border-radius:inherit}
.session-options{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap}
.session-options .text-button{min-height:44px;font-size:12px;color:#34583e;text-decoration:underline;text-underline-offset:3px}
.challenge-collection{padding:23px 24px 19px;margin:0 0 22px;border:1px solid #c6d4bb;border-radius:18px;background:linear-gradient(115deg,#edf3df,#f7f7eb);box-shadow:inset 0 3px #7d9560}
.challenge-collection h3{font-family:Georgia,serif;font-size:25px;font-weight:400;line-height:1.3;margin:7px 0}
.challenge-collection p{font-size:12px;line-height:1.65;color:#52654b;margin:0}
.collection-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:21px 0 15px;gap:12px}
.collection-counts>div{border-left:1px solid #cbd7bd;padding-left:17px;min-width:0}
.collection-counts>div:first-child{padding-left:0;border-left:0}
.collection-counts strong{display:block;font-family:Georgia,serif;font-size:31px;font-weight:400;line-height:1.1;color:#204d3e}
.collection-counts strong small{font:12px/1.4 system-ui,sans-serif;color:#5b6d50}
.collection-counts span{display:block;font-size:12px;color:#4a6044;margin-top:8px}
.challenge-collection .collection-note{font-size:11px;border-top:1px solid #cfdac2;padding-top:13px}
.challenge-emblem{position:relative;display:grid;place-items:center;width:63px;height:63px;background:#e8efdc;color:#376446;border:1px solid #bbcca9;border-radius:18px;box-shadow:inset 0 0 0 5px #f8faef}
.challenge-emblem .challenge-number{position:absolute;right:-6px;bottom:-5px;display:grid;place-items:center;min-width:25px;height:25px;border:1px solid #c4caa8;border-radius:50%;background:#fffdf4;color:#526442;font:600 11px/1 system-ui,sans-serif}
.challenge-card[data-challenge-theme="first-profit"] .challenge-emblem{background:#f3e7cc;color:#866222;border-color:#dac79f;box-shadow:inset 0 0 0 5px #fff9eb}
.challenge-card[data-challenge-theme="steady-service"] .challenge-emblem{background:#e0eee4;color:#30664a;border-color:#b6ceba}
.challenge-card[data-challenge-theme="team-builder"] .challenge-emblem{background:#e3e9ee;color:#466276;border-color:#bfced6;box-shadow:inset 0 0 0 5px #f6fafb}
.challenge-card[data-challenge-theme="room-to-grow"] .challenge-emblem{background:#eee4d5;color:#735537;border-color:#d1bfa7;box-shadow:inset 0 0 0 5px #fff9f0}
.medal-label{display:inline-block;padding:3px 8px;border-radius:20px;background:#f0eee4;color:#5c604e;text-transform:capitalize}
.medal-label.gold{background:#f2e5bc;color:#725315}
.medal-label.silver{background:#e6e9e6;color:#4c5c57}
.medal-label.bronze{background:#efdfce;color:#785232}
@media(min-width:1181px){.challenge-catalog{grid-template-columns:repeat(2,minmax(0,1fr))}.challenge-card:last-child:nth-child(odd){grid-column:1/-1}}
@media(max-width:680px){.session-options{gap:5px;align-items:flex-end;flex-direction:column}.challenge-collection{padding:19px 17px}.challenge-collection h3{font-size:23px}.collection-counts{gap:8px}.collection-counts>div{padding-left:10px}.collection-counts strong{font-size:28px}.collection-counts span{font-size:11px}.challenge-emblem{width:58px;height:58px}}
@media print{.session-options,#record-warning{display:none!important}}

/* Medal paths and an investing desk that reflects the player's actual holdings. */
.medal-roadmap{margin:22px 0;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.medal-roadmap-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}
.medal-roadmap-heading h3{font-family:inherit;font-size:14px;margin:0}.medal-roadmap-heading>span{font-size:11px;color:var(--muted)}
.medal-steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.medal-step{display:flex;gap:10px;align-items:flex-start;padding:13px 10px;border:1px solid #d9dfce;border-radius:13px;background:#f8f7f0;min-width:0}
.medal-step-icon{display:grid;place-items:center;flex-shrink:0;width:34px;height:40px;background:#e8eade;clip-path:polygon(0 0,100% 0,100% 80%,50% 100%,0 80%);color:#697360}
.medal-step>div{min-width:0}.medal-step strong,.medal-step .medal-target,.medal-step small{display:block}
.medal-step strong{font-size:11px;text-transform:uppercase;letter-spacing:.7px}.medal-step .medal-target{font-size:17px;font-weight:650;font-variant-numeric:tabular-nums;margin-top:5px;overflow-wrap:anywhere}.medal-step small{font-size:10px;line-height:1.5;color:var(--muted);margin-top:5px}
.medal-step.is-reached{border-color:#a6b89a;background:#eef4e7}.medal-step.is-earned{box-shadow:inset 0 0 0 1px #6d8b56}
.medal-step.bronze.is-reached .medal-step-icon{background:#d6b397;color:#654021}.medal-step.silver.is-reached .medal-step-icon{background:#d3ddda;color:#435a53}.medal-step.gold.is-reached .medal-step-icon{background:#dfc576;color:#604a12}
.medal-roadmap>p{font-size:11px;color:var(--muted);line-height:1.65;margin:13px 0 0}
.challenge-card[data-challenge-theme="portfolio-builder"] .challenge-emblem{background:#dfe9e9;color:#365f67;border-color:#acc6c6;box-shadow:inset 0 0 0 5px #f1f7f4}
.challenge-category{display:block;font-size:10px;letter-spacing:1.3px;text-transform:uppercase;font-weight:650;color:var(--muted);margin:16px 0 7px}
.challenge-card .challenge-category+h3{margin-top:0}
.portfolio-scene{background:linear-gradient(145deg,#f2f5e8,#fffef8 65%);border:1px solid #b9c9ad;border-radius:20px;padding:24px;margin:0 0 22px;box-shadow:0 12px 24px #203e2d06}
.portfolio-scene-heading{display:flex;justify-content:space-between;align-items:center;gap:18px}.portfolio-scene-heading h3{font-size:29px;line-height:1.15;margin:8px 0 18px;font-weight:400;letter-spacing:-.8px}.portfolio-scene-heading .eyebrow{font-size:9px}
.portfolio-scene-emblem{width:62px;height:62px;display:grid;place-items:center;flex-shrink:0;border-radius:18px;background:#214c40;color:#d1dfaa;border:1px solid #8aa387;box-shadow:inset 0 0 0 5px #2c5a4b}
.portfolio-score-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:18px;border:1px solid #d3ddc7;background:#fffef9;border-radius:13px}
.portfolio-score-strip>div+div{border-left:1px solid var(--line);padding-left:18px}.portfolio-score-strip span{display:block;font-size:9px;letter-spacing:1px;color:var(--muted);font-weight:600}.portfolio-score-strip strong{display:block;font-size:27px;margin:8px 0}.portfolio-score-strip small{font-size:10px;color:var(--muted);line-height:1.5}
.portfolio-composition-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:22px 0 13px}.portfolio-composition-heading h4{margin:0;font-size:13px;font-weight:650}.portfolio-composition-heading>span{font-size:13px;font-weight:650;white-space:nowrap}
.portfolio-weight-strip{height:14px;display:flex;overflow:hidden;border-radius:5px;background:#e1e8d9;margin-bottom:14px}.portfolio-weight-strip>span{height:100%;border-right:2px solid #fffef8}.portfolio-weight-strip>span:last-child{border-right:0}
.portfolio-holdings{list-style:none;margin:0;padding:0}.portfolio-holdings>li{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.portfolio-holdings>li>div{flex:1;min-width:0}.portfolio-holdings strong{font-size:12px}.portfolio-holdings small{display:block;color:var(--muted);font-size:10px;line-height:1.6;margin-top:3px}.portfolio-holdings>li>.money{white-space:nowrap;font-size:13px}
.portfolio-ticker{display:grid;place-items:center;flex-shrink:0;width:45px;height:40px;border-radius:9px;background:#f4f6eb;color:#173e34;border:1px solid var(--holding-color);box-shadow:inset 3px 0 var(--holding-color);font-size:10px;font-weight:700;letter-spacing:.3px}
.portfolio-empty-scene{text-align:center;padding:23px 15px;border:1px dashed #bdcdb4;border-radius:12px;background:#f8faf2}.portfolio-empty-art{display:flex;justify-content:center;gap:28px;color:#628575;margin-bottom:18px}.portfolio-empty-scene h4{margin:0 0 9px;font-size:17px;font-weight:550}.portfolio-empty-scene p{max-width:430px;margin:0 auto;font-size:12px;line-height:1.7;color:var(--muted)}
.portfolio-scene-footer{display:flex;align-items:center;gap:18px;justify-content:space-between;margin-top:18px}.portfolio-scene-footer p{font-size:11px;line-height:1.7;color:var(--muted);margin:0;max-width:390px}.portfolio-scene-footer p strong{color:var(--ink)}.portfolio-scene-footer button{min-height:44px;flex-shrink:0;display:flex;align-items:center;gap:7px}
.portfolio-score-explanation{margin-top:18px;border-top:1px solid var(--line);padding-top:6px}.portfolio-score-explanation summary{font-size:11px;line-height:1.6;min-height:44px;padding:12px 0;cursor:pointer;font-weight:600}.portfolio-score-explanation p{font-size:11px;line-height:1.7;color:var(--muted)}
.scenario-scope-note{margin:0 0 16px;border-left:3px solid #789d8c;padding:12px 15px;background:#f0f5e9;font-size:12px;line-height:1.7;color:#3e5c4b}.scenario-scope-note strong{display:block;margin-bottom:4px}
@media(max-width:680px){.portfolio-scene{padding:18px}.portfolio-scene-heading h3{font-size:25px}.portfolio-score-strip{padding:13px;gap:13px}.portfolio-score-strip strong{font-size:22px}.portfolio-score-strip>div+div{padding-left:13px}.portfolio-scene-footer{align-items:stretch;flex-direction:column}.portfolio-scene-footer button{justify-content:center}.medal-steps{gap:6px}.medal-step{flex-direction:column;padding:11px 9px;gap:8px}.medal-step .medal-target{font-size:16px}.medal-roadmap-heading{align-items:flex-start}.medal-roadmap-heading>span{text-align:right;max-width:100px}.portfolio-holdings strong{font-size:11px}.portfolio-ticker{width:39px}}
@media(max-width:380px){.portfolio-score-strip{grid-template-columns:1fr}.portfolio-score-strip>div+div{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:12px}.portfolio-scene-emblem{width:48px;height:48px}.portfolio-holdings>li{flex-wrap:wrap}.portfolio-holdings>li>.money{margin-left:49px;width:100%}.medal-step .medal-target{font-size:14px}.medal-step strong{font-size:10px}}

.portfolio-score-strip>div{min-width:0}.portfolio-score-strip strong{overflow-wrap:anywhere}

/* Daily spotlights, persistent milestones and local replay modes. */
.daily-spotlight{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:24px;background:#e9f1df;border:1px solid #c6d4b5;border-radius:22px;padding:26px;margin-bottom:26px}
.daily-spotlight h2{font-size:clamp(23px,3vw,34px);line-height:1.15;margin:8px 0 12px}.daily-spotlight p{line-height:1.6;margin:8px 0}.daily-actions{display:flex;flex-direction:column;justify-content:center;gap:18px}.daily-streak{display:flex;flex-direction:column;color:#38503d;font-size:13px}.daily-streak strong{font-size:38px;color:#173e34}.daily-streak small{font-size:12px;margin-top:5px}
.tour-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:20px 0}.tour-card{border:1px solid #d4ddcd;background:#f6f8ef;border-radius:18px;padding:20px;display:flex;flex-direction:column;min-width:0}.tour-card h3{font-size:20px;line-height:1.3;margin:10px 0}.tour-card p{font-size:14px;line-height:1.6;color:#53654c}.tour-card ol{padding-left:20px;margin:10px 0 20px;flex:1}.tour-card li{padding:9px 0;font-size:13px;line-height:1.5}.tour-card li span,.tour-card li strong{display:block}.tour-card li strong{font-size:11px;margin-top:4px}
.achievement-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}.achievement-card{border:1px solid #d6dece;border-radius:15px;display:flex;gap:12px;padding:16px;min-width:0}.achievement-card.earned{background:#edf3e5;border-color:#a9bd91}.achievement-glyph{flex:0 0 32px;color:#697961}.achievement-card.earned .achievement-glyph{color:#85611b}.achievement-card h4{font-size:15px;margin:0 0 6px}.achievement-card p{margin:0 0 8px;font-size:13px;line-height:1.5;color:#59664f}.achievement-card strong{font-size:11px;text-transform:uppercase;letter-spacing:.06em}.achievement-card.locked strong{color:#6d7866}.nav-medal{font-size:22px;width:20px;text-align:center}
.replay-banner{border:1px solid #c4d1b6;border-radius:15px;padding:16px 20px;margin-bottom:18px;background:#f0f5e8}.replay-banner strong{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.replay-banner p{font-size:13px;line-height:1.55;margin:9px 0 0;color:#52644b}.trial-record{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;align-items:center;padding:14px 0;border-bottom:1px solid #e1e5da}.trial-record:last-child{border-bottom:0}.trial-record>span{font-size:14px}.trial-record small{display:block;font-size:11px;color:#607257;margin-top:5px}.trial-record>strong{font-variant-numeric:tabular-nums}.challenge-card>.small-button{margin-top:9px}
@media(max-width:1100px){.tour-grid{grid-template-columns:1fr}.tour-card ol{display:flex;gap:26px;flex-wrap:wrap}.tour-card li{flex:1;min-width:140px}}
@media(max-width:600px){.daily-spotlight{grid-template-columns:1fr;padding:20px;gap:12px}.daily-actions{display:grid;grid-template-columns:1fr;gap:12px}.daily-streak strong{font-size:29px}.achievement-grid{grid-template-columns:1fr}.trial-record{grid-template-columns:minmax(0,1fr) auto;gap:10px}.trial-record button{grid-column:1/-1;width:100%;min-height:44px}.tour-card li{min-width:120px}.daily-actions button,.tour-card button{min-height:44px}}
@media(prefers-reduced-motion:reduce){.daily-spotlight,.achievement-card,.tour-card{animation:none!important;transition:none!important}}

/* Calendar shares the game typography and makes earned status independent of color. */
.daily-calendar .panel-top{align-items:flex-start;gap:16px;flex-wrap:wrap}
.daily-calendar-grid{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:0;margin:22px 0 14px}
.daily-calendar-card{display:flex;flex-direction:column;gap:9px;min-width:0;border:1px solid #d4ddcd;border-radius:16px;padding:16px;background:#f6f8ef}
.daily-calendar-card.today{border:2px solid #365c45;background:#e9f1df}
.daily-calendar-card time{font-size:13px;font-variant-numeric:tabular-nums;color:#465a42}
.daily-calendar-card h4{font-size:16px;line-height:1.35;margin:0;overflow-wrap:anywhere}
.daily-calendar-status{font-size:12px;line-height:1.5;margin:0 0 6px;color:#42533e}
.daily-calendar-card button{margin-top:auto;min-height:44px;white-space:normal}
@media(max-width:900px){.daily-calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){.daily-calendar-grid{grid-template-columns:1fr}.daily-calendar-card{padding:14px}.daily-calendar-card button{width:100%}}

/* Replay journal: read-only result cards share the existing Financial Tycoon skin. */
.replay-journal { margin-top: 22px; }
.replay-filters { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 12px; margin: 18px 0 12px; }
.replay-filters label { display: grid; gap: 7px; min-width: 0; font-size: .78rem; font-weight: 650; }
.replay-filters select { width: 100%; min-width: 0; min-height: 44px; }
.replay-cards { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.replay-card { border: 1px solid var(--line,#dce4d8); border-radius: 14px; padding: 16px; background: var(--surface,#fffdf7); min-width: 0; }
.replay-card h4 { margin: 0; font-size: 1rem; overflow-wrap: anywhere; }
.replay-card .panel-top { align-items: flex-start; gap: 8px; flex-wrap: wrap; }
.replay-card .button-row { flex-wrap: wrap; }
.replay-card button, .replay-pagination button { min-height: 44px; }
.replay-score { display: grid; gap: 4px; margin: 14px 0; }
.replay-score small { text-transform: uppercase; letter-spacing: .06em; font-size: .65rem; }
.replay-score strong { font-variant-numeric: tabular-nums; font-size: 1.45rem; overflow-wrap: anywhere; }
.replay-score span { font-size: .78rem; }
.replay-pagination { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; margin: 18px 0 10px; font-size: .8rem; }
.replay-scorecard .line-item { gap: 14px; align-items: flex-start; }
.replay-scorecard .line-item strong { text-align: right; overflow-wrap: anywhere; }
.scorecard-comparison { border-block: 1px solid var(--line,#dce4d8); padding-block: 14px; margin-block: 16px; }
.scorecard-comparison h3 { margin: 0 0 8px; }
.scorecard-weeks summary { min-height: 44px; padding-block: 12px; cursor: pointer; font-weight: 650; }
.scorecard-weeks .table-scroll { max-width: 100%; }
@media (max-width: 680px) {
 .replay-filters, .replay-cards { grid-template-columns: minmax(0,1fr); }
 .replay-scorecard .line-item { flex-wrap: wrap; }
 .replay-scorecard .line-item strong { text-align: left; }
}

/* Read-only challenge planning: no animation or color-only status. */
.challenge-coach { margin: 18px 0; padding: 20px; border: 1px solid #cad7c3; border-radius: 18px; background: #f3f6ed; }
.challenge-coach h3 { margin: 5px 0 0; }
.coach-target { display: grid; gap: 5px; min-width: 145px; font-size: .8rem; font-weight: 650; }
.coach-target select { width: 100%; min-height: 44px; padding: 9px 12px; border: 1px solid #8c9f83; border-radius: 10px; background: white; color: #203e30; font: inherit; }
.coach-score { display: grid; gap: 7px; padding: 14px; border-radius: 12px; background: #fff; }
.coach-score small { display: block; margin-bottom: 5px; }
.coach-score strong { display: block; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; font-size: 1.2rem; }
.coach-score strong span { font-size: .9rem; color: #52634b; }
.coach-score p { margin: 0; }
.coach-opening { margin-top: 12px; font-size: .9rem; }
.coach-deadline,.coach-unreachable { border-left: 4px solid #9b5c21; padding-left: 12px; }
.coach-deadline { background: #fff3df; padding: 12px; border-radius: 8px; }
.coach-details { margin: 14px 0; }
.coach-details summary { min-height: 44px; align-content: center; cursor: pointer; font-weight: 650; }
.coach-goals { display: grid; gap: 12px; list-style: none; padding: 0; margin: 12px 0; }
.coach-goal { padding: 12px; border-radius: 10px; background: #fff; }
.coach-goal div { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 7px; }
.coach-goal div span { font-variant-numeric: tabular-nums; font-size: .85rem; }
.coach-goal p { font-size: .88rem; margin: 7px 0; }
.coach-goal small { font-size: .8rem; color: #4a5b42; }
.coach-status { font-weight: 650; }
@media (max-width: 560px) { .challenge-coach { padding: 14px; } .challenge-coach .panel-top { align-items: stretch; flex-direction: column; gap: 10px; } .coach-target { width: 100%; min-width: 0; } }
