/* The factory is a playable diorama; the other management pages retain their layout. */
.sandbox-page{background:#f3f5ec}.sandbox-page main{max-width:1800px;padding:24px 28px}.sandbox-page .page-heading{margin-bottom:19px}.sandbox-page .page-heading h1{font-size:23px}.sandbox-page .page-heading .eyebrow{font-size:9px;margin-bottom:7px}.sandbox-page .page-heading p{font-size:11px;margin-top:5px}.sandbox-page .stats{margin-bottom:20px;gap:12px}.sandbox-page .stat-card{padding:14px 18px;align-items:center;gap:12px}.sandbox-page .stat-card strong{font-size:24px}.sandbox-page .stat-label{font-size:10px;margin-bottom:5px}.sandbox-page .stat-card small{font-size:9px;margin-top:6px}.sandbox-page .stat-icon{width:35px;height:35px}.sandbox{border-color:#dbe2d1;box-shadow:0 6px 24px #465d2910;border-radius:13px}.world-topline{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 19px;background:#fbfcf7;border-bottom:1px solid #dce4d2;position:relative;z-index:1}.world-place{display:flex;align-items:center;gap:9px;font-size:12px}.world-place>b{font-weight:500;color:#526649}.world-place>span:last-child{font-family:Arial,sans-serif;font-size:11px;letter-spacing:.5px;color:#99a58d;margin-left:7px}.world-tools{display:flex;align-items:center;gap:5px}.tool-button{height:30px;min-width:32px;padding:4px 9px;display:flex;align-items:center;justify-content:center;gap:6px;font-size:19px;line-height:1;background:transparent;border:1px solid transparent;border-radius:6px;color:#8b9d79}.tool-button>span{font-size:11px}.tool-button .icon{width:15px;height:15px}.tool-button.active{background:#e8efdc;color:#5b7846;border-color:#d7e2c7}.tool-separator{height:19px;width:1px;background:#dfe5d5;margin:0 5px}.map-stage{position:relative;height:clamp(440px,58vh,660px);overflow:hidden;background:#e4ecda}.sandbox .factory-scene{position:absolute;inset:0;width:100%;height:100%;min-height:0;padding:0;background:#e4ecda;display:block;touch-action:none;user-select:none;overflow:hidden}.sandbox .factory-scene>canvas{display:block;width:100%;height:100%;outline-offset:-4px}.sandbox .running{filter:none}.sandbox .placing{cursor:crosshair}.sandbox .panning{cursor:grab}.sandbox .dragging-map,.sandbox .dragging-map *{cursor:grabbing!important}.map-note{position:absolute;top:23px;left:23px;background:#fbfff1db;border:1px solid #f7ffeb;border-radius:9px;box-shadow:0 5px 18px #5a764509;padding:15px 18px;pointer-events:none;max-width:290px;backdrop-filter:blur(5px)}.note-eyebrow{display:block;font-family:Arial,sans-serif;letter-spacing:1.8px;color:#9aaa81;font-size:9px;margin-bottom:7px}.map-note>b{font-size:13px;font-weight:500;color:#638050;letter-spacing:.3px}.map-note>p{font-size:10px;color:#93a77e;margin-top:6px;line-height:1.8}.map-zoom{position:absolute;right:19px;bottom:51px;display:flex;flex-direction:column;align-items:center;border:1px solid #d7e0cb;border-radius:8px;background:#fbfff3ed;overflow:hidden;box-shadow:0 4px 10px #57663b0c}.map-zoom button{display:grid;place-items:center;width:35px;height:33px;border:0;background:transparent;color:#788e61;font-size:19px}.map-zoom button:last-child{border-top:1px solid #e2e8d8;font-size:24px}.map-zoom span{font-family:Arial,sans-serif;font-size:9px;color:#9baa86;padding:3px 0}.map-compass{position:absolute;right:28px;top:23px;font-size:30px;color:#95a883;text-align:center;line-height:.95;pointer-events:none}.map-compass span{display:block;font-family:Arial,sans-serif;font-size:9px;letter-spacing:2px;margin-bottom:5px}.map-status{position:absolute;bottom:0;left:0;right:0;padding:12px 20px;background:linear-gradient(transparent,#dae5ccd9);display:flex;align-items:center;gap:7px;pointer-events:none;font-size:10px;color:#778d63}.map-area{margin-left:auto;color:#93a77c;font-size:9px}.map-instructions{display:flex;justify-content:center;align-items:center;gap:27px;background:#f6f9ef;border-top:1px solid #dce5d0;border-bottom:1px solid #e1e8d7;padding:12px 15px;font-size:10px;color:#9ca98c}.sandbox .placement-notice{margin:0;min-height:67px;border-bottom:1px solid #dae4cb;padding:9px 19px;background:#f0f5e5}.sandbox .placement-notice>img{width:51px;height:46px;object-fit:contain}.sandbox .placement-notice>span{font-size:12px;line-height:1.5}.sandbox .placement-notice small{display:block;font-size:10px;color:#8fa27a;font-weight:400;margin-top:4px}.sandbox .placement-notice>.move-free{flex:0 0 auto;font-size:11px;color:#87a06b}.sandbox .placement-notice [aria-pressed="true"]{background:#dfeacc;border-color:#bcd0a5;color:#5b7b42}.build-dock{background:#fffef8;padding:18px 20px 19px}.build-dock-heading{display:flex;align-items:center;gap:20px;margin-bottom:14px}.build-dock-heading .eyebrow{font-size:8px;letter-spacing:1.7px;margin-bottom:5px;display:block}.build-dock-heading h2{font-size:14px;font-weight:600;display:flex;gap:10px;align-items:center}.build-dock-heading h2>span{font-family:Arial,sans-serif;font-size:8px;font-weight:400;color:#a4b096;letter-spacing:.5px;border:1px solid #e1e8d7;border-radius:3px;padding:3px 5px}.build-dock-heading>p{font-size:10px;color:#a0ac91;margin-left:10px;line-height:1.8}.build-dock-heading>.btn{margin-left:auto;font-size:10px;border:0;background:transparent;color:#8a9d75;padding:7px}.build-palette{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:11px}.build-card{position:relative;display:flex;flex-direction:column;align-items:stretch;text-align:left;padding:9px 13px 13px;background:#f6f8ef;border:1px solid #e2e8d6;border-radius:8px;min-width:0;overflow:hidden;transition:border-color .2s,background .2s,box-shadow .2s}.build-card:hover:not(:disabled){background:#eff5e3;border-color:#b7cc9b;filter:none;box-shadow:0 3px 9px #6d8a4614}.build-card.chosen{border:2px solid #91ad6d;background:#edf4df;padding:8px 12px 12px}.build-card>img{width:100%;height:88px;object-fit:contain;display:block;margin:5px 0 10px;transition:transform .2s;pointer-events:none}.build-card:hover>img{transform:translateY(-3px)}.build-card>strong{font-size:12px;font-weight:500;color:#53684b;line-height:1.35;overflow-wrap:break-word}.build-stage{position:absolute;top:10px;left:12px;display:flex;align-items:center;gap:4px;font-size:8px;color:#8fa07d;z-index:1}.build-stage:before{content:'';width:4px;height:4px;border-radius:50%;background:var(--stage-color)}.build-card-bottom{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-top:7px}.build-card-bottom>b{font-family:Arial,'Noto Sans JP',sans-serif;font-size:14px;color:#738d58;font-weight:500}.build-card-bottom>small{font-family:Arial,sans-serif;font-size:9px;color:#a3af93;white-space:nowrap}.build-owned{position:absolute;top:10px;right:11px;font-size:8px;color:#a3ae93}.build-card.unavailable{opacity:.6}.build-card.unavailable>img{filter:saturate(.4)}.build-card.unavailable .build-card-bottom>b{font-size:10px}.build-card.short-funds:not(.unavailable) .build-card-bottom>b{color:#b0986b}.sandbox-lower{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;margin-top:24px;align-items:start}.sandbox-side{display:flex;flex-direction:column;gap:22px;min-width:0}.sandbox-lower .production-panel{max-height:520px;overflow:auto}.sandbox-lower .next-step h2{font-size:17px}.sandbox-lower .next-step p{font-size:11px}.sandbox-lower .production-name b{font-size:11px}.sandbox-lower .production-job{padding:14px 20px}.sandbox-lower .progress-track{height:4px;margin-top:10px}.queue-summary{padding:18px;text-align:center;color:#9aaa85;font-size:11px;background:#f4f7ec}.catalog-machine-image{display:block;width:90%;height:90%;object-fit:contain;filter:drop-shadow(0 8px 6px #4b633820)}.equipment-art{height:205px}.equipment-art>.badge{z-index:1}.equipment-art .equipment-code{z-index:1}.sandbox-page footer{max-width:1800px}.sandbox-page #toast{bottom:22px}.sandbox .empty-production>.text-button{display:none}

@media(min-width:1700px){.map-stage{height:660px}.build-card>img{height:115px}.build-palette{gap:16px}.build-card>strong{font-size:14px}.build-card-bottom>b{font-size:17px}.sandbox-page .page-heading h1{font-size:25px}}
@media(max-width:1200px){.sandbox-page main{padding:24px 21px}.map-stage{height:470px}.build-card{padding:9px 9px 12px}.build-card>strong{font-size:10px}.build-card.chosen{padding:8px 8px 11px}.build-card>img{height:74px}.build-dock{padding:16px}.build-dock-heading>p{font-size:9px;max-width:250px}.sandbox-page .stat-card{padding:13px 12px}.sandbox-page .stat-card strong{font-size:23px}.sandbox-page .stat-icon{width:29px;height:30px}.sandbox-lower{grid-template-columns:minmax(0,1fr) 260px}.world-place>span:last-child{font-size:10px}}
@media(max-width:1000px){.map-stage{height:480px}.sandbox-page .stat-icon{display:none}.build-dock-heading>p{display:none}.build-card>img{height:81px}.build-card-bottom>b{font-size:13px}.build-stage,.build-owned{font-size:7px}.map-note{top:16px;left:16px;padding:13px 15px}.map-note>b{font-size:12px}.map-note>p{font-size:9px}.world-place{font-size:11px}.map-instructions{gap:15px;font-size:9px}}
@media(max-width:800px){.sandbox-page main{padding:20px 17px}.map-stage{height:430px}.build-palette{gap:8px}.build-card>img{height:69px}.build-card>strong{font-size:9px}.build-card-bottom{gap:3px}.build-card-bottom>b{font-size:12px}.build-card-bottom>small{font-size:8px}.build-owned{display:none}.build-stage{font-size:7px;left:9px}.build-dock{padding:14px 12px}.sandbox-lower{grid-template-columns:1fr}.sandbox-lower .next-step{display:none}.sandbox .placement-notice{padding:9px 12px;gap:7px}.sandbox .placement-notice>span{font-size:11px}.sandbox .placement-notice small{font-size:9px}.sandbox .placement-notice>img{width:40px}.sandbox .placement-notice>.btn{font-size:10px;padding:6px 8px}.world-topline{padding:10px 12px}.world-place{gap:6px}.world-place>span:last-child{margin-left:0}.tool-button{padding:4px 6px;min-width:27px}.tool-button>span{font-size:10px}}
@media(max-width:580px){.sandbox-page main{padding:21px 12px}.sandbox-page .page-heading h1{font-size:20px}.sandbox-page .page-heading p{font-size:10px;max-width:220px}.sandbox-page .page-heading>.btn{font-size:9px;margin-top:13px;padding:7px;gap:3px}.sandbox-page .page-heading .eyebrow{font-size:8px}.sandbox-page .stats{gap:8px;margin-bottom:16px}.sandbox-page .stat-card{padding:11px 13px;gap:12px}.sandbox-page .stat-icon{display:grid;width:29px;height:29px}.sandbox-page .stat-card strong{font-size:22px}.sandbox-page .stat-label{font-size:9px}.sandbox-page .stat-card small{font-size:8px}.sandbox{border-radius:10px}.map-stage{height:380px}.world-topline{padding:9px 10px;gap:5px}.world-place{font-size:10px}.world-place>span:last-child{display:none}.world-place>.tiny-dot{width:5px;height:5px}.world-tools{gap:1px}.tool-button{min-width:27px;height:27px;padding:4px 5px}.tool-button>span{display:none}.tool-button>.icon{width:13px;height:13px}.tool-separator{margin:0 3px;height:15px}.map-note{top:12px;left:11px;padding:11px 12px;max-width:220px}.note-eyebrow{font-size:7px;letter-spacing:1.4px}.map-note>b{font-size:11px}.map-note>p{font-size:8px;max-width:195px}.map-compass{right:15px;top:16px;font-size:25px}.map-compass span{font-size:8px}.map-zoom{right:11px;bottom:41px}.map-zoom button{width:30px;height:29px;font-size:17px}.map-zoom span{font-size:8px}.map-status{padding:11px 12px;font-size:8px}.map-area{font-size:8px}.map-instructions{justify-content:flex-start;gap:8px;padding:11px;font-size:8px;line-height:1.8}.map-instructions>span:nth-child(2){display:none}.map-instructions>span:last-child{margin-left:auto}.build-dock{padding:14px 10px 12px}.build-dock-heading{gap:8px;margin-bottom:11px}.build-dock-heading h2{font-size:13px;gap:7px}.build-dock-heading .eyebrow{font-size:7px;letter-spacing:1.2px}.build-dock-heading h2>span{font-size:7px}.build-dock-heading>.btn{font-size:9px;padding:4px}.build-dock-heading>.btn>.icon{width:11px}.build-palette{display:flex;gap:8px;overflow-x:auto;padding-bottom:5px;scrollbar-width:thin;scrollbar-color:#c5d4b1 transparent;scroll-snap-type:x proximity}.build-card{flex:0 0 122px;scroll-snap-align:start;padding:9px 11px 12px}.build-card.chosen{padding:8px 10px 11px}.build-card>img{height:84px}.build-card>strong{font-size:10px}.build-card-bottom>b{font-size:13px}.build-card-bottom>small{font-size:9px}.build-stage{font-size:7px;left:10px}.build-owned{display:block;font-size:7px;right:9px}.sandbox .placement-notice{gap:7px;padding:10px 12px;min-height:86px}.sandbox .placement-notice>img{display:none}.sandbox .placement-notice>span{flex-basis:100%;font-size:11px}.sandbox .placement-notice>span small{font-size:9px;margin-top:2px}.sandbox .placement-notice>.move-free{display:none}.sandbox .placement-notice .btn{font-size:10px;min-height:26px;padding:5px 9px}.sandbox-lower{margin-top:18px}.sandbox-page #toast{bottom:80px}.catalog-machine-image{max-width:270px}.equipment-art{height:230px}}
@media(min-width:581px){.map-stage{height:clamp(320px,calc(100dvh - 630px),560px)}}
.stage-panel{padding:21px 20px}.stage-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:11px}.stage-head .eyebrow{margin:0}.stage-count{font-size:10px;color:#94a086;background:#f1f3e9;border-radius:4px;padding:3px 7px;white-space:nowrap}.stage-count.ready{color:#55763f;background:#e6eed9}.stage-panel h2{font-size:16px;font-weight:600;letter-spacing:.4px;line-height:1.6}.stage-goals{list-style:none;margin:16px 0 0;padding:0}.stage-goals li{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:8px;margin:11px 0;font-size:11px;color:#94a086}.stage-goals li.done{color:#63804d}.goal-mark{display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:#f1f3e9;color:#aab59a;font-size:14px}.stage-goals li.done .goal-mark{background:#e2ecd2;color:#6b8a4e}.goal-mark .icon{width:12px;height:12px}.goal-text{min-width:0;line-height:1.7}.goal-count{font-family:Arial,sans-serif;font-size:10px;color:#a2ab93;white-space:nowrap}.stage-goals li.done .goal-count{color:#7d9463}.goal-bar{grid-column:2 / -1;display:block;height:3px;border-radius:3px;background:#eaeee0;overflow:hidden}.goal-bar>b{display:block;height:100%;border-radius:3px;background:#a6b98a}.stage-goals li.done .goal-bar>b{background:#7d9a5c}.stage-note{font-size:11px;line-height:1.9;color:#99a58b;margin:16px 0 14px}.stage-block{background:#f4f6ee;border:1px solid #e5e9dc;border-radius:8px;padding:15px 16px;margin:18px 0}.stage-block-head{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px}.stage-block-head>span{font-size:10px;color:#94a086}.stage-block .stage-goals{margin-top:10px}.stage-block .small{margin-top:12px}.stage-report .stage-goals{margin-top:18px}

.stage-head .eyebrow em{font-style:normal;color:#8a9a74;margin-left:9px;letter-spacing:.6px}

.settlement-row{display:flex;align-items:center;gap:14px;padding:11px 19px;border-bottom:1px solid #eceee3;font-size:12px}.settlement-row:last-child{border-bottom:0}.settlement-row>span:first-child{min-width:96px}.settlement-row>span:first-child>b{font-weight:500;color:#53684b}.settlement-row>span:first-child>small{display:block;font-size:9px;color:#b08a6b;margin-top:3px}.settlement-figures{display:flex;flex-wrap:wrap;gap:4px 14px;flex:1;min-width:0}.settlement-figures>i{font-style:normal;font-size:10px;color:#94a487;white-space:nowrap}.settlement-figures>i.loss{color:#b5674f}.settlement-row>strong{margin-left:auto;font-weight:500;color:#8a6a55;white-space:nowrap}@media(max-width:580px){.settlement-row{flex-wrap:wrap;gap:6px 10px;padding:10px 12px}.settlement-row>strong{margin-left:0}}
.event-row{display:flex;align-items:center;gap:12px;padding:11px 19px;border-bottom:1px solid #eceee3;font-size:12px}.event-row:last-child{border-bottom:0}.event-kind{flex:0 0 52px;font-size:9px;letter-spacing:.6px;color:#8a9a7d;border:1px solid #e2e8d6;border-radius:3px;padding:3px 0;text-align:center}.event-row.disaster .event-kind{color:#a86a5a;border-color:#e6d2c9}.event-row.market .event-kind{color:#9a8a55;border-color:#e8e2c6}.event-row.accident .event-kind{color:#8a6a92;border-color:#ded0e4}.event-row>span:nth-child(2){flex:1;min-width:0}.event-row>span:nth-child(2)>b{font-weight:500;color:#53684b}.event-row>span:nth-child(2)>small{display:block;font-size:10px;color:#96a489;margin-top:3px;line-height:1.6}.event-when{flex:0 0 auto;font-family:Arial,sans-serif;font-size:9px;color:#a8b39a}.event-row>strong{flex:0 0 auto;font-weight:500;font-size:11px;color:#8a6a55;white-space:nowrap;text-align:right;min-width:74px}@media(max-width:580px){.event-row{flex-wrap:wrap;gap:6px 10px;padding:10px 12px}.event-row>strong{min-width:0}}
.timing-track{position:relative;height:38px;margin:16px 0 18px;border-radius:8px;background:#eef2e4;border:1px solid #dde4d1;overflow:hidden}.timing-band{position:absolute;top:0;bottom:0;left:50%;width:var(--band);transform:translateX(-50%);background:#cfe3b4;border-left:1px solid #a8c489;border-right:1px solid #a8c489}.timing-marker{position:absolute;top:4px;bottom:4px;width:5px;margin-left:-2px;border-radius:3px;background:#4a6b3a;box-shadow:0 0 0 2px #ffffffcc}
.shift-panel{margin-top:22px;padding:18px 20px 19px;background:#fffef8}.shift-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin-top:12px}.shift-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:12px 14px;background:#f6f8ef;border:1px solid #e2e8d6;border-radius:8px;min-width:0}.shift-card>strong{font-size:13px;font-weight:500;color:#53684b}.shift-card>small{font-size:10px;color:#a0ac91;line-height:1.7}.shift-card>span{font-family:Arial,sans-serif;font-size:10px;color:#8a9d75;margin-top:2px}.shift-card>i{font-style:normal;font-size:9px;color:#b0986b}.shift-card.chosen{border:2px solid #91ad6d;background:#edf4df;padding:11px 13px}.shift-card.unavailable{opacity:.55}.shift-overtime{display:flex;align-items:center;gap:12px;margin-top:13px}.due{font-family:Arial,sans-serif;font-size:9px;color:#a3af93;border:1px solid #e6eadd;border-radius:3px;padding:2px 5px;margin-left:6px;white-space:nowrap}.due.soon{color:#b0862b;border-color:#ecdfbc}.due.over{color:#b5674f;border-color:#e8cfc6}@media(max-width:580px){.shift-grid{grid-template-columns:1fr}}
.order-due{font-family:Arial,sans-serif;font-size:9px;color:#a3af93;border:1px solid #e6eadd;border-radius:3px;padding:2px 5px;white-space:nowrap}.order-due.tight{color:#b5674f;border-color:#e8cfc6;background:#fbf2ef}
.maker-choice{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-bottom:13px}.maker-card{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;padding:9px 12px;background:#f6f8ef;border:1px solid #e2e8d6;border-left:4px solid var(--maker);border-radius:7px;min-width:0}.maker-card>strong{font-size:12px;font-weight:500;color:#53684b}.maker-card>small{font-size:9px;color:#a0ac91;line-height:1.6}.maker-card>span{font-family:Arial,sans-serif;font-size:9px;color:#8a9d75}.maker-card.chosen{border:2px solid #91ad6d;border-left:4px solid var(--maker);background:#edf4df;padding:8px 11px}@media(max-width:580px){.maker-choice{grid-template-columns:1fr}}
.process-load{padding:14px 20px;background:#f6f8f0;border-bottom:1px solid #e4eadb}
.process-load>strong{display:block;margin-bottom:9px;color:#667b59;font-size:11px;font-weight:600}
.process-load-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.process-load-row{display:flex;justify-content:space-between;gap:8px;padding:8px 10px;background:#fffefa;border:1px solid #e7ecdf;border-radius:6px;min-width:0;font-size:10px}
.process-load-row b{color:#5e7454;white-space:nowrap}
.process-load-row span{color:#889681;text-align:right}
@media(max-width:580px){.process-load-grid{grid-template-columns:1fr}}
.expansion-finances{display:grid;gap:8px;margin:0 0 20px}
.expansion-finances>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:12px;color:#85947b}
.expansion-finances strong{font-size:15px;font-weight:600;color:#59724f;text-align:right}
.goal-detail{grid-column:2 / -1;color:#899982;font-size:10px;line-height:1.6}
.client-progress{padding:18px 20px;margin-bottom:22px;background:#fffef9}
.client-progress .panel-heading{margin-bottom:8px}
.client-progress p{font-size:11px;line-height:1.8;color:#899982;margin:0 0 13px}
.client-sector-list{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}
.client-sector{display:flex;flex-direction:column;gap:3px;padding:9px 10px;min-width:0;border:1px solid #e5eadd;border-radius:6px;background:#f6f8f0}
.client-sector b{font-size:11px;color:#637755;font-weight:600}
.client-sector small{font-size:9px;color:#98a68a}
.client-sector.done{background:#eaf2df;border-color:#cddfba}
.client-sector.done b,.client-sector.done small{color:#5c7e42}
.client-sector.locked{opacity:.7}
@media(max-width:900px){.client-sector-list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:480px){.client-sector-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
