:root{--bg:#f2f5f4;--surface:#ffffff;--surface-2:#e8eeec;--line:#d2dbd8;--fg:#15201e;--muted:#5a6a66;--accent:#0e6b62;--accent-soft:#d4ebe6;--p1:#6f86b5;--p2:#c98a12;--p3:#9a6bb0;--p4:#0e6b62;--warn:#a86c08;--warn-soft:#f6e8c8;--late:#b33a2b;--late-soft:#f6dcd7;--ok:#2f7d4a;--ok-soft:#d9eedf;--f-display:"Space Grotesk",system-ui,sans-serif;--f-body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--f-mono:"IBM Plex Mono",ui-monospace,Menlo,monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0f1514;--surface:#162020;--surface-2:#1e2a29;--line:#2c3b39;--fg:#e3ebe9;--muted:#93a5a1;--accent:#4fbcae;--accent-soft:#163a36;--p1:#93a8d4;--p2:#e3a93a;--p3:#c193d6;--p4:#4fbcae;--warn:#e3a93a;--warn-soft:#3a2e15;--late:#ef7a6a;--late-soft:#3d1f1b;--ok:#6cc58b;--ok-soft:#163222;color-scheme:dark}}:root[data-theme=dark]{--bg:#0f1514;--surface:#162020;--surface-2:#1e2a29;--line:#2c3b39;--fg:#e3ebe9;--muted:#93a5a1;--accent:#4fbcae;--accent-soft:#163a36;--p1:#93a8d4;--p2:#e3a93a;--p3:#c193d6;--p4:#4fbcae;--warn:#e3a93a;--warn-soft:#3a2e15;--late:#ef7a6a;--late-soft:#3d1f1b;--ok:#6cc58b;--ok-soft:#163222;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:15px;line-height:1.55}.wrap{max-width:1200px;margin:0 auto;padding-block:28px 60px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:grid;grid-gap:22px;gap:22px}h1,h2,h3{font-family:var(--f-display);margin:0;text-wrap:balance}h1{font-size:1.8rem;font-weight:700;letter-spacing:-.01em}h2{font-size:1.05rem;font-weight:600}.eyebrow{font-size:.75rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.mono{font-family:var(--f-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.note{font-size:.85rem;color:var(--muted)}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px}.page-head p{margin:4px 0 0;color:var(--muted);max-width:64ch}button,input,select,textarea{font:inherit;color:inherit}.btn{border:1px solid var(--line);background:var(--surface);padding:8px 14px;border-radius:8px;cursor:pointer}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--surface);font-weight:600}.btn.danger{color:var(--late);border-color:var(--late)}.btn.small{padding:3px 10px;font-size:.8rem}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.banner{background:var(--late-soft);padding:10px 14px}.banner,.toast{border-radius:8px;font-size:.88rem}.toast{position:fixed;bottom:calc(16px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);background:var(--fg);color:var(--bg);padding:8px 16px;z-index:40;max-width:calc(100% - 32px)}.stats{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:1px;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden}.stat{background:var(--surface);padding:14px 16px;display:grid;grid-gap:2px;gap:2px}.stat b{font-family:var(--f-mono);font-size:1.55rem;font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat span{color:var(--muted);font-size:.82rem}.stat.alert b{color:var(--late)}.charts{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);grid-gap:16px;gap:16px}.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px;display:grid;grid-gap:12px;gap:12px;min-width:0;align-content:start}.card-head{justify-content:space-between;align-items:baseline;gap:10px}.card-head,.legend{display:flex;flex-wrap:wrap}.legend{gap:12px;font-size:.78rem;color:var(--muted)}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;-webkit-margin-end:5px;margin-inline-end:5px;vertical-align:-1px}.pbars{grid-gap:9px;gap:9px}.pb,.pbars{display:grid}.pb{grid-template-columns:minmax(0,170px) 1fr 44px;grid-gap:10px;gap:10px;align-items:center;font-size:.85rem;cursor:pointer;background:none;border:0;padding:0;text-align:start;width:100%}.pb .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pb .track{height:14px;background:var(--surface-2);border-radius:3px;display:flex;overflow:hidden}.pb .track i{display:block;height:100%}.pb .v{font-family:var(--f-mono);text-align:end;color:var(--muted)}.pb:hover .nm{color:var(--accent)}.chart-wrap{overflow-x:auto}.chart-wrap svg{display:block;width:100%;min-width:460px;height:auto}.main{display:grid;grid-template-columns:minmax(0,1fr) 330px;grid-gap:22px;gap:22px;align-items:start}.panel{display:grid;grid-gap:12px;gap:12px;min-width:0}.panel-head{justify-content:space-between;align-items:center;gap:10px}.chips,.panel-head{display:flex;flex-wrap:wrap}.chips{gap:6px}.chip{border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:4px 12px;font-size:.82rem;cursor:pointer}.chip[aria-pressed=true]{background:var(--fg);color:var(--bg);border-color:var(--fg)}.list{grid-gap:10px;gap:10px}.art,.list{display:grid}.art{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px;grid-template-columns:72px minmax(0,1fr);grid-gap:16px;gap:16px;cursor:pointer;text-align:start;width:100%}.art:hover{border-color:var(--accent)}.ring{position:relative;flex:none}.ring svg{transform:rotate(-90deg);display:block}.ring b{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--f-mono);font-size:.95rem;font-weight:500}.art-body{display:grid;grid-gap:8px;gap:8px;min-width:0}.art-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline;flex-wrap:wrap}.art-title{font-family:var(--f-display);font-weight:600;font-size:1.08rem;overflow-wrap:anywhere}.tag{font-size:.7rem;padding:1px 8px;background:var(--surface-2);color:var(--muted);-webkit-margin-start:6px;margin-inline-start:6px;font-family:var(--f-body);font-weight:500;vertical-align:2px}.pill,.tag{border-radius:99px}.pill{font-size:.74rem;padding:2px 10px;font-weight:600;white-space:nowrap}.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.late{background:var(--late-soft);color:var(--late)}.pill.done{background:var(--accent-soft);color:var(--accent)}.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:3px 16px;gap:3px 16px;font-size:.84rem}.facts div{min-width:0;overflow-wrap:anywhere}.facts span{color:var(--muted)}.facts b{font-weight:600}.steps-strip{display:grid;grid-template-columns:repeat(14,1fr);grid-gap:3px;gap:3px}.steps-strip span{height:10px;border-radius:2px;background:var(--surface-2)}.steps-strip span.cur{outline:2px solid var(--fg);outline-offset:1px}.steps-strip span.blk{outline-color:var(--late)}.empty{border:1px dashed var(--line);border-radius:10px;padding:26px;text-align:center;color:var(--muted)}.alert-item{display:grid;grid-gap:2px;gap:2px;padding-block:9px;border-top:1px solid var(--line);cursor:pointer;background:none;border-inline:0;border-bottom:0;text-align:start;width:100%;padding-inline:0}.alert-item:first-of-type{border-top:0;padding-top:0}.alert-item .d{font-size:.78rem;font-weight:600}.alert-item .d.late{color:var(--late)}.alert-item .d.warn{color:var(--warn)}.alert-item .d.soon{color:var(--muted)}.alert-item .t{font-size:.9rem;overflow-wrap:anywhere}.alert-item .a{font-size:.78rem;color:var(--muted)}.ftype{font-family:var(--f-mono);font-size:.68rem;font-weight:500;padding:2px 5px;border-radius:4px;background:var(--surface-2);color:var(--muted);text-transform:uppercase;flex:none;min-width:38px;text-align:center}.ftype.pdf{background:var(--late-soft);color:var(--late)}.ftype.docx{background:#dbe5f7;color:#2b4f99}.ftype.xlsx{background:var(--ok-soft);color:var(--ok)}:root[data-theme=dark] .ftype.docx{background:#1d2a45;color:#9db6ea}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .ftype.docx{background:#1d2a45;color:#9db6ea}}.files{display:grid;grid-gap:6px;gap:6px}.file{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:center;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:7px 9px}.file.final{border-color:var(--accent);background:var(--accent-soft)}.file .fn{min-width:0}.file .fn b{font-weight:600;font-size:.88rem}.file .fn div{font-size:.76rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file .fa{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.linkbtn{border:0;background:none;color:var(--accent);cursor:pointer;font-size:.8rem;padding:2px 4px;text-decoration:underline;text-underline-offset:2px}.linkbtn.del{color:var(--muted)}.linkbtn.del:hover{color:var(--late)}.upl{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;grid-gap:6px;gap:6px;align-items:center}.upl input[type=text]{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:5px 8px;font-size:.85rem;min-width:0}.upl input[type=file]{font-size:.8rem;min-width:0;max-width:100%}.recent{display:grid;grid-gap:8px;gap:8px}.recent .file{background:var(--surface)}.d-head{display:flex;justify-content:space-between;gap:10px}.d-head,.d-sum{align-items:center}.d-sum{display:grid;grid-template-columns:72px 1fr;grid-gap:14px;gap:14px}.field{display:grid;grid-gap:4px;gap:4px;min-width:0}.field label{font-size:.8rem;color:var(--muted)}.field input,.field textarea{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 10px;width:100%;min-width:0}.title-in{font-family:var(--f-display);font-size:1.15rem;font-weight:600}.two{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.block-box{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px 12px;display:grid;grid-gap:8px;gap:8px}.block-box.on{border-color:var(--late);background:var(--late-soft)}.block-box label.sw{display:flex;gap:8px;align-items:center;font-weight:600;cursor:pointer}.block-box input[type=checkbox]{accent-color:var(--late);width:16px;height:16px}.block-box input[type=text]{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:6px 9px;width:100%}.phase-lbl{font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:12px 0 6px;color:var(--muted);display:flex;align-items:center;gap:6px}.phase-lbl i{width:8px;height:8px;border-radius:2px;display:inline-block}.st{display:grid;grid-template-columns:30px minmax(0,1fr);grid-gap:10px;gap:10px}.st .rail{display:flex;flex-direction:column;align-items:center}.st .dot{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-family:var(--f-mono);font-size:.75rem;border:2px solid var(--line);background:var(--surface);color:var(--muted);flex:none}.st.done .dot{background:var(--accent);border-color:var(--accent);color:var(--surface)}.st.cur .dot{border-color:var(--fg);color:var(--fg);font-weight:600}.st.cur.blk .dot{border-color:var(--late);color:var(--late)}.st .line{flex:1 1;width:2px;background:var(--line);min-height:10px}.st.done .line{background:var(--accent)}.st .body{padding-bottom:14px;display:grid;grid-gap:6px;gap:6px;min-width:0}.st .hd{display:flex;justify-content:space-between;gap:8px;align-items:baseline;flex-wrap:wrap;padding-top:2px}.st .hd .nm{background:none;border:0;padding:0;cursor:pointer;font-weight:600;text-align:start}.st .when{font-size:.78rem}.st .when,.st.locked .hd .nm{color:var(--muted)}.st-box{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px 12px;display:grid;grid-gap:10px;gap:10px}.st.cur .st-box{border-color:var(--fg)}.sub-h{font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.crit{display:grid;grid-gap:4px;gap:4px}.crit .row{justify-content:space-between;gap:6px}.crit .row,.crit label{display:flex;align-items:flex-start}.crit label{gap:8px;font-size:.88rem;cursor:pointer}.crit input{accent-color:var(--accent);width:16px;height:16px;margin-top:4px;flex:none}.crit label.ro{cursor:default}.crit label.ro,.x{color:var(--muted)}.x{border:0;background:none;cursor:pointer;font-size:1rem;line-height:1;padding:2px 4px}.x:hover{color:var(--late)}.addc{display:flex;gap:6px}.addc input{flex:1 1;min-width:0;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:5px 8px;font-size:.85rem}.st-meta{display:grid;grid-template-columns:150px 1fr;grid-gap:8px;gap:8px}.st-meta input,.st-meta textarea{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:5px 8px;font-size:.85rem;width:100%;min-width:0}.st-meta textarea{resize:vertical;min-height:32px}.st-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.fcount{font-size:.74rem;color:var(--muted);font-family:var(--f-mono)}.room-main{display:grid;grid-gap:18px;gap:18px;max-width:760px;width:100%;margin:0 auto}.share-note{background:var(--accent-soft);border:1px solid var(--accent);border-radius:8px;padding:10px 12px;font-size:.88rem;display:grid;grid-gap:6px;gap:6px}.share-note a{color:var(--accent);font-weight:600}.team{grid-gap:8px}.member,.team{display:grid;gap:8px}.member{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) auto;grid-gap:8px;align-items:center;font-size:.88rem;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:6px 9px}.member span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member .em{color:var(--muted);font-family:var(--f-mono);font-size:.8rem}.addm{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) auto;grid-gap:6px;gap:6px}.addm input{background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:5px 8px;font-size:.85rem;min-width:0}.setup{display:grid;grid-gap:16px;gap:16px}.setup .step-tag{font-size:.72rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.mrows{grid-gap:6px}.mrow,.mrows{display:grid;gap:6px}.mrow{grid-template-columns:24px minmax(0,1fr) minmax(0,1.3fr) auto;grid-gap:6px;align-items:center}.mrow .n{font-family:var(--f-mono);font-size:.8rem;color:var(--muted);text-align:center}.mrow input{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:7px 9px;min-width:0}.mrow input.bad{border-color:var(--late)}.chk{display:flex;gap:8px;align-items:flex-start;font-size:.9rem;cursor:pointer}.chk input{accent-color:var(--accent);width:16px;height:16px;margin-top:4px}.copybox{font-family:var(--f-mono);font-size:.8rem;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:6px 8px;overflow-wrap:anywhere;-webkit-user-select:all;-moz-user-select:all;user-select:all}@media (max-width:640px){.mrow{grid-template-columns:24px 1fr}.mrow .x,.mrow input[type=email]{grid-column:2}.mrow .x{justify-self:end}}.mail-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.mail-row a{color:var(--accent);font-weight:600}@media (max-width:640px){.addm,.member{grid-template-columns:1fr}}@media (max-width:1000px){.charts,.main{grid-template-columns:1fr}.stats{grid-template-columns:repeat(3,1fr)}}@media (max-width:640px){.stats{grid-template-columns:repeat(2,1fr)}.art,.st-meta,.two,.upl{grid-template-columns:1fr}.pb{grid-template-columns:minmax(0,110px) 1fr 40px}.steps-strip{gap:2px}.file{grid-template-columns:auto minmax(0,1fr)}.file .fa{grid-column:1/-1;justify-content:flex-start}}@media (prefers-reduced-motion:no-preference){.art,.btn{transition:border-color .2s}}body,html{margin:0}a{color:inherit}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:var(--surface);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0)}.topbar-in{max-width:1200px;margin:0 auto;justify-content:space-between;gap:12px;padding-block:10px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.brand,.topbar-in{display:flex;align-items:center}.brand{gap:8px;font-family:var(--f-display);font-weight:700;font-size:1.05rem;text-decoration:none}.brand-mark{width:26px;height:26px;border-radius:7px;background:var(--accent);display:grid;place-items:center;color:var(--surface);font-size:.85rem}.nav{display:flex;align-items:center;gap:10px;font-size:.88rem}.nav .who{color:var(--muted);max-width:28ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.linklike{background:none;border:0;padding:0;color:var(--accent);cursor:pointer;font:inherit;text-decoration:underline;text-underline-offset:2px}.back{font-size:.88rem;color:var(--muted);text-decoration:none}.back:hover{color:var(--accent)}a.btn{text-decoration:none;display:inline-flex;align-items:center;gap:6px}.btn.primary:disabled{opacity:.6}.auth-wrap{min-height:100dvh;display:grid;place-items:center;padding-block:32px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.auth{width:min(420px,100%);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:28px;display:grid;grid-gap:16px;gap:16px}.auth h1{font-size:1.5rem}.auth form{display:grid;grid-gap:12px;gap:12px}.auth .field input{padding:10px 12px}.auth .alt{font-size:.88rem;color:var(--muted);display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.auth .alt a{color:var(--accent)}.msg{font-size:.88rem;border-radius:8px;padding:9px 12px}.msg.err{background:var(--late-soft);color:var(--late)}.msg.ok{background:var(--ok-soft);color:var(--ok)}.article-page{max-width:820px;margin:0 auto;width:100%;display:grid;grid-gap:18px;gap:18px}.activity{display:grid;grid-gap:6px;gap:6px;font-size:.85rem}.activity div{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:6px}.activity div:first-child{border-top:0;padding-top:0}.activity span:last-child{color:var(--muted);white-space:nowrap}.role{font-size:.7rem;padding:1px 7px;border-radius:99px;background:var(--surface-2);color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.role.owner{background:var(--accent-soft);color:var(--accent)}.member select{font-size:.78rem;padding:2px 4px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.pending{font-size:.72rem;color:var(--warn)}.shell{display:grid;grid-template-columns:264px minmax(0,1fr);min-height:100dvh}.shell-main{min-width:0}.side{position:-webkit-sticky;position:sticky;top:0;height:100dvh;overflow-y:auto;background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:14px;padding:18px 14px calc(14px + env(safe-area-inset-bottom,0px)) max(14px,env(safe-area-inset-left,0px))}.side-top{display:flex;align-items:center;justify-content:space-between;padding:2px 6px}.side-close{display:none;font-size:1.5rem}.side-new{justify-content:center}.side-articles,.side-nav{display:grid;grid-gap:2px;gap:2px}.side-articles a,.side-nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;text-decoration:none;font-size:.9rem;color:var(--fg);min-width:0}.side-articles a:hover,.side-nav a:hover{background:var(--surface-2)}.side-articles a.active,.side-nav a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.side-nav svg{width:18px;height:18px;fill:currentColor;flex:none;opacity:.85}.side-label{font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:6px 10px 0;display:flex;justify-content:space-between}.side-articles{flex:1 1;align-content:start;overflow-y:auto}.side-articles .t{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-articles .p{font-size:.75rem;color:var(--muted)}.dot{width:8px;height:8px;border-radius:50%;flex:none;background:var(--ok)}.dot.warn{background:var(--warn)}.dot.late{background:var(--late)}.dot.done{background:var(--accent)}.side-user{display:grid;grid-template-columns:auto minmax(0,1fr);grid-gap:4px 10px;gap:4px 10px;align-items:center;border-top:1px solid var(--line);padding:12px 6px 0}.side-user form{grid-column:2}.avatar{width:34px;height:34px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:600;font-size:.8rem;grid-row:span 2}.side-user .who{display:grid;min-width:0;font-size:.85rem}.side-user .who b,.side-user .who span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-user .who span{color:var(--muted);font-size:.78rem}.mtop,.side-scrim{display:none}.menu-btn{width:40px;height:40px;border:1px solid var(--line);background:var(--surface);border-radius:8px;display:grid;place-content:center;grid-gap:4px;gap:4px;cursor:pointer;padding:0}.menu-btn span{display:block;width:18px;height:2px;background:var(--fg);border-radius:2px}@media (max-width:1023px){.shell{grid-template-columns:minmax(0,1fr)}.mtop{display:flex;align-items:center;gap:12px;position:-webkit-sticky;position:sticky;top:0;z-index:15;background:var(--surface);border-bottom:1px solid var(--line);padding-block:8px;padding-top:calc(8px + env(safe-area-inset-top,0px));padding-left:max(12px,env(safe-area-inset-left,0px));padding-right:max(12px,env(safe-area-inset-right,0px))}.mtop .brand{flex:1 1}.side{position:fixed;inset:0 auto 0 0;width:min(300px,86vw);z-index:31;transform:translateX(-102%);box-shadow:0 0 40px rgb(0 0 0/.18);padding-top:calc(18px + env(safe-area-inset-top,0px))}.side.open{transform:none}.side-close,.side-scrim{display:block}.side-scrim{position:fixed;inset:0;background:rgb(0 0 0/.35);z-index:30}}@media (prefers-reduced-motion:no-preference){.side{transition:transform .22s ease}}@media (min-width:1024px){.wrap{padding-left:32px;padding-right:32px}}.article-layout{display:grid;grid-gap:20px;gap:20px;grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "main" "side";max-width:1280px;margin:0 auto;width:100%}.a-head{grid-area:head;display:grid;grid-gap:14px;gap:14px}.a-main{grid-area:main;min-width:0}.a-side{grid-area:side;display:grid;grid-gap:16px;gap:16px;align-content:start;min-width:0}.a-side .card{gap:12px}.a-side .two{grid-template-columns:1fr}@media (min-width:1024px){.article-layout{grid-template-columns:minmax(0,1fr) 380px;grid-template-areas:"head head" "main side";column-gap:28px}.a-side{position:-webkit-sticky;position:sticky;top:20px;max-height:calc(100dvh - 40px);overflow-y:auto;padding-right:4px}.a-head .d-sum{grid-template-columns:84px 1fr}}@media (min-width:1280px){.article-layout{grid-template-columns:minmax(0,1fr) 420px}}.a-main .st .body{padding-bottom:16px}.auth-split{display:grid;grid-template-columns:minmax(0,1fr);min-height:100dvh}.auth-panel{display:none}@media (min-width:900px){.auth-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.auth-panel{display:flex;flex-direction:column;justify-content:space-between;gap:32px;background:var(--accent);color:#fff;padding:40px clamp(32px,5vw,72px)}.auth-panel .brand{color:#fff}.auth-panel .brand-mark{background:#fff;color:var(--accent)}.auth-panel h2{font-size:clamp(1.7rem,2.6vw,2.4rem);line-height:1.15;max-width:18ch;margin-bottom:20px}.auth-panel ul{list-style:none;padding:0;margin:0;display:grid;grid-gap:10px;gap:10px;font-size:1rem;opacity:.92}.auth-panel li:before{content:"✓";margin-right:10px;font-weight:700}.auth-panel .steps-strip span{background:rgb(255 255 255/.22);height:8px}.auth-brand{display:none}.auth{border:0;background:transparent;padding:8px}.auth-split .auth-wrap{background:var(--bg)}}@media (min-width:900px) and (prefers-color-scheme:dark){.auth-panel{background:#123f3a}}.landing{background:var(--bg)}.l-in{max-width:1180px;margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}.l-nav{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0)}.l-nav .l-in{justify-content:space-between;gap:16px;padding-block:12px}.l-links,.l-nav .l-in{display:flex;align-items:center}.l-links{gap:20px;font-size:.92rem}.l-links a:not(.btn){text-decoration:none;color:var(--muted)}.l-links a:not(.btn):hover{color:var(--fg)}.l-hero{padding-block:clamp(40px,8vw,96px) clamp(40px,6vw,80px)}.l-hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);grid-gap:clamp(28px,5vw,64px);gap:clamp(28px,5vw,64px);align-items:center}.l-copy h1{font-size:clamp(2rem,4.2vw,3.3rem);line-height:1.08;letter-spacing:-.02em;margin:10px 0 16px}.l-copy p{font-size:1.1rem;color:var(--muted);max-width:52ch;margin:0}.l-cta{display:flex;gap:10px;flex-wrap:wrap;margin:26px 0 22px}.l-cta .btn{padding:12px 20px;font-size:1rem}.l-phases{display:flex;gap:16px;flex-wrap:wrap;font-size:.82rem;color:var(--muted)}.l-phases i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}.l-mock{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 60px -24px rgb(14 107 98/.35);overflow:hidden;min-width:0}.l-mock-bar{display:flex;gap:6px;padding:12px 14px;border-bottom:1px solid var(--line)}.l-mock-bar span{width:10px;height:10px;border-radius:50%;background:var(--surface-2)}.l-mock-body{padding:16px;display:grid;grid-gap:12px;gap:12px}.l-mock-kpis{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1px;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden}.l-mock-kpis div{background:var(--surface);padding:10px 12px;display:grid}.l-mock-kpis b{font-family:var(--f-mono);font-weight:500;font-size:1.25rem}.l-mock-kpis b.late{color:var(--late)}.l-mock-kpis span{font-size:.75rem;color:var(--muted)}.l-mock-art{display:grid;grid-template-columns:52px minmax(0,1fr);grid-gap:12px;gap:12px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:10px 12px}.l-mock-art .ring b{font-size:.75rem}.l-mock-txt{display:grid;grid-gap:5px;gap:5px;min-width:0}.l-mock-top{display:flex;justify-content:space-between;gap:8px;align-items:center}.l-mock-top b{font-size:.9rem}.l-mock-top b,.l-mock-txt .note{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.l-mock-txt .note{font-size:.78rem}.l-mock .steps-strip span{height:7px}.l-section{padding-block:clamp(48px,7vw,88px)}.l-section.alt{background:var(--surface);border-block:1px solid var(--line)}.l-final h2,.l-section h2{font-size:clamp(1.5rem,2.6vw,2.1rem);letter-spacing:-.01em;margin-bottom:28px;max-width:28ch}.l-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:28px 32px;gap:28px 32px}.l-feature h3{font-size:1.05rem;margin-bottom:6px}.l-feature p{margin:0;color:var(--muted);font-size:.95rem}.l-how{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:24px;gap:24px;padding:0;margin:0 0 32px;list-style:none;counter-reset:how}.l-how li{counter-increment:how;color:var(--muted);font-size:.95rem;display:grid;grid-gap:6px;gap:6px}.l-how li:before{content:counter(how);font-family:var(--f-display);font-weight:700;font-size:1.1rem;width:36px;height:36px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center}.l-how b{color:var(--fg);display:block}.l-steps{display:flex;flex-wrap:wrap;gap:8px}.l-steps span{border:1px solid var(--line);border-left-width:4px;border-radius:6px;padding:5px 10px;font-size:.85rem;background:var(--bg);display:flex;gap:8px;align-items:center}.l-steps i{font-style:normal;color:var(--muted);font-size:.75rem}.l-final{padding-block:clamp(56px,8vw,96px);text-align:center}.l-final h2{margin:0 auto 10px}.l-final p{color:var(--muted);margin:0 0 22px}.l-final .btn{padding:12px 22px;font-size:1rem}.l-foot{border-top:1px solid var(--line);padding-block:20px calc(20px + env(safe-area-inset-bottom,0px));font-size:.85rem;color:var(--muted)}.l-foot .l-in{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.l-foot a{color:var(--muted)}@media (max-width:960px){.l-hero-grid{grid-template-columns:minmax(0,1fr)}.l-features{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.l-features,.l-how{grid-template-columns:minmax(0,1fr)}.l-links a:not(.btn){display:none}.l-links a[href="/login"]{display:inline}}.mrow{grid-template-columns:24px minmax(0,1fr) minmax(0,1.3fr) 112px 28px}@media (max-width:640px){.mrow{grid-template-columns:24px minmax(0,1fr) 28px;grid-template-areas:"n name x" ". email email" ". role role";row-gap:6px;padding-bottom:10px;border-bottom:1px solid var(--line)}.mrow .mr-n{grid-area:n}.mrow .mr-name{grid-area:name}.mrow .mr-email{grid-area:email}.mrow .mr-role{grid-area:role}.mrow .mr-x{grid-area:x}}.member{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"name role x" "email role x";row-gap:0}.member .mn{grid-area:name;font-weight:500}.member .em{grid-area:email}.member>:nth-child(3){grid-area:role;align-self:center}.member>:nth-child(4){grid-area:x;align-self:center}.addm{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"name email" "role add"}.addm>:first-child{grid-area:name}.addm>:nth-child(2){grid-area:email}.addm>:nth-child(3){grid-area:role}.addm>:nth-child(4){grid-area:add}@media (max-width:640px){.addm{grid-template-columns:minmax(0,1fr);grid-template-areas:"name" "email" "role" "add"}.member{grid-template-columns:minmax(0,1fr) auto auto}}@media (max-width:520px){.l-mock-top{flex-wrap:wrap;row-gap:4px}.l-mock-top b{white-space:normal}.l-mock-art{grid-template-columns:44px minmax(0,1fr)}.l-mock-art .ring{transform:scale(.85);transform-origin:left center}}