/* KAY Gestion — Studio KAY · feuille de style */
:root{
  /* Palette Studio KAY (issue du logo) */
  --clay:#D9533F; --clay-d:#B13C2A; --clay-l:#FBE0DA; --clay-xl:#FEF4F1;
  --yellow:#FCC917; --turq:#4DD6E4; --skin:#C1835F; --coral:#F2706A;
  --ink:#111111; --ink-2:#3F3A36; --mute:#857D76; --line:#E7E1DA; --line-2:#F1ECE6;
  --paper:#FAF8F5; --card:#FFFFFF; --sand:#F3EEE8; --hover:#FDFBF8; --subtle:#FCFAF7; --line-strong:#D3C6BA;
  --ok:#2F7D4F; --ok-bg:#E6F2EA; --warn:#9A6400; --warn-bg:#FFF4D1; --bad:#B42318; --bad-bg:#FBE7E5; --info:#16707C; --info-bg:#E2F7F9;
  --radius:14px; --shadow:0 1px 2px rgba(17,17,17,.05),0 6px 24px -12px rgba(17,17,17,.18);
  --serif:'Oswald','Arial Narrow',Impact,sans-serif; --sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:var(--sans);font-size:14.5px;line-height:1.5;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}
a{color:var(--clay-d);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:.01em;margin:0}
h1{font-size:28px;line-height:1.15}
h2{font-size:19px}
h3{font-size:16px}
.ic{flex:none;vertical-align:middle}
.muted{color:var(--mute)}
.small{font-size:12.5px}
.nowrap{white-space:nowrap}
.right{text-align:right}
.mt{margin-top:18px}.mb{margin-bottom:18px}
.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.spread{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.grid{display:grid;gap:18px}
.grid>*{min-width:0}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g-side{grid-template-columns:minmax(0,1fr) 340px}
.g-msg{grid-template-columns:320px minmax(0,1fr)}

/* ---------- Coque admin ---------- */
.shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}
.side{background:#0D0D0D;color:#E9E4DF;padding:20px 14px;position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column}
.brand{display:flex;align-items:center;gap:11px;padding:4px 8px 20px}
.brand-mark{width:38px;height:38px;border-radius:11px;background:var(--clay);display:grid;place-items:center;font-family:var(--serif);font-weight:700;font-size:20px;color:#fff;font-style:italic}
.brand-mark img{width:100%;height:100%;object-fit:cover;border-radius:11px}
.brand-mark.img{background:none;width:44px;height:44px}
.brand-mark.img img{object-fit:contain;border-radius:0}
.auth-logo{position:relative;z-index:1}
.auth-logo img{height:190px;width:auto;display:block}
.brand b{display:block;font-family:var(--serif);font-size:17px;color:#fff;font-weight:600}
.brand span{font-size:11.5px;color:#A89C91;letter-spacing:.08em;text-transform:uppercase}
.nav-sec{font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;color:#7E7269;padding:16px 10px 6px}
.nav a{display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:9px;color:#D8CEC5;font-size:14px;margin-bottom:1px}
.nav a:hover{background:#1F1F1F;color:#fff;text-decoration:none}
.nav a.on{background:var(--clay);color:#fff}
.nav a .count{margin-left:auto;background:var(--card);color:var(--clay-d);font-size:11px;font-weight:700;border-radius:20px;padding:1px 7px}
.nav a.on .count{background:var(--card)}
.side-foot{margin-top:auto;padding:14px 8px 0;border-top:1px solid #262626;font-size:12.5px;color:#A89C91}
.side-foot b{color:#fff;font-weight:600;display:block}
.main{padding:26px 34px 60px;min-width:0}
.top{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.top .eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--clay);font-weight:600;margin-bottom:6px}
.btn.menu-btn{display:none}

/* ---------- Cartes ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.card-h{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:16px 20px;border-bottom:1px solid var(--line-2)}
.card-b{padding:18px 20px}
.card-b.tight{padding:0}
.kpi{padding:18px 20px;position:relative;overflow:hidden}
.kpi .k-l{font-size:12.5px;color:var(--mute);display:flex;align-items:center;gap:7px}
.kpi .k-v{font-family:var(--serif);font-size:29px;font-weight:600;margin-top:6px;letter-spacing:-.02em}
.kpi .k-s{font-size:12.5px;color:var(--mute);margin-top:2px}
.kpi.accent{background:var(--ink);color:#fff;border-color:var(--ink)}
.kpi.accent .k-l,.kpi.accent .k-s{color:#CFC8C1}
.kpi.accent .k-l{position:relative;z-index:1;padding-right:44px}
.kpi.accent::after{content:"";position:absolute;right:-26px;top:-26px;width:80px;height:80px;border-radius:50%;background:var(--yellow);opacity:.9}
.empty{padding:34px 20px;text-align:center;color:var(--mute)}
.empty .ic{color:var(--clay);opacity:.6;margin-bottom:6px}

/* ---------- Tableaux ---------- */
.table-wrap{overflow-x:auto}
table.t{width:100%;border-collapse:collapse}
.t th{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--mute);font-weight:600;text-align:left;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--subtle);white-space:nowrap}
.t td{padding:11px 16px;border-bottom:1px solid var(--line-2);vertical-align:middle}
.t tr:last-child td{border-bottom:0}
.t tbody tr:hover td{background:var(--hover)}
.t .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.t tfoot td{font-weight:600;border-top:1px solid var(--line)}

/* ---------- Badges & pastilles ---------- */
.badge{display:inline-block;font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:20px;white-space:nowrap}
.b-ok{background:var(--ok-bg);color:var(--ok)}.b-warn{background:var(--warn-bg);color:var(--warn)}.b-bad{background:var(--bad-bg);color:var(--bad)}
.b-info{background:var(--info-bg);color:var(--info)}.b-mute{background:var(--sand);color:var(--ink-2)}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:middle}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--clay-l);color:var(--clay-d);display:inline-grid;place-items:center;font-weight:700;font-size:12.5px;flex:none}
.avatar.lg{width:58px;height:58px;font-size:20px;font-family:var(--serif)}
.who{display:flex;align-items:center;gap:10px}
.who b{display:block;font-weight:600}
.who span{font-size:12.5px;color:var(--mute)}

/* ---------- Boutons & formulaires ---------- */
.btn{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--card);color:var(--ink);padding:8px 14px;border-radius:10px;font:600 13.5px var(--sans);cursor:pointer;white-space:nowrap;line-height:1.3}
.btn:hover{border-color:var(--line-strong);text-decoration:none;background:var(--hover)}
.btn.primary{background:var(--clay);border-color:var(--clay);color:#fff}
.btn.primary:hover{background:var(--clay-d)}
.btn.dark{background:var(--ink);border-color:var(--ink);color:#fff}
.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-2)}
.btn.ghost:hover{background:var(--sand)}
.btn.danger{color:var(--bad)}
.btn.sm{padding:5px 10px;font-size:12.5px;border-radius:8px}
.btn.block{width:100%;justify-content:center}
label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:5px}
.field{margin-bottom:14px}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=datetime-local],input[type=time],input[type=tel],input[type=url],input[type=search],select,textarea{
  width:100%;border:1px solid var(--line);background:var(--card);border-radius:10px;padding:9px 12px;font:14px var(--sans);color:var(--ink);outline:none;transition:border-color .15s,box-shadow .15s}
input:focus,select:focus,textarea:focus{border-color:var(--clay);box-shadow:0 0 0 3px rgba(180,83,42,.14)}
textarea{min-height:90px;resize:vertical}
input[type=color]{width:46px;height:38px;border:1px solid var(--line);border-radius:10px;padding:3px;background:var(--card)}
.check{display:flex;gap:8px;align-items:center;font-weight:500;font-size:13.5px;color:var(--ink)}
.check input{width:16px;height:16px;accent-color:var(--clay)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}
.form-grid .full{grid-column:1/-1}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.filters input,.filters select{width:auto;min-width:160px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:18px;overflow-x:auto}
.tabs a{padding:9px 14px;color:var(--mute);font-weight:600;font-size:13.5px;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.tabs a.on{color:var(--clay-d);border-color:var(--clay)}
.tabs a:hover{text-decoration:none;color:var(--ink)}
.inline-form{display:inline}

/* ---------- Flash ---------- */
.flash{padding:11px 16px;border-radius:10px;margin-bottom:14px;font-weight:500;border:1px solid}
.f-ok{background:var(--ok-bg);color:var(--ok);border-color:#CFE5D7}
.f-bad{background:var(--bad-bg);color:var(--bad);border-color:#F2CCC7}
.f-warn{background:var(--warn-bg);color:var(--warn);border-color:#F1DDB5}

/* ---------- Modale ---------- */
dialog.modal{border:0;border-radius:18px;padding:0;width:min(620px,94vw);box-shadow:0 30px 80px -20px rgba(0,0,0,.4)}
dialog.modal::backdrop{background:rgba(31,26,23,.45);backdrop-filter:blur(2px)}
.modal-h{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line-2)}
.modal-b{padding:20px 22px}
.modal-f{display:flex;justify-content:flex-end;gap:10px;padding:14px 22px;border-top:1px solid var(--line-2);background:var(--subtle)}

/* ---------- Agenda ---------- */
.week{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));gap:10px;overflow-x:auto}
.day{background:var(--card);border:1px solid var(--line);border-radius:12px;min-height:220px;display:flex;flex-direction:column}
.day-h{padding:10px 12px;border-bottom:1px solid var(--line-2);font-size:12px;color:var(--mute)}
.day-h b{display:block;font-family:var(--serif);font-size:22px;color:var(--ink);font-weight:600;line-height:1.1}
.day.today{border-color:var(--clay);box-shadow:0 0 0 2px var(--clay-l)}
.day.today .day-h b{color:var(--clay)}
.day-b{padding:8px;display:flex;flex-direction:column;gap:7px;flex:1}
.ev{display:block;border-radius:9px;padding:8px 9px;background:var(--clay-xl);border-left:3px solid var(--clay);color:var(--ink);font-size:12.5px}
.ev:hover{text-decoration:none;filter:brightness(.98)}
.ev b{display:block;font-weight:600;line-height:1.25}
.ev .t{color:var(--ink-2);font-variant-numeric:tabular-nums}
.ev.cancel{opacity:.5;text-decoration:line-through}
.ev .cap{font-size:11.5px;color:var(--mute)}
.list-ev{display:flex;gap:14px;align-items:center;padding:14px 20px;border-bottom:1px solid var(--line-2)}
.list-ev:last-child{border-bottom:0}
.date-chip{width:54px;flex:none;text-align:center;border-radius:11px;background:var(--sand);padding:6px 0}
.date-chip b{display:block;font-family:var(--serif);font-size:21px;line-height:1.05}
.date-chip span{font-size:11px;text-transform:uppercase;color:var(--mute);letter-spacing:.06em}
.meter{height:6px;background:var(--line-2);border-radius:6px;overflow:hidden;min-width:70px}
.meter i{display:block;height:100%;background:var(--clay);border-radius:6px}

/* ---------- Galerie ---------- */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px}
.tile{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--card);display:flex;flex-direction:column}
.tile .thumb{aspect-ratio:4/3;background:var(--sand) center/cover no-repeat;display:grid;place-items:center;color:var(--clay)}
.tile .meta{padding:9px 11px;font-size:12.5px}
.tile .meta b{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.art-card .thumb{aspect-ratio:1/1}

/* ---------- Messagerie ---------- */
.chat{display:flex;flex-direction:column;gap:10px;max-height:520px;overflow-y:auto;padding:18px 20px;background:var(--subtle)}
.msg{max-width:78%;padding:10px 13px;border-radius:14px;background:var(--card);border:1px solid var(--line);white-space:pre-wrap}
.msg.me{align-self:flex-end;background:var(--clay);border-color:var(--clay);color:#fff}
.msg .when{display:block;font-size:11px;opacity:.7;margin-top:4px}
.chat-form{display:flex;gap:10px;padding:14px 20px;border-top:1px solid var(--line-2)}
.chat-form textarea{min-height:46px;height:46px}
.thread{display:flex;gap:11px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line-2);color:var(--ink)}
.thread:hover{background:var(--hover);text-decoration:none}
.thread.on{background:var(--clay-xl)}
.thread .pv{font-size:12.5px;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}

/* ---------- Divers ---------- */
.progress{height:8px;background:var(--line-2);border-radius:8px;overflow:hidden}
.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--clay),var(--coral))}
.steps{list-style:none;margin:0;padding:0}
.steps li{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px dashed var(--line)}
.steps li:last-child{border:0}
.steps .tick{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;flex:none;color:#fff}
.steps li.done .tick{background:var(--ok);border-color:var(--ok)}
.steps li.done span{color:var(--mute);text-decoration:line-through}
.kv{display:grid;grid-template-columns:130px 1fr;gap:7px 12px;font-size:13.5px}
.kv dt{color:var(--mute)}.kv dd{margin:0;font-weight:500}
.bar-chart{display:flex;align-items:flex-end;gap:10px;height:180px;padding-top:10px}
.bar-chart .col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.bar-chart .bar{width:100%;max-width:46px;background:var(--clay);border-radius:7px 7px 3px 3px;min-height:3px}
.bar-chart .bar.alt{background:var(--turq)}
.bar-chart .lbl{font-size:11.5px;color:var(--mute)}
.bar-chart .v{font-size:11px;color:var(--ink-2);font-variant-numeric:tabular-nums}
.alert-line{display:flex;gap:10px;align-items:center;padding:10px 14px;border-radius:10px;background:var(--warn-bg);color:var(--warn);font-weight:500;margin-bottom:8px}
.lines-table input{padding:7px 9px}
.lines-table td{padding:6px 8px}
.hr{height:1px;background:var(--line-2);margin:16px 0}

/* ---------- Connexion ---------- */
.auth{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}
.auth-art{background:var(--ink);color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.auth-art::before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;background:var(--yellow);right:-140px;bottom:-140px;opacity:.95}
.auth-art::after{content:"";position:absolute;width:150px;height:150px;border-radius:50%;border:16px solid var(--turq);right:150px;bottom:190px;box-shadow:60px -170px 0 -48px var(--clay)}
.auth-art h1{font-size:46px;line-height:1.05;max-width:440px;position:relative;z-index:1}
.auth-art h1 em{color:var(--yellow);font-style:normal}
.auth-art p{color:#C9BDB2;max-width:400px;position:relative;z-index:1}
.auth-form{display:grid;place-items:center;padding:40px}
.auth-box{width:min(380px,100%)}
.auth-box h2{font-size:26px;margin-bottom:6px}

/* ---------- Portail client ---------- */
.p-top{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}
.p-top-in{max-width:1180px;margin:0 auto;display:flex;align-items:center;gap:22px;padding:12px 22px}
.p-top .brand{padding:0}
.p-top .brand b{color:var(--ink)}
.p-top .brand span{color:var(--mute)}
.p-top .brand span{white-space:nowrap}@media(max-width:480px){.p-top .brand span{font-size:10px;letter-spacing:.04em}.p-top .brand b{font-size:15px}}
.p-nav{display:flex;gap:2px;overflow-x:auto;flex:1}
.p-nav a{padding:8px 10px;border-radius:9px;color:var(--ink-2);font-weight:600;font-size:13.5px;white-space:nowrap;display:flex;gap:7px;align-items:center}
.p-nav a:hover{background:var(--sand);text-decoration:none}
.p-nav a.on{background:var(--clay-xl);color:var(--clay-d)}
.p-nav .count{background:var(--clay);color:#fff;font-size:10.5px;border-radius:20px;padding:0 6px}
.p-main{max-width:1180px;margin:0 auto;padding:28px 22px 70px}
.hero{background:var(--ink);color:#fff;border-radius:20px;padding:28px 30px;position:relative;overflow:hidden;margin-bottom:22px}
.hero::after{content:"";position:absolute;right:-50px;top:-70px;width:220px;height:220px;border-radius:50%;background:var(--yellow)}
.hero::before{content:"";position:absolute;right:120px;bottom:-40px;width:90px;height:90px;border-radius:50%;border:12px solid var(--turq)}
.hero h1{font-size:30px;position:relative;z-index:1}
.hero p{color:#D6CFC8;margin:6px 0 0;position:relative;z-index:1}
.hero .row{position:relative;z-index:1;margin-top:16px}
.slot{display:flex;gap:14px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line-2)}
.slot:last-child{border-bottom:0}
.slot .info{flex:1;min-width:0}
.slot .info b{display:block}
.pill{display:inline-flex;gap:5px;align-items:center;font-size:12px;color:var(--ink-2);background:var(--sand);border-radius:20px;padding:2px 9px}

/* ---------- Document imprimable ---------- */
.doc{background:var(--card);max-width:820px;margin:0 auto;padding:46px 52px;border:1px solid var(--line);border-radius:6px;box-shadow:var(--shadow)}
.doc-head{display:flex;justify-content:space-between;gap:20px;border-bottom:3px solid var(--ink);padding-bottom:20px}
.doc-head .studio b{font-family:var(--serif);font-size:24px;display:block}
.doc-title{text-align:right}
.doc-title h1{font-size:34px;text-transform:uppercase;letter-spacing:.06em}
.doc-title .n{color:var(--clay);font-weight:600}
.doc-parties{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:24px 0}
.doc-parties .box{background:var(--paper);border-radius:8px;padding:14px 16px;font-size:13.5px}
.doc-parties .box small{display:block;text-transform:uppercase;letter-spacing:.1em;font-size:10.5px;color:var(--mute);margin-bottom:4px}
.doc table{width:100%;border-collapse:collapse;font-size:13.5px}
.doc th{background:var(--ink);color:#fff;text-align:left;padding:9px 12px;font-size:11.5px;text-transform:uppercase;letter-spacing:.06em}
.doc td{padding:10px 12px;border-bottom:1px solid var(--line-2)}
.doc .totals{margin-left:auto;width:300px;margin-top:14px}
.doc .totals div{display:flex;justify-content:space-between;padding:6px 0;font-size:13.5px}
.doc .totals .grand{border-top:2px solid var(--ink);margin-top:4px;padding-top:10px;font-size:17px;font-weight:700}
.doc-foot{margin-top:34px;padding-top:16px;border-top:1px solid var(--line);font-size:12px;color:var(--mute);display:flex;justify-content:space-between;gap:20px}
.stamp{display:inline-block;border:3px solid var(--ok);color:var(--ok);font-weight:800;letter-spacing:.15em;padding:6px 16px;transform:rotate(-8deg);border-radius:6px;font-size:18px}

@media print{
  body{background:var(--card)}
  .no-print,.side,.p-top,.top .row{display:none!important}
  .shell,.g-side,.grid{display:block}.main,.p-main{padding:0}
  .doc{border:0;box-shadow:none;padding:0;max-width:none}
  @page{margin:14mm}
}

@media (max-width:1100px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g-side,.g-msg{grid-template-columns:1fr}}
@media (max-width:860px){
  .shell{grid-template-columns:1fr}
  .side{position:fixed;left:0;top:0;bottom:0;width:260px;z-index:50;transform:translateX(-100%);transition:transform .2s}
  .side.open{transform:none;box-shadow:0 0 0 100vmax rgba(0,0,0,.4)}
  .btn.menu-btn{display:inline-flex}
  .main{padding:18px 16px 50px}
  .g2,.g3,.form-grid{grid-template-columns:1fr}
  .auth{grid-template-columns:1fr}.auth-art{display:none}
  .doc{padding:24px 18px}.doc-parties{grid-template-columns:1fr}
  h1{font-size:23px}
}
@media (max-width:760px){
  .p-nav{position:fixed;left:0;right:0;bottom:0;background:var(--card);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom));z-index:30;gap:0;box-shadow:0 -6px 20px -12px rgba(0,0,0,.2)}
  .p-nav a{flex-direction:column;gap:3px;font-size:10px;padding:6px 2px;flex:1 0 46px;justify-content:center;position:relative}
  .p-nav .count{position:absolute;top:0;right:8px}
  .p-top-in{justify-content:space-between;padding:10px 16px}
  .p-main{padding:20px 14px 110px}
  .hero{padding:22px 20px}.hero h1{font-size:25px}.hero::after{width:120px;height:120px;right:-50px;top:-55px}.hero::before{right:-20px;bottom:-45px;width:70px;height:70px;border-width:10px}
}
@media (max-width:560px){
  .g4{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .kpi{padding:14px}.kpi .k-v{font-size:22px}.kpi .k-s{font-size:11.5px}
  .filters input,.filters select{min-width:0;width:100%}
  .slot{flex-wrap:wrap}
}

/* ---------- Connexion par code PIN ---------- */
.seg{display:flex;background:var(--sand);border-radius:12px;padding:4px;margin-bottom:20px}
.seg a{flex:1;text-align:center;padding:8px 10px;border-radius:9px;font-weight:600;font-size:13.5px;color:var(--ink-2)}
.seg a:hover{text-decoration:none}
.seg a.on{background:var(--card);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}
.pin-users{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:18px}
.pin-user{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;width:78px;padding:10px 4px;border-radius:12px;border:2px solid transparent;cursor:pointer;margin:0;font-weight:600}
.pin-user input{position:absolute;opacity:0;pointer-events:none}
.pin-user .avatar{width:46px;height:46px;font-size:15px}
.pin-user .n{font-size:12.5px;color:var(--ink-2);max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pin-user:hover{background:var(--sand)}
.pin-user:has(input:checked){border-color:var(--clay);background:var(--clay-xl)}
.pin-user:has(input:checked) .avatar{background:var(--clay);color:#fff}
.pin-input{position:absolute;left:-9999px;width:1px;height:1px}
.pin-dots{display:flex;justify-content:center;gap:14px;margin:4px 0 20px}
.pin-dots i{width:15px;height:15px;border-radius:50%;border:2px solid var(--ink);transition:background .1s}
.pin-dots i.on{background:var(--ink)}
.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:290px;margin:0 auto}
.keypad button{height:58px;border-radius:14px;border:1px solid var(--line);background:var(--card);font:600 22px var(--sans);color:var(--ink);cursor:pointer;display:grid;place-items:center}
.keypad button:hover{background:var(--sand)}
.keypad button:active{transform:scale(.96)}
.keypad .go{background:var(--clay);border-color:var(--clay);color:#fff}
.keypad .go:hover{background:var(--clay-d)}

/* ---------- Mode application ---------- */
.pwa-install[hidden]{display:none!important}
.side .pwa-install{background:#1F1F1F;border-color:#333;color:#fff}
.is-app body{padding-top:env(safe-area-inset-top)}
.is-app .side{padding-top:calc(20px + env(safe-area-inset-top))}
.is-app .p-top{padding-top:env(safe-area-inset-top)}
dialog.modal ol{padding-left:20px;line-height:1.7}

/* ---------- Mode nuit ---------- */
[data-theme="dark"]{
  --ink:#F2EEE9; --ink-2:#CFC8C1; --mute:#9A928A; --line:#2E2B28; --line-2:#262320; --line-strong:#45403B;
  --paper:#141312; --card:#1C1A18; --sand:#2A2725; --hover:#221F1D; --subtle:#191715;
  --clay-l:#4A2620; --clay-xl:#2A1A16;
  --ok-bg:#16301F; --warn-bg:#33280E; --bad-bg:#3A1A17; --info-bg:#102E33;
  --ok:#6FCF97; --warn:#F2C14E; --bad:#F28B82; --info:#6FD6E2;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px -12px rgba(0,0,0,.6);
  color-scheme:dark;
}
[data-theme="dark"] .btn.dark{background:#F2EEE9;color:#111;border-color:#F2EEE9}
[data-theme="dark"] .kpi.accent,[data-theme="dark"] .hero{background:#0B0B0B;border-color:#2E2B28}
[data-theme="dark"] .doc{background:#fff;color:#111}
[data-theme="dark"] .t th{background:var(--subtle)}
[data-theme="dark"] .msg{background:var(--sand)}
[data-theme="dark"] .p-top,[data-theme="dark"] .p-nav{background:var(--card)}
[data-theme="dark"] input,[data-theme="dark"] select,[data-theme="dark"] textarea{background:var(--subtle);color:var(--ink)}

/* ---------- Barre du haut (espace studio) ---------- */
.topbar{display:flex;align-items:center;gap:8px;margin:-8px 0 18px;padding-bottom:12px;border-bottom:1px solid var(--line-2);flex-wrap:wrap}
.tb-chip{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:4px 11px;color:var(--ink-2);white-space:nowrap}
.tb-chip.net i{width:8px;height:8px;border-radius:50%;background:var(--ok)}
.tb-chip.net.off i{background:var(--bad)}
.tb-btn{position:relative;width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--ink);display:grid;place-items:center;cursor:pointer}
.tb-btn:hover{background:var(--hover)}
.tb-count{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--clay);color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center}
.tb-count[hidden]{display:none}
.tb-lang{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--card)}
.tb-lang button{border:0;background:transparent;padding:8px 10px;font:700 12px var(--sans);color:var(--mute);cursor:pointer}
.tb-lang button.on{background:var(--ink);color:var(--paper)}
.tb-me{display:inline-flex;align-items:center;gap:8px;color:var(--ink);font-weight:600;font-size:13.5px;text-decoration:none!important}
.tb-me .avatar{width:34px;height:34px}
.tb-notif{position:relative}
.notif-panel,.chat-panel{position:absolute;right:0;top:44px;width:min(380px,92vw);background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 20px 50px -15px rgba(0,0,0,.35);z-index:60;overflow:hidden}
.notif-panel[hidden],.chat-panel[hidden]{display:none}
.notif-h{padding:12px 14px;border-bottom:1px solid var(--line-2)}
.notif-list{max-height:420px;overflow-y:auto}
.notif-item{display:flex;gap:10px;padding:11px 14px;border-bottom:1px solid var(--line-2);color:var(--ink);font-size:13.5px;text-decoration:none!important}
.notif-item.unread{background:var(--clay-xl)}
.notif-item:hover{background:var(--hover)}
.notif-item .when{display:block;font-size:11.5px;color:var(--mute);margin-top:2px}
.notif-item .x{margin-left:auto;border:0;background:none;color:var(--mute);cursor:pointer;align-self:flex-start}
.chat-fab{position:fixed;right:22px;bottom:22px;z-index:55}
.chat-btn{position:relative;width:54px;height:54px;border-radius:50%;border:0;background:var(--clay);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 10px 30px -8px rgba(217,83,63,.6)}
.chat-panel{bottom:66px;top:auto}
.chat-team{height:340px;max-height:50vh}
.chat-team .msg{max-width:85%}
.chat-team .who-line{font-size:11px;font-weight:700;opacity:.75;display:block;margin-bottom:2px}
.avatar.lg{width:58px;height:58px}
.settings-search{margin-bottom:16px}
.hl-hide{display:none!important}
@media (max-width:860px){.hide-sm{display:none!important}.topbar{margin-top:0}.chat-fab{right:14px;bottom:14px}}

/* ---------- Validation PIN ---------- */
[data-pin] .pin-lock{font-size:11px;opacity:.8}

/* ---------- Documents A4 (devis, factures, reçus) ---------- */
.doc.a4{width:210mm;max-width:100%;min-height:297mm;padding:14mm 14mm 10mm;display:flex;flex-direction:column;border-radius:4px;font-size:12.5px;color:#111;background:#fff}
.a4 .muted{color:#6b6b6b}
.a4-head{display:flex;justify-content:space-between;gap:18px;padding-bottom:12px;border-bottom:3px solid #111;position:relative}
.a4-head::after{content:"";position:absolute;left:0;bottom:-3px;width:90px;height:3px;background:#D9533F}
.a4-brand{display:flex;gap:14px;align-items:center}
.a4-raison{font-family:var(--serif);font-size:20px;font-weight:700;letter-spacing:.02em;text-transform:uppercase}
.a4-coord{font-size:11.5px;color:#444;line-height:1.5;margin-top:3px}
.a4-legal{font-size:10.5px;color:#666;margin-top:4px}
.a4-title{text-align:right;min-width:210px}
.a4-title h1{font-size:32px;text-transform:uppercase;letter-spacing:.08em;line-height:1}
.a4-num{color:#D9533F;font-weight:700;font-size:14px;margin:4px 0 6px}
.a4-meta{border-collapse:collapse;margin-left:auto;font-size:11.5px}
.a4-meta td{padding:2px 0 2px 12px;text-align:right;border:0}
.a4-meta td:first-child{color:#777}
.a4-parties{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0 14px}
.a4-parties .box{background:#f6f4f1;border-radius:6px;padding:11px 13px;font-size:12px;line-height:1.5}
.a4-parties small{display:block;text-transform:uppercase;letter-spacing:.1em;font-size:9.5px;color:#888;margin-bottom:3px}
.a4-parties b{font-size:13.5px}
.a4-cl-legal{font-size:11px;color:#555;margin-top:3px}
.doc.a4 table.a4-lines{width:100%;border-collapse:collapse;font-size:12px}
.doc.a4 .a4-lines th{background:#111;color:#fff;text-align:left;padding:7px 9px;font-size:10px;text-transform:uppercase;letter-spacing:.06em}
.doc.a4 .a4-lines td{padding:8px 9px;border-bottom:1px solid #e7e3de;vertical-align:top}
.doc.a4 .a4-lines tbody tr:nth-child(even) td{background:#fbfaf8}
.a4 .r{text-align:right!important;white-space:nowrap}
.a4-sum{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-top:12px}
.a4-sum-l{flex:1;padding-top:6px}
.a4 .totals{width:270px;margin:0}
.a4 .totals div{display:flex;justify-content:space-between;padding:4px 0;font-size:12.5px}
.a4 .totals .grand{border-top:2px solid #111;margin-top:4px;padding-top:8px;font-size:16px;font-weight:800}
.a4-lettres{font-size:12px;line-height:1.5;margin:0 0 12px;max-width:380px}
.a4-notes{margin-top:14px;font-size:11.5px;white-space:pre-wrap;background:#f6f4f1;padding:9px 12px;border-radius:6px}
.a4-pay{margin-top:10px;font-size:11.5px;line-height:1.5}
.a4-sign{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-top:auto;padding-top:22px}
.a4-sign .sig{width:200px;text-align:center;font-size:11.5px}
.a4-sign .sig small{display:block;color:#666;margin-bottom:58px}
.a4-sign .sig .line{border-top:1px solid #111;padding-top:5px}
.a4-qr{display:flex;gap:9px;align-items:center;font-size:10px;color:#555;max-width:230px;line-height:1.35}
.a4-qr .qr{width:72px;height:72px;flex:none}
.a4-qr .qr svg{width:100%;height:100%}
.a4-foot{display:flex;justify-content:space-between;gap:16px;margin-top:14px;padding-top:8px;border-top:1px solid #ddd;font-size:10px;color:#777}
.a4-merci{font-weight:600;color:#111;text-align:right}
.a4-recu{margin:26px 0 10px;font-size:13.5px}
.a4-recu-montant{font-family:var(--serif);font-size:42px;font-weight:700;margin:6px 0 4px;color:#111}
.doc.a4 .badge{font-size:10px}
@media print{
  @page{size:A4;margin:0}
  html,body{background:#fff!important}
  .doc.a4{width:210mm;min-height:296mm;padding:13mm 14mm 9mm;border:0!important;border-radius:0;box-shadow:none!important;margin:0}
  .doc.a4 .a4-lines th{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .a4-parties .box,.a4-notes,.doc.a4 .a4-lines tbody tr:nth-child(even) td,.a4-head::after{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
@media (max-width:860px){.doc.a4{min-height:0;padding:18px 14px}.a4-head{flex-direction:column}.a4-title{text-align:left}.a4-meta{margin-left:0}.a4-meta td{text-align:left;padding:2px 12px 2px 0}.a4-parties{grid-template-columns:1fr}.a4-sum{flex-direction:column}.a4 .totals{width:100%}.a4-sign{flex-wrap:wrap}}

/* ---------- Aide & formation ---------- */
.proc-steps{margin:0;padding-left:20px;line-height:1.6;font-size:13.5px}
.proc-steps li{margin-bottom:6px;padding-left:4px}
.proc-steps li::marker{color:var(--clay);font-weight:700}
.proc-tip{margin-top:12px;background:var(--clay-xl);border-radius:10px;padding:10px 12px;font-size:12.5px;color:var(--ink-2);display:flex;gap:8px;align-items:flex-start}
.proc-tip .ic{color:var(--clay);margin-top:2px}
