:root{--primary:#ef3658;--primary-dark:#d92549;--primary-soft:#fff0f3;--teal:#17bfa5;--ink:#17212f;--muted:#718096;--line:#e6ebf2;--bg:#f4f7fb;--panel:#fff;--success:#18b78e;--warning:#ffae24;--danger:#e74c5b;--info:#3d8bfd;--shadow:0 14px 45px rgba(23,33,47,.08);--radius:14px;--topbar:58px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color-scheme:light}
:root[data-theme="dark"]{--ink:#edf2f7;--muted:#94a3b8;--line:#263244;--bg:#0d1420;--panel:#141e2d;--primary-soft:#361723;--shadow:0 14px 45px rgba(0,0,0,.25);color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-size:14px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.muted{color:var(--muted)}
.topbar{height:var(--topbar);position:sticky;top:0;z-index:1000;display:flex;align-items:center;padding:0 22px;background:linear-gradient(90deg,#ef3658,#f04463);color:#fff;box-shadow:0 6px 18px rgba(239,54,88,.18)}.brand{display:flex;align-items:center;gap:10px;min-width:166px}.brand strong{font-size:17px;letter-spacing:-.3px}.brand-mark{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;background:#fff;color:var(--primary);font-weight:900;box-shadow:0 5px 16px rgba(0,0,0,.12)}.brand-mark.large{width:62px;height:62px;border-radius:17px;font-size:30px}.main-nav{display:flex;align-items:stretch;height:100%;gap:1px;flex:1}.nav-group{position:relative;display:flex;align-items:stretch}.nav-trigger{border:0;background:transparent;color:rgba(255,255,255,.82);padding:0 12px;display:flex;align-items:center;gap:6px;font-size:12px}.nav-group.active .nav-trigger,.nav-trigger:hover{background:rgba(109,0,25,.16);color:#fff}.nav-menu{display:none;position:absolute;top:52px;left:0;min-width:245px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:12px;padding:8px;box-shadow:var(--shadow);max-height:72vh;overflow:auto}.nav-group:hover .nav-menu,.nav-group.open .nav-menu{display:block}.nav-menu a{display:flex;align-items:center;gap:10px;padding:10px 11px;border-radius:8px;font-size:13px}.nav-menu a span{width:28px;height:28px;border-radius:7px;background:var(--bg);display:grid;place-items:center;color:var(--primary);font-weight:800;font-size:11px}.nav-menu a:hover,.nav-menu a.active{background:var(--primary-soft);color:var(--primary)}.top-actions{display:flex;align-items:center;gap:6px}.icon-btn,.mobile-menu{border:0;background:transparent;color:#fff;width:34px;height:34px;border-radius:9px}.icon-btn:hover,.mobile-menu:hover{background:rgba(0,0,0,.12)}.user-menu{position:relative}.user-trigger{border:0;background:transparent;color:#fff;display:flex;align-items:center;gap:8px;padding:5px 7px;border-radius:10px}.user-trigger:hover{background:rgba(0,0,0,.12)}.avatar{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--primary);font-weight:900}.user-copy{display:flex;flex-direction:column;text-align:left;line-height:1.2}.user-copy b{font-size:11px}.user-copy small{font-size:9px;opacity:.8}.user-dropdown{display:none;position:absolute;right:0;top:43px;width:170px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:7px;box-shadow:var(--shadow)}.user-menu:hover .user-dropdown{display:block}.user-dropdown a{display:block;padding:10px;border-radius:7px}.user-dropdown a:hover{background:var(--bg)}.mobile-menu{display:none}.breadcrumb{height:37px;display:flex;align-items:center;gap:8px;padding:0 28px;border-bottom:1px solid var(--line);background:var(--panel);font-size:11px;color:var(--muted)}.breadcrumb b{color:var(--ink)}
.app-main{max-width:1560px;margin:0 auto;padding:26px 28px 48px;min-height:calc(100vh - 130px)}.app-footer{display:flex;justify-content:space-between;padding:18px 28px;border-top:1px solid var(--line);color:var(--muted);font-size:11px;background:var(--panel)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px}.page-head h1{font-size:27px;margin:4px 0 4px;letter-spacing:-.8px}.page-head p{margin:0;color:var(--muted)}.eyebrow{font-size:10px!important;letter-spacing:1.6px;font-weight:800;color:var(--primary)!important}.head-actions{display:flex;gap:9px;flex-wrap:wrap}.btn{border:1px solid transparent;border-radius:9px;padding:9px 14px;font-weight:700;font-size:12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:.18s}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-primary{background:var(--teal);color:#fff;box-shadow:0 5px 14px rgba(23,191,165,.22)}.btn-primary:hover{background:#0eab92}.btn-secondary{background:var(--panel);border-color:var(--line);color:var(--ink)}.btn-ghost{background:transparent;color:var(--muted)}.btn-lg{padding:13px 17px;font-size:14px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line)}.panel-head h2{font-size:15px;margin:0 0 3px}.panel-head p{margin:0;color:var(--muted);font-size:11px}.panel-head a{font-size:11px;font-weight:700;color:var(--primary)}
.alert{padding:12px 14px;border-radius:9px;margin-bottom:15px;border:1px solid}.alert-success{background:#ecfff8;color:#08795e;border-color:#b5f0de}.alert-error{background:#fff1f2;color:#a91f38;border-color:#ffc8d2}.alert-warning{background:#fff8e7;color:#966100;border-color:#ffe0a0}.alert-info{background:#eef6ff;color:#1d5fae;border-color:#cce3ff}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:17px}.kpi-card{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:124px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;overflow:hidden;box-shadow:var(--shadow)}.kpi-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--tone)}.kpi-card.positive{--tone:var(--success)}.kpi-card.warning{--tone:var(--warning)}.kpi-card.danger{--tone:var(--danger)}.kpi-card.info{--tone:var(--info)}.kpi-card p{margin:0 0 8px;color:var(--muted);font-size:11px;font-weight:700}.kpi-card h3{font-size:21px;margin:0 0 5px;letter-spacing:-.5px}.kpi-card small{color:var(--muted)}.kpi-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:color-mix(in srgb,var(--tone) 12%,transparent);color:var(--tone);font-weight:900}.dashboard-grid{display:grid;grid-template-columns:2fr 1fr;gap:16px}.panel-wide{min-width:0}.bar-chart{height:260px;padding:28px 24px 18px;display:flex;align-items:stretch;gap:16px}.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;min-width:0}.bar-track{height:190px;width:100%;max-width:48px;border-radius:8px;background:var(--bg);display:flex;align-items:flex-end;overflow:hidden}.bar-fill{width:100%;min-height:4px;border-radius:8px;background:linear-gradient(180deg,#ef3658,#ff8a9e);transition:.3s}.bar-col span{margin-top:9px;font-size:10px;color:var(--muted)}.bar-value{font-size:9px;color:var(--muted);height:20px}.donut-wrap{padding:25px;display:flex;align-items:center;gap:25px}.donut{width:145px;height:145px;border-radius:50%;padding:18px;display:grid;place-items:center}.donut>div{width:100%;height:100%;border-radius:50%;background:var(--panel);display:flex;flex-direction:column;align-items:center;justify-content:center}.donut b{font-size:24px}.donut span{font-size:10px;color:var(--muted)}.donut-legend{flex:1;display:grid;gap:10px}.donut-legend>div{display:grid;grid-template-columns:10px 1fr auto;gap:8px;align-items:center}.donut-legend>div>span{width:8px;height:8px;border-radius:50%;background:var(--dot)}.donut-legend b{font-size:11px}.donut-legend small{color:var(--muted)}.activity-list{padding:7px 18px 16px}.activity-item{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.activity-item:last-child{border:0}.activity-dot{width:8px;height:8px;border-radius:50%;background:var(--teal);margin-top:5px;box-shadow:0 0 0 4px rgba(23,191,165,.12)}.activity-item b{font-size:11px}.activity-item p{margin:3px 0;color:var(--muted);font-size:10px}.activity-item small{color:var(--muted);font-size:9px}
.data-panel{overflow:hidden}.table-toolbar{display:flex;align-items:center;justify-content:space-between;padding:14px 17px;border-bottom:1px solid var(--line);gap:12px}.search-box{height:37px;min-width:280px;display:flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:0 11px;color:var(--muted)}.search-box input{border:0;outline:0;background:transparent;width:100%;color:var(--ink)}.toolbar-right{display:flex;gap:7px}.toolbar-right select,.report-filter input,.route-form input,.route-form select{height:37px;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:9px;padding:0 11px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{background:color-mix(in srgb,var(--bg) 72%,var(--panel));color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.7px;text-align:left;padding:11px 13px;border-bottom:1px solid var(--line)}td{padding:12px 13px;border-bottom:1px solid var(--line);font-size:11px}tbody tr:hover{background:color-mix(in srgb,var(--primary-soft) 45%,transparent)}td a{color:#2581ce;font-weight:700}.actions-col{text-align:right}.row-actions{display:flex;justify-content:flex-end;gap:4px}.row-actions form{margin:0}.row-actions button{border:0;background:transparent;color:#2680c2;font-size:10px;font-weight:700;padding:5px}.row-actions button.danger{color:var(--danger)}.table-footer{display:flex;justify-content:space-between;padding:13px 17px;color:var(--muted);font-size:10px}.status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:9px;font-weight:800}.status-badge.success{background:#e7fbf4;color:#0a8b68}.status-badge.danger{background:#fff0f2;color:#c62944}.status-badge.warning{background:#fff6df;color:#a56c00}.status-badge.info{background:#eaf3ff;color:#246aba}.empty-state{min-height:170px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);gap:5px}.empty-state.compact{min-height:90px}.empty-state b{color:var(--ink)}
.modal[hidden]{display:none}.modal{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:20px}.modal-backdrop{position:absolute;inset:0;background:rgba(10,18,30,.62);backdrop-filter:blur(3px)}.modal-card{position:relative;width:min(790px,95vw);max-height:92vh;overflow:auto;background:var(--panel);border-radius:16px;box-shadow:0 25px 80px rgba(0,0,0,.28)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:20px 23px;border-bottom:1px solid var(--line)}.modal-head h2{margin:4px 0 0;font-size:19px}.modal-head button{border:0;background:var(--bg);color:var(--ink);width:34px;height:34px;border-radius:9px;font-size:20px}.record-form{padding:22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.field{display:flex;flex-direction:column;gap:6px}.field.span-2{grid-column:span 2}.field>span,.stack-form label{font-size:11px;font-weight:700}.field input,.field select,.field textarea,.stack-form input{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:9px;padding:10px 11px;outline:0}.field input:focus,.field select:focus,.field textarea:focus,.stack-form input:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(23,191,165,.12)}.modal-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:20px}.modal-actions .btn:disabled{opacity:.4}
.report-filter{padding:14px 17px;display:flex;align-items:flex-end;gap:10px;margin-bottom:16px}.report-filter label{display:flex;flex-direction:column;gap:5px;font-size:10px;font-weight:700}.report-layout{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-bottom:16px}.horizontal-bars{padding:20px;display:grid;gap:13px}.hbar{display:grid;grid-template-columns:130px 1fr 88px;align-items:center;gap:10px}.hbar span{font-size:10px;overflow:hidden;text-overflow:ellipsis}.hbar>div{height:10px;background:var(--bg);border-radius:999px;overflow:hidden}.hbar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--primary),#ff8ca0)}.hbar b{text-align:right;font-size:10px}.summary-list{padding:16px 20px;display:grid;gap:15px}.summary-list>div>span{display:flex;justify-content:space-between;margin-bottom:5px}.summary-list b{font-size:10px}.summary-list small{color:var(--muted)}progress{width:100%;height:6px;border:0;border-radius:99px;overflow:hidden}progress::-webkit-progress-bar{background:var(--bg)}progress::-webkit-progress-value{background:var(--teal)}
.map-layout{display:grid;grid-template-columns:330px 1fr;overflow:hidden;min-height:650px}.map-sidebar{padding:15px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:12px}.map-sidebar .search-box{min-width:0;width:100%}.map-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.map-stats>div{background:var(--bg);border-radius:10px;padding:13px}.map-stats b{display:block;font-size:19px}.map-stats span{color:var(--muted);font-size:9px}.visit-cards{display:grid;gap:7px;overflow:auto}.visit-cards button{display:flex;text-align:left;gap:10px;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:10px;padding:11px}.visit-cards button:hover{border-color:var(--primary);background:var(--primary-soft)}.pin{color:var(--primary);font-size:18px}.visit-cards b{display:block;font-size:11px}.visit-cards small,.visit-cards p{display:block;color:var(--muted);font-size:9px;margin:3px 0}.map-canvas{min-height:650px;background:#dfece7}.leaflet-popup-content-wrapper{border-radius:10px}.route-layout{display:grid;grid-template-columns:430px 1fr;gap:16px}.route-builder{padding-bottom:15px}.route-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:15px}.route-form label{display:flex;flex-direction:column;gap:5px;font-size:10px;font-weight:700}.route-pool{display:grid;gap:7px;padding:0 15px;max-height:480px;overflow:auto}.route-pool button{display:grid;grid-template-columns:25px 25px 1fr;align-items:center;text-align:left;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:10px;padding:11px;cursor:grab}.route-pool button.dragging{opacity:.45}.drag-handle{color:var(--muted)}.route-number{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);font-size:9px;font-weight:800}.route-pool b{display:block;font-size:11px}.route-pool small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.route-actions{display:flex;gap:8px;padding:15px 15px 0}.route-map-panel{overflow:hidden}.route-map{height:575px}.route-metrics{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}.route-metrics>div{padding:16px;text-align:center;border-right:1px solid var(--line)}.route-metrics>div:last-child{border:0}.route-metrics span{display:block;color:var(--muted);font-size:9px}.route-metrics b{display:block;margin-top:4px;font-size:15px}.access-tabs{display:flex;gap:7px;overflow:auto;margin-bottom:12px}.access-tabs a{padding:9px 13px;border:1px solid var(--line);border-radius:9px;background:var(--panel);font-size:11px;font-weight:700}.access-tabs a.active{background:var(--primary);color:#fff;border-color:var(--primary)}.permission-table td:first-child{display:flex;flex-direction:column}.permission-table td:first-child small{color:var(--muted);font-size:9px;margin-top:2px}.permission-table th:not(:first-child),.permission-table td:not(:first-child){text-align:center}.switch{display:inline-flex}.switch input{display:none}.switch span{width:34px;height:19px;border-radius:99px;background:#cbd5e1;position:relative;transition:.2s}.switch span:after{content:"";position:absolute;width:15px;height:15px;border-radius:50%;background:#fff;top:2px;left:2px;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}.switch input:checked+span{background:var(--teal)}.switch input:checked+span:after{left:17px}
.help-fab{position:fixed;right:20px;bottom:20px;z-index:900;width:46px;height:46px;border:0;border-radius:14px;background:#55c849;color:#fff;font-size:20px;box-shadow:0 10px 28px rgba(55,160,47,.35)}.command-palette{position:fixed;inset:0;z-index:2500;background:rgba(12,20,32,.6);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:flex-start;padding-top:12vh}.command-box{width:min(620px,92vw);background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:12px;box-shadow:0 24px 80px rgba(0,0,0,.32)}.command-box>input{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);padding:14px;outline:0;font-size:15px}.command-results{display:grid;max-height:360px;overflow:auto;padding:7px}.command-results a{display:flex;justify-content:space-between;padding:10px;border-radius:8px}.command-results a:hover{background:var(--bg)}.command-results small{color:var(--muted)}.command-box>small{display:block;padding:8px 12px;color:var(--muted)}
.login-body{min-height:100vh;background:linear-gradient(135deg,#162233,#291523);display:grid;place-items:center;padding:30px}.login-shell{width:min(1060px,96vw);display:grid;grid-template-columns:1.15fr .85fr;background:var(--panel);border-radius:24px;overflow:hidden;box-shadow:0 30px 100px rgba(0,0,0,.35)}.login-brand{padding:62px;background:radial-gradient(circle at 85% 10%,rgba(255,255,255,.17),transparent 35%),linear-gradient(135deg,#ef3658,#c81d45);color:#fff}.login-brand .eyebrow{color:rgba(255,255,255,.7)!important;margin-top:26px}.login-brand h1{font-size:46px;margin:7px 0 14px;letter-spacing:-1.8px}.login-brand>p{max-width:520px;font-size:16px;line-height:1.7;color:rgba(255,255,255,.83)}.login-feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:34px}.login-feature-grid span{padding:13px;border:1px solid rgba(255,255,255,.18);border-radius:10px;background:rgba(255,255,255,.07);font-size:11px}.login-card{padding:58px 48px;display:flex;flex-direction:column;justify-content:center}.login-card h2{font-size:27px;margin:5px 0}.stack-form{display:grid;gap:15px;margin-top:24px}.stack-form label{display:flex;flex-direction:column;gap:6px}.stack-form input{padding:12px}.demo-credential{margin-top:17px;padding:11px;background:var(--bg);border-radius:8px;color:var(--muted);font-size:10px}
@media(max-width:1100px){.main-nav{display:none;position:absolute;left:0;right:0;top:58px;height:auto;background:var(--panel);color:var(--ink);padding:10px;flex-direction:column;box-shadow:var(--shadow);max-height:75vh;overflow:auto}.main-nav.open{display:flex}.nav-group{display:block}.nav-trigger{color:var(--ink);height:38px;width:100%;justify-content:space-between}.nav-menu{position:static;display:none;box-shadow:none;border:0;background:var(--bg);max-height:none}.nav-group.open .nav-menu{display:block}.mobile-menu{display:block}.user-copy{display:none}.dashboard-grid,.report-layout{grid-template-columns:1fr}.kpi-grid{grid-template-columns:repeat(2,1fr)}.route-layout{grid-template-columns:1fr}.route-map{height:460px}}
@media(max-width:760px){.topbar{padding:0 12px}.brand{min-width:0;margin-right:auto}.icon-btn{display:none}.breadcrumb{padding:0 14px;overflow:auto;white-space:nowrap}.app-main{padding:18px 13px 40px}.page-head{align-items:flex-start;flex-direction:column}.page-head h1{font-size:23px}.head-actions{width:100%}.head-actions .btn{flex:1}.kpi-grid{grid-template-columns:1fr 1fr;gap:10px}.kpi-card{min-height:108px;padding:15px}.kpi-card h3{font-size:17px}.kpi-icon{display:none}.table-toolbar{align-items:stretch;flex-direction:column}.search-box{min-width:0;width:100%}.toolbar-right{width:100%}.toolbar-right select{flex:1}.form-grid{grid-template-columns:1fr}.field.span-2{grid-column:auto}.map-layout{grid-template-columns:1fr}.map-sidebar{border-right:0;border-bottom:1px solid var(--line);max-height:350px}.map-canvas{min-height:480px}.report-filter{align-items:stretch;flex-direction:column}.report-filter input{width:100%}.hbar{grid-template-columns:90px 1fr 64px}.login-shell{grid-template-columns:1fr}.login-brand{display:none}.login-card{padding:38px 25px}.app-footer{flex-direction:column;gap:5px}.donut-wrap{flex-direction:column}.route-form{grid-template-columns:1fr}.route-metrics>div{padding:12px 5px}.route-metrics b{font-size:12px}}
@media print{.topbar,.breadcrumb,.head-actions,.report-filter,.help-fab,.app-footer{display:none!important}.app-main{max-width:none;padding:0}.panel,.kpi-card{box-shadow:none}.page-head{margin-bottom:10px}}


/* NexusSFA 1.1.0 Nexus theme, PWA, offline, approval, and workflow hardening */
[hidden]{display:none!important}
body.overlay-open{overflow:hidden}
.command-palette[hidden],.modal[hidden]{display:none!important}
.command-head{display:flex;align-items:center;border-bottom:1px solid var(--line)}
.command-head>input{width:100%;border:0;background:transparent;color:var(--ink);padding:14px;outline:0;font-size:15px}
.command-close{flex:0 0 36px;width:36px;height:36px;border:0;border-radius:9px;background:var(--bg);color:var(--ink);font-size:22px;line-height:1;cursor:pointer}
.command-close:hover{background:var(--primary-soft);color:var(--primary)}
.command-foot{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;color:var(--muted)}
.command-foot button{border:0;background:transparent;color:var(--primary);font-weight:800;cursor:pointer}
.command-box>input{display:none}
.field-help{font-size:9px;line-height:1.45;color:var(--muted);font-weight:500}
.field input[type=file]{padding:8px}
.btn-sm{min-height:29px!important;padding:5px 9px!important;font-size:9px!important;border-radius:7px!important}
.btn-success{background:var(--teal);border-color:var(--teal);color:#fff}
.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff!important}
.danger-text{color:var(--danger)!important}
.lpj-cell{min-width:310px;white-space:normal}
.lpj-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.lpj-actions form{margin:0}
.approval-meta{display:block;margin-top:7px;color:var(--muted);font-size:9px}
@media(max-width:760px){.command-palette{padding-top:8vh}.command-box{width:94vw}.lpj-cell{min-width:270px}}

@media(min-width:1101px){.dashboard-head+.kpi-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}

/* NexusSFA 1.1.0 — Nexus design system, reliable theme engine, PWA and workflow UI */
:root{
  --primary:#1667ff;
  --primary-dark:#0e4fd8;
  --primary-soft:#eaf2ff;
  --secondary:#705cff;
  --accent:#20d3ff;
  --teal:#12b8a6;
  --ink:#122033;
  --muted:#68768a;
  --line:#dfe7f1;
  --bg:#f3f7fc;
  --panel:#ffffff;
  --panel-2:#f8fbff;
  --nav:#071a2d;
  --nav-2:#0b2d52;
  --success:#0fa77f;
  --warning:#f5a524;
  --danger:#df3d5a;
  --info:#1667ff;
  --shadow:0 16px 48px rgba(18,32,51,.09);
  --shadow-strong:0 22px 70px rgba(5,23,42,.18);
  --focus:0 0 0 3px rgba(22,103,255,.18);
  color-scheme:light;
}
:root[data-theme="dark"]{
  --primary:#4f8cff;
  --primary-dark:#75a5ff;
  --primary-soft:#112d56;
  --secondary:#8b7bff;
  --accent:#36d7ff;
  --teal:#2bd2bd;
  --ink:#edf5ff;
  --muted:#9eb0c5;
  --line:#263a50;
  --bg:#07111d;
  --panel:#0d1b2a;
  --panel-2:#102235;
  --nav:#030c16;
  --nav-2:#0a2441;
  --success:#35d3a7;
  --warning:#ffc15a;
  --danger:#ff6c84;
  --info:#69a0ff;
  --shadow:0 16px 48px rgba(0,0,0,.30);
  --shadow-strong:0 28px 80px rgba(0,0,0,.48);
  --focus:0 0 0 3px rgba(79,140,255,.25);
  color-scheme:dark;
}
html,body{min-height:100%;background:var(--bg);color:var(--ink)}
body{transition:background-color .18s ease,color .18s ease}
input,select,textarea,button{color-scheme:inherit}
::selection{background:color-mix(in srgb,var(--primary) 28%,transparent)}
.topbar{
  padding-left:max(22px,env(safe-area-inset-left));
  padding-right:max(22px,env(safe-area-inset-right));
  background:linear-gradient(100deg,var(--nav),var(--nav-2) 68%,#10477d);
  box-shadow:0 8px 24px rgba(3,19,35,.22);
}
.brand-mark,.avatar{color:var(--primary);background:#fff}
.nav-group.active .nav-trigger,.nav-trigger:hover,.icon-btn:hover,.mobile-menu:hover,.user-trigger:hover{background:rgba(79,140,255,.18)}
.nav-menu a:hover,.nav-menu a.active{background:var(--primary-soft);color:var(--primary)}
.nav-menu a span{background:var(--primary-soft);color:var(--primary)}
.btn-primary{background:linear-gradient(135deg,var(--primary),var(--secondary));box-shadow:0 7px 18px color-mix(in srgb,var(--primary) 24%,transparent)}
.btn-primary:hover{background:linear-gradient(135deg,var(--primary-dark),var(--secondary))}
.btn-success{background:var(--success);border-color:var(--success)}
.btn-danger{background:var(--danger);border-color:var(--danger)}
.bar-fill,.hbar i{background:linear-gradient(180deg,var(--primary),var(--accent))}
.hbar i{background:linear-gradient(90deg,var(--primary),var(--accent))}
.activity-dot{background:var(--primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 15%,transparent)}
.help-fab{background:linear-gradient(135deg,var(--primary),var(--secondary));box-shadow:0 12px 30px color-mix(in srgb,var(--primary) 34%,transparent)}
.login-body{background:radial-gradient(circle at 10% 0%,rgba(32,211,255,.16),transparent 32%),linear-gradient(135deg,#030d18,#0a2441 58%,#112d56)}
.login-brand{background:radial-gradient(circle at 85% 10%,rgba(32,211,255,.22),transparent 32%),linear-gradient(145deg,#071a2d,#10477d 62%,#1667ff)}
.login-shell{border:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
.panel,.kpi-card,.modal-card,.command-box,.login-shell{background:var(--panel);border-color:var(--line)}
.breadcrumb,.app-footer{background:var(--panel)}
.table-toolbar,th{background:color-mix(in srgb,var(--panel-2) 88%,var(--panel))}
tbody tr:hover{background:color-mix(in srgb,var(--primary-soft) 55%,transparent)}
td a,.row-actions button{color:var(--primary)}
.field input,.field select,.field textarea,.stack-form input,.toolbar-right select,.report-filter input,.route-form input,.route-form select{
  background:var(--panel-2);color:var(--ink);border-color:var(--line);
}
.field input:focus,.field select:focus,.field textarea:focus,.stack-form input:focus,.toolbar-right select:focus,.report-filter input:focus,.route-form input:focus,.route-form select:focus{border-color:var(--primary);box-shadow:var(--focus)}
.field input[readonly],.field textarea[readonly]{background:color-mix(in srgb,var(--bg) 72%,var(--panel));color:var(--muted);cursor:not-allowed}
.alert-success{background:color-mix(in srgb,var(--success) 12%,var(--panel));color:var(--success);border-color:color-mix(in srgb,var(--success) 34%,var(--line))}
.alert-error{background:color-mix(in srgb,var(--danger) 12%,var(--panel));color:var(--danger);border-color:color-mix(in srgb,var(--danger) 34%,var(--line))}
.alert-warning{background:color-mix(in srgb,var(--warning) 13%,var(--panel));color:color-mix(in srgb,var(--warning) 70%,var(--ink));border-color:color-mix(in srgb,var(--warning) 38%,var(--line))}
.alert-info{background:color-mix(in srgb,var(--primary) 10%,var(--panel));color:var(--primary);border-color:color-mix(in srgb,var(--primary) 30%,var(--line))}

.theme-menu{position:relative}
.theme-dropdown{position:absolute;right:0;top:42px;z-index:1200;width:160px;padding:7px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:var(--shadow-strong);color:var(--ink)}
.theme-dropdown button{width:100%;display:flex;align-items:center;gap:9px;border:0;border-radius:8px;background:transparent;color:var(--ink);padding:10px 11px;text-align:left}
.theme-dropdown button:hover,.theme-dropdown button.active{background:var(--primary-soft);color:var(--primary)}
.connection-chip{height:30px;display:inline-flex;align-items:center;gap:6px;padding:0 9px;border-radius:999px;background:rgba(255,255,255,.12);font-size:9px;font-weight:800}
.connection-chip i{width:7px;height:7px;border-radius:50%;background:#49e3b2;box-shadow:0 0 0 4px rgba(73,227,178,.14)}
.connection-chip.offline i{background:#ffbd5c;box-shadow:0 0 0 4px rgba(255,189,92,.15)}
.connection-chip.offline span{color:#ffe2ad}
.install-btn{background:rgba(32,211,255,.15)!important}

.command-palette{background:rgba(3,13,24,.68)}
.command-box{border-color:color-mix(in srgb,var(--primary) 22%,var(--line))}
.command-head>input{color:var(--ink)}
.command-close{background:var(--panel-2)}
.modal-backdrop{background:rgba(2,10,18,.68)}
body.overlay-open{overflow:hidden;touch-action:none}
[hidden],.command-palette[hidden],.modal[hidden],.theme-dropdown[hidden],.sync-toast[hidden]{display:none!important}

.approval-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.approval-card{padding:18px;display:flex;flex-direction:column;gap:9px;min-height:230px}
.approval-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.approval-type{display:inline-flex;padding:5px 8px;border-radius:7px;background:var(--primary-soft);color:var(--primary);font-size:9px;font-weight:900;letter-spacing:.5px;text-transform:uppercase}
.approval-card h2{font-size:17px;margin:3px 0 0}
.approval-card p{margin:0;color:var(--muted);font-size:11px}
.approval-card>strong{font-size:22px;margin:8px 0 auto}
.approval-actions{display:flex;gap:8px;padding-top:10px;border-top:1px solid var(--line)}
.approval-actions form{flex:1;margin:0}.approval-actions .btn{width:100%}

.sync-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-bottom:16px}
.sync-card{padding:22px;min-height:225px;display:flex;flex-direction:column;align-items:flex-start}
.sync-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary);font-size:23px;font-weight:900}
.sync-card h2{font-size:15px;margin:18px 0 7px}.sync-card strong{font-size:20px}.sync-card p{color:var(--muted);line-height:1.6;margin:8px 0 auto}.sync-card .btn{margin-top:16px}
.offline-capabilities{display:flex;flex-wrap:wrap;gap:8px;padding:18px 20px;border-bottom:1px solid var(--line)}
.offline-capabilities span{padding:8px 10px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:10px;font-weight:800}
.sync-log{padding:14px 20px}.sync-log-row{display:grid;grid-template-columns:90px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:10px}.sync-log-row:last-child{border-bottom:0}.sync-log-row b{color:var(--primary)}.sync-log-row span{color:var(--muted)}
.sync-toast{position:fixed;right:20px;bottom:78px;z-index:3000;max-width:min(420px,calc(100vw - 32px));padding:12px 15px;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--ink);box-shadow:var(--shadow-strong);font-size:11px;font-weight:700}
.sync-toast[data-tone="success"]{border-color:color-mix(in srgb,var(--success) 50%,var(--line));color:var(--success)}
.sync-toast[data-tone="warning"]{border-color:color-mix(in srgb,var(--warning) 50%,var(--line));color:color-mix(in srgb,var(--warning) 70%,var(--ink))}
.sync-toast[data-tone="error"]{border-color:color-mix(in srgb,var(--danger) 50%,var(--line));color:var(--danger)}

:root[data-theme="dark"] .map-canvas,:root[data-theme="dark"] .route-map{background:#0a1724}
:root[data-theme="dark"] .leaflet-tile-pane{filter:brightness(.72) saturate(.8) hue-rotate(170deg) invert(.05)}
:root[data-theme="dark"] .leaflet-control-zoom a,:root[data-theme="dark"] .leaflet-popup-content-wrapper,:root[data-theme="dark"] .leaflet-popup-tip{background:var(--panel);color:var(--ink);border-color:var(--line)}
:root[data-theme="dark"] .donut>div{background:var(--panel)}
:root[data-theme="dark"] input[type="date"],:root[data-theme="dark"] input[type="datetime-local"],:root[data-theme="dark"] input[type="time"],:root[data-theme="dark"] input[type="month"]{color-scheme:dark}
:root[data-theme="light"] input[type="date"],:root[data-theme="light"] input[type="datetime-local"],:root[data-theme="light"] input[type="time"],:root[data-theme="light"] input[type="month"]{color-scheme:light}

@media(max-width:1100px){
  .approval-grid,.sync-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .connection-chip span{display:none}
}
@media(max-width:760px){
  .topbar{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
  .theme-menu>.icon-btn,[data-command].icon-btn{display:grid;place-items:center}
  .install-btn,.connection-chip{display:none!important}
  .theme-dropdown{position:fixed;right:12px;top:54px}
  .approval-grid,.sync-grid{grid-template-columns:1fr}
  .approval-card,.sync-card{min-height:auto}
  .sync-toast{right:16px;bottom:72px}
}
@media print{
  :root,:root[data-theme="dark"]{--ink:#111;--muted:#555;--line:#ddd;--bg:#fff;--panel:#fff;color-scheme:light}
  .connection-chip,.theme-menu,.install-btn,.sync-toast{display:none!important}
}
