:root{--font-ui: "Sora", "Avenir Next", "Segoe UI Variable", "Trebuchet MS", sans-serif;--bg-main: #f4f8fb;--bg-soft: #e9f2f6;--surface: #ffffff;--surface-muted: #f8fbfd;--ink-900: #102033;--ink-700: #3f5063;--ink-500: #6d7e90;--line: #d9e3eb;--line-strong: #c2d0db;--brand: #0f766e;--brand-strong: #0b5d57;--brand-soft: #d9f2ef;--accent: #f59e0b;--danger: #c2413a;--danger-soft: #fde7e5;--ok: #177245;--ok-soft: #d7f2df;--warn: #935d0f;--warn-soft: #fdf1dd;--shadow-sm: 0 8px 18px rgba(12, 29, 47, .06);--shadow-md: 0 18px 38px rgba(12, 29, 47, .1);--radius-lg: 16px;--radius-md: 12px;--radius-sm: 10px}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-ui);color:var(--ink-900);background:radial-gradient(1200px 500px at 90% -10%,#d3f3ef 0%,transparent 60%),radial-gradient(1000px 420px at -10% 0%,#fef3dc 0%,transparent 55%),linear-gradient(180deg,var(--bg-main) 0%,var(--bg-soft) 100%)}a{color:inherit}.top-nav{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;gap:1rem;flex-wrap:nowrap;align-items:stretch;padding:.8rem 1.25rem;background:linear-gradient(135deg,#0c1927fa,#122f3af5),#102033f0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 10px 28px #0a142247}.top-nav-links{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;min-width:0}.top-nav-auth{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.brand-link{font-weight:800!important;letter-spacing:.02em!important;margin-right:.1rem;align-self:center}.top-nav a{text-decoration:none;color:#f5fbff;font-weight:600;font-size:.92rem;letter-spacing:.01em;border-radius:999px;padding:.4rem .8rem;transition:background-color .18s ease}.module-nav{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.top-nav a.module-nav-item{display:inline-flex;align-items:center;gap:.45rem;min-height:2.35rem;border-radius:var(--radius-sm);padding:.28rem .55rem .28rem .3rem;background:#ffffff14;border:1px solid rgba(205,225,236,.18);box-shadow:inset 0 1px #ffffff14}.module-nav-icon{display:grid;place-items:center;width:1.72rem;height:1.72rem;border-radius:.45rem;color:#081521;font-size:.62rem;font-weight:900;letter-spacing:0;background:#b9f1e9}.module-nav-icon svg{display:block}.top-nav a.module-nav-item:hover,.top-nav a.module-nav-item.active{background:#ffffff2e;border-color:#ebf7fc70;transform:translateY(-1px)}.top-nav a.module-nav-item.active{box-shadow:inset 0 1px #ffffff2e,0 8px 18px #0000002e}.module-tone-teal .module-nav-icon{background:#99f6e4}.module-tone-amber .module-nav-icon{background:#fcd34d}.module-tone-stone .module-nav-icon{background:#d6d3d1}.module-tone-blue .module-nav-icon{background:#93c5fd}.module-tone-red .module-nav-icon{background:#fca5a5}.module-tone-green .module-nav-icon{background:#86efac}.module-tone-violet .module-nav-icon{background:#c4b5fd}.module-tone-cyan .module-nav-icon{background:#67e8f9}.module-tone-gold .module-nav-icon{background:#fbbf24}.module-tone-slate .module-nav-icon{background:#cbd5e1}.top-nav a:hover{background:#ffffff29}.user-pill{color:#d6f7f2;background:#11827959;border:1px solid rgba(129,230,217,.45);border-radius:999px;padding:.32rem .62rem;font-size:.8rem;font-weight:700;white-space:nowrap}.signout-btn{box-shadow:none;padding:.42rem .78rem;font-size:.84rem}.auth-link-btn{background:#128174f2;border:1px solid rgba(183,245,236,.4)}.top-nav a.auth-link-btn:hover{background:#14988a}.nav-register-btn{background:#ffffff1f;border:1px solid rgba(198,221,235,.42)}.top-nav a.nav-register-btn:hover{background:#ffffff38}.nav-user-login-btn{background:#6baaff33;border:1px solid rgba(193,223,255,.5)}.top-nav a.nav-user-login-btn:hover{background:#6baaff52}.auth-wrap,.page-wrap{width:min(1220px,100%);margin:0 auto;padding:1.6rem 1.2rem 2.5rem}.home-page{display:grid;gap:1rem;background:linear-gradient(180deg,#07121a8c,#07121a59),url(/images/home-hero.jpg) center/cover no-repeat fixed;border-radius:24px;padding:1.2rem}.home-hero{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;border-radius:22px;overflow:hidden;border:1px solid #b8d1dc;background:#09162099;box-shadow:var(--shadow-md);min-height:320px}.home-hero-copy{padding:1.5rem 1.4rem;display:grid;align-content:center;gap:.75rem;color:#effbff;max-width:640px;background:#09162059;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.home-eyebrow{display:inline-flex;width:fit-content;border-radius:999px;background:#f2af4838;border:1px solid rgba(250,220,145,.44);color:#ffe6b8;padding:.22rem .68rem;font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em}.home-hero-copy h1{color:#fff;line-height:1.14}.home-description{color:#d9eef7;max-width:58ch}.home-hero-actions{margin-top:.3rem;display:flex;flex-wrap:wrap;gap:.6rem}.home-secondary-btn{display:inline-flex;align-items:center;border-radius:var(--radius-sm);border:1px solid rgba(194,231,246,.52);background:#1439538c;color:#e9f9ff;text-decoration:none;font-weight:700;padding:.55rem .88rem}.home-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.home-strip>div{background:#ffffffdb;border:1px solid var(--line);border-radius:var(--radius-md);padding:.8rem;box-shadow:var(--shadow-sm);display:grid;gap:.3rem}.home-strip strong{font-size:.96rem}.home-strip span{color:var(--ink-700);font-size:.88rem}.home-dashboard{background:#ffffffe6;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1.2rem;display:grid;gap:.95rem}.home-dashboard-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.home-dashboard-header h2{margin-top:.25rem}.home-dashboard-note{color:var(--ink-600);max-width:60ch}.home-dashboard .home-eyebrow{background:#145b921f;border:1px solid rgba(20,91,146,.24);color:#1f5f8a}.home-dashboard-locked{text-align:center}.home-dashboard-locked h3{margin-bottom:.35rem}.home-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.home-feature-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;display:grid;grid-template-rows:auto auto 1fr}.home-feature-card img{width:100%;height:170px;object-fit:cover;background:#10283b}.home-feature-card h3{padding:.8rem .8rem .2rem}.home-feature-card p{padding:0 .8rem .95rem;color:var(--ink-700)}h1,h2,h3{margin:0;letter-spacing:-.015em}h1{font-size:clamp(1.45rem,3vw,1.9rem)}h2{font-size:clamp(1.1rem,2.2vw,1.35rem)}h3{font-size:clamp(1rem,1.8vw,1.12rem)}p{margin:0}.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem}.action-btn,button,.form-card button,.auth-card button{border:0;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--brand) 0%,#128174 100%);color:#f7feff;font-weight:700;letter-spacing:.01em;text-decoration:none;padding:.62rem .95rem;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background-color .12s ease;box-shadow:0 8px 16px #0f766e33}.action-btn:hover,button:hover,.form-card button:hover,.auth-card button:hover{transform:translateY(-1px);box-shadow:0 12px 22px #0f766e40}button:disabled,.form-card button:disabled,.auth-card button:disabled{cursor:not-allowed;transform:none;opacity:.6;box-shadow:none}.data-table-wrap{overflow:auto;border-radius:var(--radius-lg);border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-sm)}.trips-page-layout{display:grid;gap:1rem}.trip-date-panel{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);padding:1rem;display:grid;gap:.9rem}.trip-date-panel-header h2,.trip-details-header h2{margin:0;font-size:1rem}.trip-date-panel-header p,.trip-details-header p{margin:.2rem 0 0}.trip-calendar-card{display:grid;gap:.9rem;padding:1rem;border:1px solid var(--line);border-radius:var(--radius-md);background:radial-gradient(circle at top right,rgba(44,106,162,.1),transparent 42%),linear-gradient(180deg,#fff,#f5f9fc)}.trip-range-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.trip-filter-actions{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap}.trip-calendar-field{display:grid;gap:.45rem;font-weight:600;color:var(--ink-700)}.trip-calendar-field input,.trip-calendar-field select{width:100%;max-width:280px;padding:.8rem .9rem;border:1px solid var(--line);border-radius:var(--radius-md);background:#fffffff5;color:var(--ink-900);font:inherit}.trip-calendar-summary{display:grid;gap:.2rem;padding-top:.2rem}.trip-calendar-summary strong{color:var(--ink-900)}.trip-calendar-summary span{color:var(--ink-500);font-size:.92rem}.trip-visual-card{margin-top:.9rem;display:grid;gap:.8rem;padding-top:.85rem;border-top:1px solid #dbe7f0}.trip-visual-header{display:flex;justify-content:space-between;align-items:baseline;gap:.75rem;flex-wrap:wrap}.trip-visual-header strong{color:var(--ink-900)}.trip-visual-header span{color:var(--ink-500);font-size:.82rem}.trip-visual-bars{display:grid;gap:.65rem}.trip-visual-row{display:grid;grid-template-columns:minmax(88px,120px) minmax(0,1fr) auto;align-items:center;gap:.65rem}.trip-visual-label,.trip-visual-value{font-size:.82rem;font-weight:700;color:var(--ink-700)}.trip-visual-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trip-visual-track{height:.7rem;border-radius:999px;background:#e8eff5;overflow:hidden}.trip-visual-fill{height:100%;min-width:.8rem;border-radius:inherit;background:linear-gradient(90deg,#2f6f93,#68b8a9)}.trip-details-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:1rem 1rem 0}.trip-empty-state{padding:2rem 1rem;text-align:center}.data-table{width:100%;border-collapse:collapse}.trips-data-table{min-width:1480px;table-layout:fixed}.data-table th,.data-table td{border-bottom:1px solid #edf3f7;padding:.78rem .85rem;text-align:left;vertical-align:middle}.data-table th{background:var(--surface-muted);color:var(--ink-700);font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;font-weight:700}.data-table tr:hover td{background:#f6fbff}.trips-data-table th{white-space:nowrap}.trips-data-table td{line-height:1.35}.trips-data-table .trip-col-ticket{width:110px}.trips-data-table .trip-col-vehicle{width:120px}.trips-data-table .trip-col-date{width:110px}.trips-data-table .trip-col-time{width:92px}.trips-data-table .trip-col-weight{width:110px}.trips-data-table .trip-col-destination,.trips-data-table .trip-col-driver,.trips-data-table .trip-col-supplier,.trips-data-table .trip-col-material,.trips-data-table .trip-col-transporter{width:150px}.trips-data-table .trip-col-downtime{width:165px}.trips-data-table .trip-col-slip{width:76px}.trips-data-table .trip-col-actions{width:140px}.trip-cell-code,.trip-cell-date,.trip-cell-time,.trip-cell-number,.trip-cell-center,.net-weight{white-space:nowrap}.trip-cell-code{font-weight:700;color:var(--ink-800)}.trip-cell-text{word-break:break-word}.trip-cell-number,.net-weight{text-align:right;font-variant-numeric:tabular-nums}.trip-cell-date,.trip-cell-time{font-variant-numeric:tabular-nums}.trip-cell-center{text-align:center}.badge{display:inline-block;padding:.23rem .58rem;border-radius:999px;background:#e5edf5;font-size:.76rem;font-weight:700;color:#3f5368}.row-actions{display:flex;gap:.5rem;align-items:center}.muted{color:var(--ink-600)}.vehicle-assigned-drivers{display:flex;flex-wrap:wrap;gap:.35rem}.vehicle-assigned-driver{display:inline-flex;align-items:center;padding:.18rem .5rem;border-radius:999px;background:#eef5f9;color:var(--ink-700);font-size:.78rem}.row-actions a{text-decoration:none;color:var(--brand-strong);font-weight:700;border-radius:999px;padding:.3rem .55rem;background:var(--brand-soft)}.row-actions button{border:1px solid #f9c4bf;background:var(--danger-soft);color:var(--danger);box-shadow:none;padding:.34rem .62rem}.icon-btn{border:1px solid var(--line-strong);background:#fff;border-radius:8px;padding:.3rem;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-700);cursor:pointer}.icon-btn svg{width:16px;height:16px;fill:currentColor}.icon-btn:hover{background:var(--bg-soft)}.form-card{max-width:650px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1.1rem;display:grid;gap:.8rem}.trip-form{max-width:920px}.form-card label{display:grid;gap:.33rem;color:var(--ink-700);font-weight:600;font-size:.92rem}.form-card input,.form-card select,.form-card textarea,.form-card button,.auth-card input,.auth-card button{width:100%;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:.64rem .7rem;font:inherit;color:var(--ink-900);background:#fff}.form-card input:focus,.form-card select:focus,.form-card textarea:focus,.auth-card input:focus{outline:none;border-color:#65b7aa;box-shadow:0 0 0 3px #0f766e24}.form-card textarea{resize:vertical}.form-actions{display:flex;justify-content:flex-end;gap:.7rem;align-items:center}.form-actions a{text-decoration:none;color:var(--ink-700);font-weight:700;padding:.2rem .35rem}.link-btn{border:none;background:none;color:var(--brand-strong);font-weight:700;cursor:pointer;padding:0}.grid-two{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.trip-form-full-width{grid-column:1 / -1}.grid-three,.grid-four{display:grid;gap:.75rem;align-items:end}.grid-three{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.grid-four{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.upload-section{margin-bottom:.4rem;border:2px dashed #97c8c1;border-radius:var(--radius-md);padding:1rem;text-align:center;background:#f4fcfb}.trip-assigned-drivers{border:1px solid #d8e6f2;border-radius:var(--radius-md);background:linear-gradient(180deg,#f7fbff,#eef6fc);padding:.95rem 1rem}.trip-assigned-drivers-label{margin:0 0 .75rem;color:var(--ink-700);font-size:.92rem;font-weight:700}.trip-assigned-driver-list{display:grid;gap:.7rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.trip-assigned-driver-card{display:grid;gap:.2rem;padding:.8rem .9rem;border-radius:var(--radius-sm);background:#ffffffd9;border:1px solid #d6e3ef}.trip-assigned-driver-card strong{color:var(--ink-900)}.trip-assigned-driver-card span{color:var(--ink-600);font-size:.86rem}.upload-section input[type=file]{display:none}.upload-section p{margin-top:.55rem;color:var(--ink-500);font-size:.86rem}.net-weight{font-weight:800;color:var(--ok)}.table-group-row td{background:var(--surface-muted);color:var(--ink-800);font-weight:700;border-bottom-color:#dce8f0}.table-group-meta{margin-left:.7rem;color:var(--ink-600);font-weight:600;font-size:.84rem}.weight-value{font-weight:800;color:#1d4f91}.page-note{color:var(--ink-500);margin-top:.3rem}.panel-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1rem;margin-bottom:1rem;width:100%;min-width:0;max-width:100%;overflow:hidden}.consumables-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:.9rem}.consumable-card{min-height:190px;display:grid;align-content:start;gap:.7rem;background:radial-gradient(circle at top right,rgba(111,167,193,.18),transparent 38%),linear-gradient(180deg,#fcfeff,#f4f8fb)}.consumable-card h3{margin:0;color:var(--ink-900)}.consumable-card p{margin:0}.consumable-card-eyebrow{color:#285f7d;text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;font-weight:800}.preview-box{margin-top:.95rem;border-top:1px solid #e7eff5;padding-top:.75rem}.detected-driver{background:var(--ok-soft);border:1px solid #9bdbac;border-radius:var(--radius-sm);padding:.55rem .75rem}.warning-text{background:var(--warn-soft);border:1px solid #f4ce8a;border-radius:var(--radius-sm);padding:.55rem .75rem;color:var(--warn)}.trip-count{font-weight:800;color:#17537c}.trip-downtime-cell{display:grid;gap:.35rem}.trip-downtime-cell a{width:fit-content;color:var(--brand-strong);font-weight:700;text-decoration:none}.summary-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.75rem;margin-bottom:1rem}.summary-card{background:linear-gradient(180deg,#fff,#f8fcff);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:.8rem;display:grid;gap:.3rem}.summary-card small{color:var(--ink-500);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:.67rem}.summary-card strong{font-size:1.12rem}.attendance-page{display:grid;gap:1rem}.attendance-page .panel-box{margin-bottom:0}.attendance-page label{display:grid;gap:.33rem;color:var(--ink-700);font-weight:600;font-size:.92rem}.attendance-page input,.attendance-page select,.attendance-page textarea{width:100%;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:.64rem .7rem;font:inherit;color:var(--ink-900);background:#fff}.attendance-page input:focus,.attendance-page select:focus,.attendance-page textarea:focus{outline:none;border-color:#65b7aa;box-shadow:0 0 0 3px #0f766e24}.attendance-page textarea{resize:vertical}.attendance-form-actions,.attendance-filter-actions,.maintenance-filter-actions,.maintenance-form-actions{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap}.attendance-secondary-btn{background:#eef5f9;color:var(--ink-700);box-shadow:none;border:1px solid var(--line)}.maintenance-secondary-btn,.attendance-secondary-btn:hover{box-shadow:none}.maintenance-secondary-btn{background:#eef5f9;color:var(--ink-700);box-shadow:none;border:1px solid var(--line)}.maintenance-page{display:grid;gap:1rem}.maintenance-page .panel-box{margin-bottom:0}.maintenance-page label{display:grid;gap:.33rem;color:var(--ink-700);font-weight:600;font-size:.92rem}.maintenance-page input,.maintenance-page select,.maintenance-page textarea{width:100%;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:.64rem .7rem;font:inherit;color:var(--ink-900);background:#fff}.maintenance-page input:focus,.maintenance-page select:focus,.maintenance-page textarea:focus{outline:none;border-color:#65b7aa;box-shadow:0 0 0 3px #0f766e24}.maintenance-page textarea{resize:vertical}.maintenance-form-field{grid-column:1 / -1}.maintenance-loading{padding:1rem}.maintenance-sections{display:grid;gap:1rem}.maintenance-section{overflow:hidden}.maintenance-section-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:1rem 1rem 0}.maintenance-section-header h3{margin:0}.maintenance-downtime{max-width:320px;white-space:normal}.maintenance-empty-state{border-top:1px solid var(--line)}.attendance-notes-field{grid-column:1 / -1}.attendance-status{font-size:.75rem}.status-present{background:var(--ok-soft);color:#165839}.status-absent{background:var(--danger-soft);color:#8f312a}.status-half_day{background:#fff3d9;color:#8a5a14}.status-leave{background:#e7efff;color:#2e5f98}.row-actions .attendance-edit-btn{border:1px solid #bedbce;background:var(--brand-soft);color:var(--brand-strong);box-shadow:none;padding:.34rem .62rem}.row-actions .attendance-edit-btn:hover{transform:none;box-shadow:none}.driver-cell{display:flex;align-items:center;gap:.55rem}.status-completed{background:var(--ok-soft);color:#165839}.status-in_progress{background:#dcecff;color:#1f5b9f}.status-scheduled{background:#fff3d9;color:#8a5a14}.status-cancelled{background:var(--danger-soft);color:#8f312a}.status-unknown{background:#e8edf2;color:#4a5f74}.dashboard-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem;margin-bottom:1rem}.dashboard-filter-bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:.8rem 1rem;margin-bottom:1rem}.dashboard-filter-label{font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-500);font-weight:700;margin-bottom:.35rem}.dashboard-date-inputs{display:flex;gap:.6rem;flex-wrap:wrap}.dashboard-date-actions{display:flex;gap:.5rem;flex-wrap:nowrap;margin-top:.5rem;overflow-x:auto;padding-bottom:.25rem;-webkit-overflow-scrolling:touch}.dashboard-date-actions .outline-btn{padding:.4rem .65rem;font-size:.78rem}.dashboard-date-inputs label{display:grid;gap:.2rem;font-size:.82rem;font-weight:600;color:var(--ink-700)}.dashboard-date-inputs input[type=date]{border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:.4rem .55rem;font:inherit}.outline-btn{border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:.5rem .85rem;background:#f3f7fb;color:var(--ink-700);font-weight:700;cursor:pointer}.outline-btn:hover{background:#e9f1f9}.dashboard-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-bottom:1rem}.dashboard-charts>*{min-width:0}.dashboard-action-section{display:grid;gap:.6rem;margin-bottom:1rem}.dashboard-section-header h3{font-size:1rem;color:var(--ink-900);margin-bottom:.2rem}.dashboard-section-header p{color:var(--ink-600);font-size:.85rem}.dashboard-action-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.8rem;margin-bottom:1rem}.dashboard-action-card{display:grid;gap:.45rem;padding:.85rem 1rem;border-radius:var(--radius-lg);border:1px solid var(--line);background:#fff;text-align:left;box-shadow:var(--shadow-sm)}.dashboard-action-card h4{font-size:.86rem;color:var(--ink-800);font-weight:700;margin:0}.dashboard-action-card strong{font-size:1.4rem;color:var(--ink-900)}.dashboard-action-card p{margin:0;font-size:.8rem;color:var(--ink-600)}.dashboard-action-card:hover{box-shadow:var(--shadow-md);border-color:var(--line-strong)}.chart-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1rem;display:grid;gap:.85rem;width:100%;min-width:0;max-width:100%;overflow:hidden}.chart-card-header{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;flex-wrap:wrap}.chart-card-header>*{min-width:0}.driver-chart-header{align-items:flex-start}.driver-chart-header>*{min-width:0}.chart-range-controls{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.chart-range-controls label{display:grid;gap:.2rem;font-size:.75rem;font-weight:600;color:var(--ink-600)}.chart-range-controls input[type=date]{border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:.25rem .45rem;font:inherit}.chart-card-header span{display:block;flex:1 1 14rem;color:var(--ink-500);font-size:.85rem;font-weight:600;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.bar-chart-wrap{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.75rem;align-items:stretch;height:180px;min-width:0}.bar-axis{display:flex;flex-direction:column;justify-content:space-between;height:100%;color:var(--ink-500);font-size:.72rem;min-width:56px;padding-bottom:1.15rem}.bar-axis-tick{display:flex;align-items:center;gap:.4rem}.bar-axis-line{flex:1;height:1px;background:#e4edf5}.bar-chart{display:grid;grid-template-columns:repeat(auto-fit,minmax(28px,1fr));gap:.5rem;align-items:stretch;height:100%;border-left:1px solid #e4edf5;padding-left:.5rem}.daily-chart-scroll{min-width:0;max-width:100%;overflow-x:auto;overflow-y:hidden;border-left:1px solid #e4edf5;padding-left:.5rem;padding-bottom:.5rem;-webkit-overflow-scrolling:touch}.daily-bar-chart{grid-auto-flow:column;grid-auto-columns:minmax(44px,1fr);grid-template-columns:none;width:max-content;min-width:100%;border-left:0;padding-left:0}.driver-bar-chart{grid-auto-flow:column;grid-auto-columns:minmax(70px,1fr);width:max-content}.driver-bar-chart .bar-item-text{display:grid;gap:.15rem;justify-items:center;text-align:center}.driver-bar-chart .bar-item-metric{color:var(--ink-900);font-size:.8rem;line-height:1.1}.driver-bar-chart .bar-item-title{max-width:88px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.driver-bar-chart .bar-item-subtitle{max-width:110px;color:var(--ink-500);line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.driver-chart{max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;padding-bottom:.5rem}.driver-trips-card{width:100%;min-width:0;overflow:hidden}.driver-chart-container{position:relative;padding-left:1.6rem;padding-bottom:1.4rem;padding-top:.6rem;min-width:0;overflow:hidden}.driver-trips-card .bar-chart-wrap{height:250px;width:100%;min-width:0}.axis-label{position:absolute;font-size:.72rem;color:var(--ink-500);font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:#ffffffe6;padding:0 .25rem;z-index:2}.axis-label-y{left:-8px;top:50%;transform:translate(-50%,-50%) rotate(-90deg);transform-origin:left top}.axis-label-x{left:50%;bottom:4px;transform:translate(-50%,50%)}.bar-item{display:grid;grid-template-rows:1fr auto;gap:.35rem;justify-items:center;color:var(--ink-600);font-size:.72rem;height:100%;position:relative}.bar-item-link{color:inherit;text-decoration:none}.bar-item-link:focus-visible{outline:2px solid #2c6aa2;outline-offset:4px;border-radius:10px}.bar-value{width:100%;min-width:20px;border-radius:8px 8px 4px 4px;background:linear-gradient(180deg,#2c6aa2,#5aa6dc);box-shadow:0 8px 18px #1e4a7840;align-self:end;transition:transform .2s ease,filter .2s ease}.bar-item:hover .bar-value{transform:translateY(-3px);filter:brightness(1.05)}.bar-zero .bar-value{height:0!important;box-shadow:none}.bar-item:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:#081a2deb;color:#fff;padding:.35rem .5rem;border-radius:8px;font-size:.7rem;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s ease}.bar-item:before{content:"";position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%);border-width:6px 6px 0 6px;border-style:solid;border-color:rgba(8,26,45,.92) transparent transparent transparent;opacity:0;pointer-events:none;transition:opacity .15s ease}.bar-item:hover:after,.bar-item:hover:before{opacity:1}.chart-empty{border:1px dashed var(--line-strong);border-radius:var(--radius-md);padding:1rem;text-align:center;color:var(--ink-500)}.donut-card{position:relative;display:grid;place-items:center;min-height:140px}.donut-chart{transform:rotate(-90deg)}.donut-track{fill:none;stroke:#e4edf5}.donut-progress{fill:none;stroke:#2a7ab9;stroke-linecap:round;transition:stroke-dasharray .4s ease}.donut-center{position:absolute;text-align:center;display:grid;gap:.2rem}.donut-center strong{font-size:1.6rem;color:#1f4f7a}.donut-center span{color:var(--ink-600);font-size:.85rem}.donut-center em{color:var(--ink-500);font-size:.72rem;font-style:normal}.donut-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.5rem}.donut-meta small{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-500);font-size:.68rem;font-weight:700}.donut-meta strong{font-size:1rem;color:var(--ink-700)}.dashboard-stat-card{background:linear-gradient(145deg,#fff,#f2f8fd);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1rem;text-align:center}.dashboard-stat-card h3{margin:0;color:var(--ink-700);font-size:.88rem;text-transform:uppercase;letter-spacing:.06em}.dashboard-stat-card strong{display:block;margin:.52rem 0 .22rem;font-size:1.65rem;color:#1a4f95}.dashboard-stat-card p{margin:0;color:var(--ink-500);font-size:.82rem}.dashboard-stat-link{color:inherit;text-decoration:underline;text-underline-offset:.15rem}.dashboard-stat-link:hover{color:var(--ink-700)}.dashboard-stat-card.today-card{border-left:5px solid var(--brand);background:linear-gradient(145deg,#f4fdfb,#eaf8f6)}.dashboard-stat-card.today-card strong{color:var(--brand-strong)}.dashboard-daily-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;gap:.75rem;flex-wrap:wrap}.dashboard-daily-header>*{min-width:0}.dashboard-daily-header>div{flex:1 1 16rem;min-width:0}.dashboard-daily-header h2{margin:0}.dashboard-range-note{margin-top:.25rem;color:var(--ink-600);font-size:.86rem;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.dashboard-days-select{display:grid;gap:.22rem;color:var(--ink-700);font-size:.84rem;font-weight:700;flex:0 0 auto}.dashboard-days-select select{min-width:170px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:.45rem .6rem;font:inherit}.today-row td{background:#ecfaf5}.checkbox-row{display:flex!important;gap:.5rem;align-items:center;color:var(--ink-700)}.renewal-banner{background:#fff8ec;border:1px solid #f4d08f;border-radius:var(--radius-md);padding:.75rem;margin-bottom:1rem}.banner-title{display:flex;gap:.5rem;align-items:center;margin-bottom:.5rem}.banner-items{display:grid;gap:.5rem}.banner-item{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.issue{background:#ffe7c2;border-radius:999px;padding:.2rem .5rem;font-size:.76rem;font-weight:700;color:#7d4b10}.status-active{color:var(--ok);font-weight:700}.status-inactive{color:var(--danger);font-weight:700}.doc-ok{background:var(--ok-soft)}.doc-expiring{background:#fff1d8}.doc-expired{background:var(--danger-soft)}.doc-missing{background:#e8edf2}.avatar{width:34px;height:34px;border-radius:999px;object-fit:cover;border:1px solid #bfd3de}.avatar-fallback{width:34px;height:34px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#d7e7f2;color:#26465f;font-weight:800;font-size:.76rem}.auth-card{max-width:390px;margin:3.6rem auto;padding:1.3rem;border-radius:var(--radius-lg);background:linear-gradient(180deg,#fff,#f5fbff);border:1px solid var(--line);box-shadow:var(--shadow-md);display:grid;gap:.75rem}.auth-card h1{margin-bottom:.15rem}.auth-card label{display:grid;gap:.33rem;color:var(--ink-700);font-weight:600}.auth-note{color:var(--ink-700);font-size:.84rem}.auth-note a{color:var(--brand-strong);font-weight:700}.error-text{color:var(--danger);font-weight:700;font-size:.86rem}.success-text{color:var(--ok);font-weight:700;font-size:.86rem}.auth-info-box{border:1px dashed #81b9af;background:#ecfaf7;border-radius:var(--radius-sm);padding:.65rem;display:grid;gap:.35rem}.auth-info-box strong{color:#0d6a61;font-size:.86rem}.auth-info-box code{font-family:IBM Plex Mono,SFMono-Regular,Menlo,monospace;padding:.35rem .42rem;border-radius:8px;border:1px solid #b4ddd7;background:#fff;color:#134e4a;word-break:break-all}.auth-info-box small{color:#45606e}.auth-info-box a{color:var(--brand-strong);font-weight:700;text-decoration:none}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a141e8c;display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:1200;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal-card{width:min(920px,100%);max-height:90vh;background:#fff;border-radius:18px;box-shadow:var(--shadow-md);display:grid;grid-template-rows:auto 1fr auto;overflow:hidden;border:1px solid #d3dee7}.modal-header,.modal-footer{padding:1rem 1.2rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;background:#f6fafc;border-bottom:1px solid #e2ecf3}.modal-footer{border-top:1px solid #e2ecf3;border-bottom:none;justify-content:flex-end}.modal-body{padding:0;background:#0e1b24}.modal-body iframe{width:100%;height:70vh;border:none;background:#fff}.modal-close{border-radius:999px;border:1px solid #c7d6e1;background:#fff;color:#2b3e50;font-weight:700;padding:.4rem .85rem;cursor:pointer}.modal-close:hover{background:#edf2f7}@media(max-width:900px){.page-header{align-items:stretch;flex-direction:column}.home-hero,.home-strip,.home-feature-grid{grid-template-columns:1fr}}@media(max-width:680px){.auth-wrap,.page-wrap{padding:1rem .7rem 2rem}.top-nav{gap:.45rem;padding:.8rem .6rem;flex-wrap:wrap}.top-nav a{font-size:.82rem;padding:.35rem .62rem}.module-nav{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.top-nav a.module-nav-item{width:100%;justify-content:flex-start;padding:.3rem .5rem .3rem .3rem}.top-nav-auth{width:100%;justify-content:flex-end}.data-table th,.data-table td{padding:.6rem .55rem}}
