*{margin:0;padding:0;box-sizing:border-box}body{font-family:"Inter",system-ui,-apple-system,sans-serif;background:#fff;color:#202124;min-height:100vh;-webkit-font-smoothing:antialiased}.login-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;background:#fff}.login-page.hidden{display:none}.login-card{width:100%;max-width:440px;border:1px solid #dadce0;border-radius:12px;padding:48px 40px 36px}.login-header{text-align:center;margin-bottom:32px}.login-logo{display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:16px}.login-logo .logo-badge{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:8px;background:#1e3a5f;color:#fff;font-weight:700;font-size:16px;letter-spacing:.04em;position:relative}.login-logo .logo-badge::after{content:"";position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:55%;height:1.5px;background:#d4a843;border-radius:1px}.login-logo .logo-sep{width:1px;height:24px;background:#d4a843;opacity:.35;margin:0 12px}.login-logo .logo-name{font-weight:400;font-size:20px;letter-spacing:.08em;text-transform:uppercase;color:#202124}.login-logo .logo-ent-badge{display:inline-flex;align-items:center;padding:2px 8px;background:#d4a843;color:#fff;font-size:10px;font-weight:700;border-radius:4px;letter-spacing:.06em;text-transform:uppercase;margin-left:8px}.login-header h1{font-size:22px;font-weight:400;color:#202124;margin-bottom:4px}.login-header p{font-size:14px;color:#5f6368}.google-section{display:flex;flex-direction:column;align-items:center;margin-bottom:24px}.btn-google{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:12px;background:#fff;border:1px solid #dadce0;border-radius:8px;font-size:14px;font-weight:500;color:#3c4043;text-decoration:none;transition:background .15s,box-shadow .15s;cursor:pointer}.btn-google:hover{background:#f8f9fa;box-shadow:0 1px 3px rgba(0,0,0,.1)}.divider{display:flex;align-items:center;gap:16px;margin:24px 0;width:100%}.divider::before,.divider::after{content:"";flex:1;height:1px;background:#dadce0}.divider span{font-size:13px;color:#5f6368;white-space:nowrap}.field{margin-bottom:16px}.field label{font-size:12px;font-weight:500;color:#5f6368;display:block;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;padding:13px 16px;border:1px solid #dadce0;border-radius:8px;font-size:16px;color:#202124;outline:0;transition:border .2s;background:#fff;-webkit-appearance:none;font-family:inherit}.field input:focus,.field select:focus,.field textarea:focus{border-color:#1a73e8;box-shadow:0 0 0 2px rgba(26,115,232,.15)}.field input::placeholder,.field textarea::placeholder{color:#9aa0a6}.btn{width:100%;padding:12px;border:0;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .15s;-webkit-appearance:none;font-family:inherit}.btn-blue{background:#1a73e8;color:#fff;margin-top:8px}.btn-blue:hover{background:#1557b0}.btn-blue:active{background:#134a97}.msg{font-size:13px;margin-top:10px;text-align:center;display:none}.msg-success{color:#1e8e3e}.msg-error{color:#d93025}.login-footer{text-align:center;margin-top:24px;font-size:12px;color:#5f6368}.login-footer a{color:#1a73e8;text-decoration:none}.login-footer a:hover{text-decoration:underline}.app{display:none}.app.show{display:block}.topbar{background:#fff;border-bottom:1px solid #e8eaed;padding:0 24px;height:60px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:100}@supports (padding:max(0px)){.topbar{padding-top:max(0px,env(safe-area-inset-top))}}.topbar-logo{display:flex;align-items:center;gap:0}.topbar-logo .logo-badge{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:6px;background:#1e3a5f;color:#fff;font-weight:700;font-size:12px;letter-spacing:.04em;position:relative;flex-shrink:0}.topbar-logo .logo-badge::after{content:"";position:absolute;bottom:3px;left:50%;transform:translateX(-50%);width:55%;height:1.5px;background:#d4a843;border-radius:1px}.topbar-logo .logo-sep{width:1px;height:18px;background:#d4a843;opacity:.35;margin:0 10px}.topbar-logo .logo-name{font-weight:400;font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:#202124}.topbar-logo .logo-ent-badge{display:inline-flex;align-items:center;padding:2px 7px;background:#d4a843;color:#fff;font-size:9px;font-weight:700;border-radius:3px;letter-spacing:.06em;text-transform:uppercase;margin-left:8px}.topbar-right{display:flex;align-items:center;gap:12px}.topbar-company{font-size:13px;font-weight:500;color:#202124;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn-out{padding:7px 16px;border-radius:6px;font-size:12px;font-weight:500;border:1px solid #dadce0;background:#fff;color:#5f6368;cursor:pointer;font-family:inherit}.btn-out:hover{background:#f8f9fa}.page-body{max-width:1200px;margin:0 auto;padding:32px 24px 80px}@media (max-width:768px){.page-body{padding:20px 16px 60px}}.welcome-card{background:linear-gradient(135deg,#1e3a5f 0,#274c78 100%);border-radius:16px;padding:28px 32px;margin-bottom:28px;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:20px}.welcome-card-text h2{font-size:22px;font-weight:700;margin-bottom:6px}.welcome-card-text p{font-size:14px;opacity:.8;line-height:1.6}.welcome-card-actions{display:flex;gap:10px;flex-shrink:0}.btn-scan-w{padding:10px 22px;background:#d4a843;color:#fff;font-weight:700;font-size:13px;border:0;border-radius:8px;cursor:pointer;text-decoration:none;white-space:nowrap;font-family:inherit}.btn-scan-w:hover{background:#b8912c}@media (max-width:600px){.welcome-card{flex-direction:column;align-items:flex-start}.welcome-card-actions{width:100%}}.sec-title{font-size:14px;font-weight:600;color:#5f6368;text-transform:uppercase;letter-spacing:.5px;margin-bottom:16px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px}@media (max-width:900px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.kpi-grid{grid-template-columns:repeat(2,1fr);gap:12px}}.kpi-card{background:#fff;border:1px solid #e8eaed;border-radius:12px;padding:20px 20px 20px 24px;position:relative;overflow:hidden}.kpi-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:0}.kpi-blue::before{background:#1a73e8}.kpi-navy::before{background:#1e3a5f}.kpi-red::before{background:#d93025}.kpi-gold::before{background:#d4a843}.kpi-icon{font-size:20px;margin-bottom:8px;opacity:.7}.kpi-val{font-size:28px;font-weight:800;color:#202124;line-height:1;margin-bottom:4px}.kpi-label{font-size:12px;color:#5f6368;font-weight:500}.kpi-trend{font-size:11px;margin-top:6px}.kpi-trend.up{color:#1e8e3e}.kpi-trend.down{color:#d93025}.section-card{background:#fff;border:1px solid #e8eaed;border-radius:12px;margin-bottom:28px;overflow:hidden}.section-card-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #e8eaed;gap:12px}.section-card-header h3{font-size:16px;font-weight:700;color:#202124}.btn-add{padding:9px 18px;background:#1a73e8;color:#fff;font-weight:600;font-size:13px;border:0;border-radius:8px;cursor:pointer;white-space:nowrap;font-family:inherit}.btn-add:hover{background:#1557b0}.search-bar-wrap{padding:16px 24px;border-bottom:1px solid #f1f3f4}.search-bar-wrap input{width:100%;padding:10px 16px;border:1px solid #dadce0;border-radius:8px;font-size:14px;color:#202124;outline:0;font-family:inherit;background:#f8f9fa}.search-bar-wrap input:focus{background:#fff;border-color:#1a73e8;box-shadow:0 0 0 2px rgba(26,115,232,.1)}.fleet-table-wrap{overflow-x:auto}.fleet-table{width:100%;border-collapse:collapse}.fleet-table th{background:#f8f9fa;padding:10px 16px;text-align:left;font-size:11px;font-weight:700;color:#5f6368;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap}.fleet-table th:first-child{padding-left:24px}.fleet-table th:last-child{padding-right:24px}.fleet-table td{padding:14px 16px;font-size:14px;color:#202124;border-top:1px solid #f1f3f4;white-space:nowrap}.fleet-table td:first-child{padding-left:24px;font-weight:600}.fleet-table td:last-child{padding-right:24px}.fleet-table tr:hover td{background:#f8f9fa}.badge{display:inline-block;padding:4px 12px;border-radius:100px;font-size:12px;font-weight:600}.b-actif{background:#e6f4ea;color:#1e8e3e}.b-suspendu{background:#fce8e6;color:#c5221f}.b-warning{background:#fef7e0;color:#e37400}.btn-action{padding:5px 12px;border:1px solid #dadce0;background:#fff;color:#5f6368;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;margin-right:4px;font-family:inherit}.btn-action:hover{background:#f8f9fa;border-color:#aaa}.btn-action.primary{background:#e8f0fe;color:#1967d2;border-color:#c5d8fa}.btn-action.primary:hover{background:#d2e3fc}.empty-state{text-align:center;padding:48px 24px}.empty-state .ico{font-size:48px;margin-bottom:12px;opacity:.4}.empty-state p{font-size:14px;color:#5f6368}.ticket-card{padding:16px 24px;border-top:1px solid #f1f3f4;display:flex;align-items:center;gap:16px}.ticket-card:first-child{border-top:none}.ticket-card:hover{background:#f8f9fa}.ticket-date{font-size:12px;color:#9aa0a6;min-width:80px;flex-shrink:0}.ticket-plate{display:inline-flex;align-items:center;padding:3px 10px;background:#1e3a5f;color:#fff;border-radius:4px;font-size:12px;font-weight:700;letter-spacing:.04em;flex-shrink:0}.ticket-info{flex:1;min-width:0}.ticket-inf{font-size:13px;font-weight:600;color:#202124;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ticket-ville{font-size:12px;color:#5f6368}.ticket-amende{font-size:15px;font-weight:700;color:#d93025;flex-shrink:0}.ticket-score{font-size:13px;font-weight:600;flex-shrink:0}.score-high{color:#1e8e3e}.score-mid{color:#e37400}.score-low{color:#d93025}.outils-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:24px}@media (max-width:600px){.outils-grid-2{grid-template-columns:1fr}}.outil-card{background:#fff;border:1px solid #e8eaed;border-radius:12px;padding:18px;cursor:pointer;transition:box-shadow .2s,border-color .2s;display:flex;flex-direction:column;gap:8px}.outil-card:hover{box-shadow:0 2px 8px rgba(32,33,36,.12);border-color:#dadce0}.outil-card-icon{font-size:22px;line-height:1}.outil-card-title{font-size:14px;font-weight:600;color:#202124;line-height:1.3}.outil-card-desc{font-size:12px;color:#5f6368;line-height:1.5;flex:1}.btn-utiliser{display:inline-block;margin-top:4px;padding:7px 16px;background:#e8f0fe;color:#1967d2;font-size:12px;font-weight:600;border:0;border-radius:6px;cursor:pointer;transition:background .15s;align-self:flex-start;font-family:inherit}.btn-utiliser:hover{background:#d2e3fc}.guide-card{background:#fff;border:1px solid #e8eaed;border-radius:12px;overflow:hidden;margin:0 24px 10px}.guide-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;cursor:pointer;transition:background .15s}.guide-header:hover{background:#f8f9fa}.guide-header-left{display:flex;align-items:center;gap:12px}.guide-header-icon{font-size:18px}.guide-header-title{font-size:14px;font-weight:600;color:#202124}.guide-header-arrow{font-size:12px;color:#9aa0a6;transition:transform .2s;flex-shrink:0}.guide-header-arrow.open{transform:rotate(180deg)}.guide-body{display:none;padding:0 20px 20px;border-top:1px solid #f1f3f4}.guide-body.open{display:block}.guide-body p{font-size:13px;color:#5f6368;line-height:1.7;margin-bottom:8px}.guide-body ol,.guide-body ul{padding-left:20px;font-size:13px;color:#5f6368;line-height:1.8}.guide-body li{margin-bottom:4px}.guide-body h4{font-size:12px;font-weight:700;color:#1e3a5f;text-transform:uppercase;letter-spacing:.4px;margin:16px 0 8px}.checklist-item{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:#5f6368;margin-bottom:6px;padding:2px 0}.checklist-item::before{content:"☐";flex-shrink:0;color:#1a73e8;font-size:14px}.pricing-section{margin-bottom:40px}.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}@media (max-width:768px){.pricing-grid{grid-template-columns:1fr}}.pricing-card{background:#fff;border:1px solid #e8eaed;border-radius:16px;padding:32px 28px;position:relative;transition:box-shadow .2s}.pricing-card:hover{box-shadow:0 4px 16px rgba(32,33,36,.12)}.pricing-card.popular{border-color:#1a73e8;border-width:2px;box-shadow:0 2px 12px rgba(26,115,232,.15)}.popular-badge{position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:#1a73e8;color:#fff;font-size:11px;font-weight:700;padding:4px 14px;border-radius:100px;letter-spacing:.04em;white-space:nowrap}.pricing-tier{font-size:13px;font-weight:700;color:#5f6368;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.pricing-price{font-size:36px;font-weight:800;color:#202124;line-height:1}.pricing-price sup{font-size:18px;font-weight:700;vertical-align:super;color:#5f6368}.pricing-price span{font-size:14px;font-weight:500;color:#9aa0a6}.pricing-desc{font-size:13px;color:#5f6368;margin:12px 0 20px;line-height:1.5}.pricing-features{list-style:none;margin-bottom:28px}.pricing-features li{font-size:13px;color:#5f6368;padding:6px 0;display:flex;align-items:flex-start;gap:8px;border-bottom:1px solid #f1f3f4}.pricing-features li:last-child{border-bottom:none}.pricing-features li::before{content:"✓";color:#1e8e3e;font-weight:700;flex-shrink:0}.btn-pricing{width:100%;padding:12px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;border:1px solid #dadce0;background:#fff;color:#1a73e8;font-family:inherit}.btn-pricing:hover{background:#f8f9fa}.pricing-card.popular .btn-pricing{background:#1a73e8;color:#fff;border-color:#1a73e8}.pricing-card.popular .btn-pricing:hover{background:#1557b0}.contact-section{background:#f8f9fa;border-radius:16px;padding:36px 32px;margin-bottom:40px}@media (max-width:600px){.contact-section{padding:24px 20px}}.contact-section h3{font-size:20px;font-weight:700;color:#1e3a5f;margin-bottom:6px}.contact-section p{font-size:14px;color:#5f6368;margin-bottom:24px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width:600px){.contact-grid{grid-template-columns:1fr}}.contact-field{margin-bottom:0}.contact-field label{font-size:12px;font-weight:600;color:#5f6368;display:block;margin-bottom:5px;text-transform:uppercase;letter-spacing:.3px}.contact-field input,.contact-field select,.contact-field textarea{width:100%;padding:11px 14px;border:1px solid #dadce0;border-radius:8px;font-size:14px;color:#202124;font-family:inherit;outline:0;transition:border .2s;background:#fff}.contact-field input:focus,.contact-field select:focus,.contact-field textarea:focus{border-color:#1a73e8;box-shadow:0 0 0 2px rgba(26,115,232,.1)}.btn-contact{margin-top:16px;padding:13px 32px;background:#1a73e8;color:#fff;font-weight:700;font-size:14px;border:0;border-radius:8px;cursor:pointer;font-family:inherit}.btn-contact:hover{background:#1557b0}.contact-msg{margin-top:12px;font-size:13px;display:none}.contact-msg.ok{color:#1e8e3e;display:block}.contact-msg.err{color:#d93025;display:block}.portal-footer{border-top:1px solid #e8eaed;padding:24px;text-align:center}.portal-footer a{color:#1a73e8;font-size:13px;text-decoration:none;margin:0 10px}.portal-footer a:hover{text-decoration:underline}.portal-footer p{font-size:12px;color:#9aa0a6;margin-top:10px}.overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:1000;align-items:flex-end;justify-content:center;padding:0}.overlay.open{display:flex}@media (min-width:600px){.overlay{align-items:center;padding:20px}}.modal{background:#fff;width:100%;max-width:600px;border-radius:16px 16px 0 0;max-height:90vh;overflow-y:auto;position:relative}@media (min-width:600px){.modal{border-radius:16px;max-height:85vh}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #e8eaed;position:sticky;top:0;background:#fff;z-index:2}.modal-header h3{font-size:16px;font-weight:700;color:#1e3a5f}.modal-close{width:32px;height:32px;border-radius:50%;border:0;background:#f1f3f4;color:#5f6368;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:inherit}.modal-close:hover{background:#e8eaed}.modal-body{padding:24px}.modal-body .field{margin-bottom:14px}.modal-body .field label{font-size:12px;font-weight:600;color:#5f6368;display:block;margin-bottom:5px;text-transform:uppercase;letter-spacing:.3px}.modal-body .field input,.modal-body .field select,.modal-body .field textarea{width:100%;padding:11px 14px;border:1px solid #dadce0;border-radius:8px;font-size:14px;color:#202124;font-family:inherit;outline:0;transition:border .2s;background:#fff}.modal-body .field input:focus,.modal-body .field select:focus,.modal-body .field textarea:focus{border-color:#1a73e8;box-shadow:0 0 0 2px rgba(26,115,232,.12)}.modal-body .field textarea{resize:vertical;min-height:80px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width:440px){.field-row{grid-template-columns:1fr}}.btn-generer{width:100%;padding:13px;background:#1a73e8;color:#fff;font-weight:700;font-size:14px;border:0;border-radius:8px;cursor:pointer;margin-top:8px;transition:background .15s;font-family:inherit}.btn-generer:hover{background:#1557b0}.modal-disclaimer{margin-top:16px;padding:12px;background:#f8f9fa;border-radius:8px;font-size:11px;color:#9aa0a6;line-height:1.6;text-align:center}.modal-disclaimer strong{color:#5f6368}.calc-result{margin-top:20px;background:#f0f4ff;border:1px solid #c5d8fa;border-radius:10px;padding:20px;display:none}.calc-result.show{display:block}.calc-result-title{font-size:11px;font-weight:700;color:#1967d2;text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.calc-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;padding:6px 0;border-bottom:1px solid #dce8fd}.calc-row:last-child{border-bottom:none}.calc-row.total{font-weight:700;font-size:15px;color:#1e3a5f;padding-top:10px;margin-top:4px}.calc-tag{color:#5f6368}.calc-val{font-weight:600;color:#202124}.calc-highlight{background:#fff3cd;border:1px solid #ffc107;border-radius:8px;padding:12px;margin-top:12px;font-size:13px;color:#7a5000;line-height:1.5}.calc-compare{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.compare-box{border-radius:8px;padding:14px;text-align:center}.compare-box-pay{background:#fce8e6;border:1px solid #f5c6c2}.compare-box-contest{background:#e6f4ea;border:1px solid #b7dfc0}.compare-box .cb-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px}.compare-box-pay .cb-label{color:#c5221f}.compare-box-contest .cb-label{color:#1e8e3e}.compare-box .cb-val{font-size:20px;font-weight:800}.compare-box-pay .cb-val{color:#c5221f}.compare-box-contest .cb-val{color:#1e8e3e}.compare-box .cb-sub{font-size:11px;color:#9aa0a6;margin-top:4px}.modal.modal-wide{max-width:520px}.skeleton{background:linear-gradient(90deg,#f1f3f4 25%,#e8eaed 50%,#f1f3f4 75%);background-size:200% 100%;animation:shimmer 1.2s infinite;border-radius:6px;height:16px;margin:4px 0}@keyframes shimmer{0%{background-position:200%0}to{background-position:-200%0}}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(100px);background:#202124;color:#fff;padding:12px 24px;border-radius:8px;font-size:14px;font-weight:500;z-index:9999;transition:transform .3s;white-space:nowrap}.toast.show{transform:translateX(-50%) translateY(0)}.toast.ok{background:#1e8e3e}.toast.err{background:#d93025}@media (max-width:480px){.login-card{border:0;padding:32px 20px 24px}.topbar{padding:0 16px}.page-body{padding:16px 12px 60px}.section-card-header{padding:16px}.fleet-table td,.fleet-table th{padding:10px 12px}.fleet-table td:first-child,.fleet-table th:first-child{padding-left:16px}}
