/* ============================================================
   DEMSEY — Charte partagée des fiches IRVE
   (mêmes tokens que visite.html) + composants spécifiques :
   signature, checklist C/NC/SO, répéteur (bornes), sélecteur
   de client, dashboard par client.
   ============================================================ */
:root{
  --o:#ee7d31; --o-dk:#d96a1f; --o-sf:#fdeee1;
  --ink:#2c2e30; --anthra:#3a3c3e; --soft:#7c7a75;
  --line:#e3e0d9; --line2:#d3cfc6;
  --bg:#f4f2ee; --card:#ffffff; --grey:#f1f0ed;
  --ok:#2f7d46; --ok-sf:#e6f2e9;
  --no:#c0392b; --no-sf:#fbeae8;
  --shadow:0 1px 2px rgba(44,46,48,.06),0 6px 18px rgba(44,46,48,.05);
  --font:Arial,"Liberation Sans",Helvetica,system-ui,sans-serif;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;}
body{font-family:var(--font);background:var(--anthra);color:var(--ink);font-size:16px;line-height:1.45;}
#app{max-width:480px;margin:0 auto;min-height:100vh;background:var(--bg);position:relative;display:flex;flex-direction:column;box-shadow:0 0 40px rgba(0,0,0,.25);}
button{font-family:inherit;}
body.desktop{background:var(--bg);}
body.desktop #app{max-width:none;box-shadow:none;}
body.desktop .topbar .row,body.desktop .ovr,body.desktop .scroll{max-width:1100px;margin-left:auto;margin-right:auto;width:100%;}
body.desktop .scroll{padding-left:28px;padding-right:28px;}
body.desktop .actionbar{max-width:none;justify-content:center;}
body.desktop .actionbar .btn{max-width:300px;}
body.desktop .actionbar .btn.primary{max-width:420px;}
body.desktop .hubgrid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));}
body.desktop .sesslist{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:13px;}

