*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.flex{display:flex}.table{display:table}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}@import url("https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap");:root{color-scheme:light;--red:#f71924;--red-soft:#fff0f1;--red-mid:#ff6b70;--ink:#111827;--muted:#6b7280;--line:#e9edf3;--panel:#fff;--page:#f8fafc;--dark:#252b34;--green:#1a9b50;--orange:#f28a1a}*{box-sizing:border-box}body,html{min-height:100%}body{margin:0;background:var(--page);color:var(--ink);font-family:Source Sans Pro,sans-serif}.loading-screen{display:grid;place-items:center;min-height:100vh;color:#374151;font-size:16px;font-weight:700}.login-shell{height:100vh;display:grid;grid-template-columns:clamp(500px,32vw,600px) minmax(0,1fr);background:#fff;overflow:hidden}.login-panel{position:relative;z-index:1;display:grid;align-content:center;gap:10px;min-width:0;padding:32px clamp(48px,4.4vw,72px);width:100%;background:linear-gradient(90deg,#fff 0 86%,hsla(0,0%,100%,.94) 100%);box-shadow:24px 0 56px rgba(17,24,39,.08)}.login-logo{padding-left:0}.login-panel h1{margin:4px 0 0;font-size:32px;line-height:1.1}.login-panel p{margin:0 0 6px;color:#6b7280;font-size:18px}.login-form{display:grid;gap:10px}.login-form label{display:grid;gap:6px;font-size:14px;font-weight:700}.login-form input:not([type]),.login-form input[type=password],.login-form input[type=text]{height:44px;border:1px solid #d6dde7;border-radius:10px;padding:0 14px;font-size:15px}.remember-row{display:inline-flex!important;align-items:center;gap:10px;font-size:13px!important;color:#4b5563;grid-template-columns:auto auto 1fr}.forgot-link{justify-self:end;color:var(--red);font-size:13px;font-weight:700}.login-submit{height:44px;border-radius:10px;background:var(--red);color:#fff;font-size:17px;font-weight:800}.login-error{color:#b91c1c;font-size:13px;font-weight:700}.login-hint{color:#6b7280;font-size:12px}.login-copyright{color:#9ca3af;font-size:12px}.or-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;color:#9ca3af}.or-row span{height:1px;background:#e5e7eb}.google-submit{height:44px;border-radius:10px;border:1px solid #d6dde7;background:#fff;color:#1f2937;font-size:16px;font-weight:700}.login-visual{position:relative;min-width:0;background:url(/login-logistics.png) 50%/cover no-repeat}.login-visual:before{position:absolute;inset:0;background:linear-gradient(90deg,rgba(17,24,39,.08),transparent 18%),linear-gradient(0deg,rgba(17,24,39,.16),transparent 34%);content:"";pointer-events:none}button{border:0;background:transparent;color:inherit;cursor:pointer;font:inherit}.dashboard-shell{display:grid;grid-template-columns:304px minmax(0,1fr);height:100vh;overflow:hidden;background:linear-gradient(90deg,hsla(0,0%,100%,.98),rgba(248,250,252,.88)),var(--page)}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:16px;border-right:1px solid var(--line);background:hsla(0,0%,100%,.88);padding:20px 16px 14px}.logo-lockup{display:flex;align-items:center;gap:12px;padding:0 14px 4px}.logo-shield,.mini-logo{display:grid;place-items:center;flex:0 0 auto;width:56px;height:56px;border:4px solid var(--red);border-left-color:var(--dark);border-radius:16px 16px 22px 22px;color:var(--dark);font-size:22px;font-weight:900;box-shadow:inset 0 0 0 4px #fff}.brand-line{display:flex;gap:7px;align-items:baseline;font-size:23px;font-style:italic;font-weight:800;letter-spacing:0;text-transform:uppercase}.brand-line span{color:var(--dark)}.brand-line strong{color:var(--red)}.brand-sub{margin-top:4px;color:var(--ink);font-size:11px;font-weight:800;letter-spacing:2.8px;text-transform:uppercase}.nav-groups{display:flex;flex:1;flex-direction:column;gap:10px;min-height:0}.nav-group{display:grid;gap:4px;border-bottom:1px solid var(--line);padding:0 0 8px}.nav-group:last-child{border-bottom:0}.nav-title{padding:0 16px 2px;color:#4b5563;font-size:12px;letter-spacing:.7px;text-transform:uppercase}.nav-item{display:grid;grid-template-columns:34px 1fr;align-items:center;height:36px;border-radius:12px;padding:0 16px;color:#1f2937;font-size:14px;text-align:left}.nav-item.active{background:linear-gradient(90deg,#ffe8e9,#fff3f4);color:var(--red);font-weight:700}.icon{display:inline-grid;place-items:center;width:23px;height:23px;border:1.8px solid;border-radius:7px;font-size:11px;font-weight:900;line-height:1}.icon-bell,.icon-warn{border-radius:50%}.icon-route,.icon-truck{border-radius:6px 9px 9px 6px}.profile-card{display:grid;grid-template-columns:48px minmax(0,1fr) 16px;align-items:center;gap:12px;min-height:70px;border:1px solid var(--line);border-radius:16px;padding:10px 12px;background:#fff;box-shadow:0 12px 28px rgba(31,41,55,.06)}.mini-logo{width:48px;height:48px;border-width:3px;border-radius:14px 14px 19px 19px;font-size:18px}.profile-text{display:grid;gap:4px}.date-card strong,.profile-text strong,.user-pill strong{font-size:14px}.date-card span,.profile-text span,.user-pill span{color:var(--muted);font-size:12px}.profile-text small{color:var(--green);font-size:12px}.chevron{color:#374151}.workspace{height:100vh;min-width:0;overflow:hidden;padding:0 24px 12px}.topbar{display:flex;align-items:center;justify-content:space-between;min-height:74px;border-bottom:1px solid var(--line);padding:8px 16px 8px 14px}.topbar h1{margin:0;color:#111827;font-size:20px;font-weight:800;letter-spacing:0;text-transform:uppercase}.topbar p{margin:5px 0 0;color:var(--muted);font-size:13px}.top-actions{display:flex;align-items:center;gap:24px}.date-card,.user-pill{display:flex;align-items:center;gap:14px;height:48px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:0 18px;box-shadow:0 12px 30px rgba(31,41,55,.06)}.date-card{min-width:212px}.date-card>div,.user-pill>div:not(.avatar){display:grid;gap:5px}.bell-button{position:relative;display:grid;place-items:center;width:42px;height:42px;color:#1f2937}.bell-button span{position:absolute;right:0;top:0;min-width:19px;height:19px;border-radius:99px;background:var(--red);color:#fff;font-size:11px;font-weight:800;line-height:19px}.avatar{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#eef2f7;color:var(--dark);font-size:13px;font-weight:900}.dashboard-grid{display:grid;grid-template-columns:1.03fr 1.12fr 1.28fr;grid-template-rows:92px minmax(0,1fr) minmax(0,1.08fr) minmax(0,.95fr);gap:10px;height:calc(100vh - 90px);max-width:1600px;margin:8px auto 0}.panel{min-width:0;min-height:0;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--panel);box-shadow:0 14px 34px rgba(31,41,55,.07)}.section-title{margin:0;color:#111827;font-size:14px;font-weight:800;letter-spacing:.4px;text-transform:uppercase}.kpi-row{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.kpi-card{display:grid;grid-template-columns:72px 1fr;align-items:center;padding:12px 18px}.kpi-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--red-soft);color:var(--red)}.kpi-card>div:last-child{display:grid;gap:6px}.kpi-label{color:#111827;font-size:13px;font-weight:800;letter-spacing:.35px;text-transform:uppercase}.kpi-card strong{color:#050505;font-size:26px;font-weight:800;line-height:1}.kpi-card small{color:var(--green);font-size:12px}.kpi-card small.down{color:var(--red)}.kpi-card small span{margin-left:5px;color:var(--muted)}.status-panel{grid-column:1;grid-row:2;padding:16px 20px}.donut-wrap{display:grid;grid-template-columns:190px 1fr;align-items:center;gap:18px;height:calc(100% - 22px)}.donut,.priority-donut{display:grid;place-items:center;width:162px;height:162px;border-radius:50%;background:conic-gradient(var(--dark) 0 59%,var(--red) 59% 89%,#cfd3d9 89% 96%,#c70e18 96% 100%)}.donut>div{display:grid;place-items:center;width:94px;height:94px;border-radius:50%;background:#fff}.donut strong{font-size:32px;line-height:1}.donut span{margin-top:-14px;color:#374151;font-size:16px}.legend{display:grid;gap:16px}.legend-row{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:12px;color:#1f2937;font-size:14px}.legend-row strong{font-weight:600}.dot{width:10px;height:10px;border-radius:50%;background:var(--red)}.dot.dark{background:var(--dark)}.dot.gray{background:#aab0b8}.dot.deep{background:#c70e18}.dot.orange{background:var(--orange)}.map-panel{grid-column:2;grid-row:2;padding:16px 20px}.map-canvas{position:relative;height:calc(100% - 28px);margin-top:12px;overflow:hidden;border-radius:10px;background:#f3f5f7}.map-grid{position:absolute;inset:0;background:linear-gradient(30deg,transparent 0 46%,rgba(206,212,220,.45) 47% 48%,transparent 49%),linear-gradient(120deg,transparent 0 46%,rgba(206,212,220,.35) 47% 48%,transparent 49%),linear-gradient(0deg,hsla(0,0%,100%,.72),hsla(0,0%,100%,.72));background-size:52px 52px,64px 64px,auto}.route-layer{position:absolute;inset:16px 32px 8px 26px;width:calc(100% - 58px);height:calc(100% - 24px);color:var(--red)}.route{fill:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}.route-dark{stroke:#222832}.route-red{stroke:var(--red)}.route-layer circle{fill:#fff;stroke:var(--red);stroke-width:4}.city,.map-controls,.map-marker{position:absolute}.city{color:#161b22;font-size:13px;font-weight:800}.city-a{left:14%;top:8%}.city-b{left:52%;top:20%}.city-c{right:16%;top:32%}.city-d{left:12%;bottom:18%}.city-e{right:19%;bottom:8%}.map-marker{display:grid;place-items:center;width:36px;height:36px;border-radius:50% 50% 50% 8px;background:var(--red);color:#fff;transform:rotate(-45deg)}.map-marker .icon{transform:rotate(45deg);width:18px;height:18px;border-width:1px;font-size:8px}.map-marker.dark{background:var(--dark)}.marker-a{left:36%;top:9%}.marker-b{left:52%;bottom:24%}.marker-c{left:8%;bottom:29%}.marker-d{right:11%;bottom:27%}.live-tracking-marker{position:absolute;z-index:3;display:grid;place-items:center;min-width:30px;min-height:30px;color:var(--red);transform:translate(-50%,-50%)}.live-tracking-marker .icon{width:28px;height:28px;border:0;border-radius:50%;background:var(--red);color:#fff;box-shadow:0 8px 18px rgba(247,25,36,.28)}.live-tracking-marker small{position:absolute;top:30px;white-space:nowrap;border-radius:99px;background:hsla(0,0%,100%,.94);padding:3px 7px;color:#111827;font-size:10px;font-weight:800;box-shadow:0 8px 16px rgba(31,41,55,.12)}.map-controls{right:10px;top:12px;display:grid;gap:10px}.map-controls button{display:grid;place-items:center;width:38px;height:38px;border-radius:8px;background:#fff;color:#1f2937;font-size:23px;box-shadow:0 8px 20px rgba(31,41,55,.12)}.alerts-panel{grid-column:3;grid-row:2;padding:16px 20px}.panel-head{display:flex;align-items:center;justify-content:space-between}.panel-head button,.text-link{color:var(--red);font-size:13px;font-weight:700}.alert-list{display:grid;gap:11px;margin-top:14px;max-height:calc(100% - 34px);overflow-y:auto;padding-right:6px}.alert-item{display:grid;grid-template-columns:34px minmax(0,1fr) 46px;align-items:start;gap:10px}.alert-item .icon{width:28px;height:28px;border:0;border-radius:50%;background:var(--red);color:#fff}.alert-item:nth-child(2) .icon{background:var(--orange)}.alert-item:nth-child(3) .icon{background:var(--dark)}.alert-item div{display:grid;gap:5px}.alert-item strong{font-size:13px}.alert-item span{color:#374151;font-size:12px;line-height:1.25}.alert-item time{color:#111827;font-size:12px;text-align:right}.shipments-panel{grid-column:1/-1;grid-row:3;display:flex;flex-direction:column;padding:15px 20px 12px}.table-scroll{flex:1;min-height:0;margin-top:10px;overflow-y:auto}.shipments-panel table{width:100%;margin-top:0;border-collapse:collapse;table-layout:fixed;font-size:13px}.shipments-panel th{position:sticky;top:0;z-index:1;height:30px;background:#f1f3f6;color:#111827;font-size:12px;font-weight:800;text-align:left}.shipments-panel td,.shipments-panel th{overflow:hidden;padding:0 8px;text-overflow:ellipsis;white-space:nowrap}.shipments-panel th:first-child{border-radius:8px 0 0 8px}.shipments-panel th:last-child{border-radius:0 8px 8px 0}.shipments-panel td{height:29px;border-bottom:1px solid #eef1f5;color:#1f2937}.status-pill{display:inline-grid;place-items:center;min-width:78px;height:24px;border-radius:99px;background:var(--dark);color:#fff;font-size:11px;font-weight:800}.status-pill.delayed{background:#ff8c93}.status-pill.completed{background:#d8f2de;color:#155b2f}.progress-cell{display:grid;grid-template-columns:40px 1fr;align-items:center;gap:8px}.metric-row div,.progress-cell div{height:7px;overflow:hidden;border-radius:99px;background:#e5e9ef}.metric-row i,.progress-cell i{display:block;height:100%;border-radius:inherit;background:var(--red)}.shipments-panel tbody tr:last-child td{border-bottom:0}.empty-row td{height:86px;color:#6b7280;font-weight:700;text-align:center;white-space:normal}.shipments-panel .text-link{align-self:flex-end;flex:0 0 auto;float:right;margin-top:7px}.activity-panel,.performance-panel,.priority-panel{grid-row:4;display:flex;flex-direction:column;padding:14px 20px}.performance-panel{grid-column:1}.priority-panel{grid-column:2}.activity-panel{grid-column:3}.metric-row{display:grid;grid-template-columns:150px 86px minmax(0,1fr) 62px;align-items:center;gap:12px;margin-top:9px}.metric-row span{color:#374151;font-size:13px}.metric-row strong{font-size:18px}.metric-row small{font-size:12px;font-weight:800}.up{color:var(--green)}.down{color:var(--red)}.activity-panel .text-link,.performance-panel .text-link,.priority-panel .text-link{flex:0 0 auto;margin-top:10px}.priority-content{display:grid;grid-template-columns:130px 1fr;align-items:center;gap:16px;flex:1;min-height:0;margin-top:10px;border-bottom:1px solid var(--line);padding-bottom:10px}.priority-donut{width:110px;height:110px;background:conic-gradient(var(--dark) 0 67%,var(--red) 67% 89%,var(--orange) 89% 100%)}.priority-donut:after{width:60px;height:60px;border-radius:50%;background:#fff;content:""}.legend.compact{gap:12px}.activity-list{display:grid;gap:10px;flex:1;min-height:0;margin-top:12px;overflow-y:auto;padding-bottom:10px;border-bottom:1px solid var(--line)}.activity-item{display:grid;grid-template-columns:24px minmax(0,1fr) 44px;align-items:center;gap:10px;font-size:13px}.activity-item .icon{width:20px;height:20px;border:0;border-radius:50%;background:var(--red);color:#fff;font-size:9px}.activity-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-item time{color:#4b5563;font-size:12px;text-align:right}.module-view{height:calc(100vh - 90px);max-width:1600px;margin:8px auto 0;padding-bottom:14px}.quick-start-bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.quick-start-bar span{height:30px;border:1px solid var(--line);border-radius:999px;background:#fff;padding:0 12px;color:#6b7280;font-size:12px;font-weight:700;display:inline-flex;align-items:center}.quick-start-bar span.active{border-color:#ffd1d4;background:#fff5f6;color:#b91c1c}.module-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:12px;height:calc(100% - 14px)}.module-layout.module-layout-full{grid-template-columns:minmax(0,1fr)}.module-main,.module-side{min-height:0;padding:20px}.module-main{display:grid;grid-template-rows:auto minmax(0,1fr) auto}.module-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.module-action{height:36px;border-radius:8px;background:var(--red);color:#fff;padding:0 14px;font-size:13px;font-weight:800}.module-action.wide{width:100%;margin-top:16px}.module-table{height:calc(100% - 52px)}.module-table table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:13px}.module-main .module-table col.action-col{width:270px}.module-main .module-table col.shipment-col{width:210px}.module-table td,.module-table th{height:38px;border-bottom:1px solid var(--line);padding:0 10px;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.module-table td:last-child,.module-table th:last-child{padding-right:18px}.module-table td .module-action{max-width:250px;height:28px;border-radius:14px;padding:0 12px;font-size:12px;font-weight:800;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items:center;justify-content:center}.module-table th{position:sticky;top:0;z-index:1;background:#f1f3f6;font-size:12px}.clickable-row{cursor:pointer}.clickable-row:hover td{background:#fff5f6}.flow-list,.resource-list,.settings-grid{display:grid;gap:12px;margin-top:18px}.flow-list span,.resource-list span,.settings-grid button{display:flex;align-items:center;justify-content:space-between;min-height:44px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:0 12px;color:#1f2937;font-size:13px;text-align:left}.resource-list b{color:var(--red);font-size:12px}.shipment-detail{display:grid;gap:14px;height:calc(100% - 34px);margin-top:14px;overflow-y:auto;padding-right:4px}.detail-empty{display:grid;place-items:center;min-height:180px;margin-top:14px;border:1px dashed var(--line);border-radius:10px;color:#6b7280;font-size:13px;font-weight:700;text-align:center}.detail-hero{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:12px}.detail-hero>strong{font-size:18px}.detail-fields{display:grid;gap:8px}.detail-fields p,.leg-row,.pod-summary{display:grid;gap:5px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:10px 12px}.leg-operation{gap:10px}.leg-summary{display:grid;gap:5px}.leg-summary small{color:#4b5563;font-size:12px;font-weight:700}.validation-warning{color:#b91c1c;font-size:12px;font-weight:700}.milestone-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.milestone-control select{min-width:0;height:36px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 10px;color:#111827;font-size:12px;font-weight:700}.milestone-note{display:grid;gap:7px;color:#374151;font-size:12px;font-weight:800}.milestone-note textarea{min-height:72px;resize:vertical;border:1px solid var(--line);border-radius:9px;padding:10px;color:#111827;font:inherit;font-size:12px}.reference-grid{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line);padding-top:10px}.reference-grid label{display:grid;gap:6px;color:#374151;font-size:12px;font-weight:800}.reference-grid input{height:36px;border:1px solid var(--line);border-radius:8px;padding:0 10px;color:#111827;font-size:12px}.exception-form,.reality-box{display:grid;gap:10px}.reality-box{border:1px solid var(--line);border-radius:9px;background:#fff;padding:10px 12px}.reality-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:8px;align-items:end}.exception-form{border-top:1px solid var(--line);padding-top:10px}.container-form,.exception-form{grid-template-columns:repeat(2,minmax(0,1fr))}.container-form{display:grid;gap:12px 14px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:12px}.container-field{display:grid;gap:6px;min-width:0;color:#374151;font-size:12px;font-weight:800}.container-field-wide{grid-column:1/-1}.container-field input,.container-field select{width:100%;min-width:0;height:36px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 10px;color:#111827;font:inherit;font-size:12px}.container-submit{grid-column:1/-1;justify-self:end;min-width:180px}.reality-box label{display:grid;gap:6px;color:#374151;font-size:12px;font-weight:800}.reality-box input,.reality-box select,.reality-box textarea{min-width:0;width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;color:#111827;font:inherit;font-size:12px}.reality-box input,.reality-box select{height:36px;padding:0 10px}.reality-box textarea{min-height:74px;resize:vertical;padding:10px}.detail-fields span,.leg-row span,.muted-line,.pod-summary span,.timeline-item span{color:#6b7280;font-size:12px}.detail-fields strong,.leg-row strong,.pod-summary strong{color:#111827;font-size:13px}.detail-block{display:grid;gap:8px}.detail-block h3{margin:0;color:#111827;font-size:13px;letter-spacing:.3px;text-transform:uppercase}.pod-summary p{margin:0;color:#374151;font-size:12px}.pod-summary img{width:100%;max-height:160px;-o-object-fit:cover;object-fit:cover;border-radius:8px}.timeline-list{display:grid;gap:10px;border-left:2px solid #ffe0e3;margin-left:8px;padding-left:12px}.timeline-item{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:3px}.timeline-item i{position:absolute;left:-19px;top:2px;width:10px;height:10px;border:2px solid #fff;border-radius:50%;background:var(--red);box-shadow:0 0 0 2px #ffe0e3}.timeline-item strong{font-size:13px}.assignment-grid,.report-grid,.resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}.assignment-card,.report-grid div,.resource-grid div{display:grid;gap:8px;min-height:118px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:15px}.assignment-card strong,.report-grid strong,.resource-grid strong{font-size:20px}.assignment-card p,.assignment-card span,.report-grid span,.resource-grid span{color:#4b5563;font-size:13px}.assignment-card small{width:-moz-fit-content;width:fit-content;border-radius:99px;background:#eef2f7;padding:5px 9px;color:#111827;font-weight:800}.tracking-view .module-main{display:grid;grid-template-rows:auto minmax(0,1fr)}.large-map{height:auto;margin-top:14px}.module-activity,.module-alerts{max-height:calc(100% - 34px)}.report-grid div{min-height:140px}.report-grid strong{font-size:34px}.modal-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;background:rgba(17,24,39,.32);padding:24px}.shipment-modal{width:min(820px,100%);max-height:calc(100vh - 80px);overflow-y:auto;border:1px solid var(--line);border-radius:14px;background:#fff;padding:22px;box-shadow:0 30px 90px rgba(17,24,39,.24)}.detail-drawer-backdrop{position:fixed;inset:0;z-index:30;background:rgba(17,24,39,.18)}.detail-drawer{position:absolute;top:0;right:0;height:100vh;width:clamp(860px,48vw,980px);max-width:96vw;background:#f8fafc;border-left:1px solid var(--line);box-shadow:-22px 0 48px rgba(17,24,39,.18);padding:0;animation:drawerIn .18s ease-out;overflow:hidden;font-size:13px;color:#6b6860;font-weight:400;font-style:normal;text-align:left;white-space:normal}.detail-drawer-titlebar{display:flex;align-items:center;justify-content:space-between;height:58px;border-bottom:1px solid #e5e7eb;background:#fff;padding:0 18px}.detail-drawer-titlebar strong{font-size:19px;letter-spacing:0;color:#1f2937}.detail-drawer-titlebar span{color:#6b7280;font-size:13px;font-weight:700}.detail-drawer-tabs{display:flex;gap:0;border-bottom:1px solid #e5e7eb;background:#fff;padding:0 10px}.detail-drawer-tabs button{height:42px;border-radius:0;background:transparent;color:#6b6860;font-size:14px;padding:0 12px;border-bottom:2px solid transparent}.detail-drawer-tabs button.active{color:#111827;border-bottom-color:#ef4444;font-weight:700}.detail-drawer .module-head{margin:0;padding:12px 16px;border-bottom:1px solid #e5e7eb;background:#fff}.detail-drawer .section-title{font-size:16px;color:#1f2937}.detail-drawer .module-action{height:32px;font-size:12px;padding:0 12px}.detail-drawer-content{height:calc(100vh - 146px);margin-top:0;padding:12px 16px 16px}.detail-drawer .detail-fields p,.detail-drawer .leg-row,.detail-drawer .pod-summary,.detail-drawer .reality-box{border-radius:8px}.detail-drawer .detail-hero>strong{font-size:20px}.detail-drawer .detail-block h3{font-size:14px}.detail-drawer .timeline-item strong{font-size:13px}.detail-drawer .timeline-item span{font-size:12px}@keyframes drawerIn{0%{transform:translateX(24px);opacity:0}to{transform:translateX(0);opacity:1}}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.modal-head h2{margin:0;font-size:20px}.modal-head p{margin:5px 0 0;color:#6b7280;font-size:13px}.modal-head button{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:#f3f4f6;font-weight:900}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid label{display:grid;gap:7px;color:#374151;font-size:13px;font-weight:700}.form-grid input,.form-grid select{width:100%;height:42px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 11px;color:#111827}.leg-builder{display:grid;gap:12px;border:1px solid var(--line);border-radius:10px;background:#fafbfc;padding:12px}.leg-builder-head,.leg-builder-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.leg-builder-head strong,.leg-builder-title strong{color:#111827;font-size:13px}.leg-builder-head button,.leg-builder-title button{height:30px;border-radius:8px;background:#fff;border:1px solid var(--line);padding:0 10px;color:var(--red);font-size:12px;font-weight:800}.leg-builder-title button:disabled{color:#9ca3af;cursor:not-allowed}.leg-builder-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:12px}.leg-builder-title,.leg-note,.wide-field{grid-column:1/-1}.form-message{margin:14px 0 0;color:var(--red);font-size:13px;font-weight:700}.form-hint{margin:10px 0 0;color:#6b7280;font-size:12px;font-weight:600}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.modal-actions>button:first-child{height:36px;border-radius:8px;background:#f3f4f6;padding:0 14px;font-size:13px;font-weight:800}.module-action:disabled{cursor:not-allowed;opacity:.62}.table-footer-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;height:48px;border-top:1px solid #ebebeb;background:#fbfbfb;z-index:3;position:sticky;bottom:0;flex:0 0 auto;padding:8px;border-bottom-right-radius:4px;border-bottom-left-radius:4px;color:#6b7280;font-size:13px;font-weight:700}.table-footer-actions{display:flex;align-items:center;gap:8px}.table-footer-actions button{width:28px;height:28px;border:1px solid var(--line);border-radius:7px;background:#fff;color:#374151;font-size:13px;font-weight:800}.table-footer-actions button:disabled{cursor:not-allowed;opacity:.5}.table-footer-actions label{display:inline-flex;align-items:center;gap:7px}.table-footer-actions select{height:30px;border:1px solid var(--line);border-radius:8px;background:#fff;padding:0 8px;color:#111827;font-size:12px;font-weight:700}@media (max-width:1500px){.dashboard-shell{grid-template-columns:260px minmax(0,1fr)}.dashboard-grid{grid-template-columns:1fr 1.05fr 1.2fr}.kpi-card{grid-template-columns:58px 1fr;padding:18px}.kpi-card strong{font-size:28px}}@media (max-width:980px){.login-shell{grid-template-columns:1fr;height:auto;min-height:100vh}.login-visual{min-height:35vh;order:-1;background-position:center 42%}.login-panel{padding:22px 18px 28px;width:100%;box-shadow:none}.login-panel h1{font-size:34px}.login-panel p{font-size:18px}.dashboard-shell{display:block;height:auto;min-height:100vh;overflow:auto}.sidebar{position:static;height:auto;padding:14px 10px;border-right:0;border-bottom:1px solid var(--line)}.nav-groups{gap:8px;overflow:auto}.nav-group{border-bottom:0;padding:0}.nav-title{display:none}.nav-item{height:34px;font-size:13px}.profile-card{display:none}.workspace{height:auto;overflow:visible;padding:0 10px 12px}.topbar{min-height:62px;padding:8px 4px;gap:8px;align-items:start;flex-direction:column}.topbar h1{font-size:18px}.top-actions{width:100%;justify-content:space-between;gap:8px;flex-wrap:wrap}.dashboard-grid,.shipment-board-grid{grid-template-columns:1fr!important}.container-form,.exception-form,.reality-row,.reference-grid{grid-template-columns:1fr}.container-submit{justify-self:stretch}.detail-drawer{width:100vw;max-width:100vw}.table-scroll{overflow-x:auto}.data-table{min-width:920px}}