@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800&display=swap");:root{--text-primary:#102a2c;--text-secondary:#4d6264;--text-muted:#5d7072;--text-disabled:#9aa8a8;--brand-green:#0f6b4f;--brand-green-dark:#08523c;--border-subtle:#dde5e2;--surface-muted:#f4f7f5;--focus-ring:#1a8b67;--surface-white:#ffffff;--surface-hover:#eef5f0;--surface-success:#e8f3ec;--surface-warning:#fff4e3;--surface-info:#eaf2fb;--surface-danger:#fceeee;--text-success:#0b654b;--text-warning:#8a5a18;--text-info:#315f91;--text-danger:#9a3f43;--shadow-soft:0 5px 16px rgba(16,42,44,0.08)}*{box-sizing:border-box}body,html{height:100%;margin:0;min-height:100%;background:var(--surface-muted);color:var(--text-primary);font-family:Poppins,Arial,sans-serif}body:has(.app-shell),html:has(.app-shell){overflow-x:hidden}body{font-size:14px;line-height:1.45}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,input:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.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}.app-shell{width:100%;max-width:100vw;min-height:100vh}.app-shell,.sidebar{height:100vh;display:flex;overflow:hidden}.sidebar{width:248px;flex:0 0 248px;border-right:1px solid var(--border-subtle);flex-direction:column;padding:0 14px 15px;z-index:10}.sidebar,.sidebar-brand{background:var(--surface-white)}.sidebar-brand{min-height:116px;display:flex;align-items:center;justify-content:center;margin:0 -14px 14px;padding:12px 14px 10px;border-bottom:1px solid var(--border-subtle)}.sidebar-brand .brand-logo{width:100px;max-height:90px}.brand-lockup{display:flex;align-items:flex-start;padding:0 9px 22px}.brand-logo{width:min(140px,100%);max-height:105px;height:auto;object-fit:contain;object-position:center;image-rendering:auto}.brand-logo,.mini-avatar,.profile-copy span,.profile-copy strong{display:block}.mini-avatar{width:29px;height:29px;display:grid;place-items:center;color:var(--brand-green);background:var(--surface-success);border-radius:8px;font-size:12px;font-weight:700;flex:0 0 auto}.profile-copy span{font-size:12px;color:var(--text-muted);margin-top:2px}.nav-area{flex:1 1;min-height:0;overflow-y:auto;scrollbar-gutter:stable;padding-right:2px}.main-shell,.modal,.nav-area,.table-scroll{scrollbar-width:thin;scrollbar-color:#a8b8b1 transparent}.main-shell::-webkit-scrollbar,.modal::-webkit-scrollbar,.nav-area::-webkit-scrollbar,.table-scroll::-webkit-scrollbar{width:8px;height:8px}.main-shell::-webkit-scrollbar-track,.modal::-webkit-scrollbar-track,.nav-area::-webkit-scrollbar-track,.table-scroll::-webkit-scrollbar-track{background:transparent}.main-shell::-webkit-scrollbar-thumb,.modal::-webkit-scrollbar-thumb,.nav-area::-webkit-scrollbar-thumb,.table-scroll::-webkit-scrollbar-thumb{background:#a8b8b1;border:2px solid transparent;border-radius:999px;background-clip:padding-box}.main-shell::-webkit-scrollbar-thumb:hover,.modal::-webkit-scrollbar-thumb:hover,.nav-area::-webkit-scrollbar-thumb:hover,.table-scroll::-webkit-scrollbar-thumb:hover{background:var(--brand-green);border:2px solid transparent;background-clip:padding-box}.main-shell::-webkit-scrollbar-button,.modal::-webkit-scrollbar-button,.nav-area::-webkit-scrollbar-button,.table-scroll::-webkit-scrollbar-button{display:none;width:0;height:0}.nav-label{padding:0 13px 9px;color:var(--text-muted);font-size:12px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase}.admin-label{margin-top:25px}.nav-item{width:100%;min-height:43px;border:0;background:transparent;display:flex;align-items:center;gap:12px;padding:9px 13px;color:var(--text-secondary);border-radius:9px;font-size:14px;font-weight:600;text-align:left;margin:2px 0}.nav-item svg{color:var(--text-muted);flex:0 0 auto}.nav-item:hover{background:var(--surface-hover);color:var(--brand-green-dark)}.nav-item.active svg,.nav-item:hover svg{color:var(--brand-green)}.nav-item.active{color:var(--brand-green-dark);background:var(--surface-success)}.nav-item.active:before{content:"";width:3px;height:22px;background:var(--brand-green);border-radius:3px;margin-left:-13px;margin-right:10px}.nav-count{margin-left:auto;color:var(--text-warning);background:var(--surface-warning);padding:2px 7px;border-radius:12px;font-size:12px;font-weight:700}.sidebar-bottom{margin-top:20px}.profile{display:flex;align-items:center;gap:9px;border-top:1px solid var(--border-subtle);margin-top:16px;padding:16px 7px 0}.profile-avatar{width:32px;height:32px;display:grid;place-items:center;border-radius:50%;color:var(--surface-white);background:var(--brand-green);font-size:12px;font-weight:700;flex:0 0 auto}.profile-avatar.small{width:32px;height:32px}.profile-copy{min-width:0}.profile-copy strong{font-size:13px}.profile>svg{color:var(--text-muted);margin-left:auto}.main-shell{flex:1 1;min-width:0;height:100vh;overflow-x:hidden;overflow-y:auto}.topbar{min-height:70px;background:var(--surface-white);border-bottom:1px solid var(--border-subtle);justify-content:space-between;padding:0 35px}.breadcrumb,.global-search,.top-user,.topbar,.topbar-actions,.topbar-left{display:flex;align-items:center}.breadcrumb{gap:10px;color:var(--text-muted);font-size:13px}.breadcrumb strong{color:var(--text-primary);font-weight:700}.topbar-actions{gap:12px}.icon-button{width:40px;height:40px;border:0;background:transparent;color:var(--text-secondary);display:grid;place-items:center;padding:6px;border-radius:8px}.icon-button:hover{color:var(--brand-green-dark);background:var(--surface-hover)}.topbar-left>.icon-button{display:none}.global-search{width:250px;min-height:40px;gap:8px;background:var(--surface-muted);border:1px solid var(--border-subtle);border-radius:8px;padding:7px 9px;color:var(--text-secondary)}.global-search input{width:100%;outline:none;border:0;color:var(--text-primary);background:transparent;font-size:13px;min-width:0}.shortcut{border:1px solid var(--border-subtle);border-radius:4px;padding:2px 5px;font-size:12px;white-space:nowrap;color:var(--text-muted);background:transparent}button.shortcut{cursor:pointer;font-family:inherit;transition:all .15s ease}button.shortcut:hover{background:var(--surface-hover);color:var(--brand-green-dark);border-color:var(--brand-green)}.top-user-button{border:0;background:transparent}.global-search-wrap,.popover-anchor{position:relative}.header-popover{position:absolute;top:calc(100% + 9px);right:0;z-index:25;background:var(--surface-white);border:1px solid var(--border-subtle);border-radius:12px;box-shadow:0 12px 32px rgba(16,42,44,.14)}.search-popover{width:min(360px,calc(100vw - 34px));padding:7px}.search-result{width:100%;min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;border-radius:8px;background:transparent;color:var(--text-primary);text-align:left;padding:9px 10px}.search-result:hover{background:var(--surface-hover)}.search-result small,.search-result span,.search-result strong{display:block}.search-result strong{font-size:13px}.search-result small{color:var(--text-muted);font-size:12px;margin-top:2px}.search-result>svg{color:var(--brand-green);flex:0 0 auto}.popover-empty{color:var(--text-secondary);font-size:13px;padding:15px 12px}.notification-popover{width:min(390px,calc(100vw - 34px))}.popover-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;padding:17px 17px 13px;border-bottom:1px solid var(--border-subtle)}.popover-heading h2{color:var(--text-primary);font-size:16px;margin:0 0 3px}.popover-heading span{color:var(--text-muted);font-size:12px}.popover-close{width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:7px;background:transparent;color:var(--text-secondary)}.popover-close:hover{background:var(--surface-hover);color:var(--brand-green-dark)}.notification-item{padding:14px 17px;border-bottom:1px solid var(--border-subtle)}.notification-item:last-child{border-bottom:0}.notification-item span,.notification-item strong{display:block}.notification-item strong{color:var(--text-primary);font-size:13px;line-height:1.45}.notification-item span{color:var(--text-muted);font-size:12px;margin-top:3px}.notification-item .text-button{margin-top:4px}.profile-popover{width:220px;padding:8px}.profile-menu-header{display:flex;align-items:center;gap:9px;padding:10px;border-bottom:1px solid var(--border-subtle);margin-bottom:5px}.profile-menu-header span,.profile-menu-header strong{display:block}.profile-menu-header strong{color:var(--text-primary);font-size:13px}.profile-menu-header span{color:var(--text-muted);font-size:12px;margin-top:2px}.profile-popover>button{width:100%;min-height:40px;border:0;border-radius:7px;padding:8px 10px;background:transparent;color:var(--text-secondary);text-align:left;font-size:13px}.profile-popover>button:hover{background:var(--surface-hover);color:var(--brand-green-dark)}.page-content{max-width:1520px;min-width:0;margin:0 auto;padding:38px 44px 65px}.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:30px}.eyebrow{color:var(--brand-green-dark);font-size:12px;font-weight:700;letter-spacing:1.5px;line-height:1.4}.page-header h1{font-size:30px;line-height:1.2;letter-spacing:-.6px;margin:8px 0;color:var(--text-primary)}.page-header p{color:var(--text-secondary);font-size:14px;margin:0;line-height:1.5}.light-button,.primary-button,.quiet-button{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;font-size:14px;font-weight:700;padding:9px 15px;white-space:nowrap;border:1px solid transparent}.primary-button{color:var(--surface-white);background:var(--brand-green);box-shadow:var(--shadow-soft)}.primary-button:hover{background:var(--brand-green-dark)}.primary-button:disabled{color:#d8e6df;background:#6d8d80;box-shadow:none}.quiet-button{color:var(--text-primary);background:var(--surface-white);border-color:var(--border-subtle)}.quiet-button:hover{border-color:var(--brand-green);color:var(--brand-green-dark);background:var(--surface-hover)}.light-button{color:var(--surface-white);background:#174f3e;border-color:#7aa592}.light-button:hover{background:var(--brand-green-dark)}.small-button{min-height:38px;padding:7px 12px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:15px;gap:15px;margin-bottom:22px}.stat-grid.compact{margin-bottom:23px}.stat-card{padding:18px 19px;border:1px solid var(--border-subtle);background:var(--surface-white);border-radius:12px}.stat-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.stat-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:9px}.tone-green{color:var(--brand-green);background:var(--surface-success)}.tone-blue{color:var(--text-info);background:var(--surface-info)}.tone-amber{color:var(--text-warning);background:var(--surface-warning)}.tone-violet{color:#5f4b8b;background:#f1edfa}.trend{display:flex;align-items:center;color:var(--text-success);font-size:12px;font-weight:700}.stat-title{color:var(--text-secondary);font-size:14px}.stat-value{color:var(--text-primary);font-size:26px;font-weight:700;letter-spacing:-.5px;margin:5px 0 4px}.stat-detail{color:var(--text-muted);font-size:12px;line-height:1.5}.dashboard-grid,.lower-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(310px,1fr);grid-gap:20px;gap:20px;margin-bottom:20px}.lower-grid{grid-template-columns:minmax(0,1.55fr) minmax(310px,1fr)}.panel{background:var(--surface-white);border:1px solid var(--border-subtle);border-radius:12px;padding:21px}.panel-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.panel-header h2{color:var(--text-primary);font-size:16px;line-height:1.35;letter-spacing:-.2px;margin:0 0 5px}.panel-header span{color:var(--text-muted);font-size:12px;line-height:1.45}.chart-summary{display:flex;align-items:flex-end;gap:12px;margin:24px 0 3px}.chart-summary span{display:block;color:var(--text-secondary);font-size:13px}.chart-summary strong{color:var(--text-primary);font-size:24px;display:block;margin-top:4px}.summary-delta{color:var(--text-success);font-size:12px;font-weight:700;display:flex;align-items:center;gap:2px;padding-bottom:4px}.chart{display:flex;height:205px;margin-top:10px}.chart-y{display:flex;flex-direction:column;justify-content:space-between;color:var(--text-muted);font-size:12px;padding:6px 8px 31px 0}.chart-plot{position:relative;flex:1 1;padding:6px 0 31px;min-width:0}.grid-line{position:absolute;left:0;right:0;border-top:1px dashed #cbd9d4}.line-one{top:7px}.line-two{top:50%}.line-three{bottom:31px}.bars{gap:10px;position:relative;z-index:1;padding:0 10px}.bar-wrap,.bars{height:100%;display:flex;align-items:flex-end}.bar-wrap{flex:1 1}.bar{width:100%;max-width:14px;margin:auto;background:var(--brand-green);border-radius:4px 4px 2px 2px;min-height:10px}.bar-wrap:nth-child(4n) .bar{background:#55967c}.chart-x{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;color:var(--text-muted);font-size:12px}.health-list{margin:26px 0 21px}.health-row{display:grid;grid-template-columns:1fr 28px 42px;grid-gap:7px;margin:15px 0;font-size:13px}.health-label,.health-row{align-items:center;gap:7px}.health-label{display:flex;color:var(--text-secondary)}.legend-dot,.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:0 0 auto}.health-fill.green,.legend-dot.green,.status-success .status-dot{background:var(--brand-green)}.health-fill.amber,.legend-dot.amber,.status-warning .status-dot{background:#c17b24}.health-fill.blue,.legend-dot.blue,.status-info .status-dot{background:#4b83bb}.health-fill.gray,.legend-dot.gray,.status-neutral .status-dot{background:#879793}.health-row strong{color:var(--text-primary);text-align:right}.health-percent{color:var(--text-muted);text-align:right;font-size:12px}.health-track{height:7px;background:#e7efeb;border-radius:10px;overflow:hidden;grid-column:1/-1}.health-fill{height:100%;border-radius:10px}.text-button{min-height:36px;border:0;background:transparent;padding:5px 0;color:var(--brand-green-dark);font-size:13px;font-weight:700;display:inline-flex;align-items:center;gap:5px}.text-button:hover{color:var(--brand-green);text-decoration:underline;text-underline-offset:3px}.table-panel{padding:0;overflow:hidden}.table-panel .panel-header{padding:21px 21px 0}.table-scroll{min-width:0;max-width:100%;overflow-x:auto}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 21px;color:var(--text-primary);font-size:14px;font-weight:700}.table-toolbar small{color:var(--text-muted);font-weight:500;font-size:12px}.table-toolbar+.table-scroll table{border-top:1px solid var(--border-subtle)}.table-panel table{width:100%;min-width:720px;border-collapse:collapse;text-align:left}.table-panel th{color:var(--text-secondary);font-size:12px;text-transform:uppercase;letter-spacing:.8px;font-weight:700;background:#f8faf9}.table-panel td,.table-panel th{padding:14px 21px;border-bottom:1px solid #e7eeeb;white-space:nowrap}.table-panel tbody tr:hover{background:#fafcfb}.table-panel td{color:var(--text-secondary);font-size:13px}.table-panel td strong{color:var(--text-primary);font-weight:700}.table-panel td small{display:block;color:var(--text-muted);font-size:12px;margin-top:4px}.muted-cell{color:var(--text-muted)!important}.filter-row{display:flex;flex-wrap:wrap;gap:7px;padding:0 21px 15px}.filter-chip{border:1px solid var(--border-subtle);border-radius:999px;background:var(--surface-white);color:var(--text-secondary);padding:7px 11px;min-height:34px;text-transform:capitalize;cursor:pointer}.filter-chip.selected,.filter-chip:hover{border-color:var(--brand-green);color:var(--brand-green-dark);background:var(--surface-success)}.spin{animation:auth-spin .8s linear infinite}.status{display:inline-flex;align-items:center;gap:6px;border-radius:6px;padding:5px 8px;font-size:12px;font-weight:700}.status-success{color:var(--text-success);background:var(--surface-success)}.status-warning{color:var(--text-warning);background:var(--surface-warning)}.status-info{color:var(--text-info);background:var(--surface-info)}.status-neutral{color:var(--text-secondary);background:#edf2f0}.attention-list{margin-top:11px}.attention-item{display:flex;gap:10px;padding:16px 0;border-bottom:1px solid var(--border-subtle)}.attention-item:last-child{border-bottom:0}.attention-icon{width:32px;height:32px;flex:0 0 32px;display:grid;place-items:center;border-radius:8px}.attention-icon.amber{color:var(--text-warning);background:var(--surface-warning)}.attention-icon.blue{color:var(--text-info);background:var(--surface-info)}.attention-icon.red{color:var(--text-danger);background:var(--surface-danger)}.attention-copy{display:flex;flex-direction:column;gap:4px}.attention-copy strong{color:var(--text-primary);font-size:13px;line-height:1.45}.attention-copy span{color:var(--text-muted);font-size:12px}.attention-copy button{min-height:36px;border:0;background:transparent;padding:3px 0;text-align:left;color:var(--brand-green-dark);font-size:13px;font-weight:700;display:flex;align-items:center;gap:5px}.toolbar{display:flex;gap:10px;margin-bottom:17px}.table-search{flex:1 1;max-width:380px;min-height:42px;display:flex;align-items:center;gap:8px;color:var(--text-secondary);background:var(--surface-white);border:1px solid var(--border-subtle);border-radius:8px;padding:9px 11px}.table-search input{width:100%;outline:none;border:0;background:transparent;color:var(--text-primary);font-size:14px;min-width:0}.filter-count{color:var(--brand-green-dark);background:var(--surface-success);border-radius:10px;padding:2px 6px;font-size:12px}.approval-summary{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:15px;gap:15px;margin-bottom:22px}.approval-summary>div{padding:16px 18px;background:var(--surface-white);border:1px solid var(--border-subtle);border-left:3px solid #c17b24;border-radius:10px}.approval-summary span{display:block;color:var(--text-secondary);font-size:13px}.approval-summary strong{display:block;color:var(--text-primary);font-size:23px;margin-top:6px}.approval-cards{padding:0 21px 21px}.approval-card{display:flex;align-items:center;gap:20px;border:1px solid var(--border-subtle);border-radius:9px;padding:15px;margin-top:10px}.approval-main{min-width:195px;display:flex;flex-direction:column;gap:4px}.approval-id{color:var(--brand-green-dark);font-size:13px;font-weight:700;display:flex;gap:7px;align-items:center}.priority-dot{width:8px;height:8px;background:#c17b24;border-radius:50%}.approval-main strong{color:var(--text-primary);font-size:14px}.approval-main span{color:var(--text-muted);font-size:12px}.reason-list{display:flex;flex:1 1;flex-wrap:wrap;gap:5px}.reason-list span{color:var(--text-warning);background:#fff8ed;border:1px solid #efd9b2;border-radius:5px;padding:5px 7px;display:flex;align-items:center;gap:4px;font-size:12px}.approval-actions{display:flex;gap:8px;align-items:center}.notice{display:flex;gap:12px;align-items:flex-start;background:#edf7ef;border:1px solid #d1e6d5;padding:14px 17px;border-radius:10px;margin-bottom:20px;color:var(--brand-green-dark)}.notice span,.notice strong{display:block}.notice strong{font-size:13px}.notice span{color:var(--text-secondary);font-size:12px;margin-top:4px}.role-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:15px;gap:15px}.role-card{background:var(--surface-white);border:1px solid var(--border-subtle);border-radius:12px;padding:18px}.role-card-top{display:flex;align-items:center;gap:10px}.role-card-top>.icon-button{margin-left:auto}.role-avatar{width:38px;height:38px;border-radius:9px;display:grid;place-items:center;background:var(--surface-success);color:var(--brand-green);font-size:12px;font-weight:700}.role-card h2{color:var(--text-primary);font-size:15px;margin:0 0 4px}.role-card p,.role-card-top span{color:var(--text-muted);font-size:12px}.role-card p{line-height:1.55;min-height:38px;margin:19px 0}.role-footer{justify-content:space-between;gap:8px;padding-top:13px;border-top:1px solid var(--border-subtle)}.permission-count,.role-footer{display:flex;align-items:center}.permission-count{gap:5px;color:var(--text-secondary);font-size:12px}.system-tag{color:var(--text-success);background:var(--surface-success);font-size:12px;font-weight:700;padding:5px 7px;border-radius:5px}.empty-state,.loading-state{color:var(--text-secondary);font-size:14px}.settings-grid,.warehouse-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:15px;gap:15px}.inventory-panel{padding:21px}.warehouse-card{margin-top:20px;padding:17px;background:#fafcfb;border:1px solid var(--border-subtle);border-radius:9px}.utilization>div,.warehouse-head,.warehouse-numbers{display:flex;align-items:center}.warehouse-head{gap:10px}.warehouse-head>svg{margin-left:auto;color:var(--text-secondary)}.report-icon,.warehouse-icon{width:36px;height:36px;display:grid;place-items:center;color:var(--brand-green);background:var(--surface-success);border-radius:8px}.warehouse-head span,.warehouse-head strong{display:block}.warehouse-head strong{color:var(--text-primary);font-size:13px}.warehouse-head span{color:var(--text-muted);font-size:12px;margin-top:3px}.warehouse-numbers{gap:45px;margin:22px 0}.warehouse-numbers small,.warehouse-numbers span,.warehouse-numbers strong{display:block}.warehouse-numbers span{color:var(--text-muted);font-size:12px}.warehouse-numbers strong{color:var(--text-primary);font-size:20px;margin-top:4px}.warehouse-numbers small{display:inline;font-size:12px;color:var(--text-muted);font-weight:400}.utilization>div{justify-content:space-between;color:var(--text-muted);font-size:12px}.utilization strong{color:var(--text-primary)}.utilization .health-track{margin-top:7px}.dispatch-hero{display:flex;align-items:center;gap:15px;padding:20px 23px;background:var(--brand-green-dark);color:var(--surface-white);border-radius:12px;margin-bottom:20px}.truck-illustration{width:52px;height:52px;display:grid;place-items:center;color:#cce5d5;border-radius:12px;background:#1b654f}.dispatch-hero>div:nth-child(2){flex:1 1}.dispatch-hero p,.dispatch-hero span{display:block;color:#d5e7dc;font-size:13px}.dispatch-hero strong{display:block;color:var(--surface-white);font-size:18px;margin:4px 0}.dispatch-hero p{margin:0}.fleet-list,.run-list{margin-top:18px}.fleet-row,.run-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--border-subtle)}.fleet-row:last-child,.run-row:last-child{border-bottom:0}.run-time{color:var(--brand-green-dark);font-size:13px;font-weight:700;width:48px}.run-route{flex:1 1}.fleet-row span,.fleet-row strong,.run-route span,.run-route strong{display:block}.fleet-row strong,.run-route strong{color:var(--text-primary);font-size:13px}.fleet-row span,.run-route span{color:var(--text-muted);font-size:12px;margin-top:3px}.run-row>svg{color:var(--text-secondary)}.fleet-icon{width:32px;height:32px;display:grid;place-items:center;color:var(--text-info);background:var(--surface-info);border-radius:8px}.fleet-row>div:nth-child(2){flex:1 1}.fleet-row b{color:var(--text-success);font-size:12px}.report-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:15px;gap:15px;margin-bottom:20px}.report-card{position:relative;border:1px solid var(--border-subtle);background:var(--surface-white);color:var(--text-primary);border-radius:11px;padding:17px;text-align:left;display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-height:155px}.report-card:hover{border-color:#8fb9a1;transform:translateY(-1px);box-shadow:var(--shadow-soft)}.report-card strong{font-size:14px;margin-top:5px}.report-card span{color:var(--text-secondary);font-size:13px;line-height:1.5}.report-card>svg{position:absolute;right:15px;bottom:17px;color:var(--brand-green)}.empty-report{text-align:center;padding:57px 20px;color:var(--text-muted)}.empty-report>svg{color:var(--text-secondary)}.empty-report h2{color:var(--text-primary);font-size:17px;margin:15px 0 7px}.empty-report p{color:var(--text-secondary);font-size:13px;margin:0}.activity-cell,.user-cell{display:flex;align-items:center;gap:9px}.activity-dot{width:26px;height:26px;display:grid;place-items:center;color:var(--brand-green);background:var(--surface-success);border-radius:50%}.settings-section{padding:0;overflow:hidden}.settings-section .panel-header{padding:21px 21px 14px;border-bottom:1px solid var(--border-subtle)}.setting-row{display:flex;align-items:center;gap:12px;padding:16px 21px;border-bottom:1px solid #e7eeeb}.setting-row>div{flex:1 1}.setting-row span,.setting-row strong{display:block}.setting-row strong{color:var(--text-primary);font-size:13px}.setting-row div span{color:var(--text-muted);font-size:12px;margin-top:4px}.setting-value,.setting-warning{font-size:12px;font-weight:700}.setting-value{color:var(--text-success)}.setting-warning{color:var(--text-warning)}.setting-row>svg{color:var(--text-secondary)}.modal-backdrop{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:20px;background:rgba(16,42,44,.65)}.modal{width:min(680px,100%);max-height:90vh;overflow:auto;background:var(--surface-white);border-radius:14px;box-shadow:0 20px 70px rgba(14,54,40,.4)}.modal-header{display:flex;justify-content:space-between;gap:20px;padding:24px 26px 20px;border-bottom:1px solid var(--border-subtle)}.modal-header h2{color:var(--text-primary);margin:8px 0 5px;font-size:23px}.modal-header p{color:var(--text-secondary);font-size:13px;margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:15px;gap:15px;padding:21px 26px 18px}.form-grid label{display:flex;flex-direction:column;gap:7px;color:var(--text-secondary);font-size:13px;font-weight:700}.form-grid input{width:100%;min-height:44px;border:1px solid #c8d6d0;border-radius:8px;padding:10px 11px;outline:none;font-size:14px;color:var(--text-primary);background:var(--surface-white)}.form-grid input:focus{border-color:var(--focus-ring);box-shadow:0 0 0 3px rgba(26,139,103,.18)}.form-grid input[aria-invalid=true]{border-color:var(--text-danger)}.form-error{color:var(--text-danger);font-size:12px;line-height:1.45}.permission-heading{display:flex;align-items:center;justify-content:space-between;padding:15px 26px;background:#f8faf9;border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle)}.permission-heading span,.permission-heading strong{display:block}.permission-heading strong{color:var(--text-primary);font-size:13px}.permission-heading span{color:var(--text-muted);font-size:12px;margin-top:4px}.permission-groups{padding:6px 26px 8px}.permission-group{padding:13px 0 6px}.permission-group-label{color:var(--brand-green-dark);font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase}.permission-row{width:100%;min-height:42px;display:flex;align-items:center;gap:9px;border:0;background:transparent;padding:9px 0;color:var(--text-primary);text-align:left;font-size:13px}.permission-row:hover{color:var(--brand-green-dark)}.permission-row code{margin-left:auto;color:var(--text-muted);font-family:monospace;font-size:12px}.checkbox{width:19px;height:19px;display:grid;place-items:center;color:var(--surface-white);border:1px solid #b9cbc2;border-radius:4px;flex:0 0 auto}.permission-row.selected .checkbox{background:var(--brand-green);border-color:var(--brand-green)}.modal-footer{display:flex;justify-content:flex-end;gap:9px;padding:18px 26px;background:#f8faf9;border-top:1px solid var(--border-subtle)}.mobile-overlay{display:none}@media (max-width:1100px){.page-content{padding-left:28px;padding-right:28px}.report-grid,.role-grid,.stat-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:780px){.sidebar{position:fixed;inset:0 auto 0 0;transform:translateX(-102%);transition:transform .25s ease;box-shadow:10px 0 30px rgba(18,41,30,.16)}.sidebar.sidebar-open{transform:translateX(0)}.mobile-overlay{display:block;position:fixed;inset:0;z-index:9;border:0;background:rgba(18,41,30,.42)}.topbar{min-height:62px;padding:0 12px;gap:7px}.topbar-left{min-width:0;flex:1 1 auto}.topbar-left>.icon-button{display:grid;margin-right:5px;flex:0 0 40px}.breadcrumb{min-width:0;gap:6px;font-size:13px;white-space:nowrap}.breadcrumb strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-actions{flex:0 0 auto;gap:3px}.top-user-button{padding-left:0}.global-search{display:none}.page-content{padding:27px 17px 45px}.page-header{align-items:flex-start;flex-direction:column;margin-bottom:23px;gap:15px}.page-header h1{font-size:27px}.page-header .primary-button,.page-header .quiet-button{align-self:stretch}.dashboard-grid,.lower-grid,.settings-grid,.warehouse-grid{grid-template-columns:1fr}.approval-card{align-items:flex-start;flex-direction:column;gap:12px}.approval-actions{width:100%;justify-content:flex-end}.form-grid,.report-grid,.role-grid{grid-template-columns:1fr}.form-grid,.modal-footer,.modal-header,.permission-groups,.permission-heading{padding-left:19px;padding-right:19px}.permission-row code{display:none}.dispatch-hero{align-items:flex-start;flex-wrap:wrap}.dispatch-hero .light-button{margin-left:67px}.toolbar{flex-wrap:wrap}.table-search{max-width:none;flex-basis:100%}.panel-header{flex-wrap:wrap}}@media (max-width:450px){.stat-grid{grid-template-columns:1fr 1fr;gap:9px}.stat-card{padding:14px 13px}.stat-title{min-height:42px;font-size:13px}.stat-value{font-size:23px}.stat-detail{font-size:12px}.approval-summary{gap:8px}.approval-summary>div{padding:13px 11px}.approval-summary span{font-size:12px}.approval-summary strong{font-size:18px}.page-header .primary-button,.page-header .quiet-button{width:100%}.table-panel td,.table-panel th{padding-left:13px;padding-right:13px}.panel{padding:17px}.table-toolbar{align-items:flex-start;flex-direction:column;padding-left:17px;padding-right:17px}.chart{height:190px}.chart-x span:nth-child(2),.chart-x span:nth-child(4){display:none}.modal-backdrop{padding:10px}.modal{max-height:94vh}.modal-header h2{font-size:21px}.modal-footer{flex-direction:column-reverse}.modal-footer button{width:100%}}@media (max-width:780px){.sidebar{height:100dvh}.sidebar-brand{min-height:104px;padding:10px 14px 8px;margin-bottom:12px}.sidebar-brand .brand-logo{width:88px;max-height:76px}}.report-header{align-items:flex-start}.report-actions{display:flex;gap:9px;align-items:center}.report-controls{display:grid;grid-template-columns:minmax(190px,1.4fr) repeat(3,minmax(130px,.7fr)) minmax(210px,1.5fr);grid-gap:12px;gap:12px;margin-bottom:20px;padding:16px}.report-controls label{display:flex;flex-direction:column;gap:6px;color:var(--text-secondary);font-size:12px;font-weight:700}.report-controls input,.report-controls select{min-height:40px;width:100%;border:1px solid #c8d6d0;border-radius:8px;padding:8px 10px;color:var(--text-primary);background:var(--surface-white);outline:none;font:inherit;font-weight:500}.report-controls input:focus,.report-controls select:focus{border-color:var(--focus-ring);box-shadow:0 0 0 3px rgba(26,139,103,.18)}.report-filter-search .table-search{max-width:none;min-height:40px;padding:7px 10px}.report-summary{margin-bottom:20px}.report-state{min-height:125px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:28px;color:var(--text-secondary)}.report-state strong{color:var(--text-primary);font-size:15px}.report-state span{font-size:13px}.report-state .quiet-button{margin-top:7px}.report-pagination{display:flex;align-items:center;justify-content:flex-end;gap:9px;padding:15px 21px;color:var(--text-secondary);font-size:12px}.report-pagination span{margin-right:auto}@media (max-width:1100px){.report-controls{grid-template-columns:repeat(3,1fr)}.report-filter-search{grid-column:1/-1}}@media (max-width:780px){.report-actions{width:100%}.report-actions button{flex:1 1}.report-controls{grid-template-columns:1fr 1fr}.report-filter-search{grid-column:1/-1}.report-pagination{align-items:stretch;flex-wrap:wrap}.report-pagination span{flex-basis:100%;margin-right:0}.report-pagination button{flex:1 1}}@media (max-width:450px){.report-header .report-actions{flex-direction:column}.report-actions button{width:100%}.report-controls{grid-template-columns:1fr}.report-filter-search{grid-column:auto}}.status-danger{color:var(--text-danger);background:var(--surface-danger)}.status-violet{color:#5f4b8b;background:#f1edfa}.status-neutral .status-dot{background:var(--text-secondary)}.status-danger .status-dot{background:var(--text-danger)}.status-violet .status-dot{background:#5f4b8b}.auth-shell{min-height:100vh;place-items:center;padding:24px;background:var(--surface-muted)}.auth-card{width:100%;max-width:400px;border:1px solid var(--border-subtle);border-radius:14px;padding:30px 28px;box-shadow:var(--shadow-soft)}.auth-brand{gap:11px;padding:0 0 20px}.auth-logo{width:46px}.auth-brand-label{color:var(--brand-green);font-size:11px;font-weight:700;letter-spacing:1.4px}.auth-intro h1{font-size:21px;margin:0 0 6px}.auth-intro p{margin:0 0 22px}.auth-field{margin-bottom:15px}.auth-field label{color:var(--text-secondary)}.auth-field input{min-height:44px;border:1px solid #c8d6d0;padding:10px 11px}.auth-field input:focus{box-shadow:0 0 0 3px rgba(26,139,103,.18)}.password-input-wrap{display:flex}.password-input-wrap input{padding-right:40px}.password-toggle{right:6px;width:30px;height:30px;border-radius:6px}.auth-inline-link{padding:0}.auth-error{display:flex;gap:8px;align-items:flex-start}.auth-error,.auth-notice{border-radius:8px;padding:10px 12px;font-size:13px;margin-bottom:15px}.auth-submit{margin-top:6px}.auth-support{margin-top:18px;color:var(--text-muted);font-size:12px;text-align:center}.tab-strip{display:flex;gap:4px;border-bottom:1px solid var(--border-subtle);padding:0 26px}.tab-button{border:0;background:transparent;padding:12px 4px;margin-right:22px;color:var(--text-secondary);font-size:13px;font-weight:700;border-bottom:2px solid transparent}.tab-button.active,.tab-button:hover{color:var(--brand-green-dark)}.tab-button.active{border-bottom-color:var(--brand-green)}.tab-panel{padding:21px 26px 26px}.doc-list{display:flex;flex-direction:column;gap:10px}.doc-row{display:flex;align-items:center;gap:12px;border:1px solid var(--border-subtle);border-radius:10px;padding:12px 14px}.doc-row>div:first-child{flex:1 1;min-width:0}.doc-row strong{display:block;color:var(--text-primary);font-size:13px}.doc-row span{display:block;color:var(--text-muted);font-size:12px;margin-top:3px}.capacity-line{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;color:var(--text-secondary);margin-bottom:6px}.capacity-line strong{color:var(--text-primary)}.coming-soon{text-align:center;padding:70px 20px;color:var(--text-muted)}.coming-soon>svg{color:var(--text-secondary);margin-bottom:14px}.coming-soon h2{color:var(--text-primary);font-size:18px;margin:0 0 8px}.coming-soon p{color:var(--text-secondary);font-size:13px;margin:0;max-width:420px;margin-inline:auto}.picker-option{width:100%;text-align:left;border:1px solid var(--border-subtle);background:var(--surface-white);border-radius:9px;padding:11px 13px;margin-bottom:8px}.picker-option:hover:not(:disabled){border-color:var(--brand-green);background:var(--surface-hover)}.picker-option.selected{border-color:var(--brand-green);background:var(--surface-success)}.picker-option:disabled{opacity:1;cursor:not-allowed;background:#fafcfb}.picker-option strong{display:block;color:var(--text-primary);font-size:13px}.picker-option span{display:block;color:var(--text-muted);font-size:12px;margin-top:3px}.picker-option .picker-block-reason{color:var(--text-danger);font-size:12px;margin-top:4px;display:block}.rule-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #e7eeeb}.rule-row:last-child{border-bottom:0}.rule-row input,.rule-row select{width:100%;min-width:0;min-height:38px;border:1px solid #c8d6d0;border-radius:7px;padding:6px 9px;font-size:13px;color:var(--text-primary);background:var(--surface-white)}.field-hint{color:var(--text-muted)}.field-error,.field-hint{font-size:12px;margin-top:5px}.field-error{color:var(--text-danger)}.checkbox-list{max-height:190px;overflow-y:auto;border:1px solid var(--border-subtle);border-radius:9px;margin:0 26px 15px;padding:6px 10px}.checkbox-row{display:flex;align-items:center;gap:9px;padding:7px 4px;font-size:13px;color:var(--text-primary);font-weight:400}.checkbox-row small{color:var(--text-muted);margin-left:4px}.dispatch-layout{display:grid;grid-template-columns:340px minmax(0,1fr);grid-gap:16px;gap:16px;align-items:start}.dispatch-layout>*{min-width:0}.dispatch-trip-list .doc-list{margin-top:14px}.dispatch-trip-list .picker-option{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:4px}.dispatch-trip-list .picker-option strong{min-width:0;overflow-wrap:anywhere}.dispatch-detail{padding:21px 0}.dispatch-detail>.panel-header{padding:0 21px 14px}.dispatch-detail .capacity-line,.dispatch-detail .doc-list,.dispatch-detail .permission-heading{padding-left:21px;padding-right:21px}.dispatch-detail .permission-heading{margin:14px 0}.dispatch-detail .form-grid{padding:0 21px 14px}.dispatch-detail .modal-footer{background:transparent;border-top:0;padding:0 21px 14px;justify-content:flex-start}.dispatch-detail>.form-error{margin:0 21px 14px}@media (max-width:1100px){.dispatch-layout{grid-template-columns:1fr}}@media (max-width:780px){.dispatch-detail .capacity-line{align-items:flex-start;flex-wrap:wrap}.dispatch-detail .capacity-line strong{margin-left:auto;text-align:right}.dispatch-detail>.panel-header>div{min-width:0}.dispatch-detail>.panel-header h2{overflow-wrap:anywhere}}.dispatch-workspace{display:grid;grid-template-columns:320px minmax(0,1fr) 320px;grid-gap:16px;gap:16px;align-items:start}.dispatch-workspace>*{min-width:0}.dispatch-column{max-height:calc(100vh - 260px);overflow-y:auto}.dispatch-column .doc-list{margin-top:14px}.dispatch-order-card,.dispatch-vehicle-card{flex-direction:column;align-items:stretch;gap:10px}.dispatch-order-card>div,.dispatch-vehicle-card>div{min-width:0}.dispatch-order-card strong,.dispatch-vehicle-card strong{overflow-wrap:anywhere}.dispatch-order-card span,.dispatch-vehicle-card span{display:block}.dispatch-vehicle-card{width:100%;border-radius:10px;background:var(--surface-white)}.dispatch-vehicle-card.selected{border-color:var(--brand-green);background:var(--surface-success)}.dispatch-vehicle-card:disabled{opacity:1;background:#fafcfb}@media (max-width:1300px){.dispatch-workspace{grid-template-columns:280px minmax(0,1fr) 280px}}@media (max-width:1100px){.dispatch-workspace{grid-template-columns:1fr}.dispatch-column{max-height:420px}}.auth-shell{position:relative;isolation:isolate;min-height:100dvh;display:grid;place-items:start center;overflow-y:auto;overflow-x:visible;box-sizing:border-box;padding:clamp(20px,4vw,48px);background:#f5f8f4}.auth-shell:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.9;background:repeating-linear-gradient(8deg,transparent 0 56px,rgba(15,107,79,.035) 56px 57px,transparent 57px 115px),repeating-linear-gradient(94deg,transparent 0 175px,rgba(122,94,51,.025) 175px 177px,transparent 177px 350px)}.auth-card{width:min(calc(100% - 40px),620px);max-width:640px;height:auto;min-height:0;box-sizing:border-box;background:var(--surface-white);border:1px solid #dbe5df;border-radius:17px;padding:48px 52px 44px;box-shadow:0 18px 50px rgba(25,64,48,.1)}.auth-card form{width:100%}.auth-brand{display:flex;flex-direction:column;align-items:center;margin-bottom:30px;text-align:center}.auth-logo{width:min(150px,100%);max-height:90px;height:auto;display:block;object-fit:contain;image-rendering:auto}.auth-intro{margin-bottom:29px}.auth-intro h1{color:var(--text-primary);font-size:25px;line-height:1.2;margin:0 0 8px}.auth-intro p{color:var(--text-secondary);font-size:13px;line-height:1.55;margin:0}.auth-error,.auth-notice{display:flex;gap:9px;align-items:flex-start;border-radius:9px;padding:11px 12px;font-size:13px;line-height:1.45;margin-bottom:17px}.auth-error{color:var(--text-danger);background:var(--surface-danger)}.auth-notice{color:var(--brand-green-dark);background:var(--surface-success);border:1px solid #d1e6d5}.auth-field{display:flex;flex-direction:column;gap:7px;margin-bottom:22px}.auth-password-field{margin-bottom:30px}.auth-field-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.auth-field label{color:var(--text-primary);font-size:13px;font-weight:700}.auth-field input{width:100%;min-height:46px;border:1px solid #b9cbc2;border-radius:8px;padding:10px 12px;outline:none;font-size:14px;color:var(--text-primary);background:var(--surface-white);transition:border-color .15s ease,box-shadow .15s ease}.auth-field input:hover{border-color:#8eaaa0}.auth-field input:focus{border-color:var(--focus-ring);box-shadow:0 0 0 3px rgba(26,139,103,.2)}.auth-field input[aria-invalid=true]{border-color:var(--text-danger)}.password-input-wrap{position:relative}.password-input-wrap input{padding-right:48px}.password-toggle{position:absolute;top:50%;right:4px;width:38px;height:38px;display:grid;place-items:center;transform:translateY(-50%);border:0;border-radius:7px;color:var(--text-secondary);background:transparent}.password-toggle:hover{color:var(--brand-green-dark);background:var(--surface-hover)}.auth-inline-link{min-height:36px;border:0;padding:4px 0;color:var(--brand-green-dark);background:transparent;font-size:12px;font-weight:700;text-decoration:none}.auth-inline-link:hover{color:var(--brand-green);text-decoration:underline;text-underline-offset:3px}.auth-submit{width:100%;justify-content:center;min-height:46px;gap:8px;margin-top:0}.auth-submit:disabled{opacity:.72}.auth-spinner{animation:auth-spin .8s linear infinite}@keyframes auth-spin{to{transform:rotate(1turn)}}@media (min-height:760px){.auth-shell{align-items:center}}@media (max-width:900px) and (min-width:521px){.auth-card{padding:40px 38px 36px}}@media (max-width:520px){.auth-shell{padding:20px 20px 24px}.auth-card{width:100%;padding:28px 24px 26px;border-radius:14px}.auth-brand{margin-bottom:28px}.auth-logo{max-height:82px}.auth-intro h1{font-size:23px}}.desktop-sidebar-toggle{display:grid!important}@media (min-width:781px){.sidebar{transition:width .22s ease,flex-basis .22s ease,padding .22s ease}.sidebar-collapsed .sidebar{width:80px;flex-basis:80px;padding-left:8px;padding-right:8px}.sidebar-collapsed .sidebar-brand{min-height:104px;margin-left:-8px;margin-right:-8px;padding:10px 8px 8px}.sidebar-collapsed .sidebar-brand .brand-logo{width:44px;max-height:58px}.sidebar-collapsed .nav-label{display:none}.sidebar-collapsed .nav-item{position:relative;justify-content:center;gap:0;padding-left:0;padding-right:0}.sidebar-collapsed .nav-item>span:not(.nav-count){display:none}.sidebar-collapsed .nav-item.active:before{position:absolute;left:0;margin:0}.sidebar-collapsed .nav-count{position:absolute;top:1px;right:1px;margin:0;padding:1px 5px}.sidebar-collapsed .profile{flex-direction:column;gap:8px;padding-left:0;padding-right:0}.sidebar-collapsed .profile-copy{display:none}.sidebar-collapsed .profile>.icon-button{margin:0}}@media (max-width:780px){.topbar-left>.desktop-sidebar-toggle{display:none!important}}.setting-row{width:100%;border:0;font:inherit;text-align:left;cursor:pointer;background:var(--surface-white);transition:background .15s ease}.setting-row:hover{background:#fafcfb}.setting-row:focus-visible{position:relative;z-index:1;outline:3px solid var(--focus-ring);outline-offset:-3px}.settings-notice{margin-bottom:20px}.settings-notice span{color:inherit}.settings-editor{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-top:20px;padding:22px}.settings-editor h2{color:var(--text-primary);font-size:17px;margin:6px 0 5px}.settings-editor p{color:var(--text-secondary);font-size:13px;margin:0}.settings-editor-controls{display:flex;align-items:center;gap:9px;flex:0 0 auto}.settings-editor-controls select,.settings-number-input input{min-height:42px;border:1px solid #b9cbc2;border-radius:8px;padding:8px 11px;color:var(--text-primary);background:var(--surface-white);font-size:14px}.settings-editor-controls select:focus,.settings-number-input input:focus{outline:3px solid rgba(26,139,103,.2);outline-offset:1px;border-color:var(--focus-ring)}.settings-number-input{position:relative}.settings-number-input input{width:108px;padding-right:28px}.settings-number-input span{position:absolute;top:50%;right:11px;color:var(--text-muted);transform:translateY(-50%);font-size:13px}@media (max-width:780px){.settings-editor{align-items:stretch;flex-direction:column;gap:17px}.settings-editor-controls{flex-wrap:wrap}.settings-editor-controls select,.settings-number-input{flex:1 1 160px}.settings-number-input input{width:100%}.rule-row{gap:8px}}.row-actions{display:flex;flex-wrap:wrap;gap:6px}.row-actions .quiet-button{padding:6px 10px;font-size:12px}