/* Shared TMS visual system: operational desktop, forms and role portals. */
:root{--tms-ink:#173744;--tms-muted:#496473;--tms-brand:#00899c;--tms-brand-dark:#006779;--tms-canvas:#e5edf2;--tms-line:#9db5c2;--tms-soft:#deedf2;--tms-focus:#008fa5;--tms-radius:6px;--tms-text:14px;--tms-text-ui:13px;--tms-text-meta:12px;--tms-navy:#112c39;--tms-navy-soft:#1c4150;--tms-grid:#8da6b3;--tms-grid-light:#9db4c0;--tms-header:#193e4e;--tms-row:#fbfdfe;--tms-row-alt:#edf3f7}
.desk-shell{--ink:var(--tms-ink);--muted:var(--tms-muted);--line:var(--tms-line);--canvas:var(--tms-canvas);font-family:'Segoe UI',Arial,sans-serif;color:var(--tms-ink)}
.desk-shell .desk-topbar.topbar{height:44px;min-height:44px;padding:0 16px;background:linear-gradient(110deg,#102b38,#1c4352);border-bottom:2px solid #238b9a;color:#edf8fc}
.desk-shell .desk-breadcrumb h1,.desk-shell .desk-breadcrumb .panel-toggle{color:#f0f8fc}
.desk-shell .workspace-bar{min-height:42px}
.desk-shell .workspace-tabs>button{font-size:var(--tms-text-ui);color:#c3d7df;font-weight:600}
.desk-shell .workspace-tabs>button:hover{color:#fff;background:#ffffff0c}
.desk-shell .workspace-tabs>button.active{color:#fff;background:#ffffff0c}
.desk-shell .workspace-tabs>button.active:after{background:#52c6cf;height:3px;border-radius:3px 3px 0 0}
.desk-shell .desk-date{color:#bcd0da}
.desk-shell .desk-icon-button{color:#d3e6ee}
.desk-shell .desk-search-trigger{background:#ffffff0a;border-color:#53717e;color:#e4f4fa}
.desk-shell .desk-sidebar.sidebar{background:linear-gradient(180deg,#102d3a,#173440);border-color:#2c4a57;color:#dce8ee}
.desk-shell .desk-sidebar .desk-brand{border-color:#375360}
.desk-shell .desk-sidebar .brand-logo{content:url('/holcim-logo-white.svg')}
.desk-shell .desk-sidebar .product-name{color:#63c9d1;border-color:#4a6470}
.desk-shell .desk-brand>span{color:#a9c3d0}
.desk-shell .desk-nav-group>p,.desk-shell .desk-nav-group>summary{color:#a7c0cd;border-color:#3a5562;font-size:var(--tms-text-ui,13px);letter-spacing:.09em}
.desk-shell .desk-nav.nav button{font-size:var(--tms-text-ui);color:#d1e1e9;border:1px solid transparent}
.desk-shell .desk-nav.nav button svg{color:#98bccb}
.desk-shell .desk-nav.nav button:hover{background:#244856;color:#fff}
.desk-shell .desk-nav.nav button.active{background:linear-gradient(100deg,#165062,#214958);color:#fff;border-color:#3c7685}
.desk-shell .desk-nav.nav button.active svg{color:#65d0d5}
.desk-shell .desk-nav.nav button.active:before{background:#52c6cf}
.desk-shell .desk-environment{border-color:#365360;color:#b6ccd6}
.desk-shell .desk-sidebar .sidebar-foot{background:#0f2b37;border-color:#365360}
.desk-shell .desk-sidebar .sidebar-foot strong{color:#eaf5fa}
.desk-shell .desk-sidebar .sidebar-foot span{color:#adc6d2}
.desk-shell .desk-sidebar .sidebar-foot button{color:#abc8d5}
.desk-shell .desk-user-avatar{background:#245261;color:#a8e2e8;border:1px solid #4e7c89}
.desk-shell .content{padding:12px 16px;min-width:0;background:linear-gradient(145deg,#e3edf2,#edf2f6 65%)}
.desk-shell .desk-footer{min-height:20px;padding:4px 16px;font-size:var(--tms-text-meta,12px);background:#dbe6ed;border-color:#b1c5cf;color:#466170}
.desk-shell .operation-page-head,.desk-shell .orders-page-head{padding:0;margin:0 0 8px;min-height:0;border:0;background:none;box-shadow:none}
.desk-shell :is(.operation-page-head,.orders-page-head,.supply-program-head) h2{font-size:20px;line-height:1.2;margin:0;font-weight:650;letter-spacing:-.025em;color:#173a4a}
.desk-shell :is(.operation-page-head,.orders-page-head,.supply-program-head)>div:first-child{border-left:3px solid #008ca0;padding-left:10px}
.desk-shell :is(.operation-kicker,.eyebrow){font-size:var(--tms-text-meta,12px);letter-spacing:.06em;color:var(--tms-muted)}
.desk-shell :is(button,input,select,textarea){font-family:inherit}
.desk-shell :is(.btn,.segmented button,.date-control button){min-height:30px;border-radius:var(--tms-radius);font-size:var(--tms-text-ui);box-shadow:none;transform:none}
.desk-shell .btn.primary,.tms-view-dialog .primary{background:linear-gradient(110deg,#006678,#008696);color:#fff;border-color:#006b7d;font-weight:600}
.desk-shell .btn.ghost,.desk-shell .btn.secondary{background:linear-gradient(#fff,#eff5f8);color:#214c60;border-color:#9fb9c6;font-weight:600}
.desk-shell .btn:hover:not(:disabled){border-color:#387b91;background-color:#dcecf2}
.desk-shell :is(input,select,textarea){background:#fafdff;border-color:#9fb8c5;color:var(--tms-ink)}
.desk-shell :is(input,textarea)::placeholder{color:#617b8a}
:is(.desk-shell,.modal,.tms-view-dialog) :is(button,a,input,select,textarea,summary):focus-visible{outline:2px solid var(--tms-focus);outline-offset:2px}
.desk-shell :is(input,select,textarea):disabled,.desk-shell button:disabled{opacity:.55;cursor:not-allowed}
.desk-shell :is(.programme-surface,.table-card,.catalog-panel){box-shadow:none;border-color:var(--tms-line);background:#f3f7fa}
.desk-shell .programme-toolbar{padding:8px;gap:8px;flex-wrap:wrap;background:#e9f0f5;border-bottom:1px solid var(--tms-line)}
.desk-shell .programme-stages{display:flex;flex-wrap:wrap;gap:4px;padding:6px 8px;background:#fff;border-bottom:1px solid var(--tms-line)}
.desk-shell .programme-stages button{display:flex;align-items:center;gap:6px;min-height:30px;padding:5px 9px;border-radius:4px;background:#fff;border:1px solid transparent;font-size:var(--tms-text-ui)}
.desk-shell .programme-stages button strong{font-size:var(--tms-text-ui,13px)}
.desk-shell .programme-stages button.active{background:var(--tms-soft);color:var(--tms-brand-dark);border-color:#8ebec8}
.desk-shell .programme-caption{padding:6px 8px;min-height:0;font-size:var(--tms-text-ui)}
.desk-shell .orders-query{gap:8px;padding:8px 0}
.desk-shell .orders-query :is(input,select){min-height:32px;font-size:var(--tms-text-ui)}
.desk-shell .orders-workspace:has(.tms-table) .order-toolbar{display:grid;grid-template-columns:minmax(160px,1fr) 128px 136px 142px auto;gap:8px}
.desk-shell .orders-workspace:has(.tms-table) .order-toolbar #orderSort{display:block}
.desk-shell:has(.tms-table) .content{display:flex;flex-direction:column;overflow:hidden}
.desk-shell:has(.tms-table) :is(.orders-workspace,.order-panel,.programme-surface,#programmeResult,#ordersResult){display:flex;flex:1;flex-direction:column;min-height:0;min-width:0;overflow:hidden}
.desk-shell:has(.tms-table) .table-card:has(>.table-wrap>.tms-table){display:flex;flex:1;flex-direction:column;min-height:0;overflow:hidden;border:1px solid #9bb4c1;border-radius:var(--tms-radius);background:#e8f0f5}
.desk-shell:has(.tms-table) .table-wrap:has(>.tms-table){overflow:auto;flex:1;min-height:130px;max-height:none;scrollbar-gutter:auto;overscroll-behavior:contain;isolation:isolate}
.desk-shell table.tms-table{table-layout:fixed;border-collapse:separate;border-spacing:0;background:var(--tms-row);color:var(--tms-ink);font-size:var(--tms-text);margin:0}
.desk-shell table.tms-table>thead>tr>th{position:sticky;top:0;z-index:3;height:38px;padding:0 14px 0 9px;background:var(--tms-header);color:#f1f9fc;border:0;border-bottom:2px solid #23a0af;border-right:1px solid #5c8191;font-size:var(--tms-text-ui);font-weight:600;letter-spacing:.01em;text-align:left;white-space:normal;vertical-align:middle}
.desk-shell table.tms-table>tbody>tr>td{height:auto;min-height:0;padding:9px 10px;line-height:1.4;vertical-align:top;border:0;border-bottom:1px solid var(--tms-grid);border-right:1px solid var(--tms-grid-light);background:var(--tms-row);font-size:var(--tms-text);color:var(--tms-ink);white-space:normal;overflow:visible;overflow-wrap:anywhere;text-overflow:clip;box-shadow:none}
.desk-shell table.tms-table[data-density=compact]>tbody>tr>td{padding:6px 8px;line-height:1.4}
.desk-shell table.tms-table>tbody>tr:nth-child(even)>td{background:var(--tms-row-alt)}
.desk-shell table.tms-table>tbody>tr:hover>td{background:#deedf3;transform:none}
.desk-shell table.tms-table>tbody>tr:focus-within>td{background:#d9edf3}
.desk-shell table.tms-table>tbody>tr[aria-selected=true]>td{background:#cfe7ef;border-bottom-color:#4e99aa}
.desk-shell table.tms-table>tbody>tr>td b,.desk-shell table.tms-table>tbody>tr>td strong{font-size:inherit;line-height:inherit;font-weight:700;white-space:normal;display:inline}
.desk-shell table.tms-table>tbody>tr>td small{display:block;color:var(--tms-muted);font-size:var(--tms-text-meta);line-height:1.35;margin:3px 0 0;white-space:normal;max-width:none;overflow:visible;text-overflow:clip}
.desk-shell table.tms-table>tbody>tr>td :is(button,a){font-size:var(--tms-text);white-space:normal;line-height:1.3;max-width:100%}
.desk-shell table.tms-table>tbody>tr>td[data-view-column=work]{font-weight:400}
.desk-shell table.tms-table>tbody>tr>td[data-view-column=plate]{font-variant-numeric:tabular-nums;font-weight:700}
.desk-shell table.tms-table>tbody>tr>td[data-view-column=pallets]{font-variant-numeric:tabular-nums;text-align:right;font-weight:700}
.desk-shell table.tms-table .order-status{display:inline-block;box-sizing:border-box;max-width:100%;padding:3px 5px;white-space:normal;overflow-wrap:anywhere;line-height:1.3;font-size:var(--tms-text-meta)}
.desk-shell table.tms-table :is(td,th)[hidden]{display:none!important}
.desk-shell table.tms-table>thead>tr[hidden],.desk-shell table.tms-table>tbody>tr[hidden]{display:none!important}
.desk-shell table.tms-table>tbody>tr>td.tms-pinned{position:sticky;left:var(--pin-left);z-index:2;border-right:2px solid #7393a4}
.desk-shell table.tms-table>thead>tr>th.tms-pinned{left:var(--pin-left);z-index:5;border-right:2px solid #7098aa;background:#163746;color:#f1f9fc}
.desk-shell table.tms-table>thead>.tms-column-filters>th{top:38px;height:38px;background:#dbe8ef;padding:4px}
.tms-column-filters input{width:100%;min-width:0;padding:5px;border:1px solid var(--tms-line);border-radius:4px;font-size:var(--tms-text-meta)}
.tms-sort,.supply-table [data-supply-sort]{display:flex;align-items:center;gap:6px;width:100%;height:100%;min-height:36px;padding:2px 0;background:none;border:0;text-align:left;color:inherit;font:inherit;line-height:1.2;font-weight:700;cursor:pointer}
.tms-sort:after{content:'↕';margin-left:auto;color:#a7cedb}
[aria-sort=ascending]>.tms-sort:after{content:'↑'}[aria-sort=descending]>.tms-sort:after{content:'↓'}
.tms-resize{position:absolute;right:-1px;top:0;width:9px;height:100%;padding:0;border:0;background:transparent;cursor:col-resize;touch-action:none;z-index:7}
.tms-resize:hover,.tms-resize:focus-visible{background:#008aa340}
.tms-table-tools,.tms-table-footer{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:6px 8px;min-height:36px;background:linear-gradient(#edf4f8,#dfeaf1);color:#3d5d6d;font-size:var(--tms-text-meta);flex-shrink:0}
.tms-table-tools{border-bottom:1px solid var(--tms-line)}
.tms-table-tools>div{display:flex;gap:6px;margin-left:auto}.tms-view-save{color:#17644e;font-size:var(--tms-text-meta)}
.tms-table-tools button,.tms-table-footer button,.tms-view-dialog button{min-height:30px;padding:5px 9px;border:1px solid var(--tms-line);border-radius:5px;background:#fff;color:var(--tms-brand-dark);font-size:var(--tms-text-ui);cursor:pointer}
.tms-table-tools [data-view-config]{font-weight:600;background:linear-gradient(115deg,#176074,#087f90);color:#fff;border-color:#216b7c}
.tms-table-footer{border-top:1px solid var(--tms-line);font-size:var(--tms-text-ui)}.tms-table-footer>span{margin-right:auto}.tms-table-footer label{display:flex;gap:8px;align-items:center}.tms-table-footer select{min-height:30px}
.tms-view-dialog{width:min(700px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;border:1px solid #6d95a7;border-radius:9px;box-sizing:border-box;background:#f7fafc;color:var(--tms-ink);font:var(--tms-text,14px) 'Segoe UI',Arial,sans-serif;box-shadow:0 16px 60px #102f4940}
.tms-view-dialog::backdrop{background:#102f4966}
.tms-view-dialog form{display:flex;flex-direction:column;max-height:calc(100dvh - 26px);margin:0}
.tms-view-dialog header{display:flex;align-items:flex-start;justify-content:space-between;padding:16px 18px;border-bottom:2px solid #258d9d;gap:12px;background:linear-gradient(110deg,#153846,#235567);color:#f0f9fc}
.tms-view-dialog header p{color:#c3dce6}
.tms-view-dialog header button{background:#ffffff0a;color:#eff8fc;border-color:#698b9b}
.tms-view-dialog h2{font-size:19px;margin:0 0 5px}.tms-view-dialog p{margin:0;color:var(--tms-muted);line-height:1.5}
.tms-view-presets{display:flex;flex-wrap:wrap;gap:6px;padding:12px 18px}.tms-view-presets label{margin-left:auto;display:flex;align-items:center;gap:8px}
.tms-view-dialog .tms-view-hint{font-size:var(--tms-text-ui);padding:0 18px 10px}
.tms-view-columns{overflow:auto;min-height:100px;padding:0 18px;overscroll-behavior:contain}
.tms-view-column{display:grid;grid-template-columns:minmax(150px,1fr) 76px 60px 68px;align-items:center;gap:12px;min-height:44px;border-top:1px solid #bdcfd9}
.tms-view-column:nth-child(even){background:#eaf2f7}
.tms-view-column label{display:flex;gap:8px;align-items:center;min-width:0;font-size:var(--tms-text-ui)}.tms-view-column input[type=number]{width:72px;border:1px solid var(--tms-line);border-radius:4px;padding:6px;color:var(--tms-ink)}
.tms-view-column input[type=checkbox]{width:16px;height:16px;accent-color:var(--tms-brand)}
.tms-view-column>span{display:flex;gap:3px}.tms-view-column>span button{width:32px;padding:4px}
.tms-view-dialog footer{display:flex;gap:8px;justify-content:flex-end;padding:12px 18px;border-top:1px solid var(--tms-line);background:#e1edf3}.tms-view-dialog footer>button:first-child{margin-right:auto}
.tms-floating-panel:popover-open{position:fixed!important;inset:auto;display:block;margin:0;box-sizing:border-box;overflow:auto;z-index:10000;padding:12px;border:1px solid #8bb0be;border-radius:6px;background:#fff;color:var(--tms-ink);box-shadow:0 8px 28px #143d4c26}
.tms-floating-panel:not(:popover-open){display:none!important}
.desk-shell .grid-row-menu-panel{margin:0;z-index:6000;background:#fff;border:1px solid #8bb0be;border-radius:6px;box-shadow:0 8px 28px #143d4c26;font-size:var(--tms-text-ui)}
.desk-shell .grid-row-menu-panel button{padding:8px 10px;min-height:32px;text-align:left}
.desk-shell .order-schedule-cell button{display:block;text-align:left;background:none;border:0;color:var(--tms-brand-dark);font-weight:600;padding:2px 0;min-height:22px}
.desk-shell .order-schedule-cell .order-schedule-info{font-size:var(--tms-text-meta);font-weight:400;line-height:1.3}
.desk-shell .ops-unload{display:inline;color:#4d462b;background:none;border:0;padding:0;font-weight:600;white-space:normal}
.desk-shell .ops-unload b{font-size:var(--tms-text)!important}
.modal-backdrop{background:#12324766}.modal{border:1px solid #b7ccd5;border-radius:9px;box-shadow:0 16px 60px #163b4933;color:var(--tms-ink)}
.modal :is(input,select,textarea){border-color:var(--tms-line);border-radius:5px;font-size:var(--tms-text-ui,13px);min-height:34px}.modal h2{font-size:21px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1100px){.desk-shell .content{padding:8px 10px}.desk-shell .desk-topbar.topbar{padding:0 10px;gap:8px}.desk-shell .workspace-tabs{gap:8px}.desk-shell .programme-toolbar{gap:5px}.tms-table-tools{gap:5px}.tms-view-summary{font-size:var(--tms-text-meta)}}
@media(max-width:650px){.tms-view-column{grid-template-columns:minmax(125px,1fr) 62px 55px 68px;gap:5px}.tms-view-column input[type=number]{width:60px}.tms-view-columns{padding:0 10px}.tms-view-dialog footer{flex-wrap:wrap}.tms-table-tools>div{flex-wrap:wrap}.desk-shell .desk-topbar.topbar{height:auto;min-height:44px}.desk-shell:has(.tms-table) .table-wrap:has(>.tms-table){min-height:200px}.desk-shell .orders-workspace:has(.tms-table) .order-toolbar{grid-template-columns:1fr 1fr}}
@media print{.tms-table-tools,.tms-table-footer,.tms-resize{display:none!important}.desk-shell table.tms-table :is(th,td).tms-pinned{position:static!important}.desk-shell .table-wrap:has(>.tms-table){overflow:visible!important}}

/* Shared readable data surfaces for the remaining workspaces and roles. */
@media screen{
 :is(.desk-shell,.program-carrier-portal,.order-workbench,.modal,.customer-workspace,.driver-portal) small{font-size:var(--tms-text-meta);line-height:1.4}
 :is(.desk-shell,.program-carrier-portal,.order-workbench,.modal,.customer-workspace,.transport-basic-dialog){font-family:'Segoe UI',Arial,sans-serif;font-size:var(--tms-text);line-height:1.4}
 :is(.desk-shell,.program-carrier-portal,.order-workbench,.modal,.customer-workspace,.transport-basic-dialog) :is(input,select,textarea){font-family:inherit}
 :is(.desk-shell,.program-carrier-portal,.order-workbench,.modal,.customer-workspace,.transport-basic-dialog) table:not(.tms-table)>:is(thead,tbody,tfoot)>tr>td{font-size:var(--tms-text)!important;line-height:1.4;border-bottom:1px solid var(--tms-grid);border-right:1px solid var(--tms-grid-light)}
 :is(.desk-shell,.program-carrier-portal,.order-workbench,.modal,.customer-workspace,.transport-basic-dialog) table:not(.tms-table)>:is(thead,tbody,tfoot)>tr>th{font-size:var(--tms-text-ui)!important;line-height:1.3;border-bottom:1px solid var(--tms-grid);border-right:1px solid var(--tms-grid-light)}
 :is(.desk-shell,.program-carrier-portal,.order-workbench,.modal,.customer-workspace,.transport-basic-dialog) table:not(.tms-table)>:is(thead,tbody,tfoot)>tr>td :is(b,strong){font-size:inherit}
 :is(.desk-shell,.program-carrier-portal,.order-workbench,.modal,.customer-workspace,.transport-basic-dialog) table:not(.tms-table) td small{font-size:var(--tms-text-meta)!important;line-height:1.4}
 .desk-shell table:not(.tms-table).grid-compact>tbody>tr>td{font-size:var(--tms-text)!important}
 .desk-shell :is(.table-wrap,.catalog-result,.transport-grid-scroll){max-width:100%;min-width:0}
 .program-carrier-portal .transport-desk-table{border:1px solid var(--tms-grid)}
 .program-carrier-portal .transport-desk-table td :is(button,input,select){font-size:var(--tms-text-ui)}
 .program-view-table{font-size:var(--tms-text)}
 .program-view-table td{border-bottom:1px solid var(--tms-grid);border-right:1px solid var(--tms-grid-light)}
 .program-view-table th{font-size:var(--tms-text-ui);border-right:1px solid #6b8a99}
 :is(.driver-materials,.drawer-materials)>div{border-bottom:1px solid var(--tms-grid-light)}
 .driver-order-details,.driver-stop,.driver-trip-facts>div{border-color:var(--tms-grid-light)}
}
