/* =============================================================================
   2MGestion — Design system (nav horizontale, fond pointillé, épuré)
   Calqué sur la maquette Lovable. Autonome, aucune ressource externe.
============================================================================= */

:root{
	--bg:#fbfcfe;
	--dot:#e6eaf1;
	--surface:#ffffff;
	--surface-2:#f7f9fc;
	--border:#eaedf3;
	--border-2:#f0f2f7;
	--text:#1e2939;
	--muted:#64748b;
	--muted-2:#94a3b8;
	--accent:#2563eb;
	--accent-d:#1d4ed8;
	--accent-soft:#eef3ff;
	--green:#12824a; --green-bg:#e6f7ee;
	--red:#dc2626; --red-bg:#fdeceb;
	--amber:#b45309; --amber-bg:#fef4e2;
	--indigo:#4f46e5; --indigo-bg:#eef0ff;
	--grey:#5b6472; --grey-bg:#eef1f5;
	--radius:14px; --radius-sm:10px; --radius-lg:18px;
	--shadow:0 1px 2px rgba(20,30,50,.04),0 1px 3px rgba(20,30,50,.05);
	--shadow-md:0 4px 16px rgba(20,30,50,.08);
	--shadow-lg:0 18px 50px rgba(20,30,50,.18);
	--font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
	--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
	font-family:var(--font);color:var(--text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;
	background-color:var(--bg);
	background-image:radial-gradient(var(--dot) 1px, transparent 1px);
	background-size:22px 22px;
	min-height:100vh;
}
a{color:var(--accent);text-decoration:none;}
a:hover{text-decoration:underline;}
h1{font-size:26px;font-weight:800;letter-spacing:-.02em;margin:0 0 2px;}
img{max-width:100%;}

/* ------------------------------------------------------------- Barre du haut */
.topnav{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:18px;
	background:rgba(255,255,255,.9);backdrop-filter:saturate(180%) blur(10px);
	border-bottom:1px solid var(--border);padding:0 24px;height:64px;}
.brand{display:flex;align-items:center;gap:11px;flex-shrink:0;}
.brand .mark{width:38px;height:38px;border-radius:11px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;font-family:var(--mono);}
.brand .bt{font-weight:800;font-size:16px;letter-spacing:-.02em;line-height:1.05;}
.brand .bt small{display:block;font-weight:600;font-size:10.5px;color:var(--muted-2);letter-spacing:.02em;}
.mainnav{display:flex;align-items:center;gap:4px;flex:1;overflow-x:auto;scrollbar-width:none;}
.mainnav::-webkit-scrollbar{display:none;}
.mainnav a{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:10px;color:#4a5568;font-weight:600;font-size:13.5px;white-space:nowrap;transition:background .12s,color .12s;}
.mainnav a i{font-size:15px;color:var(--muted-2);}
.mainnav a:hover{background:var(--surface-2);color:var(--text);text-decoration:none;}
.mainnav a.select{background:var(--accent-soft);color:var(--accent-d);}
.mainnav a.select i{color:var(--accent);}
.topnav-right{display:flex;align-items:center;gap:12px;flex-shrink:0;}
.tb-install{display:none;align-items:center;gap:7px;background:var(--accent-soft);color:var(--accent-d);border:none;padding:8px 13px;border-radius:999px;font-weight:700;font-size:13px;cursor:pointer;}
.avatar-btn{width:38px;height:38px;border-radius:50%;background:var(--accent);color:#fff;border:none;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;cursor:pointer;text-decoration:none;}
.nav-burger{display:none;background:none;border:none;font-size:22px;color:var(--text);cursor:pointer;}

/* User dropdown */
.userpop{position:absolute;top:58px;right:20px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-lg);min-width:210px;padding:8px;z-index:60;display:none;}
.userpop.open{display:block;}
.userpop .u-h{padding:10px 12px;border-bottom:1px solid var(--border-2);margin-bottom:6px;}
.userpop .u-h .n{font-weight:700;}
.userpop .u-h .r{font-size:12px;color:var(--muted-2);}
.userpop a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:9px;color:var(--text);font-weight:600;font-size:13.5px;}
.userpop a:hover{background:var(--surface-2);text-decoration:none;}
.userpop a.danger{color:var(--red);}

/* ------------------------------------------------------------------- Page */
.page{max-width:1320px;margin:0 auto;padding:30px 26px 70px;}
.content{width:100%;}
.content > h1 + p,.page-sub{color:var(--muted);margin:2px 0 24px;font-size:14.5px;}

/* ------------------------------------------------------------------- Cards */
.crm-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:18px;box-shadow:var(--shadow);}
.crm-card h3{margin:0 0 16px;font-size:16px;font-weight:700;display:flex;align-items:center;gap:9px;}
.crm-card h3 i{color:var(--accent);}
.crm-empty{color:var(--muted-2);padding:26px;text-align:center;font-size:13.5px;}
.crm-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}

