/* The city remains the stage; the business controls are its operations desk. */
:root{--facility-panel-width:350px}
#business-bar{position:absolute;inset:0 0 auto;z-index:4;min-height:80px;display:flex;align-items:center;gap:16px;padding:12px 32px;background:var(--panel-deep);border-bottom:1px solid var(--line)}
.credit-balance{min-width:155px}.credit-balance>span{display:block;font:12px var(--mono);color:var(--muted);letter-spacing:1px}.credit-balance>strong{display:block;font:27px/1.15 var(--mono);font-weight:bold;margin-top:5px;font-variant-numeric:tabular-nums}.credit-balance small{font-size:14px;color:var(--green)}
.payroll-summary{display:flex;flex-direction:column;gap:6px;margin-right:auto}.payroll-summary strong{font-size:14px}.payroll-summary>span{font-size:12px;color:var(--muted)}
#business-bar .button,#business-bar .small-button,#facility-panel .button,#facility-heading .small-button,.business-modal .small-button,.paycheck-receipt .button{font-size:14px;min-height:44px}
#business-bar .primary{--accent:var(--green)}#season-badge{font:12px var(--mono);color:var(--green)}
.city-heading{top:105px}.city-heading .eyebrow{font-size:12px;letter-spacing:.6px}.city-heading h1{font-size:clamp(30px,3vw,44px)}.city-tools{top:106px}.city-tools .small-button{font-size:12px}.world-hint{font-size:12px}.job-description{font-size:14px;line-height:1.55}.job-skill,.free-note{font-size:12px;letter-spacing:.4px}.job-meta{font-size:14px}.job-baseline{font-size:12px;gap:10px;justify-content:space-between}.job-detail .button{font-size:14px}.roster-text small,.roster-text em{font-size:12px;letter-spacing:0}.roster-text strong{white-space:normal}.roster-card{gap:10px}.roster-photo{width:53px}.roster-text em{line-height:1.25}.city-status{font-size:12px;letter-spacing:.3px}.edition{font-size:12px;letter-spacing:.7px}
#business-intro{position:absolute;right:32px;top:205px;width:310px;padding:23px;background:var(--panel);border:1px solid var(--line);border-top:2px solid var(--green);border-radius:var(--radius);z-index:3;box-shadow:0 16px 42px #0c0c0c40}
#business-intro .eyebrow{display:block;color:var(--green);font-size:12px;letter-spacing:.5px;padding-right:16px}#business-intro>strong{font:25px/1.2 var(--display);display:block}#business-intro p{font-size:14px;line-height:1.6;color:var(--muted);margin:12px 0}#business-intro .text-button{font-size:14px}.intro-close{position:absolute;right:10px;top:10px;background:transparent;border:1px solid var(--line);border-radius:var(--radius);font-size:20px;width:32px;height:32px;line-height:1}.intro-close:hover{background:var(--line)}
#business-error{position:absolute;z-index:7;left:20px;right:20px;bottom:125px;margin:0;padding:12px 18px;background:var(--panel);border:1px solid var(--error);border-radius:var(--radius);color:var(--error);font-size:14px;line-height:1.5}
body[data-mode=facility] .city-heading,body[data-mode=facility] .city-tools,body[data-mode=facility] .job-detail,body[data-mode=facility] .city-status,body[data-mode=facility] .roster,body[data-mode=facility] .nearby-work{display:none}
body[data-mode=work] #business-bar,body[data-mode=work] #business-intro{display:none}
body[data-mode=facility] #viewport{top:162px;right:var(--facility-panel-width);bottom:0;left:0}body[data-mode=facility] .world-vignette{background:linear-gradient(0deg,var(--bg),transparent 15%)}
#facility-heading{position:absolute;top:81px;left:0;right:var(--facility-panel-width);min-height:80px;padding:14px 24px;display:flex;align-items:center;gap:18px;background:var(--bg);border-bottom:1px solid var(--line)}#facility-heading h1{font:28px/1.1 var(--display);margin:0;text-transform:uppercase}#facility-heading .eyebrow{font-size:12px;margin:0 0 4px;letter-spacing:.5px;color:var(--accent)}#facility-recenter{margin-left:auto}
#facility-panel{position:absolute;top:80px;right:0;bottom:0;width:var(--facility-panel-width);z-index:3;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;background:var(--panel);border-left:1px solid var(--line);padding:23px}
.facility-payroll{padding-bottom:20px;border-bottom:1px solid var(--line)}.facility-payroll .eyebrow{font-size:12px;letter-spacing:.2px;color:var(--accent)}.facility-payroll>strong{font:34px/1.2 var(--mono);letter-spacing:-1px;display:block;font-variant-numeric:tabular-nums;margin:10px 0 15px}.facility-payroll .button{width:100%;justify-content:space-between}.facility-footnote{display:block;font-size:12px;line-height:1.6;color:var(--muted);margin:10px 0 0}
.facility-counts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:18px 0;border-bottom:1px solid var(--line)}.facility-counts span{display:flex;flex-direction:column;font-size:12px;color:var(--muted);gap:7px}.facility-counts b{font:18px var(--mono);color:var(--ink)}
.facility-production{padding:20px 0}.production-header{display:flex;justify-content:space-between;gap:8px;font-size:14px}.production-header>span{font-family:var(--mono);color:var(--accent)}.throughput{height:6px;background:var(--line);margin:13px 0;border-radius:3px;overflow:hidden}.throughput>i{display:block;height:100%;background:var(--accent);transition:width .3s}.facility-production p{margin:0;font-size:14px;line-height:1.5}.facility-production>span{font-size:12px;line-height:1.5;display:block;color:var(--muted);margin-top:8px}
.facility-sections{display:flex;gap:4px;padding-bottom:5px;border-bottom:1px solid var(--line)}.facility-sections button{flex:1;min-height:42px;background:transparent;border:1px solid transparent;border-radius:var(--radius);padding:8px;font-size:14px;color:var(--muted)}.facility-sections button:hover{background:var(--line);color:var(--ink)}.facility-sections button[aria-pressed=true]{background:var(--panel-deep);color:var(--accent);border-color:var(--line)}
.upgrade{padding:19px 0;border-bottom:1px solid var(--line)}.upgrade>strong{font-size:16px}.upgrade>p{font-size:14px;line-height:1.55;color:var(--muted);margin:8px 0 13px}.upgrade>.button{width:100%;padding:11px 8px}.upgrade .upgrade-help,.upgrade-help{min-height:19px;font-size:12px;line-height:1.5;color:var(--muted);margin:8px 0 0}
.management-card{margin-top:23px;padding-top:2px}.management-card .eyebrow{display:block;font-size:12px;color:var(--accent);letter-spacing:.5px}.management-card>strong{font-size:16px;display:block}.management-card>p{font-size:14px;line-height:1.55;color:var(--muted);margin:9px 0 13px}.management-card .button{width:100%;justify-content:space-between;padding:12px}.demo-boundary{padding-top:15px;margin-top:20px;border-top:1px solid var(--line)}
.open-facility h2{font:34px/1.1 var(--display);margin:22px 0 14px}.open-facility>p{font-size:16px;line-height:1.6;color:var(--muted)}.open-facility .button{width:100%}
.business-modal{width:100%;padding:40px}.business-modal>p,.paycheck-receipt>p{font-size:16px;line-height:1.6}.business-modal .modal-kicker,.paycheck-receipt .modal-kicker{font-size:12px;letter-spacing:.7px;color:var(--accent)}.business-modal .modal-note,.paycheck-receipt .modal-note{font:12px/1.6 var(--mono)!important}.business-modal h2{font:clamp(32px,4vw,44px)/1.1 var(--display);margin:12px 0 16px}.portfolio-table-wrap{overflow-x:auto;scrollbar-gutter:stable;margin-top:22px}.portfolio-table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}.portfolio-table th,.portfolio-table td{padding:15px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.portfolio-table th:first-child{padding-left:0}.portfolio-table th:last-child,.portfolio-table td:last-child{padding-right:0}.portfolio-table thead th{font-size:12px;font-weight:normal;color:var(--muted)}.portfolio-table tbody th{font-family:var(--mono);font-weight:bold}.portfolio-table small{display:block;font:12px var(--body);color:var(--muted);margin-top:6px}.portfolio-table td{font-family:var(--mono);font-variant-numeric:tabular-nums}
.report-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:22px 0;border-bottom:1px solid var(--line)}.report-strip span{display:block;font:12px/1.4 var(--mono);color:var(--muted)}.report-strip strong{display:block;font-size:20px;margin-top:8px}.pool-disclosure{border-bottom:1px solid var(--line);padding:17px 0;font-size:14px;line-height:1.6}.pool-disclosure summary{cursor:pointer;font-size:14px}.pool-disclosure summary:hover{color:var(--accent)}.pool-disclosure p,.pool-disclosure li{color:var(--muted)}.business-subheading{font-size:16px;margin:24px 0 12px}.business-history{list-style:none;margin:0;padding:0;max-height:240px;overflow-y:auto;scrollbar-gutter:stable}.business-history li{padding:12px 4px;border-bottom:1px solid var(--line);font-size:14px;line-height:1.5}.business-history time{display:block;color:var(--muted);font:12px var(--mono);margin-bottom:6px}
.season-deadline{padding:12px;border:1px solid var(--line);border-radius:var(--radius);font-size:14px!important;color:var(--accent)!important}.season-goals{margin-top:16px}.season-goal{padding:18px 0;border-bottom:1px solid var(--line)}.season-goal>div{display:flex;align-items:center;justify-content:space-between;gap:16px}.season-goal h3{font-size:16px;margin:0}.season-goal span{font-size:14px;color:var(--muted)}.season-goal p{font-size:14px;color:var(--muted);margin:10px 0 13px}.season-goal progress{display:block;width:100%;height:6px;appearance:none;border:0;background:var(--line);border-radius:4px;overflow:hidden;margin-bottom:12px}.season-goal progress::-webkit-progress-bar{background:var(--line)}.season-goal progress::-webkit-progress-value{background:var(--green)}.season-goal progress::-moz-progress-bar{background:var(--green)}.season-plaque{display:flex;gap:16px;align-items:center;margin-top:25px;padding:18px;background:var(--panel-deep);border:1px solid var(--line);border-radius:var(--radius)}.season-plaque>span{font-size:38px;color:var(--accent)}.season-plaque strong{font:16px var(--display);letter-spacing:.6px}.season-plaque p{font-size:14px;color:var(--muted);line-height:1.5;margin:6px 0}.season-plaque small{display:block;font-size:12px;color:var(--green);margin-top:8px}
.paycheck-receipt{max-width:500px;border-top:4px solid var(--green);animation:receipt-in .3s ease-out}.paycheck-receipt h2{font-size:44px}.receipt-lines{border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);padding:8px 0;margin:20px 0}.receipt-lines>div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;font:18px var(--mono)}.receipt-lines dd{margin:0;color:var(--green)}.paycheck-receipt>.button{width:100%;margin-top:20px}.management-result{background:var(--panel-deep);border-left:2px solid var(--green);padding:12px;font-size:14px!important;line-height:1.6;color:var(--green)!important}.feedback{font-size:14px;line-height:1.5;max-width:min(560px,90vw);text-align:center;z-index:8}.modal-content.compact-modal>p:not(.modal-note):not(.modal-kicker){font-size:14px}.modal-content .rules{font-size:14px;line-height:1.6}
@keyframes receipt-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(max-height:800px) and (min-width:901px){.city-heading{top:96px}.city-heading h1{font-size:30px}.city-heading .eyebrow{margin-bottom:7px}.job-detail{bottom:145px;padding-top:12px}.job-detail h2{font-size:30px}.job-skill{margin-top:12px}.job-quote{margin:8px 0;font-size:12px}.job-description{display:none}.job-baseline{padding:10px 0}.city-tools{top:100px}.city-status{bottom:108px}.roster-card{height:78px}.roster{bottom:16px}#business-intro{top:195px}}
@media(max-width:1150px){#business-bar{padding:12px 22px;gap:10px}.credit-balance{min-width:130px}.payroll-summary>span{max-width:150px}.roster-photo{display:none}.roster-text strong{font-size:17px}.city-tools .world-hint{max-width:230px}#facility-heading{gap:12px;padding:15px}#facility-heading h1{font-size:24px}#facility-recenter{font-size:12px!important;padding:8px}#business-intro{right:22px}}
@media(max-width:900px){:root{--facility-panel-width:320px}.payroll-summary{display:none}#business-bar{justify-content:space-between;min-height:76px}.city-heading{top:101px}.city-heading h1{font-size:32px}.city-heading .eyebrow{font-size:12px;max-width:230px;line-height:1.5}.city-tools{top:100px}#facility-heading{top:77px;right:0;min-height:78px;padding-right:24px}body[data-mode=facility] #viewport{top:155px}#facility-panel{top:155px;padding:18px}.job-meta{font-size:13px}.roster-text em{font-size:12px}.roster-text small{font-size:12px}.roster-text strong{font-size:15px}.roster-card{height:100px}.city-status{bottom:125px}.job-detail{bottom:155px}#business-intro{width:275px;top:200px}.edition{display:none}#business-error{bottom:130px}}
@media(max-width:650px){#business-bar{min-height:105px;padding:10px 14px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.credit-balance{grid-column:1/2;grid-row:1;min-width:0}.credit-balance>span{font-size:10px}.credit-balance>strong{font-size:20px;margin-top:2px}.payroll-summary{grid-column:2/4;grid-row:1;display:flex;margin:0;align-items:flex-end;gap:3px}.payroll-summary strong{font-size:12px}.payroll-summary>span{max-width:none;font-size:10px}.payroll-summary span{font-size:10px}#business-bar .button,#business-bar .small-button{grid-row:2;font-size:12px;padding:8px 5px;min-height:39px;gap:6px}#collect-all{grid-column:1}#portfolio-button{grid-column:2}#season-button{grid-column:3}.city-heading{top:122px;left:16px}.city-heading h1{font-size:26px}.city-heading .eyebrow{display:none}.city-tools{top:122px;right:16px}.city-tools .small-button{font-size:0}.job-detail{bottom:128px;left:16px;right:16px;grid-template-columns:minmax(0,1fr) 158px;gap:5px 12px}.job-detail .button{font-size:14px}.job-detail h2{font-size:26px}.job-quote{font-size:12px;max-width:none;margin:5px 0}.job-description{display:none}.free-note{font-size:10px;margin-top:8px}.job-meta{font-size:12px}.city-status{bottom:105px;font-size:12px}.roster{left:12px;right:12px;bottom:12px;gap:5px}.roster-card{height:83px;padding:8px 5px}.roster-text{gap:5px}.roster-text small{font-size:12px}.roster-text strong{font-size:13px}.roster-text em{font-size:10px;line-height:1.3}.roster-photo{display:block}.roster-card[aria-pressed=true] .roster-photo{opacity:.2}#viewport{top:105px;bottom:266px}.nearby-work{bottom:272px;font-size:12px}#business-intro{top:190px;right:16px;left:16px;width:auto;max-width:360px;margin-left:auto;padding:20px}#business-intro>strong{font-size:24px}#business-error{bottom:128px;left:12px;right:12px;font-size:12px;padding:10px}
  body[data-mode=facility]{overflow-y:auto}body[data-mode=facility] #game-shell{height:auto;min-height:calc(100dvh - 61px);overflow:visible;padding-top:498px}body[data-mode=facility] #viewport{top:184px;right:0;bottom:auto;height:314px}#facility-heading{top:105px;left:0;right:0;min-height:79px;padding:12px 14px;gap:12px}#facility-heading h1{font-size:23px}#facility-heading .eyebrow{display:block;font-size:10px;margin-bottom:5px}#facility-heading>.small-button{min-height:42px;font-size:12px;padding:8px}#facility-recenter{margin-left:auto;max-width:75px}#facility-panel{position:relative;top:auto;right:auto;bottom:auto;width:auto;padding:24px 20px;overflow:visible;border-left:0;border-top:1px solid var(--line)}body[data-mode=facility] #business-error{position:relative;left:auto;right:auto;bottom:auto;margin:12px}body[data-mode=facility] #feedback{position:fixed;top:40%}.facility-payroll>strong{font-size:36px}.facility-production p,.upgrade>p,.management-card>p{font-size:16px}.facility-counts b{font-size:22px}.facility-counts span{font-size:14px}.facility-sections button{min-height:46px}.business-modal{width:100%;padding:30px 20px}.business-modal h2{font-size:34px}.business-modal .modal-note,.paycheck-receipt .modal-note{font-size:12px!important}.portfolio-table th,.portfolio-table td{padding:14px 8px}.report-strip{gap:12px;grid-template-columns:1fr 1fr}.report-strip>div:last-child{grid-column:1/-1}.report-strip strong{font-size:18px}.season-goal>div{gap:12px}.season-goal>div:first-child{align-items:flex-start}.season-goal>div:first-child>span{white-space:nowrap;font-size:12px}.season-plaque{padding:14px}.paycheck-receipt h2{font-size:38px}.receipt-lines>div{font-size:16px}.modal-content .rules{font-size:14px}body[data-mode=work] #viewport{top:71px;bottom:277px}
}
@media(max-height:640px) and (min-width:651px){.city-heading{display:none}.job-detail{bottom:135px}.job-detail .job-quote{display:none}.city-tools{top:96px}.city-status{bottom:103px}.roster{bottom:13px}#business-intro{top:160px}}
@media(prefers-reduced-motion:reduce){.paycheck-receipt{animation:none}.throughput>i{transition:none}}
@media(forced-colors:active){.throughput>i{background:Highlight}.season-goal progress{appearance:auto}.primary{border:1px solid ButtonText}.facility-sections button[aria-pressed=true]{outline:2px solid Highlight}}
.facility-production .capacity-readout{font:12px/1.6 var(--mono);color:var(--muted);margin:0 0 12px}
/* Facility catalog and reversible demo inspection. */
.upgrade-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.upgrade-title>strong{font-size:16px;line-height:1.3}.upgrade-title>span{font:12px/1.5 var(--mono);color:var(--muted);white-space:nowrap}.upgrade.signature-upgrade{padding-top:22px}.upgrade .upgrade-effects{font:12px/1.6 var(--mono);color:var(--accent);margin:10px 0 14px}.demo-lab-button{border-color:var(--green);color:var(--green)}
#facility-heading{gap:12px}#facility-heading>div{min-width:0}#facility-heading h1{font-size:24px}#facility-recenter{margin-left:auto}#facility-inspect{white-space:nowrap}body[data-mode=facility].room-inspect #viewport,body[data-mode=facility].room-inspect #facility-heading{right:0}#facility-inspect[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}
.demo-resource-line{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font:14px var(--mono);color:var(--muted)}.demo-resource-line strong{font-size:22px;color:var(--green)}.demo-actions{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.demo-actions article{padding:22px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column}.demo-actions h3,.demo-restore h3{font-size:16px;margin:0 0 8px}.demo-actions p,.demo-restore>p{font-size:14px;line-height:1.6;margin:0 0 15px}.demo-actions .button{margin-top:auto;font-size:14px}.demo-restore{padding-top:22px}.demo-restore>.button{font-size:14px;width:100%}.demo-restore .upgrade-help{margin-top:10px;font-size:12px;line-height:1.5}
@media(min-width:901px) and (max-width:1250px){#business-bar{gap:8px}.payroll-summary{max-width:140px}.payroll-summary strong{font-size:12px}.payroll-summary>span{font-size:10px}#business-bar .button,#business-bar .small-button{padding:10px;font-size:12px}#facility-heading h1{font-size:20px}#facility-heading .small-button{font-size:12px;padding:9px}#facility-heading .eyebrow{font-size:10px}}
@media(max-width:650px){#business-bar{grid-template-columns:1.3fr .9fr .85fr 1fr;min-height:115px;gap:8px 5px}.credit-balance{grid-column:1/3}.payroll-summary{grid-column:3/5;text-align:right}#business-bar .button,#business-bar .small-button{font-size:12px;line-height:1.2;min-height:42px}#demo-lab-button{grid-column:4;grid-row:2}#business-bar #season-button{gap:4px}#season-badge{font-size:10px}.city-heading,.city-tools{top:132px}body[data-mode=city] #viewport{top:115px}#facility-heading{top:115px;flex-wrap:wrap;min-height:106px;padding:12px 14px;gap:9px}#facility-heading>div{flex:1;min-width:190px}#facility-heading h1{font-size:22px}#facility-heading .eyebrow{font-size:10px}#facility-heading .small-button{min-height:36px}#facility-recenter{margin-left:0}#facility-inspect{margin-left:auto}body[data-mode=facility] #viewport{top:221px;height:314px}body[data-mode=facility] #game-shell{padding-top:535px}body[data-mode=facility].room-inspect #viewport{height:calc(100dvh - 282px);min-height:310px}body[data-mode=facility].room-inspect #game-shell{height:calc(100dvh - 61px);min-height:596px;padding-top:0}.demo-actions{grid-template-columns:1fr}.demo-resource-line{flex-wrap:wrap;gap:8px}.demo-actions article{padding:18px 0}.upgrade-title{gap:8px}}
