:root{--bg: #f2f4f7;--surface: #ffffff;--surface-2: #f8f9fb;--text: #1a1d24;--muted: #667085;--border: #e4e7ec;--primary: #2563eb;--primary-contrast: #ffffff;--primary-soft: #eff4ff;--ok: #067647;--ok-bg: #ecfdf3;--warn: #b54708;--warn-bg: #fffaeb;--danger: #b42318;--danger-bg: #fef3f2;--neutral: #475467;--neutral-bg: #f2f4f7;--shadow: 0 1px 3px rgba(16, 24, 40, .08);--radius: 12px;--chart-1: #2a78d6;--chart-2: #1baf7a;--chart-3: #eda100;--chart-4: #008300}[data-theme=dark]{--bg: #0f1218;--surface: #181c25;--surface-2: #1f242f;--text: #e6e8ee;--muted: #98a2b3;--border: #2a3040;--primary: #6ea0ff;--primary-contrast: #0b1020;--primary-soft: #1c2536;--ok: #5fd39a;--ok-bg: #12261c;--warn: #f5b653;--warn-bg: #2b2214;--danger: #f58c82;--danger-bg: #2d1a18;--neutral: #b6bfcd;--neutral-bg: #232936;--shadow: 0 1px 3px rgba(0, 0, 0, .4);--chart-1: #3987e5;--chart-2: #199e70;--chart-3: #c98500;--chart-4: #008300}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.5}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{line-height:1.25}h1{font-size:1.5rem;margin:.4rem 0}h2{font-size:1.15rem;margin:1.4rem 0 .6rem}h3{font-size:1rem;margin:.8rem 0 .4rem}.app-header{background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.app-header-inner{max-width:1100px;margin:0 auto;padding:.6rem 1rem;display:flex;align-items:center;gap:1rem}.app-logo{font-weight:700;font-size:1.05rem;color:var(--text);display:flex;align-items:center;gap:.5rem}.app-logo:hover{text-decoration:none}.app-nav{display:flex;gap:.75rem;margin-left:auto;align-items:center}.app-nav a{color:var(--muted);font-weight:500}.app-nav a.active{color:var(--primary)}.container{max-width:1100px;margin:0 auto;padding:1rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem}.card+.card{margin-top:.9rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.9rem}.card-title{font-weight:600;margin:0 0 .5rem;display:flex;align-items:center;gap:.5rem}.badge{display:inline-flex;align-items:center;gap:.3rem;border-radius:999px;padding:.1rem .6rem;font-size:.78rem;font-weight:600;white-space:nowrap}.badge.depasse{background:var(--danger-bg);color:var(--danger)}.badge.bientot{background:var(--warn-bg);color:var(--warn)}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.a_renseigner,.badge.neutral{background:var(--neutral-bg);color:var(--neutral)}.badge.primary{background:var(--primary-soft);color:var(--primary)}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot.depasse{background:var(--danger)}.dot.bientot{background:var(--warn)}.dot.ok{background:var(--ok)}.dot.a_renseigner{background:var(--muted)}.btn{display:inline-flex;align-items:center;gap:.4rem;background:var(--primary);color:var(--primary-contrast);border:none;border-radius:8px;padding:.5rem .9rem;font-size:.9rem;font-weight:600;cursor:pointer;text-decoration:none}.btn:hover{opacity:.9;text-decoration:none}.btn.secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn.danger{background:var(--danger-bg);color:var(--danger);border:1px solid transparent}.btn.small{padding:.25rem .6rem;font-size:.8rem}.btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn{background:none;border:none;cursor:pointer;font-size:1rem;color:var(--muted);padding:.25rem;border-radius:6px}.icon-btn:hover{background:var(--surface-2);color:var(--text)}label.field{display:block;margin-bottom:.7rem;font-size:.85rem;color:var(--muted);font-weight:500}label.field>input,label.field>select,label.field>textarea{display:block;width:100%;margin-top:.25rem;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.45rem .6rem;font-size:.95rem;font-family:inherit}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:-1px}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.6rem .8rem}.checkbox-line{display:flex;align-items:flex-start;gap:.5rem;padding:.3rem 0;cursor:pointer}.checkbox-line input{margin-top:.25rem}.error-text{color:var(--danger);font-size:.85rem;margin:.5rem 0}.hint{color:var(--muted);font-size:.82rem}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:.9rem}table.data th{text-align:left;color:var(--muted);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;padding:.5rem .6rem;border-bottom:1px solid var(--border)}table.data td{padding:.55rem .6rem;border-bottom:1px solid var(--border);vertical-align:top}table.data tr:last-child td{border-bottom:none}table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums}.tabs{display:flex;gap:.15rem;border-bottom:1px solid var(--border);overflow-x:auto;margin:1rem 0;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs a{padding:.5rem .8rem;color:var(--muted);font-weight:600;font-size:.9rem;border-bottom:2px solid transparent;white-space:nowrap}.tabs a:hover{text-decoration:none;color:var(--text)}.tabs a.active{color:var(--primary);border-bottom-color:var(--primary)}.timeline{position:relative;padding-left:1.4rem}.timeline:before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:2px;background:var(--border)}.timeline-item{position:relative;margin-bottom:1rem}.timeline-item:before{content:"";position:absolute;left:-1.4rem;top:8px;width:10px;height:10px;border-radius:50%;background:var(--primary);border:2px solid var(--surface)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0c128c;display:flex;align-items:flex-start;justify-content:center;padding:3rem 1rem;z-index:50;overflow-y:auto}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.2rem;width:100%;max-width:560px;box-shadow:0 10px 40px #00000040}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.8rem}.modal-header h3{margin:0}.flex{display:flex;align-items:center;gap:.6rem}.flex-between{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap}.wrap{flex-wrap:wrap}.grow{flex:1}.muted{color:var(--muted)}.small{font-size:.82rem}.mt{margin-top:1rem}.mb0{margin-bottom:0}.chips{display:flex;flex-wrap:wrap;gap:.35rem}.chip{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:.1rem .6rem;font-size:.8rem}.attachment-link{display:inline-flex;align-items:center;gap:.3rem;background:var(--primary-soft);color:var(--primary);border-radius:6px;padding:.15rem .5rem;font-size:.82rem}.vehicle-photo{width:100%;height:150px;object-fit:cover;border-radius:8px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;font-size:3rem}.stat-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.8rem}.stat-tile{background:var(--surface-2);border-radius:8px;padding:.7rem .9rem}.stat-tile .value{font-size:1.25rem;font-weight:700;font-variant-numeric:tabular-nums}.stat-tile .label{color:var(--muted);font-size:.78rem}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}@media (max-width: 640px){body{font-size:14px}.container{padding:.7rem}.card{padding:.8rem}.app-header-inner{flex-wrap:wrap;gap:.3rem .8rem;padding:.5rem .8rem}.app-nav{gap:.5rem}label.field>input,label.field>select,label.field>textarea,.flex>input,.flex>select{font-size:16px}.form-row{grid-template-columns:1fr}.icon-btn{min-width:40px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;font-size:1.05rem}.modal-overlay{padding:1.2rem .8rem}table.data.stack-mobile thead{display:none}table.data.stack-mobile,table.data.stack-mobile tbody,table.data.stack-mobile tr,table.data.stack-mobile td{display:block;width:100%}table.data.stack-mobile tr{padding:.6rem 0;border-bottom:1px solid var(--border)}table.data.stack-mobile tr:last-child{border-bottom:none}table.data.stack-mobile td{border:none;padding:.15rem 0;text-align:left!important}table.data.stack-mobile td[data-label]:before{content:attr(data-label);display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-weight:600}}