/* ---------- top bar ---------- */
.topbar{position:sticky;top:0;z-index:20;background:var(--anthra);color:#fff;padding:env(safe-area-inset-top) 0 0;}
.topbar .row{display:flex;align-items:center;gap:12px;padding:13px 16px;}
.logo{font-weight:bold;letter-spacing:.16em;font-size:19px;}
.logo b{color:var(--o);}
.logo img{display:block;height:46px;width:auto;background:#fff;border-radius:9px;padding:5px 10px;box-shadow:0 1px 3px rgba(0,0,0,.2);}
.topbar .ttl{font-size:13px;color:#cfcdc8;line-height:1.2;flex:1;}
.topbar .ttl b{color:#fff;display:block;font-size:14px;letter-spacing:.01em;}
.iconbtn{background:rgba(255,255,255,.12);border:none;color:#fff;width:38px;height:38px;border-radius:9px;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.iconbtn:active{background:rgba(255,255,255,.25);}
.backbtn{background:rgba(255,255,255,.12);border:none;color:#fff;height:38px;padding:0 14px 0 10px;border-radius:9px;font-size:14px;font-weight:bold;cursor:pointer;display:flex;align-items:center;gap:6px;}
.homebtn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:9px;background:rgba(255,255,255,.12);color:#fff;text-decoration:none;font-size:20px;line-height:1;flex:0 0 auto;margin-right:2px;}
.homebtn:active{background:rgba(255,255,255,.25);}

/* ---------- overall progress strip ---------- */
.ovr{background:var(--anthra);padding:0 16px 13px;color:#fff;}
.ovr .lab{display:flex;justify-content:space-between;font-size:12px;color:#cfcdc8;margin-bottom:5px;}
.ovr .lab b{color:var(--o);}
.ovr .bar{height:7px;border-radius:5px;background:rgba(255,255,255,.15);overflow:hidden;}
.ovr .bar i{display:block;height:100%;background:var(--o);transition:width .3s;}

/* ---------- scroll area ---------- */
.scroll{flex:1;overflow-y:auto;padding:16px 16px 120px;}

/* ---------- hub ---------- */
.hubgrid{display:grid;grid-template-columns:1fr 1fr;gap:11px;}
.scard{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:13px 13px 12px;box-shadow:var(--shadow);text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:9px;min-height:118px;transition:transform .08s,border-color .15s;}
.scard:active{transform:scale(.975);}
.scard .top{display:flex;align-items:center;justify-content:space-between;}
.scard .num{width:30px;height:30px;border-radius:9px;background:var(--grey);color:var(--anthra);font-weight:bold;font-size:15px;display:flex;align-items:center;justify-content:center;}
.scard.done .num{background:var(--o);color:#fff;}
.scard .state{font-size:12px;font-weight:bold;color:var(--soft);}
.scard.done .state{color:var(--ok);}
.scard .t{font-size:14px;font-weight:bold;line-height:1.2;color:var(--ink);flex:1;}
.scard .meter{height:6px;border-radius:4px;background:var(--grey);overflow:hidden;}
.scard .meter i{display:block;height:100%;background:var(--o);}
.scard.locked{cursor:default;opacity:.62;}
.scard.locked .num{background:#eee;color:#bbb;}
.scard .lk{font-size:11px;color:var(--soft);font-weight:normal;line-height:1.25;}

.hubhead{display:flex;align-items:baseline;justify-content:space-between;margin:2px 2px 13px;}
.hubhead h1{font-size:18px;margin:0;color:var(--anthra);}
.hubhead .dt{font-size:12px;color:var(--soft);}

/* ---------- sessions / dossiers ---------- */
.sesslist{display:flex;flex-direction:column;gap:11px;}
.sess{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:var(--shadow);cursor:pointer;transition:transform .08s;}
.sess:active{transform:scale(.99);}
.sess.active{border-color:var(--o);box-shadow:0 0 0 2px var(--o-sf),var(--shadow);}
.sess .shead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;}
.sess .sname{font-size:16px;font-weight:bold;color:var(--ink);line-height:1.2;}
.sess .badge-act{font-size:10.5px;font-weight:bold;color:#fff;background:var(--o);padding:2px 8px;border-radius:999px;margin-left:6px;vertical-align:middle;}
.sess .smeta{font-size:12px;color:var(--soft);margin:4px 0 11px;}
.sess .sbar{height:6px;border-radius:4px;background:var(--grey);overflow:hidden;}
.sess .sbar i{display:block;height:100%;background:var(--o);}
.sess .sfoot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;}
.sess .sfoot .pc{font-size:13px;font-weight:bold;color:var(--o);}
.sess .sacts{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end;}
.sess .sact{background:none;border:1.5px solid var(--line2);border-radius:9px;color:var(--anthra);font-size:12.5px;font-weight:bold;padding:8px 11px;cursor:pointer;}
.sess .sact:active{background:var(--grey);}
.sess .sact.share{background:var(--o);border-color:var(--o);color:#fff;}
.sess .sact.del{border:none;color:var(--soft);font-weight:normal;text-decoration:underline;padding:8px 4px;}
.sesshead{display:flex;align-items:baseline;justify-content:space-between;margin:2px 2px 14px;}
.sesshead h1{font-size:18px;margin:0;color:var(--anthra);}
.sesshead .ct{font-size:12px;color:var(--soft);}

/* cloud / connexion */
.cloudbar{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:13px;box-shadow:var(--shadow);}
.cloudbar .ci{display:flex;align-items:center;gap:9px;min-width:0;}
.cloudbar .ci .dot{width:10px;height:10px;border-radius:50%;background:#c9c4ba;flex:0 0 auto;}
.cloudbar .ci .dot.ok{background:var(--ok);}
.cloudbar .ci b{display:block;font-size:13px;color:var(--ink);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px;}
.cloudbar .ci span{font-size:11.5px;color:var(--soft);}
.cloudbar .ca{display:flex;gap:4px;flex:0 0 auto;}
.cloudbar .lnk{background:none;border:none;color:var(--anthra);font-size:12.5px;font-weight:bold;text-decoration:underline;cursor:pointer;padding:6px 5px;}
.cloudbar .lnk.strong{color:var(--o);}
.stag{display:inline-block;font-size:10px;font-weight:bold;padding:1px 7px;border-radius:999px;margin-left:7px;vertical-align:middle;background:var(--grey);color:var(--soft);}
.stag.ok{background:var(--ok-sf);color:var(--ok);}
.stag.wait{background:var(--o-sf);color:var(--o-dk);}
.login{padding:8px 2px;}
.logincard{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow);}
.logincard h2{margin:0 0 4px;font-size:19px;color:var(--anthra);}
.logincard .sub{color:var(--soft);font-size:13px;margin:0 0 8px;}
.logincard label{display:block;font-size:12.5px;font-weight:bold;color:var(--ink);margin:12px 0 5px;}
.logincard input{width:100%;font:inherit;font-size:16px;border:1.5px solid var(--line2);border-radius:10px;padding:11px 12px;}
.logincard input:focus{outline:none;border-color:var(--o);box-shadow:0 0 0 3px var(--o-sf);}
.lierr{color:#c0392b;font-size:12.5px;min-height:16px;margin-top:8px;}
.orsep{display:flex;align-items:center;gap:10px;color:var(--soft);font-size:12px;margin:14px 0;}
.orsep::before,.orsep::after{content:"";flex:1;height:1px;background:var(--line2);}
.gbtn{width:100%;background:#fff;color:var(--ink);border:1.5px solid var(--line2);border-radius:12px;padding:14px;font-size:15px;font-weight:bold;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:9px;}
.gbtn:active{background:var(--grey);}
.gbtn .gg{width:18px;height:18px;border-radius:50%;border:2px solid var(--o);border-right-color:transparent;display:inline-block;}
.cfm-ov{position:fixed;inset:0;background:rgba(44,46,48,.5);display:flex;align-items:center;justify-content:center;z-index:100;padding:24px;}
.cfm{background:#fff;border-radius:16px;max-width:360px;width:100%;padding:20px;box-shadow:0 12px 40px rgba(0,0,0,.3);}
.cfm-msg{font-size:15px;color:var(--ink);line-height:1.4;margin-bottom:18px;}
.cfm-row{display:flex;gap:10px;}
.cfm-row button{flex:1;border-radius:11px;padding:13px;font-size:15px;font-weight:bold;cursor:pointer;border:1.5px solid var(--line2);}
.cfm-no{background:#fff;color:var(--anthra);}
.cfm-yes{background:#c0392b;color:#fff;border-color:#c0392b;}

/* ---------- section detail ---------- */
.secbar{position:sticky;top:0;z-index:15;background:var(--bg);padding:14px 2px 10px;border-bottom:1px solid var(--line);margin:-16px -16px 16px;padding-left:16px;padding-right:16px;}
.secbar .h{display:flex;align-items:center;gap:10px;}
.secbar .num{width:30px;height:30px;border-radius:9px;background:var(--o);color:#fff;font-weight:bold;display:flex;align-items:center;justify-content:center;font-size:15px;}
.secbar h2{font-size:18px;margin:0;color:var(--anthra);flex:1;line-height:1.15;}
.secbar .pc{font-size:13px;font-weight:bold;color:var(--o);}
.secnote{background:var(--o-sf);border:1px solid #f4d6bd;color:var(--o-dk);font-size:12.5px;border-radius:9px;padding:8px 11px;margin-bottom:14px;}

.grp{margin-bottom:6px;}
.grp .gl{font-size:13px;font-weight:bold;color:var(--o);text-transform:none;margin:18px 0 9px;padding-bottom:5px;border-bottom:1.5px solid var(--o-sf);}

.fld{margin-bottom:15px;}
.fld>label{display:block;font-size:13.5px;font-weight:bold;color:var(--ink);margin-bottom:6px;line-height:1.25;}
.fld .hint{font-weight:normal;color:var(--soft);font-size:12px;}
input[type=text],input[type=number],input[type=date],input[type=email],input[type=tel],textarea{
  width:100%;font:inherit;font-size:16px;color:var(--ink);background:var(--card);
  border:1.5px solid var(--line2);border-radius:10px;padding:11px 12px;
}
input:focus,textarea:focus{outline:none;border-color:var(--o);box-shadow:0 0 0 3px var(--o-sf);}
textarea{resize:vertical;min-height:64px;}
.bigarea{min-height:240px;}
.inwrap{position:relative;}
.inwrap .unit{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--soft);font-size:13px;font-weight:bold;pointer-events:none;}
.inwrap input{padding-right:46px;}

/* segmented / chips */
.opts{display:flex;flex-wrap:wrap;gap:8px;}
.opt{font-size:13.5px;border:1.5px solid var(--line2);background:var(--card);color:var(--ink);
  border-radius:999px;padding:9px 14px;cursor:pointer;min-height:42px;display:flex;align-items:center;line-height:1.1;transition:all .12s;}
.opt:active{transform:scale(.96);}
.opt.on{background:var(--o);border-color:var(--o);color:#fff;font-weight:bold;}
.opt.multi.on{background:var(--o-sf);border-color:var(--o);color:var(--o-dk);}
.opt .ck{margin-right:6px;font-weight:bold;}

/* photo */
.photos{display:flex;flex-wrap:wrap;gap:9px;}
.photo-add{border:1.5px dashed var(--line2);background:var(--card);color:var(--soft);border-radius:11px;width:84px;height:84px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer;font-size:11px;font-weight:bold;}
.photo-add .cam{width:26px;height:20px;border:2px solid var(--soft);border-radius:4px;position:relative;}
.photo-add .cam::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:8px;height:8px;border:2px solid var(--soft);border-radius:50%;}
.photo-add:active{border-color:var(--o);color:var(--o);}
.thumb{width:84px;height:84px;border-radius:11px;background-size:cover;background-position:center;position:relative;border:1px solid var(--line2);cursor:pointer;}
.thumb .del{position:absolute;top:-7px;right:-7px;width:24px;height:24px;border-radius:50%;background:var(--anthra);color:#fff;border:2px solid #fff;font-size:13px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.thumb.pending{outline:2px dashed var(--o);outline-offset:-2px;}
.thumb.pending::after{content:"↑";position:absolute;left:-6px;top:-6px;width:20px;height:20px;border-radius:50%;background:var(--o);color:#fff;font-size:12px;font-weight:bold;display:flex;align-items:center;justify-content:center;}
.secnotes{margin:22px 0 6px;}
.secnotes textarea{width:100%;font:inherit;font-size:16px;color:var(--ink);background:var(--card);border:1.5px solid var(--line2);border-radius:10px;padding:11px 12px;resize:vertical;min-height:80px;}
.secnotes textarea:focus{outline:none;border-color:var(--o);box-shadow:0 0 0 3px var(--o-sf);}
.donecheck{display:flex;align-items:center;gap:11px;margin:18px 0 6px;padding:14px 16px;background:var(--card);border:1.5px solid var(--line2);border-radius:12px;cursor:pointer;font-size:15px;font-weight:bold;color:var(--ink);box-shadow:var(--shadow);}
.donecheck .box{width:26px;height:26px;border-radius:7px;border:2px solid var(--line2);display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;font-weight:bold;flex:0 0 auto;}
.donecheck.on{border-color:var(--ok);background:var(--ok-sf);color:var(--ok);}
.donecheck.on .box{background:var(--ok);border-color:var(--ok);}
.lb-ov{position:fixed;inset:0;background:rgba(20,21,22,.92);display:flex;align-items:center;justify-content:center;z-index:120;padding:20px;}
.lb-img{max-width:100%;max-height:100%;border-radius:8px;box-shadow:0 10px 40px rgba(0,0,0,.5);}
.lb-close{position:fixed;top:14px;right:16px;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.15);color:#fff;border:none;font-size:26px;line-height:1;cursor:pointer;}

/* ---------- bottom action bar ---------- */
.actionbar{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:480px;
  background:linear-gradient(to top,var(--bg) 70%,rgba(244,242,238,0));padding:14px 16px calc(14px + env(safe-area-inset-bottom));
  display:flex;gap:10px;z-index:18;}
.btn{flex:1;border:none;border-radius:12px;padding:15px;font-size:15px;font-weight:bold;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px;}
.btn.primary{background:var(--o);color:#fff;box-shadow:0 4px 14px rgba(238,125,49,.35);}
.btn.primary:active{background:var(--o-dk);}
.btn.sec{flex:0 0 auto;background:var(--card);color:var(--anthra);border:1.5px solid var(--line2);padding:15px 18px;}
.btn.ghost{background:var(--card);color:var(--anthra);border:1.5px solid var(--line2);}

/* ---------- export screen ---------- */
.exp .sumcard{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:var(--shadow);margin-bottom:14px;}
.exp h2{font-size:19px;margin:0 0 4px;color:var(--anthra);}
.exp .sub{color:var(--soft);font-size:13px;margin-bottom:14px;}
.exp .sumrow{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px;}
.exp .sumrow:last-child{border-bottom:none;}
.exp .sumrow .pc{font-weight:bold;}
.exp .sumrow .pc.ok{color:var(--ok);}
.exp .sumrow .pc.no{color:var(--soft);}
.exp .bigbtn{width:100%;border:none;border-radius:14px;padding:17px;font-size:16px;font-weight:bold;cursor:pointer;margin-bottom:11px;display:flex;align-items:center;gap:14px;text-align:left;box-shadow:var(--shadow);}
.exp .bigbtn .ico{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:bold;flex:0 0 auto;}
.exp .bigbtn .tx{flex:1;line-height:1.25;}
.exp .bigbtn .tx small{display:block;font-weight:normal;font-size:12px;opacity:.8;}
.exp .bigbtn:disabled{opacity:.55;cursor:default;}
.exp .pdf{background:var(--o);color:#fff;}
.exp .pdf .ico{background:rgba(255,255,255,.25);}
.exp .json{background:var(--anthra);color:#fff;}
.exp .json .ico{background:rgba(255,255,255,.18);font-size:11px;}
.exp .arch{background:#1f4f8a;color:#fff;}
.exp .arch .ico{background:rgba(255,255,255,.2);}
.exp .alt{background:var(--card);color:var(--anthra);border:1.5px solid var(--line2);box-shadow:none;}
.exp .alt .ico{background:var(--grey);color:var(--anthra);}
.archived{background:var(--ok-sf);border:1px solid #bfe0c8;border-radius:12px;padding:12px 14px;margin-bottom:13px;font-size:13px;color:var(--ok);display:flex;align-items:center;justify-content:space-between;gap:10px;}
.archived a{color:var(--ok);font-weight:bold;}
.archived .pdfico{font-size:11px;font-weight:bold;background:var(--ok);color:#fff;border-radius:6px;padding:3px 6px;flex:0 0 auto;}

.hidden{display:none!important;}
.empty-note{color:var(--soft);font-size:13px;text-align:center;padding:20px;}

/* ============================================================
   COMPOSANTS SPÉCIFIQUES NOUVELLES FICHES
   ============================================================ */

/* ---- répéteur (ex : bornes) ---- */
.rep-item{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 14px 6px;margin-bottom:12px;box-shadow:var(--shadow);}
.rep-head{display:flex;align-items:center;gap:10px;margin:-2px -2px 12px;}
.rep-head .rn{width:28px;height:28px;border-radius:8px;background:var(--o);color:#fff;font-weight:bold;font-size:14px;display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.rep-head .rt{flex:1;font-size:15px;font-weight:bold;color:var(--anthra);}
.rep-head .rdel{background:none;border:none;color:var(--soft);font-size:12.5px;text-decoration:underline;cursor:pointer;padding:6px 4px;}
.rep-add{width:100%;border:1.5px dashed var(--line2);background:var(--card);color:var(--o-dk);border-radius:12px;padding:13px;font-size:14px;font-weight:bold;cursor:pointer;}
.rep-add:active{background:var(--o-sf);}
.rep-empty{color:var(--soft);font-size:13px;text-align:center;padding:6px 0 14px;}

/* ---- checklist C/NC/SO ---- */
.ckl{display:flex;flex-direction:column;gap:8px;}
.ckl-row{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:11px 12px;box-shadow:var(--shadow);}
.ckl-row .lbl{font-size:13.5px;color:var(--ink);line-height:1.3;margin-bottom:9px;}
.ckl-seg{display:flex;gap:6px;}
.ckl-seg button{flex:1;border:1.5px solid var(--line2);background:var(--card);border-radius:9px;padding:9px 4px;font:inherit;font-size:13px;font-weight:bold;color:var(--soft);cursor:pointer;min-height:42px;}
.ckl-seg button.on.c{background:var(--ok);border-color:var(--ok);color:#fff;}
.ckl-seg button.on.nc{background:var(--no);border-color:var(--no);color:#fff;}
.ckl-seg button.on.so{background:var(--anthra);border-color:var(--anthra);color:#fff;}
.ckl-row .cmt{margin-top:8px;}
.ckl-row .cmt input{font-size:14px;padding:9px 11px;}

/* ---- signature ---- */
.sig-wrap{border:1.5px solid var(--line2);border-radius:12px;background:var(--card);overflow:hidden;}
.sig-pad{display:block;width:100%;height:160px;touch-action:none;background:
  repeating-linear-gradient(0deg,transparent,transparent 38px,#eee 38px,#eee 39px);cursor:crosshair;}
.sig-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-top:1px solid var(--line);background:var(--grey);}
.sig-foot .hint{font-size:11.5px;color:var(--soft);}
.sig-foot button{background:none;border:none;color:var(--anthra);font-size:12.5px;font-weight:bold;text-decoration:underline;cursor:pointer;padding:6px 4px;}
.sig-done{display:flex;align-items:center;gap:10px;border:1.5px solid var(--ok);background:var(--ok-sf);border-radius:12px;padding:10px 12px;}
.sig-done img{height:64px;width:auto;max-width:60%;background:#fff;border-radius:7px;border:1px solid var(--line);}
.sig-done .x{margin-left:auto;background:none;border:none;color:var(--soft);font-size:12.5px;text-decoration:underline;cursor:pointer;}

/* ---- sélecteur de client (chip dans le hub) ---- */
.clientcard{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:var(--shadow);margin-bottom:14px;}
.clientcard .cc-h{display:flex;align-items:center;gap:11px;}
.clientcard .cc-ic{width:40px;height:40px;border-radius:11px;background:var(--o-sf);color:var(--o-dk);display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.clientcard .cc-ic svg{width:22px;height:22px;}
.clientcard .cc-b{flex:1;min-width:0;}
.clientcard .cc-b .nm{font-size:15px;font-weight:bold;color:var(--ink);line-height:1.2;}
.clientcard .cc-b .ad{font-size:12.5px;color:var(--soft);margin-top:2px;line-height:1.3;}
.clientcard .cc-ch{background:none;border:1.5px solid var(--line2);border-radius:9px;color:var(--anthra);font-size:12.5px;font-weight:bold;padding:8px 12px;cursor:pointer;flex:0 0 auto;}
.clientcard.empty .cc-ic{background:var(--grey);color:var(--soft);}
.clientcard.empty .cc-b .nm{color:var(--soft);font-weight:normal;}

/* picker modal */
.pk-ov{position:fixed;inset:0;background:rgba(44,46,48,.5);display:flex;align-items:flex-end;justify-content:center;z-index:110;}
body.desktop .pk-ov{align-items:center;}
.pk{background:var(--bg);width:100%;max-width:480px;max-height:88vh;border-radius:18px 18px 0 0;display:flex;flex-direction:column;box-shadow:0 -8px 40px rgba(0,0,0,.3);}
body.desktop .pk{border-radius:18px;max-height:80vh;}
.pk-head{padding:16px 16px 10px;border-bottom:1px solid var(--line);}
.pk-head h3{margin:0 0 10px;font-size:17px;color:var(--anthra);}
.pk-head input{width:100%;font:inherit;font-size:16px;border:1.5px solid var(--line2);border-radius:10px;padding:11px 12px;background:var(--card);}
.pk-list{flex:1;overflow-y:auto;padding:10px 16px 6px;}
.pk-item{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 13px;margin-bottom:8px;cursor:pointer;box-shadow:var(--shadow);}
.pk-item:active{transform:scale(.99);}
.pk-item .nm{font-size:14.5px;font-weight:bold;color:var(--ink);}
.pk-item .ad{font-size:12px;color:var(--soft);margin-top:2px;}
.pk-foot{padding:12px 16px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--bg);}
.pk-new{width:100%;border:none;border-radius:12px;padding:14px;font-size:15px;font-weight:bold;background:var(--o);color:#fff;cursor:pointer;}
.pk-close{background:none;border:none;color:var(--soft);font-size:13px;text-decoration:underline;cursor:pointer;display:block;margin:10px auto 0;padding:4px;}

/* ============================================================
   DASHBOARD CLIENTS / PROJETS (clients.html)
   ============================================================ */
.cl-wrap{max-width:1100px;margin:0 auto;padding:24px 18px 80px;}
.cl-tools{display:flex;gap:10px;align-items:center;margin:4px 0 18px;flex-wrap:wrap;}
.cl-tools input{flex:1;min-width:200px;font:inherit;font-size:15px;border:1.5px solid var(--line2);border-radius:11px;padding:11px 13px;background:var(--card);}
.cl-tools .newcl{border:none;border-radius:11px;padding:12px 18px;font-size:14px;font-weight:bold;background:var(--o);color:#fff;cursor:pointer;white-space:nowrap;}
.cl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;}
.cl-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:17px;box-shadow:var(--shadow);}
.cl-card .nm{font-size:17px;font-weight:bold;color:var(--ink);line-height:1.2;}
.cl-card .ad{font-size:12.5px;color:var(--soft);margin:4px 0 14px;line-height:1.35;}
.cl-docs{display:flex;flex-direction:column;gap:8px;}
.cl-doc{display:flex;align-items:center;gap:11px;border:1px solid var(--line);border-radius:11px;padding:10px 12px;text-decoration:none;color:inherit;transition:border-color .15s,background .15s;}
.cl-doc:hover{border-color:var(--o);background:var(--o-sf);}
.cl-doc .dco{width:34px;height:34px;border-radius:9px;background:var(--grey);color:var(--anthra);display:flex;align-items:center;justify-content:center;flex:0 0 auto;}
.cl-doc .dco svg{width:18px;height:18px;}
.cl-doc.has .dco{background:var(--o-sf);color:var(--o-dk);}
.cl-doc .dtx{flex:1;min-width:0;}
.cl-doc .dtx .dt{display:block;font-size:13.5px;font-weight:bold;color:var(--ink);line-height:1.25;}
.cl-doc .dtx .ds{display:block;font-size:11.5px;color:var(--soft);margin-top:2px;}
.cl-doc .dgo{font-size:12px;font-weight:bold;flex:0 0 auto;}
.cl-doc.has .dgo{color:var(--ok);}
.cl-doc .dgo.add{color:var(--o);}
.cl-empty{color:var(--soft);font-size:14px;text-align:center;padding:50px 20px;}
