:root{--bg:#f6f7f9;--surface:#fff;--surface-alt:#eef1f5;--text:#182230;--text-muted:#5a6577;--border:#d9dee7;--border-strong:#b9c2d0;--accent:#0f4c81;--accent-hover:#0c3d68;--accent-text:#fff;--danger:#a03030;--danger-bg:#fbeeee;--ok:#1f6b3a;--radius:6px;--mono:"SFMono-Regular", ui-monospace, "Cascadia Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif;font-size:15px;line-height:1.55}.shell{flex-direction:column;min-height:100vh;display:flex}.topbar{background:var(--text);color:#fff;z-index:10;align-items:center;gap:28px;height:52px;padding:0 24px;display:flex;position:sticky;top:0}.topbar-brand{letter-spacing:.02em;color:#fff;align-items:baseline;gap:10px;font-size:15px;font-weight:700;text-decoration:none;display:flex}.topbar-brand small{color:#9fb0c7;font-size:12px;font-weight:400}.topbar nav{flex:1;gap:4px;display:flex}.topbar nav a{color:#c3cedf;border-radius:var(--radius);padding:6px 12px;font-size:14px;text-decoration:none}.topbar nav a:hover{color:#fff;background:#ffffff14}.topbar nav a.active{color:#fff;background:#ffffff24}.topbar-user{color:#c3cedf;align-items:center;gap:12px;font-size:13px;display:flex}.topbar-user .role{color:#8fa3c0}main.content{flex:1;width:100%;max-width:1160px;margin:0 auto;padding:28px 24px 64px}h1{letter-spacing:-.01em;margin:0 0 4px;font-size:22px;font-weight:700}h2{margin:28px 0 12px;font-size:16px;font-weight:600}h3{color:var(--text);margin:20px 0 8px;font-size:14px;font-weight:600}.page-sub{color:var(--text-muted);margin:0 0 24px;font-size:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:20px}.card>:first-child{margin-top:0}.card>:last-child{margin-bottom:0}.grid{gap:16px;display:grid}.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.grid-4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}table.data{border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;font-size:14px;overflow:hidden}table.data th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--surface-alt);border-bottom:1px solid var(--border);padding:9px 14px;font-size:12px;font-weight:600}table.data td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 14px}table.data tbody tr:last-child td{border-bottom:none}table.data tbody tr:hover{background:#f3f6fa}table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums}table.data td.ref{font-family:var(--mono);font-size:13px}table.data a{color:var(--accent);font-weight:500;text-decoration:none}table.data a:hover{text-decoration:underline}.empty{text-align:center;color:var(--text-muted);background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius);padding:36px 20px;font-size:14px}.badge{color:var(--text);white-space:nowrap;align-items:center;gap:7px;font-size:13px;display:inline-flex}.badge:before{content:"";background:var(--text-muted);border-radius:50%;flex:none;width:8px;height:8px}.badge.s-nouvelle:before{background:#2d6cb5}.badge.s-qualifiee:before{background:#10898c}.badge.s-devis_envoye:before{background:#6554c0}.badge.s-negociation:before{background:#b07d1e}.badge.s-commande:before{background:#1f8a4c}.badge.s-livree:before{background:#136a3c}.badge.s-perdue:before{background:#a03030}.badge.s-bloquee:before{background:#c96a17}.badge.s-brouillon:before{background:#7a8698}.badge.s-envoye:before{background:#2d6cb5}.badge.s-accepte:before{background:#1f8a4c}.badge.s-refuse:before{background:#a03030}.badge.s-expire:before{background:#946200}.badge.s-ouverte:before{background:#1f8a4c}.badge.s-annulee:before{background:#a03030}.grade{font-family:var(--mono);font-size:13px;font-weight:700}.grade.g-A{color:#1f6b3a}.grade.g-B{color:#b07d1e}.grade.g-C{color:var(--text-muted)}.score{font-variant-numeric:tabular-nums;font-family:var(--mono);font-size:13px}form.stack{flex-direction:column;gap:14px;display:flex}.field{flex-direction:column;gap:5px;display:flex}.field label{color:var(--text);font-size:13px;font-weight:600}.field .hint{color:var(--text-muted);font-size:12px}input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);width:100%;padding:8px 10px}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}.row{flex-wrap:wrap;gap:14px;display:flex}.row .field{flex:180px}button,.btn{font:inherit;background:var(--accent);color:var(--accent-text);border:1px solid var(--accent);border-radius:var(--radius);cursor:pointer;align-items:center;gap:8px;padding:8px 16px;font-weight:600;text-decoration:none;display:inline-flex}button:hover,.btn:hover{background:var(--accent-hover)}button:disabled,.btn.disabled{opacity:.55;cursor:not-allowed}button.secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}button.secondary:hover{background:var(--surface-alt)}button.danger{color:var(--danger);border-color:var(--danger);background:0 0}button.danger:hover{background:var(--danger-bg)}button.small{padding:5px 10px;font-size:13px;font-weight:500}.error-box{background:var(--danger-bg);color:#7d2626;border-radius:var(--radius);border:1px solid #e5c4c4;margin:0 0 14px;padding:10px 14px;font-size:14px}.ok-box{color:#1f6b3a;border-radius:var(--radius);background:#eef7f0;border:1px solid #c5e0cd;margin:0 0 14px;padding:10px 14px;font-size:14px}.pending{color:var(--text-muted);font-size:13px}.kpi{flex-direction:column;gap:2px;display:flex}.kpi .kpi-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:12px}.kpi .kpi-value{font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.kpi .kpi-note{color:var(--text-muted);font-size:12px}.kpi .kpi-value.unavailable{color:var(--text-muted);font-size:14px;font-weight:500}.timeline{margin:0;padding:0;list-style:none}.timeline li{border-left:2px solid var(--border);padding:8px 0 8px 18px;font-size:13.5px;position:relative}.timeline li:before{content:"";background:var(--border-strong);border-radius:50%;width:8px;height:8px;position:absolute;top:14px;left:-5px}.timeline .t-when{color:var(--text-muted);font-size:12px;font-family:var(--mono)}.timeline .t-who{color:var(--text-muted);margin-left:6px;font-size:12px}dl.details{grid-template-columns:180px 1fr;gap:6px 16px;margin:0;font-size:14px;display:grid}dl.details dt{color:var(--text-muted)}dl.details dd{font-variant-numeric:tabular-nums;margin:0}.muted{color:var(--text-muted)}.mono{font-family:var(--mono);font-size:13px}.actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}hr.sep{border:none;border-top:1px solid var(--border);margin:20px 0}.login-wrap{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;width:380px;padding:32px}.login-card h1{font-size:18px}.login-card .brand-line{color:var(--text-muted);margin-bottom:24px;font-size:13px}@media (max-width:720px){.topbar{flex-wrap:wrap;gap:10px;height:auto;padding:10px 16px}.topbar nav{order:3;width:100%;overflow-x:auto}main.content{padding:20px 14px 48px}dl.details{grid-template-columns:1fr}.row .field{flex:100%}table.data{font-size:13px}table.data th,table.data td{padding:8px 10px}}
