:root{--green-900: #14352c;--green-800: #1b4438;--green-700: #24594a;--green-100: #e5ebe2;--green-25: #f5f8f1;--shell: #0f2c24;--shell-raised: #17392f;--shell-line: #27483d;--shell-muted: #9cb3a7;--cream: #f2f6f2;--surface: #f6f8f6;--card: #ffffff;--sunken: #eef2ee;--ink: #14352c;--body: #37453a;--muted: #7b8577;--faint: #9ba396;--line: #e4eae4;--line-soft: #eef2ee;--line-strong: #d7e0d7;--notif: #d96c4f;--t-green-bg: #e5ebe2;--t-green-fg: #24594a;--t-amber-bg: #faf0d3;--t-amber-fg: #8a6d1a;--t-violet-bg: #eae6f4;--t-violet-fg: #5b4e9c;--t-sky-bg: #e4edf5;--t-sky-fg: #2f5f82;--t-clay-bg: #f8e7db;--t-clay-fg: #a1522a;--t-slate-bg: #edede5;--t-slate-fg: #6e766a;--t-rose-bg: #f8e6e1;--t-rose-fg: #9c4838;--danger-bg: #fbede9;--danger-line: #f0d5cd;--danger-ink: #8c3a2b;--radius-shell: 1.75rem;--radius-card: 1.25rem;--radius-md: 1rem;--radius-sm: .75rem;--radius-xs: .625rem;--font-display: "Fraunces", Georgia, serif;--font-sans: "Inter", system-ui, -apple-system, sans-serif;--shadow-soft: 0 1px 2px rgba(20, 53, 44, .04), 0 4px 12px rgba(20, 53, 44, .05);--shadow-raised: 0 2px 4px rgba(20, 53, 44, .05), 0 12px 28px rgba(20, 53, 44, .08)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--shell);color:var(--body);font-family:var(--font-sans);font-size:14px;line-height:1.43;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:inherit}.muted{color:var(--muted)}.t-green{background:var(--t-green-bg);color:var(--t-green-fg)}.t-amber{background:var(--t-amber-bg);color:var(--t-amber-fg)}.t-violet{background:var(--t-violet-bg);color:var(--t-violet-fg)}.t-sky{background:var(--t-sky-bg);color:var(--t-sky-fg)}.t-clay{background:var(--t-clay-bg);color:var(--t-clay-fg)}.t-slate{background:var(--t-slate-bg);color:var(--t-slate-fg)}.t-rose{background:var(--t-rose-bg);color:var(--t-rose-fg)}.shell{display:flex;flex-direction:column;height:100dvh;overflow:hidden;background:var(--shell)}.appheader{display:flex;align-items:center;gap:12px;height:64px;flex:none;padding:0 16px 0 20px}.hbrand{display:flex;align-items:center;gap:10px;color:var(--cream);flex:none}@media (min-width: 1024px){.hbrand{width:208px}}.hbrand .glyph{width:34px;height:34px;border-radius:var(--radius-sm);flex:none;background:var(--cream);color:var(--green-800);display:grid;place-items:center}.hbrand .word{font-family:var(--font-display);font-size:18px;font-weight:500;color:var(--cream)}.hspacer{flex:1}.hstatus{font-size:12px;color:var(--shell-muted);border:1px solid var(--shell-line);border-radius:999px;padding:4px 12px;white-space:nowrap}.shellbody{display:flex;min-height:0;flex:1}.sidebar{display:none}@media (min-width: 1024px){.sidebar{display:flex;flex-direction:column;width:240px;flex:none;padding:2px 16px 20px}}.navgroup{display:flex;flex-direction:column;gap:4px}.navlabel{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--shell-muted);padding:0 12px;margin:14px 0 6px}.navlink{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:none;background:transparent;color:var(--green-100);padding:9px 12px;border-radius:var(--radius-sm);font-size:14px;cursor:pointer;transition:background .15s,color .15s}.navlink:hover{background:var(--shell-raised);color:var(--cream)}.navlink.on{background:var(--green-700);color:var(--cream);font-weight:500;box-shadow:var(--shadow-soft)}.navlink svg{flex:none}.sidefoot{margin-top:auto;padding:14px 12px 0;border-top:1px solid var(--shell-line);color:var(--shell-muted);font-size:12px}.sidefoot .srcrow{display:flex;align-items:center;gap:8px;margin-top:7px}.sidefoot .sd{width:7px;height:7px;border-radius:50%;flex:none;background:var(--shell-muted)}.sidefoot .sd.ok{background:#5fa98a}.sidefoot .sd.ko{background:#d99a5a}.sidefoot .st{margin-left:auto;font-size:11px}.mobilenav{display:flex;gap:8px;margin-bottom:18px}@media (min-width: 1024px){.mobilenav{display:none}}.mnav{border:1px solid var(--line-strong);background:var(--card);color:var(--ink);padding:8px 14px;border-radius:999px;font-size:13.5px;font-weight:600;cursor:pointer}.mnav.on{background:var(--green-800);border-color:var(--green-800);color:var(--cream)}.main{position:relative;min-width:0;flex:1;overflow-y:auto;background:var(--surface);padding:22px 16px 64px}@media (min-width: 1024px){.main{border-top-left-radius:var(--radius-shell);padding:28px 32px 64px}}.page{width:100%;max-width:1640px;margin:0 auto}:focus-visible{outline:2px solid var(--green-700);outline-offset:2px}.appheader :focus-visible,.sidebar :focus-visible{outline-color:var(--shell-muted)}.search:focus-visible{outline:none}.pagehead{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;padding-bottom:22px}.pagehead h1{font-family:var(--font-display);font-size:24px;line-height:1.26;font-weight:500;color:var(--ink);margin:0}.pagehead .desc{margin:5px 0 0;font-size:12px;color:var(--muted)}.search{width:280px;max-width:100%;background:var(--card);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:9px 13px;font-size:13.5px;color:var(--ink);transition:border-color .15s,box-shadow .15s}.search::placeholder{color:var(--faint)}.search:focus{outline:none;border-color:var(--green-700);box-shadow:0 0 0 3px var(--green-25)}.statgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}@media (max-width: 860px){.statgrid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 460px){.statgrid{grid-template-columns:1fr}}.stat{display:flex;align-items:center;gap:16px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);padding:16px 20px;box-shadow:var(--shadow-soft);transition:border-color .15s,background .15s}.stat .ic{width:40px;height:40px;border-radius:var(--radius-sm);flex:none;display:grid;place-items:center}.stat .n{display:block;font-family:var(--font-display);font-size:24px;font-weight:500;color:var(--ink);line-height:1.15}.stat .l{display:block;font-size:12px;color:var(--muted);margin-top:2px}.banner{display:flex;align-items:center;gap:10px;margin-bottom:20px;padding:12px 16px;border-radius:var(--radius-md);background:var(--t-amber-bg);border:1px solid #ecdaa8;color:var(--t-amber-fg);font-size:13.5px}.banner .bdot{width:8px;height:8px;border-radius:50%;background:var(--t-amber-fg);flex:none}.subbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap}.subbar .count-line{font-size:12.5px;color:var(--muted)}.grid{display:grid;grid-template-columns:1fr 330px;gap:20px;align-items:start}@media (max-width: 920px){.grid{grid-template-columns:1fr}}.roster{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:16px;align-content:start}.person{min-width:0;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-card);padding:18px;box-shadow:var(--shadow-soft);transition:box-shadow .18s,border-color .18s}.person:hover{box-shadow:var(--shadow-raised);border-color:var(--line-strong)}.p-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.avatar{width:42px;height:42px;border-radius:var(--radius-sm);flex:none;display:grid;place-items:center;font-weight:700;font-size:14px}.p-id{min-width:0}.p-id .name{font-family:var(--font-display);font-weight:500;font-size:16px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.p-id .role{font-size:12px;color:var(--muted)}.load{margin-left:auto;flex:none;display:inline-flex;align-items:baseline;gap:4px;background:var(--sunken);color:var(--body);padding:3px 11px;border-radius:999px;font-size:12.5px;font-weight:600}.load .lbl{font-weight:500;font-size:11px;color:var(--muted)}.grp{margin-top:12px}.grp-title{font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--faint);margin-bottom:5px}.grp ul{list-style:none;margin:0;padding:0}.grp li{display:flex;align-items:center;gap:9px;padding:4px 0}.sdot{width:7px;height:7px;border-radius:50%;flex:none;background:var(--t-slate-fg)}.d-green{background:var(--t-green-fg)}.d-amber{background:var(--t-amber-fg)}.d-sky{background:var(--t-sky-fg)}.d-violet{background:var(--t-violet-fg)}.grp li a{min-width:0;font-size:13.5px;color:var(--body);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grp li a:hover{color:var(--green-700)}.chip-pole{margin-left:auto;flex:none;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:var(--radius-xs)}.p-foot{margin-top:13px;padding-top:11px;border-top:1px solid var(--line-soft);display:flex;gap:16px;font-size:12px;color:var(--muted)}.p-foot b{color:var(--body);font-weight:700}.rail{display:flex;flex-direction:column;gap:18px}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);overflow:hidden}.panel>h2{margin:0;padding:14px 18px;font-family:var(--font-display);font-size:16px;font-weight:500;color:var(--ink);display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line-soft)}.panel .pill{margin-left:auto;font-size:12px;font-weight:700;min-width:22px;text-align:center;padding:1px 7px;border-radius:999px;background:var(--t-rose-bg);color:var(--t-rose-fg)}.panel .body{padding:4px 18px 12px}.empty-s{padding:16px 18px;color:var(--muted);font-size:13px}.feed{list-style:none;margin:0;padding:0}.feed li{padding:11px 0;border-bottom:1px solid var(--line-soft);font-size:13px}.feed li:last-child{border-bottom:none}.feed .t{font-weight:600;color:var(--ink)}.feed .meta{color:var(--muted)}.verb{display:inline-block;font-size:10.5px;font-weight:700;padding:1px 7px;border-radius:var(--radius-xs);margin-right:7px;background:var(--t-green-bg);color:var(--t-green-fg)}.verb.statut{background:var(--t-sky-bg);color:var(--t-sky-fg)}.verb.responsable{background:var(--t-violet-bg);color:var(--t-violet-fg)}.verb.date{background:var(--t-clay-bg);color:var(--t-clay-fg)}.alerts{list-style:none;margin:0;padding:0}.alerts li{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line-soft);font-size:13px;align-items:flex-start}.alerts li:last-child{border-bottom:none}.alerts .adot{width:8px;height:8px;border-radius:50%;margin-top:5px;flex:none}.sev-haute .adot{background:var(--t-rose-fg)}.sev-moyenne .adot{background:var(--t-amber-fg)}.sev-basse .adot{background:var(--t-sky-fg)}.rel{list-style:none;margin:0;padding:0}.rel li{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line-soft);font-size:13px}.rel li:last-child{border-bottom:none}.rel .ava{width:26px;height:26px;border-radius:var(--radius-xs);flex:none;display:grid;place-items:center;font-size:10px;font-weight:700}.rel .who{color:var(--muted);font-size:11.5px}.empty-board{grid-column:1 / -1;text-align:center;padding:52px 24px;color:var(--muted);background:var(--card);border:1px dashed var(--line-strong);border-radius:var(--radius-card)}.empty-board .big{font-family:var(--font-display);font-size:18px;color:var(--ink);margin-bottom:6px}.empty-board p{margin:0 auto;max-width:52ch}.foot{margin-top:30px;text-align:center;font-size:12px;color:var(--faint)}.conn{display:flex;flex-direction:column;gap:18px;width:100%;max-width:760px;margin:0 auto}.conn .pagehead{padding-bottom:4px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);padding:20px}.card.err{border-color:var(--danger-line)}.card h2{font-family:var(--font-display);margin:0 0 6px;font-size:17px;font-weight:500;color:var(--ink)}.card h3{font-family:var(--font-display);margin:0;font-size:16px;font-weight:500;color:var(--ink);display:flex;align-items:center;gap:8px}.card p{margin:6px 0}.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}.field{margin:12px 0;display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;font-weight:700;color:var(--muted)}.field .search,.row .search{width:100%}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:14px}.btn{background:var(--card);border:1px solid var(--line-strong);color:var(--ink);padding:9px 16px;border-radius:var(--radius-sm);cursor:pointer;font-size:14px;font-weight:600;transition:border-color .15s,background .15s,box-shadow .15s}.btn:hover:not(:disabled){border-color:var(--green-700);background:var(--green-25)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--green-800);border-color:var(--green-800);color:var(--cream)}.btn.primary:hover:not(:disabled){background:var(--green-900)}.link{background:none;border:none;color:var(--green-700);cursor:pointer;padding:0;font:inherit;font-weight:600}.link:hover{text-decoration:underline}.note{margin-top:12px;font-size:13px;background:var(--sunken);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 13px}code{background:var(--sunken);border:1px solid var(--line);border-radius:var(--radius-xs);padding:1px 6px;font-size:12.5px}.badge{font-size:11px;font-weight:700;border-radius:var(--radius-xs);padding:2px 8px}.badge.on{background:var(--t-green-bg);color:var(--t-green-fg)}.badge.soon{background:var(--sunken);color:var(--muted);border:1px solid var(--line)}.prov-list{list-style:none;margin:0;padding:0}.prov-list li{display:flex;justify-content:space-between;align-items:center;padding:11px 0;border-bottom:1px solid var(--line-soft);font-weight:600;color:var(--ink)}.prov-list li:last-child{border-bottom:none}.login{min-height:100dvh;display:grid;place-items:center;background:var(--shell);padding:20px}.login-card{width:100%;max-width:384px;background:var(--card);border-radius:var(--radius-card);box-shadow:var(--shadow-raised);padding:30px 28px}.login-brand{display:flex;align-items:center;gap:10px;margin-bottom:18px}.login-brand .glyph{width:36px;height:36px;border-radius:var(--radius-sm);flex:none;background:var(--green-800);color:var(--cream);display:grid;place-items:center}.login-brand .word{font-family:var(--font-display);font-size:18px;font-weight:500;color:var(--ink)}.login-card h1{font-family:var(--font-display);font-size:22px;font-weight:500;color:var(--ink);margin:0 0 4px}.login-card .field label{color:var(--ink)}.huser{display:flex;align-items:center;gap:10px}.huser .uname{color:var(--cream);font-size:13px;font-weight:600;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.huser .uava{width:34px;height:34px;border-radius:50%;flex:none;display:grid;place-items:center;font-size:12px;font-weight:700;background:var(--green-700);color:var(--cream)}.hlogout{border:1px solid var(--shell-line);background:transparent;color:var(--shell-muted);border-radius:var(--radius-sm);padding:7px 9px;cursor:pointer;display:grid;place-items:center;transition:color .15s,border-color .15s}.hlogout:hover{color:var(--cream);border-color:var(--shell-muted)}a.btn{display:inline-block;text-decoration:none}.btn.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.note.ok{background:var(--t-green-bg);border-color:#cddcc8;color:var(--t-green-fg)}.note.ko{background:var(--danger-bg);border-color:var(--danger-line);color:var(--danger-ink)}.conn .pagehead{align-items:center}.banner .link{margin-left:4px;color:inherit;text-decoration:underline;font-weight:700}.badge{font-family:var(--font-sans);letter-spacing:0;vertical-align:middle}@media (max-width: 640px){.huser .uname,.hstatus{display:none}.appheader{padding:0 12px}.hbrand .word{font-size:17px}}.mobilenav{overflow-x:auto;-webkit-overflow-scrolling:touch}.mnav{white-space:nowrap;flex:none}.mobilenav{scrollbar-width:none}.mobilenav::-webkit-scrollbar{display:none}.panel .pill.soft{background:var(--t-sky-bg);color:var(--t-sky-fg)}.mday{padding:8px 0 4px}.mday+.mday{border-top:1px solid var(--line-soft)}.mday-title{font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--faint);margin:4px 0 6px}.meet{list-style:none;margin:0;padding:0}.meet li{display:flex;align-items:baseline;gap:10px;padding:5px 0;font-size:13px}.meet .mtime{flex:none;width:52px;font-variant-numeric:tabular-nums;color:var(--muted);font-weight:600}.meet .mtitle{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}.meet .mtitle a:hover{color:var(--green-700)}.meet .mjoin{flex:none;font-size:11.5px;font-weight:700;color:var(--t-sky-fg);background:var(--t-sky-bg);border-radius:var(--radius-xs);padding:2px 8px}.cr{list-style:none;margin:0;padding:0}.cr>li{padding:11px 0;border-bottom:1px solid var(--line-soft)}.cr>li:last-child{border-bottom:none}.cr-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:13px}.cr-head .t{font-weight:600;color:var(--ink);min-width:0}.cr-head .who{flex:none;color:var(--muted);font-size:11.5px}.cr-ov{margin:5px 0 0;font-size:12.5px;color:var(--body);line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.cr-actions{list-style:none;margin:7px 0 0;padding:0}.cr-actions li{position:relative;padding:2px 0 2px 18px;font-size:12.5px;color:var(--ink)}.cr-actions li:before{content:"";position:absolute;left:2px;top:7px;width:9px;height:9px;border:1.5px solid var(--green-700);border-radius:3px}.badge.todo{background:var(--t-amber-bg);color:var(--t-amber-fg)}.conn .section-title{font-family:var(--font-display);font-size:19px;font-weight:500;color:var(--ink);margin:10px 0 -8px}.conn .section-desc{margin:0;line-height:1.55}.steps{margin:10px 0 4px;padding-left:20px;color:var(--muted);font-size:13.5px;line-height:1.6}.steps a{color:var(--green-700);font-weight:600}.copyline{display:flex;align-items:center;gap:8px;min-width:0}.copyline code{flex:1;min-width:0;overflow-wrap:anywhere;padding:9px 11px;font-size:13px;line-height:1.45;color:var(--ink);-webkit-user-select:all;user-select:all}.copyline .btn{flex:none;padding:8px 14px}.card-head>.muted{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 640px){.card-head{flex-wrap:wrap}}
