
:root{
  /* Charte colibri Sourati — aucune autre teinte */
  --cyan:#1ab5ea; --vert:#51c396; --vj:#b5c93e; --jaune:#f5bc17;
  --encre:#14171a; --encre2:#1e2024; --gris:#e6ebee;
  /* tons voisins = mélanges des deux neutres de la charte */
  --bg:var(--encre);
  --panel:color-mix(in srgb,var(--encre2) 100%,var(--gris) 0%);
  --panel2:color-mix(in srgb,var(--encre2) 94%,var(--gris));
  --line:color-mix(in srgb,var(--encre2) 86%,var(--gris));
  --txt:var(--gris);
  --txt2:color-mix(in srgb,var(--gris) 64%,var(--encre));
  --txt3:color-mix(in srgb,var(--gris) 42%,var(--encre));
  --r:14px; --r2:20px;
  --ui:"Onest",system-ui,sans-serif; --lecture:"Newsreader",Georgia,serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{background:var(--bg);color:var(--txt);font:400 15px/1.5 var(--ui);-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-radius:8px}
.app{display:grid;grid-template-columns:248px 1fr;min-height:100vh}

/* ——— Rail (ordinateur, tablette) ——— */
.rail{position:sticky;top:0;height:100vh;padding:22px 14px;display:flex;flex-direction:column;gap:4px;
  background:linear-gradient(180deg,var(--encre2),var(--encre));border-right:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;padding:4px 10px 22px}
.brand-mark{width:30px;height:30px;border-radius:9px;
  background:conic-gradient(from 200deg,var(--cyan),var(--vert),var(--vj),var(--jaune),var(--cyan))}
.brand b{font-weight:600;font-size:16px;letter-spacing:-.01em}
.brand small{display:block;color:var(--txt3);font-size:12px}
.nav-btn{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:11px;color:var(--txt2);font-weight:500;text-align:left}
.nav-btn svg{width:19px;height:19px;flex:none}
.nav-btn:hover{background:var(--panel2);color:var(--txt)}
.nav-btn[aria-current="page"]{background:var(--panel2);color:var(--txt)}
.nav-btn[aria-current="page"] svg{color:var(--cyan)}
.nav-btn .count{margin-left:auto;font-size:12px;color:var(--jaune);font-weight:600}
.rail-foot{margin-top:auto;padding:12px;border-radius:12px;background:var(--panel2);font-size:12.5px;color:var(--txt2)}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--vert);margin-right:7px;vertical-align:1px}

/* ——— Contenu ——— */
main{min-width:0;padding:0 40px 80px}
a{color:inherit;text-decoration-color:var(--txt3)}
.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:16px;padding:22px 0 18px;
  background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.topbar h1{font-size:24px;font-weight:600;letter-spacing:-.02em}
.topbar .sub{color:var(--txt3);font-size:13.5px}
.topbar .right{margin-left:auto;display:flex;gap:8px;align-items:center}
.back{display:none}
.back[hidden]{display:none!important}
.pill{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:999px;background:var(--panel2);color:var(--txt2);font-size:12.5px;font-weight:500}
.view{display:none;animation:in .28s ease-out}
.view.on{display:block}
@keyframes in{from{opacity:0;transform:translateY(6px)}}
@media (prefers-reduced-motion:reduce){.view{animation:none}*{transition:none!important}}
h2{font-size:15px;font-weight:600;color:var(--txt);margin:34px 0 12px;letter-spacing:-.005em}
h2 span{color:var(--txt3);font-weight:400;margin-left:6px}

/* ——— Aujourd'hui ——— */
.alerte{display:flex;gap:14px;align-items:center;padding:16px 18px;border-radius:var(--r2);
  background:linear-gradient(100deg,color-mix(in srgb,var(--jaune) 16%,var(--encre2)),var(--encre2) 70%);
  border:1px solid color-mix(in srgb,var(--jaune) 30%,var(--encre2))}
.alerte .ico{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:color-mix(in srgb,var(--jaune) 22%,var(--encre2));color:var(--jaune);flex:none}
.alerte p{color:var(--txt2);font-size:13.5px}
.alerte strong{display:block;color:var(--txt);font-weight:600;font-size:15px}
.btn{padding:9px 14px;border-radius:11px;background:var(--panel2);font-weight:500;font-size:13.5px;white-space:nowrap}
.btn:hover{background:var(--line)}
.btn.main{background:var(--gris);color:var(--encre)}
.alerte .btn{margin-left:auto}

