@import url('/dispatch-upload.css');
.dock-operations{color:var(--cargo-ink);max-width:100%;min-width:0;font:14px/1.5 system-ui,sans-serif}.dock-operations header{display:flex;align-items:center;gap:16px;flex-wrap:wrap;border-bottom:1px solid var(--cargo-line);padding-bottom:16px}.dock-operations h2{font-size:22px;margin:0}.dock-operations h3{font-size:17px;margin:24px 0 12px}.dock-operations button,.dock-operations input{font:inherit;max-width:100%;box-sizing:border-box}.dock-operations button,.dock-operations-download{padding:9px 13px;border:1px solid var(--cargo-control);background:var(--cargo-paper);border-radius:6px;color:var(--cargo-ink);cursor:pointer;min-height:40px}.dock-operations button:disabled{opacity:1;cursor:default}.dock-operations :focus-visible{outline:3px solid var(--cargo-orange);outline-offset:3px}.dock-operations-facts{display:flex;gap:20px;flex-wrap:wrap;margin:20px 0}.dock-operations-facts div{min-width:120px}.dock-operations dt,.dock-operations-muted{color:var(--cargo-ink);font-size:12px}.dock-operations dd{margin:5px 0;font-weight:600}.dock-operations details{border:1px solid var(--cargo-line);border-radius:7px;margin:14px 0;padding:14px;background:var(--cargo-paper)}.dock-operations summary{font-weight:600;cursor:pointer;overflow-wrap:anywhere}.dock-operations-scroll{overflow:auto;max-width:100%}.dock-operations table{border-collapse:collapse;width:100%}.dock-operations th,.dock-operations td{text-align:left;padding:10px;border-bottom:1px solid var(--cargo-line);font-size:13px}.dock-operations th{background:var(--cargo-soft)}.dock-operations .dock-operations-check{display:flex;flex-direction:row;align-items:center;gap:10px;margin:16px 0}.dock-operations-check input{flex:none;width:18px;height:18px;min-height:18px}.dock-operations-actions{display:flex;gap:12px;flex-wrap:wrap}.dock-operations-message,.dock-operations-pending{border:1px solid var(--cargo-line);border-radius:6px;padding:12px 15px;background:var(--cargo-soft);overflow-wrap:anywhere}.dock-operations-message.error,.dock-operations-message.warning,.dock-operations-pending{background:var(--cargo-soft);border-color:var(--cargo-line)}.dock-operations-message.success{background:var(--cargo-soft);border-color:var(--cargo-line)}.dock-operations-proof{border-bottom:1px solid var(--cargo-line);padding:10px 0;overflow-wrap:anywhere}.dock-operations-proof p{font-size:13px;margin:7px 0;color:var(--cargo-ink)}.dock-operations label:not(.dock-operations-check){display:grid;gap:7px}.dock-operations form{display:grid;gap:14px;margin-top:14px}.dock-operations input:not([type=checkbox]){padding:9px 11px;border:1px solid var(--cargo-control);border-radius:6px;min-height:40px}.dock-operations-download{display:inline-block;margin:8px 8px 8px 0;text-decoration:none}@media(max-width:768px){.dock-operations header{gap:10px}.dock-operations h2{font-size:20px}.dock-operations-facts{gap:12px}.dock-operations details{padding:11px}.dock-operations th,.dock-operations td{padding:9px 7px}.dock-operations-actions button{flex:1}}
/* Dispatcher composition is scoped; Gatehouse keeps its existing detail layout. */
.portal-dock-card{cursor:pointer}.portal-dock-card-heading{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}.portal-dock-card-heading h3{margin:0;font-size:16px}.portal-dock-card-heading time{font-size:12px;color:var(--cargo-ink)}.portal-dock-card>p{font-size:12px;margin:7px 0}.portal-dock-card .portal-member-trips{display:grid;gap:5px;margin:10px 0;font-size:13px;overflow-wrap:anywhere}.portal-dock-card-totals{display:flex;gap:7px 14px;flex-wrap:wrap;margin:12px 0}.portal-dock-card-totals div{display:grid;gap:2px}.portal-dock-card-totals dt{font-size:11px;color:var(--cargo-ink)}.portal-dock-card-totals dd{font-size:13px;font-weight:600;margin:0}
.portal-dock-dialog[open]{width:min(1180px,calc(100vw - 32px));max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);padding:20px;box-sizing:border-box;overflow:hidden;display:flex;flex-direction:column}.portal-dock-dialog>.portal-view-heading{position:static;flex:none;padding:0 0 12px;margin:0;background:var(--cargo-paper)}.portal-dock-dialog>.portal-view-heading h2{font-size:21px;margin:0}.portal-dock-dialog>div:last-child{min-height:0;overflow:hidden}.portal-dock-dialog .dock-operations>header{gap:5px 12px;padding-bottom:10px}.portal-dock-dialog .dock-operations>header strong{font-size:17px}.portal-dock-dialog .dock-operations>header span{font-size:13px;color:var(--cargo-ink);flex:1}.portal-dock-dialog .dock-operations>header button{padding:6px 10px;min-height:34px}.dock-dispatcher-workspace{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,1fr);gap:22px;max-height:calc(100dvh - 230px);min-height:0;margin-top:12px}.dock-dispatcher-cargo,.dock-dispatcher-work{min-width:0;overflow-y:auto;overscroll-behavior:contain;padding:0 5px 5px 0}.dock-dispatcher-cargo>h3{margin:0 0 9px}.dock-dispatcher-cargo h4{font-size:14px;margin:4px 0 10px}.dock-dispatcher-workspace details{margin:8px 0;padding:10px}.dock-cargo-trip>summary{font-size:14px}.dock-cargo-children{padding-left:8px}.dock-cargo-rows summary{display:list-item}.dock-cargo-rows summary small{font-size:11px;font-weight:400;color:var(--cargo-ink);margin-left:8px}.dock-cargo-box{display:grid;grid-template-columns:minmax(90px,1fr) minmax(0,1fr);gap:3px 10px;padding:9px 2px;border-bottom:1px solid var(--cargo-line);overflow-wrap:anywhere;font-size:12px}.dock-cargo-box strong{grid-row:span 2}.dock-dispatcher-work h3{margin:15px 0 7px;font-size:16px}.dock-dispatcher-work p{margin:7px 0}.dock-dispatcher-work .dock-operations-check{margin:10px 0;align-items:flex-start;font-size:12px}.dock-dispatcher-work .dock-operations-actions{gap:7px}.dock-dispatcher-work .dock-operations-actions button{flex:1;padding:7px 8px}.dock-dispatcher-work .dock-operations-muted{font-size:11px}.dock-dispatcher-work .dock-operations-facts{margin:10px 0;gap:8px}.dock-dispatcher-work .dock-operations-facts div{min-width:100px}.dock-dispatcher-work .dock-operations-facts dd{font-size:12px}.dock-dispatcher-work input[type=file]{width:100%;padding:7px!important;font-size:12px}.dock-dispatcher-work details:not([open]){background:var(--cargo-soft)}.portal-dock-dialog .dock-operations-message{padding:8px 10px;margin:8px 0;font-size:12px}
@media(max-width:800px){.portal-dock-dialog[open]{width:calc(100vw - 16px);max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:14px;overflow-y:auto}.portal-dock-dialog>div:last-child{overflow:visible}.dock-dispatcher-workspace{display:block;max-height:none}.dock-dispatcher-cargo,.dock-dispatcher-work{overflow:visible;padding:0}.portal-dock-dialog .dock-operations>header{align-items:flex-start;flex-direction:column}.dock-dispatcher-cargo{margin-bottom:18px}.dock-cargo-box{grid-template-columns:minmax(70px,1fr) minmax(0,1fr)}}
/* Approved upload composition only. Root omits its redundant outer heading. */
.portal-dock-dialog[open]:has(.dispatch-appointment){padding:0;border:1px solid var(--cargo-line);border-radius:12px}
.portal-dock-dialog:has(.dispatch-appointment)>div:last-child{min-height:0;overflow:hidden}
.dispatch-appointment .dock-cargo-trip+.dock-cargo-trip{margin-top:12px}
.dispatch-appointment .dock-cargo-invoice{padding:0;margin:0;border:0;border-radius:0;background:transparent}
.dispatch-appointment .dock-cargo-invoice+.dock-cargo-invoice,.dispatch-appointment .dispatch-consignee-group+.dispatch-consignee-group{border-top:1px solid var(--du-line)}
.dispatch-appointment summary.consignee-row{list-style:none;cursor:pointer}
.dispatch-appointment summary.consignee-row::-webkit-details-marker{display:none}
.dispatch-appointment summary.consignee-row strong::before{content:'›';display:inline-block;margin-right:7px;font-size:18px;line-height:12px;vertical-align:baseline}
.dispatch-appointment .dock-cargo-invoice[open]>summary.consignee-row strong::before{transform:rotate(90deg)}
.dispatch-appointment summary.consignee-row:hover{background:var(--du-soft)}
.dispatch-appointment .dock-handover-footer-info{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0}
.dispatch-appointment .dock-handover-footer-info>.muted{font-size:11px}
.dispatch-appointment .dock-handover-print-status{margin:0 18px 12px;font-size:12px}
.dispatch-appointment .dock-print-handover .lucide{flex:none}
.dispatch-appointment .dock-handover-spinner{width:14px;height:14px;flex:none;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:dock-handover-spin .75s linear infinite}
@keyframes dock-handover-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.dispatch-appointment .dock-handover-spinner{animation:none}}
@media(min-width:591px){
.portal-dock-dialog[open]:has(.dispatch-viewing-boxes){height:calc(100dvh - 32px);overflow:hidden}
.portal-dock-dialog:has(.dispatch-viewing-boxes)>div:last-child{flex:1;min-height:0}
.portal-dock-dialog .dispatch-viewing-boxes{height:100%}
.dispatch-viewing-boxes>.dispatch-modal-body{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}
.dispatch-viewing-boxes .modal-columns{flex:1;min-height:0}
.dispatch-viewing-boxes .cargo-column,.dispatch-viewing-boxes .upload-column{min-height:0;overflow-y:auto;overscroll-behavior:contain}
}
.dock-handover-print-frame{position:fixed;left:-10000px;top:0;width:210mm;height:297mm;border:0}
@media(max-width:590px){.dispatch-appointment .modal-footer{flex-wrap:wrap;align-items:flex-end}.dispatch-appointment .dock-handover-footer-info{flex:0 0 auto}.dispatch-appointment .dock-handover-footer-info>.muted{max-width:230px}.dispatch-appointment .dock-handover-print-status{margin-inline:12px}}
.dispatch-appointment .dock-cargo-children{padding:0 13px}
.dispatch-appointment .dock-cargo-box,.dispatch-appointment .dock-cargo-box-labels{display:grid;grid-template-columns:minmax(0,1fr) 65px 65px;gap:8px;padding:8px 0;font-size:12px;align-items:center}
.dispatch-appointment .dock-cargo-box strong{grid-row:auto;font-weight:500;overflow-wrap:anywhere}
.dispatch-appointment .dock-cargo-box>span,.dispatch-appointment .dock-cargo-box-labels>span:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}
.dispatch-appointment .dock-cargo-box-labels{font-size:11px;color:var(--cargo-stone);padding-bottom:4px}
@media(max-width:590px){.dispatch-appointment .dock-cargo-box,.dispatch-appointment .dock-cargo-box-labels{grid-template-columns:minmax(0,1fr) 50px 50px;font-size:11px;gap:6px;padding-block:5px}}
.dispatch-appointment .dock-cargo-rows>p:empty,.dispatch-appointment .muted:empty{display:none}
.dispatch-appointment .cargo-column .muted{overflow-wrap:anywhere}
@media(max-width:800px){.portal-dock-dialog[open]:has(.dispatch-appointment){padding:0}.portal-dock-dialog .dispatch-appointment{max-height:calc(100dvh - 16px)}}

.dock-handover-copy{font-size:12px;line-height:1.45;color:var(--cargo-ink);margin:4px 0 10px}.dock-handover-status{font-size:13px;line-height:1.45;overflow-wrap:anywhere}.dock-handover-status:empty{display:none}
.dock-handover-heading,.dock-handover-copy{grid-column:1/-1}.dock-handover-heading{margin:0}.dock-handover-copy{margin-top:0}/* Readable neutral colors for existing disabled controls. */.cargo-portal button:disabled,.cargo-portal select:disabled{color:var(--cargo-stone);background:var(--cargo-soft);border-color:var(--cargo-control)}
