:root{--bg:#0a0a0f;--surface:#14141b;--surface-hi:#1c1c26;--border:#ffffff17;--border-hi:#ffffff29;--text:#f4f4f5;--text-muted:#a1a1aa;--text-faint:#71717a;--accent:#f59e0b;--accent-hi:#fbbf24;--accent-ink:#1a1206;--danger:#f87171;--danger-bg:#f871711f;--radius:14px;--radius-sm:10px;--tap:46px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg);min-height:100dvh;color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit;text-decoration:none}.offline{z-index:40;padding:calc(var(--safe-top) + 9px) 16px 9px;background-color:var(--bg);color:var(--accent-hi);text-align:center;background-image:linear-gradient(#f59e0b26,#f59e0b26);border-bottom:1px solid #f59e0b52;font-size:.875rem;font-weight:600;position:sticky;top:0}.offline+* .topbar{padding-top:8px}.app{max-width:640px;padding:0 16px calc(96px + var(--safe-bottom));margin:0 auto}.topbar{top:var(--offline-h,0px);z-index:20;min-height:56px;padding:calc(var(--safe-top) + 8px) 16px 8px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#0a0a0fdb;align-items:center;gap:12px;margin:0 -16px 4px;display:flex;position:sticky}.topbar__title{letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:1.0625rem;font-weight:650;overflow:hidden}.iconbtn{border:1px solid var(--border);background:var(--surface);width:38px;height:38px;color:var(--text-muted);cursor:pointer;border-radius:50%;flex:none;place-items:center;display:grid}.iconbtn:active{background:var(--surface-hi)}.section{margin-top:26px}.section__head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.section__title{letter-spacing:.07em;text-transform:uppercase;color:var(--text-faint);font-size:.8125rem;font-weight:650}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:block}.stack{flex-direction:column;gap:10px;display:flex}.vehicle{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;align-items:center;gap:14px;padding:14px 16px;transition:border-color .15s;display:flex}.vehicle:active{border-color:var(--border-hi);background:var(--surface-hi)}.vehicle__body{flex:1;min-width:0}.vehicle__name{letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-weight:620;overflow:hidden}.vehicle__meta{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.875rem;overflow:hidden}.vehicle__chassis{border-radius:var(--radius-sm);width:48px;height:48px;color:var(--accent);letter-spacing:.02em;background:#f59e0b1c;border:1px solid #f59e0b38;flex:none;place-items:center;font-size:.8125rem;font-weight:700;display:grid}.chevron{color:var(--text-faint);flex:none}.badges{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.badge{background:var(--surface-hi);border:1px solid var(--border);color:var(--text-muted);border-radius:999px;padding:3px 9px;font-size:.75rem;font-weight:600}.badge--accent{color:var(--accent-hi);background:#f59e0b21;border-color:#f59e0b42}.badge--en_cours{color:#86efac;background:#4ade801f;border-color:#4ade8042}.badge--en_pause{color:#cbd5e1;background:#94a3b824;border-color:#94a3b842}.badge--termine{color:#93c5fd;background:#60a5fa21;border-color:#60a5fa42}.badge--a_commander{background:var(--surface-hi);border-color:var(--border-hi);color:var(--text-muted)}.badge--commandee{color:var(--accent-hi);background:#f59e0b21;border-color:#f59e0b42}.badge--recue{color:#93c5fd;background:#60a5fa21;border-color:#60a5fa42}.badge--montee{color:#86efac;background:#4ade801f;border-color:#4ade8042}.part{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;align-items:center;gap:12px;padding:13px 15px;transition:border-color .15s;display:flex}.part:active{border-color:var(--border-hi);background:var(--surface-hi)}.part__body{flex:1;min-width:0}.part__name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.part__meta{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.8125rem;overflow:hidden}.part__prix{font-variant-numeric:tabular-nums;flex:none;font-weight:640}.budget{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 15px}.budget__head{font-variant-numeric:tabular-nums;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.budget__label{letter-spacing:.07em;text-transform:uppercase;color:var(--text-faint);font-size:.8125rem;font-weight:650}.budget__montant--alerte{color:var(--danger)}.budget__bar{background:var(--surface-hi);border-radius:999px;height:6px;margin-top:11px;display:flex;overflow:hidden}.budget__fill{background:var(--accent);height:100%;transition:width .25s}.budget__fill--alerte{background:var(--danger)}.budget__fill--prevu{background:#f59e0b47}.budget__foot{color:var(--text-muted);margin-top:8px;font-size:.8125rem}.budget__foot--alerte{color:var(--accent-hi);margin-top:4px}.specs{background:var(--border);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:repeat(2,1fr);gap:1px;display:grid;overflow:hidden}.spec{background:var(--surface);padding:12px 14px}.spec__label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);font-size:.6875rem;font-weight:600}.spec__value{text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-weight:560;overflow:hidden}.spec--wide{grid-column:1/-1}.spec--wide .spec__value{white-space:normal;word-break:break-all}.btn{min-height:var(--tap);border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-ink);letter-spacing:-.005em;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-weight:660;transition:background .15s,opacity .15s;display:inline-flex}.btn:active{background:var(--accent-hi)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--block{width:100%}.btn--ghost{background:var(--surface);border-color:var(--border);color:var(--text)}.btn--ghost:active{background:var(--surface-hi)}.btn--danger{background:var(--danger-bg);color:var(--danger);border-color:#f871714d}.btn--sm{min-height:38px;padding:0 13px;font-size:.875rem}.fab{right:max(16px,50vw - 304px);bottom:calc(20px + var(--safe-bottom));z-index:30;background:var(--accent);height:52px;color:var(--accent-ink);cursor:pointer;border:none;border-radius:999px;align-items:center;gap:8px;padding:0 20px;font-weight:680;display:inline-flex;position:fixed;box-shadow:0 8px 24px #00000080,0 0 0 1px #f59e0b4d}.fab:active{background:var(--accent-hi)}.row{gap:10px;display:flex}.row>*{flex:1}.form{flex-direction:column;gap:18px;margin-top:8px;display:flex}.field{flex-direction:column;gap:7px;display:flex}.field__label{color:var(--text-muted);font-size:.875rem;font-weight:600}.field__hint{color:var(--text-faint);font-size:.8125rem}.input,.select,.textarea{width:100%;min-height:var(--tap);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;padding:11px 14px;transition:border-color .15s}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent)}.input::placeholder,.textarea::placeholder{color:var(--text-faint)}.textarea{resize:vertical;min-height:110px;line-height:1.55}.select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--text-faint) 50%), linear-gradient(135deg, var(--text-faint) 50%, transparent 50%);background-position:calc(100% - 19px) 21px,calc(100% - 14px) 21px;background-repeat:no-repeat;background-size:5px 5px;padding-right:40px}.select option{background:var(--surface);color:var(--text)}.combo{position:relative}.combo__list{z-index:40;overscroll-behavior:contain;background:var(--surface-hi);border:1px solid var(--border-hi);border-radius:var(--radius-sm);max-height:288px;padding:5px;list-style:none;position:absolute;top:calc(100% + 5px);left:0;right:0;overflow-y:auto;box-shadow:0 14px 32px #0000008c}.combo__option{cursor:pointer;border-radius:8px;padding:10px 12px}.combo__option[aria-selected=true]{color:var(--accent-hi);background:#f59e0b26}.photo{flex-direction:column;gap:10px;display:flex}.photo__image{object-fit:cover;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;max-height:260px;display:block}.photo__champ{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.vehicle__photo{object-fit:cover;border:1px solid var(--border);border-radius:var(--radius-sm);flex:none;width:48px;height:48px}.fiche__photo{object-fit:cover;border:1px solid var(--border);border-radius:var(--radius);width:100%;max-height:240px;margin-top:14px;display:block}.ident{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:4px 15px}.ident__summary{color:var(--text-muted);cursor:pointer;padding:12px 0;font-size:.9375rem;font-weight:600;list-style-position:inside}.ident__summary::marker{color:var(--text-faint)}.ident__corps{flex-direction:column;gap:15px;padding:4px 0 15px;display:flex}.ident__row{gap:8px;display:flex}.ident__row .input{letter-spacing:.04em;flex:1;min-width:0;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.ident__row .btn{flex:none}.ident__note{color:var(--text-faint);font-size:.8125rem;line-height:1.45}.notice{border-radius:var(--radius-sm);color:#86efac;background:#4ade801a;border:1px solid #4ade803d;padding:11px 13px;font-size:.9375rem}.notice--neutral{background:var(--surface-hi);border-color:var(--border-hi);color:var(--text-muted)}.mono{letter-spacing:.03em;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.ligne__tete{align-items:center;gap:10px;display:flex}.ligne__tete .input{flex:1;min-width:0}.ligne--exclue{opacity:.45}.check__tete{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px;padding:13px 15px}.check__compte{color:var(--text-muted);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:baseline;gap:12px;font-size:.9375rem;display:flex}.check__compte strong{color:var(--text)}.check__bar{background:var(--surface-hi);border-radius:999px;height:6px;margin-top:10px;overflow:hidden}.check__fill{background:#4ade80;border-radius:999px;height:100%;transition:width .25s}.check{background:var(--border);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:1px;margin:0;padding:0;list-style:none;display:flex;overflow:hidden}.check__item{background:var(--surface);align-items:flex-start;gap:12px;padding:13px 14px;display:flex}.check__box{width:21px;height:21px;accent-color:var(--accent);cursor:pointer;flex:none;margin:1px 0 0}.check__label{cursor:pointer;flex:1;min-width:0;line-height:1.45}.check__item--done .check__label{color:var(--text-faint);text-decoration:line-through;-webkit-text-decoration-color:var(--border-hi);text-decoration-color:var(--border-hi)}.check__date{color:var(--text-faint);margin-left:5px;font-size:.8125rem;display:inline-block}.check__suppr{width:32px;height:32px;color:var(--text-faint);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;font-size:1.25rem;line-height:1}.check__suppr:active{background:var(--surface-hi);color:var(--danger)}.check__ajout{gap:8px;margin-top:10px;display:flex}.check__ajout .input{flex:1;min-width:0}.check__ajout .btn{flex:none;padding:0 16px}.empty{text-align:center;background:var(--surface);border:1px dashed var(--border-hi);border-radius:var(--radius);padding:34px 22px}.empty__title{font-weight:640}.empty__text{color:var(--text-muted);margin-top:6px;font-size:.9375rem}.alert{border-radius:var(--radius-sm);background:var(--danger-bg);color:#fca5a5;border:1px solid #f8717147;padding:12px 14px;font-size:.9375rem}.spinner{border:2.5px solid var(--border-hi);border-top-color:var(--accent);border-radius:50%;width:26px;height:26px;margin:44px auto;animation:.7s linear infinite spin;display:block}@keyframes spin{to{transform:rotate(360deg)}}.muted{color:var(--text-muted)}.notes{white-space:pre-wrap;line-height:1.6}.auth{max-width:380px;min-height:100dvh;padding:32px 20px calc(32px + var(--safe-bottom));flex-direction:column;justify-content:center;margin:0 auto;display:flex}.auth__logo{width:56px;height:56px;margin-bottom:20px}.auth__title{letter-spacing:-.025em;font-size:1.625rem;font-weight:750}.auth__sub{color:var(--text-muted);margin-top:7px}.auth__switch{text-align:center;color:var(--text-muted);margin-top:20px;font-size:.9375rem}.linkbtn{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-weight:620}.linkbtn--danger{color:var(--text-faint);padding:0 4px;font-size:1.25rem;line-height:1}.linkbtn--danger:hover,.linkbtn--danger:focus-visible{color:var(--danger)}.cg{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:10px;margin-bottom:4px;padding:13px 14px;display:grid}.classer{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:13px 14px}.classer__tete{cursor:pointer;align-items:center;gap:10px;font-weight:560;display:flex}.carnet__bilan{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-top:14px;padding:14px 15px}.carnet__chiffres{flex-wrap:wrap;gap:10px 26px;display:flex}.carnet__chiffres strong{font-variant-numeric:tabular-nums;margin-top:2px;font-size:1.05rem;display:block}.part__notes{color:var(--text-faint);white-space:pre-line;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin-top:5px;font-size:.8125rem;line-height:1.4;display:-webkit-box;overflow:hidden}.carnet__note{color:var(--text-faint);margin:10px 0 0;font-size:.8125rem}.carnet__actions{flex-direction:column;flex:none;align-items:flex-end;gap:6px;display:flex}.tabs{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);gap:4px;padding:4px;display:flex}.tab{min-height:38px;color:var(--text-faint);cursor:not-allowed;background:0 0;border:none;border-radius:8px;flex:1;font-size:.9375rem;font-weight:600}.tab--active{background:var(--surface-hi);color:var(--text);cursor:default}.tab__soon{color:var(--text-faint);font-size:.6875rem;font-weight:500;display:block}