.grid2{display:grid;grid-template-columns:1.25fr 1fr;gap:22px}
.prio{display:flex;flex-direction:column;gap:8px}
.prio-item{display:grid;grid-template-columns:4px 1fr auto;gap:14px;align-items:center;padding:14px 16px 14px 0;border-radius:var(--r);background:var(--panel);text-align:left;width:100%}
.prio-item:hover{background:var(--panel2)}
.prio-item i{align-self:stretch;border-radius:0 4px 4px 0}
.prio-item b{display:block;font-weight:600}
.prio-item p{color:var(--txt2);font-size:13.5px}
.due{font-size:12.5px;color:var(--txt2);text-align:right;white-space:nowrap}
.due.hot{color:var(--jaune);font-weight:600}

/* L'élément fort : la semaine en barres colibri */
.semaine{padding:20px 20px 16px;border-radius:var(--r2);background:var(--panel)}
.bars{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;align-items:end;height:150px;margin-top:4px}
.bar{display:flex;flex-direction:column-reverse;gap:3px;height:100%;justify-content:flex-start}
.bar span{display:block;border-radius:5px;min-height:6px;transform-origin:bottom;animation:grow .7s cubic-bezier(.2,.8,.2,1) backwards}
@keyframes grow{from{transform:scaleY(0)}}
.days{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;margin-top:8px;font-size:12px;color:var(--txt3);text-align:center}
.days .today{color:var(--txt);font-weight:600}
.legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:14px;font-size:12.5px;color:var(--txt2)}
.legend i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:6px;vertical-align:0}
.feed{display:flex;flex-direction:column}
.feed-item{display:grid;grid-template-columns:62px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.feed-item:last-child{border:0}
.feed-item time{color:var(--txt3);font-size:12.5px;padding-top:1px}
.feed-item b{font-weight:500}
.feed-item p{color:var(--txt2);font-size:13.5px}
.tag{display:inline-block;padding:2px 8px;border-radius:7px;font-size:12px;font-weight:500;margin-right:6px}

/* ——— Projets ——— */
.chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.chip{padding:7px 13px;border-radius:999px;background:var(--panel);color:var(--txt2);font-size:13.5px;font-weight:500;white-space:nowrap}
.chip[aria-pressed="true"]{background:var(--gris);color:var(--encre)}
.plist{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-top:16px}
.pcard{padding:18px;border-radius:var(--r2);background:var(--panel);text-align:left;display:flex;flex-direction:column;gap:12px;min-height:168px}
.pcard:hover{background:var(--panel2)}
.pcard .client{color:var(--txt3);font-size:12.5px}
.pcard b{font-size:16px;font-weight:600;letter-spacing:-.01em;display:block}
.pcard .next{color:var(--txt2);font-size:13.5px;flex:1}
.prog{height:6px;border-radius:9px;background:var(--line);overflow:hidden;display:flex}
.prog span{display:block;height:100%}
.pmeta{display:flex;justify-content:space-between;font-size:12.5px;color:var(--txt2)}
.statut{font-size:12px;font-weight:500;padding:3px 9px;border-radius:999px}

.detail{display:none}
.detail.on{display:block}
.dhead{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start;padding:22px;border-radius:var(--r2);background:var(--panel)}
.dhead .where{flex:1 1 320px}
.dhead .where p{font-family:var(--lecture);font-size:17px;line-height:1.55;color:var(--txt);margin-top:6px}
.facts{display:grid;grid-template-columns:repeat(2,auto);gap:6px 18px;font-size:13.5px}
.facts dt{color:var(--txt3)}
.kanban{display:grid;grid-template-columns:repeat(3,minmax(260px,1fr));gap:14px;margin-top:18px}
.col{border-radius:var(--r2);background:color-mix(in srgb,var(--encre2) 55%,var(--encre));padding:14px}
.col h3{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;margin:2px 4px 12px}
.col h3 i{width:9px;height:9px;border-radius:3px}
.col h3 em{font-style:normal;color:var(--txt3);font-weight:400;margin-left:auto}
.task{padding:13px 14px;border-radius:var(--r);background:var(--panel2);margin-bottom:8px}
.task b{display:block;font-weight:500;font-size:14px}
.task small{display:flex;justify-content:space-between;color:var(--txt3);font-size:12px;margin-top:8px}
.task.done b{color:var(--txt2);text-decoration:line-through;text-decoration-color:var(--txt3)}

/* ——— Journal ——— */
.journal{display:grid;grid-template-columns:220px 1fr;gap:28px;margin-top:8px}
.jdays{display:flex;flex-direction:column;gap:4px;position:sticky;top:90px;align-self:start}
.jday{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:11px;color:var(--txt2);text-align:left}
.jday[aria-current="true"]{background:var(--panel2);color:var(--txt)}
.jday small{color:var(--txt3)}
.page{max-width:680px;padding:34px 40px 40px;border-radius:var(--r2);background:var(--panel)}
.page .date{font-family:var(--lecture);font-size:32px;line-height:1.15;letter-spacing:-.01em}
.page .resume{font-family:var(--lecture);font-style:italic;color:var(--txt2);font-size:18px;margin:8px 0 26px}
.entry{padding:18px 0;border-top:1px solid var(--line)}
.entry header{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.entry header b{font-weight:600;font-size:14px}
.stars{margin-left:auto;display:flex;gap:3px}
.stars i{width:7px;height:7px;border-radius:50%;background:var(--line)}
.stars i.on{background:var(--jaune)}
.entry p{font-family:var(--lecture);font-size:18px;line-height:1.6;color:var(--txt)}
.entry .dec{margin-top:8px;padding-left:14px;border-left:2px solid var(--vert);font-family:var(--lecture);font-style:italic;color:var(--txt2);font-size:16.5px}
.entry .suite{margin-top:8px;font-size:13.5px;color:var(--txt2)}

/* ——— Échéances, outils, capacité : lignes ——— */
.rows{border-radius:var(--r2);background:var(--panel);overflow:hidden}
.row{display:grid;grid-template-columns:1fr auto auto;gap:16px;align-items:center;padding:15px 18px;border-bottom:1px solid var(--line)}
.row:last-child{border:0}
.row b{font-weight:500;display:block}
.row p{color:var(--txt3);font-size:13px}
.left-badge{min-width:86px;text-align:center;padding:5px 10px;border-radius:9px;font-size:12.5px;font-weight:600}
.search{width:100%;max-width:420px;padding:11px 14px;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--txt);font:inherit;margin-bottom:12px}
.search::placeholder{color:var(--txt3)}
.note{color:var(--jaune);letter-spacing:2px;font-size:13px}
.quota{display:grid;grid-template-columns:150px 1fr 120px;gap:16px;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line)}
.quota:last-child{border:0}
.qbar{height:8px;border-radius:9px;background:var(--line);overflow:hidden}
.qbar span{display:block;height:100%;border-radius:9px}
.quota small{color:var(--txt3);font-size:12.5px;display:block}
.hint{margin-top:14px;padding:14px 16px;border-radius:var(--r);background:color-mix(in srgb,var(--cyan) 9%,var(--encre2));color:var(--txt2);font-size:13.5px}

