/* File: public/assets/css/app.css — feuille de styles minimale. */
*,*::before,*::after{box-sizing:border-box}
body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;margin:0;background:#f8fafc;color:#0f172a;line-height:1.5}
a{color:#2563eb;text-decoration:none}
a:hover{text-decoration:underline}
input,select,textarea,button{font:inherit}
.topbar{display:flex;justify-content:space-between;align-items:center;background:#0f172a;color:#fff;padding:10px 20px}
.topbar .brand{font-size:16px}
.topbar .user a{color:#cbd5e1;margin-left:14px}
.layout{display:grid;grid-template-columns:240px 1fr;min-height:calc(100vh - 50px)}
.sidebar{background:#1e293b;color:#cbd5e1;padding:18px 0}
.sidebar nav{display:flex;flex-direction:column}
.sidebar nav a{color:#cbd5e1;padding:9px 20px;font-size:14px}
.sidebar nav a:hover{background:#334155;color:#fff;text-decoration:none}
.main{padding:24px 32px;max-width:1280px}
.alert{padding:10px 16px;border-radius:6px;margin:12px 0}
.alert-success{background:#dcfce7;color:#14532d}
.alert-error{background:#fee2e2;color:#7f1d1d}
.alert-info{background:#dbeafe;color:#1e3a8a}
.alert-warning{background:#fef3c7;color:#78350f}
table{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}
th,td{padding:10px 14px;text-align:left;border-bottom:1px solid #e2e8f0;font-size:14px}
th{background:#f1f5f9;font-weight:600;color:#475569}
form label{display:block;margin:12px 0 4px;font-size:13px;color:#334155;font-weight:500}
form input[type=text],form input[type=email],form input[type=password],form input[type=number],form select,form textarea{width:100%;padding:9px 12px;border:1px solid #cbd5e1;border-radius:6px;font-size:14px;background:#fff}
form input:focus,form textarea:focus,form select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.15)}
.btn,button[type=submit]{padding:10px 18px;background:#2563eb;color:#fff;border:0;border-radius:6px;font-size:14px;cursor:pointer;display:inline-block;text-decoration:none}
.btn:hover{background:#1d4ed8}
.btn-secondary{background:#475569}
.btn-danger{background:#dc2626}
.card{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:20px;margin:14px 0}
.auth{background:#0f172a;display:flex;align-items:center;justify-content:center;min-height:100vh}
.auth-card{background:#fff;border-radius:12px;padding:36px;max-width:420px;width:100%;box-shadow:0 12px 40px rgba(0,0,0,.4)}
.auth-card h1{margin:0 0 24px;font-size:22px}
.client-topbar{background:#fff;border-bottom:1px solid #e2e8f0;padding:14px 28px;display:flex;justify-content:space-between;align-items:center}
.client-topbar nav a{margin-left:18px;color:#475569;font-size:14px}
.client-main{max-width:1100px;margin:0 auto;padding:32px 28px}
.badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;background:#e2e8f0;color:#475569}
.badge-success{background:#dcfce7;color:#14532d}
.badge-warning{background:#fef3c7;color:#78350f}
.badge-error{background:#fee2e2;color:#7f1d1d}
.badge-info{background:#dbeafe;color:#1e3a8a}
.kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin:14px 0}
.kpi .card{text-align:center}
.kpi .card .v{font-size:24px;font-weight:600;color:#0f172a}
.kpi .card .l{font-size:12px;color:#64748b;text-transform:uppercase}