/* ------------------------------------------------------------------ Toolbar */
.crm-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:20px;}
.crm-filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap;flex:1;}
.crm-search{flex:1;position:relative;min-width:220px;max-width:640px;}
.crm-search i{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted-2);}
.crm-search input{width:100%;padding:11px 14px 11px 40px;border:1px solid var(--border);border-radius:12px;background:var(--surface);font-size:14px;}
.crm-search input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);}
select.crm-select{padding:11px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface);font-size:13.5px;color:var(--text);min-width:150px;}

/* ------------------------------------------------------------------ Buttons */
.crm-btn{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:11px;border:none;background:var(--accent);color:#fff;font-weight:700;cursor:pointer;text-decoration:none;font-size:13.5px;transition:background .12s,transform .05s;box-shadow:0 1px 2px rgba(37,99,235,.25);}
.crm-btn:hover{background:var(--accent-d);text-decoration:none;}
.crm-btn:active{transform:translateY(1px);}
.crm-btn.ghost{background:var(--surface);color:var(--text);border:1px solid var(--border);box-shadow:none;}
.crm-btn.ghost:hover{background:var(--surface-2);}
.crm-btn.danger{background:var(--red-bg);color:var(--red);box-shadow:none;}
.crm-mini{font-size:12px;padding:7px 11px;border-radius:9px;border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text);display:inline-flex;align-items:center;gap:6px;text-decoration:none;transition:background .12s;}
.crm-mini:hover{background:var(--surface-2);text-decoration:none;}
.icon-btn{width:32px;height:32px;border-radius:9px;border:1px solid var(--border);background:var(--surface);color:var(--muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;}
.icon-btn:hover{background:var(--surface-2);color:var(--text);}
.btn{margin-top:18px;}
.btn input[type=submit],.btn button{background:var(--accent);color:#fff;border:none;padding:12px 24px;border-radius:11px;font-weight:700;font-size:14px;cursor:pointer;box-shadow:0 1px 2px rgba(37,99,235,.25);}
.btn input[type=submit]:hover,.btn button:hover{background:var(--accent-d);}

/* ------------------------------------------------------------------- Forms */
label{display:block;font-size:12.5px;font-weight:600;color:#475569;margin:14px 0 6px;}
input[type=text],input[type=email],input[type=password],input[type=date],input[type=number],select,textarea{
	width:100%;padding:11px 13px;border:1px solid var(--border);border-radius:11px;font-size:14px;font-family:var(--font);background:var(--surface-2);color:var(--text);}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:var(--surface);}
input[readonly],select[disabled],textarea[readonly]{background:var(--surface-2);color:var(--muted);}
.crm-inline{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;}
.crm-inline > div{flex:1;min-width:140px;}
.crm-hint{font-size:12px;color:var(--muted-2);margin-top:4px;}

/* ------------------------------------------------------------------- Tables */
.crm-table-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;}
table{width:100%;border-collapse:collapse;font-size:13.5px;}
thead th{text-align:left;font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted-2);padding:13px 16px;border-bottom:1px solid var(--border);background:var(--surface-2);}
tbody td{padding:14px 16px;border-bottom:1px solid var(--border-2);vertical-align:middle;}
tbody tr:last-child td{border-bottom:none;}
tbody tr.clickable{cursor:pointer;transition:background .1s;}
tbody tr.clickable:hover{background:var(--surface-2);}
.cell-ref{font-family:var(--mono);font-size:12.5px;color:var(--accent);font-weight:600;}
.cell-mono{font-family:var(--mono);font-size:12.5px;color:var(--muted);}
.cell-strong{font-weight:700;}
.action_table{text-align:right;}
.action_btn_table{text-align:right;white-space:nowrap;}
.count-pill{display:inline-flex;align-items:center;gap:5px;background:var(--surface-2);border:1px solid var(--border);color:var(--muted);padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;}