/* ——— Barre d'onglets + feuille (téléphone) ——— */
.tabbar,.sheet,.scrim{display:none}

@media (max-width:1100px){
  .app{grid-template-columns:76px 1fr}
  .brand b,.brand small,.nav-btn span,.nav-btn .count,.rail-foot{display:none}
  .brand{justify-content:center;padding:4px 0 22px}
  .nav-btn{justify-content:center}
  main{padding:0 28px 80px}
  .grid2{grid-template-columns:1fr}
}
@media (max-width:720px){
  .app{display:block}
  .rail{display:none}
  main{padding:0 16px calc(96px + env(safe-area-inset-bottom))}
  .topbar{padding:calc(14px + env(safe-area-inset-top)) 0 12px;margin:0 -16px;padding-left:16px;padding-right:16px}
  .topbar h1{font-size:21px;line-height:1.2}
  #maj{display:none}
  .back{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--panel2)}
  .alerte{flex-wrap:wrap}
  .alerte .btn{margin-left:0;width:100%}
  .kanban{grid-template-columns:repeat(3,84%);overflow-x:auto;scroll-snap-type:x mandatory;margin:18px -16px 0;padding:0 16px;scrollbar-width:none}
  .col{scroll-snap-align:start}
  .journal{grid-template-columns:1fr}
  .jdays{flex-direction:row;overflow-x:auto;position:static;scrollbar-width:none}
  .jday{flex-direction:column;align-items:flex-start;min-width:84px}
  .page{padding:24px 20px}
  .page .date{font-size:27px}
  .quota{grid-template-columns:1fr;gap:8px}
  .plist{grid-template-columns:1fr}
  .tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:20;
    padding:8px 6px calc(8px + env(safe-area-inset-bottom));
    background:color-mix(in srgb,var(--encre2) 86%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-top:1px solid var(--line)}
  .tab{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;color:var(--txt3);padding:4px 0;transition:transform .12s}
  .tab:active{transform:scale(.92)}
  .tab svg{width:23px;height:23px}
  .tab[aria-current="page"]{color:var(--txt)}
  .tab[aria-current="page"] svg{color:var(--cyan)}
  .scrim{display:block;position:fixed;inset:0;z-index:30;background:rgba(20,23,26,.6);opacity:0;pointer-events:none;transition:opacity .25s}
  .sheet{display:block;position:fixed;left:0;right:0;bottom:0;z-index:31;padding:10px 16px calc(24px + env(safe-area-inset-bottom));
    border-radius:22px 22px 0 0;background:var(--encre2);transform:translateY(105%);transition:transform .32s cubic-bezier(.2,.8,.2,1)}
  .sheet.open{transform:none}
  .scrim.open{opacity:1;pointer-events:auto}
  .grab{width:38px;height:5px;border-radius:9px;background:var(--line);margin:0 auto 14px}
  .sheet .nav-btn{padding:15px 12px;font-size:16px;color:var(--txt)}
  .sheet .nav-btn span{display:inline}
}

