*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--ink: #101114;--ink-2: #36383D;--ink-3: #737780;--paper: #FAFAF8;--paper-2: #F0F1EE;--paper-3: #E2E4DF;--gold: #C9A84C;--gold-l: #F0DFA0;--gold-bg: #FBF7EA;--green: #2D6A4F;--green-l: #D8F3DC;--red: #B5200D;--red-l: #FDECEA;--blue: #1B4F8A;--blue-l: #E0EAFB;--amber: #A05C00;--amber-l: #FEF3E0;--border: rgba(15,14,12,.1);--shadow-sm: 0 1px 3px rgba(16,17,20,.06), 0 1px 2px rgba(16,17,20,.04);--shadow-md: 0 18px 42px rgba(16,17,20,.1), 0 6px 16px rgba(16,17,20,.06);--r-sm: 6px;--r-md: 10px;--r-lg: 16px;--font-display: "DM Sans", system-ui, sans-serif;--font-body: "DM Sans", system-ui, sans-serif;--font-mono: ui-monospace, SFMono-Regular, SF Mono, Consolas, Liberation Mono, monospace}html{font-size:16px;scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:.9375rem;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}.skip-link{position:fixed;left:1rem;top:1rem;z-index:300;transform:translateY(-160%);background:var(--ink);color:var(--paper);padding:.55rem .8rem;border-radius:var(--r-sm);transition:transform .18s ease}.skip-link:focus{transform:translateY(0)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--paper-3);border-radius:3px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.app-shell{display:flex;min-height:100dvh}.app-main{flex:1;min-height:100dvh;margin-left:220px;padding:2rem 2.5rem;background:radial-gradient(circle at top right,rgba(201,168,76,.1),transparent 30rem),var(--paper)}.sidebar{width:220px;min-height:100dvh;background:var(--ink);display:flex;flex-direction:column;position:fixed;left:0;top:0;bottom:0;z-index:100}.sidebar-brand{padding:1.75rem 1.5rem 1.25rem;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-logo{font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--paper);letter-spacing:-.03em;line-height:1.05}.sidebar-logo-accent{color:var(--gold)}.sidebar-kicker{font-size:11px;color:#ffffff6b;margin-top:6px;letter-spacing:.06em;text-transform:uppercase}.sidebar-nav{padding:1rem .75rem;flex:1}.nav-link{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--r-md);margin-bottom:2px;font-size:14px;color:#ffffff94;transition:transform .18s ease,background .18s ease,color .18s ease}.nav-link:hover{color:var(--paper);background:#ffffff14;transform:translate(2px)}.nav-link:active{transform:translate(2px) scale(.98)}.nav-link.is-active{color:var(--paper);background:#ffffff1f;font-weight:600}.sidebar-footer{padding:1rem 1.5rem;border-top:1px solid rgba(255,255,255,.08);font-size:11px;color:#ffffff52}.page-shell{width:min(100%,1180px);animation:fadeUp .35s ease both}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem}.page-title{font-family:var(--font-display);font-size:clamp(1.6rem,2vw,2.15rem);font-weight:750;color:var(--ink);letter-spacing:-.03em;line-height:1.08;text-wrap:balance}.page-subtitle{color:var(--ink-3);font-size:.95rem;margin-top:.35rem;max-width:62ch;text-wrap:pretty}.ui-button{will-change:transform;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease,background .18s ease}.ui-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-sm);filter:brightness(1.02)}.ui-button:active:not(:disabled){transform:translateY(0) scale(.98)}.ui-button:focus-visible,.ui-input:focus-visible,.nav-link:focus-visible,.clickable-card:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.ui-input{transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.ui-input:focus{border-color:#c9a84ca6!important;box-shadow:0 0 0 3px #c9a84c29}.ui-card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.clickable-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:#c9a84c52}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.responsive-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.form-grid{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:16px}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.animate-fadeup{animation:fadeUp .4s ease both}.animate-spin{animation:spin .8s linear infinite}.skeleton{background:linear-gradient(90deg,var(--paper-2) 25%,var(--paper-3) 50%,var(--paper-2) 75%);background-size:400px 100%;animation:shimmer 1.4s ease infinite;border-radius:var(--r-sm)}.score-high{color:var(--green)}.score-mid{color:var(--amber)}.score-low{color:var(--red)}.bg-score-high{background:var(--green-l);color:var(--green)}.bg-score-mid{background:var(--amber-l);color:var(--amber)}.bg-score-low{background:var(--red-l);color:var(--red)}.status-nouveau{background:var(--blue-l);color:var(--blue)}.status-visite_planifiee{background:var(--gold-bg);color:var(--amber)}.status-visite_faite{background:var(--green-l);color:var(--green)}.status-offre{background:#f0e6ff;color:#5b21b6}.status-archive{background:var(--paper-2);color:var(--ink-3)}@media (max-width: 920px){.detail-layout,.dashboard-layout{grid-template-columns:1fr!important}}@media (max-width: 760px){.app-shell{display:block}.app-main{margin-left:0;padding:1.25rem 1rem 6rem}.sidebar{top:auto;width:100%;height:76px;min-height:76px;flex-direction:row;border-top:1px solid rgba(255,255,255,.1)}.sidebar-brand,.sidebar-footer{display:none}.sidebar-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;padding:8px;width:100%}.nav-link{justify-content:center;flex-direction:column;gap:3px;margin:0;padding:7px 4px;font-size:10.5px;line-height:1.15;text-align:center}.nav-link:hover,.nav-link:active{transform:none}.page-header{flex-direction:column;margin-bottom:1.25rem}.responsive-grid,.form-grid{grid-template-columns:1fr}}
