:root{font-family:Space Grotesk,Segoe UI,sans-serif;color:#0b1320;background:radial-gradient(circle at top right,rgba(47,93,255,.14),transparent 35%),radial-gradient(circle at 20% 20%,rgba(14,184,166,.12),transparent 25%),#f4f7fb;--navy: #0a1a2f;--navy-deep: #071120;--teal: #2bd9a8;--blue: #2f6fed;--blue-hover: #4a84ff;--text-muted: #a9b8cc}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:#0b1320}.app{max-width:1140px;margin:0 auto;padding:1rem}.login-shell{display:flex;flex-direction:column;min-height:100vh;background:var(--navy-deep)}.login-shell .site-main{flex:1;display:grid;place-items:center;padding:2rem 1rem}.site-header{background:var(--navy-deep);display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.25rem 2rem}.site-header .logo{height:36px;display:block}.nav-links{display:flex;gap:2rem;list-style:none;margin:0;padding:0}.nav-links a{color:#fff;text-decoration:none;font-weight:500;font-size:.95rem}.nav-links a:hover{color:var(--teal)}.btn{display:inline-block;border-radius:999px;padding:.65rem 1.4rem;font-weight:600;font-size:.95rem;text-decoration:none;border:2px solid transparent;cursor:pointer}.btn-outline{border-color:#fff;color:#fff}.btn-outline:hover{background:#fff;color:var(--navy)}.site-footer{background:var(--navy-deep);color:var(--text-muted);padding:2.5rem 2rem}.footer-inner{max-width:1140px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1.5rem}.footer-inner .logo{height:28px}.footer-nav{display:flex;flex-wrap:wrap;gap:1.5rem;list-style:none;margin:0;padding:0}.footer-nav a{text-decoration:none;color:var(--text-muted);font-size:.9rem}.footer-nav a:hover{color:var(--teal)}.footer-copyright{width:100%;text-align:center;font-size:.85rem;color:#5c6f8a;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.08)}@media (max-width: 900px){.site-header .nav-links{display:none}}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem}.topbar h1,.panel h2,.panel h3{margin:0}.subtitle{margin:.35rem 0 0;color:#4a5568}.panel{margin-top:1rem;background:#fff;border-radius:16px;border:1px solid #d8e0ec;padding:1rem;box-shadow:0 8px 28px #0718380f}.auth-panel{width:min(460px,92vw)}.tabs{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}.tab,button{border:1px solid #c8d4e7;background:#edf3ff;color:#13284b;border-radius:10px;padding:.6rem .9rem;font:inherit;cursor:pointer}.tab.active{background:#1f4ed8;color:#fff;border-color:#1f4ed8}button:disabled{opacity:.55;cursor:not-allowed}button.danger{background:#fff0f1;border-color:#f8c8ce;color:#831a2a}button.ghost{background:#f4f7fb}.grid-form{display:grid;gap:.8rem}.field{display:grid;gap:.35rem}.field-has-error input,.field-has-error select,.field-has-error textarea{border-color:#f08a8a;background:#fff7f7}.field-error{color:#8a1f1f;font-size:.82rem}.field>span{font-size:.9rem;color:#2b3d5e}input,select,textarea{border:1px solid #c8d4e7;border-radius:10px;padding:.6rem .7rem;font:inherit;background:#fff}.inline-actions{display:flex;gap:.5rem;flex-wrap:wrap}.page-indicator{display:inline-flex;align-items:center;padding:.55rem .8rem;border:1px solid #c8d4e7;border-radius:10px;background:#f8fbff;color:#35507d;font-size:.92rem}.split{display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}.stat-grid{display:grid;gap:.75rem;grid-template-columns:repeat(3,minmax(0,1fr))}.stat-card{background:#f6faff;border:1px solid #d8e4f4;border-radius:12px;padding:.8rem}.stat-card p{margin:.5rem 0 0;font-size:1.4rem;font-weight:700}.compliance-dashboard-body{display:flex;align-items:center;gap:2rem;flex-wrap:wrap}.compliance-ring{--ring-color: #1fa971;width:130px;height:130px;min-width:130px;border-radius:50%;background:conic-gradient(var(--ring-color) calc(var(--percent) * 1%),#e2e8f0 0);display:flex;align-items:center;justify-content:center;position:relative}.compliance-ring-inner{position:absolute;top:10px;right:10px;bottom:10px;left:10px;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center}.compliance-ring-value{font-size:1.6rem;font-weight:800;color:#13284b}.compliance-ring-label{font-size:.85rem;color:#4a5568}.compliance-checklist{list-style:none;margin:0;padding:0;display:grid;gap:.75rem;flex:1;min-width:240px}.compliance-checklist li{display:flex;align-items:center;gap:.75rem;background:#f6faff;border:1px solid #d8e4f4;border-radius:10px;padding:.6rem .9rem}.compliance-checklist li strong{display:block;font-size:.95rem}.compliance-checklist li small{color:#4a5568}.compliance-checklist .check-icon{width:28px;height:28px;min-width:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff}.compliance-checklist li.ok .check-icon{background:#1fa971}.compliance-checklist li.warn .check-icon{background:#c0392b}.compliance-checklist li.warn{background:#fff5f5;border-color:#f3c6c6}.compliance-checklist li.linkable{cursor:pointer}.compliance-checklist li.linkable:hover{border-color:#1f4ed8}@media (max-width: 560px){.compliance-dashboard-body{flex-direction:column}}.table-wrap{overflow:auto}.report-section{margin-top:1.5rem}.report-section h4{margin-bottom:.5rem}.filter-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;align-items:end;margin-bottom:.8rem}table{width:100%;border-collapse:collapse}th,td{border-bottom:1px solid #e4ebf6;text-align:left;padding:.55rem;white-space:nowrap}.assignment-card{border:1px solid #d5e2f8;border-radius:12px;padding:.75rem;background:#f7faff;margin-bottom:.8rem}.checklist-grid{border:1px solid #d8e0ec;border-radius:10px;padding:.7rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.check-item{display:flex;align-items:center;gap:.4rem;text-transform:capitalize}.checklist-item-wide{grid-column:1 / -1;align-items:flex-start;text-transform:none;line-height:1.35}.checklist-item-wide input{margin-top:.2rem;flex-shrink:0}.checklist-grid+.checklist-grid{margin-top:.6rem}.json-preview{margin:0;background:#0c1f3e;color:#d7e9ff;border-radius:10px;padding:.8rem;overflow:auto}.hint{margin:.2rem 0;color:#54657f}.notice-success{background:#dcfce7;color:#166534;border-radius:8px;padding:.6rem .9rem;font-weight:600;margin:0 0 1rem}.notice-warning{background:#fef3c7;color:#92400e;border:1px solid #fde68a;border-radius:8px;padding:.75rem 1rem;margin:0 0 1rem;display:flex;flex-direction:column;gap:.6rem}.notice-warning p{margin:0}.billing-panel{display:flex;flex-direction:column;gap:1.25rem}.billing-card{border:1px solid #dbe3ee;border-radius:10px;padding:1rem 1.25rem}.billing-card h3{margin-top:0}.billing-months-field{max-width:140px}.trial-gate{max-width:720px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b132073;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:50}.modal-box{background:#fff;border-radius:16px;padding:1.25rem;width:min(420px,92vw);max-height:90vh;overflow:auto;box-shadow:0 20px 60px #07183840}.modal-box.modal-wide{width:min(560px,92vw)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.6rem}.modal-header h2{margin:0}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.9rem}.panel-header h2{margin:0}.driver-toolbar{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:.9rem}.driver-search{flex:1;min-width:200px;border:1px solid #d8e0ec;border-radius:10px;padding:.55rem .75rem;font-size:.9rem}.driver-sort-select{border:1px solid #d8e0ec;border-radius:10px;padding:.55rem .75rem;font-size:.9rem;background:#fff}.card-list{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.item-card{background:#f6faff;border:1px solid #d8e4f4;border-radius:12px;padding:.9rem;display:grid;gap:.3rem;align-content:start}.item-card h4{margin:0}.item-card .meta{margin:0;color:#4a5568;font-size:.9rem}.item-card .inline-actions{margin-top:.5rem}.item-card .meta.warning{color:#92620a}.compliance-layout{display:grid;grid-template-columns:200px 1fr;gap:1rem;align-items:start}.side-nav{display:flex;flex-direction:column;gap:.5rem}.compliance-content{min-width:0}.compliance-section-heading{margin:1.25rem 0 .6rem}.compliance-section-heading:first-child{margin-top:0}.compliance-banner-list{display:flex;flex-direction:column;gap:.6rem}.compliance-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;width:100%;background:#f6faff;border:1px solid #d8e4f4;border-left:5px solid #94a3b8;border-radius:10px;padding:.75rem 1rem}.compliance-banner.status-ok{border-left-color:#1fa971}.compliance-banner.status-due_soon{border-left-color:#c98a1f;background:#fffaf0}.compliance-banner.status-overdue{border-left-color:#c0392b;background:#fff5f5}.compliance-banner-main{display:flex;flex-direction:column;gap:.25rem;min-width:220px}.compliance-banner-meta{display:flex;flex-wrap:wrap;gap:.3rem 1.1rem;color:#4a5568;font-size:.88rem}.compliance-banner-meta.warning{color:#92620a}.compliance-banner-actions{display:flex;gap:.5rem;flex-shrink:0}.side-nav button{text-align:left}.link-button{display:inline-block;border:1px solid #1f4ed8;border-radius:10px;padding:.6rem .9rem;font:inherit;font-weight:600;text-align:left;text-decoration:none;background:#1f4ed8;color:#fff;cursor:pointer}.link-button:hover{background:#17399e}.modal-box dl{display:grid;grid-template-columns:auto 1fr;gap:.4rem 1rem;margin:.8rem 0}.modal-box dt{color:#54657f}.modal-box dd{margin:0;font-weight:600;text-transform:capitalize}.app-body{display:flex;gap:1.25rem;align-items:flex-start;margin-top:1rem}.quick-actions-nav{display:flex;flex-direction:column;gap:.6rem;width:220px;min-width:220px;position:sticky;top:1rem}.quick-actions-nav h3{margin:0 0 .2rem}.quick-actions-nav button{text-align:left}.quick-actions-stat{margin:.4rem 0 0;font-size:.85rem;color:#4a5568}.app-content{flex:1;min-width:0}@media (max-width: 900px){.app-body{flex-direction:column}.quick-actions-nav{width:100%;min-width:0;flex-direction:row;flex-wrap:wrap;position:static}.quick-actions-nav h3{width:100%}}.licence-category-field{border:1px solid #d8e0ec;border-radius:10px;padding:.7rem}.licence-category-field>span{font-size:.9rem;color:#2b3d5e}.licence-category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin-top:.5rem}.licence-category-row{display:grid;gap:.35rem;background:#f6faff;border:1px solid #d8e4f4;border-radius:10px;padding:.55rem .7rem}.licence-category-checkbox{display:flex;align-items:center;gap:.5rem;font-size:.92rem}.licence-category-checkbox input{width:auto}.licence-category-row input[type=date]{width:100%}@media (max-width: 600px){.licence-category-grid{grid-template-columns:1fr}}.licence-photo-field{border:1px solid #d8e0ec;border-radius:10px;padding:.7rem;display:flex;flex-direction:column;gap:.6rem}.licence-photo-field>span{font-size:.9rem;color:#2b3d5e}.licence-photo-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.6rem;background:#f6faff;border:1px solid #d8e4f4;border-radius:10px;padding:.55rem .7rem}.licence-photo-input{display:flex;align-items:center;gap:.5rem;font-size:.85rem}.licence-history{margin-top:.2rem}.licence-history summary{cursor:pointer;font-weight:600;font-size:.9rem;color:#2b3d5e}.licence-history .card-list{margin-top:.5rem}.trial-banner{display:flex;align-items:center;justify-content:center;gap:.9rem;background:#fffbeb;border-bottom:1px solid #fcd34d;color:#92400e;padding:.55rem 1rem;font-size:.9rem}.trial-banner button{padding:.3rem .7rem}.error{color:#7f1d1d;background:#ffe6e6;border:1px solid #ffc6c6;border-radius:8px;padding:.55rem .75rem}@media (max-width: 900px){.split,.stat-grid,.compliance-layout{grid-template-columns:1fr}.side-nav{flex-direction:row;flex-wrap:wrap}.filter-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 600px){.app{padding:.75rem}.topbar{flex-direction:column;align-items:flex-start}.mobile-friendly .grid-form{gap:.95rem}.checklist-grid,.filter-row{grid-template-columns:1fr}}.message-thread{display:flex;flex-direction:column;gap:.6rem;max-height:400px;overflow-y:auto;margin-bottom:1rem;padding-right:.2rem}.message-bubble{max-width:80%;padding:.6rem .9rem;border-radius:12px;background:#f6faff;border:1px solid #d8e4f4}.message-bubble p{margin:0}.message-bubble.message-mine{align-self:flex-end;background:#1f4ed8;color:#fff;border-color:#1f4ed8}.message-bubble.message-mine .message-meta{color:#cbd8ff}.message-bubble.message-theirs{align-self:flex-start}.message-meta{margin:0 0 .25rem;font-size:.78rem;color:#4a5568}.flash-unread{animation:flash-unread-anim 1s step-start infinite;border-color:#c0392b!important}.subtitle.flash-unread{display:inline-block;padding:.15rem .5rem;border-radius:6px;font-weight:600}@keyframes flash-unread-anim{0%,49%{background:#dc2626;color:#fff}50%,to{background:#fff;color:#dc2626}}.print-vehicle-qr{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;padding:2rem;background:#f4f6fb}.print-vehicle-qr-card{background:#fff;border:1px solid #dbe3ee;border-radius:16px;padding:2.5rem 3rem;text-align:center;max-width:420px}.print-vehicle-qr-card h1{margin:0 0 .25rem;font-size:1.6rem}.print-vehicle-qr-plate{font-size:1.2rem;font-weight:700;letter-spacing:.05em;margin:0 0 1.5rem;color:#33415c}.print-vehicle-qr-card canvas{display:block;margin:0 auto}.print-vehicle-qr-instruction{margin-top:1.5rem;color:#54657f;font-size:.95rem}.print-vehicle-qr-button{padding:.65rem 1.5rem}.print-vehicle-qr-warning{max-width:480px;text-align:center}.print-vehicle-qr-warning code{background:#0000000f;padding:.1rem .3rem;border-radius:4px}@media print{.print-vehicle-qr{background:#fff;min-height:0}.print-vehicle-qr-card{border:none}.no-print{display:none}}.signup-panel{width:min(640px,94vw)}.signup-panel fieldset{display:grid;gap:.5rem;border:1px solid #c8d4e7;border-radius:10px;padding:.7rem .9rem;margin:0}.signup-panel legend{font-size:.9rem;color:#2b3d5e;padding:0 .3rem}.radio-row{display:flex;flex-wrap:wrap;gap:.9rem}.radio-option{display:flex;align-items:center;gap:.4rem;font-size:.92rem}.radio-option input{width:auto}.checkbox-field{display:flex;flex-direction:row;align-items:center;gap:.5rem}.checkbox-field input{width:auto}.signup-panel details{border:1px solid #c8d4e7;border-radius:10px;padding:.6rem .9rem}.signup-panel details summary{cursor:pointer;font-weight:600;color:#2b3d5e}.signup-panel details .grid-form{margin-top:.6rem}
