
:root{--bg:#07121b;--panel:#102331;--panel2:#142c3a;--stroke:#294554;--txt:#e6f3f3;--dim:#92aebb;--lime:#c9f682;--blue:#71d6eb;--amber:#ffc17a;--red:#ff8a89;--ok:#8ae7b7}
*{box-sizing:border-box}html,body{margin:0;height:100%}body{color:var(--txt);background:var(--bg);font:13px/1.4 Inter,system-ui,Arial,sans-serif}button,select,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{opacity:.42;cursor:not-allowed}h1,h2,h3,p{margin:0}button{border:1px solid var(--stroke);background:#1a3241;border-radius:9px;padding:9px 11px;font-weight:750}button:hover:not(:disabled){border-color:var(--lime)}button.primary{background:var(--lime);border-color:var(--lime);color:#1c3016}button.blue{background:#214756;border-color:#4c8192}button.selected{background:#c9f682;color:#14271c}button.small{font-size:11px;padding:6px 9px}button.warn{color:#ffd39e}button.bad{color:var(--red)}.eyebrow{color:var(--lime);font-size:10px;letter-spacing:1.7px;text-transform:uppercase;font-weight:900}.muted,.hint{color:var(--dim)}.hint{font-size:11px}.logo{font-size:20px;font-weight:900;letter-spacing:-.9px}.logo b{color:var(--lime)}.header{display:flex;justify-content:space-between;align-items:center;padding:13px 18px;background:#0d1d28;border-bottom:1px solid var(--stroke);gap:16px}.brand small{display:block;color:var(--dim);font-size:9px;letter-spacing:1.4px}.stats{display:flex;gap:18px;flex-wrap:wrap}.stat span{display:block;font-size:9px;color:var(--dim);letter-spacing:1.5px;font-weight:800}.stat strong{font-size:19px}.layout{display:grid;grid-template-columns:214px minmax(350px,1fr) 380px;height:calc(100vh - 74px);min-height:650px}.sidebar,.right{background:#0e202d;overflow:auto;border-right:1px solid var(--stroke);padding:13px}.right{border-right:0;border-left:1px solid var(--stroke)}.sidebar h2{font-size:18px;margin:6px 0}.sidebar .help{font-size:11px;color:var(--dim);margin:8px 0 14px}.tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.tool{padding:10px 5px;min-height:72px;display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center;background:#152b39}.tool .symbol{font-size:20px}.tool strong{font-size:11px}.tool small{font-size:10px;opacity:.72}.sub{margin-top:14px;background:#0c1b27;border:1px solid #25404e;border-radius:12px;padding:12px}.sub h3{font-size:13px;margin-bottom:9px}.sub .row{margin:6px 0}.mapcol{display:flex;flex-direction:column;min-width:0;overflow:hidden}.maphead{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding:12px 16px;border-bottom:1px solid var(--stroke);background:#112531;flex-wrap:wrap}.maphead h1{font-size:20px}.actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.scene{position:relative;flex:1;min-height:370px;background:#122936;overflow:hidden;cursor:crosshair;touch-action:none}.scene canvas#floor{display:block;width:100%;height:100%}.badge-map{position:absolute;top:10px;left:10px;background:#0d2530de;border:1px solid #3c6268;padding:7px 10px;border-radius:9px;pointer-events:none;font-size:11px}.maphelp{position:absolute;bottom:10px;left:10px;background:#091c2bdc;padding:7px 9px;border-radius:7px;color:#b3ccd4;pointer-events:none;font-size:10px;max-width:70%}.scene .minimap{position:absolute;right:10px;bottom:12px;background:#0a1d29e8;border:1px solid #325061;border-radius:9px;width:160px;height:115px}.bar{display:flex;gap:9px;align-items:center;flex-wrap:wrap;padding:11px 14px;border-top:1px solid var(--stroke);background:#101f2b}.bar .grow{flex:1;min-width:120px}.tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;position:sticky;top:-13px;background:#0e202d;padding:2px 0 10px;z-index:3}.tabs button{font-size:11px;padding:9px 3px}.tabs button.active{background:var(--lime);border-color:var(--lime);color:#132318}.pane{display:block}.pane.hidden{display:none}.panehead{margin:4px 0 13px}.panehead h2{font-size:20px}.panehead p{color:var(--dim);font-size:11px;margin-top:5px}.card{background:#142b39;border:1px solid #2a4755;border-radius:12px;padding:12px;margin-bottom:9px}.card h3{font-size:14px}.row{display:flex;justify-content:space-between;align-items:center;gap:8px}.row.wrap{flex-wrap:wrap}.item{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;border-bottom:1px solid #26414c;padding:8px 0}.item:last-child{border-bottom:0}.subtext{font-size:11px;color:var(--dim);margin-top:3px}.chip{font-size:10px;font-weight:800;border-radius:999px;padding:3px 7px;background:#204352;color:var(--blue);white-space:nowrap}.chip.good{background:#204134;color:var(--ok)}.chip.warn{background:#413322;color:var(--amber)}.chip.bad{background:#48242a;color:var(--red)}.flow{display:grid;grid-template-columns:repeat(5,1fr);gap:3px;margin:9px 0}.flow>div{background:#14303a;border:1px solid #28515a;text-align:center;padding:7px 3px;font-size:9px;border-radius:7px;color:#b0c8ce}.flow b{display:block;font-size:14px;color:var(--lime)}.split{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid #24404b}.split:last-child{border-bottom:0}.split strong{color:var(--txt)}.meter{height:7px;border-radius:999px;background:#1d3b47;overflow:hidden;margin-top:6px}.meter b{display:block;height:100%;background:var(--lime)}.address-list{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:10px 0}.address-list button{padding:7px 2px;font-size:10px}.address-list .full{border-color:#6c4949;color:#ffb0ab}.address-list .tall{border-color:#56749d;color:#a8d8ff}.boxline{padding:9px 0;border-bottom:1px solid #2a4651}.boxline:last-child{border:0}.boxline.active{background:#1c3b41;border-radius:6px;padding:9px}.quick{display:flex;gap:6px;flex-wrap:wrap;margin:9px 0}.note{color:#bed6de;background:#142e3a;border:1px solid #2c5058;border-radius:10px;padding:10px;margin-bottom:9px;font-size:11px}.note.warn{color:#ffdbac;background:#302718;border-color:#684b27}.event{padding:9px 0;border-bottom:1px solid #243c4b}.event strong{font-size:11px}.event p{font-size:11px;color:var(--dim);margin-top:4px}.feed{max-height:240px;overflow:auto}.toastbox{position:fixed;bottom:14px;right:14px;display:grid;gap:6px;z-index:30}.toast{background:#1e3c4a;padding:11px 14px;border:1px solid #6a94a2;border-radius:10px;max-width:340px;box-shadow:0 10px 24px #071017}.toast.bad{border-color:#c86666}.actions .small{padding:6px 8px}.foot{margin-top:14px;color:#7594a4;font-size:10px;line-height:1.65}.lineheight{line-height:1.6}
@media(max-width:1250px){.layout{grid-template-columns:178px minmax(310px,1fr) 335px}.sidebar,.right{padding:9px}.tools{gap:4px}}
@media(max-width:980px){.layout{height:auto;display:grid;grid-template-columns:minmax(0,1fr) 335px}.sidebar{grid-column:1/-1}.tools{grid-template-columns:repeat(6,minmax(90px,1fr))}.mapcol{min-height:580px}.scene{min-height:460px}.right{max-height:none}.stats{gap:10px}}
@media(max-width:730px){.header{align-items:flex-start;flex-wrap:wrap}.layout{display:flex;flex-direction:column}.sidebar{order:2}.mapcol{order:1;min-height:510px}.right{order:3}.scene{min-height:380px}.tools{grid-template-columns:repeat(4,1fr)}.minimap{width:125px;height:90px}.maphead{padding:10px}.maphead h1{font-size:18px}}


.cachepanel{background:linear-gradient(130deg,#24404a,#182a32);border:1px solid #a2c973;border-radius:10px;padding:9px;margin:10px 0;display:flex;flex-direction:column;gap:3px}
.cachepanel b{color:#dcf7a9;letter-spacing:.5px;font-size:11px}.cachepanel span{font-weight:850}.cachepanel small{color:#a9c1c8}

.alloc-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.alloc{background:#0b2330;border:1px solid #2c4c5b;border-radius:10px;padding:10px}.alloc label{font-weight:850;font-size:12px;display:block;margin-bottom:6px}.alloc select{display:block;width:100%;background:#172f3d;border:1px solid #355b69;border-radius:7px;padding:8px;color:#eaf5f6}.alloc p{font-size:10px;color:#93acba;margin:6px 0 0}.dockstaff{display:grid;gap:7px}.dockstaff-row{padding:8px 9px;border:1px solid #355462;border-radius:9px;background:#0e2937;display:flex;justify-content:space-between;gap:9px;align-items:center}.dockstaff-row .unit{color:#cde6e5}.taskrow{border:1px solid #294956;background:#102837;border-radius:10px;padding:10px;margin:7px 0}.taskrow .tasktitle{display:flex;gap:8px;justify-content:space-between;align-items:center}.taskrow .taskdesc{margin-top:5px;font-size:11px;color:#aec4cd;overflow-wrap:anywhere}.taskrow.waiting{border-color:#976a33}.taskrow.blocked{border-color:#a95555}.pill{border-radius:999px;padding:2px 6px;font-size:10px;font-weight:800;background:#254656;color:#bcf0ff}

.qty-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 7px;border-radius:7px;font-size:11px;font-weight:900;color:#091820;white-space:nowrap}
.qty-4{background:#8de8a4}.qty-3{background:#71c5ff}.qty-2{background:#ffdb72}.qty-1{background:#ff7775}.qty-0{background:#556877;color:#fff}.qty-unknown{background:#14171c;color:#f7f8f9;border:1px solid #82939d}.stock-colors{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0 12px}.stock-colors .qty-pill{padding:6px 8px}.operation-progress{height:6px;background:#203844;border-radius:8px;margin-top:7px;overflow:hidden}.operation-progress b{display:block;background:#bdec83;height:100%}
.qty-dot{width:8px;height:8px;display:inline-block;border-radius:2px;margin:1px}

/* v6.5.2 — always-visible, semantically distinct physical vs reserved capacity */
.flow-stats{display:flex;align-items:center;flex-wrap:wrap;gap:7px;padding:8px 10px;background:#112b3b;border-top:1px solid #375466;border-bottom:1px solid #375466;color:#c6dbe3;font-size:10px;line-height:1.35}
.flow-stats span{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border:1px solid #365263;border-radius:7px;background:#10212d;white-space:nowrap}
.flow-stats b{font-size:13px;color:#d5f68b}
.flow-stats span.amber b{color:#ffd18a}
@media(max-width:700px){.flow-stats{font-size:9px;padding:5px}.flow-stats span{padding:3px 5px}.flow-stats b{font-size:12px}}

/* v6.5.4 - exact in-game picking and packing deadlines */
.deadline-setup{margin-top:10px;padding:11px;border:1px solid #3d6173;border-radius:10px;background:#102d38}
.deadline-title{color:var(--lime);font-weight:850;margin-bottom:8px;font-size:12px}
.deadline-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.deadline-fields label{font-size:11px;color:#bfd6e1;font-weight:700}
.deadline-fields select{display:block;width:100%;margin-top:5px;padding:9px;background:#153645;color:#eaf5f6;border:1px solid #466776;border-radius:7px}
.deadline-preview{margin-top:9px;padding:9px;border-radius:8px;color:#e4f6d6;background:#172f32;border:1px solid #396c65;font-size:12px;line-height:1.6}
.deadline-milestones{display:grid;gap:6px;margin-top:9px}
.deadline-stage{display:flex;flex-direction:column;gap:3px;padding:8px 9px;border-radius:8px;border:1px solid #475866;background:#102b3c}
.deadline-stage b{font-size:11px}.deadline-stage span{font-size:11px}.deadline-stage small{color:#a9bec8}
.deadline-stage.done{border-color:#417858;background:#15332c}.deadline-stage.done b{color:#9decba}
.deadline-stage.late{border-color:#a95454;background:#39232b}.deadline-stage.late b{color:#ff9e98}
.deadline-stage.pending{border-color:#866e3b}.deadline-stage.pending b{color:#ffd490}
@media(max-width:360px){.deadline-fields{grid-template-columns:1fr}}

/* Dockline v6.6: unified operations workbench. All existing gameplay IDs preserved. */
:root{--bg:#08121b;--panel:#102330;--panel2:#162d3b;--stroke:#2b4554;--txt:#edf6f6;--dim:#adc1cc;--lime:#c8ef76;--shadow:0 12px 30px rgba(0,0,0,.17)}
body{font-size:14px;line-height:1.48;letter-spacing:0;-webkit-font-smoothing:antialiased}
button,input,select,summary{font-size:13px}button{min-height:38px;border-radius:10px;transition:border-color .14s,background .14s,filter .14s}button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #d0f68b;outline-offset:2px}button:hover:not(:disabled){filter:brightness(1.12)}
button.small{font-size:12px;min-height:33px;padding:7px 10px}button.primary{background:#c8ef76;color:#18271b}button.selected{background:#c8ef76;color:#18271b}
.header{min-height:88px;height:auto;display:grid;grid-template-columns:minmax(168px,205px) minmax(0,1fr) auto;gap:24px;padding:13px 22px;position:relative;z-index:10;box-shadow:0 5px 20px #0002}
.brand .logo{font-size:21px;line-height:1.13;letter-spacing:-.7px}.brand small{margin-top:6px;letter-spacing:1.2px}
.header-right{display:flex;align-items:center;gap:10px}.operating-status{padding:8px 11px;color:#f0c78e;border:1px solid #6b573b;background:#322c23;border-radius:9px;white-space:nowrap;font-weight:800;font-size:12px}.operating-status.live{background:#1c3a2a;border-color:#42674b;color:#bff1ae}
.help-button{border:1px solid #527083;background:#1c3645;white-space:nowrap}.stats{display:grid;grid-template-columns:repeat(9,minmax(72px,1fr));gap:4px;align-items:center;min-width:0}
.stat{padding:4px 9px;border-left:1px solid #2f4655;min-width:0}.stat span{font-size:9px;letter-spacing:.75px;line-height:1.3;white-space:normal}.stat strong{display:block;font-size:clamp(15px,1.38vw,20px);margin-top:3px;white-space:nowrap;letter-spacing:-.45px;overflow:hidden;text-overflow:ellipsis}.stat.primary-stat strong{color:#e5f4cf}
.layout{grid-template-columns:minmax(250px,262px) minmax(360px,1fr) minmax(370px,415px);height:calc(100dvh - 88px);min-height:620px;transition:grid-template-columns .22s ease}
.sidebar,.right{scrollbar-color:#496a79 transparent;scrollbar-width:thin;padding:18px 15px;background:#0c1e2b}.sidebar{border-right:1px solid #294452}.sidebar h2,.panehead h2{font-size:21px;line-height:1.18;margin:4px 0 6px}.builder-title{margin-bottom:12px}.tool-filters{margin:12px 0}.tool-filters label,.panel-tools label{display:block;color:#b3c9d2;font-size:11px;font-weight:800;margin-bottom:6px}.tool-filters input,.panel-tools input{border:1px solid #456374;border-radius:10px;background:#152e3c;padding:11px 12px;width:100%;color:#fff;outline:none;min-height:42px}
.tool-filters input:focus,.panel-tools input:focus{border-color:var(--lime)}.help-accordion{border:1px solid #365565;border-radius:10px;background:#102a39;margin:10px 0;padding:10px 12px;color:#c9dce2}.help-accordion summary,.section-guide summary{cursor:pointer;color:#cbebdd;font-size:12px;font-weight:800}.help-accordion[open] summary,.section-guide[open] summary{margin-bottom:7px}.help-accordion p,.section-guide p{font-size:12px;line-height:1.58;color:#bbd0da}
.tools{display:block}.tool-group{margin:16px 0}.tool-group h3{font-size:11px;text-transform:uppercase;letter-spacing:1.3px;font-weight:850;color:#92b1be;padding:0 2px 8px}.tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tool{min-height:83px;padding:11px 6px;gap:4px;border-radius:12px;border:1px solid #2b4b59;background:#142c3a;justify-content:center}.tool .symbol{font-size:22px;line-height:1}.tool strong{font-size:12px;line-height:1.25}.tool small{font-size:11px;opacity:.85}.tool.selected{box-shadow:0 0 0 2px #aed26d45}.tool:hover{transform:translateY(-1px)}
.sidebar .sub{background:#112734;border-radius:13px;padding:13px;border:1px solid #344d60;margin:13px 0}.sidebar .sub h3{font-size:14px}.sidebar .foot{font-size:12px;line-height:1.6}
.mapcol{background:#0d2331}.maphead{padding:14px 20px;align-items:center;flex-wrap:nowrap}.maphead h1{font-size:23px;letter-spacing:-.45px;margin:0 0 3px}.maphead .hint{font-size:12px;line-height:1.4}.maphead .eyebrow{font-size:10px}.maphead .actions{justify-content:flex-end}.chip{font-size:10px;padding:5px 9px;letter-spacing:.15px}.builder-toggle{display:none}
.health-row{padding:8px 18px;background:#122c39;border-bottom:1px solid #2c4d5a;display:flex;justify-content:space-between;align-items:center;gap:10px}.health-pill{font-size:12px;font-weight:800;color:#c9efd0}.health-pill.warning{color:#ffd68b}.health-pill.critical{color:#ffacab}.quick-link{border:0;background:none;color:#b9e8f2;min-height:28px;padding:3px 7px;text-decoration:underline;text-underline-offset:3px}
.workflow-nav{display:flex;justify-content:space-between;background:#0f2634;border-bottom:1px solid #345262;padding:7px 12px;gap:5px;overflow-x:auto;scrollbar-width:thin}.workflow-step{flex:1 0 auto;white-space:nowrap;color:#bacdd5;min-height:34px;background:transparent;border:1px solid transparent;padding:7px 8px;font-size:11px;font-weight:800}.workflow-step.active{background:#23463c;border:1px solid #4b7859;color:#c5f4bb}.workflow-step:hover{background:#223d4a}
.flow-stats{gap:6px;padding:9px 14px;background:#132e3e}.flow-stats span{padding:5px 8px;font-size:10px;background:#0d2431;border:1px solid #365468}.flow-stats b{font-size:14px}.flow-stats span:first-child{background:#1d3a2b;border-color:#4f6c4a}.scene{min-height:400px;background:radial-gradient(ellipse at center,#1b3646,#0c2330);cursor:crosshair}.badge-map{font-size:12px;box-shadow:var(--shadow)}.map-legend{position:absolute;top:55px;left:12px;background:#0d2530ed;border:1px solid #3c6268;padding:8px 10px;border-radius:9px;pointer-events:none;font-size:11px;max-width:min(75%,420px);line-height:2}.maphelp{font-size:11px;padding:9px 12px;max-width:55%;line-height:1.35;border:1px solid #243f50;border-radius:9px}.scene .minimap{box-shadow:var(--shadow);width:160px;height:115px}
.bar{padding:11px 15px;gap:9px}.playback-controls,.save-controls{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.playback-controls{flex:0 1 auto}.save-controls{margin-left:auto}.bar .grow{flex:1;min-width:155px;font-size:11px}.bar button{white-space:nowrap}.bar .primary{min-width:142px}
.right{background:#0c1e2b;padding:15px 15px 26px}.tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;background:#0c1e2b;top:-15px;padding:1px 0 9px}.tabs button{font-size:12px;font-weight:800;padding:9px 2px;min-height:43px}.tabs button[aria-selected="true"]{background:#c8ef76;color:#102316}.context-summary{padding:12px 14px;margin:3px 0 11px;border:1px solid #395c6b;border-left:3px solid #c8ef76;background:#153140;border-radius:10px;font-size:12px;line-height:1.5;color:#d9e7ee}.context-summary strong{display:block;margin-bottom:3px;font-size:13px;color:#e9f8e8}.panel-tools{margin-bottom:14px}.panehead{margin:6px 0 14px}.panehead p{color:#bcd0d9;font-size:13px;line-height:1.5;margin-top:7px}.panehead .eyebrow{font-size:10px}.section-guide{margin-top:10px;padding:9px 11px;border:1px solid #344f60;background:#142c3a;border-radius:9px}.section-guide summary{font-size:12px}
.card{border:1px solid #355363;background:#142b39;border-radius:14px;padding:15px;margin-bottom:13px;overflow-wrap:anywhere;box-shadow:0 3px 10px #0001}.card h3{font-size:15px;line-height:1.35;margin-bottom:4px}.card .subtext,.subtext,.hint{font-size:12px;line-height:1.48}.note{font-size:12px;line-height:1.55;padding:12px;border-radius:11px;margin-bottom:10px}.item{padding:10px 0}.item,.split,.dockstaff-row{min-width:0}.split{font-size:12px;padding:9px 0}.flow{gap:5px}.flow>div{font-size:10px;padding:9px 3px}.flow b{font-size:16px}.quick button{white-space:normal}.alloc-grid{gap:9px}.alloc{padding:12px}.alloc label{font-size:13px}.alloc p{font-size:11px}.address-list{gap:7px}.address-list button{min-height:48px;font-size:11px}.taskrow{padding:13px;margin:9px 0}.taskrow .taskdesc{font-size:12px;line-height:1.5}.taskrow .tasktitle{font-size:13px}.pill{font-size:11px;padding:4px 7px}.feed{max-height:360px}.event strong,.event p{font-size:12px}.deadline-fields label,.deadline-stage span,.deadline-stage small{font-size:12px}.deadline-stage{padding:10px}.panel-empty{color:#a9beca;padding:14px;text-align:center;border:1px dashed #426073;border-radius:10px}
/* Collapse the construction area on wide screens for more map space */
body.builder-hidden .layout{grid-template-columns:0 minmax(420px,1fr) minmax(370px,415px)}body.builder-hidden .sidebar{visibility:hidden;overflow:hidden;padding:0;border:0}body.builder-hidden .builder-toggle{display:block}
.game-guide{background:#112735;color:var(--txt);border:1px solid #4c6877;border-radius:17px;padding:24px;max-width:min(620px,94vw);max-height:85vh;overflow:auto;box-shadow:0 20px 70px #000a}.game-guide::backdrop{background:#031018bb}.guide-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.guide-head h2{font-size:23px}.guide-head button{min-width:44px;font-size:16px}.guide-steps{display:grid;gap:12px}.guide-step{display:flex;gap:13px;border:1px solid #2d4f5e;border-radius:12px;padding:12px;background:#172e3c}.guide-step> b{display:grid;place-items:center;background:#c8ef76;color:#162719;width:30px;height:30px;border-radius:9px;flex:none}.guide-step strong{display:block;font-size:14px}.guide-step p{font-size:12px;color:#b9ced8;margin-top:5px}.key-help{color:#b8ccd8;border-top:1px solid #2d4b5a;margin-top:17px;padding-top:12px;font-size:12px}
@media(max-width:1500px){.header{grid-template-columns:185px 1fr auto;gap:12px;padding:12px}.stats{gap:0}.stat{padding:4px 7px}.stat span{font-size:8px}.stat strong{font-size:16px}.layout{grid-template-columns:235px minmax(335px,1fr) 370px}.sidebar,.right{padding:13px}.maphead .actions{gap:3px}.chip{font-size:9px;padding:4px 6px}.workflow-step{font-size:10px;padding:5px}.bar{gap:5px}.bar button{padding:8px;font-size:11px}}
@media(max-width:1160px){.header{grid-template-columns:1fr auto}.header .stats{grid-column:1 / -1;grid-row:2;display:flex;overflow-x:auto;gap:5px;padding:5px 0}.header-right{grid-column:2;grid-row:1}.stat{flex:0 0 auto;min-width:85px;padding:4px 12px}.layout{height:auto;min-height:0;grid-template-columns:minmax(0,1fr) minmax(340px,400px)}.sidebar{grid-column:1 / -1;grid-row:2;border-top:1px solid var(--stroke)}.mapcol{grid-column:1;grid-row:1;min-height:690px}.right{grid-column:2;grid-row:1;max-height:calc(100dvh - 120px)}.builder-toggle{display:block}.tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.tool-group{margin:0}.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar .sub{max-width:900px}.sidebar .builder-title{display:flex;gap:10px;align-items:center}.sidebar .builder-title .eyebrow{display:none}body.builder-hidden .layout{grid-template-columns:minmax(0,1fr) minmax(340px,400px)}body.builder-hidden .sidebar{display:none}.workflow-step{font-size:10px}.bar{gap:6px}.bar .grow{order:3;flex-basis:100%}}
@media(max-width:830px){.header{gap:8px}.header .stats{grid-column:1/-1}.layout,.layout:not(#nope){display:flex;flex-direction:column}.mapcol{order:1;min-height:600px;overflow:visible}.right{order:2;max-height:none;border-left:0;border-top:1px solid var(--stroke);padding:14px}.sidebar{order:3}.right .tabs{position:sticky;top:0;z-index:11}.scene{min-height:420px}.maphead{flex-wrap:wrap}.maphead .actions{justify-content:flex-start}.workflow-nav{flex-wrap:nowrap}.workflow-step{min-width:92px}.bar{padding:10px}.bar .grow{order:3}.save-controls{margin-left:0}.tools{grid-template-columns:repeat(2,minmax(0,1fr))}body.builder-hidden .sidebar{display:none}.flow-stats{max-height:96px;overflow-y:auto}}
@media(max-width:520px){body{font-size:13px}.header{padding:10px}.logo{font-size:18px}.operating-status{font-size:10px}.help-button{padding:6px 9px}.header-right{gap:5px}.stat strong{font-size:16px}.mapcol{min-height:490px}.maphead{padding:10px 12px}.maphead h1{font-size:19px}.maphead .hint{font-size:11px}.maphead .actions{display:none}.health-row{padding:7px 10px}.scene{min-height:345px}.scene .minimap{width:100px;height:76px}.maphelp{max-width:65%;font-size:9px}.map-legend{font-size:9px;max-width:72%;line-height:1.4}.qty-pill{padding:2px 5px;font-size:10px}.flow-stats{max-height:83px}.playback-controls{width:100%}.playback-controls #run{flex:1}.save-controls{width:100%;margin:0}.bar .grow{order:0;flex:0 0 100%;max-width:100%;overflow-wrap:anywhere}.right{padding:11px}.tabs button{font-size:11px;min-height:41px}.card{padding:12px}.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tools{display:block}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
[hidden]{display:none!important}
.filter-result{font-size:11px;color:#b6d69f;margin:5px 0 0}.tool-group[hidden]{display:none!important}
.receiving-rules{background:#122a38;border:1px solid #3a5869;border-radius:10px;margin:8px 0 16px;padding:11px 12px}.receiving-rules>summary{font-weight:800;font-size:12px;cursor:pointer;color:#c8e4ed}.receiving-rules[open]>summary{margin-bottom:12px}.receiving-rules .note{font-size:12px;margin-bottom:8px}
/* Compact cards show decisions first, explanations on demand. */
#receivePane [data-dock]{border-left:3px solid #9fdab4}
#receivePane .card[data-dock]>.row>h3{font-size:16px}
#inboundOffers .item>div{min-width:0}
#inboundOffers button[data-truck]{min-width:71px;flex-shrink:0}
@media(max-width:830px){.sidebar{position:fixed;left:0;top:0;bottom:0;width:min(365px,95vw);z-index:150;overflow:auto;box-shadow:24px 0 80px #0009;border-right:2px solid #567486;padding:22px 16px}.sidebar .builder-title{padding-right:80px}.builder-toggle{display:block}.builder-title>.drawer-close{position:absolute;top:15px;right:15px;width:auto;font-size:12px}.tools{display:block}body.builder-hidden .sidebar{display:none}.sidebar:not([hidden]){visibility:visible}}
@media(min-width:1161px){.builder-toggle{display:block;white-space:nowrap;padding:7px 10px;min-height:35px;font-size:11px}}

/* v6.7 station-bound hiring and simultaneous order work */
.station-hire-row{border:1px solid #355366;background:#122c3d;border-radius:12px;padding:12px;margin:10px 0;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
.station-hire-row .quick{display:flex;flex-wrap:wrap;gap:6px}.station-hiring{border-color:#6b9065}
.station-hiring h3{color:#d8f58a}

/* Region/world map — independently navigable from live warehouse */
.world-open-button{background:#bde887;color:#153021;border-color:#bde887;white-space:nowrap;font-size:12px}
.world-overlay{position:fixed;inset:0;z-index:90;background:#031017e8;padding:14px;display:flex;justify-content:center;align-items:center}
.world-overlay.hidden{display:none}
.world-window{width:min(1580px,100%);height:min(960px,97vh);display:flex;flex-direction:column;min-height:500px;background:#0d202b;border:1px solid #49737f;box-shadow:0 30px 90px #020b12;border-radius:16px;overflow:hidden}
.world-head{padding:15px 20px;border-bottom:1px solid #395461;display:flex;gap:20px;align-items:center;justify-content:space-between}
.world-head h2{font-size:23px;margin:3px 0}.world-head p{font-size:12px;color:#acc4ce}.world-close{background:#274455}
.world-main{display:grid;grid-template-columns:minmax(0,1fr) 350px;flex:1;min-height:0}
.world-map-panel{display:flex;flex-direction:column;min-width:0;min-height:0;background:#102b32}
.world-topline{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:9px 15px;border-bottom:1px solid #365565;font-weight:700;font-size:12px}
.world-topline .quick{margin:0;flex-wrap:nowrap}.world-topline button{padding:6px 12px}
#worldCanvas{width:100%;height:100%;min-height:250px;flex:1;display:block;touch-action:none;cursor:crosshair}
.world-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:11px;padding:8px 14px;background:#102631;border-top:1px solid #365665}
.world-legend span:nth-child(1){color:#bdec88}.world-legend span:nth-child(2){color:#70d3e8}.world-legend span:nth-child(3){color:#f5cb8c}.world-legend span:nth-child(5){color:#8cedb0}
.world-hint{padding:7px 14px;font-size:11px;color:#b1c5d1}
.world-controls{border-left:1px solid #395461;background:#10222e;overflow:auto;min-height:0;padding:14px}
.world-tabs{display:flex;gap:5px;margin-bottom:13px}.world-tabs button{font-size:11px;padding:8px 7px;flex:1}
.world-tabs button.selected{background:#c9f682;color:#17331c}
.world-tab-content .world-card{background:#153342;border:1px solid #345a66;border-radius:11px;padding:12px;margin-bottom:10px}
.world-card h3{font-size:14px;margin-bottom:7px}.world-card p{color:#bdd1da;font-size:12px;line-height:1.6;margin:4px 0}
.world-card label{display:block;font-size:11px;font-weight:800;margin:9px 0 3px;color:#bfd8e2}
.world-card select,.world-card input{width:100%;padding:9px;background:#0e2634;border:1px solid #426275;border-radius:8px;color:#e6f3f3}
.world-card button{margin-top:9px;width:100%;text-align:center}.world-card button:disabled{opacity:.5}
.world-card .muted{font-size:11px;color:#93b0c0}
.world-bar{display:flex;justify-content:space-between;gap:8px;font-size:12px;margin:7px 0;padding:5px 0;border-bottom:1px solid #31515a}
.world-tag{padding:3px 6px;border:1px solid #426b64;border-radius:6px;background:#173d3c;font-size:10px;font-weight:750}
@media(max-width:850px){.world-overlay{padding:5px}.world-main{grid-template-columns:minmax(0,1fr)}.world-window{height:99vh}.world-controls{border-left:0;border-top:1px solid #395461;max-height:45vh}.world-map-panel{min-height:300px}.world-head{padding:10px 12px}.world-head h2{font-size:17px}.world-head p{display:none}}

/* v6.9.0 — compact game-first mobile presentation; canvas only has touch-action:none. */
:root { --dockline-vh:100dvh; --tg-game-background:#07121b; }
html,body {max-width:100%;overflow-x:hidden;}
#floor,#worldCanvas{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;}
.mobile-nav,.mobile-map-controls,.mobile-sheet-header,#worldPanelToggle{display:none;}
@media (max-width:830px), (max-height:550px) and (pointer:coarse) {
 html,body{min-width:0;overscroll-behavior-x:none;}
 body{padding-bottom:calc(65px + env(safe-area-inset-bottom,0px));}
 .header{padding:8px 10px;gap:6px;display:flex;flex-wrap:wrap;align-items:center;position:relative;z-index:2;}
 .brand .logo{font-size:16px}.brand small{font-size:8px}
 .header .stats{display:flex;order:3;width:100%;overflow-x:auto;gap:5px;padding:0 0 3px;scrollbar-width:none}
 .header .stats::-webkit-scrollbar{display:none}
 .header .stat{padding:4px 8px;min-width:auto;flex:0 0 auto;}
 .header .stat strong{font-size:14px}
 .header .stat span{font-size:9px;letter-spacing:.3px}
 .header .stat:not(:nth-child(1)):not(:nth-child(3)):not(:nth-child(4)){display:none}
 .header-right{margin-left:auto}.header-right .operating-status{font-size:10px}
 .layout,.layout:not(#nope){display:flex;flex-direction:column;height:auto;min-height:0;}
 .mapcol{order:1;min-height:0;height:calc(var(--dockline-vh) - 181px - env(safe-area-inset-bottom,0px));max-height:calc(var(--dockline-vh) - 125px);overflow:hidden;}
 .maphead{padding:7px 10px;gap:3px}.maphead h1{font-size:15px}.maphead .hint{display:none}.maphead .actions .chip{display:none}
 .maphead .eyebrow{font-size:8px}.maphead .actions{margin-left:auto}.maphead .world-open-button{font-size:11px;padding:7px}
 .builder-toggle{display:none!important}.health-row,.workflow-nav,.flow-stats{display:none!important}
 .scene{min-height:180px;flex:1;overflow:hidden;position:relative}
 .scene canvas#floor{width:100%;height:100%;display:block}
 .maphelp{bottom:6px;left:6px;max-width:calc(100% - 130px);font-size:9px}
 .map-legend{top:6px;left:6px;max-width:calc(100% - 100px);font-size:10px;pointer-events:none}
 .minimap{width:110px!important;height:80px!important;right:6px!important;bottom:6px!important}
 .bar{padding:7px 8px;gap:5px;flex-shrink:0}.bar .playback-controls{display:none}
 .bar .grow{flex:1;order:0;font-size:10px}.bar .save-controls{display:none}
 .mobile-map-controls{position:absolute;right:7px;top:8px;z-index:5;display:flex;flex-direction:column;gap:7px}
 .mobile-map-controls button{min-width:45px;min-height:45px;padding:8px;background:#102733e8;border:1px solid #628493;color:#e8f7ef;font-size:13px;touch-action:manipulation}
 .mobile-map-controls button:first-child{background:#c9f682;color:#132718}
 .mobile-nav{display:grid;grid-template-columns:repeat(5,1fr);align-items:stretch;position:fixed;z-index:89;left:0;right:0;bottom:0;height:calc(60px + env(safe-area-inset-bottom,0px));padding:3px 4px env(safe-area-inset-bottom,0px);background:#0d2230;border-top:1px solid #386070;box-shadow:0 -4px 18px #030d18bf}
 .mobile-nav button{border:0;background:transparent;color:#c3d9df;font-weight:700;padding:5px 1px;font-size:10px;border-radius:9px;min-width:0;min-height:48px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px}
 .mobile-nav button .nav-icon{font-size:19px;line-height:19px}
 .mobile-nav button.active{background:#28515b;color:#d8fba4}
 .sidebar{position:fixed;left:0;top:0;bottom:calc(60px + env(safe-area-inset-bottom,0px));width:min(390px,100vw);z-index:145;overflow-y:auto;padding:18px 14px calc(30px + env(safe-area-inset-bottom,0px));border-right:1px solid #608c98;box-shadow:25px 0 85px #000b;visibility:visible;}
 .sidebar .builder-title{padding:6px 90px 10px 0}.sidebar .tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .right{display:none;position:fixed;z-index:130;left:0;right:0;bottom:calc(60px + env(safe-area-inset-bottom,0px));top:max(12vh,env(safe-area-inset-top,0px));overflow-y:auto;border-radius:17px 17px 0 0;border:1px solid #52788b;box-shadow:0 -12px 50px #000a;padding:10px 12px 28px;background:#102431;max-height:none}
 body.mobile-ops-open .right{display:block}
 .right .tabs{top:0;position:sticky;z-index:3;display:flex;overflow-x:auto;gap:5px;padding:7px 0}.tabs button{flex:1;min-width:64px;min-height:45px;font-size:11px}
 .mobile-sheet-header{display:flex;align-items:center;justify-content:space-between;padding:3px 3px 10px;font-weight:750}
 .mobile-sheet-header button{min-height:44px;min-width:44px}
 .panehead h2{font-size:18px}.panehead p{font-size:13px}
 .card button,.right .quick button,.sidebar .tool{min-height:44px}
 input,select,textarea{font-size:16px!important;max-width:100%;}
 .world-overlay{padding:0;inset:0;z-index:190;align-items:stretch;background:#061a24}
 .world-window{height:var(--dockline-vh);max-height:100dvh;min-height:0;width:100%;border:0;border-radius:0;overflow:hidden;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
 .world-head{padding:6px 10px;gap:6px}.world-head h2{font-size:16px}.world-head .eyebrow{font-size:8px}.world-close{min-height:44px;min-width:95px;padding:6px}
 .world-main{display:flex;flex-direction:column;min-height:0;height:100%}
 .world-map-panel{flex:1;min-height:200px;overflow:hidden}
 .world-topline{padding:4px 7px;gap:4px;flex-wrap:wrap}.world-topline #worldMetrics{font-size:10px;max-width:100%;}
 .world-topline .quick{gap:3px;flex-wrap:wrap}.world-topline button{min-height:44px;min-width:44px;padding:6px}
 #worldPanelToggle{display:block;font-size:12px;min-height:44px;padding:6px 9px}
 #worldCanvas{min-height:140px;flex:1;width:100%;}
 .world-hint{display:none}.world-legend{font-size:10px;padding:5px;gap:8px}
 .world-controls{border-top:1px solid #54737e;border-left:0;max-height:42vh;flex:0 1 auto;overflow-y:auto;padding:8px 10px 22px}
 .world-controls.world-panel-closed{display:none}
 .world-tabs button{min-height:44px;font-size:11px}
 .world-card label,.world-card p{font-size:13px}.world-card button{min-height:44px}
 dialog.game-guide{max-width:calc(100vw - 12px);max-height:calc(var(--dockline-vh) - 30px);overflow:auto}
}
@media (max-width:460px){.mapcol{height:calc(var(--dockline-vh) - 170px - env(safe-area-inset-bottom,0px))}.brand .logo{font-size:15px}.header{gap:4px}.world-head h2{font-size:15px}.world-legend span:nth-child(n+4){display:none}}
@media (max-width:830px) and (orientation:landscape), (max-height:550px) and (pointer:coarse){.mapcol{height:calc(var(--dockline-vh) - 100px);max-height:none}.header .stats{display:none}.world-head p{display:none}.world-legend{display:none}}

.mobile-playback{display:none}
@media (max-width:830px), (max-height:550px) and (pointer:coarse){
 .mobile-playback{display:flex;gap:5px;align-items:center}
 .mobile-playback button{padding:7px 10px;min-height:44px;font-size:11px}
 .mobile-playback button:first-child{background:var(--lime);color:#182d19}
 .bar .grow{font-size:9px;line-height:1.3}
}

/* Telegram content safe area takes precedence when Telegram has its own header/navigation. */
:root{--dockline-safe-top:max(env(safe-area-inset-top,0px),var(--tg-content-safe-area-inset-top,0px));--dockline-safe-bottom:max(env(safe-area-inset-bottom,0px),var(--tg-safe-area-inset-bottom,0px));}
@media (max-width:830px), (max-height:550px) and (pointer:coarse){
 body{padding-bottom:calc(65px + var(--dockline-safe-bottom));}
 .mobile-nav{height:calc(60px + var(--dockline-safe-bottom));padding-bottom:var(--dockline-safe-bottom);}
 .sidebar,.right{bottom:calc(60px + var(--dockline-safe-bottom));}
 .world-window{padding-top:var(--dockline-safe-top);padding-bottom:var(--dockline-safe-bottom);}
 .mapcol{height:calc(var(--dockline-vh) - 181px - var(--dockline-safe-bottom));}
}

/* v6.9.1 language control: usable on compact phones and inside Telegram. */
.language-control{display:inline-flex;align-items:center;gap:7px;background:#122b39;border:1px solid #345569;border-radius:11px;padding:4px 8px;color:#cce4ef;font-size:12px;white-space:nowrap}
.language-control select{height:38px;max-width:145px;min-width:114px;border:0;border-radius:8px;background:#1d3949;color:#f0f7fc;padding:5px 9px;font-size:16px;cursor:pointer}
.language-control select:focus-visible{outline:2px solid #b9f47c;outline-offset:2px}
.header-right{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
@media(max-width:730px){.header-right{width:100%;justify-content:flex-start;gap:5px}.language-control{padding:2px 5px}.language-control select{height:44px;min-width:110px}.language-control span{font-size:11px}.header{gap:7px}}
@media(max-width:380px){.language-control span{display:none}.language-control select{min-width:118px}}

/* v6.9.2 cinematic intro inspired by bold crime-game opening cards. */
.dockline-intro{position:fixed;inset:0;z-index:260;display:flex;align-items:center;justify-content:center;padding:18px;background:#040b12c9;backdrop-filter:blur(8px)}
.dockline-intro .intro-backdrop{position:absolute;inset:0;background:radial-gradient(circle at 20% 15%,#173448cc,transparent 36%),radial-gradient(circle at 78% 20%,#51631e66,transparent 28%),linear-gradient(140deg,#071019,#0b1f2d 44%,#132534)}
.dockline-intro .intro-window{position:relative;z-index:1;width:min(1040px,100%);overflow:hidden;border:1px solid #466073;border-radius:24px;background:linear-gradient(135deg,#081520f2,#102839f0 48%,#15283ce8);box-shadow:0 25px 100px #000d;padding:26px}
.dockline-intro .intro-window::before{content:'';position:absolute;inset:auto -10% -40% 35%;height:70%;background:radial-gradient(circle,#d0fb7a1c,transparent 62%);pointer-events:none}
.intro-brand{max-width:540px;position:relative;z-index:1}.intro-kicker{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:#caef7f;font-weight:900;margin-bottom:8px}.dockline-intro h2{margin:0;font-size:46px;line-height:.93;letter-spacing:-1.8px;font-weight:1000}.dockline-intro h2 span,.dockline-intro h2 b{color:#caef7f}.dockline-intro .intro-brand p{margin-top:12px;color:#d4e7ee;font-size:15px;line-height:1.6;max-width:520px}
.intro-panels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px;position:relative;z-index:1}.intro-panel{padding:14px 14px 16px;border:1px solid #315566;background:linear-gradient(160deg,#0d2231f1,#163243d8);border-radius:16px;opacity:.48;transform:translateY(10px);transition:opacity .35s ease,transform .35s ease,border-color .35s ease}.intro-panel.active{opacity:1;transform:translateY(0);border-color:#b8eb77;box-shadow:0 14px 35px #0006}.intro-panel-tag{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:999px;background:#d5f47f;color:#142417;font-weight:900;font-size:12px;margin-bottom:10px}.intro-panel h3{font-size:16px;margin:0 0 6px}.intro-panel p{font-size:12px;color:#b9d3da;line-height:1.55}
.intro-stage{margin-top:18px;height:250px;border-radius:22px;border:1px solid #345363;background:linear-gradient(180deg,#15334b 0,#1c5d68 12%,#24404f 26%,#101d29 27%,#0b1520 100%);position:relative;overflow:hidden}.intro-stage::before{content:'';position:absolute;left:0;right:0;top:34%;height:1px;background:#d0ecff22}.intro-stage::after{content:'';position:absolute;right:24px;top:18px;width:120px;height:120px;border-radius:999px;background:radial-gradient(circle,#ffdd9660 0,#ffe9ab26 32%,transparent 68%)}
.intro-road{position:absolute;left:-8%;right:-8%;bottom:34px;height:78px;background:linear-gradient(180deg,#0b1117,#111d25);transform:skewX(-24deg);border-top:2px solid #4a5f69}.intro-road::after{content:'';position:absolute;left:10%;right:10%;top:36px;height:5px;background:repeating-linear-gradient(90deg,#f7d28a 0 22px,transparent 22px 48px);opacity:.8}
.intro-truck,.intro-robot,.intro-lift,.intro-worker,.intro-conveyor{position:absolute}.intro-truck{bottom:104px;left:-160px;display:flex;gap:4px;align-items:flex-end;animation:intro-drive 9s linear infinite}.intro-truck .cab{width:38px;height:28px;background:#ffb66e;border-radius:8px 6px 2px 2px;box-shadow:0 0 0 2px #7d5330 inset}.intro-truck .trailer{width:88px;height:34px;background:#e8f4fb;border-radius:6px;box-shadow:0 0 0 2px #7a8ea0 inset}.intro-truck::after,.intro-truck::before{content:'';position:absolute;bottom:-7px;width:13px;height:13px;border-radius:50%;background:#111820;box-shadow:0 0 0 2px #516170 inset}.intro-truck::before{left:14px}.intro-truck::after{left:92px}.intro-truck-b{animation-delay:-4.7s;bottom:137px;transform:scale(.86)}
.intro-robot.agv{width:36px;height:18px;background:linear-gradient(180deg,#d9f57f,#7cb773);border-radius:10px;bottom:92px;left:-50px;box-shadow:0 0 0 2px #345a41 inset;animation:intro-agv 6.4s linear infinite}.intro-robot.agv::before,.intro-robot.agv::after{content:'';position:absolute;bottom:-4px;width:8px;height:8px;border-radius:50%;background:#152129}.intro-robot.agv::before{left:6px}.intro-robot.agv::after{right:6px}.agv-b{animation-delay:-2.1s;bottom:78px}.agv-c{animation-delay:-3.8s;bottom:65px;transform:scale(.92)}
.intro-lift{width:70px;height:92px;right:22%;bottom:60px;background:linear-gradient(180deg,#9cc8ff,#567aa3);border-radius:18px 18px 10px 10px;box-shadow:0 0 0 3px #2e4e72 inset;animation:intro-lift 2.6s ease-in-out infinite}.intro-lift::before{content:'';position:absolute;left:50%;transform:translateX(-50%);bottom:12px;width:50px;height:14px;background:#273949;border-radius:8px}.intro-lift::after{content:'';position:absolute;left:18px;top:-24px;width:34px;height:40px;border:6px solid #b7d9ff;border-top-width:10px;border-bottom:none;border-radius:12px 12px 0 0}
.intro-worker{width:15px;height:42px;bottom:78px;background:linear-gradient(180deg,#ffe7ba,#e5a65f 34%,#15293a 35%,#1e4455 100%);border-radius:10px 10px 6px 6px;animation:intro-walk 3.5s linear infinite}.intro-worker::before{content:'';position:absolute;left:1px;top:-12px;width:13px;height:13px;border-radius:50%;background:#ffddb4}.worker-a{left:58%;animation-delay:-.6s}.worker-b{left:63%;animation-delay:-1.4s}.worker-c{left:68%;animation-delay:-2.4s}.worker-d{left:73%;animation-delay:-3s}
.intro-conveyor{left:14%;right:26%;bottom:122px;height:10px;background:repeating-linear-gradient(90deg,#92d5e3 0 16px,#5ca3b8 16px 32px);border-radius:999px;opacity:.9;box-shadow:0 0 0 2px #29506b inset}
.intro-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px;position:relative;z-index:1}.intro-actions button{min-width:150px;min-height:46px;font-size:14px}
.dockline-intro.closing{animation:intro-fade .4s ease forwards}
@keyframes intro-drive{0%{transform:translateX(-4%) scale(1)}100%{transform:translateX(1280px) scale(1)}}
@keyframes intro-agv{0%{transform:translateX(0)}100%{transform:translateX(1120px)}}
@keyframes intro-lift{0%,100%{transform:translateY(0)}50%{transform:translateY(-16px)}}
@keyframes intro-walk{0%{transform:translateX(0)}50%{transform:translateX(22px)}100%{transform:translateX(0)}}
@keyframes intro-fade{to{opacity:0;transform:scale(1.02)}}
@media(max-width:830px){.dockline-intro{padding:0}.dockline-intro .intro-window{border-radius:0;min-height:100dvh;padding:18px 16px 24px;display:flex;flex-direction:column;justify-content:center}.dockline-intro h2{font-size:32px}.intro-panels{grid-template-columns:1fr}.intro-panel{padding:11px 12px}.intro-stage{height:220px}.intro-actions{flex-direction:column}.intro-actions button{width:100%}}
@media (prefers-reduced-motion:reduce){.intro-truck,.intro-robot,.intro-lift,.intro-worker{animation:none}.intro-panel{transition:none}.dockline-intro.closing{animation:none;opacity:0}}

/* v6.9.5: compact language switcher; no selected language text in header. */
.locale-picker{position:relative;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;z-index:180}
.locale-trigger{display:grid;place-items:center;width:42px;height:42px;min-width:42px;min-height:42px;border-radius:12px;border:1px solid #3c6270;background:#173240;color:#e9f7ff;padding:0;touch-action:manipulation}
.locale-trigger:hover,.locale-trigger[aria-expanded="true"]{border-color:#c9f682;background:#233f44;color:#c9f682}
.locale-trigger:focus-visible,.locale-option:focus-visible{outline:2px solid #c9f682;outline-offset:2px}
.locale-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:181;min-width:194px;max-height:min(310px,70dvh);overflow-y:auto;background:#0b2634;border:1px solid #527787;border-radius:14px;box-shadow:0 18px 45px #000b;padding:7px}
.locale-menu[hidden]{display:none!important}
.locale-option{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;border:0;border-radius:9px;background:transparent;padding:11px 12px;text-align:left;font-size:14px;font-weight:650;color:#e6f3f3}
.locale-option:hover,.locale-option[aria-checked="true"]{background:#193e49;color:#d5ff9e}
.locale-check{opacity:0;color:#c9f682;font-size:15px}.locale-option[aria-checked="true"] .locale-check{opacity:1}
.locale-native-select{display:none!important}
@media(max-width:830px){.locale-trigger{width:44px;height:44px}.locale-menu{right:0;min-width:184px}.header-right{width:auto;flex:0 0 auto;margin-left:auto;display:flex;gap:6px}}
@media(max-width:360px){.locale-menu{right:0;min-width:178px}}

/* v6.10.0 multi-site picker */
.site-switch-label{display:block;font-size:10px;font-weight:800;color:#acd4dd;margin-top:6px}.site-switch{width:min(100%,350px);min-height:42px;background:#0c2936;border:1px solid #547783;border-radius:9px;padding:8px 12px;color:#e2f5ef;font-size:14px;font-weight:700;cursor:pointer}.site-switch:focus-visible{outline:3px solid #c9f682}.maphead #currentSiteName{line-height:1.2}.site-switch option{background:#102b3b;color:#edf8ff}@media(max-width:830px){.site-switch{min-height:44px;font-size:13px}.site-switch-label{margin-top:2px;font-size:10px}.maphead #currentSiteName{font-size:16px}}

/* v6.12.0 customer contract board: responsive, no full-panel redraws while focused. */
.tabs{grid-template-columns:repeat(6,minmax(0,1fr));}
.tabs button{padding:9px 3px;font-size:10.5px;overflow-wrap:anywhere;}
.contract-open-button{background:#253a43;border-color:#a6d66c;color:#effbbf;min-height:35px;}
.contract-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:12px;}
.contract-metric{padding:12px 9px;border:1px solid #315769;border-radius:12px;background:#112d3b;}
.contract-metric span{display:block;color:#aac5cd;font-size:11px;}
.contract-metric strong{display:block;font-size:19px;color:#d6f59a;margin-top:4px;}
.contract-tier{display:inline-flex;padding:4px 8px;border-radius:7px;font-weight:850;font-size:10px;background:#2f4755;color:#dbf5ff;}
.contract-tier.priority{background:#58472b;color:#ffe4a7}.contract-tier.enterprise{background:#463e65;color:#e8d5ff}
.contract-card{border:1px solid #325567;background:linear-gradient(145deg,#152f3e,#11242f);border-radius:13px;margin:9px 0;padding:12px;}
.contract-card strong{font-size:13px}.contract-card h3{font-size:14px;margin-bottom:7px;}
.contract-card .contract-line{padding:5px 0;font-size:12px;color:#e0eef1;display:flex;justify-content:space-between;gap:10px;}
.contract-card .contract-line small{color:#9dbcc7;}
.contract-card .contract-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:10px 0 0;}
.contract-card select{font-size:16px;max-width:100%;width:100%;background:#132c39;color:#e5f4f7;border:1px solid #486778;padding:9px;border-radius:9px;}
.contract-card button{min-height:44px;flex:1;}
.contract-status{color:#cfe6e7;font-size:12px;margin-top:8px;line-height:1.55;}
.contract-status.bad{color:#ffb0a9}.contract-status.good{color:#c8f5a7}.contract-progress{height:7px;background:#2d4b56;border-radius:999px;overflow:hidden;margin:9px 0;}
.contract-progress span{display:block;height:100%;background:#b6ec82;transition:width .2s linear;}
.contract-section{font-weight:900;color:#d8efef;font-size:13px;margin:15px 0 7px;}
.contract-empty{border:1px dashed #47616a;padding:18px;border-radius:11px;color:#b5c9d0;line-height:1.6;}
@media(max-width:830px){.tabs{grid-template-columns:none;}.tabs button{flex:0 0 auto;min-width:78px;}.contract-summary{grid-template-columns:repeat(3,minmax(0,1fr));}.contract-metric strong{font-size:15px}.contract-open-button{font-size:11px;padding:7px 9px;}.contract-card{padding:11px;}}
@media(max-width:360px){.contract-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.contract-card .contract-actions{flex-direction:column}.contract-card button{width:100%}}

/* Contract board needs room on narrow phones; its own heading and filters are built in. */
.right.show-contracts #contextSummary,.right.show-contracts .panel-tools{display:none!important;}

/* v6.13 customer fleet contracts */
.contract-vehicle-label{display:block;margin:9px 0;color:#c9e4e8;font-weight:750;font-size:12px}.contract-vehicle-label select{display:block;width:100%;padding:10px 8px;margin-top:5px;min-height:44px;border:1px solid #496e7d;border-radius:9px;background:#173442;color:#f0faff}.world-tabs{flex-wrap:wrap}.world-tabs button{min-height:42px}

.fleet-open-button{background:#1e3a48;border:1px solid #527d90;min-height:44px;color:#e8f3fa}.fleet-vehicle{background:#102e3d;border:1px solid #375766;border-radius:11px;padding:12px;margin:9px 0}.fleet-routes{display:grid;grid-template-columns:1fr 1fr;gap:8px}.fleet-vehicle select{width:100%;min-height:44px;padding:8px;background:#112b3b;color:#e6f3f3;border-radius:8px;border:1px solid #456f80}.fleet-vehicle label{display:block;font-size:12px;margin:7px 0}.fleet-vehicle p{line-height:1.5;color:#bad4da;font-size:12px;margin:5px 0}.world-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:830px){.world-tabs button{min-width:0;min-height:44px;padding:4px 2px;font-size:10px;white-space:normal}.fleet-routes{grid-template-columns:1fr}}

.contract-fleet-shortcut{display:block;width:100%;min-height:44px;margin:10px 0;border-color:#568b98;background:#193847;text-align:center}
@media(max-width:830px){#fleetOpen{font-size:11px;padding:7px 8px}}
/* v6.14 retail interior — independently managed and phone-friendly. */
.market-overlay{position:fixed;inset:0;z-index:235;background:#050f18ed;display:flex;align-items:center;justify-content:center;padding:12px;overscroll-behavior:contain}
.market-overlay.hidden{display:none!important}
.market-window{width:min(1400px,100%);height:min(940px,calc(100dvh - 24px));display:flex;flex-direction:column;background:#0d2230;border:1px solid #43697b;border-radius:18px;overflow:hidden;box-shadow:0 20px 90px #000c;color:#e4f2f4}
.market-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;background:linear-gradient(100deg,#193c42,#122c40);border-bottom:1px solid #436477}
.market-head h2{font-size:22px;margin:2px 0}.market-head p{font-size:12px;color:#a6d4dc}
.market-kicker{font-size:10px;color:#c9f682;letter-spacing:1.8px;font-weight:900}
.market-head-actions{display:flex;gap:8px;align-items:center}.market-head-actions button{min-height:42px}
.market-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:10px 14px;background:#132d3b;border-bottom:1px solid #365361}
.market-metrics>div{padding:8px 10px;background:#173743;border:1px solid #335663;border-radius:10px;min-width:0}
.market-metrics span{display:block;font-size:10px;color:#a2c5cc}.market-metrics b{font-size:18px;color:#d6fa9a}
.market-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,360px);min-height:0;flex:1}
.market-floor{display:flex;flex-direction:column;align-items:stretch;min-height:0;background:radial-gradient(circle at 50% 35%,#21495b,#0d2432 68%)}
#marketCanvas{flex:1;display:block;width:100%;min-height:140px;touch-action:manipulation;cursor:crosshair}
.market-floor-legend{display:flex;gap:15px;flex-wrap:wrap;padding:12px;color:#b2cddb;font-size:11px;border-top:1px solid #2c5260}
.market-panel{overflow-y:auto;min-width:0;padding:12px;background:#102837;border-left:1px solid #345261;overscroll-behavior:contain}
.market-section{padding:12px;background:#173441;border:1px solid #345967;border-radius:12px;margin-bottom:11px}
.market-section h3{font-size:14px;margin:0 0 10px}.market-section label{display:grid;gap:5px;margin:9px 0;font-size:12px;color:#c5dbe4}
.market-section select,.market-section input{width:100%;min-height:42px;border:1px solid #476a77;border-radius:8px;padding:8px;background:#0f2937;color:#f3fafa}
.market-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.market-tools button{min-height:42px;line-height:1.35;font-size:11px;padding:7px}
.market-hint{font-size:11px;color:#a6c8d3;line-height:1.5;margin:9px 0 0}
.market-line{display:flex;align-items:center;justify-content:space-between;gap:7px;padding:7px 0;border-bottom:1px solid #315261;font-size:12px}.market-line:last-child{border-bottom:0}
.market-alert{color:#ffd193;font-size:11px;padding:8px 0}
.market-price{display:grid;grid-template-columns:minmax(0,1fr) 160px;align-items:center;gap:8px}
.market-price select{min-width:0}
#marketFeedback{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);padding:12px 18px;background:#193f4c;border:1px solid #a2d981;border-radius:11px;box-shadow:0 4px 20px #000a;color:#ebfacb;z-index:2;max-width:min(95vw,520px)}
#marketFeedback[hidden]{display:none}
@media(max-width:830px){.market-overlay{padding:0;align-items:stretch}.market-window{width:100%;height:100dvh;border-radius:0;border:0;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}.market-head{padding:8px 12px}.market-head h2{font-size:17px}.market-head p{font-size:10px}.market-head-actions button{padding:8px;font-size:11px}.market-metrics{padding:5px 7px;gap:4px}.market-metrics>div{padding:5px}.market-metrics span{font-size:9px}.market-metrics b{font-size:13px}.market-workspace{display:flex;flex-direction:column;overflow:hidden}.market-floor{flex:0 0 40%;min-height:180px}.market-floor-legend{padding:6px 10px;gap:8px;font-size:9px}.market-panel{border-left:0;border-top:1px solid #456170;flex:1;min-height:0;padding:10px}.market-tools button{font-size:12px;min-height:44px}.market-section label{font-size:13px}}
@media(max-width:430px){.market-floor{flex-basis:34%;min-height:154px}.market-metrics b{font-size:12px}.market-head-actions button{min-height:42px}.market-head p{display:none}.market-head h2{font-size:15px}}

/* v6.15 supply controls; card scroll remains local and mobile-safe */
.supply-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;border:1px solid #426073;border-radius:10px;margin:9px 0}
.supply-table{width:100%;min-width:500px;border-collapse:collapse;font-size:11px;background:#0d2735}
.supply-table td,.supply-table th{padding:9px 8px;text-align:left;border-bottom:1px solid #365467;white-space:nowrap}
.supply-table th{font-size:10px;color:#dbf2f0;background:#163849}
.supply-table input[type=number]{width:67px;max-width:67px;padding:7px 5px!important;border:1px solid #4d7180;border-radius:6px;background:#102331;color:#f1ffff}
.supply-table input[type=checkbox]{accent-color:#c9f682;width:19px;height:19px}
.supply-table select{max-width:150px;min-width:105px;padding:7px;background:#142d3b;border:1px solid #4d7180;border-radius:6px;color:#f4faff}
.supply-table small{font-size:10px;color:#cdeab0}
.supply-extra-lines{padding:10px;margin:9px 0;border:1px solid #385567;border-radius:10px;background:#0c2533}
.supply-extra-lines summary{cursor:pointer;font-weight:800;color:#d5f5ac}
.supply-manifest{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media(max-width:560px){.supply-table{min-width:560px}.supply-extra-lines .supply-manifest{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.supply-extra-lines input,.supply-extra-lines select{min-width:0}}

/* Phone-sized reorder policies become readable cards, not a six-column horizontal table. */
@media(max-width:560px){
 .supply-section .supply-table{min-width:0;width:100%;display:block}
 .supply-section .supply-table thead{display:none}
 .supply-section .supply-table tbody{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding:6px}
 .supply-section .supply-table tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3px;border:1px solid #446478;border-radius:9px;padding:6px;background:#163443}
 .supply-section .supply-table td{display:flex;align-items:center;justify-content:space-between;gap:5px;min-width:0;padding:7px 5px;border:0;white-space:normal}
 .supply-section .supply-table td:before{content:attr(data-label);display:block;color:#aecdde;font-size:10px;max-width:58%}
 .supply-section .supply-table td:nth-child(1){grid-column:1;grid-row:1}
 .supply-section .supply-table td:nth-child(2){grid-column:2;grid-row:1;font-weight:800;color:#efffcf;justify-content:flex-end;text-align:right}
 .supply-section .supply-table td:nth-child(2):before{display:none}
 .supply-section .supply-table td:nth-child(3){grid-column:1/-1}
 .supply-section .supply-table td:nth-child(6){grid-column:1/-1}
 .supply-section .supply-table td:nth-child(6) select{max-width:180px;min-width:135px}
}

/* v6.17 parcel construction controls */
.facility-controls{display:grid;gap:10px}.facility-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.facility-grid button{white-space:normal;text-align:left;min-height:44px}.facility-controls .hint{line-height:1.55}

/* v6.20 regional economy */
.city-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.city-metrics span{padding:10px;background:rgba(120,170,190,.10);border:1px solid rgba(120,170,190,.17);border-radius:8px;display:flex;justify-content:space-between;gap:8px}.city-metrics b{color:#c1f3b0}

/* v6.21 rival market dashboard */
.competition-rival{padding:12px;margin:9px 0;border-radius:10px;border:1px solid #3f6673;background:#112f3c}
.competition-rival small{color:#9bb8c3}
.competition-dashboard select{width:100%;padding:10px;background:#173747;color:#f1fcfa;border:1px solid #5b7884;border-radius:7px}
.competition-dashboard button{margin:6px 6px 6px 0}
.competition-share{height:13px;border-radius:10px;background:#3d5260;overflow:hidden;margin:12px 0}.competition-share>div{height:100%;background:linear-gradient(90deg,#62c7c3,#9beca0);transition:width .3s}
[data-contract-bid]{width:100%;background:#153340;border:1px solid #4d7887;color:#eafbf9;padding:7px;border-radius:6px}

/* v6.22 — financial management cards; mobile-scrollable regional panel */
.finance-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}
.finance-kpis>div{background:#172f3e;border:1px solid #385265;border-radius:9px;padding:12px;min-width:0}
.finance-kpis span{display:block;color:#a2bfcb;font-size:11px;margin-bottom:6px}
.finance-kpis strong{display:block;font-size:clamp(15px,2vw,21px);overflow-wrap:anywhere;color:#e9f8eb}
.finance-alert,.finance-warn{border-radius:8px;padding:12px;margin:8px 0;font-size:12px;line-height:1.5}
.finance-alert{background:#4f282c;color:#ffdad2;border:1px solid #bd7474}
.finance-warn{background:#413925;color:#ffe9aa;border:1px solid #a48f5d}
.finance-site,.finance-loan{padding:10px 0;border-bottom:1px solid #3e5361}
.finance-site small,.finance-loan small{color:#a9c5d0;display:block;margin:5px 0;line-height:1.5}
.finance-actions{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}
.finance-actions button{min-height:34px;flex:1 1 auto}
.finance-offers{display:grid;gap:8px;margin:10px 0}
.finance-offers button{padding:12px;text-align:left;min-height:54px;font-weight:750}
.finance-offers small{display:block;font-weight:400;margin-top:3px;font-size:11px}
.finance-dashboard .world-bar{gap:8px}
.finance-dashboard .world-bar b{overflow-wrap:anywhere;text-align:right}
@media(max-width:470px){.finance-kpis{gap:5px}.finance-kpis>div{padding:8px}.finance-actions button{font-size:11px;padding:8px}}

.fleet-schedule{border-bottom:1px solid #425867;padding:10px 0}.fleet-schedule>strong{display:block;font-size:12px}.fleet-schedule small{display:block;color:#aac2cb;margin:5px 0}.fleet-schedule select{min-width:0;width:100%}.fleet-schedule label{min-width:0;flex:1 1 110px}

/* v6.23 — incidents & maintenance command center */
.maint-board select{display:block;width:100%;min-height:42px;margin:7px 0 12px;border-radius:9px;padding:8px 10px;color:#eaf7f8;background:#102c3a;border:1px solid #4d7181}
.maint-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}
.maint-kpis>div{border:1px solid #375767;background:#102b38;border-radius:9px;padding:9px}
.maint-kpis small{display:block;font-size:11px;color:#bad3db}.maint-kpis strong{display:block;font-size:24px;color:#d6f4a4}
.maint-incident{background:#122f3e;border:1px solid #81554d;border-radius:10px;padding:11px;margin:10px 0}
.maint-incident.repairing{border-color:#7c754c}.maint-head{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;font-size:12px}
.maint-head strong{overflow-wrap:anywhere}.maint-pill{border-radius:50px;background:#4c3132;color:#ffd2cb;font-size:10px;padding:3px 7px;white-space:nowrap}
.maint-incident.repairing .maint-pill{background:#403c22;color:#f8df9d}.maint-incident small{display:block;color:#acc5d0;margin:6px 0}
.maint-actions{display:flex;flex-wrap:wrap;gap:7px;margin:9px 0}.maint-actions button{flex:1;min-width:145px;font-size:11px;padding:8px}
.maint-check{display:flex;align-items:center;gap:9px;margin:12px 0;font-size:12px;color:#e0efee}.maint-check input{width:18px;height:18px;flex:none}
.maint-asset{display:grid;grid-template-columns:minmax(0,1fr) 68px 40px 70px;align-items:center;gap:6px;padding:10px 3px;border-top:1px solid #2a4b5d}
.maint-asset b{display:block;font-size:12px}.maint-asset small{display:block;font-size:10px;color:#a9c4ce}.maint-asset strong{font-size:11px;text-align:right}
.maint-asset button{min-height:32px;padding:5px;font-size:10px}.maint-meter{height:7px;border-radius:12px;background:#2d4752;overflow:hidden}.maint-meter>div{height:100%;border-radius:12px}
.maint-good{color:#b5f0be}.world-tab-content .maint-board p{font-size:12px;line-height:1.55}
@media(max-width:490px){.maint-asset{grid-template-columns:minmax(0,1fr) 53px 34px 57px}.maint-actions button{min-width:120px}.maint-kpis strong{font-size:20px}}

/* v6.24 · cinematic accessibility-first floor HUD */
.cinema-toolbar{position:absolute;z-index:7;top:9px;right:10px;display:flex;gap:5px;max-width:calc(100% - 170px);flex-wrap:wrap;justify-content:flex-end;pointer-events:auto}
.cinema-toolbar button{padding:6px 9px;font-size:10px;line-height:1.25;font-weight:850;letter-spacing:.25px;background:rgba(7,25,38,.9);border:1px solid rgba(119,166,177,.7);color:#d7eef0;box-shadow:0 4px 16px #08182263;backdrop-filter:blur(8px);border-radius:7px;min-height:32px}
.cinema-toolbar button:hover,.cinema-toolbar button.cin-active{border-color:#c6f481;color:#e8ffae;background:#244036e8}
.cinema-toolbar button:focus-visible{outline:3px solid #cff58e;outline-offset:2px}
.cinema-time{position:absolute;z-index:6;bottom:138px;right:13px;font-size:9px;letter-spacing:1.5px;font-weight:900;color:#e0ebd2;padding:5px 8px;background:#0b202bd9;border:1px solid #43636a;border-radius:6px;pointer-events:none}
.cinematic-vignette{position:absolute;inset:0;z-index:3;pointer-events:none;box-shadow:inset 0 0 70px 16px #07101e28}
.dockline-intro .intro-window{background:linear-gradient(132deg,#091824f7,#142c3af7 54%,#14213bf0)}
.dockline-intro .intro-kicker{color:#d8f4a0}
.dockline-intro .intro-stage{background:radial-gradient(circle at 77% 15%,#a0b8a02a,transparent 22%),linear-gradient(180deg,#102538,#1b4758 25%,#091723 27%,#101924)}
.dockline-intro .intro-stage::after{animation:cin-lighthouse 5s ease-in-out infinite alternate}
@keyframes cin-lighthouse{0%{opacity:.34;transform:scale(.85)}100%{opacity:1;transform:scale(1.34)}}
@media(max-width:900px){.cinema-toolbar{max-width:calc(100% - 65px);right:5px;top:5px;gap:3px}.cinema-toolbar button{font-size:9px;padding:5px 6px;min-height:30px}.cinema-time{right:5px;bottom:98px;font-size:8px}.cinematic-vignette{box-shadow:inset 0 0 28px 8px #07101e18}}
@media(max-width:520px){.cinema-toolbar{right:5px;left:5px;max-width:none;top:auto;bottom:7px;justify-content:center}.cinema-toolbar button{flex:1 1 auto;min-height:36px;padding:4px 5px;font-size:9px}.cinema-time{top:45px;left:auto;right:5px;bottom:auto}.scene .maphelp{bottom:54px;max-width:63%}.scene .minimap{bottom:60px}.cinematic-vignette{box-shadow:none}}
@media(prefers-reduced-motion:reduce){.dockline-intro .intro-stage::after{animation:none}.cinema-toolbar button{transition:none}}

/* v6.24 cinematic opening: facility beacons, rising title, timed film cut */
.cin-intro-beacons{position:absolute;left:20px;right:20px;top:17px;display:flex;align-items:center;justify-content:space-between;z-index:2;pointer-events:none}
.cin-intro-beacons i{width:8px;height:8px;border-radius:50%;background:#dbfdae;box-shadow:0 0 18px 5px #beef7688;animation:cin-blink 1.4s infinite alternate}
.cin-intro-beacons i:nth-child(2){animation-delay:.2s}.cin-intro-beacons i:nth-child(3){animation-delay:.5s}.cin-intro-beacons i:nth-child(4){animation-delay:.9s}
.cin-intro-caption{position:absolute;right:15px;bottom:13px;text-align:right;z-index:2;letter-spacing:2px;text-shadow:0 2px 9px #000}
.cin-intro-caption span{display:block;color:#d8ffa2;font-size:9px;font-weight:900}.cin-intro-caption strong{display:block;color:#d0e4ed;font-size:8px;margin-top:3px}
.cin-film-progress{height:3px;margin:14px 0 4px;border-radius:3px;background:#2a4653;overflow:hidden}.cin-film-progress span{display:block;height:100%;background:linear-gradient(90deg,#83bed5,#c7f681);animation:cin-timeline 11.7s linear both}
@keyframes cin-blink{from{opacity:.33;box-shadow:0 0 4px 1px #beef7644}to{opacity:1;box-shadow:0 0 16px 5px #beef76aa}}
@keyframes cin-timeline{from{width:0}to{width:100%}}
@media(prefers-reduced-motion:reduce){.cin-intro-beacons i,.cin-film-progress span{animation:none}.cin-film-progress span{width:100%}}

/* v6.25: responsive workforce manager */
.worker-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:14px 0}
.worker-kpis>div{background:rgba(125,180,170,.075);border:1px solid rgba(139,207,200,.16);border-radius:9px;padding:10px 5px;text-align:center;min-width:0}
.worker-kpis strong{display:block;font-size:19px;color:#c8f391;font-variant-numeric:tabular-nums}
.worker-kpis span{display:block;color:#a0b7bb;font-size:10px}
.worker-cards{display:grid;gap:12px}
.worker-card{background:linear-gradient(150deg,rgba(25,50,63,.94),rgba(14,29,38,.96));border:1px solid #345262;border-radius:12px;padding:14px;min-width:0}
.worker-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;flex-wrap:wrap}
.worker-card-top strong{font-size:15px;color:#f0f6e3}
.worker-card-top p{margin:5px 0}
.worker-state{font-size:10px;white-space:nowrap;background:#31404b;color:#c3d2d6;border-radius:99px;padding:5px 9px}
.worker-state.working{background:#274d41;color:#aff8cf}.worker-state.ready{background:#33553b;color:#cdf6a7}.worker-state.resting{background:#493d43;color:#efd4b8}
.worker-meter{display:flex;align-items:center;gap:9px;margin:12px 0;color:#b6ccd0;font-size:11px}
.worker-meter span{white-space:nowrap}
.worker-meter-track{height:8px;flex:1;min-width:25px;background:#314653;border-radius:99px;overflow:hidden}
.worker-meter-track b{display:block;height:100%;border-radius:99px}
.worker-skills{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}
.worker-skills span{font-size:11px;padding:5px 7px;border:1px solid #385464;background:#223b47;border-radius:6px;color:#c1d7da}
.worker-skills b{color:#caf5a0}
.worker-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:12px}
.worker-controls label{display:flex;flex-direction:column;gap:5px;color:#9fb8c3;font-size:11px;min-width:0}
.worker-controls select{min-width:0;max-width:100%;width:100%;font-size:12px;background:#112936;color:#eff6ea;border:1px solid #436171;border-radius:7px;padding:7px 4px}
.worker-actions{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-top:10px}
.worker-toggle{display:flex;align-items:center;gap:6px;font-size:12px;color:#c0d9cb}
.worker-training-progress{background:#304853;height:5px;border-radius:5px;margin-top:12px;overflow:hidden}
.worker-training-progress>div{height:100%;background:#c5df78}
@media(max-width:530px){.worker-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.worker-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.worker-meter{flex-wrap:wrap}.worker-meter-track{flex-basis:100%;order:3}}

/* v6.25.1 automation panel */
.auto-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:12px 0}
.auto-stats>div{padding:12px;border-radius:10px;border:1px solid #345465;background:#112937;display:flex;flex-direction:column;gap:3px}
.auto-stats strong{font-size:23px;color:#c6ec84;font-variant-numeric:tabular-nums}
.auto-stats small{color:#a6bfc6;font-size:11px}
.auto-mode{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:12px 0;color:#d5e5e5;font-size:12px}
.auto-mode select{min-width:135px;max-width:60%;background:#112937;border:1px solid #45646d;border-radius:7px;color:#e8f5ed;padding:8px}
#automationPane .item{gap:10px;flex-wrap:wrap}
#automationPane .item>div:first-child{flex:1;min-width:150px}
#automationPane .item button{white-space:nowrap}
@media(max-width:600px){.auto-mode{align-items:flex-start;flex-direction:column}.auto-mode select{max-width:100%;width:100%}}

/* v6.26 employee facilities and payroll */
.workplace-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:12px 0}
.workplace-facility{background:linear-gradient(145deg,#122f40,#152c38);border:1px solid #3a6373;border-radius:11px;padding:12px;min-width:0}
.workplace-facility strong{color:#d7f5b2;font-size:13px}.workplace-facility p{font-size:11px;color:#bad0d8;line-height:1.5;min-height:56px;margin:6px 0}
.workplace-facility button{width:100%;white-space:normal}.workplace-summary h4{font-size:13px;margin:14px 0 4px;color:#d8f0e7}
.workplace-actions button{flex:1 1 110px}.worker-actions{align-items:center}
@media(max-width:440px){.workplace-grid{grid-template-columns:1fr}.workplace-facility p{min-height:0}}
/* Keep monetary metrics legible in Dockline's narrow right management column. */
.worker-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
.workplace-summary .worker-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
.worker-kpis strong{font-size:clamp(15px,1.2vw,19px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:440px){.worker-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v6.27 workplace life monitoring */
.life-stats{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:12px 0 8px;border:1px solid #496675;border-radius:9px;padding:9px;background:#112a38;color:#dcece7;font-size:12px}
.life-feed{margin-top:8px;border-left:3px solid #89c1ab;padding:8px 12px;background:#132a35;border-radius:6px;font-size:12px;color:#d7e5ed}
.life-feed b{display:block;margin:5px 0;color:#c8f4db}
.life-feed p{margin:2px 0 8px;line-height:1.5;overflow-wrap:anywhere;color:#a9c4cc}
.worker-actions button[data-life-visit]{white-space:normal}

/* v6.28: native tile-based interior editor, including touch screens. */
.interior-editor {border:1px solid rgba(171,220,193,.32);border-radius:12px;padding:12px;margin:12px 0;background:linear-gradient(145deg,rgba(24,59,64,.38),rgba(16,37,50,.3))}
.interior-editor h3 {margin:0 0 8px;font-size:14px;letter-spacing:.03em;color:#d2efd7}
.interior-tools {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:10px 0}
.interior-tools .small {text-align:left;padding:9px 7px;line-height:1.25;min-height:52px;overflow-wrap:anywhere}
.interior-tools small {display:block;opacity:.75;font-size:10px;margin-top:5px}
.interior-tools .selected {border-color:#c8f88c;background:#294f49;box-shadow:inset 0 0 0 1px #c8f88c55}
.interior-selection {border:1px solid #3b6570;border-radius:9px;padding:9px;margin:12px 0;background:#132d39}
.interior-selection b {font-size:12px;color:#d8ecf1}
.interior-selection p {font-size:11px;color:#a9c3ca;line-height:1.45;margin:5px 0 8px}
.interior-selection .quick {display:flex;flex-wrap:wrap;gap:5px}
.interior-selection button {flex:1 1 50px}
@media(max-width:520px){.interior-tools {grid-template-columns:repeat(2,minmax(0,1fr))}.interior-editor{padding:9px}}

/* v6.29 — Floor tabs, footprint controls, upper-floor construction */
.architecture-panel{margin-top:14px;padding:13px;border:1px solid #56777e;border-radius:12px;background:#122d3a}
.architecture-panel h3{margin:0 0 6px;color:#d9f5be}.architecture-floor-tabs,.architecture-tool-grid,.architecture-dim,.architecture-visit,.architecture-room-size{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}
.architecture-floor-tabs button{flex:1;min-width:86px;font-size:11px}.architecture-panel button.selected{background:#bde887;color:#18291e;border-color:#bde887}.architecture-panel select,.architecture-room-size select{max-width:130px;background:#0f2837;color:#eaf4ef;border:1px solid #5a7b88;border-radius:6px;padding:7px}
.architecture-dim label,.architecture-room-size label{display:flex;align-items:center;gap:5px;font-size:12px}.architecture-tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.architecture-tool-grid button{white-space:normal;min-height:42px;line-height:1.25;text-align:left;padding:8px;font-size:11px}.architecture-selection{margin:12px 0;background:#0c2230;border:1px solid #365968;padding:9px;border-radius:10px}.architecture-visit{align-items:center}.architecture-visit select{max-width:100%;flex:1;min-width:130px}
.architecture-compact{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin:10px 0}.architecture-compact div{display:flex;flex-direction:column;gap:2px;background:#0b2635;padding:8px;border-radius:7px}.architecture-compact strong{font-size:16px;color:#d1f4b6}.architecture-compact span{font-size:10px;color:#b5cbd2}.architecture-panel .hint{margin:5px 0;font-size:11px}
@media(max-width:520px){.architecture-panel{padding:10px}.architecture-tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.architecture-floor-tabs{gap:4px}.architecture-floor-tabs button{min-width:65px}}
/* v6.30 — compact logistics operations embedded above the architecture tools */
.vertical-panel{margin:12px 0;padding:11px;border:1px solid #56867e;border-radius:11px;background:linear-gradient(140deg,#183b3b,#102a38)}
.vertical-panel h3{font-size:14px;line-height:1.3;margin:0 0 5px;color:#d8f7ae}
.vertical-control{margin:11px 0;padding:9px;border:1px solid #355c62;border-radius:9px;background:#102c37;display:grid;gap:7px;min-width:0}
.vertical-control>strong{font-size:11px;color:#d9eee7}
.vertical-panel select{max-width:100%;min-width:0;width:100%;font-size:11px}
.vertical-panel button{white-space:normal;min-height:35px;text-align:center}
.vertical-panel .item{display:flex;flex-wrap:wrap;gap:5px;align-items:center;border-bottom:1px solid #31525c}
.vertical-panel .item span{font-size:11px;flex:1 0 100%;line-height:1.4}
.vertical-panel .item button{flex:1 1 65px}
.vertical-panel .split{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;font-size:11px;overflow-wrap:anywhere}
.vertical-panel .split span{font-size:11px}
.vertical-panel .architecture-compact{grid-template-columns:repeat(2,minmax(0,1fr))}

/* v6.31/v6.32 Operations and headquarters */
.industrial-ui,.hq-panel{min-width:0}.industrial-ui select,.industrial-ui input:not([type=checkbox]){max-width:100%;min-width:0;width:100%;background:#132b38;color:#e6f4ed;border:1px solid #496174;border-radius:6px;padding:8px;margin:4px 0 10px}.industrial-ui label{display:block;margin:9px 0;color:#bad4d5;font-size:12px}.industrial-ui .ind-check{display:flex;align-items:center;gap:8px;margin:6px 0;font-size:12px}.industrial-ui .ind-check input{width:auto;flex:none}.industrial-ui .vertical-control{border:1px solid #2b4b54;border-radius:9px;padding:10px;margin:12px 0;background:rgba(9,28,40,.4)}.industrial-ui .vertical-control .split{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:5px 0;border-bottom:1px solid #24414a}.industrial-ui .vertical-control .split select{width:94px;margin:0}.industrial-ui button{white-space:normal}.hq-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.hq-metrics>div{background:#0c2931;padding:12px;border-radius:8px}.hq-metrics b,.hq-metrics span{display:block;overflow-wrap:anywhere}.hq-metrics b{font-size:17px;color:#cef49a}.hq-metrics span{font-size:11px;color:#a9bec6}.hq-budget{padding:10px 0;border-bottom:1px solid #30444e}.hq-budget-control{display:flex;align-items:center;gap:8px;margin-top:8px}.hq-budget-control input{max-width:130px;min-width:0;background:#112b39;border:1px solid #456174;border-radius:6px;padding:7px;color:#e2edf1}.hq-budget-control button{flex:1}.hq-bar{height:5px;border-radius:10px;overflow:hidden;background:#27414b}.hq-bar div{height:100%;border-radius:10px}.hq-site,.hq-plan{padding:12px 0;border-bottom:1px solid #30444e}.hq-site small{display:block;color:#b8c9cf;padding-top:4px}.hq-plan p{font-size:12px;color:#b8c9cf;margin:5px 0}.hq-panel .world-bar,.hq-site .world-bar{overflow-wrap:anywhere}@media(max-width:600px){.hq-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.industrial-ui .vertical-control .split{align-items:flex-start}.hq-budget-control input{max-width:100px}}

/* v6.33–34 enterprise and accounting management */
.enterprise-grid,.statement-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:9px 0}.enterprise-grid>div,.statement-grid>div{background:#122d3a;border:1px solid #345669;border-radius:10px;padding:12px;min-width:0}.enterprise-grid b,.statement-grid b{display:block;font-size:17px;color:#d5efa9;overflow-wrap:anywhere}.enterprise-grid span,.statement-grid span{display:block;font-size:11px;color:#a9c4d1}.management-row{padding:12px 0;border-top:1px solid #304a58;display:grid;gap:8px}.management-row strong{font-size:13px}.management-row p{font-size:11px;color:#b4cfda}.management-controls{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.management-controls select,.management-controls input{min-width:0;max-width:100%;flex:1 1 115px;background:#183445;border:1px solid #416777;border-radius:9px;padding:9px}.management-controls button{flex:0 0 auto}.statement-table{width:100%;border-collapse:collapse;font-size:12px}.statement-table td{padding:9px 5px;border-bottom:1px solid #344c57}.statement-table td:last-child{text-align:right;font-weight:800;white-space:nowrap}.statement-note{font-size:11px;color:#b4c9d3;line-height:1.55;margin:8px 0}.management-progress{height:7px;background:#233c48;border-radius:20px;overflow:hidden}.management-progress i{display:block;height:100%;background:#c4ec8a}.management-alert{color:#ffd59a;border:1px solid #725c39;border-radius:10px;padding:9px;margin:10px 0}@media(max-width:410px){.enterprise-grid,.statement-grid{grid-template-columns:1fr 1fr}.management-controls select,.management-controls input{flex-basis:100px}}

/* v6.33–34 enterprise and accounting management */
.enterprise-grid,.statement-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:9px 0}.enterprise-grid>div,.statement-grid>div{background:#122d3a;border:1px solid #345669;border-radius:10px;padding:12px;min-width:0}.enterprise-grid b,.statement-grid b{display:block;font-size:17px;color:#d5efa9;overflow-wrap:anywhere}.enterprise-grid span,.statement-grid span{display:block;font-size:11px;color:#a9c4d1}.management-row{padding:12px 0;border-top:1px solid #304a58;display:grid;gap:8px}.management-row strong{font-size:13px}.management-row p{font-size:11px;color:#b4cfda}.management-controls{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.management-controls select,.management-controls input{min-width:0;max-width:100%;flex:1 1 115px;background:#183445;border:1px solid #416777;border-radius:9px;padding:9px}.management-controls button{flex:0 0 auto}.statement-table{width:100%;border-collapse:collapse;font-size:12px}.statement-table td{padding:9px 5px;border-bottom:1px solid #344c57}.statement-table td:last-child{text-align:right;font-weight:800;white-space:nowrap}.statement-note{font-size:11px;color:#b4c9d3;line-height:1.55;margin:8px 0}.management-progress{height:7px;background:#233c48;border-radius:20px;overflow:hidden}.management-progress i{display:block;height:100%;background:#c4ec8a}.management-alert{color:#ffd59a;border:1px solid #725c39;border-radius:10px;padding:9px;margin:10px 0}@media(max-width:410px){.enterprise-grid,.statement-grid{grid-template-columns:1fr 1fr}.management-controls select,.management-controls input{flex-basis:100px}}

/* v6.35 enterprise capital markets */
.equity-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:12px 0}.equity-kpis>div{padding:12px;background:rgba(64,117,129,.13);border:1px solid rgba(140,192,196,.23);border-radius:9px;min-width:0}.equity-kpis b{display:block;color:#d6f5b0;font-size:14px;letter-spacing:-.35px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.equity-kpis span{font-size:11px;color:#abc0c4}.equity-row{padding:12px 0;border-bottom:1px solid rgba(130,170,176,.18)}.equity-row small{display:block;color:#a6b9bc;margin:4px 0}.equity-controls{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.equity-controls button{min-height:37px}.equity-warning{border-left:3px solid #e9b96e;padding:9px;background:#282924;margin:12px 0}.equity-holdings{font-size:12px;color:#abc1c2}.equity-progress{background:#1b3940;height:8px;border-radius:12px;overflow:hidden;margin:8px 0}.equity-progress>div{height:100%;background:#b9e984}.equity-select{min-width:110px;max-width:100%;padding:7px;background:#142e3c;color:#e5f3f4;border:1px solid #355869;border-radius:6px}@media(max-width:460px){.equity-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.equity-controls{flex-direction:column}.equity-controls button{width:100%}}

/* v6.36 international trade interface */
.global-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}
.global-stats>div{border:1px solid #365367;border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:5px;background:#102735}
.global-stats b{font-size:16px;color:#b9f59c;overflow-wrap:anywhere}.global-stats span{font-size:11px;color:#a8bac8}
.global-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:10px 0}
.global-grid button{min-width:0;white-space:normal;padding:8px 5px;overflow-wrap:anywhere;font-size:11px}
.global-market,.global-shipment{padding:10px 0;border-top:1px solid #38505b;display:flex;flex-direction:column;gap:5px;min-width:0}
.global-market small,.global-shipment small{color:#9fb4c2;line-height:1.5}.global-shipment span{font-size:12px}
.global-quote{padding:10px;background:#112736;border:1px solid #335568;border-radius:9px;margin:12px 0}
.global-quote .world-bar{font-size:12px;gap:8px}.global-log{font-size:11px;color:#bdc9d3;border-bottom:1px solid #273c49;padding-bottom:8px;overflow-wrap:anywhere}
@media(max-width:600px){.global-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.global-stats b{font-size:14px}}

@media (max-width:600px){
.world-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.world-tabs button{min-width:0;min-height:43px;font-size:11px;line-height:1.25;padding:7px 4px;overflow-wrap:anywhere}
}

/* v6.37 interactive international container terminal */
.transport-terminal{background:linear-gradient(180deg,rgba(18,42,51,.9),rgba(9,25,35,.96));border:1px solid rgba(135,201,187,.28)}
.transport-title{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.transport-title h3{margin-bottom:4px}.transport-title p{max-width:640px}
.transport-live{flex-shrink:0;padding:5px 8px;color:#b6eecf;font-size:10px;font-weight:800;border:1px solid #3f8166;border-radius:50px;background:#0f342a;white-space:nowrap}
.transport-live i{display:inline-block;width:6px;height:6px;background:#83d5a7;border-radius:50%;margin-right:5px;box-shadow:0 0 10px #8adaab}
.transport-tabs{display:flex;gap:6px;margin:14px 0 9px}.transport-tabs button{flex:1;text-align:center;border:1px solid #385463;background:#172b38;color:#acc4ce;padding:9px;border-radius:7px;font-weight:700;min-width:0}
.transport-tabs button.selected{border-color:#9cd4ad;color:#deffea;background:#274d3c}
.transport-scene-frame{position:relative;border:1px solid #3f5b65;border-radius:9px;overflow:hidden;background:#0a1925;box-shadow:inset 0 0 40px rgba(0,0,0,.2)}
#transportCanvas{width:100%;height:310px;display:block}
.transport-canvas-footer{display:flex;justify-content:space-between;padding:7px 12px;color:#a7c5c3;background:#102731;font:9px monospace;letter-spacing:.045em}
.transport-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:12px 0}
.transport-kpis>div{border:1px solid #34535b;border-radius:7px;background:#102631;padding:9px 5px;text-align:center;display:flex;flex-direction:column;gap:3px}
.transport-kpis b{font-size:17px;color:#c8e6d7;white-space:nowrap}.transport-kpis small{color:#92aeb7;font-size:10px}
.transport-policy{display:grid;gap:4px;margin:10px 0 14px}.transport-policy label{font-size:11px;color:#b4ced2}.transport-policy select{width:100%}
.transport-upgrades{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:8px 0 14px}
.transport-upgrades button{min-width:0;text-align:left;padding:8px;font-size:11px;line-height:1.45;white-space:normal;border:1px solid #3a6163;background:#1a3743;color:#d1e4db;border-radius:7px}
.transport-upgrades button b{display:block;color:#e2c587}.transport-upgrades button:disabled{opacity:.55}
.transport-manifest{max-height:210px;overflow:auto}.transport-manifest-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11px;border-bottom:1px solid #34505a;padding:7px 0}
.transport-manifest-row b{color:#d4e7e6}.transport-manifest-row span{color:#a2b9be}.transport-manifest-row strong{color:#e6c085;margin-left:auto;font-size:10px;text-transform:uppercase}
@media(max-width:600px){.transport-live{font-size:9px}.transport-title{display:block}.transport-live{display:inline-block;margin-top:5px}#transportCanvas{height:230px}.transport-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.transport-upgrades{grid-template-columns:1fr}.transport-canvas-footer{font-size:8px;gap:8px}}
@media(prefers-reduced-motion:reduce){.transport-live i{box-shadow:none}}

.transport-expand{width:100%;padding:10px;margin:8px 0 2px;background:linear-gradient(110deg,#285b47,#1b454c);border:1px solid #79a99a;border-radius:8px;color:#e0f7e9;font-size:12px;font-weight:700}
.transport-immersive{position:fixed;inset:0;z-index:100000;background:rgba(5,14,22,.98);display:flex;flex-direction:column;padding:clamp(9px,2vw,28px);color:#e2eee9;gap:12px;overflow-y:auto}
.transport-immersive-header{display:flex;justify-content:space-between;align-items:center;gap:10px;max-width:1500px;width:100%;margin:auto auto 0}
.transport-immersive-header b{color:#c5f0d5;letter-spacing:.12em;font-size:18px}.transport-immersive-header small{display:block;color:#83aeb1;font-size:11px;margin-top:5px}
.transport-immersive-header button,.transport-immersive-tools button{background:#15313f;border:1px solid #41616a;color:#dfefed;padding:9px 15px;border-radius:8px}
.transport-immersive-tools{max-width:1500px;width:100%;margin:0 auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.transport-immersive-tools button.selected{color:#d8fae2;background:#27614b;border-color:#90c7aa}
.transport-immersive-tools span{font:12px monospace;color:#b2cfc7;margin-left:auto}
.transport-immersive-canvas{max-width:1500px;width:100%;flex:1;min-height:260px;max-height:680px;margin:0 auto;border:1px solid #4a7279;border-radius:11px;background:#091a24;overflow:hidden}
#transportFullCanvas{width:100%;height:100%;display:block}
.transport-immersive-info{max-width:1500px;width:100%;margin:0 auto auto;line-height:1.6;color:#a5c2c3;font-size:12px}.transport-immersive-info p{margin:0 0 7px}
#transportFullManifest{font:11px monospace;color:#d8dfb2;line-height:1.5}
@media(max-width:600px){.transport-immersive{gap:8px}.transport-immersive-header b{font-size:12px}.transport-immersive-header button{font-size:11px}.transport-immersive-tools span{margin-left:0}.transport-immersive-canvas{flex:1;min-height:280px}.transport-immersive-info{font-size:11px}}
/* v6.38 international cargo lifecycle control */
.maritime-control{border-color:rgba(104,185,166,.25)}
.maritime-head h3{margin:0 0 6px;color:#c9f7e5}
.maritime-head p{line-height:1.5;color:#a2b7c4}
.maritime-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:13px 0}
.maritime-kpis>div{background:rgba(20,52,65,.65);border:1px solid #2b5160;border-radius:8px;padding:10px;min-width:0;display:flex;flex-direction:column;gap:3px}
.maritime-kpis b{font-size:18px;color:#b6eed4;font-variant-numeric:tabular-nums}
.maritime-kpis small{color:#91aebc;font-size:11px}
.maritime-controls{display:grid;grid-template-columns:1fr;gap:10px;margin:12px 0}
.maritime-controls label{display:grid;gap:5px;font-size:12px;font-weight:700;color:#d5e4ea}
.maritime-controls select{min-width:0;width:100%;border:1px solid #406272;background:#112534;color:#e7f3ed;border-radius:7px;padding:9px 7px}
.maritime-upgrades{display:grid;grid-template-columns:1fr;gap:7px;margin:10px 0}
.maritime-upgrades button{display:flex;justify-content:space-between;gap:10px;text-align:left;align-items:center;flex-wrap:wrap;border:1px solid #416474;background:#203b49;color:#d9e8e8;border-radius:8px;padding:10px;cursor:pointer}
.maritime-upgrades button:disabled{opacity:.5;cursor:default}.maritime-upgrades b{color:#c8f5d6}
.maritime-shipments{display:grid;gap:7px;max-height:550px;overflow:auto}
.maritime-manifest{background:rgba(16,35,48,.85);border:1px solid #315360;border-radius:8px;padding:10px;font-size:12px}
.maritime-manifest summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;gap:12px;color:#dbeae9}
.maritime-manifest summary span{color:#9ad9c0;text-transform:uppercase;font-size:10px;white-space:nowrap}
.maritime-manifest p{line-height:1.5;color:#b6c9d1}.maritime-manifest .maritime-warning{color:#ffbf9e}
.maritime-manifest [data-maritime-repair]{border:1px solid #cf9e69;background:#533529;border-radius:7px;color:#ffdcc0;padding:8px 10px}
.maritime-asset-list{display:grid;gap:6px;margin-top:8px}
.maritime-asset-list>div{border-left:3px solid #6bbaa6;background:#172e3c;padding:7px 9px;display:grid;gap:2px}
.maritime-asset-list b{font-family:monospace;color:#e3f5d1}.maritime-asset-list span,.maritime-asset-list small{color:#a9c4c7}
@media(min-width:680px){.maritime-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.maritime-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.maritime-upgrades{grid-template-columns:repeat(2,minmax(0,1fr))}}

.maritime-plan{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.maritime-plan button{color:#d6efeb;background:#284654;border:1px solid #62817d;border-radius:5px;padding:6px;font-size:11px}

.maritime-asset-list .maritime-asset-detail{border-left:3px solid #6bbaa6;background:#172e3c;padding:7px 9px}
.maritime-asset-detail summary{display:grid;gap:3px;cursor:pointer;list-style:none}
.maritime-asset-detail summary::-webkit-details-marker{display:none}
.maritime-asset-detail summary::before{content:'▸';font-size:10px;color:#a2dcc4;margin-right:4px}
.maritime-asset-detail[open] summary::before{content:'▾'}
.maritime-asset-detail ol{color:#91b4bd;margin:6px 0 0 16px;padding:0;font-size:11px;line-height:1.6}

/* Dockline v6.39 · Inland rail controls */
.rail-control{border:1px solid #3f6b68;background:linear-gradient(150deg,rgba(20,48,58,.95),rgba(11,24,37,.97));}
.rail-title{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.rail-title h3{color:#c4f8df;margin:0 0 8px}.rail-title p{max-width:550px}.rail-live{font:700 10px monospace;letter-spacing:.12em;color:#a8e5b8;background:#163e36;padding:7px 10px;border-radius:5px}.rail-control #railCanvas{width:100%;height:220px;display:block;border:1px solid #365561;background:#0b1f2c;border-radius:8px;box-sizing:border-box;margin:12px 0}.rail-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:12px 0}.rail-stats>div{background:#102936;border:1px solid #30535d;padding:9px 6px;text-align:center;border-radius:6px}.rail-stats b{display:block;color:#caf5d9;font-size:17px}.rail-stats span{font-size:10px;color:#a2bcc5}.rail-upgrades{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.rail-upgrades button{white-space:normal!important;min-height:43px;font-size:11px;text-align:left}.rail-manifest{margin:7px 0;background:#112a34;border:1px solid #31515d;padding:9px;border-radius:5px}.rail-manifest summary{cursor:pointer;overflow-wrap:anywhere}.rail-manifest p{font-size:11px}.rail-unit{display:flex;justify-content:space-between;gap:8px;padding:6px 0;border-top:1px solid #2b4950;font-size:11px}.rail-unit span{color:#a3c2ca;overflow-wrap:anywhere;text-align:right}@media(max-width:620px){.rail-upgrades{grid-template-columns:1fr}.rail-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.rail-control #railCanvas{height:168px}}

.rail-modal{position:fixed;z-index:99999;inset:0;background:rgba(2,9,15,.97);color:#d6ece6;padding:clamp(12px,3vw,32px);display:flex;flex-direction:column;gap:16px;box-sizing:border-box;overflow:auto}.rail-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.rail-modal-head b{font:700 clamp(13px,2vw,21px) monospace;letter-spacing:.09em}.rail-modal-head small{display:block;color:#85bfb7;margin-top:8px}.rail-modal-head button{flex-shrink:0}.rail-modal canvas{display:block;width:100%;height:min(58vh,470px);background:#0b1e2c;border:1px solid #4d7c7a;border-radius:9px}.rail-modal p{font-size:13px;color:#a6c5c2}.rail-modal #railBigManifest{font:12px/1.9 monospace;background:#102632;padding:12px;border:1px solid #2d505d;border-radius:7px;overflow-wrap:anywhere}@media(max-width:600px){.rail-modal canvas{height:38vh}.rail-modal-head{align-items:flex-start}}

/* v6.40 national railway construction and monitoring */
.national-rail{background:linear-gradient(150deg,#102734,#172a35);border:1px solid #4c766e}.national-rail-head{display:flex;align-items:center;justify-content:space-between;gap:9px;flex-wrap:wrap}.national-rail-head h3{color:#c5f8de;margin:0}.national-rail-head span{font:700 10px monospace;color:#9bd6ac;letter-spacing:.08em}.national-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.national-stats>div{border:1px solid #345a60;background:#0d2430;padding:10px;border-radius:7px}.national-stats strong{display:block;color:#e5f7bd;font-size:19px}.national-stats small{display:block;color:#9cb7c0;font-size:10px}.national-rail h4{margin-top:16px;margin-bottom:7px;color:#cfe9d9}.national-rail select,.national-rail button{max-width:100%;min-width:0}.national-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.national-actions button{white-space:normal!important;min-height:40px;font-size:11px}.national-rail #nationalEstimate{margin-top:8px}
@media(max-width:500px){.national-actions{grid-template-columns:1fr}.national-rail .world-bar{overflow-wrap:anywhere}}

.national-roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin:10px 0}.national-roster span{font-size:11px;background:#122c36;padding:7px 9px;border:1px solid #31505c;border-radius:5px;overflow-wrap:anywhere}@media(max-width:500px){.national-roster{grid-template-columns:1fr}}

/* Railway operations 6.41 */
.national-rail #nationalTimetable,.national-rail #nationalDepotSite,.national-rail #nationalWagon,.national-rail #nationalLoco{width:100%;margin:5px 0 9px;background:#102833;color:#e0f3ed;border:1px solid #416d74;border-radius:5px;padding:9px}
.national-rail [data-national-repair-track]{flex:0 1 auto;min-width:130px}.national-rail .world-bar{gap:10px}
@media(max-width:500px){.national-rail .world-bar{flex-wrap:wrap}.national-rail [data-national-repair-track]{width:100%}}

/* v6.42 - centralized railway control desktop/mobile */
.rail-realism-panel{margin:12px 0;padding:12px;border:1px solid #41637b;border-radius:12px;background:linear-gradient(130deg,#123040,#11222f)}
.rail-realism-panel h4{color:#b6e7df;margin:12px 0 7px}
.rail-realism-panel .national-actions{display:flex;gap:6px;flex-wrap:wrap}
.rail-realism-panel .national-actions button{flex:1 1 130px;min-height:38px}
.rail-dispatch{max-height:260px;overflow:auto;border:1px solid #436071;border-radius:8px;background:#10232f}
.rail-dispatch-head,.rail-dispatch-row{display:grid;grid-template-columns:1.1fr .7fr 1.2fr;gap:5px;align-items:center;padding:7px 8px;border-bottom:1px solid #355060;font-size:11px}
.rail-dispatch-head{font-weight:700;color:#92e7ca;background:#203d4b}
.rail-dispatch-row small{font-size:10px;color:#c7d8db;overflow-wrap:anywhere}
@media(max-width:480px){.rail-dispatch-head,.rail-dispatch-row{grid-template-columns:1fr;gap:3px}.rail-dispatch-head span{display:none}.rail-realism-panel{padding:9px}}

/* Dockline v6.43 Rail Yard */
.rail-yard{background:linear-gradient(145deg,#102b36,#1a3339);border:1px solid #517d81;margin-top:14px}.yard-heading{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.yard-heading h3{margin:0;color:#e4f1d4}.yard-heading p{color:#b3ccd0;font-size:12px;line-height:1.5}.yard-live{font:700 10px monospace;color:#9ff2b4;letter-spacing:.1em}.rail-yard #yardScene{display:block;width:100%;max-height:340px;aspect-ratio:900/344;height:auto;background:#102b36;border:1px solid #466d73;border-radius:8px;margin:10px 0}.rail-yard #yardSite,.rail-yard select{max-width:100%;width:100%;padding:9px;background:#102c39;color:#e2e9e5;border:1px solid #5b8183;border-radius:6px}.yard-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.yard-metrics>div{border:1px solid #42676e;border-radius:6px;background:#112833;padding:10px}.yard-metrics b{display:block;font-size:19px;color:#daf3b6}.yard-metrics small{font-size:10px;color:#a8c4c9}.yard-summary{display:grid;gap:6px}.yard-summary>div{display:flex;justify-content:space-between;flex-wrap:wrap;gap:7px;border-bottom:1px solid #40616c;padding:7px 1px;font-size:12px}.yard-summary span{color:#afc8cf}.yard-purchases{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.yard-purchases button{white-space:normal;min-height:56px;font-size:12px}.yard-purchases small{display:block;color:#aac1bd;font-size:10px;padding-top:4px}.yard-sorting{display:grid;gap:7px}.rail-yard h4{color:#d7f0d8;margin:16px 0 9px}@media(max-width:520px){.yard-purchases{grid-template-columns:1fr}.yard-heading h3{font-size:16px}.rail-yard #yardScene{min-height:130px}}

.rail-yard #yardExpand{display:block;width:100%;margin:2px 0 10px;padding:10px;border:1px solid #64869a;background:#173d4a;color:#d8e9e9;border-radius:7px;font-weight:700}.rail-yard .yard-roster{display:grid;gap:5px;margin:0 0 12px;font-size:11px;color:#c9e3d8}.yard-cinematic-dialog{background:#0c222f;border:1px solid #588a95;border-radius:14px;color:#ecf6ef;width:min(1100px,95vw);max-width:95vw;padding:14px;box-shadow:0 0 0 100vmax rgba(2,9,13,.7)}.yard-cinematic-dialog::backdrop{background:rgba(2,9,13,.77)}.yard-cinematic-dialog canvas{display:block;width:100%;height:auto;aspect-ratio:900/344;border:1px solid #40646e;border-radius:7px}.yard-dialog-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin:0 0 12px}.yard-dialog-head button{background:#284757;color:#e2f1ec;border:1px solid #537e8e;border-radius:7px;padding:7px 12px}

/* Dockline v6.44 — dispatcher and interlocking workstation */
.dispatch44{margin-top:14px;border:1px solid #426d7d;border-radius:14px;padding:14px;background:linear-gradient(145deg,#0e2936,#0c1b28);box-shadow:inset 0 1px #54758544}.dispatch44-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.dispatch44-head h3{font-size:17px;margin:3px 0 5px;color:#eaf6ee}.dispatch44-head p{font-size:11px;color:#a8c9d0}.dispatch44-kicker{font-size:9px;color:#b4ee91;letter-spacing:1.7px;font-weight:900}.dispatch44-status{padding:6px 9px;background:#1f473d;border:1px solid #4a8472;border-radius:7px;font-size:10px;font-weight:850;white-space:nowrap}.dispatch44-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:12px 0}.dispatch44-metrics>div{background:#122f3e;border:1px solid #2b5262;border-radius:9px;padding:9px 6px;text-align:center}.dispatch44-metrics b{font-size:18px;color:#d3ed87;display:block}.dispatch44-metrics small{font-size:9px;color:#b4cbd2}.dispatch44 label{display:block;color:#aac3d0;font-size:11px;margin:9px 0 4px;font-weight:700}.dispatch44 select{width:100%;padding:8px 7px;min-width:0;background:#112e3b;border:1px solid #426171;border-radius:7px;color:#f4f9fa}.dispatch44-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.dispatch44-actions{display:flex;gap:6px;flex-wrap:wrap;margin:9px 0}.dispatch44-actions button{font-size:11px;padding:8px}.dispatch44-primary{background:#bfe781;color:#10281d;border-color:#c9f49a}.dispatch-schematic{display:flex;gap:5px;overflow-x:auto;padding:12px 3px;margin-top:10px;background:#091a25;border:1px solid #38596a;border-radius:9px;min-height:74px}.dispatch-block{min-width:62px;display:flex;flex:1 0 62px;flex-direction:column;justify-content:center;align-items:center;gap:2px;border-radius:6px;background:#1c303a;border:1px solid #45616b}.dispatch-block b{font-size:11px}.dispatch-block small{font-size:9px}.dispatch-light{width:10px;height:10px;border-radius:50%;background:#60727d;box-shadow:0 0 4px #142635}.dispatch-block.green{border-color:#4b8a6b;background:#173b32}.dispatch-block.green .dispatch-light{background:#a2ef83;box-shadow:0 0 9px #80f58f}.dispatch-block.danger{border-color:#e77976;background:#46262c}.dispatch-block.danger .dispatch-light{background:#ff777d;box-shadow:0 0 9px #ff4d6f}.dispatch-block.train{border-color:#e8bb69;background:#453825}.dispatch-block.train .dispatch-light{background:#ffd37a}.dispatch44-strip{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0}.dispatch44-strip span{background:#142f3a;border-radius:5px;font-size:10px;padding:5px 7px}.dispatch44-strip b{color:#acd1d8}.dispatch44 h4{font-size:12px;margin:13px 0 5px;color:#e4efec}.dispatch44-points>div{display:flex;gap:5px;justify-content:space-between;align-items:center;padding:6px;border-bottom:1px solid #244857;font-size:10px}.dispatch44-points b{color:#b8ea87}.dispatch44-points button{padding:5px 8px;font-size:10px}.dispatch44-departures>div{display:grid;grid-template-columns:1fr;gap:3px;padding:8px 5px;border-bottom:1px solid #294550}.dispatch44-departures strong{font-size:11px}.dispatch44-departures span,.dispatch44-departures small{font-size:10px;color:#b2d2dc;overflow-wrap:anywhere}@media(max-width:450px){.dispatch44{padding:10px}.dispatch44-head{flex-wrap:wrap}.dispatch44-grid{grid-template-columns:1fr}.dispatch44-metrics b{font-size:14px}.dispatch44-metrics small{font-size:8px}}

/* v6.45 railway traffic control workstation */
.rail45-panel,.rail45-body{color:#dce8ec}.rail45-head{display:flex;gap:14px;justify-content:space-between;align-items:center;margin:6px 0 14px}.rail45-head h3{margin:3px 0;font-size:1.2rem;color:#e7f5ef}.rail45-head p{font-size:12px;color:#a8bcbf;max-width:600px}.rail45-kicker{font-size:10px;letter-spacing:.13em;color:#c6e98f;font-weight:700}.rail45-head button,.rail45-relief button,.rail45-table button{background:#263b42;border:1px solid #5c7377;border-radius:6px;color:#d9f3ed;padding:8px 10px;cursor:pointer}.rail45-head button:hover,.rail45-table button:hover{background:#355660}.rail45-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:8px 0 15px}.rail45-metrics>div{border:1px solid #304c51;background:#142a33;border-radius:8px;padding:10px 6px;text-align:center}.rail45-metrics strong{display:block;font-size:20px;color:#d7ebaa}.rail45-metrics span{font-size:10px;color:#9ab2bc}.rail45-diagram{padding:8px;background:#0d1b25;border:1px solid #38555b;border-radius:9px;overflow:auto}.rail45-svg{display:block;min-width:560px;width:100%;height:auto}.rail45-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:13px 0}.rail45-settings label,.rail45-relief label{font-size:11px;color:#b8c8ca;display:block;min-width:0}.rail45-settings select,.rail45-relief select,.rail45-driver select{display:block;width:100%;max-width:100%;box-sizing:border-box;min-width:0;margin-top:5px;background:#1a3139;color:#f2f8f7;border:1px solid #45626b;border-radius:6px;padding:7px}.rail45-panel h4,.rail45-body h4{font-size:13px;color:#c5e7a1;margin:15px 0 8px}.rail45-scroll{overflow-x:auto;max-width:100%;border:1px solid #344c51;border-radius:8px}.rail45-table{border-collapse:collapse;min-width:690px;width:100%;font-size:11px}.rail45-table th,.rail45-table td{padding:7px;border-bottom:1px solid #28434a;text-align:left;white-space:nowrap}.rail45-table th{font-size:10px;color:#8fadb5;background:#1b3038}.rail45-aspect.red{color:#ff9991}.rail45-aspect.yellow{color:#ffd585}.rail45-aspect.green{color:#c0ed9a}.rail45-drivers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.rail45-driver{padding:9px;border:1px solid #345055;border-radius:7px;background:#182e38;min-width:0}.rail45-driver strong,.rail45-driver small{display:block}.rail45-driver small{color:#98afb4;font-size:10px}.rail45-relief{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:end;margin-top:12px}.rail45-journal{max-height:160px;overflow:auto;color:#94b5bc;font-size:11px}.rail45-journal>div{padding:5px 0;border-bottom:1px solid #2b424a}.rail45-overlay[hidden]{display:none!important}.rail45-overlay{position:fixed;inset:0;z-index:9999;background:rgba(2,8,15,.92);display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box}.rail45-window{width:min(1300px,100%);max-height:96vh;overflow:auto;background:#10232d;border:1px solid #527179;box-shadow:0 15px 80px #020b12;border-radius:12px}.rail45-body{padding:22px}.rail45-body .rail45-diagram{min-height:175px}.rail45-body .rail45-svg{min-width:780px}.rail45-body .rail45-table{min-width:800px}@media(max-width:620px){.rail45-head{flex-direction:column;align-items:stretch}.rail45-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.rail45-settings,.rail45-drivers{grid-template-columns:1fr}.rail45-relief{grid-template-columns:1fr}.rail45-overlay{padding:4px}.rail45-body{padding:11px}.rail45-window{max-height:99vh}}

.rail45-primary-actions{display:flex;gap:8px;flex-wrap:wrap}.rail45-primary-actions .rail45-danger{color:#ffd3c9;border-color:#c06360;background:#482d38}.rail45-primary-actions .rail45-danger:hover{background:#69333e}.rail45-platforms{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:7px}.rail45-platform{border:1px solid #3c555c;background:#162b35;border-radius:7px;padding:9px;display:flex;flex-direction:column;gap:5px}.rail45-platform strong{font-size:11px}.rail45-platform span{color:#d1e5a7;font-size:10px;font-weight:700}.rail45-platform small{color:#9bb3bd}.rail45-empty{color:#92abb5;font-size:11px}

/* v6.45 immersive rail traffic / train simulator */
.rail45-view-switch{display:flex;gap:9px;flex-wrap:wrap;margin:8px 0}.rail45-view-switch button{font-weight:700;padding:10px 16px;border-radius:8px;border:1px solid #42656e;background:#1a303a;color:#d0e5e3;cursor:pointer}.rail45-view-switch button.selected{color:#e6f7ce;background:#35483a;border-color:#b4d980}.rail45-camera-controls{display:flex;gap:14px;flex-wrap:wrap;padding:8px 0 13px}.rail45-camera-controls label{flex:1;min-width:190px;font-size:11px;color:#afc6c8}.rail45-camera-controls select{width:100%;background:#132c36;color:#e4f0e8;border:1px solid #45606b;border-radius:6px;padding:9px;margin-top:4px}.rail45-train-scene{display:block;width:100%;max-height:55vh;background:#152e35;border-radius:7px}.rail45-train-stats{display:flex;flex-wrap:wrap;gap:8px;padding:11px 0}.rail45-train-stats span{flex:1 1 115px;background:#1c3540;border:1px solid #34525b;border-radius:7px;padding:8px;color:#9ab5b8;font-size:11px}.rail45-train-stats b{display:block;color:#e0f5d8;font-size:15px;margin-top:3px}.rail45-train-progress{height:6px;background:#304953;border-radius:6px;overflow:hidden}.rail45-train-progress>div{height:100%;background:#a9dd83;transition:width .25s}.rail45-train-caption{font-size:11px;color:#9bb8b9}.rail45-train-empty{min-height:260px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:9px}.rail45-train-icon{font-size:52px}.rail45-train-empty p{max-width:430px;color:#a6c0c2;font-size:13px}.rail45-body .rail45-train-scene{max-height:65vh}@media(max-width:620px){.rail45-camera-controls{display:block}.rail45-train-scene{max-height:48vh}.rail45-view-switch button{flex:1}}
/* Dockline v6.46 — tactile train cab and live traction controls */
.rail46-cab{padding:15px;margin:12px 0 16px;border:1px solid #63848b;border-radius:12px;background:linear-gradient(145deg,#162c36,#0b1b25);box-shadow:inset 0 1px rgba(218,250,218,.12);color:#e2f4ed}
.rail46-title{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.rail46-title h4{margin:2px 0 10px;color:#d9f6bd;font-size:15px}
.rail46-eyebrow{font-size:10px;letter-spacing:.13em;color:#a1c2bd}
.rail46-drive-badge{font-size:10px;font-weight:800;border:1px solid #6b8d7b;border-radius:30px;padding:7px 11px;white-space:nowrap}
.rail46-drive-badge.is-manual{background:#45502d;color:#f4ecb0}.rail46-drive-badge.is-auto{background:#1d4a4d;color:#a2ecde}
.rail46-instruments{display:grid;grid-template-columns:1.15fr repeat(3,1fr);gap:9px;margin:8px 0 14px}
.rail46-speed,.rail46-gauge{border-radius:9px;background:#0b1d25;border:1px solid #36535b;padding:10px 12px;min-width:0}
.rail46-speed{border-left:4px solid #b7e388;background:linear-gradient(90deg,rgba(168,230,113,.14) var(--v),#0b1d25 var(--v))}
.rail46-speed span,.rail46-gauge small{display:block;font-size:10px;letter-spacing:.08em;color:#a7c0c3}
.rail46-speed strong{display:block;font-size:36px;line-height:1.12;font-variant-numeric:tabular-nums;color:#e8f8ce}
.rail46-speed small,.rail46-gauge span{display:block;font-size:11px;color:#a6bec4}
.rail46-gauge strong{display:block;font-size:24px;line-height:1.6;color:#e6f7e8;font-variant-numeric:tabular-nums}
.rail46-gauge em{font-size:12px;font-weight:400;font-style:normal;color:#9ab5bb}
.rail46-modes{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.rail46-modes button,.rail46-levers button{border:1px solid #577782;border-radius:7px;padding:10px 12px;background:#233a47;color:#e0f1e9;cursor:pointer;font-weight:600}
.rail46-modes button.selected{background:#476044;color:#f2fbd8;border-color:#add48b}
.rail46-levers{display:grid;grid-template-columns:1fr 1fr auto;gap:15px;align-items:center}
.rail46-levers label{font-size:12px;font-weight:700;color:#d0e8e4;min-width:0}
.rail46-levers input{display:block;width:100%;accent-color:#b3e98d;margin:8px 0 0;min-height:25px}
.rail46-levers button.rail46-emergency{background:#642c37;border-color:#db8688;color:#ffe6df}
.rail46-levers button:disabled{opacity:.4;cursor:not-allowed}
.rail46-tip{margin-top:12px;font-size:11px;color:#a0bfc5;line-height:1.5}
@media(max-width:800px){.rail46-instruments{grid-template-columns:repeat(2,minmax(0,1fr))}.rail46-levers{grid-template-columns:1fr 1fr}.rail46-levers button{grid-column:1/-1}}
@media(max-width:420px){.rail46-title{align-items:flex-start}.rail46-gauge strong{font-size:19px}.rail46-speed strong{font-size:30px}.rail46-instruments{gap:5px}.rail46-gauge,.rail46-speed{padding:9px}}

/* v6.47 — perspective train simulator, force model readouts & cab conditions */
.rail47-panel{padding:15px 16px;margin:12px 0 15px;background:linear-gradient(125deg,#112a34,#0d1b2b);border:1px solid #4f7880;border-radius:11px;box-shadow:inset 0 1px #ffffff15;color:#e4efe9}
.rail47-heading{display:flex;align-items:start;justify-content:space-between;gap:14px;flex-wrap:wrap}
.rail47-heading h4{color:#d9f6cf;font-size:15px;margin:3px 0 13px}.rail47-eyebrow{font-size:10px;letter-spacing:.13em;font-weight:700;color:#99cbbe}
.rail47-weather{border:1px solid #49777d;border-radius:30px;padding:6px 11px;color:#c0e2da;background:#1d3d42;font-size:11px;white-space:nowrap}
.rail47-telemetry{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.rail47-telemetry>div{background:#0d202a;border:1px solid #31545e;border-radius:7px;padding:9px;min-width:0}
.rail47-telemetry small{display:block;font-size:9px;color:#9fbab9;letter-spacing:.07em}.rail47-telemetry strong{display:block;font-variant-numeric:tabular-nums;font-size:19px;color:#e3f2cc;margin-top:3px}.rail47-telemetry em{font-size:10px;color:#8eafb4;font-weight:400;font-style:normal}
.rail47-bar{display:flex;align-items:center;gap:9px;font-size:10px;margin:13px 0;color:#a3c9be}.rail47-bar>div{height:8px;background:#283f47;flex:1;border-radius:7px;overflow:hidden}.rail47-bar i{display:block;height:100%;background:#e4b47d;border-radius:5px;transition:width .2s}.rail47-bar b{font-size:9px;color:#eecf95}
.rail47-actions{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.rail47-actions label{min-width:200px;flex:1;font-size:11px;color:#c6dddd}.rail47-actions select,.rail47-actions button{display:block;width:100%;padding:9px;background:#1c3741;border:1px solid #4d7179;border-radius:7px;color:#e5f1e9;margin-top:5px;font-weight:600}.rail47-actions button{width:auto;cursor:pointer;min-height:36px}
.rail47-panel p{font-size:10px;line-height:1.5;color:#91b0b6;margin:11px 0 0}
.rail45-train-scene{aspect-ratio:1100/430;filter:contrast(1.05)}
@media(max-width:780px){.rail47-telemetry{grid-template-columns:repeat(2,minmax(0,1fr))}.rail47-actions button{width:100%}}
@media(max-width:420px){.rail47-panel{padding:10px}.rail47-telemetry strong{font-size:17px}.rail47-telemetry>div{padding:7px}.rail47-weather{font-size:10px}}

/* Dockline v1.8.9 — optional, readable business finances and milestones */
.dlp-wrap{max-width:1560px;margin:10px auto 15px;padding:0 16px;color:#e6f0f6}
#dlProgressionBoard{background:linear-gradient(140deg,#112b3b,#0d1b2a);border:1px solid #456777;border-radius:17px;padding:16px;box-shadow:0 10px 35px #06111c4f}
.dlp-head,.dlp-rowhead,.dlp-compact{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
.dlp-head h2{font-size:clamp(17px,2vw,23px);margin:4px 0 0;color:#f0fbff}.dlp-head p{font-size:13px;opacity:.83;margin:5px 0}.dlp-kicker{letter-spacing:.15em;font-size:10px;color:#9acbd0;font-weight:800}
.dlp-head button,.dlp-compact button,.dlp-views button,.dlp-next button,.dlp-mission button{cursor:pointer;background:#17384a;border:1px solid #52778a;border-radius:9px;color:#e9f7fe;padding:8px 12px;font-weight:700;font-size:12px}
.dlp-columns{display:grid;grid-template-columns:minmax(0,1.07fr) minmax(0,.93fr);gap:12px;margin-top:14px}
.dlp-finance,.dlp-growth{min-width:0;border:1px solid #37596b;border-radius:13px;background:#081e2bb5;padding:14px}
.dlp-finance h3,.dlp-growth h3{margin:0;font-size:15px;color:#f6feff}.dlp-finance h4{font-size:12px;margin:13px 0 7px;color:#b5d4dd}
.dlp-views{display:flex;gap:5px;flex-wrap:wrap}.dlp-views button{padding:7px 8px;color:#d3e7ef}.dlp-views .active{background:#25627a;border-color:#69bbd5;color:white}
.dlp-finance-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}
.dlp-finance-kpis>div{min-width:0;background:#122f3e;padding:11px;border-radius:10px}.dlp-finance-kpis span,.dlp-finance-kpis strong{display:block}.dlp-finance-kpis span{font-size:11px;color:#bdd5db}.dlp-finance-kpis strong{font-size:clamp(14px,1.7vw,23px);margin-top:6px;white-space:nowrap}
.dlp-finance-kpis .dlp-plus{background:#123c37}.dlp-finance-kpis .dlp-minus{background:#4c2a31}.dlp-finance-rest{border-top:1px solid #345565}.dlp-finance-rest>div,.dlp-cost{display:flex;justify-content:space-between;gap:12px;padding:6px 0;font-size:12px;border-bottom:1px solid #35536555}.dlp-finance-rest b,.dlp-cost b{white-space:nowrap;color:#f1fbff}
.dlp-costs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.dlp-muted,.dlp-disclaimer{font-size:11px;line-height:1.55;color:#a9c0c9;margin:9px 0 0}.dlp-nohistory{padding:18px;background:#2c3546;border-radius:10px;font-size:13px;line-height:1.5}
.dlp-missions{display:grid;gap:7px;margin-top:10px}.dlp-mission{border:1px solid #375468;border-radius:10px;padding:9px;background:#102a38}.dlp-mission.is-claimed{background:#173f3c;border-color:#387866}.dlp-mission.is-ready{border-color:#8fc69f}
.dlp-mission-head,.dlp-mission-actions{display:flex;justify-content:space-between;align-items:center;gap:10px}.dlp-mission-head b{font-size:12px}.dlp-mission-head small{color:#ade3bb;white-space:nowrap;font-size:12px;font-weight:800}.dlp-meter{height:5px;background:#243b47;border-radius:8px;overflow:hidden;margin:8px 0}.dlp-meter span{height:100%;background:#7cd1b1;display:block}.dlp-mission-actions small{font-size:11px;color:#b6cbd3;line-height:1.35;min-width:0}.dlp-mission button{white-space:nowrap;padding:6px 10px;background:#266859;border-color:#6bae91}.dlp-mission button:disabled{opacity:.62;cursor:default;background:#243b49;border-color:#4a6470}
.dlp-next{margin-top:12px;border:1px solid #3c6371;background:#123341;border-radius:11px;padding:12px;display:flex;justify-content:space-between;align-items:center;gap:16px}.dlp-next strong{font-size:13px}.dlp-next p{margin:6px 0;font-size:12px}.dlp-next small{font-size:11px;color:#b5d4df}.dlp-next button{white-space:nowrap}.dlp-flash{margin:10px 0 0;border-radius:8px;padding:9px;background:#194b44;font-size:12px}
.dlp-compact{min-height:48px;font-size:12px}.dlp-compact strong{font-size:14px}
@media(max-width:850px){.dlp-wrap{padding:0 9px}.dlp-columns{grid-template-columns:1fr}.dlp-finance-kpis strong{font-size:17px}.dlp-next{align-items:flex-start;flex-wrap:wrap}.dlp-costs{grid-template-columns:1fr}}
@media(max-width:410px){#dlProgressionBoard{padding:10px}.dlp-finance,.dlp-growth{padding:10px}.dlp-finance-kpis{gap:5px}.dlp-finance-kpis>div{padding:7px}.dlp-finance-kpis span{font-size:10px}.dlp-finance-kpis strong{font-size:14px}.dlp-rowhead{align-items:flex-start}.dlp-mission-actions small{font-size:10px}}

/* Dockline v1.9.1 Smart Assistant + colorful view toggle */
.dla-wrap{max-width:1500px;margin:9px auto 5px;padding:0 16px}
.dla-board{border:1px solid #467a8b;background:linear-gradient(130deg,#122f3b,#0d2230);border-radius:13px;padding:14px;color:#e2f4f0;box-shadow:0 7px 22px #05121c33}
.dla-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
.dla-head h2{font-size:17px;margin:0 0 3px}.dla-head p{color:#a8c9d1;font-size:12px}
.dla-heading-tag{color:#9de4c3;font-size:10px;font-weight:850;letter-spacing:1px}
.dla-controls{display:flex;gap:7px;flex-wrap:wrap}.dla-controls button,.dla-action{padding:8px 12px;border:1px solid #59889c;border-radius:8px;background:#183f51;color:#e9f7fc;font-size:12px}
.dla-controls button:hover,.dla-action:hover{border-color:#a4e6c4;background:#235568}
.dla-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,305px),1fr));gap:9px;margin-top:13px}
.dla-issue{display:flex;flex-direction:column;gap:7px;border:1px solid #426276;background:#0b2330;border-radius:10px;padding:12px;min-width:0}
.dla-issue.dla-warning{border-left:4px solid #f5b95e}.dla-issue.dla-critical{border-left:4px solid #f17b82}.dla-issue.dla-ok{border-left:4px solid #76d8ae}.dla-issue.dla-info{border-left:4px solid #6bb9f5}
.dla-issue strong{font-size:13px}.dla-issue p{color:#bfd0d9;font-size:12px;line-height:1.5;flex:1}.dla-issue small{color:#83b9c7}
.dla-action{align-self:flex-start;background:#22637b}.dla-action:disabled{opacity:.6}
.dla-message{font-size:12px;color:#b8eac6;margin:10px 0 0}.dla-message.error{color:#ffb8b8}
.dl-visual-button{background:#234657;color:#cceff9;border-color:#609bb0;white-space:nowrap}
@media(max-width:600px){.dla-wrap{padding:0 7px;margin:6px auto}.dla-board{padding:11px}.dla-head h2{font-size:15px}.dla-list{grid-template-columns:1fr}.dl-visual-button{font-size:10px;padding:7px 8px}}

/* v1.9.9 subject camera and package journey: visible in the scene, above non-interactive canvas and away from the old toolbar */
.dl98-camera{position:absolute;z-index:9;top:51px;right:10px;width:min(320px,calc(100% - 20px));background:#0b2130ed;border:1px solid #6b96a0;border-radius:12px;padding:9px 10px;color:#ecf6ee;box-shadow:0 8px 26px #071622a8;backdrop-filter:blur(8px);pointer-events:auto}
.dl99-journey{position:absolute;z-index:9;top:146px;right:10px;width:min(320px,calc(100% - 20px));background:#11283aed;border:1px solid #7399a7;border-radius:12px;padding:9px 10px;color:#ecf6ee;box-shadow:0 8px 26px #0716229c;backdrop-filter:blur(8px);pointer-events:auto}
.dl99-journey .dl98-head button{font-size:10px;padding:3px 6px;background:#3e5a27;border-color:#86b569;color:#f3ffe6}
.dl99-journey .dl98-head button[aria-pressed="false"]{background:#273948;border-color:#5d7f84;color:#ecf6ee}
.dl99-journey .dl98-actions button:last-child{background:#365162;border-color:#63899d}
.dl98-head,.dl98-actions{display:flex;align-items:center;gap:6px}.dl98-head{justify-content:space-between;margin-bottom:6px;font-weight:850;font-size:11px}.dl98-head button{font-size:10px;padding:3px 6px;background:#22414a;border-color:#5d7f84}
.dl98-actions select{width:100%;min-width:0;flex:1;background:#102f3f;border:1px solid #558391;border-radius:7px;font-size:11px;padding:7px 4px;color:#f3fff4}.dl98-actions button{font-size:10px;padding:7px 7px;background:#244251;border-color:#527988;white-space:nowrap}.dl98-actions button[aria-pressed="true"]{background:#c9f583;color:#172c1e;border-color:#c9f583}
.dl98-caption{font-size:10px;color:#afd1d6;padding-top:5px;white-space:normal}
@media(max-width:730px){.dl98-camera{left:7px;right:auto;top:51px;width:min(315px,calc(100% - 14px));padding:6px 7px}.dl99-journey{left:7px;right:auto;top:144px;width:min(315px,calc(100% - 14px));padding:6px 7px}.dl98-actions button{padding:7px 5px}.dl98-caption{font-size:9px}}
@media(max-width:520px){.dl98-camera{top:9px;left:7px;width:calc(100% - 14px);max-width:none}.dl99-journey{top:92px;left:7px;width:calc(100% - 14px);max-width:none}.dl98-caption{display:none}.dl98-head{margin-bottom:3px}.dl98-head span{font-size:10px}.dl98-actions select{font-size:10px;padding:6px 3px}.dl98-actions button{min-height:31px}.scene .map-legend{top:168px!important;max-width:57%!important}.scene .badge-map{top:168px;right:9px;left:auto;max-width:39%;font-size:9px}.cinema-time{display:none}}
@media(prefers-reduced-motion:reduce){.dl98-camera,.dl99-journey{backdrop-filter:none}}

/* v2.0.2 — one-click operations advice; no controls cover the warehouse canvas. */
.dl202-advisor{padding:8px 13px;background:#102938;border-bottom:1px solid #375363;color:#e2f1f5}
.dl202-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.dl202-top>div{min-width:0;display:flex;flex-direction:column;gap:2px}
.dl202-kicker{color:#b5ef94;font-size:9px;font-weight:850;letter-spacing:1.05px}
.dl202-top strong{font-size:12px;line-height:1.3}
.dl202-top button{font-size:11px;white-space:nowrap;padding:6px 10px;border-color:#6c9a9e;background:#1e4351}
.dl202-note{color:#afc7d0;font-size:10px;margin-top:4px;line-height:1.4}
.dl202-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,265px),1fr));gap:8px;margin:10px 0 2px;max-height:210px;overflow-y:auto}
.dl202-card{min-width:0;background:#142e3b;border:1px solid #3a5963;border-left:3px solid #9cd39b;border-radius:10px;padding:10px}
.dl202-card.urgent{border-left-color:#ff987a}
.dl202-card.warning{border-left-color:#f0c66f}
.dl202-card h3{font-size:12px;color:#f2fafc;margin:0 0 5px}
.dl202-card p{font-size:11px;line-height:1.45;color:#bbd1d8;margin:0 0 7px}
.dl202-card .dl202-cost{color:#f2dbaf;font-weight:700;font-size:10px}
.dl202-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.dl202-actions button{font-size:10px;padding:6px 9px;min-height:32px;background:#274f55;border:1px solid #61908e}
.dl202-actions button.dl202-primary{background:#c9f682;color:#1b301c;border-color:#c9f682}
.dl202-message{font-size:10px;color:#d1e9dc;min-height:0;margin-top:3px}
.dl202-message:empty{display:none}
@media(max-width:520px){.dl202-advisor{padding:7px 10px}.dl202-cards{max-height:270px;grid-template-columns:1fr}.dl202-top button{white-space:normal;max-width:43%;padding:6px}.dl202-note{font-size:10px}}
/* v2.0.3 guided warehouse placement - compact on mobile */
.dl203-layout{padding:9px 13px;background:#142b37;border-bottom:1px solid #4b6c77;color:#e8f4f6}
.dl203-top{display:flex;gap:10px;justify-content:space-between;align-items:center}
.dl203-top>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.dl203-tag{font-size:9px;letter-spacing:1px;font-weight:800;color:#b9f5cf}
.dl203-top strong{font-size:12px}
.dl203-top button,.dl203-toolbar button,.dl203-buttons button{font-size:10px;padding:7px 9px;border:1px solid #6b9a9a;background:#254752;color:#eff9f8;border-radius:8px}
.dl203-top button{white-space:nowrap}
.dl203-intro{font-size:10px;color:#b3ccd3;line-height:1.4;margin:4px 0}
.dl203-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px}
.dl203-toolbar select{min-width:170px;max-width:100%;border:1px solid #729795;background:#122e3d;color:#fff;border-radius:8px;padding:8px;font-size:12px}
.dl203-info{display:flex;flex-wrap:wrap;gap:8px;color:#d0e6e8;font-size:10px;margin:7px 0}
.dl203-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:8px;max-height:260px;overflow:auto;margin:8px 0}
.dl203-choice{padding:9px;border-radius:10px;background:#193846;border:1px solid #4c7784;min-width:0}
.dl203-choice.selected{border:2px solid #ffe199}
.dl203-choice strong{display:block;font-size:11px}
.dl203-choice p{font-size:10px;color:#c2dce1;margin:5px 0}
.dl203-choice small{font-size:10px;color:#e3d5a5}
.dl203-buttons{display:flex;gap:7px;margin-top:8px}
.dl203-buttons button.dl203-primary{color:#163021;background:#c9f58c;border-color:#c9f58c;font-weight:800}
.dl203-footer{font-size:10px;color:#bcd1d5;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.dl203-footer button{font-size:10px;background:transparent;color:#e7f9e8;border:1px solid #527e83;padding:4px 8px;border-radius:7px}
.dl203-empty{font-size:11px;color:#d7dddd}
@media(max-width:520px){.dl203-layout{padding:8px 10px}.dl203-top button{white-space:normal;max-width:42%}.dl203-choices{max-height:225px;grid-template-columns:1fr}.dl203-choice{padding:8px}.dl203-toolbar select{flex:1;min-width:150px}}

/* v2.0.4 blueprint planner: compact by default, responsive when expanded */
.dl204-blueprints{background:#132b38;color:#eaf4f4;border-bottom:1px solid #527b87;padding:10px 14px}
.dl204-header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.dl204-header>div{min-width:0}.dl204-header small{display:block;color:#d5ee9b;font-weight:800;letter-spacing:1px;font-size:9px}.dl204-header strong{font-size:13px;display:block;margin-top:3px}
.dl204-header p{font-size:10px;color:#bcd4d8;margin:3px 0 0}
.dl204-blueprints button{border-radius:8px;border:1px solid #6c9d9c;background:#284b58;color:#edf9f7;padding:7px 9px;font-size:11px;cursor:pointer}
.dl204-blueprints button.dl204-primary{background:#d7f3a0;color:#153125;border-color:#d7f3a0;font-weight:800}
.dl204-blueprints button:disabled{opacity:.45;cursor:not-allowed}
.dl204-toolbar{display:flex;align-items:center;gap:8px;margin:10px 0;flex-wrap:wrap;font-size:11px}
.dl204-toolbar select{min-width:190px;max-width:100%;background:#102737;border:1px solid #6c929c;border-radius:7px;color:#eaf8f9;font-size:12px;padding:8px}
.dl204-legend{font-size:10px;color:#b9d4d4;margin:7px 0}
.dl204-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:9px;max-height:365px;overflow:auto}
.dl204-card{border:1px solid #547e88;border-radius:10px;background:#1c3948;padding:10px;min-width:0}
.dl204-card.selected{outline:2px solid #ffd58b;outline-offset:-2px}
.dl204-card strong{display:block;font-size:12px}.dl204-card p{font-size:10px;color:#c1d8dd;line-height:1.45;margin:6px 0}
.dl204-card .dl204-cost{font-size:12px;font-weight:800;color:#f4e7aa}
.dl204-card .dl204-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}
.dl204-stats{font-size:10px;color:#d5e7e8;line-height:1.55}
#dl204Message{color:#e3ecce;font-size:11px;min-height:15px;margin:9px 0}
#dl204Clear{background:transparent}
@media(max-width:520px){.dl204-blueprints{padding:8px}.dl204-header{align-items:flex-start}.dl204-header>button{flex:none;max-width:40%;font-size:10px}.dl204-toolbar select{min-width:145px;flex:1}.dl204-cards{grid-template-columns:1fr;max-height:310px}}

/* v2.0.5 — construction impact & ROI; optional, never modifies purchase rules */
.dl205-roi{margin:12px 0 8px;padding:14px;border:1px solid #436775;border-radius:13px;background:#102934;color:#eaf7f5}
.dl205-roi h3{font-size:15px;margin:3px 0 0}.dl205-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.dl205-heading small{font-size:10px;color:#bbdbbd;letter-spacing:.6px;font-weight:800}
.dl205-heading button{padding:7px 9px;font-size:11px;background:#274752;border:1px solid #68919e;border-radius:7px;color:#e8f8fc}
.dl205-roi p{line-height:1.45;font-size:12px;color:#c9dadf;margin:7px 0}
.dl205-signal{border-left:3px solid #eebc76;padding:7px 10px;margin:10px 0;background:#253641;border-radius:5px;font-size:12px}.dl205-signal.good{border-color:#9ae7aa}.dl205-signal.bad{border-color:#ee967d}
.dl205-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.dl205-metric{background:#183641;border:1px solid #3f6875;border-radius:9px;padding:10px;min-width:0}.dl205-metric small{font-size:10px;color:#adccd2;display:block}.dl205-metric strong{display:block;color:#effff6;font-size:15px;margin-top:5px;overflow-wrap:anywhere}
.dl205-inputs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:10px 0}.dl205-inputs label{display:flex;flex-direction:column;gap:5px;font-size:11px;color:#d5e6e9}.dl205-inputs input{min-width:0;width:100%;background:#081d2b;border:1px solid #618796;border-radius:8px;padding:8px;color:#eefdf7;font-size:13px}
.dl205-scenario{width:100%;border-collapse:collapse;table-layout:fixed;margin:10px 0;font-size:11px}.dl205-scenario th,.dl205-scenario td{padding:7px 5px;text-align:left;border-bottom:1px solid #3d5a66;overflow-wrap:anywhere}.dl205-scenario th{color:#b9dfdc}
.dl205-footnote{font-size:10px!important;color:#9db9c5!important}.dl205-history{padding-top:9px;margin-top:11px;border-top:1px solid #50707c}.dl205-history h4{font-size:12px;margin:0 0 5px}.dl205-history button{background:#254955;border:1px solid #6192a1;color:#e8f9fd;border-radius:7px;padding:5px 9px;font-size:11px}.dl205-history article{border:1px solid #486d79;border-radius:8px;padding:9px;margin-top:7px;background:#1c3540}.dl205-history article strong{font-size:11px}.dl205-history article p{margin:5px 0;font-size:11px}
.dl204-card .dl204-actions [data-dl205-roi]{border-color:#82bdae;color:#e3ffea;background:#22493c}
@media(max-width:610px){.dl205-roi{padding:10px}.dl205-metrics{grid-template-columns:1fr 1fr}.dl205-inputs{grid-template-columns:1fr 1fr}.dl205-roi h3{font-size:13px}.dl205-scenario{font-size:10px}}
@media(max-width:380px){.dl205-inputs{grid-template-columns:1fr}}

/* v2.0.5 — direct floor navigation and quieter default UI. No simulation changes. */
.dl205-floor-nav{position:absolute;z-index:19;left:10px;top:9px;display:flex;align-items:center;flex-wrap:wrap;gap:5px;padding:7px 9px;border-radius:11px;border:1px solid #60848a;background:#0e2837ed;box-shadow:0 4px 18px #0005;max-width:calc(100% - 20px);color:#e8f8f3;pointer-events:auto}
.dl205-floor-nav button{min-height:30px;padding:5px 9px;font-size:11px}.dl205-floor-nav button.active{background:#c6e889;color:#193123;border-color:#c8f1a3}
.dl205-floor-nav button:disabled{opacity:.42}
#dl205FloorButtons{display:flex;gap:4px;align-items:center}
#dl205FloorTitle{font-size:9px;font-weight:900;letter-spacing:.07em;color:#a7d0ce}
#dl205FloorHint{font-size:10px;color:#c4d9de;max-width:150px}
#dl205FocusLabel{font-size:10px;color:#b5d6da;font-weight:700}
#dl205FocusArea{border-radius:7px;border:1px solid #507689;background:#163647;color:#fff;padding:5px 7px;font-size:11px;max-width:126px}
.dl205-easy-actions{display:flex;align-items:center;gap:7px;padding:8px 13px;background:#163644;border-bottom:1px solid #51717a;flex-wrap:wrap}
.dl205-easy-actions button{min-height:34px;padding:6px 11px;font-size:12px}
.dl205-easy-actions #dl205QuickRun{background:#c5ed8b;border-color:#c5ed8b;color:#1c3021}
#dl205EasyTitle{color:#b8dddb;font-size:10px;font-weight:900;letter-spacing:.08em}
#dl205EasyHelp{color:#b6d2d9;font-size:11px;margin-left:auto}
body.dl-advanced .dl205-easy-actions{display:none}
body.dl-simple .maphead .actions > :not(#dlRoofToggle):not(#dlFlowToggle){display:none}
body.dl-simple .maphead .actions{gap:5px}
body.dl-simple #dl202Advisor,body.dl-simple #dl203Layout,body.dl-simple #dl204Blueprints{display:none}
body.dl-simple .cinema-toolbar,body.dl-simple .dl98-camera,body.dl-simple .dl99-journey,body.dl-simple .map-legend,body.dl-simple .badge-map{display:none}
body.dl-simple .maphead{padding:8px 12px;gap:8px}
body.dl-simple .maphead h1{font-size:17px}
body.dl-simple .dl-quickbar p,body.dl-simple #dlAssistantOpen,body.dl-simple #dlTutorialOpen,body.dl-simple #dlGoNext{display:none}
body.dl-simple #dlBeginnerBoard{display:block}
body.dl-simple .scene{min-height:430px}
body.dl-advanced .dl205-floor-nav{top:10px;left:10px}
@media(min-width:831px){body.dl-simple .mapcol{min-width:0}}
@media(max-width:830px){.dl205-floor-nav{left:5px;right:5px;top:6px;padding:5px;gap:3px}.dl205-floor-nav button{padding:4px 6px;font-size:10px;min-height:28px}#dl205FloorTitle{font-size:9px}#dl205FloorHint{display:none}#dl205FocusLabel{display:none}#dl205FocusArea{max-width:105px;padding:4px;font-size:10px}.dl205-easy-actions{padding:6px;gap:4px}.dl205-easy-actions button{padding:6px;font-size:10px;min-height:32px}#dl205EasyTitle,#dl205EasyHelp{display:none}body.dl-simple .scene{min-height:410px}body.dl-simple #mobileMapControls{bottom:10px}}

/* v2.0.5: prioritize the live warehouse on the first screen in Beginner mode. */
body.dl-simple #dlBeginnerBoard,body.dl-simple #dlProgressionWrap,body.dl-simple #dlTutorialWrap,body.dl-simple #dlAssistantWrap{display:none}
body.dl-simple .dl-quickbar{min-height:0;padding:7px 12px}
body.dl-simple .dl-quickbar #dlQuickOpen{min-height:32px}
@media(max-width:830px){body.dl-simple .maphead{padding:6px 8px}body.dl-simple .maphead h1{font-size:15px}body.dl-simple .mapcol{min-width:0}body.dl-simple .maphead .actions{display:none}body.dl-simple .dl-quickbar{padding:4px 7px;gap:5px}body.dl-simple .dl-quickbar strong,body.dl-simple .dl-quickbar #dlQuickStatus{display:none}}
body.dl-simple .bar{display:none}
body.dl-simple #dlModeQuick{display:none}

/* v2.0.6 – compact, non-purchasing building cross-section */
.dl206-cross-section{position:absolute;z-index:20;right:10px;bottom:13px;width:min(333px,calc(100% - 20px));max-height:calc(100% - 76px);display:flex;flex-direction:column;background:rgba(10,30,43,.95);border:1px solid #6e9baa;border-radius:13px;box-shadow:0 10px 28px #001827aa;pointer-events:auto;color:#eaf5f8;overflow:hidden;backdrop-filter:blur(8px)}
.dl206-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 11px;border-bottom:1px solid #36596a;flex:0 0 auto}.dl206-head strong{font-size:10px;letter-spacing:.07em;color:#c7ebef}.dl206-head button{font-size:10px;padding:5px 8px;border:1px solid #648ea2;background:#234557;color:#e2f6f8;border-radius:7px;white-space:nowrap}
.dl206-body{overflow:auto;padding:9px 10px 10px}.dl206-body[hidden]{display:none}.dl206-diagram{display:flex;align-items:stretch;gap:6px}.dl206-stack{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0}
.dl206-spine{width:23px;flex:0 0 23px;border-radius:9px;background:linear-gradient(#204962,#17364c);border:1px solid #436982;display:flex;align-items:center;justify-content:space-around;flex-direction:column;font-size:18px;color:#bbdef3}
.dl206-level{display:flex;align-items:center;gap:9px;text-align:left;width:100%;border-radius:8px;border:1px solid #4c7181;background:linear-gradient(130deg,#194356,#142f43);padding:7px 8px;min-height:66px;color:#e5f5f8;cursor:pointer;position:relative;box-shadow:0 2px 0 #42677c}
.dl206-level:hover:not(:disabled){border-color:#a9e9e5;background:#23566a}.dl206-level:focus-visible{outline:3px solid #ffd47d;outline-offset:1px}.dl206-level.is-active{border-color:#c8ef86;background:linear-gradient(130deg,#275444,#204a51);box-shadow:inset 3px 0 #ceee97,0 2px 0 #4b8277}.dl206-level.unbuilt{opacity:.49;cursor:default;box-shadow:none;background:repeating-linear-gradient(125deg,#233845,#233845 5px,#1b303c 5px,#1b303c 10px)}
.dl206-level-number{display:flex;align-items:center;justify-content:center;width:31px;height:33px;flex:0 0 31px;background:#0d2937;border:1px solid #5e94a4;border-radius:7px;font-weight:900;color:#d6f4f0;font-size:14px}
.dl206-level-main{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.dl206-level-main strong{font-size:12px;line-height:1.1}.dl206-level-main small{font-size:10px;line-height:1.26;color:#c4dce4;overflow-wrap:anywhere}.dl206-level-main .dl206-sub{color:#9fc4ce}.dl206-level-main .dl206-links{color:#ffe7a2}.dl206-current{font-size:9px;color:#d8f19c;font-weight:700}
.dl206-silhouette{font-size:12px;letter-spacing:-2px;opacity:.8;min-width:43px;white-space:nowrap}.dl206-foot{padding-top:6px;margin-top:7px;border-top:1px solid #345769;display:flex;flex-direction:column;gap:4px}.dl206-foot span{font-size:10px;font-weight:700;color:#f4e1a3}.dl206-foot small{font-size:9px;line-height:1.3;color:#a6c7cc}
@media(max-width:830px){.dl206-cross-section{right:5px;bottom:56px;width:min(325px,calc(100% - 10px));max-height:calc(100% - 108px)}.dl206-head{padding:7px 9px}.dl206-body{padding:7px 8px}.dl206-level{min-height:58px;padding:5px 7px}.dl206-silhouette{display:none}}
@media(max-width:520px){.dl206-cross-section{bottom:56px;right:5px;width:calc(100% - 10px);max-height:calc(100% - 149px)}.dl206-cross-section:not(:has(.dl206-body[hidden])){box-shadow:0 0 0 100vmax #00000033}}

/* v2.0.7 multi-floor wizard — compact by default; no extra popup blocking the map */
.dl207-wizard{margin:8px 12px 10px;border:1px solid #73919b;background:#102b39;border-radius:13px;color:#eaf5f8;overflow:hidden}
.dl207-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 14px}.dl207-head strong{font-size:13px;letter-spacing:.025em}.dl207-head button,.dl207-actions button{border:1px solid #6b929d;background:#285367;color:#eaf7ff;border-radius:8px;padding:8px 11px;cursor:pointer;font-weight:700}.dl207-head button:hover,.dl207-actions button:hover{background:#386a7b}.dl207-actions button:disabled{opacity:.45;cursor:default}
#dl207Body{border-top:1px solid #476573;padding:12px 14px}#dl207Body p{font-size:12px;margin:4px 0 9px;color:#bdd6df}.dl207-grid{display:flex;gap:10px;flex-wrap:wrap}.dl207-grid label{display:flex;flex-direction:column;gap:5px;flex:1;min-width:120px;font-size:11px;color:#d1e9ec}.dl207-grid select{background:#173d4d;color:#f2ffff;border:1px solid #658a95;border-radius:7px;padding:8px;width:100%;font-size:12px}.dl207-actions{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.dl207-actions button:last-child{background:#bce58c;color:#143425;border-color:#d5f7aa}#dl207Summary{border-radius:9px;background:#09212d;padding:11px 12px;font-size:12px;line-height:1.7}.dl207-cost{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;color:#d8f5ae}.dl207-item{display:inline-block;margin:3px 8px 3px 0;background:#1b4451;padding:3px 7px;border-radius:5px}.dl207-warning{color:#ffd094!important}.dl207-quiet{color:#9ec4d0!important}#dl207Message{color:#e5d7a9!important;min-height:15px}
@media(max-width:640px){.dl207-wizard{margin:5px 7px 9px}.dl207-head{padding:8px 9px;align-items:center}.dl207-head strong{font-size:11px}.dl207-head button{padding:7px}.dl207-actions button{flex:1;min-width:90px;font-size:11px}#dl207Body{padding:8px}}
/* Wizard uses a temporary planning panel rather than squeezing the map out of view. */
.mapcol{position:relative}
.dl207-wizard{flex:0 0 auto;min-height:0;overflow:hidden}
.dl207-wizard:has(#dl207Body:not([hidden])){position:absolute;top:70px;left:5%;width:min(660px,90%);z-index:29;max-height:calc(100% - 84px);overflow-y:auto;box-shadow:0 13px 45px #0009}
@media(max-width:830px){.dl207-wizard:has(#dl207Body:not([hidden])){top:53px;left:7px;right:7px;width:calc(100% - 14px);max-height:calc(100% - 62px);overflow-y:auto}}

/* v2.0.8: budget planner integrated into upper floor wizard (no extra toolbar buttons). */
.dl208-budget{border:1px solid #5c8a94;border-radius:12px;background:linear-gradient(145deg,#163d48,#0b2936);padding:12px;margin:10px 0 14px;color:#e8f6ef}
.dl208-top{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}.dl208-top strong{font-size:14px}
.dl208-reserve{display:flex;align-items:center;gap:8px;font-size:11px;color:#bfe3dc}.dl208-reserve input{max-width:110px;border:1px solid #8baab4;border-radius:7px;padding:8px 6px;background:#0b2834;color:#f7ffee;font-size:13px;min-width:0}
.dl208-money{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:12px 0}.dl208-money>div{padding:9px;border-radius:8px;border:1px solid #547984;background:#0d2b37}.dl208-money small{display:block;font-size:10px;color:#b4d8db}.dl208-money strong{display:block;margin-top:3px;font-size:15px;color:#f7ffe9}
.dl208-advice{border-left:3px solid #d8e399;background:#1a4044;padding:9px 12px;margin-bottom:10px;line-height:1.45;font-size:12px}.dl208-advice b{color:#e4f2be}
.dl208-progress{display:flex;gap:5px;flex-wrap:wrap;margin:8px 0}.dl208-check{font-size:10px;border-radius:6px;border:1px solid #557c80;background:#163a44;color:#d5eeed;padding:5px 7px}.dl208-check.done{border-color:#659b76;background:#224d41}.dl208-check.missing{border-color:#a98a55;background:#51432e}
.dl208-stages{display:grid;gap:8px}.dl208-stage{background:#102d3b;border:1px solid #567b88;border-radius:10px;padding:10px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 10px;align-items:center}.dl208-stage strong{font-size:12px}.dl208-stage p{margin:4px 0!important;font-size:11px!important;color:#c9e5e7!important;line-height:1.4}.dl208-stage small{font-size:10px;color:#b9d6df;display:block}.dl208-stage button{background:#d9edaa;border:1px solid #f1ffd5;color:#1a3928;border-radius:7px;padding:7px 9px;font-size:11px;cursor:pointer;font-weight:700}.dl208-stage button:disabled{opacity:.42;cursor:default}.dl208-stage .dl208-cost{font-weight:800;font-size:14px;color:#f7e7bb}.dl208-stage .dl208-warn{font-size:10px;color:#ffd49c}.dl208-foot{font-size:10px!important;color:#a9ced2!important;margin:10px 0 0!important}
@media(max-width:600px){.dl208-budget{padding:8px}.dl208-money{grid-template-columns:repeat(2,minmax(0,1fr))}.dl208-stage{grid-template-columns:1fr}.dl208-stage button{width:100%}.dl208-reserve{justify-content:space-between;width:100%}}

.dl208-compare{margin:9px 0 12px;font-size:11px}.dl208-compare>strong{color:#e2f0b7;font-size:12px}.dl208-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:7px}
.dl208-option{background:#102e3a;border:1px solid #497582;border-radius:8px;padding:8px;min-width:0;display:flex;flex-direction:column;gap:3px}.dl208-option b{color:#edf9f2;font-size:11px}.dl208-option span{color:#ffe3aa;font-weight:800;font-size:13px}.dl208-option small{font-size:10px;line-height:1.35;color:#b6d4d9}.dl208-option small.dl208-good{color:#a9ecac}.dl208-option small.dl208-low{color:#ffbb9a}.dl208-compare p{font-size:10px!important;color:#c5d7d1!important;margin:6px 1px!important}
@media(max-width:400px){.dl208-options{grid-template-columns:1fr 1fr}}


/* v2.0.9 multi-floor cargo movement */
.dl209-cargo{margin:10px 0 8px;background:linear-gradient(180deg,rgba(7,18,27,.96),rgba(11,24,35,.96));border:1px solid rgba(123,168,194,.24);border-radius:16px;box-shadow:0 10px 24px rgba(0,0,0,.22);color:#eaf4ff;overflow:hidden}
.dl209-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:14px 16px;border-bottom:1px solid rgba(123,168,194,.15)}
.dl209-head p{margin:4px 0 0;color:#9fb9cc;font-size:12px}
#dl209Toggle{border:1px solid rgba(123,168,194,.28);background:#10293b;color:#ecf6ff;border-radius:999px;padding:8px 12px;cursor:pointer}
.dl209-body{padding:14px 16px 16px}
.dl209-topline{display:flex;flex-wrap:wrap;gap:8px;padding:8px 12px;margin-bottom:12px;background:rgba(255,255,255,.04);border:1px solid rgba(123,168,194,.15);border-radius:12px;color:#cde2f2;font-size:13px}
.dl209-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:12px}
.dl209-panel{background:rgba(255,255,255,.04);border:1px solid rgba(123,168,194,.14);border-radius:14px;padding:12px}
.dl209-panel h3{margin:0 0 10px;font-size:14px;letter-spacing:.02em;color:#f1f8ff}
.dl209-empty{margin:0;color:#a8bfd0;font-size:13px}
.dl209-shaft-card{background:rgba(10,25,38,.72);border:1px solid rgba(123,168,194,.16);border-radius:12px;padding:10px;margin-bottom:10px}
.dl209-shaft-card.blocked{border-color:rgba(239,95,86,.5);box-shadow:0 0 0 1px rgba(239,95,86,.18) inset}
.dl209-shaft-head,.dl209-follow-head,.dl209-transfer-head,.dl209-actions,.dl209-stats{display:flex;align-items:center;justify-content:space-between;gap:8px}
.dl209-shaft-head span,.dl209-shaft-foot,.dl209-transfer-note,.dl209-diagnostic{font-size:12px;color:#b8cede}
.dl209-shaft-stack{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.dl209-floor{display:flex;flex-direction:column;align-items:center;gap:6px;background:rgba(255,255,255,.03);border:1px solid rgba(123,168,194,.12);border-radius:10px;padding:8px 6px;min-height:88px}
.dl209-floor.off{opacity:.45}
.dl209-floor-tag{font-weight:700;font-size:11px;letter-spacing:.08em;color:#dbe9f4}
.dl209-shaft-lane{position:relative;flex:1;display:flex;align-items:center;justify-content:center;width:22px;min-height:42px}
.dl209-connector{position:absolute;left:50%;transform:translateX(-50%);width:6px;height:100%;border-radius:999px;background:linear-gradient(180deg,#5f7f97,#89b5d5)}
.dl209-car{position:absolute;left:50%;transform:translateX(-50%);width:14px;height:14px;border-radius:4px;background:linear-gradient(180deg,#ffd772,#e29d39);box-shadow:0 0 10px rgba(247,213,106,.5);animation:dl209CarIdle 1.4s ease-in-out infinite}
.dl209-car.up{animation:dl209CarUp 1.4s ease-in-out infinite}
.dl209-car.down{animation:dl209CarDown 1.4s ease-in-out infinite}
@keyframes dl209CarIdle{0%,100%{top:14px}50%{top:10px}}
@keyframes dl209CarUp{0%{top:28px}100%{top:2px}}
@keyframes dl209CarDown{0%{top:2px}100%{top:28px}}
.dl209-transfer{background:rgba(10,25,38,.7);border:1px solid rgba(123,168,194,.16);border-radius:12px;padding:10px;margin-bottom:10px}
.dl209-transfer .chip,.dl209-follow-card .chip{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:999px;background:#143248;color:#f0f7ff;font-size:11px;font-weight:600;border:1px solid rgba(123,168,194,.25)}
.dl209-transfer .chip.bad{background:#4d1e24;border-color:#d56b72}.dl209-transfer .chip.warn{background:#4d3a17;border-color:#caa34d}.dl209-transfer .chip.good{background:#173d2a;border-color:#60b083}
.dl209-stats{margin-top:8px;justify-content:flex-start;gap:16px}.dl209-stats span,.dl209-follow-grid>div{display:flex;flex-direction:column;gap:2px}.dl209-stats small,.dl209-follow-grid small{font-size:11px;color:#96afc2}.dl209-stats b,.dl209-follow-grid strong{font-size:13px;color:#f7fbff}
.dl209-actions{justify-content:flex-start;margin-top:10px;flex-wrap:wrap}.dl209-actions button,.dl209-mini-follow{border:1px solid rgba(123,168,194,.24);background:#143248;color:#eef7ff;border-radius:10px;padding:8px 10px;cursor:pointer}
.dl209-follow-panel{margin-top:12px}.dl209-follow-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:10px 0}.dl209-follow-card{background:rgba(10,25,38,.72);border:1px solid rgba(123,168,194,.16);border-radius:12px;padding:10px}
.dl209-mini-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.dl209-diagnostic{padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.04);border:1px solid rgba(123,168,194,.16);margin-bottom:8px}.dl209-diagnostic.warn{border-color:rgba(224,180,88,.55);background:rgba(89,67,18,.28)}.dl209-diagnostic.bad{border-color:rgba(239,95,86,.52);background:rgba(78,26,31,.28)}.dl209-diagnostic.good{border-color:rgba(101,180,145,.4);background:rgba(14,52,39,.22)}
.bad{color:#ffb1a9}
@media (max-width:900px){.dl209-grid{grid-template-columns:1fr}.dl209-follow-grid{grid-template-columns:1fr 1fr 1fr}}
@media (max-width:620px){.dl209-head{flex-direction:column}.dl209-follow-grid{grid-template-columns:1fr}.dl209-shaft-stack{grid-template-columns:1fr 1fr 1fr}.dl209-body{padding:12px}}

/* Dockline v2.1.0 — upper-floor service zones and workforce diagnostics */
.dl210-workforce{background:linear-gradient(160deg,#102636f5,#152f3df5);border:1px solid #587e91;border-radius:13px;color:#eaf5f9;margin:8px 0 10px;box-shadow:0 8px 20px #0003;font-size:12px}
.dl210-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px}
.dl210-heading strong{font-size:13px;letter-spacing:.02em}
.dl210-heading p{color:#acc5d2;font-size:11px;margin:3px 0 0}
.dl210-heading button,.dl210-view,.dl210-assignment button{background:#23516c;color:#eaf6fa;border:1px solid #638fa4;border-radius:8px;padding:7px 10px;cursor:pointer}
.dl210-heading button:hover,.dl210-view:hover,.dl210-assignment button:hover{background:#30647d}
#dl210Body{padding:0 12px 12px}
.dl210-summary{color:#cae5ee;margin:3px 0 10px;padding:8px 10px;background:#122b38;border-radius:8px}
.dl210-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(270px,100%),1fr));gap:10px}
.dl210-card{background:#0a1e2a;border:1px solid #496c7b;border-radius:10px;padding:10px}
.dl210-card.ready{border-color:#5d9274}.dl210-card.partial{border-color:#9e9563}.dl210-card.attention{border-color:#b77c64}.dl210-card.unbuilt{opacity:.7}
.dl210-card-head{display:flex;justify-content:space-between;align-items:center;gap:6px}.dl210-pill{font-size:10px;padding:3px 7px;border-radius:999px;background:#314b58;color:#e7f1f6}
.dl210-pill.ready{background:#25583d}.dl210-pill.partial{background:#625123}.dl210-pill.under,.dl210-pill.attention{background:#68392e}
.dl210-metrics{display:flex;flex-wrap:wrap;gap:5px;margin:9px 0}.dl210-metrics span{background:#1e3948;border-radius:5px;padding:4px 5px;font-size:10px}
.dl210-zones{display:grid;grid-template-columns:1fr 1fr;gap:6px}.dl210-zone{border:1px solid #3a5a67;background:#173342;border-radius:7px;padding:6px;display:flex;flex-direction:column;gap:5px;justify-content:space-between}.dl210-zone.ready{border-color:#568676}
.dl210-zone strong{display:block;font-size:11px}.dl210-zone small{font-size:10px;color:#96b3c0}.dl210-zone span{font-size:10px;color:#d4e7eb}
.dl210-workers,.dl210-suggestions{margin:9px 0}.dl210-workers>small{display:block;margin-bottom:4px;color:#b5cbd4}
.dl210-worker{display:inline-block;background:#345161;border-radius:5px;padding:4px 6px;margin:2px;font-size:10px}
.dl210-muted{font-size:11px;color:#9ab2bf}.dl210-suggestions{border-top:1px solid #3b5260;padding-top:8px}.dl210-suggestions>strong{color:#d9e8f1}.dl210-suggestions p{margin:4px 0;font-size:11px;color:#d4dde2}
.dl210-view{width:100%;margin-top:4px;font-size:11px}
.dl210-assignment{background:#112b39;border-radius:9px;padding:10px;margin-top:10px}.dl210-assignment>strong{display:block;margin-bottom:8px}.dl210-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.dl210-row label{color:#adcad6}.dl210-row select{background:#092532;color:#f1fbff;border:1px solid #5b8394;border-radius:7px;padding:7px;max-width:190px;min-width:105px}.dl210-assignment button:disabled{opacity:.4;cursor:not-allowed}.dl210-help{color:#b6ccd5;font-size:11px;line-height:1.4}.dl210-message{color:#fee19d;font-size:11px}
@media(max-width:720px){.dl210-cards{grid-template-columns:1fr}.dl210-heading{align-items:flex-start}.dl210-heading p{max-width:240px}.dl210-zones{grid-template-columns:1fr 1fr}}
/* v2.1.1 productive upper-floor labor and shift controls */
.dl211-labor{background:linear-gradient(140deg,#102c36,#193943);border:1px solid #547d84;border-radius:12px;margin:12px 0;color:#ecf8f6;overflow:hidden}
.dl211-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;gap:12px}.dl211-head strong{font-size:13px}.dl211-head p{font-size:11px;color:#b6d4d7;margin:4px 0 0}.dl211-head button{min-width:34px;padding:6px 10px;background:#274d57;border:1px solid #72979d;border-radius:8px;color:#fff;cursor:pointer}
#dl211Body{padding:0 14px 14px}#dl211Desc,#dl211Help{font-size:12px;color:#b6d4d7;line-height:1.5}
.dl211-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(128px,1fr));gap:8px;align-items:end}.dl211-controls label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:#d1e3e5}.dl211-controls select{width:100%;background:#0e2c38;border:1px solid #517782;border-radius:8px;padding:8px;color:#fff;min-width:0}
#dl211Assign,.dl211-rowitem button{background:#badb91;color:#142c25;border:0;border-radius:8px;padding:9px;cursor:pointer;font-weight:700}#dl211Assign:disabled{opacity:.5;cursor:default}#dl211Stats{font-size:12px;color:#dcf5bc;margin:12px 0}.dl211-rowitem{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:10px;border:1px solid #527b80;border-radius:9px;margin:8px 0;background:#183842}.dl211-rowitem strong,.dl211-rowitem small{display:block}.dl211-rowitem small{font-size:11px;color:#b1d2d3;margin-top:4px}#dl211Message{font-size:12px;color:#ffdda0;min-height:16px}
@media(max-width:600px){.dl211-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.dl211-rowitem{align-items:start;flex-direction:column}}
/* v2.1.2 upper-floor staffing optimizer. Nested inside productive labor management. */
.dl212-optimizer{margin:12px 0 0;border:1px solid #6b958e;border-radius:12px;background:linear-gradient(120deg,#142f37,#123d40);color:#e9f8f6;overflow:hidden}
.dl212-head{padding:11px 12px;display:flex;align-items:start;justify-content:space-between;gap:10px}
.dl212-head strong{font-size:13px}.dl212-head p{font-size:11px;color:#c6e4e0;margin:3px 0 0}.dl212-head button{border-radius:7px;border:1px solid #6c928b;background:#244d50;color:white;min-width:34px;cursor:pointer}
#dl212Body{padding:12px;border-top:1px solid #58817e}
.dl212-controls{display:flex;gap:9px;align-items:end;flex-wrap:wrap;margin:10px 0}
.dl212-controls label{display:flex;flex-direction:column;gap:5px;font-size:11px;flex:1;min-width:150px}
.dl212-controls select,.dl212-controls button,#dl212OpenEmployees{padding:9px 10px;background:#214954;border:1px solid #68969e;color:#effff9;border-radius:9px;cursor:pointer;min-height:36px}
.dl212-controls button#dl212Apply{background:#2f6b4a;border-color:#89c99a}.dl212-controls button:disabled{opacity:.4;cursor:not-allowed}
.dl212-summary{background:#0a282e;border:1px solid #4d8581;border-radius:10px;padding:10px;font-size:12px;font-weight:600;line-height:1.6}
.dl212-columns{display:grid;grid-template-columns:1fr 1fr;gap:10px}.dl212-block{min-width:0;border-radius:10px;background:#0e2a33;border:1px solid #4e797b;padding:10px;margin-top:10px}
.dl212-block h4{margin:0 0 8px;font-size:12px}
.dl212-shiftrow,.dl212-shortrow{display:flex;gap:9px;justify-content:space-between;align-items:center;border-top:1px solid #31525b;padding:8px 0;font-size:12px}
.dl212-shiftrow strong,.dl212-shortrow strong{font-size:11px}.dl212-shiftrow small{font-size:10px;display:block;color:#a8ccca;margin-top:3px}.dl212-shiftrow>span{font-size:11px;white-space:nowrap}.dl212-shiftrow.gap,.dl212-shortrow{color:#f6ce8d}.dl212-shiftrow.planned{color:#b4f0c3}
.dl212-muted{font-size:11px;color:#b5d7d4;line-height:1.5;margin:9px 0}
#dl212Notice{font-size:12px;color:#f4e4a4}
@media(max-width:700px){.dl212-columns{grid-template-columns:1fr}.dl212-controls{flex-direction:column;align-items:stretch}.dl212-controls label{width:100%}}

/* v2.1.3: shift handover lives inside the existing upper-floor planner. */
.dl213-handover{margin:12px 0;padding:12px;border:1px solid #587b8a70;border-radius:13px;background:#102532e8;color:#e9f6f5}
.dl213-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.dl213-head strong{font-size:13px;letter-spacing:.03em}.dl213-head p{font-size:11px;color:#a9c5d0;margin:5px 0 0}
#dl213Toggle{border:1px solid #7395a4;border-radius:8px;padding:7px 12px;background:#1b4351;color:#f3faff;cursor:pointer}
.dl213-controls{display:flex;align-items:end;flex-wrap:wrap;gap:9px;margin:14px 0}.dl213-controls label{display:flex;flex-direction:column;gap:5px;font-size:11px;color:#d7eaf0}
.dl213-controls select,.dl213-controls button{min-height:35px;border:1px solid #678e9d;border-radius:8px;background:#183e4d;color:#f5fcff;padding:7px 9px;cursor:pointer}
.dl213-controls button[disabled]{opacity:.45;cursor:not-allowed}
#dl213Apply{background:#427861;border-color:#79bd91}
#dl213Summary{font-size:12px;padding:9px 10px;border-radius:8px;background:#163c4b;margin-bottom:12px}
.dl213-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.dl213-card{border:1px solid #597b8d6b;border-radius:10px;background:#0b1d28;padding:10px;min-width:0}
.dl213-card h4{font-size:12px;margin:0 0 8px;color:#d5ebed}
.dl213-line{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:7px 0;border-top:1px solid #49708450;font-size:11px;min-width:0}
.dl213-line b{font-size:11px;font-weight:600;overflow-wrap:anywhere}
.dl213-line span{text-align:right;color:#bed4dd;overflow-wrap:anywhere}
.dl213-line.proposed span{color:#b5e7c2}
.dl213-muted,#dl213Note{font-size:11px;color:#a9c4d2;line-height:1.5}
#dl213Notice{font-size:12px;color:#c6edbe}
@media(max-width:700px){.dl213-grid{grid-template-columns:1fr}.dl213-controls button{flex:1}.dl213-line{align-items:flex-start}}

/* Dockline v2.1.4 — measured employee productivity */
.dl214-roi{margin-top:12px;border:1px solid #3e8097;border-radius:14px;background:linear-gradient(155deg,#102c3e,#091e2f);box-shadow:0 12px 26px #0004;color:#e7f4fc;padding:12px}
.dl214-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.dl214-head strong{font-size:15px}.dl214-head p{margin:3px 0 0;color:#bbd1dc;font-size:12px}
.dl214-head button,.dl214-controls button{background:#20586b;color:#f4ffff;border:1px solid #58a4b2;border-radius:9px;padding:8px 12px;cursor:pointer}
.dl214-controls{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:12px 0 8px;flex-wrap:wrap}
.dl214-controls label{display:flex;align-items:center;gap:8px;color:#bfd9e5;font-size:12px}
.dl214-controls select{padding:7px 10px;color:#f4fbff;background:#132f40;border:1px solid #5d8b9d;border-radius:7px}
#dl214Duration{font-size:11px;color:#acc4d2}
.dl214-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:12px 0}
.dl214-kpi{border:1px solid #396879;border-radius:9px;padding:10px;background:#153849;min-width:0;display:flex;flex-direction:column;gap:4px}
.dl214-kpi small{font-size:11px;line-height:1.35;color:#b7d4e4}.dl214-kpi strong{font-size:20px;color:#ecf9f5;white-space:normal;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.dl214-roi h4{color:#ddf7f5;margin:14px 0 8px;font-size:13px}
.dl214-tablewrap{overflow:auto;border:1px solid #3a667b;border-radius:10px}
.dl214-table{width:100%;min-width:680px;border-collapse:collapse;font-size:12px}
.dl214-table th,.dl214-table td{text-align:left;padding:10px 9px;border-bottom:1px solid #365b69;font-variant-numeric:tabular-nums}
.dl214-table thead{background:#1b4554}.dl214-table th{color:#e3f5ff;font-size:11px}.dl214-table td{color:#dceef8;white-space:nowrap}.dl214-table td small{display:block;color:#a4c7d4;margin-top:2px}
.dl214-alert{color:#ffda8e;background:#463d2b;padding:4px 6px;border-radius:6px;white-space:normal}
.dl214-compare{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.dl214-compare>div{background:#143547;padding:11px;border-radius:9px;border:1px solid #3a697a}.dl214-compare small{display:block;color:#accbd8}.dl214-compare strong{display:block;margin-top:5px;font-size:12px;overflow-wrap:anywhere}
.dl214-empty,.dl214-explain,#dl214Insights,#dl214Note{color:#b8d0dc;font-size:12px;line-height:1.5}#dl214Note{padding:9px 12px;background:#102a38;border-left:2px solid #7cbdcb}
@media(max-width:760px){.dl214-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.dl214-compare{grid-template-columns:1fr}}
@media(max-width:410px){.dl214-roi{padding:9px}.dl214-head{flex-direction:column;align-items:stretch}.dl214-head button{align-self:flex-start}.dl214-kpi strong{font-size:16px}}

/* v2.1.5 · demand-aware hiring budget, nested in Upper-Floor Teams */
.dl215-hiring{border:1px solid rgba(117,170,192,.35);background:linear-gradient(165deg,rgba(16,38,50,.93),rgba(10,25,35,.94));border-radius:15px;padding:12px;margin:13px 0;color:#e7f4fa;box-shadow:0 4px 18px #05131b38}
.dl215-head{display:flex;justify-content:space-between;gap:12px;align-items:center}
.dl215-head strong{font-size:14px;letter-spacing:.02em}
.dl215-head p{font-size:12px;margin:4px 0 0;color:#b6d0df}
.dl215-hiring button{border:1px solid #6f9caa;background:#164252;color:#f5fcff;border-radius:9px;padding:8px 11px;cursor:pointer}
.dl215-hiring button:hover:not(:disabled){background:#255f71}
.dl215-hiring button:disabled{opacity:.42;cursor:not-allowed}
.dl215-controls{display:grid;grid-template-columns:minmax(140px,1.1fr) minmax(150px,1fr) minmax(150px,1fr) auto;gap:9px;align-items:end;margin:14px 0}
.dl215-controls label{display:flex;flex-direction:column;gap:5px;min-width:0;font-size:11px;color:#c4e0ec}
.dl215-controls :is(input,select){width:100%;box-sizing:border-box;border:1px solid #6b8c9d;border-radius:8px;background:#092532;color:#f1f9ff;padding:10px 8px;font-size:13px;min-height:38px}
.dl215-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0}
.dl215-summary>div,.dl215-numbers>div{border:1px solid #466c7b77;border-radius:9px;padding:8px;background:#061c279c;display:flex;flex-direction:column;gap:5px;min-width:0}
.dl215-summary small,.dl215-numbers small{font-size:10px;color:#a9c5d2;line-height:1.3}
.dl215-summary b,.dl215-numbers b{font-size:14px;color:#e8faff}
.dl215-cases{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.dl215-case{border-radius:11px;background:#123342;border:1px solid #4c768788;padding:10px;display:flex;flex-direction:column;gap:10px;min-width:0}
.dl215-case.keep{background:#243442}
.dl215-case-top{display:flex;flex-direction:column;gap:5px}
.dl215-case-top strong{font-size:13px}
.dl215-status{font-size:11px;color:#e4eeed;line-height:1.35;padding:6px;border-radius:7px;background:#ffffff12}
.dl215-status.negative,.dl215-status.unsafe,.dl215-status.blocked{color:#ffbcb4;background:#6a242831}
.dl215-status.positive,.dl215-status.cautious{color:#d1edbb;background:#2c624533}
.dl215-numbers{display:grid;grid-template-columns:1fr 1fr;gap:5px;flex:1}
.dl215-case>button{font-size:12px;min-height:38px}
.dl215-note{font-size:11px;color:#aecbd9;margin:12px 1px 4px;line-height:1.55}
.dl215-feedback{font-size:12px;color:#fcdda0;min-height:16px;margin:3px 1px}
@media(max-width:1040px){.dl215-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.dl215-cases{grid-template-columns:1fr}.dl215-numbers{grid-template-columns:repeat(3,1fr)}}
@media(max-width:540px){.dl215-head{flex-direction:column;align-items:flex-start}.dl215-controls{grid-template-columns:1fr}.dl215-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.dl215-numbers{grid-template-columns:repeat(2,minmax(0,1fr))}.dl215-hiring{padding:10px}}

.dl215-advice{background:#193e40;color:#e0f7df;border-left:3px solid #9fd9b6;padding:10px 12px;border-radius:7px;font-size:12px;line-height:1.45;margin:10px 0}
/* v2.1.6 coordinated break planner */
.dl216-breaks{margin:12px 0;background:linear-gradient(150deg,#102935,#11252b);border:1px solid #527c78;border-radius:13px;overflow:hidden;color:#e6f2f5}
.dl216-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px}
.dl216-head strong{font-size:14px;letter-spacing:.03em}.dl216-head p{margin:3px 0 0;color:#bdcfd3;font-size:11px}
.dl216-head button,.dl216-actions button{border:1px solid #709aa2;border-radius:9px;padding:7px 11px;background:#183e4b;color:#f0fafb;cursor:pointer}
#dl216Body{padding:0 14px 14px}.dl216-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.dl216-actions button[disabled]{opacity:.45}.dl216-actions button[aria-pressed=true]{background:#386a54}
.dl216-summary,.dl216-muted,#dl216Costs{font-size:12px;color:#c2d6dd}.dl216-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.dl216-card{min-width:0;border:1px solid #42616b;border-radius:10px;padding:10px;background:#0c212b}.dl216-card h4{margin:0 0 10px;font-size:12px;color:#e8f7f9}
.dl216-line{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 0;border-bottom:1px solid #2a444e;font-size:11px}.dl216-line strong{font-size:12px}.dl216-line small{display:block;color:#bdd0d3;margin-top:4px}.dl216-line span{color:#d2e4e7;text-align:right}
.dl216-tag{padding:4px 7px;border-radius:7px}.dl216-tag.good{background:#214e3b}.dl216-tag.warn{background:#66501f}.dl216-tag.bad{background:#693b30}#dl216Notice{min-height:16px;color:#f9d48a;font-size:12px}
@media(max-width:900px){.dl216-grid{grid-template-columns:1fr}.dl216-head{align-items:flex-start}.dl216-actions{flex-direction:column}.dl216-actions button{width:100%}}

/* Dockline v2.2.0 — collapsed, opt-in throughput diagnostics (keeps the map clear) */
.dl220-box{margin:7px 10px;border:1px solid #365b69;border-radius:12px;color:#dcecf5;background:#102935;box-shadow:0 3px 10px #0002}
.dl220-header{padding:10px 12px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.dl220-header>div{min-width:0;display:flex;flex-direction:column;gap:2px}
.dl220-header strong{font-size:12px;color:#eff8ff}
.dl220-header small{color:#a8c2cb;font-size:11px;line-height:1.35}
.dl220-box button{background:#1d4050;border:1px solid #507489;color:#e6f2f5;border-radius:8px;min-height:28px;padding:5px 9px;cursor:pointer;font-weight:700;font-size:11px}
.dl220-box button:hover{background:#31576a}
.dl220-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border-top:1px solid #375668;padding:8px 12px}
.dl220-controls span{color:#abc5d0;font-size:11px}
#dl220Heat[aria-pressed="true"]{background:#2c6549;border-color:#74b294}
.dl220-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:9px 12px}
.dl220-metrics div{min-width:0;background:#183747;border-radius:9px;padding:8px 10px;border:1px solid #37596a;display:flex;flex-direction:column;gap:5px}
.dl220-metrics small{font-size:10px;color:#aac4ce;line-height:1.3}
.dl220-metrics strong{font-size:19px;color:#d7f9db;line-height:1.1}
.dl220-rows{padding:0 12px 8px;max-height:260px;overflow-y:auto}
.dl220-table{min-width:450px;overflow:hidden}
.dl220-rows{overflow:auto}
.dl220-row{display:grid;grid-template-columns:55px minmax(76px,1fr) 76px 59px minmax(115px,1.3fr) 32px;align-items:center;gap:5px;padding:5px 3px;font-size:10px;border-bottom:1px solid #345160}
.dl220-row:nth-child(even){background:#173544}
.dl220-labels{font-weight:700;font-size:9px;color:#a5c1c8}
.dl220-row button{padding:3px 6px;min-height:23px}
.dl220-state{font-weight:700}
.dl220-state.blocked{color:#ff8f84}.dl220-state.high{color:#ffd68c}.dl220-state.low{color:#afddff}.dl220-state.running{color:#9ff0b4}.dl220-state.idle{color:#a5b9c1}.dl220-state.waiting{color:#ffcc7c}
.dl220-empty{margin:6px 0;padding:7px 8px;border:1px solid #486271;border-radius:8px;background:#173747;color:#c1d2da;font-size:11px}
.dl220-note{font-size:10px;color:#9db9c5;margin:6px 0}
.dl220-advice{border-top:1px solid #375668;padding:9px 12px 12px}
.dl220-advice>strong{display:block;margin-bottom:7px;font-size:12px}
.dl220-tip{font-size:11px;line-height:1.5;padding:7px 8px;margin:4px 0;background:#193d49;border-radius:8px;color:#d7e8ef}
.dl220-tip button{margin-left:5px;padding:3px 8px;min-height:24px}
@media(max-width:520px){.dl220-header{align-items:flex-start;gap:8px}.dl220-header strong{font-size:11px}.dl220-header small{font-size:10px}.dl220-metrics strong{font-size:16px}.dl220-metrics div{padding:7px}.dl220-box{margin:6px}}

/* v2.2.1 safe conveyor bypass planner */
.dl221-router{border:1px solid #507d88;border-radius:14px;background:#0d2332;color:#e5f2f9;margin:12px 0;overflow:hidden;box-shadow:0 8px 23px #05121b35}
.dl221-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px}
.dl221-heading>div{display:flex;flex-direction:column;gap:5px}
.dl221-heading strong{font-size:14px;color:#eaf8fc}
.dl221-heading small{font-size:11px;color:#a9c2cc;line-height:1.4}
.dl221-heading button,.dl221-router button{border:1px solid #476b7e;border-radius:9px;background:#1a4051;color:#e7f7ff;padding:8px 10px;cursor:pointer}
.dl221-router button:disabled{opacity:.48;cursor:not-allowed}
#dl221Body{padding:12px 14px 14px;border-top:1px solid #426172}
#dl221Hint{font-size:12px;line-height:1.5;color:#b5d2df;margin:0 0 10px}
.dl221-controls,.dl221-action{display:flex;flex-wrap:wrap;align-items:end;gap:8px}
.dl221-controls label{display:flex;flex-direction:column;gap:4px;min-width:170px;flex:1;color:#cde1e9;font-size:11px}
.dl221-controls select{background:#193446;color:#e4f6fc;border:1px solid #456676;border-radius:7px;padding:8px;max-width:100%}
#dl221Info{font-size:12px;line-height:1.55;margin:12px 0;padding:10px 12px;border-radius:9px;border:1px solid #335665;background:#102c3b;color:#dcf0ec;white-space:pre-wrap}
.dl221-action button:last-child:not(:disabled){border-color:#aad58f;background:#2b523b;color:#f2ffe7}
@media(max-width:620px){.dl221-heading{padding:9px}.dl221-heading button{padding:7px;font-size:11px}#dl221Body{padding:10px}.dl221-controls button,.dl221-action button{flex:1;min-width:110px}.dl221-controls label{flex-basis:100%}}

/* v2.2.2 multi-lane balancing stays inside existing advanced conveyor controls */
.dl222-box{margin:10px 0;background:linear-gradient(135deg,#102636,#10212b);border:1px solid #416472;border-radius:12px;color:#eef7f6;overflow:hidden}
.dl222-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px}
.dl222-head>div{display:flex;flex-direction:column;gap:4px;min-width:0}.dl222-head strong{font-size:14px}.dl222-head small{color:#b5ccd2;font-size:11px;line-height:1.4}
.dl222-box button{border:1px solid #668894;border-radius:8px;padding:7px 10px;color:#e7f5f4;background:#234051;cursor:pointer;font-size:12px}
.dl222-box button:disabled{opacity:.45;cursor:default}.dl222-box #dl222Body{padding:0 13px 13px}.dl222-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.dl222-controls label{display:flex;flex-direction:column;gap:5px;font-size:11px;color:#b9d0d5}.dl222-controls select{width:100%;min-width:0;max-width:100%;background:#172f40;color:#f2f9ff;border:1px solid #668894;border-radius:7px;padding:7px;font-size:12px}
#dl222Help,#dl222Footer{color:#c7dbe0;font-size:11px;line-height:1.5;margin:10px 0 4px}.dl222-rows{display:grid;gap:6px;margin-top:10px}
.dl222-lane{display:flex;align-items:center;gap:12px;justify-content:space-between;border-radius:8px;background:#172f3e;padding:8px 10px;font-size:12px;color:#e4f1f2}.dl222-lane-summary{flex:1;line-height:1.5}
.dl222-actions{display:flex;gap:8px;margin-top:10px}
@media(max-width:750px){.dl222-controls{grid-template-columns:1fr}.dl222-head{align-items:flex-start}.dl222-head button{flex-shrink:0}.dl222-lane{flex-direction:column;align-items:stretch}.dl222-lane button{align-self:flex-start}}

/* v2.2.3 — Merge control stays inside the existing Tasks panel. */
.dl223-box{background:linear-gradient(135deg,#122c3c,#12283a);border:1px solid #4e7384;border-radius:12px;padding:12px;margin:12px 0;color:#edf6fa}
.dl223-head{display:flex;justify-content:space-between;align-items:start;gap:10px}
.dl223-head strong{display:block;font-size:13px}.dl223-head small{display:block;font-size:11px;color:#abcbd3;margin-top:4px}
.dl223-box button{background:#234b5e;color:#f4fafb;border:1px solid #68949c;border-radius:8px;padding:8px;cursor:pointer;white-space:normal}
.dl223-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:9px;margin:14px 0}
.dl223-controls label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:#cbe5e9}
.dl223-controls select{background:#092332;color:#fff;border:1px solid #577888;border-radius:7px;padding:8px;width:100%;max-width:100%}
.dl223-box p{font-size:12px;line-height:1.5}
.dl223-item{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#183b47;border:1px solid #42667b;border-radius:10px;padding:9px;margin:7px 0;font-size:12px}
.dl223-item>div{min-width:0;flex:1}.dl223-warning{border-left:3px solid #e3a65c;padding:8px 10px;background:#443b27;border-radius:4px}
.dl223-foot{color:#b7cbd4}
@media(max-width:700px){.dl223-head{flex-wrap:wrap}.dl223-item{flex-direction:column;align-items:stretch}.dl223-item button{width:100%}}

/* v2.2.5 — compact conveyor maintenance card in existing Tasks tab */
.dl225-box{margin:12px 0;border:1px solid #3b6c7c;border-radius:12px;background:#112b39;color:#ecf6fc;overflow:hidden}
.dl225-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px}
.dl225-head>div{min-width:0;display:grid;gap:3px}.dl225-head strong{font-size:14px}.dl225-head small{font-size:12px;color:#a6c8d8}
.dl225-head button,.dl225-actions button{border:1px solid #537c91;background:#1b3f51;color:#eaf9ff;border-radius:8px;padding:8px 11px;cursor:pointer}
.dl225-head button{flex-shrink:0}.dl225-box button:disabled{opacity:.5;cursor:default}
#dl225Body{padding:10px 14px 14px;border-top:1px solid #335f70}
.dl225-controls label{display:flex;align-items:center;flex-wrap:wrap;gap:12px;font-size:13px;font-weight:600}
.dl225-controls select{border:1px solid #587b89;border-radius:8px;padding:7px 9px;background:#102838;color:white;min-width:180px}
#dl225Summary{font-weight:650;color:#e8faff}
.dl225-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #345c6b;border-radius:10px;background:#0d2836;padding:10px;margin:8px 0}
.dl225-description{display:grid;gap:5px;min-width:120px;flex:1}
.dl225-description small{color:#a9bfcc;font-size:12px}
.dl225-track{height:6px;width:100%;border-radius:6px;background:#264552;overflow:hidden}
.dl225-track span{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#76d88d,#ffcb6c,#f76c68)}
.dl225-actions{display:flex;gap:7px;flex-wrap:wrap}.dl225-actions button{font-size:12px}
#dl225Cost,#dl225Hint{color:#b8d0df;font-size:12px;line-height:1.5}
@media(max-width:700px){.dl225-head{align-items:flex-start;flex-wrap:wrap}.dl225-head button{max-width:100%}.dl225-row{flex-direction:column;align-items:stretch}.dl225-actions{width:100%}.dl225-actions button{flex:1}}

/* v2.2.6 live technician dispatch and spare-parts manager */
.dl226-box{margin:12px 0;border:1px solid #426c79;border-radius:12px;background:#102b3b;color:#e9f5fb;overflow:hidden}
.dl226-head{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:13px 14px}
.dl226-head>div{display:grid;gap:4px;min-width:0}.dl226-head strong{font-size:14px}.dl226-head small{font-size:12px;color:#afd0db}
.dl226-head button,.dl226-row button{border:1px solid #57849a;background:#1b4558;color:#f4fbff;border-radius:9px;padding:8px 11px;cursor:pointer}
.dl226-box button:hover{background:#25576a}.dl226-box button:disabled{opacity:.45;cursor:default}
#dl226Body{padding:12px 14px 14px;border-top:1px solid #335767}
.dl226-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:12px}
.dl226-controls label{display:grid;gap:6px;font-size:12px;color:#c1dce6}
.dl226-controls select,.dl226-controls input{width:100%;min-width:0;border:1px solid #5b8193;border-radius:8px;background:#0c2635;color:#f1fbff;padding:9px;font-size:13px}
#dl226Summary{font-size:13px;font-weight:650;color:#d8f5d5}
#dl226Parts,#dl226Jobs{margin-top:13px;padding:10px;border:1px solid #32596a;border-radius:10px;background:#0d2533}
#dl226Parts h4,#dl226Jobs h4{margin:0 0 8px;font-size:14px}
.dl226-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #345061;font-size:13px}
.dl226-row:last-child{border-bottom:0}.dl226-row>div{display:grid;gap:3px}.dl226-row small{color:#adcad5}
#dl226Hint{margin-top:12px;color:#b9d0db;font-size:12px;line-height:1.55}
@media(max-width:760px){.dl226-controls{grid-template-columns:1fr}.dl226-head{align-items:flex-start;flex-wrap:wrap}.dl226-row{align-items:flex-start;flex-wrap:wrap}.dl226-row button{flex-shrink:0}}

@media(min-width:761px){.dl226-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.dl226-controls label:first-child{grid-column:1/-1}}

/* v2.2.7 — Compact reliability dashboard inside Tasks; no map overlay. */
.dl227-box{margin:10px 0;padding:0;background:#0e2432;border:1px solid #365264;border-radius:13px;color:#e4f2fb;overflow:hidden}
.dl227-head{padding:13px 14px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.dl227-head strong{font-size:14px;display:block}.dl227-head small{display:block;color:#aac1d0;margin-top:3px;font-size:11px}
.dl227-box button{padding:8px 10px;border:1px solid #547487;background:#194155;color:#e8f4fc;border-radius:8px;cursor:pointer;font-size:12px;flex-shrink:0}
#dl227Body{padding:0 13px 14px}#dl227Body[hidden]{display:none}
.dl227-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:8px 0 14px}
.dl227-kpi{padding:10px;border:1px solid #31526b;background:#122d3c;border-radius:9px;display:flex;flex-direction:column;gap:5px;min-width:0}
.dl227-kpi small{color:#a9c0d0;font-size:10px}.dl227-kpi strong{font-size:17px;font-variant-numeric:tabular-nums}
.dl227-economics,.dl227-history{border:1px solid #31526b;background:#102938;border-radius:10px;padding:12px;margin:10px 0}
.dl227-economics h4,.dl227-history h4{margin:0 0 10px;font-size:14px}.dl227-economics label{display:block;color:#dcebf4;font-size:12px}
.dl227-assumption{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:8px 0}.dl227-assumption input{max-width:140px;padding:8px;background:#08202c;color:#fff;border-radius:8px;border:1px solid #547487}
.dl227-assumption small,.dl227-economics>small,.dl227-muted,.dl227-foot{color:#aabecb;font-size:11px}
.dl227-economics p{font-size:12px;line-height:1.5}.dl227-rows{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.dl227-item{border:1px solid #31516b;padding:12px;background:#132e40;border-radius:11px;min-width:0}.dl227-item.fault{border-color:#f07f7d}.dl227-item.high{border-color:#f2bd65}.dl227-item.medium{border-color:#b3ae66}
.dl227-item-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.dl227-item-head strong{font-size:13px}.dl227-chip{padding:4px 7px;background:#29485b;border-radius:30px;font-size:10px}
.dl227-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.dl227-metrics>div{display:flex;flex-direction:column;gap:3px;min-width:0}.dl227-metrics small{font-size:10px;color:#b0c3d0}.dl227-metrics b{font-size:13px;font-variant-numeric:tabular-nums}
.dl227-bar{height:6px;background:#274458;border-radius:9px;margin:12px 0 8px;overflow:hidden}.dl227-bar span{display:block;height:100%;background:linear-gradient(90deg,#87c9a1,#f4c56b,#f27f73)}
.dl227-reason{font-size:12px;margin:8px 0}.dl227-actions{display:flex;gap:8px;flex-wrap:wrap}.dl227-box button.dl227-primary{background:#c9ef8c;color:#203321;border-color:#e0f3bc;font-weight:700}
.dl227-history-row{padding:7px 0;border-bottom:1px solid #2e4859;display:flex;gap:12px;justify-content:space-between;font-size:12px}.dl227-history-row:last-child{border:0}.dl227-foot{margin:10px 0 0;line-height:1.5}
@media (max-width:650px){.dl227-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.dl227-rows{grid-template-columns:1fr}.dl227-head{flex-direction:column;gap:9px}.dl227-head button{align-self:flex-start}}
/* Dockline v2.2.8 — repair/replacement decision interface */
.dl228-panel{margin:12px 0;border:1px solid #3a6476;border-radius:12px;background:linear-gradient(160deg,#112e3b,#0b2230);color:#e8f5fa;overflow:hidden}
.dl228-panel summary{cursor:pointer;list-style:revert;padding:14px 16px;background:#153b4b;color:#e8f7ff;font-weight:750;font-size:14px;letter-spacing:.01em}
.dl228-body{padding:14px;display:flex;flex-direction:column;gap:12px}
.dl228-body p{margin:0;font-size:12px;line-height:1.55;color:#cbdce6}
.dl228-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.dl228-grid label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#dce9f1;min-width:0}
.dl228-grid input{width:100%;max-width:100%;padding:9px 10px;box-sizing:border-box;border-radius:8px;border:1px solid #67849b;background:#071e2c;color:#f2f9ff;font-size:13px}
#dl228Summary{border:1px solid #31546a;background:#102c3c;padding:9px 12px;border-radius:8px;font-weight:650}
#dl228Rows{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:12px}
.dl228-item{min-width:0;padding:13px;border:1px solid #43657b;border-radius:10px;background:#102e3f;display:flex;flex-direction:column;gap:11px}
.dl228-itemhead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}
.dl228-itemhead strong{font-size:14px}.dl228-itemhead span{font-size:11px;color:#ffc17c;background:#423528;padding:4px 7px;border-radius:8px}
.dl228-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px}
.dl228-stat{border-radius:8px;background:#183a4c;padding:9px;display:flex;flex-direction:column;gap:5px}
.dl228-stat small{font-size:10px;color:#b7cedc}.dl228-stat b{font-size:13px;overflow-wrap:anywhere}
.dl228-compare{padding:9px 10px;border-left:3px solid #d3ef91;background:#213e43}
.dl228-note{font-size:11px!important;color:#aec3d3!important}
.dl228-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dl228-actions button{padding:10px 15px;border-radius:8px;border:1px solid #def4af;background:#caeb8d;color:#1d3423;font-weight:750;cursor:pointer}.dl228-actions button:disabled{opacity:.45;cursor:not-allowed}
#dl228History{padding:12px;border:1px solid #375d70;border-radius:9px;background:#0d2635}
#dl228History h4{font-size:13px;margin:0 0 10px}
.dl228-history-item{padding:10px;border-radius:8px;margin-bottom:8px;background:#153448;border:1px solid #325268}
.dl228-history-item strong{font-size:12px}.dl228-history-item p{margin-top:6px}
#dl228Foot{font-size:11px;color:#9fb8c9}
@media(max-width:640px){.dl228-grid{grid-template-columns:1fr}.dl228-body{padding:10px}.dl228-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.dl228-item{padding:10px}}

.dl228-panel{margin:10px 0;padding:12px;border:1px solid #45667a;border-radius:12px;background:#0f2431;color:#eef7ff}.dl228-panel header{display:flex;align-items:center;gap:12px}.dl228-panel header small{flex:1;color:#b6cad4}.dl228-panel button{background:#27465b;color:#fff;border:1px solid #63829a;border-radius:8px;padding:8px;cursor:pointer}.dl228-panel button:disabled{opacity:.5}.dl228-item{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid #375367;padding:8px 0}.dl228-item p{margin:0;line-height:1.5;font-size:12px}@media(max-width:640px){.dl228-panel header,.dl228-item{flex-wrap:wrap}}

/* v2.2.9 warehouse equipment view */
.dl229-panel{margin:12px 0;padding:12px;border:1px solid #46717c;border-radius:12px;background:#102b37;color:#e9f5f5}.dl229-panel header{display:flex;align-items:center;justify-content:space-between;gap:10px}.dl229-panel header div{display:flex;flex-direction:column;gap:5px}.dl229-panel header small{font-size:12px;color:#b8d4da}.dl229-panel button{background:#20495b;color:white;border:1px solid #618b9e;border-radius:8px;padding:7px 10px;cursor:pointer}.dl229-panel button:disabled{opacity:.4;cursor:not-allowed}.dl229-item{border:1px solid #365f72;border-radius:9px;padding:10px;margin:10px 0;display:grid;gap:7px;background:#142f3c}.dl229-item small{color:#c9e4e8;font-size:11px}.dl229-actions{display:flex;gap:6px;flex-wrap:wrap}#dl229Rows{max-height:430px;overflow-y:auto}@media(max-width:580px){.dl229-panel header{align-items:flex-start;flex-wrap:wrap}.dl229-actions button{flex:1;min-width:100px}}

/* Dockline v2.3.0 technician operations */
#dl230Team{margin:12px 0;border:1px solid #536c7b;border-radius:12px;padding:12px;background:#0b2833;max-width:100%;box-sizing:border-box}
#dl230Team .dl225-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
#dl230Team label{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;padding:5px}
#dl230Team input[type=number]{max-width:108px}
#dl230Team .dl230-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #52687566;flex-wrap:wrap}
#dl230Team .dl230-row div{min-width:0;overflow-wrap:anywhere}
#dl230Team .dl230-row strong,#dl230Team .dl230-row small{display:block}
#dl230Team button{min-height:32px}
#dl230Team #dl230Body{max-height:420px;overflow-y:auto}
@media(max-width:640px){#dl230Team{padding:8px}#dl230Team .dl230-row{font-size:12px;gap:6px}}
