@font-face{font-family:GTA;src:url(fonts/GT-America-Standard-Light.woff2) format('woff2');font-weight:300}
@font-face{font-family:GTA;src:url(fonts/GT-America-Standard-Regular.woff2) format('woff2');font-weight:400}
@font-face{font-family:GTA;src:url(fonts/GT-America-Standard-Medium.woff2) format('woff2');font-weight:500}
:root{
  --bg:#f4f4f2;--card:#fff;--ink:#141414;--mute:#6d6d6a;--line:#e3e2de;--soft:#f0efeb;--acc:#141414;
  --info:#A9BED6;--aprog:#E8D9A2;--prog:#D8A882;--cours:#D5B0C3;--clos:#B0CCA6;--st-ink:#26231f;--vert:#2e8b4e;--rouge:#c0392b;
  --r:12px;--sh:0 1px 2px rgba(0,0,0,.05),0 4px 14px rgba(0,0,0,.04);
  --safe-b:env(safe-area-inset-bottom,0px);
}
/* thème : clair par défaut ; sombre ou auto (réglage de l'appareil) sur choix, bouton en haut à droite */
:root[data-theme=dark]{
  --bg:#121212;--card:#1c1c1c;--ink:#f1f1ee;--mute:#9b9b97;--line:#2c2c2a;--soft:#232322;--acc:#f1f1ee;
  --info:#A9BED6;--aprog:#E8D9A2;--prog:#D8A882;--cours:#D5B0C3;--clos:#B0CCA6;--st-ink:#26231f;--vert:#55b878;--sh:none}
@media (prefers-color-scheme:dark){:root[data-theme=auto]{
  --bg:#121212;--card:#1c1c1c;--ink:#f1f1ee;--mute:#9b9b97;--line:#2c2c2a;--soft:#232322;--acc:#f1f1ee;
  --info:#A9BED6;--aprog:#E8D9A2;--prog:#D8A882;--cours:#D5B0C3;--clos:#B0CCA6;--st-ink:#26231f;--vert:#55b878;--sh:none}}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--ink);font:400 15px/1.45 GTA,-apple-system,Helvetica,Arial,sans-serif;-webkit-text-size-adjust:100%}
button,input,select,textarea{font:inherit;color:inherit}
a{color:inherit}
.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;padding:10px 16px;padding-top:max(10px,env(safe-area-inset-top));
  background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.top .logo{height:20px;display:block}
:root[data-theme=dark] .top .logo{filter:invert(1)}
@media (prefers-color-scheme:dark){:root[data-theme=auto] .top .logo{filter:invert(1)}}
.top .theme{border:1px solid var(--line);background:var(--card);border-radius:99px;padding:4px 10px;font-size:12px;color:var(--mute);cursor:pointer;flex:none}
.top .fil{flex:1;min-width:0;display:flex;gap:6px;align-items:center;color:var(--mute);font-size:13px;white-space:nowrap;overflow:hidden}
.top .fil a{text-decoration:none;overflow:hidden;text-overflow:ellipsis}
.top .fil b{color:var(--ink);font-weight:500;overflow:hidden;text-overflow:ellipsis}
.wrap{max-width:1100px;margin:0 auto;padding:16px 16px calc(96px + var(--safe-b))}
h1{font-weight:500;font-size:22px;margin:4px 0 2px;letter-spacing:-.01em}
h2{font-weight:500;font-size:16px;margin:22px 0 10px}
.sub{color:var(--mute);font-size:13px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.sp{flex:1}
.btn{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:8px 14px;cursor:pointer;font-size:14px;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.btn:hover{border-color:var(--mute)}
.btn.pri{background:var(--acc);color:var(--bg);border-color:var(--acc)}
.btn.sm{padding:5px 11px;font-size:13px}
.btn.ghost{background:transparent;border-color:transparent}
.btn.danger{color:var(--rouge)}
.fab{position:fixed;right:18px;bottom:calc(18px + var(--safe-b));z-index:30;border-radius:999px;padding:14px 20px;font-size:15px;box-shadow:0 6px 20px rgba(0,0,0,.18)}
.grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh)}
.pcard{padding:16px;cursor:pointer;text-decoration:none;display:block}
.pcard .code{font-size:12px;letter-spacing:.06em;color:var(--mute)}
.pcard .nom{font-weight:500;font-size:16px;margin:4px 0}
.tabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;margin:14px -16px 0;padding:0 16px;border-bottom:1px solid var(--line)}
.tabs::-webkit-scrollbar{display:none}
.tabs a{padding:10px 12px;text-decoration:none;color:var(--mute);border-bottom:2px solid transparent;white-space:nowrap;font-size:14px}
.tabs a.on{color:var(--ink);border-color:var(--ink);font-weight:500}
.list{display:flex;flex-direction:column}
.li{display:flex;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line);cursor:pointer;text-decoration:none}
.li:last-child{border-bottom:0}
.li .n{width:34px;height:34px;flex:none;border-radius:9px;border:1px solid var(--line);display:grid;place-items:center;font-weight:500;font-size:14px}
.li .t{flex:1;min-width:0}
.li .t b{font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prog{font-size:13px;color:var(--mute);white-space:nowrap}
.chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;padding:3px 9px;border-radius:999px;border:1px solid var(--line);background:var(--soft);white-space:nowrap}
.chip.st{border:0;color:var(--st-ink);font-weight:500}
.chip.sel{background:var(--acc);color:var(--bg);border-color:var(--acc)}
.st-info{background:var(--info)}.st-a_programmer{background:var(--aprog)}.st-programme{background:var(--prog)}.st-en_cours{background:var(--cours)}.st-cloture{background:var(--clos)}.st-attente{background:#CFC8B8}.st-cree,.st-a_realiser{background:#E9B4AE}.st-a_surveiller{background:#E8C59A}.st-memoire{background:#BFD9B0}.st-urgent{background:#E6A49B}.st-acte{background:#A7CFC0}
.dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.lot{margin-top:18px}
.lot>.lh{display:flex;align-items:center;gap:8px;font-weight:500;font-size:14px;padding:0 2px 8px;border-bottom:2px solid var(--ink)}
.lot>.lh .cfc{color:var(--mute);font-weight:400}
.rq{padding:12px 2px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:44px 1fr;gap:4px 10px;cursor:pointer}
.rq .num{font-size:13px;color:var(--mute);padding-top:2px}
.rq .tt{font-weight:500}
.rq .tx{white-space:pre-wrap;color:var(--ink)}
.rq .meta{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:4px}
.rq.clos .tt,.rq.clos .tx{color:var(--mute)}
.thumbs{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.thumbs img{width:76px;height:76px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
.empty{color:var(--mute);padding:28px 8px;text-align:center}
.filters{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}
.filters select{width:auto;max-width:100%;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:6px 10px;font-size:13px}
/* formulaires */
label.f{display:block;margin:10px 0}
label.f>span{display:block;font-size:12px;color:var(--mute);margin-bottom:4px}
input[type=text],input[type=email],input[type=tel],input[type=date],input[type=time],input:not([type]),select,textarea{
  width:100%;border:1px solid var(--line);background:var(--card);border-radius:10px;padding:10px 12px;font-size:16px;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--mute)}
textarea{min-height:110px;resize:vertical}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chips .chip{cursor:pointer;font-size:13px;padding:6px 11px}
/* feuille modale */
.ov{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:50;display:flex;align-items:flex-end;justify-content:center;animation:f .15s}
.sheet{background:var(--bg);width:100%;max-width:680px;max-height:92dvh;overflow:auto;border-radius:18px 18px 0 0;padding:6px 16px calc(16px + var(--safe-b));animation:u .2s ease-out}
.sheet .hd{position:sticky;top:0;background:var(--bg);display:flex;align-items:center;gap:8px;padding:10px 0;z-index:2;border-bottom:1px solid var(--line);margin-bottom:6px}
.sheet .hd b{flex:1;font-weight:500}
@media (min-width:760px){.ov{align-items:center}.sheet{border-radius:18px;max-height:88vh}}
@keyframes f{from{opacity:0}}@keyframes u{from{transform:translateY(30px);opacity:.4}}
.toast{position:fixed;left:50%;bottom:calc(84px + var(--safe-b));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:9px 16px;border-radius:999px;font-size:14px;z-index:60}
/* présences */
.pr{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line)}
.pr .who{flex:1;min-width:0}.pr .who b{font-weight:500;display:block}
.seg{display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;flex:none}
.seg button{border:0;background:transparent;padding:6px 9px;font-size:12px;cursor:pointer;min-width:30px}
.seg button.on{background:var(--acc);color:var(--bg)}
.conv{font-size:12px;display:flex;align-items:center;gap:4px;color:var(--mute);white-space:nowrap}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:14px}
.kv span{color:var(--mute)}
.photo-edit{position:relative}.photo-edit button{position:absolute;top:2px;right:2px;border:0;border-radius:50%;width:22px;height:22px;background:rgba(0,0,0,.6);color:#fff;cursor:pointer;line-height:1}
@media (max-width:560px){.two{grid-template-columns:1fr}.pr{flex-wrap:wrap}.pr .who{flex-basis:100%}h1{font-size:19px}}
@media (max-width:560px){.em{display:none}}
table.pt{width:100%;border-collapse:collapse;font-size:13px}
table.pt th{text-align:left;font-weight:500;color:var(--mute);padding:8px 10px;border-bottom:1px solid var(--line);font-size:12px}
table.pt td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}
table.pt td.nw{white-space:nowrap}
@media (max-width:560px){
  table.pt tr:first-child{display:none}
  table.pt tr{display:grid;grid-template-columns:1fr 1fr auto;gap:2px 10px;padding:10px 12px;border-bottom:1px solid var(--line)}
  table.pt td{padding:0;border:0}
  table.pt td:first-child{grid-column:1/-1;margin-bottom:4px}
  table.pt td[data-l]::before{content:attr(data-l);display:block;font-size:11px;color:var(--mute)}
}

/* ajout d'images et éditeur d'annotation (27.10.2026) */
.f>.lbl{display:block;font-size:12px;color:var(--mute);margin-bottom:4px}
.depot{margin-top:8px;border:1.5px dashed var(--line);border-radius:12px;padding:12px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;font-size:13px;color:var(--mute)}
.depot.sur{border-color:var(--ink);background:var(--soft)}
.photo-edit .ed{position:absolute;top:auto;bottom:2px;right:2px;border:0;border-radius:50%;width:24px;height:24px;background:rgba(0,0,0,.6);color:#fff;cursor:pointer;font-size:13px}
.edi{position:fixed;inset:0;z-index:80;background:#1b1b1b;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top);padding-bottom:var(--safe-b)}
.edi-bar{display:flex;gap:6px;align-items:center;padding:8px 10px;flex-wrap:wrap;color:#fff}
.edi-bar .btn{background:#2c2c2c;color:#fff;border-color:#3a3a3a}
.edi-bar .btn.on{background:#fff;color:#111}
.edi-bar .btn.pri{background:#fff;color:#111}
.edi-bar .btn.ghost{background:transparent;border-color:transparent}
.edi-bar select{background:#2c2c2c;color:#fff;border:1px solid #3a3a3a;border-radius:99px;padding:5px 8px}
.edi-bar .outils{display:flex;gap:4px;flex-wrap:wrap}
.pastille{width:26px;height:26px;border-radius:50%;border:2px solid #555;cursor:pointer}
.pastille.on{border-color:#fff;box-shadow:0 0 0 2px #1b1b1b inset}
.edi-zone{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:8px}
.edi-zone canvas{touch-action:none;max-width:100%;max-height:100%;background:#fff;cursor:crosshair}
@media (max-width:560px){.edi-bar .lb{display:none}}