/* ——— Ajouts appli réelle ——— */
.topbar .refresh{width:34px;height:34px;border-radius:50%;background:var(--panel2);display:inline-grid;place-items:center}
.topbar .refresh.tourne svg{animation:tour 1s linear infinite}
@keyframes tour{to{transform:rotate(360deg)}}
.bandeau{margin:0 0 16px;padding:12px 16px;border-radius:var(--r);background:color-mix(in srgb,var(--jaune) 12%,var(--encre2));color:var(--txt2);font-size:13.5px}
.vide{padding:22px;border-radius:var(--r2);background:var(--panel);color:var(--txt2);font-size:14px}
.task{width:100%;text-align:left;display:block}
.task:hover{background:var(--line)}
.menu-tache{position:fixed;inset:auto 0 0 0;z-index:41;padding:12px 16px calc(22px + env(safe-area-inset-bottom,0px));border-radius:22px 22px 0 0;background:var(--encre2);
  transform:translateY(105%);transition:transform .3s cubic-bezier(.2,.8,.2,1);max-width:560px;margin:0 auto}
.menu-tache.open{transform:none}
.menu-tache p{color:var(--txt2);font-size:14px;margin:4px 4px 12px}
.menu-tache .choix{display:grid;gap:8px}
.menu-tache .choix button{padding:14px;border-radius:13px;background:var(--panel2);font-weight:500;text-align:left;display:flex;align-items:center;gap:10px}
.menu-tache .choix button i{width:10px;height:10px;border-radius:3px}
.menu-tache .choix button[aria-current="true"]{outline:1px solid var(--line)}
.voile{position:fixed;inset:0;z-index:40;background:rgba(20,23,26,.6);opacity:0;pointer-events:none;transition:opacity .25s}
.voile.open{opacity:1;pointer-events:auto}
.toast{position:fixed;left:50%;bottom:calc(96px + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);opacity:0;z-index:50;padding:11px 16px;border-radius:12px;background:var(--gris);color:var(--encre);font-weight:500;font-size:14px;transition:.25s;pointer-events:none}
.toast.on{opacity:1;transform:translate(-50%,0)}
.rail-foot button{color:var(--txt3);font-size:12px;margin-top:8px;text-decoration:underline}
.chargement{color:var(--txt3);padding:40px 0;text-align:center}
@media (min-width:721px){.toast{bottom:28px}}

.fiche-md{max-width:780px}
.fiche-md h3{font-family:var(--ui);font-size:15px;font-weight:600;margin:22px 0 6px;color:var(--txt)}
.fiche-md h3:first-of-type{margin-top:4px}
.fiche-md p,.fiche-md li{font-family:var(--lecture);font-size:17px;line-height:1.6;color:var(--txt)}
.fiche-md p.meta{font-family:var(--ui);font-size:13px;color:var(--txt3);line-height:1.5}
.fiche-md ul{padding-left:20px;margin:4px 0}
.fiche-md li{margin:3px 0}
.fiche-md code{font-size:.82em;padding:1px 6px;border-radius:6px;background:var(--panel2);color:var(--txt2);word-break:break-all}