/* ------------------------------------------------------------------- Badges */
.crm-badge{display:inline-block;padding:4px 11px;border-radius:999px;font-size:11.5px;font-weight:700;line-height:1.5;}
.chip{display:inline-flex;align-items:center;gap:6px;background:var(--surface-2);border:1px solid var(--border);color:var(--muted);padding:5px 10px;border-radius:8px;font-size:12px;font-weight:600;}
.chip i{color:var(--muted-2);}

/* ------------------------------------------------------------------- Stats */
.crm-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px;margin-bottom:22px;}
.crm-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px;box-shadow:var(--shadow);}
.crm-stat .head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px;}
.crm-stat .l{color:var(--muted);font-size:13px;font-weight:600;}
.crm-stat .ic{width:40px;height:40px;border-radius:11px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:17px;}
.crm-stat .ic.g{background:var(--green-bg);color:var(--green);}
.crm-stat .ic.a{background:var(--amber-bg);color:var(--amber);}
.crm-stat .ic.r{background:var(--red-bg);color:var(--red);}
.crm-stat .n{font-size:34px;font-weight:800;letter-spacing:-.02em;}

/* -------------------------------------------------------------- Liste (dashboard) */
.crm-list .row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 4px;border-bottom:1px solid var(--border-2);cursor:pointer;}
.crm-list .row:last-child{border-bottom:none;}
.crm-list .row:hover{background:var(--surface-2);border-radius:8px;}
.crm-list .row .t{font-weight:700;}
.crm-list .row .s{color:var(--muted-2);font-size:12.5px;margin-top:1px;}
.crm-list .row .s.mono{font-family:var(--mono);}

/* -------------------------------------------------------------- Cartes grille */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:18px;}
.g-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);transition:box-shadow .15s,transform .05s;}
.g-card:hover{box-shadow:var(--shadow-md);}
.g-card .gc-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px;}
.g-card .gc-ico{width:40px;height:40px;border-radius:11px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0;}
.g-card .gc-ico.g{background:var(--green-bg);color:var(--green);}
.g-card .gc-ico.a{background:var(--amber-bg);color:var(--amber);}
.g-card .gc-t{font-weight:700;font-size:14.5px;}
.g-card .gc-sub{color:var(--muted-2);font-size:12.5px;}
.g-card .gc-url{font-family:var(--mono);font-size:12.5px;color:var(--muted);margin:8px 0;word-break:break-all;}
.g-card .gc-badges{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:8px;}
.g-card .gc-chips{display:flex;gap:7px;flex-wrap:wrap;border-top:1px solid var(--border-2);padding-top:12px;margin-top:4px;}
.g-card .gc-link{margin-left:auto;color:var(--muted-2);}
.g-card .gc-link:hover{color:var(--accent);}

/* --------------------------------------------------------------- Fiche head */
.crm-fiche-head{display:flex;align-items:center;gap:16px;margin-bottom:22px;flex-wrap:wrap;}
.crm-avatar{width:58px;height:58px;border-radius:16px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:23px;font-weight:800;}
.crm-fiche-head h1{margin:0;font-size:23px;}
.crm-fiche-head .sub{color:var(--muted);font-size:13.5px;margin-top:3px;}

