:root{--ink:#1c2b2a;--muted:#657472;--paper:#f4f6f3;--panel:#fff;--line:#dbe2de;--brand:#176b5b;--brand2:#d9eee8;--danger:#a64235}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif}.topbar{height:64px;background:#173d37;color:white;display:flex;align-items:center;position:fixed;inset:0 0 auto;z-index:10;padding:0 28px}.brand{color:white;text-decoration:none;font-size:20px;font-weight:750}.brand span{color:#93d6c7}.user-area{margin-left:auto;display:flex;gap:18px;align-items:center}.link-button{border:0;background:none;color:#d3ece6;cursor:pointer}.sidebar{position:fixed;top:64px;bottom:0;width:224px;background:#fff;border-right:1px solid var(--line);padding:20px 14px;overflow:auto}.sidebar a{display:block;padding:9px 12px;border-radius:7px;color:#314541;text-decoration:none}.sidebar a:hover{background:var(--brand2);color:#0d594b}.sidebar p{margin:18px 12px 6px;color:#82908e;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em}.content{margin:64px 0 0 224px;padding:34px;max-width:1500px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px}.page-head h1{font-size:28px;margin:2px 0}.page-head p{margin:0;color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.13em!important;font-size:11px;font-weight:750;color:var(--brand)!important}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.cards.three{grid-template-columns:repeat(3,1fr)}.card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:11px;box-shadow:0 2px 8px #19362f0a}.card{padding:20px}.card span{display:block;color:var(--muted)}.card strong{font-size:30px}.card.danger strong{color:var(--danger)}.panel{padding:22px;margin-bottom:20px}.panel-head{display:flex;justify-content:space-between}.panel h2{font-size:17px;margin:0 0 14px}.actions,.stack,.form-actions{display:flex;gap:10px;flex-wrap:wrap}.stack{flex-direction:column;align-items:flex-start}.btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid #bdc9c5;background:white;color:#24423c;border-radius:7px;padding:9px 14px;text-decoration:none;cursor:pointer;font-weight:650}.btn.primary{background:var(--brand);border-color:var(--brand);color:white}.btn.full{width:100%}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px}.clean-list{list-style:none;padding:0;margin:0}.clean-list li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #edf0ee}.clean-list li:last-child{border:0}.badge{display:inline-block;background:#edf1ef;border-radius:20px;padding:3px 8px;font-size:12px}.badge.good{background:#d9eee8;color:#075647}.table-wrap{overflow-x:auto;padding:0}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 14px;border-bottom:1px solid #e7ebe9;vertical-align:top}th{background:#f8faf9;color:#5e6e6b;font-size:12px;text-transform:uppercase;letter-spacing:.04em}td code{white-space:normal}.search{display:flex;max-width:480px;gap:8px;margin-bottom:18px}.form-control,.search input{width:100%;padding:9px 10px;border:1px solid #bcc9c5;border-radius:7px;background:white}.form-panel{max-width:760px}.form-panel form>p{display:grid;grid-template-columns:190px 1fr;gap:12px;align-items:start}.form-panel label{font-weight:650;padding-top:8px}.helptext{color:var(--muted);font-size:12px}.errorlist,.errors{color:var(--danger)}.message{padding:12px 15px;border-radius:8px;margin-bottom:16px;background:#d9eee8}.message.error{background:#f7ded9}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:linear-gradient(135deg,#123c35,#287464)}.login-card{width:min(420px,100%);background:white;padding:34px;border-radius:15px;box-shadow:0 20px 70px #071b1770}.login-card h1{margin-bottom:4px}.login-card>p{color:var(--muted)}.login-card form p{margin:18px 0}.login-card label{display:block;font-weight:650;margin-bottom:5px}.login-card input{width:100%;padding:11px;border:1px solid #bdc9c5;border-radius:7px}.login-mark{width:44px;height:44px;border-radius:10px;background:var(--brand);color:white;display:grid;place-items:center;font-size:22px;font-weight:800}.menu-button{display:none;margin-left:auto;background:none;border:0;color:white;font-size:22px}.empty{color:var(--muted);text-align:center}.pagination,.commit{margin:16px 0;display:flex;gap:16px;justify-content:center}@media(max-width:900px){.menu-button{display:block}.user-area span{display:none}.sidebar{transform:translateX(-100%);transition:.2s;z-index:9}.menu-open .sidebar{transform:none}.content{margin-left:0;padding:24px 16px}.cards{grid-template-columns:1fr 1fr}.two-col{grid-template-columns:1fr}}@media(max-width:560px){.cards,.cards.three{grid-template-columns:1fr}.form-panel form>p{display:block}.page-head{align-items:stretch;flex-direction:column}.user-area{margin-left:12px}}

/* Navigation */
.sidebar-toggle{width:38px;height:38px;margin-right:12px;border:0;border-radius:8px;background:#ffffff12;color:#fff;font-size:19px;cursor:pointer}.nav-icon{width:23px;display:inline-grid;place-items:center;font-size:18px}.nav-home{display:flex!important;align-items:center;gap:8px;font-weight:700;margin-bottom:8px}.nav-group{margin:4px 0}.nav-group summary{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:8px;color:#5d6c69;font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.055em;cursor:pointer;list-style:none}.nav-group summary::-webkit-details-marker{display:none}.nav-group summary:after{content:'›';margin-left:auto;font-size:18px;transition:transform .18s}.nav-group[open] summary:after{transform:rotate(90deg)}.nav-group>div{padding-left:31px}.sidebar a.active{background:var(--brand2);color:#075647;font-weight:750}.menu-backdrop{display:none}.nav-collapsed .sidebar{width:72px;padding:16px 9px;overflow:visible}.nav-collapsed .content{margin-left:72px}.nav-collapsed .nav-label,.nav-collapsed .nav-group>div,.nav-collapsed .nav-group summary:after{display:none}.nav-collapsed .nav-home,.nav-collapsed .nav-group summary{justify-content:center;padding:10px}.nav-collapsed .nav-icon{width:28px}.nav-collapsed .sidebar a{padding:9px}

/* Dashboard and analytics */
.dashboard-head h1{font-size:32px}.kpi-card{position:relative;overflow:hidden}.kpi-card:before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:#8cbfb3}.kpi-card small{display:block;margin-top:6px;color:#90a09d}.kpi-card strong{font-size:clamp(22px,2vw,30px);white-space:nowrap}.kpi-card.fuel:before{background:#3986b6}.kpi-card.maintenance:before{background:#d78a2f}.kpi-card.assets:before{background:#6b63b5}.dashboard-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:20px}.panel-head{align-items:flex-start;gap:16px}.panel-head a{color:var(--brand);text-decoration:none;font-size:13px;font-weight:700}.panel-head h2{margin-top:2px}.status-chart{display:grid;gap:16px;margin-top:14px}.status-chart.compact{gap:12px}.status-row>div:first-child{display:flex;justify-content:space-between;margin-bottom:6px}.status-row span{color:var(--muted)}.track{height:9px;background:#edf2f0;border-radius:8px;overflow:hidden}.track i{display:block;height:100%;min-width:0;background:linear-gradient(90deg,#176b5b,#54aa96);border-radius:8px}.action-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.action-grid a{display:flex;flex-direction:column;padding:14px;border:1px solid var(--line);border-radius:9px;color:var(--ink);text-decoration:none;transition:.15s}.action-grid a:hover{border-color:#82b8ac;background:#f3faf8;transform:translateY(-1px)}.action-grid span{color:var(--muted);font-size:12px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:110px;color:var(--muted);text-align:center}.empty-state b{color:var(--ink)}.filter-bar{display:flex;align-items:end;gap:10px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:11px;margin-bottom:20px}.filter-bar label{flex:1}.filter-bar label:first-child{flex:1.7}.filter-bar label>span{display:block;font-size:12px;font-weight:700;color:var(--muted);margin-bottom:4px}.analytics-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:20px}.chart-panel.wide{grid-row:span 2}.canvas-wrap{position:relative;min-height:330px}.canvas-wrap canvas{width:100%;height:330px;display:block}.canvas-wrap.donut{min-height:210px}.canvas-wrap.donut canvas{height:210px}.chart-empty{position:absolute;inset:0;display:none;place-items:center;color:var(--muted)}.chart-empty.visible{display:grid}.chart-legend{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:12px}.chart-legend span:before{content:'';width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:5px}.purchase-dot:before{background:#176b5b}.payroll-dot:before{background:#d78a2f}.maintenance-dot:before{background:#6b63b5}.donut-layout{display:grid;grid-template-columns:1fr 1.1fr;align-items:center}.chart-key{list-style:none;padding:0;margin:0}.chart-key li{display:grid;grid-template-columns:12px 1fr;gap:4px 8px;align-items:center;padding:8px 0;border-bottom:1px solid #edf1ef;color:var(--muted)}.chart-key i{width:9px;height:9px;border-radius:50%}.chart-key b{grid-column:2;color:var(--ink);font-size:12px}.table-title{display:flex;align-items:center;justify-content:space-between;padding:18px 18px 4px}.table-title h2{margin:0}

/* Import centre */
.import-alert{display:flex;gap:14px;padding:18px 20px;margin-bottom:20px;border:1px solid #e6c87f;background:#fff9e9;border-radius:11px}.import-alert p{margin:3px 0 0;color:#685e45}.alert-icon{display:grid;place-items:center;flex:0 0 28px;height:28px;border-radius:50%;background:#d89a24;color:#fff;font-weight:800}.stepper{display:grid;grid-template-columns:repeat(4,1fr);padding:0;margin:0 0 20px;list-style:none;background:#fff;border:1px solid var(--line);border-radius:11px;overflow:hidden}.stepper li{display:flex;gap:10px;align-items:center;padding:16px;border-right:1px solid var(--line)}.stepper li:last-child{border:0}.stepper li>b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#edf1ef}.stepper .done li>b,.stepper li.done>b{background:var(--brand);color:#fff}.stepper span{display:flex;flex-direction:column}.stepper small{color:var(--muted)}.template-groups{display:grid;gap:18px}.template-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.template-links a{padding:8px 11px;border-radius:7px;background:#edf6f3;color:#075647;text-decoration:none;font-weight:650}.mapping-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.mapping-grid article{padding:14px;background:#f7f9f8;border-radius:8px}.mapping-grid b,.mapping-grid span{display:block}.mapping-grid span{color:var(--muted);font-size:13px;margin-top:3px}.import-note{margin:18px 0 0;padding-top:16px;border-top:1px solid var(--line);color:var(--muted)}

@media(max-width:1100px){.analytics-grid,.dashboard-grid{grid-template-columns:1fr}.chart-panel.wide{grid-row:auto}.mapping-grid{grid-template-columns:1fr 1fr}.stepper{grid-template-columns:1fr 1fr}.stepper li:nth-child(2){border-right:0}.stepper li:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:900px){.sidebar-toggle{display:none}.menu-backdrop{position:fixed;inset:64px 0 0;z-index:8;border:0;background:#0b1f1b80}.menu-open .menu-backdrop{display:block}.sidebar{width:260px}.nav-collapsed .sidebar{width:260px}.nav-collapsed .content{margin-left:0}.nav-collapsed .nav-label,.nav-collapsed .nav-group summary:after{display:initial}.nav-collapsed .nav-group>div{display:block}.filter-bar{align-items:stretch;flex-direction:column}.filter-bar label{width:100%}.kpi-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.kpi-grid,.action-grid,.mapping-grid,.stepper{grid-template-columns:1fr}.stepper li{border-right:0;border-bottom:1px solid var(--line)!important}.stepper li:last-child{border-bottom:0!important}.donut-layout{grid-template-columns:1fr}.canvas-wrap{min-height:260px}.canvas-wrap canvas{height:260px}.topbar{padding:0 14px}.brand{font-size:17px}}
.form-note{display:flex;justify-content:space-between;gap:20px;padding:12px 14px;margin-bottom:18px;border:1px solid #bcdcd4;background:#f1faf7;border-radius:8px}.form-note span{color:var(--muted)}
.format-rule{padding:10px 12px;border-left:3px solid var(--brand);background:#f1f7f5;color:var(--muted)}.format-rule code{color:var(--ink);font-weight:700}
.kpi-card.labour:before{background:#d78a2f}.direct-labour-dot:before{background:#3986b6}

/* Microsoft Fluent-inspired portal theme */
:root{--ink:#242424;--muted:#616161;--paper:#f5f5f5;--panel:#fff;--line:#e0e0e0;--brand:#0f6cbd;--brand2:#ebf3fc;--danger:#d13438}
.topbar{background:#0f6cbd}.brand span{color:#d7e9f8}.link-button{color:#fff}
.sidebar a{color:#323130}.sidebar a:hover,.sidebar a.active{background:var(--brand2);color:#0f548c}.sidebar p,.nav-group summary{color:#616161}
.card,.panel{border-radius:6px;box-shadow:0 1px 3px #00000012}.btn{border-color:#c8c6c4;color:#242424;border-radius:4px}.btn:hover{border-color:#0f6cbd;background:#f5f9fd}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:#115ea3}
.badge,.stepper li>b{background:#f0f0f0}.badge.good,.message{background:#dff6dd;color:#107c10}
th{background:#fafafa;color:#484644}th,td,.clean-list li,.chart-key li{border-color:#edebe9}.form-control,.search input,.login-card input{border-color:#c8c6c4;border-radius:4px}
.auth-shell{background:linear-gradient(135deg,#0f548c,#2b88d8)}.login-card{border-radius:8px;box-shadow:0 16px 40px #0000003d}
.kpi-card:before{background:#0f6cbd}.kpi-card.fuel:before{background:#2b88d8}.kpi-card.maintenance:before{background:#8764b8}.kpi-card.assets:before{background:#038387}.kpi-card.labour:before{background:#498205}
.track{background:#edebe9}.track i{background:linear-gradient(90deg,#0f6cbd,#5caae6)}.action-grid a:hover{border-color:#8abadd;background:#f5f9fd}
.purchase-dot:before{background:#0f6cbd}.payroll-dot:before{background:#8764b8}.direct-labour-dot:before{background:#038387}.maintenance-dot:before{background:#498205}
.template-links a{background:#ebf3fc;color:#0f548c}.mapping-grid article{background:#fafafa}.form-note{border-color:#c7e0f4;background:#f3f9fd}.format-rule{background:#f3f9fd}
.menu-backdrop{background:#00000066}

/* Executive overview */
.project-strip{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:20px;padding:16px 18px;background:linear-gradient(100deg,#0f548c,#0f6cbd 56%,#2b88d8);color:#fff;border-radius:8px;box-shadow:0 4px 14px #0f6cbd26}.project-strip>div:first-child{display:flex;align-items:center;gap:14px}.project-strip strong,.project-strip small{display:block}.project-strip small{color:#d7e9f8}.project-mark{display:grid;place-items:center;min-width:82px;padding:8px 10px;border:1px solid #ffffff55;background:#ffffff18;border-radius:5px;font-size:12px;font-weight:800;letter-spacing:.05em}.project-meta{display:flex;align-items:center;justify-content:flex-end;gap:28px}.project-meta>span{display:flex;flex-direction:column;color:#d7e9f8;font-size:11px;text-transform:uppercase;letter-spacing:.05em}.project-meta b{margin-top:2px;color:#fff;font-size:13px;text-transform:none;letter-spacing:0}.status-pill{display:inline-flex!important;width:max-content;padding:2px 8px;border-radius:12px}.status-pill.active{background:#dff6dd!important;color:#107c10!important}.status-pill.closed{background:#fff4ce!important;color:#8a5d00!important}
.executive-kpis .kpi-card{min-height:137px;padding:19px 20px 17px}.executive-kpis .kpi-card:after{content:'';position:absolute;right:-28px;top:-35px;width:100px;height:100px;border-radius:50%;background:#0f6cbd0d}.executive-kpis .kpi-card strong{display:block;margin-top:7px;font-size:clamp(20px,1.75vw,27px);letter-spacing:-.02em}.executive-kpis .kpi-card small{max-width:92%;line-height:1.35}.kpi-card.budget:before{background:#8764b8}.kpi-card.payments:before{background:#038387}.kpi-card.spend:before{background:#0f6cbd}
.dashboard-analytics{margin-bottom:20px}.dashboard-analytics .panel{margin-bottom:0}.attention-panel{padding-bottom:8px}.control-list{display:grid;margin:2px -8px 0}.control-list a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 8px;border-bottom:1px solid #edebe9;color:var(--ink);text-decoration:none;border-radius:4px}.control-list a:last-child{border-bottom:0}.control-list a:hover{background:#f5f9fd}.control-list a>span{display:grid;grid-template-columns:34px 1fr;column-gap:10px;align-items:center}.control-list b,.control-list small{grid-column:2}.control-list small{color:var(--muted);font-size:11px}.control-list>a>strong{font-size:13px;text-align:right}.control-icon{grid-row:1 / span 2;display:grid;place-items:center;width:32px;height:32px;border-radius:4px;background:#ebf3fc;color:#0f6cbd;font-size:11px;font-style:normal;font-weight:800}.control-icon.tax{background:#fff4ce;color:#8a5d00}.control-icon.maintenance{background:#f3f0f8;color:#5c2e91}.control-icon.fuel{background:#e0f3f2;color:#006666}.tax-dot:before{background:#ca5010!important}.asset-dot:before{background:#8764b8!important}
.lower-dashboard{grid-template-columns:.9fr 1.1fr}.asset-summary{display:flex;align-items:baseline;gap:8px;padding:5px 0 12px;border-bottom:1px solid #edebe9}.asset-summary strong{font-size:30px;color:#0f6cbd}.asset-summary span{color:var(--muted)}.asset-summary b{margin-left:auto;font-size:12px;color:#038387}.lower-dashboard .action-grid a{min-height:70px}.lower-dashboard .action-grid a b{font-size:13px}.lower-dashboard .action-grid a span{margin-top:2px}
@media(max-width:1100px){.project-strip{align-items:flex-start}.project-meta{flex-wrap:wrap;gap:10px 24px}.lower-dashboard{grid-template-columns:1fr}}
@media(max-width:760px){.project-strip{align-items:stretch;flex-direction:column}.project-meta{display:grid;grid-template-columns:1fr 1fr;justify-content:start}.dashboard-head .actions{width:100%}.dashboard-head .actions .btn{flex:1}.executive-kpis .kpi-card{min-height:120px}.control-list>a>strong{max-width:145px}}
@media(max-width:620px){.project-meta{grid-template-columns:1fr}.executive-kpis .kpi-card strong{white-space:normal}.dashboard-head .actions{flex-direction:column}.dashboard-head .actions .btn{width:100%}}

/* Vehicle and machinery compliance */
.control-icon.compliance{background:#fde7e9;color:#a4262c}.compliance-cards .card{position:relative;overflow:hidden}.compliance-cards .card:before{content:'';position:absolute;inset:0 auto 0 0;width:4px}.compliance-card.expired:before{background:#d13438}.compliance-card.warning:before{background:#f2c811}.compliance-card.valid:before{background:#107c10}.compliance-card.missing:before{background:#8764b8}.compliance-card small{display:block;margin-top:5px;color:var(--muted)}.compliance-alert{display:flex;gap:13px;align-items:flex-start;padding:16px 18px;margin-bottom:20px;border:1px solid #f1aeb1;background:#fdf3f4;border-radius:6px}.compliance-alert p{margin:2px 0 0;color:#6d3235}.compliance-alert .alert-icon{background:#d13438}.badge.expired{background:#fde7e9;color:#a4262c}.badge.warning{background:#fff4ce;color:#8a5d00}.badge.valid{background:#dff6dd;color:#107c10}.badge.neutral{background:#edebe9;color:#484644}.compliance-row.expired td:first-child{box-shadow:inset 3px 0 #d13438}.compliance-row.warning td:first-child{box-shadow:inset 3px 0 #f2c811}.row-actions{display:flex;gap:10px}.table-count{color:var(--muted);font-size:12px}.muted{color:var(--muted)}.compliance-form{max-width:820px}.compliance-form input[type=checkbox]{width:18px;height:18px;margin-top:9px}
@media(max-width:900px){.compliance-cards{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.compliance-cards{grid-template-columns:1fr}}
.renewal-bands{padding-bottom:18px}.band-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;overflow:hidden;border:1px solid #edebe9;border-radius:5px;background:#edebe9}.band-grid div{padding:16px;background:#fff}.band-grid strong,.band-grid span{display:block}.band-grid strong{font-size:24px;color:#0f6cbd}.band-grid span{color:var(--muted);font-size:12px}.requirement-links{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}.requirement-links a{display:flex;flex-direction:column;padding:11px 12px;border:1px solid #edebe9;border-radius:5px;color:var(--ink);text-decoration:none}.requirement-links a:hover{border-color:#8abadd;background:#f5f9fd}.requirement-links span{color:var(--muted);font-size:12px}.requirement-table select,.requirement-table input{min-width:125px}.requirement-table input[name$='notes']{min-width:210px}.incident-cards .card strong{font-size:24px}.fleet-form{max-width:880px}.fleet-requirements .panel-head p{margin:2px 0;color:var(--muted)}
.band-grid.five{grid-template-columns:repeat(5,1fr)}
@media(max-width:900px){.requirement-links{grid-template-columns:1fr 1fr}.band-grid,.band-grid.five{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.requirement-links,.band-grid{grid-template-columns:1fr}}

/* Mobile-first application shell */
.mobile-nav{display:none}.install-button{margin-left:auto;margin-right:12px;border:1px solid #ffffff66;background:#ffffff18;color:#fff;border-radius:4px;padding:7px 10px;font-weight:650;cursor:pointer}
@media(max-width:760px){
  body{padding-bottom:calc(68px + env(safe-area-inset-bottom))}
  .content{padding:20px 12px 26px;max-width:100%;overflow:hidden}
  .topbar{height:58px;padding-top:env(safe-area-inset-top)}
  .sidebar{top:58px;padding-bottom:88px}.content{margin-top:58px}.menu-backdrop{inset:58px 0 0}
  .user-area{display:none}.install-button{font-size:12px}.menu-button{margin-left:0}
  .mobile-nav{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);z-index:12;inset:auto 0 0;background:#fff;border-top:1px solid #d2d0ce;padding:5px 5px calc(5px + env(safe-area-inset-bottom));box-shadow:0 -3px 14px #00000012}
  .mobile-nav a,.mobile-nav button{display:flex;min-width:0;min-height:54px;align-items:center;justify-content:center;flex-direction:column;gap:1px;border:0;background:none;color:#484644;text-decoration:none;font:600 10px/1.2 system-ui;cursor:pointer}
  .mobile-nav span{font-size:20px;line-height:1.2;color:#0f6cbd}
  .btn,.form-control,.search input,button,input,select,textarea{min-height:44px;font-size:16px}
  .page-head{margin-bottom:16px;gap:12px}.page-head h1{font-size:24px}.panel{padding:16px;margin-bottom:14px}.card{padding:16px}.card strong{font-size:24px}
  .form-panel{max-width:none}.form-panel form>p{display:block;margin:0 0 17px}.form-panel label{display:block;padding:0 0 5px}.helptext{display:block;margin-top:5px}
  .form-note{align-items:flex-start;flex-direction:column;gap:2px}.search{max-width:none}
  .actions,.form-actions{display:grid;grid-template-columns:1fr;width:100%}.actions .btn,.form-actions .btn{width:100%}
  .table-wrap{overflow:visible;border:0;background:transparent;box-shadow:none}.table-title{padding:10px 2px}
  .mobile-table,.mobile-table tbody,.mobile-table tr,.mobile-table td{display:block;width:100%}.mobile-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .mobile-table tbody{display:grid;gap:12px}.mobile-table tbody tr{overflow:hidden;background:#fff;border:1px solid #e0e0e0;border-radius:6px;box-shadow:0 1px 3px #0000000d}
  .mobile-table tbody td{display:grid;grid-template-columns:minmax(105px,38%) 1fr;gap:10px;padding:10px 12px;border-bottom:1px solid #edebe9;text-align:right;overflow-wrap:anywhere}
  .mobile-table tbody td:before{content:attr(data-label);color:#616161;font-size:11px;font-weight:700;letter-spacing:.03em;text-align:left;text-transform:uppercase}
  .mobile-table tbody td:last-child{border-bottom:0}.mobile-table tbody td.empty{display:block;text-align:center}.mobile-table tbody td.empty:before{display:none}
  .row-actions{justify-content:flex-end;flex-wrap:wrap}.filter-bar .btn{width:100%}
}
@media(max-width:380px){.brand{font-size:15px}.mobile-nav a,.mobile-nav button{font-size:9px}.content{padding-left:9px;padding-right:9px}.mobile-table tbody td{grid-template-columns:1fr;text-align:left}}

/* Budget and inventory controls */
.control-cutover{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px;padding:13px 16px;border:1px solid #c7e0f4;background:#f3f9fd;border-radius:6px}.control-cutover span{color:var(--muted)}.opt-in-panel{max-width:820px;padding:28px}.opt-in-panel p{max-width:680px}.mini-progress{height:4px;margin-top:7px;background:#edebe9;border-radius:4px;overflow:hidden}.mini-progress i{display:block;height:100%;background:#0f6cbd}.negative{color:#a4262c;font-weight:700}.guidance-panel{border-left:4px solid #0f6cbd}.guidance-panel p{margin-bottom:0;color:var(--muted)}.inventory-actions{padding:14px}.inventory-actions .action-grid{grid-template-columns:repeat(4,1fr)}.draft-note{margin-bottom:16px;padding:10px 12px;border:1px solid #c7e0f4;background:#f3f9fd;color:#0f548c;border-radius:4px}.mobile-alert-button{white-space:nowrap}
@media(max-width:900px){.inventory-actions .action-grid{grid-template-columns:1fr 1fr}.control-cutover{align-items:flex-start;flex-direction:column;gap:2px}}
@media(max-width:560px){.inventory-actions .action-grid{grid-template-columns:1fr}.control-cutover{margin-left:0;margin-right:0}.opt-in-panel{padding:20px}}

/* Shambhala logo branding with the portal's Fluent blue application palette */
:root{
  --ink:#242424;
  --muted:#616161;
  --paper:#f5f5f5;
  --panel:#fff;
  --line:#e0e0e0;
  --brand:#0f6cbd;
  --brand-dark:#0f548c;
  --brand-sage:#038387;
  --brand2:#ebf3fc;
  --danger:#d13438;
}
body{background:var(--paper);color:var(--ink)}
.topbar{
  background:linear-gradient(105deg,#0f548c,#0f6cbd 72%,#2b88d8);
  border-bottom:3px solid #0b4f84;
  box-shadow:0 3px 14px #0f548c2e;
}
.brand{display:flex;align-items:center;gap:11px;min-width:0;color:#fff;font-size:inherit;font-weight:inherit}
.topbar .brand span{color:inherit}
.brand-logo-shell{
  display:grid;
  place-items:center;
  flex:0 0 44px;
  width:44px;
  height:44px;
  overflow:hidden;
  border:1px solid #ffffff80;
  border-radius:9px;
  background:#fff;
  box-shadow:0 2px 8px #0004;
}
.brand-logo{display:block;width:100%;height:100%;object-fit:contain}
.brand-copy{display:grid;line-height:1.08}
.brand-copy strong{font-size:16px;font-weight:750;letter-spacing:.01em}
.brand-copy small{margin-top:4px;color:#d7e9f8;font-size:9px;font-weight:750;letter-spacing:.16em;text-transform:uppercase}
.sidebar{border-right-color:#e0e0e0;box-shadow:3px 0 14px #0f548c0a}
.sidebar a:hover,.sidebar a.active{background:var(--brand2);color:#0f548c}
.nav-group summary{color:#616161}
.sidebar-toggle,.install-button{border-color:#ffffff40;background:#ffffff10}
.sidebar-toggle:hover,.install-button:hover{background:#ffffff20}
.link-button{color:#fff}.link-button:hover{color:#d7e9f8}
.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 1px 2px #0f548c33}
.btn.primary:hover{background:#115ea3;border-color:#115ea3}
.btn:hover{border-color:var(--brand);background:#f5f9fd}
.eyebrow,.panel-head a{color:#0f548c!important}
.card,.panel{border-color:var(--line);box-shadow:0 2px 8px #0f548c0a}
.kpi-card:before,.kpi-card.spend:before{background:var(--brand)}
.kpi-card.fuel:before,.kpi-card.payments:before{background:var(--brand-sage)}
.kpi-card.maintenance:before{background:#ca5010}
.kpi-card.assets:before{background:#038387}.kpi-card.budget:before{background:#8764b8}
.track i{background:linear-gradient(90deg,var(--brand),#5caae6)}
.purchase-dot:before{background:#0f6cbd}.payroll-dot:before{background:#8764b8}.direct-labour-dot:before{background:#038387}.tax-dot:before{background:#ca5010!important}.maintenance-dot:before{background:#498205}.asset-dot:before{background:#8764b8!important}
.project-strip{background:linear-gradient(105deg,#0f548c,#0f6cbd 58%,#2b88d8)}
.project-mark{border-color:#ffffff66;background:#ffffff12}
.scope-strip{flex-wrap:wrap}.scope-summary{display:flex;align-items:center;gap:14px;min-width:230px}.dashboard-scope-form{flex:1;min-width:300px;max-width:580px}.dashboard-scope-form label{display:block;margin-bottom:5px;color:#e8f2fb;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.dashboard-scope-form>div{display:flex;gap:8px}.dashboard-scope-form select{min-width:0;height:38px;border-color:#ffffff66;background:#fff;color:var(--ink)}.dashboard-scope-form .btn{height:38px;white-space:nowrap}.scope-apply{border-color:#fff!important;background:#fff!important;color:#0f548c!important}.scope-apply:hover{background:#ebf3fc!important}.scope-clear{border-color:#ffffff66!important;background:#ffffff12!important;color:#fff!important}.scope-clear:hover{background:#ffffff25!important}.kpi-title{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.scope-chip{display:inline-flex;max-width:48%;padding:3px 7px;border:1px solid #d7e7f5;background:#f3f8fc;color:#0f548c;border-radius:12px;font-size:10px;line-height:1.2;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.executive-kpis .kpi-card>strong,.executive-kpis .kpi-card>small{position:relative;z-index:1}
@media(max-width:760px){.scope-summary,.dashboard-scope-form{min-width:0;max-width:none;width:100%}}
@media(max-width:620px){.dashboard-scope-form>div{flex-wrap:wrap}.dashboard-scope-form select{flex:1 0 100%}.dashboard-scope-form .btn{flex:1}}
.control-icon{background:#ebf3fc;color:#0f548c}
.mobile-nav span{color:var(--brand)}
.status-pill.active{background:#dff6dd!important;color:#107c10!important}
.print-letterhead,.print-page-footer{display:none}

/* Branded sign-in */
.auth-shell{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 18% 20%,#5caae650 0,transparent 32%),
    radial-gradient(circle at 85% 82%,#03838770 0,transparent 36%),
    linear-gradient(135deg,#0b3a63,#0f6cbd 56%,#2b88d8);
}
.auth-shell:before,.auth-shell:after{content:'';position:absolute;border:1px solid #ffffff12;border-radius:50%;pointer-events:none}
.auth-shell:before{width:430px;height:430px;left:-170px;bottom:-220px}
.auth-shell:after{width:320px;height:320px;right:-120px;top:-140px}
.login-card{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(280px,.9fr) minmax(390px,1.1fr);
  width:min(920px,100%);
  padding:0;
  overflow:hidden;
  border:1px solid #ffffff4d;
  border-radius:14px;
  box-shadow:0 28px 80px #10131080;
}
.login-brand-panel{
  display:flex;
  min-height:560px;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  padding:48px 38px 38px;
  border-right:1px solid #e4e5e1;
  background:linear-gradient(150deg,#fff,#f4f2ed);
  text-align:center;
}
.login-logo{display:block;width:min(250px,86%);height:auto;mix-blend-mode:multiply}
.login-company{margin-top:22px;padding-top:18px;border-top:1px solid #dadbd7}
.login-company p{margin:0;color:var(--brand-dark);font-size:18px;font-weight:760;letter-spacing:.01em}
.login-company span{display:block;margin-top:4px;color:var(--muted);font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.login-form-panel{display:flex;justify-content:center;flex-direction:column;padding:52px 54px;background:#fff}
.login-form-panel h1{margin:3px 0 5px;font-size:34px;letter-spacing:-.03em}
.login-form-panel .eyebrow{margin:0}
.login-intro{max-width:390px;margin:0 0 24px;color:var(--muted)}
.login-form-panel form p{margin:17px 0}
.login-form-panel input{min-height:46px;padding:11px 12px;border-color:#c7ccc8}
.login-form-panel input:focus{outline:3px solid #0f6cbd26;border-color:var(--brand)}
.login-security{margin:22px 0 0;color:#868c88;font-size:11px;text-align:center}

/* Report presentation and print letterhead */
.report-actions{justify-content:flex-end}
.report-head{padding-bottom:16px;border-bottom:1px solid var(--line)}
@media(max-width:760px){
  .brand-logo-shell{flex-basis:36px;width:36px;height:36px;border-radius:7px}
  .brand-copy strong{font-size:13px}.brand-copy small{display:none}
  .login-card{grid-template-columns:1fr;max-width:500px}
  .login-brand-panel{min-height:auto;padding:24px 24px 18px;border-right:0;border-bottom:1px solid #e4e5e1}
  .login-logo{width:145px}
  .login-company{margin-top:10px;padding-top:10px}
  .login-company p{font-size:15px}.login-company span{font-size:10px}
  .login-form-panel{padding:30px 26px}.login-form-panel h1{font-size:28px}
}
@media(max-width:380px){
  .brand{font-size:inherit}.brand-copy strong{font-size:12px}
  .login-form-panel{padding:26px 20px}
}
@media print{
  @page{size:A4 landscape;margin:12mm}
  body{padding:0!important;background:#fff!important;color:#222;font-size:11px}
  .topbar,.sidebar,.menu-backdrop,.mobile-nav,.no-print,.install-button{display:none!important}
  .content{max-width:none!important;margin:0!important;padding:0!important;overflow:visible!important}
  .print-letterhead{
    display:flex;
    align-items:center;
    gap:15px;
    margin:0 0 16px;
    padding:0 0 11px;
    border-bottom:2px solid #c87424;
  }
  .print-letterhead img{width:70px;height:70px;object-fit:contain}
  .print-letterhead div{display:grid}
  .print-letterhead strong{color:#2d302e;font-size:21px;line-height:1.2}
  .print-letterhead span{margin-top:3px;color:#68746d;font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
  .page-head{margin-bottom:12px}.page-head h1{font-size:22px}
  .cards{grid-template-columns:repeat(4,1fr)!important;gap:8px;margin-bottom:10px}
  .card,.panel{break-inside:avoid;border:1px solid #cfd3d0;box-shadow:none}
  .card{padding:10px}.card strong,.kpi-card strong{font-size:17px}
  .panel{padding:12px;margin-bottom:10px}
  .analytics-grid,.two-col,.dashboard-grid{gap:10px}
  .canvas-wrap,.canvas-wrap canvas{min-height:210px!important;height:210px!important}
  table{font-size:9px}th,td{padding:6px 7px}
  a{color:inherit;text-decoration:none}
  a[href]:after{content:none!important}
}

/* Management report centre */
.report-guide{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:22px 24px;background:linear-gradient(105deg,#303632,#4e5b53);color:#fff}
.report-guide h2{margin:2px 0 4px;color:#fff}.report-guide p{margin:0;color:#e4e9e5}.report-guide .eyebrow{color:#efb276!important}
.report-pack-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.report-pack-links a{padding:9px 12px;border:1px solid #ffffff3d;border-radius:5px;background:#ffffff10;color:#fff;text-decoration:none;font-size:12px;font-weight:700}.report-pack-links a:hover{border-color:#efb276;background:#ffffff1c}
.report-catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 0 20px}
.report-card{position:relative;display:grid;grid-template-columns:48px 1fr auto;align-items:start;gap:15px;min-height:154px;padding:21px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);text-decoration:none;box-shadow:0 2px 8px #2427250b;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}
.report-card:hover{transform:translateY(-2px);border-color:#d59a64;box-shadow:0 8px 24px #3a2b1d14}.report-card.featured{grid-column:1/-1;min-height:130px;background:linear-gradient(110deg,#fff9f3,#fff)}
.report-card-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:9px;background:#fff1e4;color:#a95818;font-weight:850}.report-card.featured .report-card-icon{background:#303632;color:#efb276}
.report-card small{color:#a95818;font-size:10px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.report-card h2{margin:5px 0 4px;font-size:17px}.report-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.report-card b{align-self:center;color:#a95818;font-size:12px;white-space:nowrap}
.principle-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.principle-grid article{display:grid;gap:4px;padding:14px;border:1px solid var(--line);border-radius:6px;background:#fafbfa}.principle-grid span{color:var(--muted);font-size:12px;line-height:1.4}
.report-filter{display:grid;grid-template-columns:minmax(190px,1.4fr) repeat(3,minmax(150px,1fr)) auto auto;align-items:end}.report-filter label small{display:block;margin-top:3px;color:var(--muted);font-size:10px}
.report-context{display:grid;grid-template-columns:1.2fr 1fr auto;gap:1px;overflow:hidden;margin:0 0 18px;border:1px solid var(--line);border-radius:6px;background:var(--line)}.report-context div{display:grid;gap:2px;padding:11px 14px;background:#fff}.report-context span{color:var(--muted);font-size:9px;font-weight:750;letter-spacing:.09em;text-transform:uppercase}.report-context strong{font-size:12px}
.report-kpis .kpi-card{min-height:118px}.report-kpis .kpi-card small{display:block;margin-top:6px;color:var(--muted);font-size:11px}.report-kpis .kpi-card.accent:before{background:var(--brand)}.report-kpis .kpi-card.good:before{background:#4e735d}.report-kpis .kpi-card.danger:before{background:#b33a32}
.report-alert{display:flex;gap:16px;align-items:flex-start;margin:0 0 18px;padding:13px 16px;border:1px solid #e3b883;border-left:4px solid #c87424;border-radius:6px;background:#fff9f1}.report-alert strong{min-width:175px;color:#8f4914}.report-alert ul{margin:0;padding-left:18px;color:#654a37}.report-alert.danger{border-color:#e4aaa6;border-left-color:#b33a32;background:#fff5f4}.report-alert.danger strong{color:#8c2c27}
.report-visual{padding-bottom:20px}.report-bars{display:grid;grid-template-columns:1fr 1fr;gap:14px 28px}.report-bar>div:first-child{display:flex;justify-content:space-between;gap:15px;margin-bottom:5px;font-size:12px}.report-bar span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-bar strong{font-size:11px}.report-bar .track{height:7px}
.report-section{padding:0;overflow:auto}.report-section .table-title{align-items:flex-start}.report-section .table-title h2{margin-bottom:2px}.report-section .table-title p{margin:0;color:var(--muted);font-size:11px}.report-table{min-width:100%}.report-table td{vertical-align:top}.report-table td.number{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.report-table td small{display:block;margin-top:3px;color:var(--muted);font-size:10px;line-height:1.3}.report-table td.danger{color:#a32d27;font-weight:700}.report-table td.good{color:#386148;font-weight:700}
.report-notes ol{margin:0;padding-left:22px;color:var(--muted)}.report-notes li{padding:4px 0}.report-footer{display:none}
@media(max-width:1100px){.report-filter{grid-template-columns:repeat(3,1fr)}.report-filter .btn{width:100%}.principle-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){
  .report-guide{align-items:flex-start;flex-direction:column}.report-pack-links{justify-content:flex-start}
  .report-catalog{grid-template-columns:1fr}.report-card.featured{grid-column:auto}.report-card{grid-template-columns:44px 1fr;min-height:auto;padding:17px}.report-card b{grid-column:2}
  .report-filter{grid-template-columns:1fr}.report-context{grid-template-columns:1fr}.report-bars{grid-template-columns:1fr}.report-alert{flex-direction:column;gap:6px}.principle-grid{grid-template-columns:1fr}
  .report-section{overflow:visible}.report-section .table-title{padding-left:2px;padding-right:2px}
}
@media print{
  .report-context{margin-bottom:9px}.report-context div{padding:6px 9px}.report-context strong{font-size:10px}
  .report-kpis{grid-template-columns:repeat(4,1fr)!important}.report-kpis .kpi-card{min-height:82px;padding:8px}.report-kpis .kpi-card small{font-size:8px}
  .report-alert{display:block;margin-bottom:8px;padding:8px;font-size:9px}.report-alert strong{display:block;margin-bottom:3px}.report-alert ul{margin:0}
  .report-visual{padding:9px}.report-bars{grid-template-columns:1fr 1fr;gap:7px 18px}.report-bar>div:first-child{margin-bottom:2px;font-size:9px}.report-bar .track{height:4px}
  .report-section{overflow:visible;padding:0}.report-section .table-title{padding:8px}.report-section table{font-size:7.5px}.report-section th,.report-section td{padding:4px 5px}
  .report-section td small{font-size:7px}.report-notes{padding:9px;font-size:8px}.report-footer{display:block;margin-top:10px;padding-top:6px;border-top:1px solid #bbb;color:#666;font-size:7px;text-align:center}
}

/* Repeated print identity and page numbering */
@page{
  size:A4 landscape;
  margin:12mm 12mm 18mm;
  @bottom-right{
    content:"Page " counter(page);
    color:#5f665f;
    font:700 8pt system-ui,sans-serif;
  }
}

/* Paper-friendly report registers */
@media print{
  .print-letterhead{gap:9px;margin-bottom:8px;padding-bottom:7px}
  .print-letterhead img{width:42px;height:42px}
  .print-letterhead strong{font-size:16px}.print-letterhead span{font-size:7px}
  .report-head{margin-bottom:7px;padding-bottom:6px}.report-head h1{font-size:18px}.report-head p:not(.eyebrow){display:none}
  .report-context{margin-bottom:6px}.report-context div{padding:4px 7px}.report-context span{font-size:6px}.report-context strong{font-size:8px}
  .report-kpis{gap:5px;margin-bottom:7px}.report-kpis .kpi-card{min-height:54px;padding:6px 7px}
  .report-kpis .kpi-card span{font-size:6px}.report-kpis .kpi-card strong{margin-top:2px;font-size:11px}.report-kpis .kpi-card small{margin-top:2px;font-size:6px}
  .report-visual{display:none!important}
  .report-section{display:block!important;break-inside:auto!important;page-break-inside:auto!important;margin:0 0 7px!important;border:0!important}
  .report-section.print-detail-section{display:none!important}
  body.print-detailed .report-section.print-detail-section{display:block!important}
  .report-section .table-title{padding:4px 0;border-bottom:1px solid #999}
  .report-section .table-title h2{font-size:10px}.report-section .table-title p,.report-section .table-count{font-size:6px}
  .report-table{display:table!important;width:100%!important;min-width:0!important;table-layout:fixed;border-collapse:collapse;font-size:6.7px;line-height:1.18}
  .report-table thead{position:static!important;display:table-header-group!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important}
  .report-table tbody{display:table-row-group!important}
  .report-table tr,.report-table tbody tr{display:table-row!important;width:auto!important;break-inside:avoid!important;page-break-inside:avoid!important;border:0!important;border-radius:0!important;background:#fff!important;box-shadow:none!important}
  .report-table th,.report-table td,.report-table tbody td{display:table-cell!important;width:auto!important;min-width:0!important;height:auto!important;padding:3px 4px!important;border:1px solid #bfc4c0!important;background:#fff!important;color:#222!important;text-align:left;white-space:normal!important;overflow-wrap:anywhere}
  .report-table th{background:#ecefeb!important;color:#2d302e!important;font-size:6.2px;font-weight:800;letter-spacing:.01em;text-transform:none}
  .report-table td.number{text-align:right!important;white-space:nowrap!important}
  .report-table td:before,.report-table tbody td:before{display:none!important;content:none!important}
  .report-table td small{margin-top:1px;font-size:5.5px;line-height:1.12}
  .report-table.columns-10,.report-table.columns-11,.report-table.columns-12{font-size:5.8px}
  .report-table.columns-10 th,.report-table.columns-10 td,.report-table.columns-11 th,.report-table.columns-11 td,.report-table.columns-12 th,.report-table.columns-12 td{padding:2px 3px!important}
  .report-alert{margin-bottom:6px;padding:5px 7px;font-size:7px}.report-notes{padding:6px;font-size:6.5px}
  .report-footer{display:none!important}
}
