.three-bay-controls{display:flex;align-items:center;gap:5px;overflow-x:auto;white-space:nowrap;padding:0 0 5px;margin-bottom:4px}.three-bay-controls>span{font-size:12px;color:#536579}.three-bay-toggle{display:inline-flex;align-items:center;gap:4px;border:1px solid #b8c5d2;background:#fff;color:#263e50;border-radius:3px;padding:3px 5px;font-size:11px;flex-shrink:0}.three-bay-toggle svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6}.three-bay-toggle .eye-slash{display:none}.three-bay-toggle[aria-pressed=true]{background:#dce3e9;color:#6b7781}.three-bay-toggle[aria-pressed=true] .eye-slash{display:block}.three-bay-controls .button{padding:3px 7px;font-size:11px}.three-bay-controls~.three-stage{height:calc(100dvh - 260px)}
.three-accommodation{margin-top:8px;border-top:1px solid #c4cdd6;padding-top:6px}.three-accommodation summary{cursor:pointer;font-size:13px}.three-accommodation form{display:flex;align-items:end;flex-wrap:wrap;gap:8px;padding:8px 0}.three-accommodation label{display:flex;flex-direction:column;gap:3px;font-size:12px}.three-accommodation label:first-child{flex-direction:row;align-items:center}.three-accommodation input[type=number]{width:110px}.three-accommodation input,.three-accommodation select{padding:4px;border:1px solid #aebbc8;border-radius:3px}.three-accommodation [role=status]{font-size:12px}
:root{font-family:Inter,Arial,sans-serif;color:#21383e;background:#f4f6f6;font-synthesis:none;--green:#173f47;--muted:#6c7c81;--border:#dce5e5}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{outline-offset:3px}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}a{color:inherit}h1,h2,p{margin:0}h1{font-size:30px;letter-spacing:-.7px}h2{font-size:17px}.button{border:1px solid var(--border);border-radius:7px;background:#fff;color:#28454c;padding:10px 15px;font-size:13px;font-weight:600;white-space:nowrap}.button:hover:not(:disabled){background:#edf3f1;border-color:#9eb7b2}.primary,#import-vessels{background:var(--green);border-color:var(--green);color:white}.primary:hover:not(:disabled),#import-vessels:hover{background:#285660}.icon-button{border:0;background:transparent;font-size:26px;color:#6c7c81}.app-header{height:76px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 32px;gap:16px}.brand{display:flex;gap:13px;align-items:center;text-decoration:none;font-size:20px;letter-spacing:-.4px}.brand>svg{width:36px;height:36px;color:var(--green)}.brand b{font-weight:400}.brand small{display:block;font-size:10px;color:var(--muted);margin-top:4px;letter-spacing:1px}.header-right{display:flex;gap:18px;align-items:center}.private-badge{font-size:11px;color:#627b70;background:#eff5ef;border-radius:20px;padding:7px 11px}.app-layout{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:calc(100vh - 76px)}.sidebar{padding:32px 18px 22px;border-right:1px solid var(--border);background:#fafcfc;display:flex;flex-direction:column}.nav-caption{font-size:10px;letter-spacing:1.5px;color:#87969b;margin:0 12px 18px}.nav-item{display:flex;width:100%;align-items:center;justify-content:space-between;border:0;border-radius:7px;background:transparent;padding:13px 12px;margin-bottom:6px;text-align:left;font-size:13px;color:#62767c}.nav-item.active{background:#e7efec;color:var(--green);font-weight:bold}.nav-item b{font-size:11px;font-weight:400}.sidebar-note{margin:40px 12px 25px;color:#567065;font-size:11px}.sidebar-note p{line-height:1.7;color:#83938f;margin-top:10px}.status-dot{display:inline-block;width:6px;height:6px;background:#6d9a7e;border-radius:50%;margin-right:6px}.version{margin:auto 12px 0;color:#93a09f;font-size:10px}.workarea{padding:35px 40px 50px;min-width:0}.page-head{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:30px}.eyebrow{font-size:9px;letter-spacing:1.7px;color:#8b9a9d;margin-bottom:12px}.page-head p:not(.eyebrow){font-size:13px;color:var(--muted);margin-top:10px;line-height:1.5}.page-actions{display:flex;gap:8px;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:28px}.stat{padding:18px 20px;background:#fff;border:1px solid var(--border);border-radius:9px}.stat span{font-size:11px;color:var(--muted);display:block}.stat strong{display:block;font-size:24px;margin-top:12px;font-weight:500}.vessel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:20px}.vessel-card{border:1px solid var(--border);background:white;border-radius:10px;padding:22px}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.ship-badge{width:45px;height:45px;background:#edf3ef;border-radius:9px;padding:10px;color:#507268}.ship-badge svg{width:100%;height:100%}.pill{font-size:10px;background:#f0f4f4;border-radius:15px;padding:6px 9px;color:#6c8081}.vessel-card h2{font-size:18px;word-break:break-word}.card-subtitle{color:#879396;font-size:11px;margin-top:7px}.card-capacity{display:flex;gap:8px;align-items:baseline;margin:23px 0}.card-capacity strong{font-size:23px;font-weight:500}.card-capacity span{font-size:11px;color:var(--muted)}.card-actions{display:flex;gap:8px;border-top:1px solid #edf0f0;padding-top:18px}.card-actions .button{flex:1;padding:9px 10px}.empty{background:#fff;border:1px solid var(--border);border-radius:10px;padding:65px 24px;text-align:center}.empty-ship{width:68px;height:68px;margin:0 auto 20px;color:#aac1b5}.empty p{font-size:13px;color:var(--muted);margin:14px auto 24px;line-height:1.7;max-width:420px}.table-card{overflow:auto;border:1px solid var(--border);background:#fff;border-radius:9px}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:12px}th{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:#74888c;text-align:left;background:#f9fbfb}th,td{padding:17px 20px;border-bottom:1px solid #edf2f1}tr:last-child td{border-bottom:0}.bay-workspace{background:white;border:1px solid var(--border);border-radius:9px;overflow:hidden}.bay-toolbar{padding:20px 22px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #edf2f1;gap:16px}.bay-toolbar h2{margin-bottom:10px}.legend{font-size:10px;color:var(--muted);display:flex;gap:8px;align-items:center}.legend i{width:10px;height:10px;border:1px solid #334e59;background:#fff}.legend b{font-size:16px;color:#546c75}.bay-navigation{display:flex;gap:7px;overflow:auto;padding:14px 22px;border-bottom:1px solid #edf2f1}.bay-navigation .button{font-size:11px;padding:7px 12px}.bay-navigation [aria-pressed=true]{background:#173f47;border-color:#173f47;color:white}.drawing-scroll{padding:25px;max-height:70vh;overflow:auto;min-height:300px}.planner-overview{width:100%;display:block;min-width:400px;max-height:none}.planner-bay{cursor:pointer}.planner-bay:hover>rect:first-of-type{fill:#edf5ef;fill-opacity:.45}.containers-card{margin-top:22px}.section-head{padding:20px;display:flex;align-items:center;justify-content:space-between}.section-head span{color:var(--muted);font-size:11px}.empty-cell{text-align:center;color:#94a2a3;padding:35px}.pager{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:22px;font-size:12px;color:var(--muted)}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#eef4f0,#f5f7f7)}.login-card{background:white;border:1px solid var(--border);border-radius:14px;width:420px;max-width:100%;padding:40px}.login-brand{font-size:11px;color:#6e8b80;text-transform:uppercase;letter-spacing:2px;margin:22px 0 12px}.login-card h1{font-size:24px}.login-card p{font-size:13px;line-height:1.7;color:var(--muted);margin:14px 0 24px}.field{display:flex;flex-direction:column;gap:8px;margin:0 0 18px;font-size:12px}.field span{color:#526b70}.field input,.field select{padding:11px 12px;border:1px solid #cfdcda;border-radius:6px;background:white;min-width:0;width:100%;color:#243c42}.field small,.login-card small{font-size:10px;color:var(--muted)}.login-foot{font-size:10px;color:#96a3a1;margin-top:25px;text-align:center}.full-width{width:100%}.login-error,#dialog-error{font-size:12px;color:#aa3e37;margin:12px 0;white-space:pre-wrap}.login-notice{font-size:12px;color:#916d30;padding:12px;background:#faf5e9;border-radius:6px;margin-bottom:16px}.loading{text-align:center;padding:100px;color:var(--muted)}dialog{width:430px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);overflow:auto;border:1px solid var(--border);border-radius:12px;padding:25px;box-shadow:0 12px 65px #173f4733}dialog::backdrop{background:#213b4555}.dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}#toast{position:fixed;top:calc(84px + env(safe-area-inset-top,0px));right:16px;bottom:auto;left:auto;transform:none;pointer-events:none;z-index:10;max-width:min(400px,90vw);border-radius:8px;background:#173f47;color:white;box-shadow:0 8px 25px #173f4720;padding:8px 12px;font-size:12px;line-height:1.35}#toast.error{background:#9e443a}[hidden]{display:none!important}@media(min-width:1600px){.workarea{max-width:1600px;width:100%;margin:0 auto}}@media(max-width:1100px){.page-head{align-items:flex-start;flex-direction:column}.app-layout{grid-template-columns:180px minmax(0,1fr)}.workarea{padding:28px}.stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.app-header{height:68px;padding:0 18px}.brand{font-size:17px}.brand>svg{width:28px}.private-badge{display:none}.header-right .button{padding:8px 10px}.app-layout{display:block}.sidebar{padding:10px 16px;border-right:0;border-bottom:1px solid var(--border)}.sidebar nav{display:flex;gap:10px}.nav-item{margin:0;padding:11px}.nav-caption,.sidebar-note,.version{display:none}.workarea{padding:25px 18px}.page-head{margin-bottom:22px}.page-actions{width:100%}.page-actions .button{flex:1}h1{font-size:27px}.stat{padding:14px}.stat strong{font-size:21px}.vessel-grid{grid-template-columns:1fr}.login-card{padding:28px}.drawing-scroll{padding:12px}.bay-toolbar{padding:17px}.bay-navigation{padding:12px}.bay-toolbar .pill{display:none}.bay-toolbar h2{font-size:15px}.legend{font-size:9px}}
/* Voyage editing */
.edit-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:-8px 0 20px;padding:14px 18px;border:1px solid #cbded6;background:#edf4ef;border-radius:8px}.edit-bar strong{font-size:12px}.edit-bar span{display:block;font-size:10px;color:var(--muted);margin-top:5px}.edit-actions{display:flex;flex-wrap:wrap;gap:6px}.edit-actions .button{padding:8px 11px}.edit-actions [data-action=save-plan],[data-action=add-container]{background:var(--green);color:white}.cargo-summary{font-size:11px;color:var(--muted);margin-top:9px;line-height:1.7}.containers-card{overflow:hidden;min-width:0}.section-head{gap:15px;flex-wrap:wrap}.cargo-filter{padding:0 20px 18px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--muted)}.cargo-filter input{border:1px solid #cfdcda;border-radius:6px;padding:9px 11px;font-size:12px;min-width:0;max-width:100%;width:285px}.cargo-filter span{margin-left:auto}.cargo-table-scroll{overflow:auto;width:100%}.cargo-table-scroll th,.cargo-table-scroll td{padding:14px 15px}.row-actions{display:flex;gap:6px}.row-actions .button{padding:7px 10px;font-size:11px}.cargo-warning-tag{display:inline-block;margin-left:8px;background:#fff1cf;color:#846018;padding:3px 6px;border-radius:4px;font-size:9px}.cargo-warnings{padding:12px 20px;background:#fff8e8;border-top:1px solid #efe3c5;border-bottom:1px solid #efe3c5;font-size:11px;color:#7b601f;white-space:normal;line-height:1.6}.cargo-warnings summary{cursor:pointer}.cargo-warnings ul{margin:8px 0;padding-left:18px;max-height:160px;overflow:auto}.cargo-pager{display:flex;justify-content:flex-end;align-items:center;gap:9px;padding:15px;font-size:11px;color:var(--muted)}#cargo-dialog{width:600px}.cargo-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px}.cargo-position{font-size:11px;color:var(--muted);line-height:1.6;margin-bottom:15px}#cargo-form-error{color:#aa3e37;font-size:12px;line-height:1.6;margin:0 0 14px;white-space:normal}.conflict-notice{background:#fff1df;color:#895326;border:1px solid #ebd0b0;border-radius:8px;padding:15px 18px;margin-bottom:20px;font-size:12px;line-height:1.7}.conflict-notice>div{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}@media(max-width:650px){.edit-bar{flex-direction:column;align-items:stretch;padding:13px}.edit-actions{display:grid;grid-template-columns:repeat(2,1fr)}.cargo-form-grid{gap:0 12px}.cargo-form-grid .field{font-size:11px}.cargo-form-grid .field small{font-size:9px;line-height:1.5}#cargo-dialog{padding:20px}.cargo-filter{padding:0 15px 15px;gap:8px}.cargo-filter input{width:100%}.cargo-filter span{margin-left:0}.section-head{padding:16px}.cargo-summary{max-width:100%}}

.edit-bar{position:sticky;top:12px;z-index:2;box-shadow:0 3px 12px #173f4710}#cargo-panel{scroll-margin-top:105px}@media(max-width:650px){#cargo-panel{scroll-margin-top:175px}}
/* Interactive stowage */
.stowage-tools{padding:15px 22px;background:#f8faf9;border-bottom:1px solid var(--border);display:flex;gap:18px;justify-content:space-between;flex-wrap:wrap}.placement-instructions{font-size:12px;line-height:1.6;min-width:0;flex:1;max-width:600px}.placement-instructions strong,.placement-instructions span{display:block}.placement-instructions span{color:var(--muted);font-size:11px}.placement-instructions>div{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.placement-instructions>.button{margin-top:8px}.view-controls{display:flex;gap:7px;align-items:center;flex-wrap:wrap;font-size:11px}.view-controls label{display:flex;flex-direction:column;gap:5px}.view-controls select{border:1px solid #bcd0cc;border-radius:5px;background:white;padding:7px;max-width:150px;font-size:11px}.view-controls .button{padding:7px 10px}.color-legend{display:flex;gap:10px;flex-wrap:wrap;padding:10px 22px;font-size:10px}.color-legend:empty{display:none}.color-legend span{display:flex;gap:5px;align-items:center}.color-legend i{width:12px;height:12px;border:1px solid #718b8c;border-radius:2px}.stowage-cell{cursor:pointer}.stowage-cell:hover rect,.stowage-cell:focus rect{stroke:#a0390d;stroke-width:3}.stowage-cell text{pointer-events:none}.stowage-cell:focus{outline:none}.stowage-drawing{display:block;width:100%;min-width:280px}.drawing-scroll{scroll-margin-top:120px;overscroll-behavior:contain}.fit-horizontal>svg{width:calc(100% * var(--drawing-zoom));height:auto;min-width:280px}.fit-vertical>svg{height:calc(60vh * var(--drawing-zoom));width:auto;min-width:0;max-width:none}.cargo-actions{display:flex;flex-wrap:wrap;gap:6px}.active-cargo{background:#fff0dc}.cargo-table-scroll input[type=checkbox]{width:16px;height:16px;accent-color:#173f47}#import-dialog{width:650px}#import-dialog p{font-size:12px;line-height:1.7;margin-bottom:14px}.import-errors{padding:14px;margin:14px 0;background:#fff4e3;font-size:12px;max-height:220px;overflow:auto}.import-warning{color:#895326}.bay-workspace{scroll-margin-top:110px}@media(max-width:650px){.stowage-tools{padding:13px}.view-controls{width:100%}.view-controls label{flex:1;min-width:70px}.view-controls select{max-width:100%;width:100%}.color-legend{padding:9px 13px}.bay-workspace{scroll-margin-top:180px}.cargo-actions .button{font-size:11px;padding:8px}.drawing-scroll{min-height:230px}.dialog-actions{flex-wrap:wrap}}
#bulk-dialog{width:600px}#bulk-error{color:#aa3e37;font-size:12px;line-height:1.6;margin-bottom:12px}
#edi-dialog{width:650px}#edi-dialog p,#metadata-dialog p{font-size:12px;line-height:1.7;margin:0 0 14px}#edi-error,#metadata-error{color:#aa3e37}.cargo-filter-options{display:flex;align-items:end;gap:9px;flex-wrap:wrap;padding:0 22px 18px;font-size:11px}.cargo-filter-options label{display:flex;flex-direction:column;gap:5px}.cargo-filter-options select{max-width:180px;background:white;border:1px solid #bcd0cc;padding:8px;border-radius:5px}.cargo-filter-options .button{font-size:11px;padding:8px 10px}.cargo-filter-options span{padding:8px 0;color:var(--muted)}.pan-enabled{cursor:grab;touch-action:none;user-select:none}.pan-enabled .stowage-cell{cursor:grab}.pan-enabled.panning,.pan-enabled.panning .stowage-cell{cursor:grabbing}.view-controls .button[aria-pressed=true]{background:#173f47;color:#fff}@media(max-width:650px){.cargo-filter-options{padding:0 15px 15px}.cargo-filter-options label{flex:1;min-width:90px}.cargo-filter-options select{width:100%;max-width:100%}}
/* Cargo reports and reviewed exports */
#other-export-dialog{width:680px}#report-dialog,#compare-dialog,#print-dialog{width:1100px}.report-note{font-size:12px;color:var(--muted);line-height:1.7;margin:12px 0}.report-error{font-size:12px;color:#aa3e37;margin:12px 0}.report-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 14px}.report-total{font-size:18px;font-weight:bold;margin:22px 0 10px}.report-table{overflow:auto;max-width:100%;border:1px solid var(--border);border-radius:7px;margin:16px 0}.report-table th,.report-table td{padding:11px 13px}.report-table tbody tr:hover{background:#f1f6f4}.report-review{padding:16px;border:1px solid #b7d1c6;background:#f2f7f4;border-radius:8px;margin:15px 0;font-size:12px;line-height:1.7}.report-review ul{max-height:180px;overflow:auto;padding-left:20px}.acknowledge{display:block;margin:14px 0}.weight-chart{margin:22px 0;padding:16px;border:1px solid var(--border);border-radius:8px}.weight-chart h3,#report-result h3{font-size:14px;margin:18px 0 12px}.weight-bar{display:grid;grid-template-columns:110px minmax(40px,1fr) 180px;align-items:center;gap:12px;margin:10px 0;font-size:11px}.weight-bar>div{height:16px;background:#edf2f0;border-radius:3px;overflow:hidden}.weight-bar i{display:block;height:100%;background:#609a8d;border-radius:3px}.weight-bar b{text-align:right;font-weight:normal}.comparison-counts{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.report-table td:last-child{max-width:320px;white-space:normal}#print-frame{width:100%;height:65vh;border:1px solid var(--border);margin-top:18px}.report-review .dialog-actions{margin-top:15px}@media(max-width:650px){.report-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 10px}#report-dialog,#compare-dialog,#print-dialog{padding:16px}.report-total{font-size:15px}.weight-bar{grid-template-columns:70px minmax(20px,1fr);gap:8px}.weight-bar b{grid-column:2;text-align:left}.weight-chart{padding:10px}#print-frame{height:50vh}.acknowledge{line-height:1.7}}
#compare-lists-dialog{width:1200px}#comparison-list-table input{border:1px solid transparent;border-radius:3px;background:transparent;padding:6px;font-size:11px;width:120px}#comparison-list-table td{padding:5px}#comparison-list-table input:focus{background:#fff;border-color:#85b4a6}#list-form-view:not(:empty){padding:18px;background:#f7faf8;border:1px solid var(--border);margin:18px 0;border-radius:8px}#list-form-view h3{margin-top:0;font-size:15px}

textarea{font:inherit;max-width:100%;border:1px solid var(--border);padding:10px;border-radius:6px;color:#21383e;background:white}#condition-dialog,#dg-dialog{width:min(1100px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto}#condition-dialog h3,#dg-dialog h3{margin:18px 0 10px}.condition-prefix{min-width:0;flex:2}.condition-prefix textarea{width:100%}.condition-bars{margin:16px 0}.condition-bars .weight-bar>div{display:flex}.condition-bars .condition-hold-bar{background:#91c5ed}.condition-bars .condition-deck-bar{background:#f3b08d}.deck-key{color:#9d4b1b}.hold-key{color:#245b8a}.dg-legend{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.dg-legend span{display:flex;align-items:center;gap:6px;font-size:12px}.dg-legend b,.dg-answer>b{display:inline-flex;justify-content:center;align-items:center;color:#142d38;min-width:30px;padding:7px;border:1px solid #556773;border-radius:4px}.dg-answer{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0;padding:14px;background:#f0f5f5;border-radius:7px}.dg-answer span{flex-basis:100%;font-size:14px}.dg-matrix table{min-width:1050px}.dg-matrix th{white-space:normal}.dg-matrix td{padding:2px}.dg-matrix td button{width:100%;min-width:38px;border:1px solid #637a83;border-radius:3px;padding:7px;color:#173039;font-weight:bold}#condition-dialog .report-table td:last-child{max-width:420px;white-space:normal}#condition-dialog .report-table button,#dg-dialog .report-table button{margin:2px}@media(max-width:600px){.condition-prefix{width:100%}.condition-bars .weight-bar{grid-template-columns:68px minmax(30px,1fr) 80px}.dg-answer strong{font-size:14px}}

#color-dialog{width:min(800px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto}.port-color-preview{padding:16px;border:1px solid #5b737d;border-radius:6px;margin:12px 0;font-weight:bold}.port-color-swatch{display:inline-block;border:1px solid #5b737d;padding:7px 12px;border-radius:5px}#port-color-picker{height:43px;width:100%;padding:2px}#color-dialog h3{margin:18px 0 10px}@media(max-width:600px){#condition-dialog .report-filters,#color-dialog .report-filters{grid-template-columns:1fr}.condition-prefix textarea{min-height:70px}}
/* Supplied calculation workflows. */
#calculation-dialog{width:min(1200px,calc(100vw - 32px));max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);overflow:auto}


.calc-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.calc-tabs [aria-pressed=true]{background:#173f47;color:white}.calc-edit input{width:115px;min-width:80px;padding:8px;border:1px solid #9baeb1;border-radius:4px;background:white;color:#17333b}.calc-edit input[data-field=name]{width:180px}.calc-edit td{padding:6px}.calc-wide{grid-column:span 2}.gz-curve{width:100%;max-width:850px;background:white;border:1px solid #b5c2c4}.calculation-issues{color:#813819;background:#fff5e8;padding:12px 12px 12px 32px;border-radius:8px;max-height:220px;overflow:auto}
@media(max-width:600px){.calc-wide{grid-column:auto}.calc-tabs .button{padding:8px}#calculation-dialog{padding:16px}}
.tank-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin:14px 0}.tank-cards article{display:flex;gap:12px;align-items:center;background:#f6faf9;border:1px solid #acbec0;border-radius:8px;padding:12px;min-width:0}.tank-cards strong{overflow-wrap:anywhere}.tank-cards p{margin:6px 0}.tank-gauge{height:88px;width:64px;flex-shrink:0;position:relative;border:2px solid #1b5354;border-radius:8px;background:white;overflow:hidden}.tank-gauge i{position:absolute;left:0;right:0;bottom:0;background:#b6dfd4;border-top:2px solid #387b6e}.tank-gauge b{position:absolute;inset:0;display:grid;place-items:center;font-size:11px;color:#17333b}

.selection-tools{flex-basis:100%;font-size:12px;line-height:1.6;background:#fff7de;border:1px solid #cfab44;padding:12px;border-radius:6px}.selection-tools strong,.selection-tools span{display:block}.selection-tools>div{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.select-enabled{touch-action:none;cursor:crosshair;user-select:none}.select-enabled .stowage-cell{cursor:crosshair}.stowage-cell.cell-picked rect,.stowage-cell.cell-preview rect{stroke:#9b2c00;stroke-width:4;stroke-dasharray:5 2}.stowage-cell.cargo-picked rect{stroke:#722295;stroke-width:4}.selection-rectangle{fill:#ffd56a;fill-opacity:.18;stroke:#9b2c00;stroke-width:2;vector-effect:non-scaling-stroke;pointer-events:none}.report-table input.grid-picked{background:#fff4cb!important;outline:2px solid #926507;outline-offset:-2px}.grid-tools{margin:12px 0;font-size:11px;align-items:center}.grid-tools span{color:#624b1c}#comparison-list-table th .button{font-size:10px;padding:5px;background:transparent;border:0;text-transform:uppercase}#comparison-list-table td input:focus{outline:3px solid #722295}.release-list{display:grid;gap:16px}.release-list article{background:white;border:1px solid var(--border);border-radius:9px;padding:22px}.release-list h2{display:flex;gap:12px;align-items:center}.release-list time{font-size:11px;color:var(--muted);font-weight:normal}.release-list ul{font-size:13px;line-height:1.8;padding-left:18px}.release-status{padding:16px;border:1px solid #ded3b0;background:#fff8e8;border-radius:7px;font-size:12px;line-height:1.7;margin-bottom:22px}

#comparison-list-table input{touch-action:none}#comparison-list-table th .button:focus-visible{outline:3px solid #722295}.select-enabled .placement-instructions:empty{display:none}

.sidebar-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:18px}.sidebar-heading .nav-caption{margin:0 0 0 12px}.sidebar-toggle{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;border:1px solid var(--border);border-radius:6px;background:white;color:var(--green);cursor:pointer}.sidebar-toggle:hover{background:#e7efec}.sidebar-toggle svg{width:18px;height:18px}.nav-item{gap:8px;padding-left:10px;padding-right:10px}.nav-icon{display:flex;width:22px;height:22px;flex-shrink:0}.nav-icon svg{width:100%;height:100%}.nav-label{flex:1;font-size:12px}.nav-count{margin-left:auto}.sidebar-toggle:focus-visible,.nav-item:focus-visible{outline:3px solid #9b2c00}@media(min-width:651px){.sidebar-compact{grid-template-columns:72px minmax(0,1fr)}.sidebar-compact .sidebar{padding:24px 10px}.sidebar-compact .sidebar-heading{justify-content:center}.sidebar-compact .nav-caption,.sidebar-compact .nav-label,.sidebar-compact .nav-count,.sidebar-compact .sidebar-note,.sidebar-compact .version{display:none}.sidebar-compact .nav-item{justify-content:center;padding:13px 10px}}@media(max-width:650px){.sidebar-heading,.nav-icon{display:none}.nav-label{font-size:12px}.nav-item{gap:6px}}

#discharge-dialog{width:min(1050px,calc(100vw - 32px));max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px)}.operation-numbers{grid-column:span 2}.operation-numbers textarea{font:inherit;resize:vertical;border:1px solid #9baeb1;border-radius:5px;padding:10px;width:100%}.operation-warning{margin:10px 0;padding:10px;border:1px solid #d5b360;background:#fff8e6;border-radius:6px;font-size:12px}.operation-warning summary{cursor:pointer}.operation-warning p{margin-top:8px;line-height:1.7;overflow-wrap:anywhere}#operation-result .cargo-actions{margin:12px 0;align-items:center;flex-wrap:wrap}@media(max-width:600px){#discharge-dialog{padding:16px}.operation-numbers{grid-column:span 2}#discharge-dialog .dialog-actions{flex-wrap:wrap}}

.restore-skip{display:flex;align-items:center;gap:8px;font-size:12px;margin:16px 0}.restore-skip input{width:18px;height:18px;flex-shrink:0}#restore-form .field{max-width:520px}

#discharge-dialog .report-table table{min-width:850px}#discharge-dialog .report-table td:last-child{min-width:235px;max-width:280px}.restore-issues{padding:10px 10px 10px 28px;background:#fff4dd;color:#7d421b;border-radius:5px;font-size:12px;line-height:1.6}

#find-dialog{width:min(1120px,calc(100vw - 32px))}#find-error{color:#a0390d;font-size:12px;line-height:1.6}#find-dialog .report-table table{min-width:1050px}#find-dialog .dialog-actions{flex-wrap:wrap;margin-top:16px}#find-dialog textarea{font:inherit;border:1px solid #9baeb1;border-radius:5px;padding:10px;width:100%;resize:vertical}.find-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 20px;border-bottom:1px solid #d3af63;background:#fff8e6;font-size:12px}.find-banner span{color:#715520}.find-banner .button{padding:6px 10px}.stowage-cell.find-highlight>rect{stroke:#bd3e07;stroke-width:3;stroke-dasharray:5 2;vector-effect:non-scaling-stroke}#cargo-table th button{font:inherit;text-transform:inherit;letter-spacing:inherit;background:none;border:0;color:inherit;padding:0;white-space:nowrap;cursor:pointer}#cargo-table th[aria-sort=ascending],#cargo-table th[aria-sort=descending]{color:#173f47;background:#e7efec}@media(max-width:600px){#find-dialog{padding:16px}#find-dialog .dialog-actions .button{white-space:normal;flex:1;min-width:120px}.find-banner{padding:10px 15px}}

#cargo-table .find-hit td:first-child{border-left:4px solid #bd3e07}#size-dialog{width:min(650px,calc(100vw - 32px))}#size-dialog .dialog-actions{margin-top:15px;flex-wrap:wrap}

@media(max-width:600px){#find-form .cargo-form-grid>.field:first-child{grid-column:span 2}#find-scope{width:100%}}

.voyage-workspace{min-width:0}.workspace-divider{display:none}.cargo-statistics{padding:12px 16px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);font-size:12px}.cargo-statistics summary{cursor:pointer;font-weight:600;line-height:1.6}.stat-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0;color:var(--muted);font-size:11px}.stat-controls label{white-space:nowrap}.stat-controls select{max-width:100%;padding:6px;border:1px solid var(--border);border-radius:5px}.stat-controls span{flex:1;min-width:150px}.cargo-statistics .cargo-table-scroll{max-height:240px}.cargo-statistics th,.cargo-statistics td{padding:8px}.stat-filter{color:#173f47;border:1px solid transparent;background:transparent;border-radius:4px;padding:4px;min-width:25px;text-decoration:underline;text-underline-offset:3px}.stat-filter:hover,.stat-filter:focus-visible{background:#e7efec;border-color:#9eb7b2}.bay-navigation [aria-pressed=true]:hover:not(:disabled){background:#285660;border-color:#285660;color:#fff}
@media(min-width:1100px){.split-workspace{display:grid;grid-template-columns:minmax(0,1fr) 10px minmax(300px,var(--cargo-pane-width,380px));align-items:start}.split-workspace .bay-workspace{min-width:0}.split-workspace #cargo-panel{margin-top:0;min-width:0;max-height:80vh;overflow:auto;position:sticky;top:12px}.split-workspace .workspace-divider{display:flex;align-items:center;justify-content:center;align-self:stretch;cursor:col-resize;touch-action:none;min-height:300px}.workspace-divider span{width:4px;height:48px;border-radius:4px;background:#b7c8cc}.workspace-divider:hover span,.workspace-divider:focus-visible span{background:#173f47}.split-workspace #cargo-panel .section-head{display:block;padding:14px}.split-workspace .cargo-actions{margin-top:12px;max-height:130px;overflow:auto;gap:5px}.split-workspace .cargo-actions .button{padding:7px 9px;font-size:11px}.split-workspace .cargo-filter{flex-wrap:wrap;padding:12px}.split-workspace .cargo-filter input{min-width:150px}.split-workspace .cargo-filter-options{padding:12px}.split-workspace .stowage-tools{padding:12px}.split-workspace .drawing-scroll{padding:12px}}
.cargo-row-help{font-size:11px;line-height:1.6;color:var(--muted);margin:0;padding:10px 16px;border-top:1px solid var(--border)}.cargo-selection-cell{position:sticky;left:0;background:#fff;z-index:1;white-space:nowrap}.cargo-row-handle{display:inline-flex;align-items:center;justify-content:center;width:28px;height:30px;margin-right:6px;border:1px solid #c8d5d8;border-radius:5px;background:#f4f8f8;color:#173f47;font-size:18px;cursor:grab;vertical-align:middle}.cargo-row-handle:focus-visible{outline:3px solid #9865ca;outline-offset:1px}.cargo-row-handle:active{cursor:grabbing}.checked-cargo td{background:#e8f1ed}.checked-cargo .cargo-selection-cell{background:#dcece5}.checked-cargo .cargo-row-handle{background:#173f47;color:#fff;border-color:#173f47}#cargo-selection-status{line-height:1.5}
/* Keep selected-cargo guidance readable when the view controls wrap. */
.placement-instructions{flex:1 1 250px}#cargo-table thead th:first-child{position:sticky;left:0;z-index:2;background:#f8faf9}

.backup-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px;background:#f2f6f6;border-radius:10px}.backup-summary div{min-width:0}.backup-summary dt{font-size:12px;color:#52666b}.backup-summary dd{margin:4px 0 0;font-weight:600;overflow-wrap:anywhere}#backup-dialog{max-width:720px}#backup-dialog p{overflow-wrap:anywhere}#backup-dialog .dialog-actions{flex-wrap:wrap}.table-card td .button{margin:2px}@media(max-width:520px){.backup-summary{grid-template-columns:1fr}#backup-dialog{max-width:calc(100vw - 24px)}}
.library-tools{background:#fff;border:1px solid #d4dde0;border-radius:12px;padding:16px;margin:18px 0;display:flex;align-items:end;gap:12px;flex-wrap:wrap}.library-tools p{flex-basis:100%;margin:0;color:#52666b;font-size:.88rem}.library-search{flex:1;min-width:220px}.library-search label{display:block;font-size:.85rem;font-weight:650;margin-bottom:6px}.library-search>div{display:flex;gap:6px}.library-search input{min-width:0;flex:1;border:1px solid #99acb1;border-radius:7px;padding:9px;background:#fff;color:#20373e}.visibility-tabs{display:flex;gap:5px;flex-wrap:wrap}.visibility-tabs [aria-pressed=true]{background:#173f47;color:#fff}.fleet-handle{border:1px solid #b4c3c7;background:#f4f7f7;border-radius:6px;padding:5px 10px;font-size:24px;cursor:grab;touch-action:none}.fleet-handle:focus-visible{outline:3px solid #b77716;outline-offset:2px}.fleet-dragging{cursor:grabbing;background:#ddf0e9}.vessel-card .card-actions{gap:6px;flex-wrap:nowrap}.vessel-card .card-actions .button:not(.vessel-visibility-icon){min-width:0;padding:9px 6px;font-size:12px}.vessel-card .card-actions .vessel-visibility-icon{flex:0 0 38px;width:38px;min-width:38px;padding:0;display:inline-flex;align-items:center;justify-content:center}.vessel-visibility-icon svg{width:18px;height:18px}.vessel-visibility-icon:focus-visible{outline:3px solid #b77716;outline-offset:2px}.fleet-drop-before{outline:4px solid #b77716;box-shadow:inset 6px 0 #b77716}.fleet-drop-after{outline:4px solid #b77716;box-shadow:inset -6px 0 #b77716}.file-drop-ready{outline:4px dashed #217757;outline-offset:-6px}.drop-hint{font-size:.85rem;color:#52666b;margin:8px 16px}#vessel-import-dialog{width:min(650px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto}#vessel-import-dialog ul{padding-left:20px}#vessel-import-dialog li{margin:8px 0;overflow-wrap:anywhere}.vessel-card .card-actions{flex-wrap:wrap}.vessel-card{min-width:0}.vessel-card h2{overflow-wrap:anywhere}@media(max-width:600px){.library-tools{padding:12px}.library-search{min-width:0;flex-basis:100%}.library-search>div{flex-wrap:wrap}.library-search input{flex-basis:100%}.visibility-tabs{width:100%}}

#cargo-sheet-dialog{width:min(1440px,96vw);max-width:96vw;max-height:94vh}#cargo-sheet-dialog .cargo-actions{flex-wrap:wrap;margin:12px 0}#cargo-sheet-dialog .field{max-width:420px}.sheet-scroll{overflow:auto;max-height:52vh;border:1px solid #95aab0}.sheet-scroll table{min-width:1170px;width:100%;border-collapse:collapse}.sheet-scroll th{position:sticky;top:0;background:#eef2f1;z-index:1}.sheet-scroll td,.sheet-scroll th{border:1px solid #adbbc0;padding:0}.sheet-scroll th button{width:100%;padding:8px 5px}.sheet-scroll input{width:100%;min-width:84px;border:0;border-radius:0;padding:9px 6px;background:white;color:#153b43}.sheet-scroll input:focus{outline:2px solid #0b626b;outline-offset:-2px}.sheet-scroll input.sheet-selected{background:#d0efbd;color:#153514}.sheet-scroll input[readonly]{background:#e5e9e9}.sheet-scroll input[readonly].sheet-selected{background:#c4dfbb}#sheet-review ul{max-height:140px;overflow:auto}#sheet-error:empty{display:none}@media(max-width:600px){#cargo-sheet-dialog{padding:12px}.sheet-scroll{max-height:45vh}.sheet-scroll input{font-size:16px}#cargo-sheet-dialog .dialog-head{gap:8px}}

.sheet-paste{background:#f3f6ef;padding:12px;border:1px solid #9daea7;margin:10px 0}.sheet-paste .field{max-width:none!important}.sheet-paste textarea{width:100%;font:inherit;padding:8px;resize:vertical}.sheet-paste p{font-size:13px}@media(max-width:600px){.sheet-paste textarea{font-size:16px}}

.sheet-help{margin:8px 0;color:#42616a;font-size:13px}.sheet-help summary,.sheet-findings summary{cursor:pointer;font-weight:600;padding:6px 0}.sheet-help p{margin:4px 0}.sheet-findings ul{margin:4px 0}#sheet-review{margin-bottom:10px}
#cargo-sheet-table th:first-child,#cargo-sheet-table td:first-child{min-width:148px}#cargo-sheet-table th:last-child,#cargo-sheet-table td:last-child{min-width:118px}

.workspace-legend{border:1px solid #b8cacc;border-radius:8px;background:#fff;padding:9px 12px;margin:8px 0;color:#203f48}.legend-controls,.legend-pages{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.legend-controls label{display:flex;align-items:center;gap:5px}.legend-controls select{max-width:240px}.legend-total{font-size:.85rem;color:#405b65}.workspace-legend .color-legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;max-height:200px;overflow:auto;padding:8px 0}.legend-entry{display:flex;align-items:flex-start;gap:6px;min-width:0;overflow-wrap:anywhere}.legend-entry i{flex:none;margin-top:3px}.legend-entry small{display:block;font-size:.76rem;color:#405b65}.legend-pages{font-size:.8rem}.legend-pages span{flex:1}@media(max-width:600px){.legend-controls select{max-width:190px}.workspace-legend{padding:8px}.workspace-legend .color-legend{max-height:140px}.legend-controls .button{font-size:.8rem}.legend-total{flex-basis:100%}}

#placement-dialog{width:min(1120px,calc(100vw - 24px));max-height:90dvh;overflow:auto}#placement-dialog td small{display:block;max-width:165px;white-space:normal;overflow-wrap:anywhere;font-size:.7rem;color:#536e77}#placement-dialog .report-table{max-height:48dvh;overflow:auto}#placement-dialog .dialog-actions{position:sticky;bottom:0;background:white;padding:8px 0;border-top:1px solid #c4d6d8}@media(max-width:600px){#placement-dialog{padding:12px}#placement-dialog .report-table{max-height:42dvh}#placement-dialog .dialog-actions .button{font-size:.82rem;padding:8px}}

#bulk-dialog{width:min(1080px,calc(100vw - 24px));max-height:90dvh;overflow:auto}#bulk-dialog td small{display:block;max-width:165px;white-space:normal;overflow-wrap:anywhere;font-size:.7rem;color:#536e77}#bulk-dialog .report-table{max-height:48dvh;overflow:auto}#bulk-dialog .dialog-actions{position:sticky;bottom:0;background:white;padding:8px 0;border-top:1px solid #c4d6d8}#bulk-review-error{color:#aa3e37}#bulk-form .field small{overflow-wrap:anywhere}@media(max-width:600px){#bulk-dialog{padding:12px}#bulk-dialog .report-table{max-height:42dvh}#bulk-dialog .dialog-actions .button{font-size:.82rem;padding:8px}}

.excel-import-table{max-height:48vh}.excel-import-table td{white-space:normal;overflow-wrap:anywhere;min-width:7rem}.excel-import-table td:last-child{min-width:16rem}.excel-import-skip{display:flex;align-items:center;gap:.65rem;padding:1rem;border:1px solid #ad6311;background:#fff4dc;color:#49300e;border-radius:.65rem}#import-dialog:has(#excel-import-total){width:min(1050px,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);overflow:auto}@media(max-width:600px){.excel-import-table{max-height:40dvh}#import-dialog:has(#excel-import-total) .dialog-actions{flex-wrap:wrap}}

.excel-import-table table{min-width:880px}.excel-import-table th:first-child,.excel-import-table td:first-child{min-width:0;width:75px;white-space:normal}.excel-import-table td:nth-child(2){min-width:145px}.excel-import-table td{vertical-align:top}.excel-import-table td strong,.excel-import-table td small{display:block}.excel-import-table td small{margin-top:5px;color:#526b73}.excel-import-table details{font-size:12px}#import-dialog:has(#excel-import-total) .dialog-actions{flex-wrap:wrap}

/* A stable canvas viewport prevents the SVG from measuring its own scaled height. */
.drawing-scroll{height:clamp(230px,60vh,750px);max-height:750px}.drawing-scroll>svg{flex:none}.view-controls #drawing-zoom{width:80px;border:1px solid #bcd0cc;border-radius:5px;background:#fff;padding:7px;font-size:11px}.vessel-drawing-controls{padding:12px 22px;border-bottom:1px solid var(--border)}#drawing-dialog p{font-size:12px;line-height:1.65;margin-bottom:14px}#drawing-error{color:#9e443a}

.cell-dialog{width:min(760px,calc(100vw - 24px))}.cell-fields{display:grid;grid-template-columns:minmax(125px,1fr) minmax(0,2fr);gap:8px 14px}.cell-fields dt{font-weight:650}.cell-fields dd{margin:0;overflow-wrap:anywhere}.cell-dialog textarea{width:100%;box-sizing:border-box}.return-rectangle{stroke:#a0390d!important;fill:#e69d4e!important;fill-opacity:.15}.cell-dialog .dialog-actions{flex-wrap:wrap}@media(max-width:500px){.cell-fields{grid-template-columns:105px minmax(0,1fr);font-size:13px}.cell-dialog{padding:14px}.cell-dialog button{min-height:40px}}

.drawing-scroll.return-enabled{touch-action:none;cursor:crosshair}
.cell-dialog button,#discharge-dialog button{touch-action:manipulation}

/* Desktop source layout: menus, toolbar, notebook, bay canvas + load list. */
.desktop-app{min-height:100dvh;background:#f0f0f0;color:#202b30;font:12px Arial,sans-serif}.desktop-app button,.desktop-app select,.desktop-app input{font-family:Arial,sans-serif}.desktop-menubar{display:flex;gap:2px;position:relative;z-index:5;padding:0 5px;border-bottom:1px solid #bdc7ca;background:#f5f5f5}.desktop-menu{position:relative}.desktop-menu summary{list-style:none;cursor:pointer;padding:5px 12px;font-size:12px}.desktop-menu summary::-webkit-details-marker{display:none}.desktop-menu[open]>summary,.desktop-menu summary:hover{background:#dce9f2}.desktop-menu-items{position:absolute;left:0;top:100%;min-width:215px;background:#f8f8f8;border:1px solid #a8b6bc;box-shadow:2px 5px 12px #0003;padding:4px;max-height:70dvh;overflow:auto}.desktop-menu-items button{display:block;text-align:left;width:100%;border:0;background:transparent;padding:7px 12px;font-size:12px;white-space:nowrap}.desktop-menu-items button:hover:not(:disabled){background:#cfe6f7}.desktop-menu-items button:disabled{color:#90999d}.desktop-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:5px 8px;min-height:52px;background:#f0f0f0;border-bottom:1px solid #aebbc0}.desktop-toolbar button{border:1px solid #aeb9be;border-radius:2px;padding:7px 9px;background:#fafafa;color:#213c46;font-size:11px;white-space:nowrap}.desktop-colours,.desktop-file-tools{display:flex;gap:3px;padding-right:7px;border-right:1px solid #bdc7ca}.desktop-cargo-totals{display:grid;grid-template-columns:auto auto;gap:3px 12px;font-size:11px;line-height:1.4}.desktop-cargo-totals small{color:#697b82}#desktop-drawing-controls{display:flex;align-items:center;gap:5px;flex-wrap:wrap}#desktop-drawing-controls label{display:flex;align-items:center;gap:4px;font-size:11px}#desktop-drawing-controls select,#desktop-drawing-controls input{border:1px solid #aeb9be;padding:5px;border-radius:2px;font-size:11px;max-width:120px}#desktop-drawing-controls #drawing-zoom{width:55px}.desktop-tabs{display:flex;overflow-x:auto;gap:2px;padding:4px 6px 0;background:#e9edef;border-bottom:1px solid #aab9c0}.desktop-tabs button{flex:none;background:#e2e8eb;border:1px solid #aab9c0;border-bottom:0;border-radius:3px 3px 0 0;padding:7px 12px;font-size:12px;color:#304953;white-space:nowrap}.desktop-tabs [aria-selected=true]{background:white;color:#152c35;font-weight:bold;box-shadow:inset 0 2px #276394}.desktop-tabs button:disabled{color:#89979d}.desktop-tabs button:focus-visible{outline:2px solid #246793;outline-offset:-3px}.desktop-workarea{padding:6px;min-width:0}.desktop-app .page-head{margin:12px 6px 16px;gap:12px}.desktop-app .eyebrow{display:none}.desktop-app h1{font-size:22px}.desktop-plan-heading{display:flex;align-items:center;gap:8px;padding:2px 3px 6px;font-size:11px;flex-wrap:wrap}.desktop-plan-heading strong{font-size:12px}.desktop-plan-heading>span{flex:1;color:#52666b}.desktop-plan-heading .button{padding:4px 8px;font-size:11px}.desktop-app .edit-bar{padding:5px 8px;margin:0 0 5px;border-radius:2px;gap:8px}.desktop-app .edit-bar>div:first-child{display:flex;align-items:center;gap:8px}.desktop-app .edit-bar span{margin:0}.desktop-app .edit-actions .button{font-size:11px;padding:4px 8px;border-radius:2px}.desktop-app .bay-workspace,.desktop-app .table-card{border-radius:2px}.desktop-app .bay-toolbar{padding:7px 10px;gap:8px}.desktop-app .bay-toolbar>div{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.desktop-app .bay-toolbar h2{font-size:13px;margin:0}.desktop-app .bay-navigation{padding:6px;gap:4px}.desktop-app .bay-navigation .button{padding:4px 8px;border-radius:2px}.desktop-app .stowage-tools{padding:5px 8px}.desktop-app .placement-instructions{padding:0;gap:5px;font-size:11px}.desktop-app .placement-instructions strong{font-size:11px}.desktop-app .placement-instructions span{font-size:10px}.desktop-app .stowage-tools .view-controls{font-size:11px;gap:5px;max-height:65px;overflow-y:auto}.desktop-app .view-controls .button{padding:4px 7px;border-radius:2px;font-size:11px}.desktop-app .view-controls label{font-size:11px}.desktop-app .view-controls select{padding:4px;border-radius:2px}.desktop-app .drop-hint{font-size:10px;margin:3px 10px}.desktop-app .workspace-legend{margin:3px 5px;padding:4px 6px;border-radius:2px}.desktop-app .legend-controls{font-size:10px;gap:4px}.desktop-app .legend-controls select{padding:3px;max-width:170px}.desktop-app .workspace-legend .color-legend{max-height:65px;padding:4px 0;gap:4px}.desktop-app .legend-controls .button{padding:3px 5px;font-size:10px}.desktop-app .drawing-scroll{padding:10px}.desktop-app .cargo-row-help{font-size:10px;padding:4px 7px}.desktop-app .cargo-filter,.desktop-app .cargo-filter-options{gap:5px;padding:5px 7px;font-size:10px}.desktop-app .cargo-filter input{padding:5px;min-width:0;width:100%}.desktop-app .cargo-filter-options select{font-size:11px;padding:4px}.desktop-app .cargo-filter-options .button{font-size:10px;padding:4px 6px}.desktop-app .cargo-filter-options label{font-size:10px}.desktop-app .section-head{padding:6px 8px;gap:8px;display:flex}.desktop-app .section-head h2{font-size:13px}.desktop-app .cargo-summary{font-size:10px;margin:3px 0}.desktop-cargo-actions{position:relative;font-size:11px}.desktop-cargo-actions summary{cursor:pointer;border:1px solid #aeb9be;background:#f3f6f6;padding:5px;white-space:nowrap}.desktop-cargo-actions[open] .cargo-actions{position:absolute;right:0;top:100%;width:min(300px,80vw);max-height:350px;overflow:auto;background:white;border:1px solid #aeb9be;padding:8px;margin:0;z-index:4;box-shadow:0 3px 10px #0003;display:flex;flex-wrap:wrap}.desktop-app .cargo-table-scroll td,.desktop-app .cargo-table-scroll th{padding:5px 7px;font-size:11px}.desktop-app .cargo-row-handle{height:24px;width:20px;font-size:14px;margin-right:3px}.desktop-app .cargo-statistics{font-size:10px;margin:0;border-radius:0}.desktop-app .stat-controls{padding:3px 6px;gap:4px}.desktop-app .stat-controls span{display:none}.desktop-app .cargo-statistics .cargo-table-scroll{max-height:145px}.desktop-app .cargo-statistics th,.desktop-app .cargo-statistics td{padding:4px 5px}.desktop-app .cargo-statistics summary{padding:5px}.desktop-app .cargo-table-scroll .row-actions .button{padding:4px 5px;font-size:10px}.desktop-app .cargo-pager{padding:5px;font-size:11px}.desktop-app .cargo-pager .button{font-size:10px;padding:4px 6px}.desktop-app .stat-filter{font-size:10px;padding:2px}.desktop-page[open]{position:static;inset:auto;box-shadow:none;margin:0;width:100%;max-width:100%;max-height:none;border:1px solid #aab9c0;border-radius:2px;padding:14px;background:#fff}.desktop-page .dialog-head{margin-bottom:12px}.desktop-page h2{font-size:17px}.desktop-page .report-table{max-height:60dvh}.desktop-page #calculation-table{max-height:55dvh}#desktop-panel-host{min-width:0}
@media(min-width:1100px){.desktop-app .desktop-split{display:grid;grid-template-columns:minmax(0,1fr) 9px var(--cargo-pane-width);gap:0;align-items:start}.desktop-app .desktop-split #cargo-panel{margin:0;position:static;height:calc(100dvh - 225px);min-height:420px;max-height:none;display:flex;flex-direction:column;overflow:hidden}.desktop-app .desktop-split #cargo-panel>.cargo-table-scroll{flex:1;min-height:140px;overflow:auto;order:6}.desktop-app .desktop-split #cargo-panel>.cargo-statistics{order:8;flex:none}.desktop-app .desktop-split #cargo-panel>.cargo-pager{order:7}.desktop-app .desktop-split .drawing-scroll{height:calc(100dvh - 430px);min-height:340px;max-height:none}.desktop-app .desktop-split .workspace-divider{display:flex;align-items:center;justify-content:center;min-height:420px;cursor:col-resize;touch-action:none}.desktop-app .desktop-split .workspace-divider span{height:48px;width:4px;background:#9bafb8}.desktop-app .desktop-split #cargo-panel .section-head{display:flex;padding:6px 8px}.desktop-app .desktop-split #cargo-panel .cargo-filter{padding:5px 7px}.desktop-app .desktop-split #cargo-panel .cargo-filter input{min-width:0}.desktop-app .desktop-split .stowage-tools{padding:5px 8px}.desktop-app .desktop-split #cargo-panel .cargo-actions .button{font-size:11px;padding:5px 7px}}
@media(max-width:1099px){.desktop-toolbar{gap:5px}.desktop-app .voyage-workspace{display:block}.desktop-app .workspace-divider{display:none}.desktop-app #cargo-panel{margin-top:6px}.desktop-app .drawing-scroll{height:50dvh;min-height:260px}}
@media(max-width:650px){.desktop-menubar{overflow:visible}.desktop-menu summary{padding:5px 8px}.desktop-menu-items{position:fixed;left:5px;top:62px;max-height:65dvh;max-width:calc(100vw - 10px)}.desktop-toolbar{padding:5px}.desktop-toolbar button{padding:5px;font-size:10px}.desktop-colours,.desktop-file-tools{border:0;padding-right:0;gap:3px}.desktop-tabs button{padding:7px 9px;font-size:11px}.desktop-workarea{padding:4px}.desktop-plan-heading{gap:5px}.desktop-plan-heading>span{flex-basis:100%}.desktop-app .edit-bar{flex-wrap:wrap}.desktop-app .desktop-split #cargo-panel{height:auto}.desktop-page[open]{padding:10px;max-width:100%}.desktop-page input,.desktop-page select,.desktop-page textarea{font-size:16px}.desktop-app .stats{gap:7px}.desktop-app .vessel-grid{gap:8px}.desktop-app .vessel-card{padding:14px}.desktop-app .cargo-filter-options{max-height:none}.desktop-app .workspace-legend .color-legend{max-height:75px}.desktop-plan-heading .button{font-size:10px}.desktop-app .page-head{margin:10px 0}.desktop-app .page-head h1{font-size:20px}}

.desktop-app .placement-instructions{display:flex;align-items:center;flex-wrap:wrap;flex-basis:100%;gap:5px;padding:0}.desktop-app .placement-instructions strong,.desktop-app .placement-instructions span{display:inline;margin:0}.desktop-app .placement-instructions .button{padding:4px 7px;font-size:10px}.desktop-app .view-controls label{display:flex;align-items:center;gap:4px}.desktop-cargo-filter summary,.desktop-cargo-help summary{padding:5px 7px;font-size:11px;cursor:pointer;background:#f3f5f5;border-top:1px solid #d4dde0}.desktop-cargo-filter .cargo-filter-options{max-height:230px;overflow:auto}.desktop-app .cargo-filter>label{display:none}.desktop-app .cargo-filter span{font-size:10px}.desktop-app .cargo-filter input{width:100%}.desktop-app .cargo-warnings{padding:6px 8px;font-size:10px}.desktop-app .stowage-tools{gap:5px}.desktop-app .desktop-split .drawing-scroll{min-height:250px}.desktop-cargo-help .cargo-row-help{border:0}.desktop-app .cargo-statistics .stat-controls{margin:2px 0;padding:3px 5px}.desktop-app .cargo-statistics .stat-controls select{font-size:11px;padding:4px}.desktop-app .cargo-statistics .cargo-table-scroll{max-height:110px}.desktop-app .cargo-statistics .stat-filter{padding:2px 3px}

@media(max-width:650px){.app-header .header-right{gap:5px}.app-header .header-right .button{font-size:10px;padding:6px}.app-header .brand{font-size:15px;gap:7px}.app-header .brand>svg{width:24px}.app-header{gap:8px;padding:0 12px}.app-header [data-action=desktop-layout]{max-width:74px;line-height:1.25;white-space:normal}}

/* Screenshot reference: notebook first, grey canvas, plain load list, bottom dock. */
.desktop-app{position:relative;display:flex;flex-direction:column;height:100dvh;min-height:0;overflow:hidden;background:#ececec;color:#111;font:13px Arial,sans-serif}


.desktop-menubar{position:relative;top:auto;left:auto;order:0;flex:none;min-height:26px;height:26px;align-items:center;gap:2px;background:#f3f3f3;border-bottom:1px solid #c5c5c5;z-index:20;padding:0 4px}
.desktop-menu summary{font-size:11px;padding:4px 8px;color:#333}.desktop-menu-items{top:100%;background:#f5f5f5}
.desktop-tabs{order:1;flex:none;justify-content:center;min-height:32px;padding:8px 8px 2px;gap:0;border:0;background:#ececec;scrollbar-width:none}
.desktop-tabs button{padding:3px 11px;font-size:13px;line-height:16px;border:1px solid #cfcfcf;border-radius:0;background:#dedede;color:#171717;font-weight:normal}
.desktop-tabs button:first-child{border-radius:4px 0 0 4px}.desktop-tabs button:last-child{border-radius:0 4px 4px 0}
.desktop-tabs [aria-selected=true]{background:white;color:#111;font-weight:normal;box-shadow:none;border-radius:4px;border-color:#c6c6c6}
.desktop-workarea{order:2;flex:1;min-height:0;overflow:auto;padding:5px 18px 10px}.desktop-planning .desktop-workarea{overflow:hidden}
.desktop-planning #desktop-workspace-body,.desktop-planning .voyage-workspace{height:100%;min-height:0}
.desktop-app .bay-workspace{background:#d3d3d3;border:7px solid #e8e8e8;border-radius:0;height:100%;min-height:0;overflow:hidden}
.desktop-app .drawing-scroll{background:#d3d3d3;padding:0;min-height:0;max-height:none;border:0}
.desktop-app .planner-bay:hover>rect:first-of-type{fill:transparent}.desktop-app .drop-hint{display:none}
.desktop-app .desktop-split{align-items:stretch}.desktop-app .desktop-split .workspace-divider{background:#eee;min-height:0}.desktop-app .workspace-divider span{height:100%;background:#f8f8f8;width:5px}
.desktop-app .desktop-split #cargo-panel{border:7px solid #e8e8e8;border-radius:0;min-height:0;max-height:none;overflow:hidden;background:#fff}
.desktop-app #cargo-panel>.cargo-table-scroll{padding:0;min-height:0;flex:1;order:0}
.desktop-app #cargo-table{min-width:860px;table-layout:auto;background:white;width:100%;border-collapse:collapse}
.desktop-app #cargo-table thead{background:#ededed}.desktop-app #cargo-table th{padding:3px 5px;line-height:17px;font-size:11px;font-weight:normal;border-right:1px solid #ddd;color:#111}
.desktop-app #cargo-table th button{font-size:11px;color:#111;font-weight:normal;padding:0;line-height:17px}
.desktop-app #cargo-table td{padding:3px 5px;font-size:11px;color:#111;line-height:20px}
.desktop-app #cargo-table th:first-child{font-size:0;width:20px;padding:0}.desktop-app #cargo-table .row-actions,.desktop-app #cargo-table th:last-child{display:none}
.desktop-app #cargo-table{width:632px;min-width:632px;table-layout:fixed}.desktop-app #cargo-table th,.desktop-app #cargo-table td{width:44px;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.desktop-app #cargo-table th:nth-child(2),.desktop-app #cargo-table td:nth-child(2){width:72px}.desktop-app #cargo-table th:nth-child(12),.desktop-app #cargo-table td:nth-child(12),.desktop-app #cargo-table th:nth-child(13),.desktop-app #cargo-table td:nth-child(13){width:60px}
.desktop-app #cargo-table .cargo-selection-cell{width:20px;padding:0}.desktop-app #cargo-table .cargo-row-handle{width:10px;height:20px;min-width:0;margin:0;font-size:0;border:0;background:transparent}
.desktop-app #cargo-table input[type=checkbox]{width:10px;height:10px;margin:0}.desktop-app #cargo-table .empty-cell{font-size:0;height:1px;padding:0}
.desktop-app .desktop-cargo-number{border:0;background:transparent;color:inherit;font:inherit;text-align:left;padding:0;white-space:nowrap}
.desktop-app #cargo-panel>.cargo-statistics{order:2;background:#ececec;border:0;border-radius:0;padding:3px 0 0;flex:none}
.desktop-app .cargo-statistics>summary{display:none}.desktop-app .cargo-statistics .cargo-table-scroll{max-height:110px;background:#ececec}
.desktop-app #cargo-mini-stats{width:auto;min-width:360px;background:transparent}.desktop-app #cargo-mini-stats th,.desktop-app #cargo-mini-stats td{padding:4px 7px;font-size:12px;border:0;font-weight:normal;background:transparent;color:#111}
.desktop-app #cargo-mini-stats .stat-filter{color:#0000ff;font-size:12px;padding:0;border:0;background:transparent}
.desktop-app #cargo-panel>.cargo-pager{order:1;padding:2px;font-size:10px;background:#f4f4f4}
.desktop-toolbar{order:3;flex:none;min-height:70px;padding:7px 8px 5px;gap:12px;border:0;background:#ececec;flex-wrap:nowrap;color:#111;position:relative;z-index:10}
.desktop-command-strip{display:flex;align-items:center;gap:14px;flex:none}.desktop-toolbar .desktop-icon-command{display:flex;align-items:center;gap:3px;padding:0 4px 0 0;height:32px;border-radius:0;border:1px solid #aaa;background:#eee;color:#111;font-size:13px;white-space:nowrap}
.desktop-toolbar .desktop-icon-command img,.desktop-toolbar .desktop-icon-command svg{width:30px;height:30px;object-fit:contain;flex:none}.desktop-toolbar .desktop-icon-command[aria-label=POL],.desktop-toolbar .desktop-icon-command[aria-label=POD],.desktop-toolbar .desktop-icon-command[aria-label=Print]{padding:0}
.desktop-view-mode{display:flex;flex-direction:column;gap:5px;padding:0;border:0;flex:none;font-size:13px}.desktop-view-mode label{display:flex;align-items:center;gap:3px;white-space:nowrap}.desktop-view-mode input{margin:0;accent-color:#3d8af7}
.desktop-cargo-totals,.desktop-weights{display:flex;flex-direction:column;gap:6px;font-size:13px;white-space:nowrap;flex:none}.desktop-cargo-totals b,.desktop-weights b{font-weight:normal}
#desktop-drawing-controls.desktop-zoom{display:flex;flex-direction:column;gap:3px;flex:none}#desktop-drawing-controls label{font-size:13px;gap:1px}#desktop-drawing-controls #drawing-zoom{font-size:13px;width:44px;padding:0;border:0;background:transparent;text-align:right;appearance:textfield}
#desktop-drawing-controls #drawing-zoom::-webkit-inner-spin-button{appearance:none}#desktop-drawing-controls label::after{content:'%'}
.desktop-zoom-buttons{display:flex;gap:10px}.desktop-zoom-buttons button{padding:2px 12px!important;min-width:34px;font-size:13px!important;border-radius:6px!important;background:#fff!important}
.desktop-toolbar .desktop-technical{display:grid;grid-auto-flow:column;grid-template-rows:repeat(3,auto);gap:4px 20px;border:0;background:transparent;padding:0;text-align:left;box-shadow:none;font-size:13px;line-height:17px;color:#111;min-width:0}
.desktop-technical span{white-space:nowrap}.desktop-technical small{font-size:10px;color:#666}.desktop-extra-tools{display:flex;flex-direction:column;gap:1px;margin-left:auto;flex:none}
.desktop-tool-drawer{position:relative;font-size:10px}.desktop-tool-drawer>summary{cursor:pointer;list-style:none;padding:1px 6px;border:1px solid #bbb;background:#eee;color:#333;border-radius:2px;white-space:nowrap}
.desktop-drawer-content{position:absolute;right:0;bottom:100%;margin-bottom:4px;width:min(520px,calc(100vw - 28px));max-height:72dvh;overflow:auto;background:#fafafa;border:1px solid #aaa;padding:8px;box-shadow:0 3px 12px #0003;z-index:25;color:#111}
.desktop-tool-drawer:not([open])>.desktop-drawer-content{display:none}.desktop-drawer-content .desktop-cargo-actions[open] .cargo-actions{position:static;max-height:none;width:auto;box-shadow:none;border:0;background:transparent}
.desktop-drawer-content .view-controls,.desktop-drawer-content .color-legend{max-height:none!important}.desktop-drawer-content .stowage-tools{border:0}.desktop-drawer-content .bay-navigation{padding:6px;flex-wrap:wrap}.desktop-drawer-content .stat-controls{display:flex}
.desktop-drawer-content .desktop-cargo-actions{width:100%}.desktop-drawer-content .cargo-actions{gap:5px}.desktop-drawer-content .desktop-plan-heading{display:flex}.desktop-drawer-content .edit-bar{display:flex;flex-wrap:wrap;border:0;padding:0;margin:0}.desktop-drawer-content .desktop-cargo-help{display:block}
/* All desktop notebook tabs share the same scrolling container. Do not
   allow individual dialog max-height declarations to create nested scrollbars. */
.desktop-page[open]{border:7px solid #e8e8e8;border-radius:0;background:#eee}
#desktop-panel-host{min-width:0;min-height:0}
@media (min-width:1100px){
  #desktop-panel-host{height:100%;overflow:hidden}
  #desktop-panel-host>dialog.desktop-page[open]{
    box-sizing:border-box;display:block;position:static;inset:auto;
    width:100%;max-width:100%;height:100%;min-height:0;max-height:100%;
    margin:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;
  }
}
@media (max-width:1099px){
  #desktop-panel-host{height:auto;overflow:visible}
  #desktop-panel-host>dialog.desktop-page[open]{
    box-sizing:border-box;position:static;inset:auto;width:100%;max-width:100%;
    height:auto;min-height:0;max-height:none;overflow:visible;margin:0;
  }
}
/* Wide DG compatibility and report tables scroll sideways, never the tab itself. */
#desktop-panel-host .dg-matrix,
#desktop-panel-host .report-table{max-width:100%;overflow-x:auto}
@media(max-width:1750px){.desktop-toolbar{gap:8px}.desktop-command-strip{gap:8px}.desktop-toolbar .desktop-icon-command{font-size:11px}.desktop-cargo-totals,.desktop-weights,.desktop-view-mode,.desktop-toolbar .desktop-technical{font-size:11px}.desktop-toolbar .desktop-technical{gap:3px 10px}}
@media(max-width:1400px){.desktop-command-strip{gap:4px}.desktop-toolbar{gap:7px}.desktop-toolbar .desktop-icon-command img,.desktop-toolbar .desktop-icon-command svg{width:24px;height:24px}.desktop-toolbar .desktop-icon-command{height:28px}.desktop-toolbar .desktop-technical{font-size:10px;gap:3px 7px}.desktop-technical small{font-size:9px}.desktop-view-mode,.desktop-cargo-totals,.desktop-weights{font-size:10px}.desktop-extra-tools{font-size:9px}#desktop-drawing-controls label{font-size:11px}.desktop-tabs button{font-size:12px;padding:3px 10px}}
@media(max-width:1099px){.desktop-app{height:auto;min-height:100dvh;overflow:visible}.desktop-menubar{position:static;order:1;justify-content:center;height:24px}.desktop-tabs{order:2;justify-content:flex-start}.desktop-workarea{order:3;padding:4px 8px;overflow:visible!important}.desktop-toolbar{order:4;flex-wrap:wrap;min-height:0;position:sticky;bottom:0;padding:6px;gap:8px;box-shadow:0 -2px 8px #0002}.desktop-app .bay-workspace{height:auto}.desktop-planning #desktop-workspace-body,.desktop-planning .voyage-workspace{height:auto}.desktop-app .drawing-scroll{height:50dvh;min-height:240px}.desktop-app #cargo-panel{border:5px solid #e8e8e8;max-height:48dvh;display:flex;flex-direction:column}.desktop-app #cargo-panel>.cargo-table-scroll{flex:1;min-height:100px}.desktop-toolbar .desktop-technical{display:none}.desktop-command-strip{flex-wrap:wrap;gap:4px;max-width:100%;min-width:0}.desktop-extra-tools{margin-left:0;flex-direction:row}.desktop-tool-drawer{position:static}.desktop-drawer-content{position:fixed;bottom:155px;right:8px;max-height:55dvh}.desktop-tabs button{font-size:11px;padding:3px 8px}}

.desktop-app #cargo-mini-stats th{text-transform:none}

/* A paired-bay detail needs an always-visible route back; the old All bays link lives in a closed dock drawer. */
.bay-return-strip{display:flex;align-items:center;justify-content:flex-start;flex:none;padding:5px 10px;background:#eef2f1;border-bottom:1px solid #b8c4c5;min-height:34px}
.bay-return-strip .button{font-size:12px;padding:5px 10px;border-color:#8a9ca0;background:#fff;color:#173f47}
.bay-return-strip .button:focus-visible{outline:3px solid #b77716;outline-offset:2px}
.desktop-app .bay-return-strip{background:#d3d3d3;border-bottom:1px solid #aaa;padding:3px 8px;min-height:30px}
.desktop-app .bay-return-strip .button{border-radius:2px;font-size:11px;padding:4px 8px;border-color:#888;color:#222}

/* Compact vessel library header: keep the complete fleet summary and controls in two shallow rows. */
.vessel-library-bar{margin:0 0 10px;padding:8px 10px;background:#fff;border:1px solid #d4dde0;border-radius:7px}
.vessel-library-top,.vessel-library-bottom{display:flex;align-items:center;gap:9px;min-width:0}
.vessel-library-top h1,.desktop-app .vessel-library-top h1{font-size:16px;line-height:1.2;letter-spacing:-.25px;white-space:nowrap;font-weight:650}
.vessel-library-bar .stats{display:flex;align-items:center;gap:10px;flex:1 1 auto;min-width:0;margin:0}
.vessel-library-bar .stat{display:inline-flex;align-items:baseline;gap:4px;white-space:nowrap;padding:0;margin:0;border:0;border-radius:0;background:none}
.vessel-library-bar .stat:not(:last-child)::after{content:"·";color:#9faeaf;margin-left:7px}
.vessel-library-bar .stat span{display:inline;margin:0;color:#65777a;font-size:11px}
.vessel-library-bar .stat strong{display:inline;margin:0;font-size:12px;font-weight:650;line-height:1.2;color:#1e363d}
.vessel-library-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:5px;margin-left:auto}
.vessel-library-bar .button,.vessel-library-bar button[type=submit]{min-height:30px;padding:5px 9px;border-radius:5px;font-size:11px;line-height:1.25}
.vessel-library-bottom{margin-top:7px;padding-top:7px;border-top:1px solid #edf1f1;gap:6px}
.vessel-library-bottom .library-search{min-width:195px;flex:1 1 260px;margin:0}
.vessel-library-bottom .library-search label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.vessel-library-bottom .library-search>div{display:flex;align-items:center;gap:5px;width:100%}
.vessel-library-bottom .library-search input{width:100%;min-width:0;height:30px;padding:4px 9px;border-radius:5px;font-size:12px}
.vessel-library-bottom .visibility-tabs{display:flex;gap:5px;flex-wrap:nowrap;white-space:nowrap}
.vessel-library-bottom [data-action="vessel-clear-search"]:disabled{display:none}
.vessel-library-bottom .visibility-tabs button{flex:none}
.desktop-app .vessel-library-bar{margin-top:2px}
@media(max-width:1100px){
 .vessel-library-bar .stats{flex-wrap:wrap;gap:3px 9px}
 .vessel-library-bar .stat:not(:last-child)::after{margin-left:3px}
 .vessel-library-top{flex-wrap:wrap}
 .vessel-library-bottom{flex-wrap:wrap}
 .vessel-library-bottom .library-search{flex:1 1 350px}
}
@media(max-width:650px){
 .vessel-library-bar{margin-bottom:8px;padding:7px}
 .vessel-library-top{gap:6px}
 .vessel-library-top h1,.desktop-app .vessel-library-top h1{font-size:15px}
 .vessel-library-bar .stats{order:3;flex:1 1 100%;gap:3px 9px}
 .vessel-library-bar .stat span{font-size:10px}
 .vessel-library-bar .stat strong{font-size:11px}
 .vessel-library-actions{flex:1;justify-content:flex-end;gap:4px}
 .vessel-library-actions .button{flex:0 1 auto;white-space:normal}
 .vessel-library-bottom{margin-top:6px;padding-top:6px;gap:5px}
 .vessel-library-bottom .library-search{flex:1 1 100%;min-width:0}
 .vessel-library-bottom .library-search input{flex:1 1 auto;min-width:0}
 .vessel-library-bottom .visibility-tabs{flex:1 1 auto;min-width:0;gap:4px}
 .vessel-library-bottom .visibility-tabs button{flex:1 1 auto}
 .vessel-library-bottom .button{padding:5px 7px;font-size:10px}
}

/* At wide desktop widths the entire library header collapses to one toolbar line. */
@media(min-width:1850px){
 .vessel-library-bar{display:flex;align-items:center;gap:9px;padding:7px 10px}
 .vessel-library-top,.vessel-library-bottom{display:contents}
 .vessel-library-bar .stats{flex:0 0 auto}
 .vessel-library-actions{margin-left:0;flex-wrap:nowrap}
 .vessel-library-bottom .library-search{flex:1 1 215px;min-width:190px}
 .vessel-library-bottom .visibility-tabs{flex:none}
}

/* Compact actions stay on the heading line on phone-width screens. */
@media(max-width:650px){
 .vessel-library-top .vessel-library-actions{flex-wrap:nowrap;min-width:0;gap:3px}
 .vessel-library-top .vessel-library-actions .button{flex:0 0 auto;white-space:nowrap;font-size:10px;padding:4px 5px;min-height:28px}
 .vessel-library-bottom .library-search>div{flex-wrap:nowrap}
 .vessel-library-bottom .visibility-tabs{flex-wrap:nowrap}
}
@media(max-width:360px){
 .vessel-library-top .vessel-library-actions{flex-wrap:wrap;justify-content:flex-start}
}

.cargo-context-menu{position:fixed;z-index:1000;background:#f2f2f2;border:1px solid #777;box-shadow:2px 3px 6px #0004;padding:3px;max-width:calc(100vw - 8px);font:13px Arial,sans-serif;color:#000}
.cargo-context-menu[hidden]{display:none}.cargo-context-menu button{display:block;width:100%;padding:5px 14px;border:0;background:transparent;color:inherit;text-align:left;font:inherit}.cargo-context-menu button:focus,.cargo-context-menu button:hover:not(:disabled){background:#dce9fb;outline:1px solid #769bd0}.cargo-context-menu button:disabled{color:#888}

/* Unified desktop menu and notebook row */
.desktop-topbar{position:relative;order:0;flex:0 0 31px;display:flex;align-items:center;width:100%;min-width:0;min-height:31px;background:#f3f3f3;border-bottom:1px solid #c5c5c5;z-index:20}
.desktop-topbar .desktop-menubar{position:relative;order:0;top:auto;left:auto;display:flex;align-items:center;flex:0 0 auto;height:30px;min-height:0;padding:0 4px;border:0;background:transparent;z-index:2}
.desktop-topbar .desktop-menu summary{padding:4px 8px}
.desktop-topbar .desktop-tabs{order:0;display:flex;align-items:center;justify-content:safe center;flex:1 1 auto;min-width:0;min-height:30px;height:30px;margin:0;padding:0 6px;gap:0;border:0;background:transparent;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
.desktop-topbar .desktop-tabs button{flex:0 0 auto;height:24px;padding:2px 10px;font-size:12px;line-height:18px;white-space:nowrap}
.desktop-topbar .desktop-tabs::-webkit-scrollbar{display:none}
@media(min-width:1651px){.desktop-topbar::after{content:"";display:block;flex:0 0 268px;width:268px;height:1px;pointer-events:none}}
@media(max-width:1099px){.desktop-topbar .desktop-menubar{position:relative;order:0;justify-content:flex-start;height:30px}.desktop-topbar .desktop-tabs{order:0;justify-content:flex-start}.desktop-topbar .desktop-tabs button{font-size:11px;padding:2px 7px}}
@media(max-width:650px){.desktop-topbar .desktop-menu summary{font-size:10px;padding:4px 5px}.desktop-topbar .desktop-menu-items{position:fixed;top:30px;left:5px;max-height:65dvh}.desktop-topbar .desktop-tabs{padding:0 3px}.desktop-topbar .desktop-tabs button{font-size:10px;padding:2px 6px}}

/* Click the vessel card to open its voyage planning form; keep library controls independent. */
.vessel-card{position:relative;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.vessel-card:hover{border-color:#8da9a3;box-shadow:0 4px 18px #173f4714}
.vessel-open-card{position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%;border:0;background:transparent;border-radius:inherit;cursor:pointer}
.vessel-open-card:focus-visible{outline:3px solid #b77716;outline-offset:3px}
.vessel-card .fleet-handle,.vessel-card .vessel-visibility-icon{position:relative;z-index:2}
.vessel-card .card-actions:empty{display:none}
.vessel-card .card-actions{justify-content:flex-end;padding-top:8px;margin-top:4px}

/* Database-driven ship illustrations in vessel-selection cards. */
.vessel-picture{height:114px;margin:-5px -6px 12px;border-radius:9px;background:linear-gradient(180deg,#e9f2f4 0%,#f6faf9 72%,#e5f0f1 72%,#dcebed 100%);display:flex;align-items:center;justify-content:center;overflow:hidden}
.vessel-picture svg{width:100%;height:105px;max-width:330px;display:block}
.vessel-card .card-top{margin-bottom:12px}
.vessel-card .card-capacity{margin:12px 0 4px}

/* Desktop source photographs retain their natural proportions within compact cards. */
.vessel-picture img{display:block;max-width:100%;width:auto;height:100%;object-fit:contain;object-position:center}


/* Vessel library: compact editorial cards with square photographs. */
.vessel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;align-items:stretch}
.vessel-card{box-sizing:border-box;display:flex;flex-direction:column;min-width:0;padding:10px;border:1px solid #d5dfe3;border-radius:15px;background:#fff;box-shadow:0 2px 9px rgba(23,48,64,.06);overflow:hidden;isolation:isolate}
.vessel-card:hover{border-color:#7899a9;box-shadow:0 8px 25px rgba(23,48,64,.14);transform:translateY(-2px)}
.vessel-card .vessel-picture{width:min(100%,190px);height:auto;aspect-ratio:1/1;align-self:center;margin:0 0 11px;border-radius:11px;background:#eef3f5;overflow:hidden;flex-shrink:0}
.vessel-card .vessel-picture img{width:100%;height:100%;max-width:none;object-fit:cover;object-position:center}
.vessel-card .vessel-picture svg{width:100%;height:100%;max-width:none;object-fit:contain}
.vessel-card .card-top{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:24px;margin:0 0 6px}
.vessel-card .ship-badge{display:none}
.vessel-card .pill{font-size:11px;white-space:nowrap}
.vessel-card h2{font-size:16px;line-height:1.25;margin:0 0 3px;overflow-wrap:anywhere}
.vessel-card .card-subtitle{font-size:11px;opacity:.7;margin:0 0 8px}
.vessel-card .card-capacity{display:flex;align-items:baseline;gap:5px;margin:auto 0 0;padding-top:9px;border-top:1px solid #e6ecef}
.vessel-card .card-capacity strong{font-size:18px;line-height:1.2}
.vessel-card .card-capacity span{font-size:11px}
.vessel-card .card-actions{position:absolute;right:10px;bottom:10px;margin:0;padding:0;border:0;z-index:2}
.vessel-card .card-capacity{padding-right:36px}
.vessel-card .fleet-handle{width:27px;height:27px;flex-shrink:0}
.vessel-card .vessel-visibility-icon{width:29px;height:29px;min-width:29px;padding:5px}
@media(max-width:550px){.vessel-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.vessel-card{padding:8px;border-radius:12px}.vessel-card .vessel-picture{width:100%;max-width:170px}.vessel-card h2{font-size:14px}.vessel-card .card-capacity strong{font-size:16px}}
@media(max-width:350px){.vessel-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}}


/* Fix inherited 24px text styling and excessive horizontal padding on fleet grip. */
.vessel-card .fleet-handle{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:30px;height:30px;min-width:30px;padding:0!important;line-height:1;font-size:0!important;overflow:hidden;color:#48636d;background:#f3f7f8;border:1px solid #b4c3c7;border-radius:7px;appearance:none}
.vessel-card .fleet-handle svg{display:block;width:20px;height:20px;min-width:20px;min-height:20px;flex:none;overflow:visible}
.vessel-card .fleet-handle:hover{background:#e2edf0;border-color:#71939d}

/* Uploaded desktop references: native feedback and plain report canvas. */
.desktop-app .cell-preview>rect{fill:gray!important;stroke:black!important;stroke-width:1!important;stroke-dasharray:none!important}
.desktop-app .selection-rectangle{fill:none;fill-opacity:0;stroke:blue;stroke-width:1;stroke-dasharray:none;opacity:1}
.desktop-app .stowage-cell.find-highlight:not(.paired-x)>rect{fill:red;stroke:black;stroke-width:1;stroke-dasharray:none}
.desktop-app #cargo-table tr.native-un:not([aria-selected=true]) td{background:lightcoral}
.desktop-app #cargo-table tr.native-temp:not([aria-selected=true]) td{background:lightblue}
.desktop-app #cargo-table tr[aria-selected=true] td{background:#cfe6f7}
.desktop-app #cargo-table tr.native-un .desktop-cargo-number{color:#202b30}
.desktop-app #cargo-table tr.native-un[aria-selected=true] .desktop-cargo-number{color:red}
.desktop-app #cargo-table tr.native-temp .desktop-cargo-number{color:blue}
.native-canvas-legend{display:flex;align-items:center;gap:12px;padding:2px 8px;min-height:22px;overflow:auto;background:#d3d3d3;white-space:nowrap;font:11px Arial;flex:none}
.native-canvas-legend .legend-entry{display:inline-flex;gap:4px;align-items:center;padding:0;background:none;border:0}
.native-canvas-legend i{width:14px;height:14px;border:1px solid black;display:inline-block}
.desktop-app .native-report-page{background:#d3d3d3;padding:4px 10px;min-height:100%;font:12px Arial;color:black;overflow:auto}
.native-run-button{display:block;margin:3px auto 10px;font:12px Arial;padding:4px 16px;border:1px solid #888;border-radius:0;background:#eee;color:black}
.native-analysis-page{max-width:940px}.native-condition-page{max-width:810px}.native-report-table{border-collapse:collapse;background:transparent;width:100%;font:12px Arial;text-align:center}
.native-report-table th,.native-report-table td{padding:5px 6px;border:0;color:black;white-space:nowrap;text-align:center}.native-report-table th{border-bottom:1px solid #999;background:#eee;font-weight:normal;letter-spacing:0;text-transform:none}
.native-report-table tbody{background:#fff}.native-report-table .native-grand-total td{background:#ffd700;font-weight:bold}.native-table-scroll{overflow:auto}.native-chart{display:block;max-width:none;margin:0;font:12px Arial;background:transparent}.native-chart-title{font-size:16px;font-weight:bold}.native-chart-legend{font-size:12px}
.native-extra-tools{margin:12px 0;max-width:900px}.native-extra-tools>summary{cursor:pointer;color:#333}.native-extra-tools .dialog-head h2{display:none}
.native-survey-section{margin:12px 0}.native-survey-section h3{font:bold 14px Arial;margin:14px 0 6px}.native-survey-section p{margin:4px 0;font:12px Arial}.native-check-ok{color:green}.native-check-error{color:#a00000}.native-check-error button{font:11px Arial}
.native-prefix-box{border:1px solid #aaa;padding:6px;margin-top:12px}.native-prefix-box legend{font:12px Arial}.native-prefix-box textarea{display:block;width:100%;height:28px;padding:3px;font:12px Arial;background:white;color:black;border:1px solid #aaa;border-radius:0}.native-prefix-box button{display:block;margin:6px auto 0;font:12px Arial}
.native-dg-page{max-width:680px}.native-dg-classes{width:600px;border:0;text-align:center;font:12px Arial;border-spacing:0}.native-dg-classes th{font:bold 16px Arial;color:black;background:none;text-transform:none;letter-spacing:0;width:200px;padding:4px}.native-dg-classes td{height:30px;white-space:nowrap;padding:0;border:0;background:none;color:black}
.native-dg-scroll{overflow:auto}.native-dg-matrix{border-collapse:collapse;table-layout:fixed;margin-top:8px;width:640px;font:12px Arial}.native-dg-matrix td{border:1px solid black;width:30px;height:30px;box-sizing:border-box;text-align:center;color:black;padding:0}.native-dg-matrix th{background:none;color:black;border:0;width:30px;height:30px;padding:0;text-align:center;letter-spacing:0;text-transform:none;font-weight:normal}.native-dg-matrix th:first-child{width:130px;text-align:right;padding-right:35px;white-space:nowrap}
.native-dg-legend{width:640px;margin:4px 0}.native-dg-legend>div{display:flex;align-items:center;height:30px;gap:20px}.native-dg-legend i{margin-left:0;display:block;width:20px;height:20px;border:1px solid black;flex:none}.native-dg-legend span{font:12px Arial;white-space:nowrap}
.native-found-details{display:grid;grid-template-columns:80px 1fr;gap:4px 12px}.native-found-details dt{font-weight:bold}.native-found-details dd{margin:0}.dg-palette{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.dg-palette legend{font-size:12px}.dg-palette button{border:1px solid black}
@media(max-width:900px){.native-report-page{max-width:100%;width:100%;box-sizing:border-box}.native-dg-page{overflow:auto}.native-canvas-legend{max-width:100%}}

.native-analysis-menu{position:fixed;z-index:10000;padding:3px;background:#eee;border:1px solid #777;box-shadow:2px 2px 3px #777}.native-analysis-menu button{font:12px Arial;background:#eee;border:0;padding:5px 12px;cursor:pointer}.native-analysis-menu button:hover{background:#c5d9ef}.desktop-app .native-report-page{background:#eee}.desktop-app .native-report-page .native-table-scroll{margin-top:0}.native-report-table td{height:25px;padding-top:0;padding-bottom:0}.native-report-table th{height:24px;padding-top:0;padding-bottom:0}.native-report-table th+th{border-left:1px solid #d5d5d5}.native-chart{margin-top:10px}.native-prefix-box textarea{display:inline-block;width:calc(100% - 80px);vertical-align:middle}.native-prefix-box button{display:inline-block;width:58px;margin:0 0 0 12px;vertical-align:middle}.native-survey-section{margin:16px 0}.native-survey-section h3{font-size:12px}

.native-analysis-page .native-report-table{table-layout:fixed}.native-analysis-page .native-report-table th,.native-analysis-page .native-report-table td{width:11.111%}.native-analysis-page .native-grand-total td{font-weight:normal}.native-condition-page .native-grand-total td{font-weight:normal}.native-report-page .native-chart-title{font-size:14px}.native-report-page .native-extra-tools .button{font:12px Arial;padding:4px 8px;border-radius:2px}


/* Rang Bazi: original 9-column x 10-row desktop palette. */
#color-dialog{width:min(1360px,calc(100vw - 20px));max-width:calc(100vw - 20px);max-height:calc(100dvh - 20px);padding:12px 14px 16px;border:1px solid #c6cdd0;border-radius:15px;background:#f1f1f1;color:#222;box-shadow:0 12px 44px #18252c38}
#color-dialog .palette-heading{display:flex;gap:12px;margin:0 0 8px;align-items:center}
#color-dialog .palette-heading h2{flex:1;text-align:center;font-size:14px;font-weight:650;margin:0}
#color-dialog .palette-heading small{font-size:11px;font-weight:400;color:#69767a;margin-left:8px}
#color-dialog .palette-heading .button{padding:5px 10px;font-size:11px}
#color-dialog .palette-scroll{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;padding:2px 1px 4px}
#color-dialog .palette-grid{display:grid;grid-template-columns:repeat(9,minmax(118px,1fr));grid-template-rows:repeat(10,23px);gap:5px 7px;min-width:1118px;width:100%}
#color-dialog .palette-cell{display:flex;align-items:stretch;position:relative;width:100%;height:23px;background:var(--palette-fill);border:1px solid #fbfbfb;box-shadow:0 0 0 1px #c5c5c5;min-width:0}
#color-dialog .palette-cell [data-palette-code]{width:100%;height:100%;display:block;border:0;border-radius:0;outline:0;padding:1px 4px;margin:0;background:var(--palette-fill);color:var(--palette-ink);font:500 12px/19px Arial,sans-serif;letter-spacing:0;text-align:center;box-sizing:border-box}
#color-dialog .palette-cell [data-palette-code]:focus-visible{outline:2px solid #1b66a6;outline-offset:1px;position:relative;z-index:2}
#color-dialog .palette-cell:hover{box-shadow:0 0 0 1px #84959b}
#color-dialog .palette-cell [data-palette-picker]{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;right:0;bottom:0;padding:0;margin:0;border:0}
#color-dialog .palette-hint,#color-dialog .palette-footnote{font-size:11px;line-height:1.35;color:#526068;text-align:center;margin:10px 0 0}
#color-dialog #color-error:empty{display:none}
#color-dialog #color-error{min-height:0;margin:8px 0 0;text-align:center}
#color-dialog .palette-actions{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:9px;margin:14px 0 0}
#color-dialog .palette-actions .button{font:500 12px Arial,sans-serif;padding:6px 13px;border:1px solid #c8cdd0;border-radius:6px;min-height:30px;box-shadow:0 1px 3px #00000012}
#color-dialog .palette-actions .primary{background:#fff;color:#20292c}
#color-dialog .palette-actions .primary:hover{background:#e9f3f5}
@media(max-width:650px){#color-dialog{padding:9px}#color-dialog .palette-grid{grid-template-columns:repeat(9,minmax(112px,1fr));min-width:1060px}#color-dialog .palette-heading small{display:none}#color-dialog .palette-hint{margin:8px 0 0}}


/* Voyage library: accessible selection and bulk destructive actions. */
.voyage-bulk-tools{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:10px 14px;margin:0 0 12px;border:1px solid #ccd9dd;border-radius:9px;background:#f9fbfb;font-size:12px}
.voyage-bulk-tools strong{font-size:13px;white-space:nowrap}
.voyage-bulk-tools span{color:#586b70;flex:1;min-width:170px}
.voyage-bulk-tools .button{padding:7px 11px;font-size:12px}
.voyage-bulk-tools [data-action="delete-selected-voyages"]:not(:disabled),.voyage-bulk-tools [data-action="delete-selected-voyages"]:hover:not(:disabled){border-color:#b54849;background:#f9eaea;color:#922b31}
.voyage-library-table{min-width:0;overflow:hidden}
.voyage-table-scroll{width:100%;overflow-x:auto}
.voyage-library-table table{min-width:740px;width:100%;border-collapse:collapse}
.voyage-library-table .voyage-select-col{width:44px;min-width:44px;text-align:center;padding:8px 9px}
.voyage-library-table .voyage-select-col input{width:17px;height:17px;vertical-align:middle;accent-color:#173f47;cursor:pointer}
.voyage-library-table .voyage-selected-row{background:#ecf4f1}
.voyage-library-table .voyage-selected-row:hover{background:#e2eeea}
.voyage-bulk-list{margin:14px 0;border:1px solid #cedbdb;border-radius:8px;background:#f9fbfb;max-height:250px;overflow-y:auto;padding:10px 14px}
.voyage-bulk-list ul{padding-left:18px;margin:0;line-height:1.8;font-size:12px}
.voyage-bulk-list li{overflow-wrap:anywhere}
.voyage-bulk-list p{font-size:12px;color:#596c70;margin:7px 0 0}
@media(max-width:600px){.voyage-bulk-tools span{flex-basis:100%;order:3}.voyage-bulk-tools{gap:7px;padding:9px}.voyage-library-table .voyage-select-col{width:37px;min-width:37px;padding:7px}}


/* One saved Color Configuration dialog: desktop port matrix plus category-mode tabs. */
#color-dialog .palette-tabs{display:flex;align-items:stretch;gap:4px;overflow-x:auto;padding:4px 2px 9px;margin:2px 0 9px;border-bottom:1px solid #cbd2d5;scrollbar-width:thin}
#color-dialog .palette-tabs button{appearance:none;flex:0 0 auto;border:1px solid #c7d0d4;border-radius:6px 6px 0 0;padding:8px 13px;background:#f7f9fa;color:#364c55;font:600 12px Arial,sans-serif;white-space:nowrap}
#color-dialog .palette-tabs button[aria-selected=true]{background:#173f47;border-color:#173f47;color:#fff}
#color-dialog .palette-tabs button:hover:not([aria-selected=true]){background:#e3ebec}
#color-dialog .palette-tabs button:focus-visible{outline:3px solid #c4802d;outline-offset:1px}
#color-dialog .palette-panel[hidden]{display:none!important}
#color-dialog .palette-panel{min-height:292px}
#color-dialog .palette-category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(195px,1fr));align-content:start;gap:9px;padding:12px 2px 6px;max-height:53dvh;overflow-y:auto}
#color-dialog .palette-category{display:flex;min-width:0;min-height:48px;align-items:center;gap:9px;padding:7px 10px;border:1px solid #cbd4d7;border-radius:8px;background:#fff;cursor:pointer}
#color-dialog .palette-category:hover{border-color:#759399;background:#fbfdfd}
#color-dialog .palette-category-key{flex:1;min-width:0;overflow-wrap:anywhere;font:600 12px Arial,sans-serif}
#color-dialog .palette-category input[type=color]{width:38px;height:29px;min-width:38px;border:1px solid #adbcc0;border-radius:5px;padding:2px;background:#fff;cursor:pointer}
#color-dialog .palette-category-hex{font:11px ui-monospace,Consolas,monospace;color:#5d6b70}
#color-dialog .palette-custom-mark{color:#2e7564;font-size:10px}
#color-dialog .palette-actions{margin-top:14px}
#color-dialog .palette-actions .primary{min-width:125px;background:#173f47;color:#fff;border-color:#173f47;font-size:13px}
#color-dialog .palette-actions .primary:hover:not(:disabled){background:#285760;color:#fff}
#color-dialog .palette-footnote{margin-top:9px}
@media(max-width:600px){#color-dialog .palette-tabs button{padding:7px 10px}#color-dialog .palette-category-grid{grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:6px}#color-dialog .palette-category{flex-wrap:wrap;padding:7px;gap:5px}#color-dialog .palette-category-hex{font-size:10px}}

/* Stability uses the shared notebook scroll owner; tables scroll horizontally only. */
.stability-source{display:flex;flex-wrap:wrap;gap:6px 20px;padding:9px 12px;background:#e8f0f6;border:1px solid #c6d3df;margin-bottom:8px}.stability-source small{margin-left:auto;color:#566878}.stability-top-actions{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin:6px 0}.stability-top-actions>span{font-size:11px;color:#607080}.stability-settings{border-bottom:1px solid #ccd4dd;padding:6px 0}.stability-settings summary{cursor:pointer;font-weight:600}.stability-layout{display:grid;grid-template-columns:minmax(360px,.95fr) minmax(420px,1.1fr);gap:14px;align-items:start;margin-top:12px}.stability-layout>*{min-width:0}.stability-layout .calc-edit{max-height:none;overflow-x:auto;overflow-y:visible}.stability-layout .calc-edit input{min-width:68px;width:85px}.stability-layout .calc-edit [data-field=name]{min-width:130px;width:180px}.stability-layout .calc-tabs{flex-wrap:wrap;gap:3px}.stability-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.stability-metrics article{background:#fff;border:1px solid #c5cdd6;padding:7px}.stability-metrics span{display:block;font-size:11px;color:#586775}.stability-metrics strong{font-size:18px;color:#173b59;white-space:nowrap}.stability-metrics small{font-size:11px;font-weight:400}.stability-issues{background:#fff4dc;border:1px solid #e7ca8c;padding:8px;margin:8px 0;font-size:12px}.stability-issues ul{margin:5px 0;padding-left:20px}.stability-diagrams{display:grid;grid-template-columns:1.2fr 1fr;gap:5px;margin:8px 0}.stability-diagrams svg,.stability-gz{width:100%;height:auto;border:1px solid #ccd5dd;background:#fff}.stability-status{font-weight:700;font-size:11px;padding:2px 5px;white-space:nowrap}.stability-status.pass{background:#e3f1e9;color:#226342}.stability-status.fail{background:#fae0e4;color:#a22134}.stability-status.incomplete{background:#fff1d3;color:#855811}.stability-tank-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:6px}.stability-tank-grid article{text-align:center;min-width:0;background:#fff;border:1px solid #c5cdd6;padding:5px}.stability-tank-grid .tank-gauge{width:100%;height:48px;border:2px solid #263747}.stability-tank-grid .tank-gauge i{background:#4c91df}.stability-tank-grid .tank-gauge i.fuel{background:#e59a22}.stability-tank-grid strong{display:block;font-size:9px;overflow-wrap:anywhere;margin-top:3px}.stability-tank-grid small{font-size:9px}.stability-output details{margin:8px 0}.stability-output summary{font-size:12px;font-weight:600;cursor:pointer}.stability-output h3{font-size:13px;margin:9px 0 5px}.stability-output h4{font-size:11px;margin:8px 0 5px}.stability-settings .report-filters{margin-top:7px}.stability-settings .field{min-width:120px}.stability-layout .report-table{max-height:none}.stability-form{min-width:0}.stability-output .report-table th,.stability-output .report-table td{font-size:11px;padding:4px}.stability-output .report-note{font-size:11px}.stability-settings p{font-size:11px}
@media(max-width:1000px){.stability-layout{grid-template-columns:1fr}.stability-output{grid-row:1}.stability-inputs{grid-row:2}}
@media(max-width:480px){.stability-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.stability-diagrams{grid-template-columns:1fr}.stability-source small{margin-left:0}.stability-settings .report-filters{display:grid;grid-template-columns:1fr}.stability-source{font-size:11px}.stability-tank-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}

#calculation-dialog.desktop-page .stability-form #calculation-table{max-height:none}

.stability-input-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding-left:22px;margin:8px 0}.stability-input-steps li{min-width:0;padding:6px;background:#fff;border:1px solid #c5cdd6}.stability-input-steps strong{display:block;font-size:12px}.stability-input-steps p{margin:5px 0}.stability-input-guide .cargo-actions{flex-wrap:wrap}.stability-input-guide p{max-width:100%;overflow-wrap:anywhere}@media(max-width:600px){.stability-input-steps{grid-template-columns:1fr}}

.stability-tanks .stability-tank-grid{user-select:none}
.stability-tank-grid [data-visual-tank]{cursor:default;border:2px solid transparent;border-radius:4px;padding:4px}
.stability-tank-grid .tank-selected{border-color:#2377c9;background:#e3f0ff}
.tank-selection-box{position:fixed;pointer-events:none;z-index:1100;border:1px solid #2377c9;background:#2377c926}
.tank-fill-menu{position:fixed;z-index:1200;min-width:150px;padding:5px;background:#fff;color:#21383e;border:1px solid #a6b5c3;border-radius:5px;box-shadow:0 5px 18px #0003}
.tank-fill-menu strong{display:block;font-size:12px;padding:6px}
.tank-fill-menu button{display:block;width:100%;padding:7px 10px;border:0;background:#fff;text-align:left;font-size:13px}
.tank-fill-menu button:hover,.tank-fill-menu button:focus{background:#e3f0ff}
@media print{.tank-fill-menu,.tank-selection-box{display:none}}

.stability-weight-summary{margin:10px 0;padding:8px;background:#fff;border:1px solid #c5cdd6}
.stability-weight-summary h3{font-size:13px;margin:0 0 6px}
.stability-weight-summary .report-table{max-height:none}
.stability-weight-summary table{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;width:100%}
.stability-weight-summary th,.stability-weight-summary td{text-align:right;white-space:nowrap;padding:4px 6px}
.stability-weight-summary th:first-child,.stability-weight-summary td:first-child{text-align:left}
.stability-weight-totals{border-top:1px dashed #6c7c81;margin-top:6px;padding-top:5px}
.stability-weight-totals tbody tr:last-child{font-weight:700}

/* Container-only regular 3D scene */
#three-dialog{width:min(1400px,96vw)}#three-dialog.desktop-page{width:100%}.three-controls{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:0 0 8px}.three-controls span{font-size:12px;color:#536579}.three-stage{position:relative;height:calc(100dvh - 225px);min-height:280px;overflow:hidden;border:1px solid #b8c5d2}.three-stage canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}.three-stage canvas:active{cursor:grabbing}.three-info{position:absolute;top:10px;left:10px;max-width:calc(100% - 20px);padding:5px 9px;background:#ffffffdc;font-size:12px;pointer-events:none}

/* Team accounts */
.team-identity{font-size:11px;color:#53616a;padding:0 6px;white-space:nowrap}.team-page{padding:20px;max-width:1500px;margin:auto}.team-page .page-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}.team-role-guide{font-size:13px;color:#53616a;line-height:1.7}.team-grid{display:grid;grid-template-columns:minmax(240px,330px) minmax(0,1fr);gap:20px;align-items:start}.team-user-form{border:1px solid #ccd4d8;background:white;padding:18px;border-radius:8px}.team-user-form h3{margin-top:0}.team-enabled{display:flex;align-items:center;gap:8px}.team-table-wrap{overflow:auto;background:white;border:1px solid #ccd4d8;border-radius:8px}.team-table{border-collapse:collapse;width:100%;font-size:13px}.team-table th,.team-table td{padding:12px;text-align:left;border-bottom:1px solid #e1e6e8}.team-table th{background:#f2f5f6;white-space:nowrap}.team-table small{display:block;color:#657078;margin-top:4px}.team-page h1{margin:0}.login-card>#team-password-form+.button{margin-top:12px;width:100%}@media(max-width:800px){.team-grid{grid-template-columns:1fr}.team-page{padding:12px}.team-table th,.team-table td{padding:9px}}
/* Preserve ordinary container highlights while X partners keep their white fill. */
.desktop-app .stowage-cell.find-highlight:not(.paired-x)>rect{stroke:#bd3e07;stroke-width:3;stroke-dasharray:5 2;vector-effect:non-scaling-stroke}
@media(max-width:650px){.team-identity{display:none}.desktop-topbar .desktop-menubar{max-width:calc(100vw - 85px);overflow-x:auto;flex-shrink:1;scrollbar-width:none}.desktop-topbar .desktop-menubar::-webkit-scrollbar{display:none}}

.team-identity{max-width:150px;overflow:hidden;text-overflow:ellipsis}@media(max-width:650px){.header-right{flex-wrap:wrap;gap:6px;justify-content:flex-end}.app-header .brand{flex-shrink:0}.header-right .button{font-size:11px;padding:6px 8px}}
/* Keep Stability and visibility controls below capacity, including narrow cards. */
.vessel-card .card-actions{position:relative;right:auto;bottom:auto;display:flex;justify-content:flex-end;gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid #e6ecef}
.vessel-card .card-capacity{padding-right:0}
.vessel-card .card-actions .button:not(.vessel-visibility-icon){flex:1;min-width:0}

.team-password-page{grid-template-columns:minmax(0,1fr)}.team-password-page .login-card{min-width:0;justify-self:center}

.vessel-image-icon{width:28px;height:28px;padding:4px;display:inline-grid;place-items:center}.vessel-image-icon svg{width:18px;height:18px}

/* Keep account validity visible beside the username in the desktop menubar. */
.desktop-topbar .desktop-menubar .team-identity{max-width:none;overflow:visible;text-overflow:clip;flex:0 0 auto;white-space:nowrap}
.desktop-topbar .desktop-menubar .desktop-validity{white-space:nowrap}

/* Accessible show/hide control for login and master-password setup. */
.login-password-field{position:relative;width:100%}
.field .login-password-field input{padding-right:46px}
.login-password-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:36px;height:36px;padding:7px;border:0;border-radius:5px;background:transparent;color:#526b70;cursor:pointer}
.login-password-toggle:hover{background:#edf3f1}
.login-password-toggle:focus-visible{outline:2px solid #246793;outline-offset:0}
.login-password-toggle svg{width:20px;height:20px}

/* One fleet summary, with visibility counts acting as filters. */
.vessel-library-bar .stats{flex-wrap:wrap;gap:6px 10px}
.vessel-library-bar .stats .visibility-tabs{width:auto;flex:none;display:flex;gap:5px;flex-wrap:nowrap}
.vessel-library-bar .stats .visibility-tabs button{flex:none;white-space:nowrap}
.vessel-library-bar .stats .visibility-tabs strong{font-size:inherit;color:inherit;margin-left:3px}
.vessel-library-bar .stat:not(:last-child)::after{content:none}
.vessel-library-bottom .library-search{flex:0 1 340px;min-width:0;max-width:100%;width:340px}
.vessel-library-bottom .library-search input{flex:1 1 220px;width:220px;min-width:0;max-width:260px}
@media(max-width:650px){
 .vessel-library-bar .stats{gap:5px 8px}
 .vessel-library-bottom .library-search{flex:0 1 100%;width:380px}
}

/* Cargo columns retain their own widths inside the scrollable load-list pane. */
#cargo-table.adjustable-cargo-columns{table-layout:fixed;max-width:none}#cargo-table.adjustable-cargo-columns th,#cargo-table.adjustable-cargo-columns td{width:auto!important;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#cargo-table.adjustable-cargo-columns th{position:sticky;top:0;z-index:3;background:#f8faf9;padding-right:12px}#cargo-table.adjustable-cargo-columns th:first-child{left:0;z-index:5}#cargo-table.adjustable-cargo-columns .cargo-column-resizer{position:absolute;right:0;top:0;bottom:0;width:9px;cursor:col-resize;touch-action:none;z-index:4;border-right:1px solid #bdc7ca}#cargo-table.adjustable-cargo-columns .cargo-column-resizer:hover,#cargo-table.adjustable-cargo-columns .cargo-column-resizer:focus-visible{background:#a8c7dd;outline:1px solid #285660}.cargo-column-resizing,.cargo-column-resizing *{cursor:col-resize!important;user-select:none!important}.desktop-app #cargo-table.adjustable-cargo-columns .desktop-cargo-number{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Compact manual-item rows, scoped away from other cargo review dialogs. */
#cargo-dialog{width:420px;padding:14px 16px;background:#f4f4f4;border-radius:5px}
#cargo-form .dialog-head{margin-bottom:10px;gap:8px}
#cargo-form .dialog-head h2{font-size:14px}
#cargo-form .cargo-form-grid{display:flex;flex-direction:column;gap:5px}
#cargo-form .field{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:center;gap:4px 8px;margin:0;font-size:11px}
#cargo-form .field>span{color:#26393e;line-height:1.25}
#cargo-form .field input,#cargo-form .field select{height:25px;padding:3px 5px;border-radius:2px;font-size:12px}
#cargo-form .field [name=customIso]{grid-column:2}
#cargo-form .cargo-position{margin:9px 0 0;font-size:10px;line-height:1.35}
#cargo-form-error:empty{display:none}
#cargo-form-error{margin:8px 0;font-size:11px}
#cargo-form .dialog-actions{display:flex;justify-content:space-between;gap:8px;margin-top:12px}
#cargo-form .dialog-actions .button{padding:5px 14px;font-size:12px;border-radius:3px}
@media(max-width:430px){#cargo-dialog{padding:12px}#cargo-form .field{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);font-size:10px;gap:4px 6px}}

/* One continuous cargo list stays inside its existing scroll pane. */
#cargo-panel>.cargo-table-scroll{max-height:70dvh}
@media(min-width:1100px){.desktop-app #cargo-panel>.cargo-table-scroll{max-height:none}}

/* Shared compact modal entry controls; report/data tables keep their own sizing. */
dialog:not(.desktop-page):not(#color-dialog):not(#calculation-dialog){padding:14px 16px;border-radius:5px}
dialog:not(.desktop-page) .dialog-head{gap:8px;margin-bottom:10px}
dialog:not(.desktop-page) .dialog-head h2{font-size:14px}
dialog:not(.desktop-page) .field{gap:4px;margin-bottom:8px;font-size:11px}
dialog:not(.desktop-page) .field input,dialog:not(.desktop-page) .field select{padding:4px 6px;min-height:26px;font-size:12px;border-radius:2px}
dialog:not(.desktop-page) .dialog-actions{gap:8px;margin-top:10px;flex-wrap:wrap}
dialog:not(.desktop-page) .button{padding:5px 10px;font-size:12px;border-radius:3px}
.compact-form .cargo-form-grid{display:flex;flex-direction:column;gap:4px}
dialog .compact-form .field{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);align-items:center;gap:4px 8px;margin:0;grid-column:auto;font-size:11px}
.compact-form .field>span{color:#26393e;line-height:1.25}
.compact-form .field>small,.compact-form .field>input,.compact-form .field>select,.compact-form .field>textarea{grid-column:2;min-width:0}
.compact-form .field>small{grid-column:1 / -1;font-size:10px;line-height:1.25}
dialog .compact-form .field input,dialog .compact-form .field select{min-height:24px;height:24px;padding:3px 5px;border-radius:2px;font-size:12px}
.compact-form .field textarea{padding:4px 6px;font-size:12px}
.compact-form .report-note,.compact-note,.compact-form>p,.compact-form>small{font-size:10px;line-height:1.35;margin:8px 0}
.compact-form [role=alert]:empty{display:none}
.compact-options{font-size:11px;margin:8px 0}
.compact-options>summary{cursor:pointer;padding:3px 0;color:#526b70}
.compact-options>.cargo-form-grid{margin-top:6px}
.compact-form .dialog-actions{display:flex;justify-content:space-between}
#edi-dialog,#other-export-dialog,#metadata-dialog,#drawing-dialog,#dialog:has(>#voyage-form){width:420px;background:#f4f4f4}
#print-dialog{width:420px;background:#f4f4f4}
#print-dialog:has(>#print-frame:not([hidden])){width:min(1000px,calc(100vw - 32px))}
#print-form{width:100%;max-width:420px;margin-inline:auto}
#list-row-form,#list-edi-form{max-width:480px}
@media(max-width:430px){dialog:not(.desktop-page):not(#color-dialog):not(#calculation-dialog){padding:12px}.compact-form .field{gap:4px 6px;font-size:10px}}

.compact-form>.field{margin-bottom:4px!important}

#find-dialog:has(>#find-form[data-native-find]){width:420px}
#find-form>.cargo-form-grid,#compare-form>.cargo-form-grid{max-width:420px}

/* Bulk input stays compact; the full batch review retains its wider table. */
#bulk-dialog:has(#bulk-form:not([hidden])){width:420px;max-width:calc(100vw - 24px);padding:16px}
.bulk-field-list{display:grid;gap:9px;margin:12px 0}.bulk-field-row{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px;align-items:center}.bulk-field-row>label{font-size:12px;font-weight:600;min-width:0}.bulk-field-row small{display:block;font-size:10px;font-weight:400;color:#536e77;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}.bulk-field-control{display:flex;gap:5px;min-width:0}.bulk-field-control input:not([type=hidden]),.bulk-field-control select{width:100%;min-width:0;flex:1;border:1px solid #bdc7ca;border-radius:4px;padding:7px;font-size:12px;background:white}.bulk-field-control input:disabled{background:#fff0ee;color:#913f38}.bulk-clear{border:1px solid #bdc7ca;border-radius:4px;background:#f6f8f9;padding:5px 7px;font-size:11px;min-width:43px;cursor:pointer}.bulk-clear[aria-pressed=true]{background:#fff0ee;border-color:#bf5a50;color:#913f38}.bulk-clear:focus-visible{outline:2px solid #276394;outline-offset:1px}@media(max-width:450px){.bulk-field-row{grid-template-columns:100px minmax(0,1fr);gap:7px}}