/* -------------------------------------------------------------------- Tabs */
.crm-tabs{display:flex;gap:4px;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:5px;margin-bottom:20px;flex-wrap:wrap;}
.crm-tabs button{background:none;border:none;padding:10px 16px;font-size:13.5px;font-weight:600;color:var(--muted);cursor:pointer;border-radius:9px;display:inline-flex;align-items:center;gap:7px;}
.crm-tabs button:hover{color:var(--text);}
.crm-tabs button.on{background:var(--surface);color:var(--accent-d);box-shadow:var(--shadow);}
.crm-pane{display:none;}
.crm-pane.on{display:block;}

/* -------------------------------------------------------------- Key/values */
.crm-kv{display:flex;gap:10px;padding:9px 0;font-size:13.5px;border-bottom:1px dashed var(--border-2);}
.crm-kv:last-child{border-bottom:none;}
.crm-kv .k{color:var(--muted-2);min-width:150px;font-weight:600;}
.crm-secret{font-family:var(--mono);background:var(--surface-2);padding:7px 11px;border-radius:9px;display:inline-flex;align-items:center;gap:10px;border:1px solid var(--border);}
.crm-acces-head{display:flex;align-items:center;gap:11px;flex-wrap:wrap;}
.crm-acces-head .cat{display:inline-flex;align-items:center;gap:8px;font-weight:700;}
.crm-acces-head .cat i{color:var(--accent);}
.acc-field{display:flex;align-items:center;gap:8px;margin:8px 0;}
.acc-field label{margin:0;min-width:46px;}
.acc-field input{background:var(--surface-2);font-family:var(--mono);font-size:13px;}

/* ------------------------------------------------------------- Placeholder */
.soon{text-align:center;padding:70px 20px;color:var(--muted);}
.soon .ic{width:70px;height:70px;border-radius:20px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:30px;margin:0 auto 18px;}
.soon h2{font-size:20px;color:var(--text);margin-bottom:6px;}

/* -------------------------------------------------------------- Notification */
.notification{padding:13px 16px;border-radius:11px;font-size:13.5px;margin-bottom:16px;}
.notification.erreur{background:var(--red-bg);color:var(--red);}
.notification.validation{background:var(--green-bg);color:var(--green);}
.notification.information{background:var(--indigo-bg);color:var(--indigo);}

/* -------------------------------------------------------------------- Toast */
#toast-zone{position:fixed;top:78px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:10px;}
.toast{display:flex;align-items:center;gap:11px;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--accent);box-shadow:var(--shadow-lg);border-radius:12px;padding:13px 16px;min-width:270px;max-width:370px;font-size:13.5px;font-weight:600;animation:toastIn .25s ease;}
.toast.validation{border-left-color:var(--green);}
.toast.erreur{border-left-color:var(--red);}
.toast .ic{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--accent-soft);color:var(--accent);}
.toast.validation .ic{background:var(--green-bg);color:var(--green);}
.toast.erreur .ic{background:var(--red-bg);color:var(--red);}
@keyframes toastIn{from{opacity:0;transform:translateX(30px);}to{opacity:1;transform:none;}}

/* ---------------------------------------------------------------- Responsive */
@media(max-width:1050px){
	.crm-grid{grid-template-columns:1fr;}
	.mainnav{position:fixed;top:64px;left:0;right:0;background:var(--surface);border-bottom:1px solid var(--border);flex-direction:column;align-items:stretch;padding:10px;gap:2px;box-shadow:var(--shadow-md);display:none;}
	.topnav.open .mainnav{display:flex;}
	.mainnav a{padding:12px 14px;}
	.nav-burger{display:block;order:3;}
	.brand{flex:1;}
	.page{padding:22px 16px 60px;}
	h1{font-size:22px;}
}
