:root{--bg:#F4F4F8;--surface:#FFFFFF;--surface-2:#FAFAFB;--sunken:#ECEBF2;--line:#E4E3EC;--line-strong:#D0CEDD;--ink:#17161E;--ink-2:#4C4A5B;--ink-3:#7D7B8E;--signal:#DC4423;--signal-ink:#B03518;--ok:#2E8558;--ok-ink:#24714A;--t-emission:#BE7B0E;--t-post:#6551C9;--t-tache:#137B87;--t-relance:#B33768;--ring:0 0 0 3px color-mix(in oklab, var(--t-post) 28%, transparent);--shadow-1:0 1px 2px rgba(20,19,28,.07);--shadow-2:0 2px 4px rgba(20,19,28,.06), 0 12px 28px -14px rgba(20,19,28,.28);--shadow-3:0 24px 60px -22px rgba(20,19,28,.42), 0 2px 8px rgba(20,19,28,.08);--r-s:7px;--r-m:11px;--r-l:16px;--rail:74px;--topbar:60px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0F0F16;--surface:#191922;--surface-2:#1E1D28;--sunken:#141420;--line:#2A2937;--line-strong:#3B394C;--ink:#ECEBF3;--ink-2:#B3B0C4;--ink-3:#83809A;--signal:#FF6A4A;--signal-ink:#FF8265;--ok:#5CC08C;--ok-ink:#74CC9E;--t-emission:#E5AD4E;--t-post:#A490F2;--t-tache:#4CC0CD;--t-relance:#EE7CA9;--shadow-1:0 1px 2px rgba(0,0,0,.4);--shadow-2:0 2px 4px rgba(0,0,0,.3), 0 12px 28px -14px rgba(0,0,0,.7);--shadow-3:0 24px 60px -22px rgba(0,0,0,.8), 0 2px 8px rgba(0,0,0,.4)}}:root[data-theme=dark]{--bg:#0F0F16;--surface:#191922;--surface-2:#1E1D28;--sunken:#141420;--line:#2A2937;--line-strong:#3B394C;--ink:#ECEBF3;--ink-2:#B3B0C4;--ink-3:#83809A;--signal:#FF6A4A;--signal-ink:#FF8265;--ok:#5CC08C;--ok-ink:#74CC9E;--t-emission:#E5AD4E;--t-post:#A490F2;--t-tache:#4CC0CD;--t-relance:#EE7CA9;--shadow-1:0 1px 2px rgba(0,0,0,.4);--shadow-2:0 2px 4px rgba(0,0,0,.3), 0 12px 28px -14px rgba(0,0,0,.7);--shadow-3:0 24px 60px -22px rgba(0,0,0,.8), 0 2px 8px rgba(0,0,0,.4)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Instrument Sans,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:Bricolage Grotesque,Instrument Sans,sans-serif;margin:0;text-wrap:balance;letter-spacing:-.015em}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none;padding:0}:focus-visible{outline:2px solid var(--t-post);outline-offset:2px;border-radius:4px}.mono{font-family:IBM Plex Mono,ui-monospace,monospace;font-variant-numeric:tabular-nums}.eyebrow{font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3)}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.app{display:grid;grid-template-columns:var(--rail) 1fr;min-height:100vh}.rail{border-right:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 0;position:sticky;top:0;height:100vh}.mark{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--ink);color:var(--surface);margin-bottom:14px;flex:none;font-family:Bricolage Grotesque,sans-serif;font-weight:800;font-size:17px}.nav-btn{width:46px;height:44px;border-radius:11px;display:grid;place-items:center;color:var(--ink-3);transition:background .14s,color .14s;position:relative}.nav-btn:hover{background:var(--sunken);color:var(--ink-2)}.nav-btn[aria-current=true]{background:var(--sunken);color:var(--ink)}.nav-btn[aria-current=true]:before{content:"";position:absolute;left:-14px;top:11px;width:3px;height:22px;border-radius:0 3px 3px 0;background:var(--t-post)}.nav-btn svg{width:20px;height:20px}.rail .spacer{flex:1}.topbar{height:var(--topbar);border-bottom:1px solid var(--line);background:var(--surface);display:flex;align-items:center;gap:14px;padding:0 18px;position:sticky;top:0;z-index:40}.wordmark{font-family:Bricolage Grotesque,sans-serif;font-weight:800;font-size:18px;letter-spacing:-.03em;padding:2px 6px;margin-left:-6px;border-radius:6px;border:1px dashed transparent}.wordmark:hover,.wordmark:focus{border-color:var(--line-strong);outline:none}.tally{display:flex;align-items:center;gap:7px;padding:5px 10px 5px 8px;border-radius:99px;background:color-mix(in oklab,var(--signal) 12%,var(--surface));color:var(--signal-ink);font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600;letter-spacing:.11em}.tally .dot{width:7px;height:7px;border-radius:50%;background:var(--signal);animation:pulse 2.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;box-shadow:0 0 color-mix(in oklab,var(--signal) 55%,transparent)}50%{opacity:.75;box-shadow:0 0 0 5px transparent}}.topbar .grow{flex:1}.icon-btn{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;color:var(--ink-2);border:1px solid transparent;transition:background .14s,border-color .14s;position:relative}.icon-btn:hover{background:var(--sunken)}.icon-btn svg{width:17px;height:17px}.badge-dot{position:absolute;top:5px;right:5px;min-width:15px;height:15px;padding:0 4px;border-radius:99px;background:var(--signal);color:#fff;font-size:9px;font-weight:700;display:grid;place-items:center;font-family:IBM Plex Mono,monospace;border:2px solid var(--surface)}.btn{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 13px;border-radius:9px;font-weight:600;font-size:13px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);transition:background .14s,border-color .14s,transform .1s}.btn:hover{background:var(--sunken)}.btn:active{transform:translateY(1px)}.btn svg{width:15px;height:15px}.btn.primary{background:var(--ink);color:var(--surface);border-color:var(--ink)}.btn.primary:hover{background:var(--ink-2);border-color:var(--ink-2)}.btn.ghost{border-color:transparent;color:var(--ink-2)}.btn.ghost:hover{background:var(--sunken)}.btn.danger{border-color:color-mix(in oklab,var(--signal) 40%,var(--line));color:var(--signal-ink)}.btn.sm{height:28px;padding:0 10px;font-size:12px;border-radius:8px}.viewbar{display:flex;align-items:center;gap:12px;padding:14px 20px;flex-wrap:wrap;border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:var(--topbar);z-index:30}.viewbar h1{font-size:20px;font-weight:700}.viewbar .sub{color:var(--ink-3);font-size:12.5px}.seg-group{display:flex;background:var(--sunken);padding:3px;border-radius:10px;gap:2px}.seg-group button{padding:5px 11px;border-radius:7px;font-size:12.5px;font-weight:600;color:var(--ink-3)}.seg-group button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1)}.weeknav{display:flex;align-items:center;gap:2px}.weeknav button:not(.btn){width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:var(--ink-2)}.weeknav button:not(.btn):hover{background:var(--sunken)}.weeknav svg{width:16px;height:16px}.chip-filter{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 11px;border-radius:99px;border:1px solid var(--line-strong);font-size:12.5px;font-weight:600;color:var(--ink-2);background:var(--surface)}.chip-filter:hover{background:var(--sunken)}.chip-filter[aria-pressed=true]{background:color-mix(in oklab,var(--signal) 13%,var(--surface));border-color:color-mix(in oklab,var(--signal) 40%,var(--line));color:var(--signal-ink)}.chip-filter svg{width:14px;height:14px}.chip-filter .n{font-family:IBM Plex Mono,monospace;font-size:11px}.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--line);border-bottom:1px solid var(--line);min-height:calc(100vh - var(--topbar) - 62px)}.daycol{background:var(--bg);display:flex;flex-direction:column;min-width:0}.dayhead{padding:10px 12px 8px;position:sticky;top:calc(var(--topbar) + 60px);background:var(--bg);z-index:20;border-bottom:1px solid var(--line);display:flex;align-items:baseline;gap:7px}.dayhead .dow{font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3)}.dayhead .num{font-family:Bricolage Grotesque,sans-serif;font-weight:700;font-size:17px;line-height:1}.dayhead .miss{margin-left:auto;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600;color:var(--signal-ink)}.daycol.today .dayhead{background:color-mix(in oklab,var(--t-post) 7%,var(--bg))}.daycol.today .num{color:var(--t-post)}.daycol.weekend,.daycol.weekend .dayhead{background:var(--sunken)}.daylist{padding:9px;display:flex;flex-direction:column;gap:8px;flex:1}.pubs{padding:8px 9px 0;display:flex;flex-direction:column;gap:3px}.pubs .eyebrow{margin-bottom:2px}.pub{display:flex;align-items:center;gap:6px;width:100%;text-align:left;padding:4px 7px;border-radius:7px;background:color-mix(in oklab,var(--t-post) 9%,var(--surface));border:1px solid color-mix(in oklab,var(--t-post) 22%,var(--line));font-size:11px;font-weight:600;color:var(--ink-2)}.pub:hover{background:color-mix(in oklab,var(--t-post) 16%,var(--surface))}.pub i{width:5px;height:5px;border-radius:50%;background:var(--t-post);flex:none}.pub b{font-size:9.5px;font-weight:600;color:var(--t-post);flex:none}.pub.short{background:color-mix(in oklab,var(--t-emission) 10%,var(--surface));border-color:color-mix(in oklab,var(--t-emission) 24%,var(--line))}.pub.short i,.pub.short b{color:var(--t-emission);background:var(--t-emission)}.pub.short b{background:none}.pub.short:hover{background:color-mix(in oklab,var(--t-emission) 17%,var(--surface))}.pub span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pub em{margin-left:auto;font-style:normal;font-size:10px;color:var(--ink-3);display:flex;align-items:center}.pub em svg{width:12px;height:12px;color:var(--ok)}.pub.ok{background:color-mix(in oklab,var(--ok) 10%,var(--surface));border-color:color-mix(in oklab,var(--ok) 26%,var(--line))}.pub.ok i{background:var(--ok)}.dayempty{border:1px dashed var(--line-strong);border-radius:var(--r-m);color:var(--ink-3);font-size:12px;padding:14px 10px;text-align:center}.card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-m);padding:10px 11px 10px 13px;text-align:left;width:100%;display:block;box-shadow:var(--shadow-1);transition:box-shadow .15s,transform .12s,border-color .15s}.card:before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--t)}.card:hover{box-shadow:var(--shadow-2);transform:translateY(-1px);border-color:var(--line-strong)}.card.done{opacity:.6}.card-top{display:flex;align-items:center;gap:7px;margin-bottom:5px}.card-time{font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600;color:var(--ink-2)}.type-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 6px;border-radius:5px;background:color-mix(in oklab,var(--t) 15%,var(--surface));color:var(--t);font-size:10px;font-weight:700;letter-spacing:.02em}.type-chip svg{width:10px;height:10px}.card-top .rec{margin-left:auto;color:var(--ink-3);display:flex}.card-top .rec svg{width:12px;height:12px}.card h4{font-size:13.5px;font-weight:600;line-height:1.3;letter-spacing:-.005em;font-family:Instrument Sans,sans-serif}.card.done h4{text-decoration:line-through;text-decoration-color:var(--ink-3)}.meter{display:flex;align-items:center;gap:6px;margin-top:9px}.segs{display:flex;gap:2px;flex:1}.seg{height:4px;flex:1;border-radius:2px;background:var(--sunken);box-shadow:inset 0 0 0 1px var(--line)}.seg.on{background:var(--t);box-shadow:none}.seg.off{background:repeating-linear-gradient(-45deg,color-mix(in oklab,var(--signal) 26%,transparent) 0 2px,transparent 2px 4px);box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--signal) 42%,transparent)}.meter .count{font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600;color:var(--ink-3)}.meter .count.warn{color:var(--signal-ink)}.card-foot{display:flex;align-items:center;gap:6px;margin-top:8px}.avs{display:flex}.av{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;flex:none;font-family:IBM Plex Mono,monospace;font-size:9px;font-weight:600;color:#fff;border:1.5px solid var(--surface);margin-left:-5px}.av:first-child{margin-left:0}.av.lg{width:28px;height:28px;font-size:11px}.missing-note{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--signal-ink);min-width:0}.missing-note svg{width:12px;height:12px;flex:none}.missing-note span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ready-note{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--ok-ink)}.ready-note svg{width:12px;height:12px}.page{padding:20px;max-width:1180px;margin:0 auto}.section-title{display:flex;align-items:center;gap:9px;margin:26px 0 12px}.section-title:first-child{margin-top:0}.section-title h2{font-size:15px;font-weight:700}.section-title .n{font-family:IBM Plex Mono,monospace;font-size:11px;font-weight:600;color:var(--ink-3);background:var(--sunken);padding:1px 7px;border-radius:99px}.stack{display:flex;flex-direction:column;gap:8px}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:10px}.month{background:var(--line);border:1px solid var(--line);border-radius:var(--r-l);overflow:hidden;display:grid;grid-template-columns:repeat(7,1fr);gap:1px}.month .dname{background:var(--surface);padding:8px;text-align:center}.mcell{background:var(--surface);min-height:104px;padding:7px 8px;display:flex;flex-direction:column;gap:5px;text-align:left}.mcell.out{background:var(--surface-2);color:var(--ink-3)}.mcell .d{font-family:IBM Plex Mono,monospace;font-size:11.5px;font-weight:600}.mcell.is-today .d{background:var(--t-post);color:#fff;border-radius:6px;padding:0 5px;align-self:flex-start}.mline{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--ink-2);min-width:0}.mline .pip{width:6px;height:6px;border-radius:2px;background:var(--t);flex:none}.mline.warn .pip{box-shadow:0 0 0 2px color-mix(in oklab,var(--signal) 35%,transparent)}.mline span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mcell .more{font-size:10.5px;color:var(--ink-3);font-family:IBM Plex Mono,monospace}.board{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:12px;align-items:start}.col{background:var(--sunken);border-radius:var(--r-l);padding:10px;display:flex;flex-direction:column;gap:8px}.col-head{display:flex;align-items:center;gap:7px;padding:2px 4px 0}.col-head h3{font-size:12.5px;font-weight:700}.col-head .n{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--ink-3);margin-left:auto}.col-head .bullet{width:8px;height:8px;border-radius:50%}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow-1)}.panel-head{padding:14px 16px;border-bottom:1px solid var(--line)}.panel-head h3{font-size:14.5px;font-weight:700}.panel-head p{margin:3px 0 0;color:var(--ink-3);font-size:12.5px}.settings-grid{display:grid;grid-template-columns:238px 1fr;gap:1px;background:var(--line)}.type-list{background:var(--surface);padding:8px;display:flex;flex-direction:column;gap:2px}.type-list button{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:9px;text-align:left;width:100%;font-size:13px;font-weight:600;color:var(--ink-2)}.type-list button:hover{background:var(--sunken)}.type-list button[aria-pressed=true]{background:color-mix(in oklab,var(--t) 12%,var(--surface));color:var(--t)}.type-list .sq{width:9px;height:9px;border-radius:3px;background:var(--t);flex:none}.type-list .cnt{margin-left:auto;font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--ink-3);font-weight:500}.field-editor{background:var(--surface);padding:16px}.field-row{display:flex;align-items:center;gap:11px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface-2);margin-bottom:7px}.field-row .fname{font-weight:600;font-size:13px}.field-row .fkind{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--ink-3);border:1px solid var(--line);padding:1px 6px;border-radius:5px}.field-row .grow{flex:1}.switch{width:38px;height:22px;border-radius:99px;background:var(--line-strong);position:relative;flex:none;transition:background .16s}.switch:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:var(--shadow-1);transition:transform .16s}.switch[aria-pressed=true]{background:var(--t-post)}.switch[aria-pressed=true]:after{transform:translate(16px)}.switch-lab{display:flex;align-items:center;gap:9px;font-size:12.5px;font-weight:600;color:var(--ink-2)}.setting-row{display:flex;align-items:center;gap:14px;padding:13px 16px;border-bottom:1px solid var(--line)}.setting-row:last-child{border-bottom:none}.setting-row .txt{flex:1;min-width:0}.setting-row .txt strong{display:block;font-size:13px;font-weight:600}.setting-row .txt span{color:var(--ink-3);font-size:12px;display:flex;align-items:center;gap:5px}.setting-row .txt span svg{width:11px;height:11px;flex:none}.inp{height:34px;border:1px solid var(--line-strong);background:var(--surface);border-radius:9px;padding:0 11px;font-size:13px;width:100%}.inp:focus{outline:none;border-color:var(--t-post);box-shadow:var(--ring)}textarea.inp{height:auto;padding:9px 11px;resize:vertical;line-height:1.5}select.inp{cursor:pointer}.scrim{position:fixed;inset:0;background:#0c0b126b;backdrop-filter:blur(2px);z-index:60;animation:fade .18s ease}@keyframes fade{0%{opacity:0}to{opacity:1}}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(460px,100vw);background:var(--surface);border-left:1px solid var(--line);box-shadow:var(--shadow-3);z-index:61;display:flex;flex-direction:column;animation:slide .22s cubic-bezier(.22,.8,.3,1)}@keyframes slide{0%{transform:translate(26px);opacity:.4}to{transform:none;opacity:1}}.drawer-head{padding:16px 18px 14px;border-bottom:1px solid var(--line);position:relative}.drawer-head .row{display:flex;align-items:center;gap:8px;margin-bottom:9px}.drawer-head h2{font-size:19px;font-weight:700;line-height:1.25;padding-right:26px}.drawer-head .close{position:absolute;top:14px;right:14px}.drawer-body{overflow-y:auto;flex:1;padding:16px 18px 26px;display:flex;flex-direction:column;gap:18px}.drawer-foot{padding:12px 18px;border-top:1px solid var(--line);display:flex;gap:8px;background:var(--surface-2)}.progress-card{border:1px solid var(--line);border-radius:var(--r-m);padding:13px;background:var(--surface-2)}.progress-card.warn{border-color:color-mix(in oklab,var(--signal) 34%,var(--line));background:color-mix(in oklab,var(--signal) 7%,var(--surface))}.progress-card .head{display:flex;align-items:baseline;gap:8px;margin-bottom:9px}.progress-card .pct{font-family:Bricolage Grotesque,sans-serif;font-size:24px;font-weight:800;line-height:1}.progress-card .lbl{font-size:12.5px;color:var(--ink-2);font-weight:600}.blk h4{font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);margin-bottom:9px}.field{display:flex;gap:10px;padding:10px 11px;border:1px solid var(--line);border-radius:var(--r-m);margin-bottom:6px;background:var(--surface);align-items:flex-start}.field.missing{border-color:color-mix(in oklab,var(--signal) 38%,var(--line));background:color-mix(in oklab,var(--signal) 6%,var(--surface))}.field .ic{width:17px;height:17px;flex:none;margin-top:1px;color:var(--ok)}.field.missing .ic{color:var(--signal)}.field .body{flex:1;min-width:0}.field .k{font-size:11px;color:var(--ink-3);font-weight:600;display:flex;align-items:center;gap:5px}.field .k .req{color:var(--signal-ink);font-family:IBM Plex Mono,monospace;font-size:9px;letter-spacing:.06em}.field .val{font-size:13px;font-weight:500;word-break:break-word;margin-top:1px}.field .val.link{color:var(--t-post);text-decoration:underline;text-underline-offset:2px}.field .val.empty{color:var(--signal-ink);font-weight:600}.filepill{display:inline-flex;align-items:center;gap:7px;margin-top:4px;padding:5px 9px;border-radius:8px;background:var(--sunken);font-size:12px;font-weight:500}.filepill svg{width:13px;height:13px;color:var(--ink-3)}.filepill .sz{color:var(--ink-3);font-family:IBM Plex Mono,monospace;font-size:10.5px}.thumb{width:46px;height:46px;border-radius:8px;flex:none;border:1px solid var(--line);background:linear-gradient(135deg,color-mix(in oklab,var(--t) 55%,var(--surface)),color-mix(in oklab,var(--t) 16%,var(--surface)))}.field .add{margin-top:6px;display:flex;gap:6px;flex-wrap:wrap}.editor{margin-top:8px;display:flex;flex-direction:column;gap:7px}.upl{height:5px;border-radius:99px;background:var(--sunken);overflow:hidden}.upl i{display:block;height:100%;background:var(--t-post);width:0;transition:width .1s linear}.utxt{font-size:11px;color:var(--ink-3)}.uname{font-size:12px;font-weight:600;color:var(--ink-2);display:flex;align-items:center;gap:6px}.uname svg{width:13px;height:13px;flex:none}.uhint{display:flex;gap:6px;align-items:flex-start;font-size:11px;color:var(--ink-3);line-height:1.4;margin-top:2px}.uhint svg{width:12px;height:12px;flex:none;margin-top:2px}.team-ok{display:inline-flex;align-items:center;gap:5px;margin-top:6px;padding:3px 8px;border-radius:6px;background:color-mix(in oklab,var(--ok) 14%,var(--surface));color:var(--ok-ink);font-size:11px;font-weight:600}.team-ok svg{width:12px;height:12px}.posted{display:inline-flex;align-items:center;gap:5px;margin-top:5px;padding:3px 8px;border-radius:6px;background:color-mix(in oklab,var(--ok) 13%,var(--surface));color:var(--ok-ink);font-size:11px;font-weight:600}.posted svg{width:12px;height:12px}.files{display:flex;flex-direction:column;gap:5px}.frow{display:flex;align-items:center;gap:9px;padding:7px 9px;border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface)}.frow .fi{width:15px;height:15px;color:var(--ink-3);flex:none}.frow .fi svg{width:15px;height:15px}.frow .fb{flex:1;min-width:0}.frow .fl{display:block;font-size:12px;font-weight:600}.frow .fn{display:block;font-size:10.5px;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.frow .fs{font-size:10.5px;color:var(--ink-3);flex:none}.frow .icon-btn{width:28px;height:28px;flex:none}.frow .icon-btn svg{width:14px;height:14px;transform:rotate(180deg)}.ftot{display:flex;justify-content:space-between;padding:8px 9px 0;font-size:11px;color:var(--ink-3);font-weight:600}.steps{position:relative}.step{display:flex;align-items:center;gap:10px;padding:7px 0;position:relative}.step:before{content:"";position:absolute;left:10px;top:0;bottom:0;width:1px;background:var(--line)}.step:first-child:before{top:50%}.step:last-child:before{bottom:50%}.step .dot{width:21px;height:21px;border-radius:50%;display:grid;place-items:center;flex:none;position:relative;z-index:1;background:var(--surface);border:1px solid var(--line);color:var(--ink-3)}.step .dot svg{width:12px;height:12px}.step.done .dot{background:color-mix(in oklab,var(--ok) 16%,var(--surface));border-color:color-mix(in oklab,var(--ok) 42%,var(--line));color:var(--ok-ink)}.step.current .dot{background:color-mix(in oklab,var(--signal) 15%,var(--surface));border-color:color-mix(in oklab,var(--signal) 46%,var(--line));color:var(--signal-ink)}.step .sbody{flex:1;min-width:0}.step .sl{display:block;font-size:13px;font-weight:600}.step.blocked .sl{color:var(--ink-3);font-weight:500}.step .ss{display:block;font-size:11px;color:var(--ink-3)}.step.done .ss{color:var(--ok-ink)}.step .ss .late{margin-left:5px;padding:0 5px;border-radius:4px;font-size:9.5px;font-weight:700;background:color-mix(in oklab,var(--signal) 16%,transparent);color:var(--signal-ink)}.step.current .ss{color:var(--signal-ink);font-weight:600}.step .sd{font-size:10.5px;color:var(--ink-3);flex:none;text-align:right;padding:2px 4px;border-radius:5px;line-height:1.35}.step .sd:hover{background:var(--sunken);color:var(--ink-2)}.step .sd.bad{color:var(--signal-ink);background:color-mix(in oklab,var(--signal) 12%,transparent)}.step .sd em{display:block;font-style:normal;color:var(--t-post);font-size:9.5px}.branches{display:flex;flex-direction:column;gap:10px;margin-top:12px}.branch{border:1px solid var(--line);border-radius:var(--r-m);padding:4px 11px 8px;background:var(--surface-2)}.shortsn{display:inline-flex;align-items:center;gap:2px;margin-left:8px;margin-right:auto;border:1px solid var(--line);border-radius:99px;padding:1px 2px;background:var(--surface)}.shortsn button{width:19px;height:19px;border-radius:50%;display:grid;place-items:center;color:var(--ink-2);font-size:13px;line-height:1}.shortsn button:hover{background:var(--sunken)}.shortsn .mono{font-size:10.5px;min-width:14px;text-align:center;color:var(--ink-2)}.bhead{display:flex;align-items:center;justify-content:space-between;padding:8px 0 2px;font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3)}.pickrow{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:8px 10px;border:1px solid var(--line);border-radius:9px;margin-bottom:5px;background:var(--surface);transition:border-color .14s,background .14s}.pickrow:hover{background:var(--sunken);border-color:var(--line-strong)}.pickrow svg{width:14px;height:14px;color:var(--ink-3);flex:none}.pickrow .pn{font-size:12.5px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pickrow .ps{font-size:10.5px;color:var(--ink-3);flex:none}.pickrow .pw{font-size:10.5px;color:var(--ink-3);margin-left:auto;flex:none}@media (max-width:520px){.pickrow .pw{display:none}}.meta-row{display:flex;align-items:center;gap:9px;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}.meta-row:last-child{border-bottom:none}.meta-row .ic{width:16px;height:16px;color:var(--ink-3);flex:none}.meta-row .k{color:var(--ink-3);width:96px;flex:none;font-size:12px}.meta-row .v{font-weight:500}.activity{display:flex;flex-direction:column;gap:12px}.act{display:flex;gap:9px}.act .body{flex:1;min-width:0}.act .who{font-size:12.5px;font-weight:600}.act .when{font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--ink-3);margin-left:6px}.act .msg{font-size:13px;color:var(--ink-2);margin-top:1px}.pop{position:absolute;top:calc(100% + 8px);right:0;width:min(348px,92vw);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow-3);z-index:70;overflow:hidden;animation:pop .16s ease}@keyframes pop{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}.pop-head{padding:11px 14px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}.pop-head h3{font-size:13px;font-weight:700}.noti{display:flex;gap:10px;padding:11px 14px;border-bottom:1px solid var(--line);text-align:left;width:100%}.noti:last-child{border-bottom:none}.noti:hover{background:var(--surface-2)}.noti .ic{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;flex:none}.noti .ic svg{width:14px;height:14px}.noti .t{font-size:12.5px;font-weight:600;line-height:1.35}.noti .s{font-size:11.5px;color:var(--ink-3);margin-top:1px}.noti .s b{font-family:IBM Plex Mono,monospace;font-weight:600;color:var(--ink-2)}.toast-wrap{position:fixed;bottom:22px;left:50%;transform:translate(-50%);z-index:90;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{display:flex;align-items:center;gap:9px;padding:10px 15px;border-radius:99px;background:var(--ink);color:var(--bg);font-size:13px;font-weight:600;box-shadow:var(--shadow-3);animation:toastin .22s cubic-bezier(.2,.9,.3,1)}.toast svg{width:15px;height:15px;color:var(--ok-ink)}@keyframes toastin{0%{opacity:0;transform:translateY(9px) scale(.97)}to{opacity:1;transform:none}}.modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(520px,94vw);max-height:88vh;overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow-3);z-index:61;animation:pop .18s ease}.proto{display:flex;align-items:center;gap:9px;padding:8px 20px;font-size:12px;background:color-mix(in oklab,var(--t-emission) 15%,var(--bg));color:color-mix(in oklab,var(--t-emission) 72%,var(--ink));border-bottom:1px solid color-mix(in oklab,var(--t-emission) 26%,var(--line))}.proto svg{width:14px;height:14px;flex:none}.proto b{font-weight:700}.tabbar{display:none}@media (max-width:1080px){.board{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:880px){.app{grid-template-columns:1fr}.rail{display:none}.week{display:flex;flex-direction:column;gap:0;background:var(--bg);border:none}.daycol{border-bottom:1px solid var(--line)}.daycol.weekend,.daycol.weekend .dayhead{background:var(--bg)}.dayhead{position:static}.settings-grid{grid-template-columns:1fr}.month{font-size:11px}.mcell{min-height:76px}.mline span{display:none}.drawer{width:100vw;top:44px;border-radius:var(--r-l) var(--r-l) 0 0}body{padding-bottom:64px}.tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;bottom:0;left:0;right:0;z-index:50;background:var(--surface);border-top:1px solid var(--line);padding:6px 4px 8px}.tabbar button{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--ink-3);font-size:10px;font-weight:600}.tabbar button svg{width:19px;height:19px}.tabbar button[aria-current=true]{color:var(--t-post)}.viewbar{top:var(--topbar)}}@media (max-width:660px){.tally{display:none}.viewbar h1{font-size:18px}.proto{font-size:11.5px;padding:8px 14px}.page{padding:14px}.board{grid-template-columns:1fr}}.boot{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--ink-3);font-size:13px;text-align:center;padding:24px}.boot p{margin:0;max-width:34ch;line-height:1.5}.boot-mark,.auth-mark{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:var(--ink);color:var(--surface);font-family:Bricolage Grotesque,sans-serif;font-weight:800;font-size:20px}.boot-mark{animation:breathe 2.4s ease-in-out infinite}.boot-mark.err{background:var(--signal);color:#fff;animation:none}@keyframes breathe{0%,to{opacity:1}50%{opacity:.55}}.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg)}.auth-card{width:min(380px,100%);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow-2);padding:26px 24px;display:flex;flex-direction:column;gap:13px}.auth-card h1{font-size:21px;font-weight:700;margin-top:4px}.auth-sub{margin:0 0 4px;color:var(--ink-3);font-size:13px;line-height:1.5}.auth-field{display:flex;flex-direction:column;gap:5px}.auth-field span{font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3)}.auth-submit{height:38px;justify-content:center;margin-top:5px}.auth-switch{height:32px;justify-content:center;font-size:12.5px}.auth-msg{font-size:12.5px;line-height:1.45;min-height:0}.auth-msg.error{color:var(--signal-ink)}.auth-msg.info{color:var(--ok-ink)}.toast.toast-error{background:var(--signal);color:#fff}.toast.toast-error svg{color:#fff}.frow a.icon-btn{display:grid;text-decoration:none}.frow a.icon-btn svg{transform:none}.switch[disabled]{opacity:.45;cursor:not-allowed}.rolechip{font-family:IBM Plex Mono,monospace;font-size:9px;font-weight:600;letter-spacing:.04em;padding:2px 6px;border-radius:5px;border:1px dashed var(--line-strong);color:var(--ink-3);flex:none}.modeswitch{display:flex;gap:2px;background:var(--sunken);padding:3px;border-radius:10px;margin-top:12px}.modeswitch button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 10px;border-radius:7px;font-size:12.5px;font-weight:600;color:var(--ink-3)}.modeswitch button svg{width:14px;height:14px}.modeswitch button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1)}.blk h4 .hcount{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--ink-3);background:var(--sunken);padding:1px 6px;border-radius:99px;margin-left:6px;letter-spacing:0}.assets{display:flex;flex-direction:column;gap:6px}.asset{display:flex;align-items:center;gap:9px;padding:9px 10px;border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface);transition:border-color .2s,box-shadow .2s}.asset.focus{border-color:var(--t-post);box-shadow:0 0 0 3px color-mix(in oklab,var(--t-post) 22%,transparent)}.asset .ai{width:15px;height:15px;color:var(--ink-3);flex:none}.asset .ai svg{width:15px;height:15px}.asset .ab{flex:1;min-width:0}.asset .al{display:flex;align-items:center;gap:5px;font-size:12.5px;font-weight:600}.asset .reqdot{width:4px;height:4px;border-radius:50%;background:var(--signal);flex:none}.asset .aval{display:block;font-family:IBM Plex Mono,monospace;font-size:10.5px;color:var(--t-post);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}.asset .aval:hover{text-decoration:underline}.asset .aval.none{color:var(--ink-3);font-style:italic}.asset .dl{width:28px;height:28px;flex:none;display:grid;text-decoration:none}.asset .dl svg{width:14px;height:14px;transform:rotate(180deg)}.job{font-family:IBM Plex Mono,monospace;font-size:9px;font-weight:600;letter-spacing:.03em;padding:2px 6px;border-radius:5px;border:1px solid var(--line);color:var(--ink-3);flex:none;white-space:nowrap}.job.mine{border-color:color-mix(in oklab,var(--t-post) 45%,var(--line));background:color-mix(in oklab,var(--t-post) 12%,var(--surface));color:var(--t-post)}.state{font-size:11px;font-weight:700;padding:4px 9px;border-radius:99px;flex:none;border:1px solid var(--line);color:var(--ink-3);background:var(--surface);white-space:nowrap}.state:hover{border-color:var(--line-strong)}.state.idle{color:var(--ink-3)}.state.busy{color:var(--t-post);border-color:color-mix(in oklab,var(--t-post) 42%,var(--line));background:color-mix(in oklab,var(--t-post) 12%,var(--surface))}.state.warn{color:var(--t-emission);border-color:color-mix(in oklab,var(--t-emission) 45%,var(--line));background:color-mix(in oklab,var(--t-emission) 14%,var(--surface))}.state.ok{color:var(--ok-ink);border-color:color-mix(in oklab,var(--ok) 42%,var(--line));background:color-mix(in oklab,var(--ok) 13%,var(--surface))}.statepick{display:flex;gap:2px;background:var(--sunken);padding:2px;border-radius:99px;flex:none}.statepick .sp{font-size:10.5px;font-weight:600;padding:3px 8px;border-radius:99px;color:var(--ink-3);white-space:nowrap}.statepick .sp:hover{background:var(--surface)}.statepick .sp.on{background:var(--surface);box-shadow:var(--shadow-1);color:var(--ink)}.statepick .sp.on.busy{color:var(--t-post)}.statepick .sp.on.warn{color:var(--t-emission)}.statepick .sp.on.ok{color:var(--ok-ink)}.journal{display:flex;flex-direction:column;gap:2px}.jrow{display:flex;align-items:center;gap:8px;padding:6px 2px;border-bottom:1px solid var(--line)}.jrow:last-child{border-bottom:none}.jtxt{flex:1;min-width:0;font-size:12px;color:var(--ink-2);line-height:1.35}.jtxt b{font-weight:600;color:var(--ink)}.jwhen{font-size:10px;color:var(--ink-3);flex:none}@media (max-width:520px){.asset{flex-wrap:wrap}.asset .ab{flex:1 1 100%;order:1}.asset .ai{order:0}.job{order:2}.state,.statepick{order:3;margin-left:auto}.asset .dl{order:4}}:root{--t-ambre:#BE7B0E;--t-violet:#6551C9;--t-teal:#137B87;--t-rose:#B33768;--t-vert:#2E7D4F;--t-orange:#C2410C;--t-bleu:#1E5FA8;--t-prune:#7A3E8F}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--t-ambre:#E5AD4E;--t-violet:#A490F2;--t-teal:#4CC0CD;--t-rose:#EE7CA9;--t-vert:#5FC48D;--t-orange:#FF8A5B;--t-bleu:#6BA8F0;--t-prune:#C08AD8}}:root[data-theme=dark]{--t-ambre:#E5AD4E;--t-violet:#A490F2;--t-teal:#4CC0CD;--t-rose:#EE7CA9;--t-vert:#5FC48D;--t-orange:#FF8A5B;--t-bleu:#6BA8F0;--t-prune:#C08AD8}.tconf{display:flex;flex-direction:column;gap:14px;padding:16px;border-bottom:1px solid var(--line)}.tconf-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.tconf-row>.lab{font-family:IBM Plex Mono,monospace;font-size:10px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);width:74px;flex:none}.swatches{display:flex;gap:6px;flex-wrap:wrap}.swatch{width:26px;height:26px;border-radius:8px;border:2px solid transparent;position:relative;background:var(--c);transition:transform .12s}.swatch:hover{transform:scale(1.1)}.swatch[aria-pressed=true]{border-color:var(--ink);box-shadow:0 0 0 2px var(--surface) inset}.iconpick{display:flex;gap:5px;flex-wrap:wrap}.iconpick button{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;border:1px solid var(--line);color:var(--ink-3);background:var(--surface)}.iconpick button svg{width:15px;height:15px}.iconpick button:hover{background:var(--sunken)}.iconpick button[aria-pressed=true]{border-color:var(--t);color:var(--t);background:color-mix(in oklab,var(--t) 12%,var(--surface))}.fkey{font-family:IBM Plex Mono,monospace;font-size:9.5px;color:var(--ink-3);background:var(--sunken);padding:1px 5px;border-radius:4px;flex:none}.field-row .ord{display:flex;flex-direction:column;gap:1px;flex:none}.field-row .ord button{width:18px;height:13px;display:grid;place-items:center;color:var(--ink-3);border-radius:3px}.field-row .ord button:hover{background:var(--sunken);color:var(--ink)}.field-row .ord svg{width:11px;height:11px}.field-row .del{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;color:var(--ink-3);flex:none}.field-row .del:hover{background:color-mix(in oklab,var(--signal) 14%,transparent);color:var(--signal-ink)}.field-row .del svg{width:13px;height:13px}.newfield{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:11px 12px;border:1px dashed var(--line-strong);border-radius:var(--r-m);background:var(--surface-2)}.preview{display:flex;flex-direction:column;gap:4px;max-height:260px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--r-m);padding:8px;background:var(--surface-2)}.prow{display:flex;align-items:center;gap:8px;padding:5px 7px;border-radius:7px;background:var(--surface);border:1px solid var(--line)}.prow .pip{width:6px;height:6px;border-radius:2px;background:var(--t);flex:none}.prow .pt{flex:1;min-width:0;font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prow .pd{font-size:10.5px;color:var(--ink-3);flex:none}.prow .pinh{display:inline-flex;align-items:center;gap:3px;font-size:9.5px;font-weight:600;color:var(--t-post);flex:none}.prow .pinh svg{width:11px;height:11px}.combo-list{display:flex;flex-direction:column;gap:2px;padding:8px}.combo-list button{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:9px;text-align:left;width:100%;font-size:13px;font-weight:600;color:var(--ink-2)}.combo-list button:hover{background:var(--sunken)}.combo-list button[aria-pressed=true]{background:var(--sunken);color:var(--ink)}.combo-list .trig{font-family:IBM Plex Mono,monospace;font-size:10px;color:var(--ink-3);margin-left:auto}.group-links{display:flex;flex-wrap:wrap;gap:5px}.glink{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:99px;border:1px solid var(--line);font-size:11.5px;font-weight:600;color:var(--ink-2);background:var(--surface)}.glink:hover{background:var(--sunken)}.glink i{width:5px;height:5px;border-radius:50%;background:var(--t);flex:none}.glink.self{border-color:var(--line-strong);background:var(--sunken);cursor:default}.inherited{border-style:dashed!important}.inherited .k:after{content:" · repris du parent";color:var(--t-post);font-weight:600}
