:root{
  --cream:#F6F1E9;--paper:#FBF8F2;--card:#FFFFFF;--signal:#E7ECE2;
  --forest:#2C4A2E;--sage:#6B8C6D;--sageLt:#7E9A6E;--sand:#C7A15C;--terra:#C05E3C;
  --ink:#1C1814;--soft:#4A463E;--stone:#8A837A;--line:#E7E0D3;
  --tintOk:#ECF1E8;--tintWatch:#F7EFDE;--tintOff:#F6E4DC;--tintLow:#F1EFE9;
  --serif:'Cormorant Garamond','Hoefler Text',Palatino,Georgia,serif;
  --sans:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --mono:'DM Mono','SFMono-Regular',Menlo,monospace;
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--cream);color:var(--ink);font-family:var(--sans);line-height:1.5;-webkit-font-smoothing:antialiased}
.wrap{max-width:1000px;margin:0 auto;padding:20px 18px 60px}
button{font-family:inherit}

/* barre appli */
.appbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.brand{display:flex;align-items:center;gap:10px}
.brand img{width:30px;height:30px;border-radius:7px}
.brand .mk{font-family:var(--serif);font-size:19px;font-weight:600;line-height:1}
.brand .mk b{color:var(--forest)} .brand .mk span{color:var(--sand);font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;margin-left:2px}
.appbar .tools{display:flex;align-items:center;gap:8px}
.tbtn{border:1px solid var(--line);background:var(--card);color:var(--forest);border-radius:100px;padding:8px 15px;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,transform .15s}
.tbtn:hover{background:var(--signal);transform:translateY(-1px)}
.tbtn:disabled{opacity:.35;cursor:default}
.tbtn:disabled:hover{background:var(--card);transform:none}
.tbtn.mono{font-family:var(--mono);letter-spacing:.04em}

/* terrain */
.terrain{background:var(--card);border:1px solid var(--line);border-radius:16px;margin-bottom:14px;overflow:hidden}
.terrain summary{list-style:none;cursor:pointer;padding:14px 16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.terrain summary::-webkit-details-marker{display:none}
.terrain .nm{font-family:var(--serif);font-size:20px;font-weight:600}
.terrain .who{font-size:12px;color:var(--stone)}
.chip{font-size:12px;background:var(--signal);color:var(--forest);border-radius:999px;padding:3px 11px}
.terrain .toggle{margin-left:auto;font-size:12px;color:var(--stone)}
.tchips{display:contents}   /* les chips participent au flex du summary */
.ras{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--stone);margin-top:7px;user-select:none}
.ras input{accent-color:var(--sage);margin:0;cursor:pointer}
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:4px 16px 18px;align-items:start}
@media (max-width:900px){.tgrid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.tgrid{grid-template-columns:1fr}}
.tcard.wide{grid-column:1/-1}
.tcard{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.tcard h4{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--stone);margin:0 0 9px}
/* tags de source NEUTRES (la couleur appartient aux chips/cartes) :
   ✎ = saisi en entretien · logo Prot-IN = extrait de l'app */
.src-app,.src-diet{display:inline-flex;align-items:center;gap:4px;font-size:8.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--stone)}
.tcard h4 .src-app,.tcard h4 .src-diet{margin-left:auto;flex:none}
.seclab .src-app,.seclab .src-diet{margin-left:6px;vertical-align:1px}
.src-app img{width:12px;height:12px;border-radius:3px;display:block}
.tcard .appval{background:var(--paper);border-left:2px solid var(--sage);border-radius:6px;padding:8px 11px;font-size:13px;color:var(--soft);margin-bottom:8px}

/* lien visuel replié ↔ déplié : une teinte par case de terrain,
   la chip du bandeau la reprend → l'œil associe sans lire */
.tk-intolerances{--tk:#6B8C6D;--tkbg:#ECF1E8}
.tk-traitements{--tk:#C7A15C;--tkbg:#F7EFDE}
.tk-suivis{--tk:#8B6E8E;--tkbg:#F1EAF2}
.tk-contexte{--tk:#8A837A;--tkbg:#F1EFE9}
.tk-loisirs{--tk:#C05E3C;--tkbg:#F6E4DC}   /* terra : seul ton chaud → jamais confondu avec la sauge d'Intolérances */
.tk-sommeil{--tk:#5F7386;--tkbg:#E9EEF2}
.tk-libre{--tk:#8A837A;--tkbg:#F1EFE9}
.chip[class*="tk-"]{background:var(--tkbg);border:1px solid color-mix(in srgb,var(--tk) 50%,transparent);color:color-mix(in srgb,var(--tk) 62%,var(--ink))}
.tcard[class*="tk-"]{border-left:3px solid var(--tk)}
.tcard[class*="tk-"] h4{color:color-mix(in srgb,var(--tk) 55%,var(--stone))}
.tcard.tk-libre{border-left-style:dashed;border-left-width:2px}

/* héro */
.hero{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:16px 20px;box-shadow:0 8px 26px -18px rgba(28,24,20,.3)}
.hrow1{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.hrow1 h1{font-family:var(--serif);font-size:clamp(24px,3.4vw,32px);font-weight:600;margin:0;line-height:1.05}
.badge{font-size:12px;font-weight:600;padding:4px 12px;border-radius:999px;background:var(--signal);color:var(--forest)}
.goal{font-family:var(--serif);font-style:italic;font-size:17px;color:var(--soft);margin:2px 0 0}
.hstats{margin-left:auto;display:flex;gap:22px;align-items:flex-start}
.stat .k{font-size:11px;color:var(--stone)}
.stat .v{font-family:var(--mono);font-size:17px}
.stat .v.dim{color:var(--stone)}
.stat.fat{border-left:1px solid var(--line);padding-left:20px}
.fatbox{display:inline-flex;align-items:baseline;gap:3px;background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:4px 8px;font-family:var(--mono)}
.fatbox input{width:34px;border:none;background:transparent;font-family:var(--mono);font-size:15px;color:var(--ink);text-align:right}
.fatbox input:focus{outline:none}
.legend{display:flex;gap:16px;margin:12px 0 2px;font-size:11px;color:var(--stone);flex-wrap:wrap}
.legend i{display:inline-block;width:16px;height:0;border-top-width:2px;border-top-style:solid;vertical-align:middle;margin-right:5px}
.legend .lr i{border-color:var(--forest)} .legend .lp i{border-color:var(--stone);border-top-style:dashed}
.legend .lb i{border:none;width:16px;height:9px;background:var(--line);border-radius:2px;vertical-align:middle}
.chart{width:100%}
.xaxis{display:flex;justify-content:space-between;margin-top:4px;font-size:10.5px;color:var(--stone)}
.xaxis span{flex:1;text-align:center}
.xaxis b{display:block;font-family:var(--mono);color:var(--soft);font-weight:400}

/* onglets */
.tabs{display:flex;align-items:center;gap:9px;margin:16px 0;flex-wrap:wrap}
.tabsep{flex-basis:100%;margin-top:4px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--stone);padding:0 2px}
.tab{display:inline-flex;align-items:center;gap:8px;border:1.5px solid var(--line);background:var(--card);border-radius:999px;padding:9px 16px;font-size:13.5px;font-weight:600;color:var(--soft);cursor:pointer;transition:transform .12s,box-shadow .12s}
.tab .d{width:8px;height:8px;border-radius:50%;background:var(--stone)}
.tab:hover{transform:translateY(-1px)}
.tab.ok{background:var(--tintOk)} .tab.ok .d{background:var(--sage)}
.tab.watch{background:var(--tintWatch)} .tab.watch .d{background:var(--sand)}
.tab.off{background:var(--tintOff)} .tab.off .d{background:var(--terra)}
.tab.active{border-color:var(--forest);box-shadow:0 6px 18px -12px rgba(28,24,20,.5)}
.tab.active.ok{background:var(--forest);color:var(--cream)} .tab.active.ok .d{background:var(--cream)}
.tab.active.watch{background:var(--sand);color:#fff;border-color:var(--sand)} .tab.active.watch .d{background:#fff}
.tab.active.off{background:var(--terra);color:#fff;border-color:var(--terra)} .tab.active.off .d{background:#fff}

/* panneau */
.panel{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px 22px;min-height:180px}
.panel .ptitle{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.panel .ptitle h2{font-family:var(--serif);font-size:26px;font-weight:600;margin:0;display:flex;align-items:center;gap:10px}
.panel .ptitle h2 .d{width:11px;height:11px;border-radius:50%}
.panel .cap{font-size:12px;color:var(--stone)}
.pcols{display:grid;grid-template-columns:1.05fr 1fr;gap:22px}
@media (max-width:720px){.pcols{grid-template-columns:1fr}}
.spark{width:100%}
.daysgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:10px}
.daycell{border:1px solid var(--line);border-radius:9px;text-align:center;padding:7px 0;font-family:var(--mono);font-size:13px}
.daycell.ok{background:var(--tintOk);color:var(--forest)} .daycell.hi{background:var(--tintWatch);color:#8a6d2e}
.dlab{font-size:10px;color:var(--stone);text-align:center}
.metrics{display:flex;gap:10px;flex-wrap:wrap}
.metric{flex:1;min-width:96px;background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.metric .k{font-size:11px;color:var(--stone)}
.metric .v{font-family:var(--mono);font-size:20px;margin-top:2px}
.srch{display:flex;align-items:center;justify-content:space-between;margin:16px 0 8px}
.srch .t{font-size:12.5px;color:var(--soft);font-weight:600}
.srch .info{font-size:12px;color:var(--sand);cursor:pointer;border:1px solid var(--sand);border-radius:999px;padding:2px 10px}
.grp{display:grid;grid-template-columns:140px 1fr auto;gap:10px;align-items:center;margin:8px 0;font-size:13px}
.grp .lab{color:var(--ink)} .grp .lab small{color:var(--stone)}
.bar{height:9px;border-radius:999px;background:var(--line);overflow:hidden}
.bar i{display:block;height:100%;border-radius:999px;background:var(--forest)}
.bar.sand i{background:var(--sand)}
.grp .pct{font-family:var(--mono);font-size:12.5px;color:var(--soft)}
.ouv{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-top:12px;display:none}
.ouv.on{display:block}
.ouv .h{font-size:12px;color:var(--soft);margin-bottom:8px}
.ouv .h b{color:var(--forest)}
.ouv .pill{display:inline-block;font-size:12px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:5px 11px;margin:3px 4px 0 0}
/* jauges santé */
.gz{display:flex;flex-direction:column;gap:9px}
.grow{display:flex;align-items:center;gap:10px}
.gl{font-size:12px;font-weight:600;color:var(--soft);width:92px;flex:none}
.gauge{position:relative;height:8px;border-radius:999px;background:linear-gradient(90deg,#E6DCCF,#E7ECE2,#D3E1CE);flex:1}
.gauge .now{position:absolute;top:-4px;width:3px;height:16px;border-radius:2px;background:var(--forest);box-shadow:0 1px 2px rgba(28,24,20,.25)}
.gauge .prev{position:absolute;top:-1px;width:1.5px;height:9px;border-radius:1px;background:var(--stone);opacity:.5}
.gseg{position:absolute;top:-3px;height:2px;border-radius:2px;pointer-events:none;opacity:.4}
.gseg.up{background:var(--sage)} .gseg.down{background:var(--sand)}
.geste{display:flex;align-items:center;gap:10px;margin:9px 0}
.geste .gl{width:110px}
.dots{display:flex;gap:3px;flex-wrap:wrap;flex:1}
.dots i{width:9px;height:9px;border-radius:50%;border:1px solid var(--line)}
.dots i.on{background:var(--sage);border-color:var(--sage)} .dots i.san{background:var(--sand);border-color:var(--sand)}
.gcount{font-family:var(--mono);font-size:12px;color:var(--soft);white-space:nowrap}
/* gestes du mois : un bloc aéré par geste (titre + compteur, points pleine largeur dessous) */
.hgeste{padding:14px 0}
.hgeste:first-child{padding-top:6px}
.hgeste + .hgeste{border-top:1px solid var(--line)}
.hgeste .ghead{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:9px}
.hgeste .ghead .gl{width:auto}
.blurb{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-bottom:10px}
.blurb .k{font-size:11px;color:var(--stone)}
.blurb .v{font-family:var(--serif);font-size:19px;font-weight:600;margin:1px 0 4px}
.blurb.ok .v{color:var(--forest)} .blurb.watch .v{color:#8a6d2e}
.blurb p{font-size:12.5px;color:var(--soft);margin:0}
.vic{display:flex;gap:9px;margin:8px 0;font-size:13.5px} .vic .ck{color:var(--sage);font-weight:700}
/* motivation : pré-bilan du dimanche + constance hebdo */
.seclab{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--stone);margin:14px 0 7px}
.pb{background:var(--paper);border:1px solid var(--line);border-radius:11px;padding:9px 12px;margin-bottom:8px}
.pb .pbd{font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--stone)}
.pb p{margin:3px 0 0;font-size:13px;color:var(--soft);font-style:normal}
.cst{display:flex;align-items:flex-end;gap:10px;margin:10px 0}
.cst .gl{width:92px;flex:none;font-size:12px;font-weight:600;color:var(--soft);align-self:center}
.wkbars{display:inline-flex;align-items:flex-end;gap:4px;height:26px}
.wkbars i{display:block;width:14px;border-radius:3px 3px 1px 1px;background:var(--sage);opacity:.85}
.cstv{font-family:var(--mono);font-size:12px;color:var(--soft);white-space:nowrap;align-self:center}
.cstv .tr{font-family:var(--sans);font-weight:600;margin-left:4px}
.tr.up{color:var(--sage)} .tr.down{color:var(--sand)} .tr.flat{color:var(--stone)}
.cstnote{font-size:11.5px;color:var(--stone);margin:6px 0 0;font-style:normal}
.motline{width:100%;border:1px dashed var(--line);border-radius:10px;background:var(--paper);padding:9px 12px;font-family:var(--sans);font-size:13px;color:var(--ink)}
.motline:focus{outline:none;border-color:var(--sage)}
.motvic{width:100%;min-height:52px;border:1px dashed var(--line);border-radius:10px;background:var(--paper);padding:9px 12px;font-family:var(--sans);font-size:12.5px;color:var(--ink);resize:vertical;margin-top:6px}
.motvic:focus{outline:none;border-color:var(--sage)}

/* notes */
.notes{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px 22px;margin-top:16px}
.notes h3{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--stone);margin:0 0 14px}
.ncols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:640px){.ncols{grid-template-columns:1fr}}
.ncol h4{font-size:11px;color:var(--stone);font-weight:600;margin:0 0 7px}
.ncol .prev{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:13px;color:var(--soft);min-height:70px}
textarea.new{width:100%;min-height:90px;border:1px dashed var(--line);border-radius:12px;padding:12px 14px;font-family:var(--sans);font-size:13px;color:var(--ink);resize:vertical;background:var(--paper)}
textarea.new:focus{outline:none;border-color:var(--sage)}
.nact{display:flex;gap:9px;margin-top:12px;flex-wrap:wrap;align-items:center}
.btn{border-radius:100px;padding:10px 18px;font-size:13.5px;font-weight:600;cursor:pointer;border:1px solid var(--line);background:var(--card);color:var(--forest);transition:transform .12s,background .12s}
.btn:hover{transform:translateY(-1px)}
.btn.primary{background:var(--terra);border-color:var(--terra);color:#fff}
.btn.ghost{border:none;color:var(--stone)}
.saved{font-size:12px;color:var(--sage);opacity:0;transition:opacity .3s}
.saved.on{opacity:1}

/* modales */
.ovl{position:fixed;inset:0;background:rgba(28,24,20,.55);display:none;align-items:center;justify-content:center;padding:20px;z-index:50}
.ovl.on{display:flex}
.modal{background:var(--card);border-radius:20px;padding:26px;max-width:380px;width:100%;text-align:center;box-shadow:0 30px 80px -20px rgba(0,0,0,.5)}
.modal h3{font-family:var(--serif);font-size:24px;margin:0 0 4px}
.modal p{font-size:13px;color:var(--soft);margin:0 0 16px}
#qrcanvas{width:220px;height:220px;image-rendering:pixelated;border:8px solid #fff;border-radius:10px;background:#fff}
.codeline{display:inline-flex;align-items:center;gap:10px;margin:14px 0;background:var(--paper);border:1px dashed var(--sand);border-radius:10px;padding:9px 14px}
.codeline .c{font-family:var(--mono);font-size:16px;letter-spacing:.08em}
.mact{display:flex;gap:9px;justify-content:center;margin-top:6px}
.hist{max-width:460px;text-align:left}
.hist .item{border:1px solid var(--line);border-radius:12px;padding:11px 14px;margin-bottom:9px}
.hist .item .dt{font-size:11px;color:var(--stone);margin-bottom:4px}
.hist .item p{margin:0;font-size:13px;color:var(--soft)}
.hist .empty{color:var(--stone);font-size:13px;text-align:center;padding:20px}

.foot{margin-top:22px;font-size:11px;color:var(--stone);text-align:center}

/* ── vue liste des dossiers ── */
.storebanner{position:relative;display:flex;align-items:center;gap:16px;background:var(--card);border:1px solid var(--sand);border-radius:14px;padding:14px 18px;margin-bottom:16px;flex-wrap:wrap}
.storebanner p{margin:0;font-size:13px;color:var(--soft);flex:1;min-width:240px}
.listhead{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:6px 0 14px}
.listhead h1{font-family:var(--serif);font-size:clamp(24px,3.4vw,32px);font-weight:600;margin:0}
#cards{display:block}
.cardgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.csec{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--stone);margin:18px 0 9px}
.csec:first-child{margin-top:2px}
.pcard{display:flex;flex-direction:column;align-items:flex-start;gap:7px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px 18px;cursor:pointer;text-align:left;transition:transform .12s,box-shadow .12s}
.pcard:hover{transform:translateY(-2px);box-shadow:0 10px 24px -18px rgba(28,24,20,.4)}
.pcard .pname{font-family:var(--serif);font-size:19px;font-weight:600;color:var(--ink)}
.pcard .plast{font-size:11.5px;color:var(--stone)}
.listempty{text-align:center;padding:44px 20px;color:var(--soft)}
.listempty p{margin:0 0 6px;font-size:15px}
.listempty .sub{font-size:12.5px;color:var(--stone);margin-bottom:16px}

/* badge de mode (Prot-IN oui/non) */
.mc{font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;border-radius:999px;padding:3px 10px}
.mc.pi{background:var(--tintOk);color:var(--forest)}
.mc.nopi{background:var(--tintLow);color:var(--stone)}
.modechip{display:inline-flex;align-items:center}

/* formulaire nouveau dossier */
.modal.form{max-width:420px;text-align:left}
.modal.form h3,.modal.form>p{text-align:center}
.fld{display:block;font-size:11.5px;font-weight:600;color:var(--stone);margin-bottom:12px}
.fld input{display:block;width:100%;margin-top:5px;border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:10px 12px;font-family:var(--sans);font-size:14px;color:var(--ink)}
.fld input:focus{outline:none;border-color:var(--sage)}
.fldrow{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pimode{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:4px 0 14px}
.pimode .q{font-size:13px;font-weight:600}
.seg{display:inline-flex;gap:0;border:1px solid var(--line);border-radius:999px;overflow:hidden;margin-left:10px;vertical-align:middle}
.seg button{border:none;background:var(--card);padding:6px 14px;font-size:12.5px;font-weight:600;color:var(--stone);cursor:pointer}
.seg button.on{background:var(--forest);color:var(--cream)}
.pimode .hint{font-size:11.5px;color:var(--stone);margin:9px 0 0}

/* dossier : retour + entêtes */
.tbtn.back{color:var(--soft)}
.printhead{display:none}
.tabhint{font-size:10.5px;color:var(--stone);margin-left:auto}
.chartempty{background:var(--paper);border:1px dashed var(--line);border-radius:12px;padding:22px;text-align:center;font-size:12.5px;color:var(--stone);margin-top:10px}

/* héro éditable (mode sans Prot-IN) */
.hderiv{font-size:14px;font-family:var(--sans);font-weight:400;color:var(--stone);margin-left:8px;white-space:nowrap}
.rsel{border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--soft);font-family:var(--sans);font-size:11px;padding:1px 4px;margin-left:4px}
.rsel:focus{outline:none;border-color:var(--sage)}
/* axe temporel du mode manuel : étiquettes positionnées au prorata du temps */
.xaxis.tline{position:relative;display:block;height:36px}
.xaxis.tline span{position:absolute;top:2px}
.xaxis.tline .tgt{color:var(--stone)}
.xaxis.tline .tgt b{display:block;font-family:var(--mono);font-weight:400}
.xaxis.tline .tgt.sel{color:var(--soft);font-weight:600}
.xaxis.tline .tgt.sel b{color:var(--sand)}
.xaxis.tline .tgt.dim{opacity:.45}
/* règle calendaire au-dessus du graphe */
.mline{position:relative;height:13px;font-size:9px;color:var(--stone);text-transform:uppercase;letter-spacing:.06em}
.mline span{position:absolute;transform:translateX(-50%);white-space:nowrap}
.badge.sel{border:1px solid var(--line);cursor:pointer;font-family:var(--sans);-webkit-appearance:none;appearance:none}
.ginput{width:100%;border:none;border-bottom:1.5px dashed var(--line);background:transparent;font-family:var(--serif);font-style:italic;font-size:17px;color:var(--soft);padding:2px 0}
.ginput:focus{outline:none;border-bottom-color:var(--sage)}

/* terrain éditable */
.tbox{width:100%;min-height:38px;border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:9px 11px;font-family:var(--sans);font-size:13px;color:var(--ink);resize:none;overflow:hidden}
.tbox::placeholder{color:var(--stone)}
.tbox:focus{outline:none;border-color:var(--sage);box-shadow:0 0 0 2px var(--tintOk)}

/* onglet neutre (pas encore évalué — mode sans Prot-IN) */
.tab.none .d{background:var(--stone)}

/* panneau saisie manuelle */
.manrow{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.manhint{font-size:11px;color:var(--stone)}
.stpick{display:inline-flex;gap:7px}
.stdot{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);background:var(--card);cursor:pointer;transition:transform .12s}
.stdot:hover{transform:scale(1.12)}
.stdot.ok{background:var(--tintOk);border-color:var(--sage)}
.stdot.watch{background:var(--tintWatch);border-color:var(--sand)}
.stdot.off{background:var(--tintOff);border-color:var(--terra)}
.stdot.on{box-shadow:0 0 0 3px var(--signal)}
.stdot.on.sug{border-style:dashed}   /* proposé d'après les coches (pas encore confirmé) */
.stdot.ok.on{background:var(--sage)}
.stdot.watch.on{background:var(--sand)}
.stdot.off.on{background:var(--terra)}
.manbox{width:100%;min-height:130px;border:1px dashed var(--line);border-radius:12px;background:var(--paper);padding:12px 14px;font-family:var(--sans);font-size:13.5px;color:var(--ink);resize:vertical}
.manbox:focus{outline:none;border-color:var(--sage)}
/* santé manuelle : squelette de l'app en coches */
.axrow{display:flex;align-items:center;gap:10px;margin:9px 0}
.axdots{display:inline-flex;gap:6px}
.axdot{width:18px;height:18px;border-radius:50%;border:2px solid var(--line);background:var(--card);cursor:pointer;padding:0;transition:transform .1s}
.axdot:hover{transform:scale(1.15)}
.axdot.on{background:var(--sage);border-color:var(--sage)}
.axdot.on.est{background:var(--tintOk);border-color:var(--sage);border-style:dashed}   /* ≈ estimé */
.seg.sm{margin-left:0}
.seg.sm button{padding:4px 10px;font-size:10.5px}
.axrow .gl.w{width:170px;flex:none}
@media (max-width:640px){.axrow{flex-wrap:wrap}.axrow .gl.w{width:100%}}
/* coches en 2 colonnes (balayage en un regard), 1 colonne sur écran étroit */
.checkgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 26px}
@media (max-width:860px){.checkgrid{grid-template-columns:1fr}}

/* impression (PDF de séance : board + notes) */
@media print{
  body{background:#fff}.wrap{max-width:none;padding:0}
  #view-list{display:none!important}
  .appbar,.tabs,.nact,.terrain .toggle,.srch .info,.storebanner{display:none!important}
  .printhead{display:block;font-family:var(--serif);font-size:15px;margin:0 0 10px;color:var(--ink)}
  .hero,.panel,.notes,.terrain{box-shadow:none;break-inside:avoid;border-color:#ddd}
  .panel[hidden]{display:none!important}
  .terrain[open] .tgrid,.terrain .tgrid{display:grid!important}
  textarea.new,.tbox,.manbox{border-style:solid}
  .stpick,.manhint{display:none!important}
}

/* logo = patient suivi avec Prot-IN (remplace la pastille texte) */
.mclogo{width:24px;height:24px;border-radius:6px;display:block}

/* liste : logo PI sur la carte + recherche */
.pcard{position:relative}
.pcard .plogo{position:absolute;bottom:12px;right:12px;width:30px;height:30px;border-radius:7px}
.searchbox{flex:1;max-width:340px;margin:0 14px;border:1px solid var(--line);border-radius:100px;background:var(--card);padding:9px 16px;font-family:var(--sans);font-size:13px;color:var(--ink)}
.searchbox:focus{outline:none;border-color:var(--sage)}

/* réception par QR */
.rcvst{font-size:12px;color:var(--sage);min-height:18px;margin:10px 0 4px}

/* cartes : suppression, RDV du jour épinglé, pistes motivation */
.pdel{position:absolute;top:8px;right:10px;width:22px;height:22px;border:none;background:transparent;color:var(--stone);font-size:17px;line-height:1;cursor:pointer;border-radius:50%;opacity:0;transition:opacity .15s}
.pcard:hover .pdel{opacity:.7}
.pdel:hover{opacity:1;background:var(--tintOff);color:var(--terra)}
.pcard.today{border-color:var(--sage);box-shadow:0 10px 26px -18px rgba(44,74,46,.55)}
.prdv{font-size:11px;color:var(--soft)}
.prdv.now{font-size:11px;font-weight:700;color:var(--forest);background:var(--tintOk);border-radius:999px;padding:2px 9px}
.rdvrow{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--stone);margin-bottom:8px}
.rdvrow input{border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:4px 8px;font-family:var(--sans);font-size:12px;color:var(--ink)}
.rdvrow input:focus{outline:none;border-color:var(--sage)}
.pistes{background:var(--paper);border:1px dashed var(--line);border-radius:12px;padding:11px 13px;margin-top:12px}
.pistes .k{font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--stone);margin-bottom:6px}
.pistes p{margin:3px 0;font-size:12px;color:var(--soft);line-height:1.45}
.pistes .doc{margin-top:7px;color:var(--forest);font-weight:600}

/* prochain RDV manquant : rappel discret au moment de clore */
.rdvrow.attn span{color:var(--sand);font-weight:600}
.rdvrow.attn input{border-color:var(--sand)}

.cempty{grid-column:1/-1;font-size:12.5px;color:var(--stone);background:var(--paper);border:1px dashed var(--line);border-radius:12px;padding:14px 16px}

.bclose{position:absolute;top:8px;right:10px;border:none;background:transparent;color:var(--stone);font-size:17px;line-height:1;cursor:pointer;border-radius:50%;padding:2px 6px}
.bclose:hover{background:var(--tintLow);color:var(--ink)}
