@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-tight-cyrillic-ext-wght-normal-okcGN4Nq.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-tight-cyrillic-wght-normal-BS41q_Tv.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-tight-greek-ext-wght-normal-DQgQPNk4.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-tight-greek-wght-normal-sS1B39LI.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-tight-vietnamese-wght-normal-TKKdAiBA.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-tight-latin-ext-wght-normal-B4u9PlvR.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Tight Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-tight-latin-wght-normal-DX-nOvPD.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Instrument Serif";font-style:italic;font-display:swap;font-weight:400;src:url(./instrument-serif-latin-400-italic-DKMiL14s.woff2) format("woff2"),url(./instrument-serif-latin-400-italic-u__WvvIK.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./jetbrains-mono-latin-400-normal-V6pRDFza.woff2) format("woff2"),url(./jetbrains-mono-latin-400-normal-6-qcROiO.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-latin-500-normal-BWZEU5yA.woff2) format("woff2"),url(./jetbrains-mono-latin-500-normal-CJOVTJB7.woff) format("woff")}:root{--bg: #f5f5f3;--surface: #ffffff;--surface-2: #fafaf8;--surface-3: #ecebe8;--border: #e3e2de;--border-strong: #cfcdc8;--text: #0d0d0d;--text-2: #3d3d3b;--text-3: #6e6e6b;--brand: #8c151d;--brand-bright: #a81b24;--brand-ink: #631015;--onyx: #0d0d0d;--onyx-2: #141414;--onyx-3: #1d1d1d;--onyx-line: #242424;--onyx-text: #f5f5f3;--onyx-muted: #9a9a97;--accent: var(--brand);--mix: #ffffff;--neutral-chip: #ecebe8;--ok-bg: #e5f2ea;--ok-fg: #2c7350;--demo-bg: #f6ecd6;--demo-fg: #7a5410;--primary-bg: var(--brand);--primary-fg: #f5f5f3;--primary-hover: var(--brand-bright);--overlay: rgba(13, 13, 13, .4);color-scheme:light;--s-gray: #9a9a97;--s-amber: #d4930a;--s-violet: #6d5bd0;--s-green: #3f9a6b;--s-blue: #2f6fd6;--s-teal: #13838c;--s-red: #d1493b;--s-pink: #c2448c;--s-progress: var(--s-amber);--s-done: var(--s-green);--danger: #c42020;--danger-soft: #fbeaea;--warn: #a86d00;--warn-soft: #fbf1dc;--radius: 14px;--radius-sm: 8px;--shadow-sm: none;--shadow: 0 1px 2px rgba(13, 13, 13, .04), 0 8px 24px rgba(13, 13, 13, .07);--shadow-lg: 0 30px 80px rgba(13, 13, 13, .22);--ease: cubic-bezier(.16, 1, .3, 1);--font: "Inter Tight Variable", "Inter Tight", Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--serif: "Instrument Serif", Georgia, serif;--mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, monospace}:root[data-theme=dark]{--bg: #0d0d0d;--surface: #161616;--surface-2: #121212;--surface-3: #1c1c1c;--border: #232323;--border-strong: #333333;--text: #f5f5f3;--text-2: #d9d9d5;--text-3: #9a9a97;--s-gray: #6e6e6b;--danger: #f87171;--danger-soft: #2a1313;--warn: #e3a83c;--warn-soft: #2a2112;--shadow-sm: none;--shadow: 0 12px 32px rgba(0, 0, 0, .42);--shadow-lg: 0 30px 80px rgba(0, 0, 0, .55);--mix: #161616;--neutral-chip: #1f1f1f;--ok-bg: #12241a;--ok-fg: #6fcf9c;--demo-bg: #2b220f;--demo-fg: #e9bd62;--overlay: rgba(0, 0, 0, .6);color-scheme:dark}:root,.project,.project-card,.client-card,.chip{--accent-ink: var(--accent);--accent-soft: color-mix(in srgb, var(--accent) 10%, var(--mix));--accent-line: color-mix(in srgb, var(--accent) 28%, var(--mix))}:root[data-theme=dark],:root[data-theme=dark] .project,:root[data-theme=dark] .project-card,:root[data-theme=dark] .client-card,:root[data-theme=dark] .chip{--accent-ink: color-mix(in srgb, var(--accent) 55%, #ffffff);--accent-soft: color-mix(in srgb, var(--accent) 24%, var(--mix));--accent-line: color-mix(in srgb, var(--accent) 50%, var(--mix))}:root[data-theme=dark]{--accent-ink: var(--brand-bright)}:root[data-theme=dark] .sidebar{border-right:1px solid var(--onyx-line)}:root[data-theme=dark] .toast{border:1px solid var(--border-strong)}.logo-for-dark{display:none!important}:root[data-theme=dark] .logo-for-light{display:none!important}:root[data-theme=dark] .logo-for-dark{display:block!important}.theme-switch{display:inline-flex;padding:2px;gap:2px;border-radius:var(--radius-sm);background:var(--surface-3);border:1px solid var(--border)}.theme-switch button{display:inline-grid;place-items:center;width:30px;height:26px;border-radius:6px;color:var(--text-3)}.theme-switch button:hover{color:var(--text)}.theme-switch button.is-on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.theme-switch.on-dark{background:var(--onyx);border-color:var(--onyx-line)}.theme-switch.on-dark button{color:var(--onyx-muted)}.theme-switch.on-dark button:hover{color:#fff}.theme-switch.on-dark button.is-on{background:var(--onyx-3);color:#fff;box-shadow:none}.user-menu-theme{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px 8px;font-size:12.5px;color:var(--onyx-muted);border-bottom:1px solid var(--onyx-line);margin-bottom:4px}.login-main{position:relative}.login-theme{position:absolute;top:20px;right:20px}.remember{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-2);cursor:pointer;-webkit-user-select:none;user-select:none}.remember input{width:16px;height:16px;accent-color:var(--accent-ink);cursor:pointer}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;letter-spacing:-.02em;line-height:1.2}h1{font-size:26px;font-weight:650}h2{font-size:15px;font-weight:600}h3{font-size:14px;font-weight:600}p{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}button:disabled{cursor:not-allowed}input,select,textarea{font:inherit;color:var(--text)}:focus-visible{outline:2px solid var(--accent-ink);outline-offset:2px;border-radius:6px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.muted{color:var(--text-3)}.small{font-size:12.5px}.tiny{font-size:11px}.mono{font-family:var(--mono);font-size:12.5px}.center{text-align:center}.nowrap{white-space:nowrap}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.prewrap{white-space:pre-wrap}.text-danger{color:var(--danger)}.text-warn{color:var(--warn)}.text-done{color:var(--s-done)}.text-accent{color:var(--accent-ink)}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px}.row-gap{display:flex;align-items:center;gap:8px}.row-end{display:flex;justify-content:flex-end;gap:8px}.stack{display:flex;flex-direction:column;gap:14px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.center-screen{min-height:100vh;display:grid;place-items:center;padding:16px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);font-weight:500;font-size:13.5px;white-space:nowrap;box-shadow:var(--shadow-sm);transition:background .12s,border-color .12s,transform .06s}.btn:hover:not(:disabled){background:var(--surface-3)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5}.btn-primary{background:var(--primary-bg);border-color:var(--primary-bg);color:var(--primary-fg)}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-danger:hover:not(:disabled){background:#b32a2a}.btn-danger-outline{border-color:color-mix(in srgb,var(--danger) 40%,var(--mix));color:var(--danger)}.btn-ghost{border-color:transparent;box-shadow:none;background:transparent}.btn-sm{height:28px;padding:0 10px;font-size:12.5px}.btn-lg{height:42px;font-size:14.5px}.btn-block{width:100%}.icon-btn{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:var(--radius-sm);color:var(--text-2);transition:background .12s}.icon-btn:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.icon-btn:disabled{opacity:.3}.icon-btn.sm{width:26px;height:26px}.icon-btn.on-dark{color:var(--onyx-text)}.icon-btn.on-dark:hover{background:var(--onyx-3)}.link{color:var(--accent-ink);font-weight:500;display:inline-flex;align-items:center;gap:4px}.link-btn{color:var(--text-3);display:inline-flex;align-items:center;gap:4px;font-weight:500}.link-btn:hover{color:var(--text)}input:not([type=checkbox]):not([type=range]):not([type=color]),select,textarea{width:100%;border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius-sm);padding:7px 10px;min-height:34px;transition:border-color .12s,box-shadow .12s}textarea{resize:vertical;line-height:1.5}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:30px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2385858c' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;cursor:pointer}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent-ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-ink) 16%,transparent)}input::placeholder,textarea::placeholder{color:var(--text-3)}.select-sm{min-height:30px!important;padding:4px 28px 4px 8px!important;font-size:12.5px;width:auto!important}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12.5px;font-weight:550;color:var(--text-2)}.field-hint{font-size:12px;color:var(--text-3)}.form-error{display:flex;gap:8px;align-items:center;padding:9px 12px;border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);font-size:13px}.toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:var(--text-2);-webkit-user-select:none;user-select:none}.toggle input{position:absolute;opacity:0;width:1px;height:1px}.toggle-track{width:30px;height:18px;border-radius:99px;background:var(--border-strong);position:relative;transition:background .15s;flex:none}.toggle-thumb{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform .15s}.toggle input:checked+.toggle-track{background:var(--accent-ink)}.toggle input:checked+.toggle-track .toggle-thumb{transform:translate(12px)}.toggle input:focus-visible+.toggle-track{outline:2px solid var(--accent-ink);outline-offset:2px}.segmented{display:inline-flex;padding:2px;background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius-sm);gap:2px}.segmented button{height:26px;padding:0 10px;border-radius:6px;font-size:12.5px;font-weight:500;color:var(--text-2)}.segmented button.is-on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.badge{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 7px;border-radius:6px;font-size:11.5px;font-weight:550;background:var(--surface-3);color:var(--text-2);white-space:nowrap;text-transform:capitalize}.badge.tiny{height:16px;font-size:10.5px;padding:0 5px}.badge-staff{background:var(--neutral-chip);color:var(--text)}.badge-client{background:var(--accent-soft);color:var(--accent-ink)}.badge-demo{background:var(--demo-bg);color:var(--demo-fg)}.badge-active{background:var(--ok-bg);color:var(--ok-fg)}.badge-on_hold{background:var(--warn-soft);color:var(--warn)}.badge-completed,.badge-done{background:var(--ok-bg);color:var(--ok-fg)}.badge-current{background:var(--accent-soft);color:var(--accent-ink);margin-left:8px}.badge-milestone{background:var(--accent-soft);color:var(--accent-ink)}.badge-internal{background:var(--neutral-chip);color:var(--text-2)}.badge-blocked{background:var(--danger-soft);color:var(--danger)}.pill{display:inline-flex;align-items:center;gap:6px}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none}.avatar{display:inline-grid;place-items:center;border-radius:50%;color:#fff;font-weight:600;flex:none;letter-spacing:0;box-shadow:0 0 0 2px var(--surface)}.avatar-brand{background:var(--onyx);overflow:hidden}.avatar-brand img{width:76%;height:auto;display:block}:root[data-theme=dark] .avatar-brand{box-shadow:0 0 0 1px var(--onyx-line),0 0 0 2px var(--surface)}.avatar-empty{background:var(--surface-3);color:var(--text-3);border:1px dashed var(--border-strong);box-shadow:none}.progress{width:100%;background:var(--surface-3);border-radius:99px;overflow:hidden}.progress-fill{height:100%;border-radius:inherit;transition:width .4s ease}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border-radius:99px;background:var(--accent-soft);font-size:12px;font-weight:500}.count{font-family:var(--mono);font-size:11.5px;color:var(--text-3);font-weight:400}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow-sm)}.card.narrow{max-width:380px;display:flex;flex-direction:column;gap:12px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.section-label{font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin:18px 0 8px}.eyebrow{font-family:var(--mono);font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);margin-bottom:6px}.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:28px 16px;color:var(--text-2)}.empty-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:var(--surface-3);color:var(--text-3);margin-bottom:4px}.empty-title{font-weight:600;color:var(--text)}.empty-body{font-size:13px;color:var(--text-3);max-width:340px}.spinner-wrap{display:grid;place-items:center;padding:80px 0}.spinner{width:22px;height:22px;border-radius:50%;border:2.5px solid var(--border-strong);border-top-color:var(--accent-ink);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toasts{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:100}.toast{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:10px;background:var(--onyx);color:#fff;font-size:13px;box-shadow:var(--shadow-lg);animation:rise .18s ease;max-width:360px}.toast-success svg{color:#5fd39a}.toast-error{background:#3a0d10}.toast-error svg{color:#ff8a8a}@keyframes rise{0%{transform:translateY(8px);opacity:0}}.callout{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);font-size:13px;color:var(--text-2);margin-bottom:14px}.callout>svg{flex:none;margin-top:2px;color:var(--text-3)}.callout .btn{margin-left:auto}.confirm-inline{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text-2)}.overlay,.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);z-index:50;animation:fade .15s ease}.overlay{display:grid;place-items:center;padding:16px}@keyframes fade{0%{opacity:0}}.modal{max-width:100%;background:var(--surface);border-radius:14px;box-shadow:var(--shadow-lg);animation:rise .18s ease}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 0}.modal-body{padding:16px 18px}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 14px 14px}.drawer{position:absolute;top:0;right:0;bottom:0;width:min(520px,100vw);background:var(--surface);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;animation:slide .2s ease;outline:none}@keyframes slide{0%{transform:translate(24px);opacity:0}}.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px 12px 20px;border-bottom:1px solid var(--border);min-height:56px}.drawer-tags{display:flex;gap:6px;flex-wrap:wrap}.drawer-head .row-gap,.drawer-head .confirm-inline{flex-wrap:wrap;justify-content:flex-end}.drawer-missing{padding-bottom:20px}.drawer-missing p{padding:20px}.drawer-scroll{overflow-y:auto;padding:18px 20px 40px;flex:1}.drawer-title,.drawer-title-input{font-size:20px;font-weight:650;letter-spacing:-.02em;line-height:1.3;margin-bottom:16px}.drawer-title-input{border:1px solid transparent!important;padding:4px 6px!important;margin-left:-7px;width:calc(100% + 14px)!important;resize:none;field-sizing:content;background:transparent!important}.drawer-title-input:hover{border-color:var(--border)!important}.drawer-title-input:focus{border-color:var(--accent-ink)!important}.props{display:grid;grid-template-columns:96px 1fr;gap:10px 12px;align-items:center;margin:0}.props dt{font-size:12.5px;color:var(--text-3)}.props dd{margin:0;min-width:0}.prop-value{display:inline-flex;align-items:center;gap:8px;min-height:32px}.select-wrap{position:relative}.select-wrap.with-dot .status-dot,.select-wrap.with-avatar .avatar{position:absolute;left:10px;top:50%;transform:translateY(-50%);pointer-events:none}.select-wrap.with-dot select{padding-left:26px}.select-wrap.with-avatar select{padding-left:38px}.date-pair{display:flex;align-items:center;gap:8px}.date-pair input{min-width:0}.progress-edit{display:flex;align-items:center;gap:12px}.progress-edit .mono{width:40px;text-align:right}input[type=range]{flex:1;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:99px;background:linear-gradient(to right,var(--accent-ink) var(--fill, 0%),var(--surface-3) var(--fill, 0%));cursor:pointer}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--accent-ink);box-shadow:var(--shadow-sm)}input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:#fff;border:2px solid var(--accent-ink)}.flag-row{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}.blocked-box{display:flex;align-items:center;gap:8px;margin-top:14px;padding:8px 10px;border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);font-size:13px}.blocked-box input{border:0!important;background:transparent!important;padding:0!important;min-height:0!important;box-shadow:none!important;color:var(--danger)}.desc{color:var(--text-2);white-space:pre-wrap}.desc-input{font-size:13.5px}.drawer-tabs{display:flex;gap:4px;margin:24px 0 12px;border-bottom:1px solid var(--border)}.drawer-tabs button{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;font-size:13px;font-weight:500;color:var(--text-3);border-bottom:2px solid transparent;margin-bottom:-1px}.drawer-tabs button.is-on{color:var(--text);border-bottom-color:var(--accent-ink)}.comments{display:flex;flex-direction:column;gap:14px}.comment,.comment-form{display:flex;gap:10px;align-items:flex-start}.comment-body,.comment-input{flex:1;min-width:0}.comment-meta{display:flex;align-items:center;gap:8px;font-size:13px}.comment-meta .link-btn{margin-left:auto;opacity:0}.comment:hover .comment-meta .link-btn{opacity:1}.comment-text{margin-top:2px;color:var(--text-2);white-space:pre-wrap;overflow-wrap:anywhere}.comment-input{display:flex;flex-direction:column;gap:6px}.activity{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:13px;color:var(--text-2)}.activity li{display:grid;grid-template-columns:20px 1fr auto;gap:8px;align-items:start}.activity strong{color:var(--text);font-weight:550}.login{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);min-height:100vh}.login-brand{background:radial-gradient(1200px 500px at -10% 110%,rgba(196,37,49,.35),transparent 60%),var(--onyx);color:var(--onyx-text);padding:40px 48px;display:flex;flex-direction:column;justify-content:space-between}.login-brand-top,.login-mobile-logo{display:flex;align-items:center;gap:10px}.brand-name{font-weight:650;font-size:16px;letter-spacing:-.02em;color:#fff}.brand-name.dark{color:var(--text)}.brand-sub{font-size:11.5px;color:var(--onyx-muted)}.login-pitch h1{font-size:44px;line-height:1.05;letter-spacing:-.035em;color:#fff}.login-pitch p{margin-top:16px;max-width:380px;color:var(--onyx-muted);font-size:15px}.login-points{list-style:none;padding:0;margin:28px 0 0;display:flex;flex-direction:column;gap:10px;color:var(--onyx-text)}.login-points li{display:flex;align-items:center;gap:10px}.login-points svg{color:var(--brand)}.login-foot{font-size:12px;color:var(--onyx-muted)}.login-main{display:grid;place-items:center;padding:32px 20px}.login-form{width:100%;max-width:380px;display:flex;flex-direction:column;gap:14px}.login-form h2{font-size:22px}.login-mobile-logo{display:none}.demo-box{margin-top:10px;border:1px dashed var(--border-strong);border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;gap:10px}.demo-box-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.demo-accounts{display:flex;flex-direction:column;gap:6px}.demo-account{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);text-align:left;font-size:13px;background:var(--surface)}.demo-account:hover{border-color:var(--border-strong);background:var(--surface-2)}.shell{display:flex;min-height:100vh}.sidebar{width:248px;flex:none;background:var(--onyx);color:var(--onyx-text);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:16px 12px;gap:18px;z-index:40}.sidebar-brand{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:6px 8px 2px}.wordmark{display:block;width:auto;max-width:100%;object-fit:contain}.portal-label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.14em;font-size:10.5px;padding-left:2px}.side-nav,.side-section{display:flex;flex-direction:column;gap:2px}.side-section{flex:1;overflow-y:auto;min-height:0}.side-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--onyx-muted);padding:6px 10px}.side-link{display:flex;align-items:center;gap:10px;height:34px;padding:0 10px;border-radius:var(--radius-sm);color:#c9c9cf;font-size:13.5px;font-weight:500}.side-link:hover{background:var(--onyx-2);color:#fff}.side-link.active{background:var(--onyx-3);color:#fff}.side-dot{width:8px;height:8px;border-radius:3px;flex:none;display:inline-block}.side-empty{font-size:12.5px;color:var(--onyx-muted);padding:4px 10px}.side-skeleton{height:34px;border-radius:8px;background:var(--onyx-2);margin:0 2px}.sidebar-foot{position:relative;border-top:1px solid var(--onyx-line);padding-top:12px;display:flex;flex-direction:column;gap:8px}.demo-reset{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--onyx-muted);padding:4px 8px;border-radius:6px}.demo-reset:hover{color:#fff;background:var(--onyx-2)}.user-chip{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:var(--radius-sm);text-align:left;color:var(--onyx-text)}.user-chip:hover{background:var(--onyx-2)}.user-chip .avatar{box-shadow:none}.user-chip-text{display:flex;flex-direction:column;min-width:0;flex:1;font-size:13px;font-weight:500}.user-menu{position:absolute;bottom:calc(100% + 6px);left:0;right:0;background:var(--onyx-2);border:1px solid var(--onyx-line);border-radius:10px;padding:6px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column}.user-menu-email{font-size:12px;color:var(--onyx-muted);padding:6px 8px 8px;border-bottom:1px solid var(--onyx-line);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis}.user-menu button{display:flex;align-items:center;gap:8px;padding:8px;border-radius:6px;font-size:13px;color:var(--onyx-text);text-align:left}.user-menu button:hover{background:var(--onyx-3)}.main{flex:1;min-width:0}.topbar,.scrim{display:none}.page{padding:28px 32px 48px;max-width:1120px;margin:0 auto}.page-wide{max-width:none}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.page-head p{margin-top:6px}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.project-card{display:flex;flex-direction:column;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s,transform .15s;position:relative;overflow:hidden}.project-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--accent-ink)}.project-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow);transform:translateY(-1px)}.project-card h3{font-size:17px}.project-card-top{display:flex;justify-content:space-between;align-items:center}.client-chip{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text-2);font-weight:500}.project-card-progress{display:flex;flex-direction:column;gap:6px;margin-top:4px}.project-card-meta{display:flex;flex-wrap:wrap;gap:6px 14px}.project-card-meta span{display:inline-flex;align-items:center;gap:5px}.project-head{background:var(--surface);border-bottom:1px solid var(--border);padding:22px 32px 0;position:sticky;top:0;z-index:20}.project-head-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.project-title{min-width:0}.project-title h1{font-size:24px}.crumbs{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--text-3);font-weight:500;margin-bottom:4px}.project-actions{display:flex;align-items:center;gap:8px}.tabs{display:flex;gap:2px;margin-top:16px;overflow-x:auto;scrollbar-width:none}.tabs-flat{margin:0 0 18px;border-bottom:1px solid var(--border)}.tab{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 12px;font-size:13.5px;font-weight:500;color:var(--text-3);border-bottom:2px solid transparent;white-space:nowrap}.tab:hover{color:var(--text)}.tab.active{color:var(--text);border-bottom-color:var(--accent-ink)}.hero{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:24px;align-items:center;padding:22px 24px;background:linear-gradient(135deg,var(--accent-soft),var(--surface) 55%)}.hero-summary{font-size:16px;color:var(--text);max-width:640px}.hero-meta{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:12px;align-items:center}.hero-meta span{display:inline-flex;align-items:center;gap:6px}.hero-progress{display:flex;flex-direction:column;gap:6px}.big-number{font-size:44px;font-weight:650;letter-spacing:-.04em;line-height:1;color:var(--accent-ink)}.big-number span{font-size:22px;margin-left:2px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}.stat{display:flex;flex-direction:column;gap:4px;text-align:left;padding:16px}.stat.is-clickable:hover{border-color:var(--border-strong)}.stat-label{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text-3);font-weight:500}.stat-value{font-size:24px;font-weight:650;letter-spacing:-.03em}.stat-danger .stat-value,.stat-danger .stat-label{color:var(--danger)}.overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.phase-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:14px}.phase-item{display:flex;flex-direction:column;gap:6px}.phase-name{font-weight:550;display:inline-flex;align-items:center;gap:4px}.phase-upcoming .phase-name{color:var(--text-2)}.since-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:8px}.since{padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border)}.since-n{font-size:22px;font-weight:650;letter-spacing:-.03em}.since-l{color:var(--text-3)}.since-done .since-n{color:var(--s-done)}.since-progress .since-n{color:var(--s-progress)}.since-warn .since-n{color:var(--warn)}.since-danger .since-n{color:var(--danger)}.mini-row,.task-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:8px;margin:0 -8px;width:calc(100% + 16px);border-radius:var(--radius-sm)}.mini-row:hover:not(:disabled),.task-row:hover{background:var(--surface-2)}.mini-row .truncate{flex:1}.task-row-main{display:flex;flex-direction:column;flex:1;min-width:0}.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px}.toolbar select{width:auto;min-width:140px}.toolbar-note{margin-left:auto}.search{position:relative;display:flex;align-items:center}.search svg{position:absolute;left:10px;color:var(--text-3)}.search input{padding-left:32px!important;width:220px!important}.board-page{padding-bottom:24px}.board{display:grid;grid-auto-flow:column;grid-template-columns:repeat(var(--cols, 4),minmax(260px,1fr));grid-auto-columns:220px;gap:14px;align-items:start;overflow-x:auto;padding-bottom:8px}.column{background:var(--surface-3);border-radius:var(--radius);border:1px solid transparent;display:flex;flex-direction:column;min-height:200px;transition:border-color .15s,background .15s}.column.is-over{border-color:var(--accent-line);background:var(--accent-soft)}.column-head{display:flex;align-items:center;gap:8px;padding:12px 12px 8px 14px}.column-head h2{font-size:13.5px;min-width:0}.column-actions{display:flex;gap:2px;margin-left:auto}.column-actions .icon-btn.is-on{background:var(--surface);color:var(--text)}.board-add{border:1px dashed var(--border-strong);border-radius:var(--radius);padding:8px}.board-add-btn{display:flex;align-items:center;gap:6px;width:100%;padding:6px 8px;border-radius:var(--radius-sm);font-size:13px;color:var(--text-3)}.board-add-btn:hover{background:var(--surface-3);color:var(--text)}.status-menu{position:fixed;z-index:40;width:252px;max-width:calc(100vw - 16px);display:flex;flex-direction:column;gap:12px;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-lg)}.status-menu-section{display:flex;flex-direction:column;gap:6px}.status-menu-section+.status-menu-section{padding-top:12px;border-top:1px solid var(--border)}.status-menu-label{font-size:11.5px;font-weight:500;color:var(--text-3)}.status-menu-section label.small{display:flex;flex-direction:column;gap:6px}.status-menu-move{flex-direction:row}.status-menu-move .btn{flex:1;justify-content:center}.status-swatches{display:flex;gap:6px;flex-wrap:wrap}.status-swatch{width:22px;height:22px;border-radius:50%}.status-swatch.is-on{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--text)}.status-menu-delete{display:flex;align-items:center;gap:8px;padding:6px 8px;margin:-2px -4px;border-radius:var(--radius-sm);font-size:13px;color:var(--danger);text-align:left}.status-menu-delete:hover:not(:disabled){background:var(--danger-soft)}.status-menu-delete:disabled{opacity:.4}.column-body{display:flex;flex-direction:column;gap:8px;padding:4px 8px 10px;flex:1;min-height:120px}.column-empty{font-size:12.5px;color:var(--text-3);text-align:center;padding:20px 8px;border:1px dashed var(--border-strong);border-radius:var(--radius-sm)}.quick-add input{background:var(--surface)}.card-slot{border-radius:10px;outline:none}.card-slot:focus-visible{box-shadow:0 0 0 2px var(--accent-ink)}.card-slot.is-dragging{opacity:.35}.task-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:11px 12px 10px;display:flex;flex-direction:column;gap:8px;box-shadow:var(--shadow-sm);cursor:pointer;transition:border-color .12s,box-shadow .12s}.task-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}.task-card.is-overlay{box-shadow:var(--shadow-lg);transform:rotate(1.5deg);cursor:grabbing;width:280px}.task-card.is-done .task-card-title{color:var(--text-3)}.task-card-flags{display:flex;align-items:center;gap:6px;min-height:18px}.phase-tag{font-size:11px;font-weight:550;color:var(--accent-ink);background:var(--accent-soft);padding:1px 6px;border-radius:5px;max-width:140px}.flag{display:inline-flex;align-items:center;color:var(--text-3);font-size:11px;font-weight:600}.flag-milestone{color:var(--accent-ink)}.flag-client{padding:0 5px;border-radius:5px;background:var(--accent-soft);color:var(--accent-ink)}.flag-high{color:var(--danger);margin-left:auto}.task-card-title{font-size:13.5px;font-weight:550;line-height:1.35;letter-spacing:-.01em}.task-card-blocked{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--danger);background:var(--danger-soft);padding:4px 7px;border-radius:6px}.task-card-foot{display:flex;align-items:center;justify-content:space-between}.due{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--text-2)}.due.is-overdue{color:var(--danger);font-weight:550}.legend{display:flex;gap:12px;flex-wrap:wrap;margin-left:8px}.legend span{display:inline-flex;align-items:center;gap:5px}.legend-swatch{width:12px;height:8px;border-radius:3px}.gantt{padding:0;overflow:auto;max-height:calc(100vh - 230px);position:relative}.gantt-inner{position:relative}.gantt-header{display:flex;position:sticky;top:0;z-index:6;background:var(--surface);border-bottom:1px solid var(--border)}.gantt-left{position:sticky;left:0;z-index:4;background:var(--surface);border-right:1px solid var(--border);flex:none}.gantt-corner{z-index:7;display:flex;align-items:flex-end;padding:0 14px 8px;font-size:11.5px;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em}.gantt-scale{position:relative;flex:none}.gantt-months{position:relative;height:28px}.gantt-month{position:absolute;top:0;bottom:0;border-left:1px solid var(--border);padding:6px 8px;font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden}.gantt-minor{position:relative;height:24px;border-top:1px solid var(--border)}.gantt-tick{position:absolute;top:0;bottom:0;font-size:11px;color:var(--text-3);font-family:var(--mono);padding:4px 0 0 4px;border-left:1px solid var(--surface-3)}.gantt-tick.is-weekend{background:var(--surface-2)}.gantt-tick.is-today{color:var(--brand);font-weight:600}.gantt-body{position:relative}.gantt-grid{position:absolute;top:0;bottom:0;pointer-events:none}.gantt-line{position:absolute;top:0;bottom:0;border-left:1px solid var(--surface-3)}.gantt-weekend{position:absolute;top:0;bottom:0;background:var(--surface-2)}.gantt-today{position:absolute;top:0;bottom:0;border-left:2px solid var(--brand);z-index:3}.gantt-today span{position:sticky;top:0;display:inline-block;transform:translate(-50%);background:var(--brand);color:#fff;font-size:10.5px;font-weight:600;padding:1px 6px;border-radius:4px;margin-top:4px}.gantt-row{display:flex;position:relative}.gantt-row:hover .gantt-left{background:var(--surface-2)}.gantt-phase-row{border-top:1px solid var(--border);background:var(--surface-2)}.gantt-phase-row .gantt-left{background:var(--surface-2)}.gantt-phase-name,.gantt-task-name{display:flex;align-items:center;gap:8px;padding:0 12px;text-align:left;font-size:13px}.gantt-phase-name{font-weight:600}.gantt-phase-name .truncate{flex:1}.gantt-task-name{padding-left:30px;color:var(--text-2)}.gantt-task-name .truncate{flex:1}.gantt-track{position:relative;flex:none}.gantt-phase-bar{position:absolute;top:50%;height:10px;margin-top:-5px;border-radius:99px;background:var(--accent-line);overflow:hidden}.gantt-phase-fill{height:100%;background:var(--accent-ink);border-radius:inherit}.gantt-bar{position:absolute;top:7px;bottom:7px;border-radius:6px;background:color-mix(in srgb,var(--bar) 22%,var(--mix));border:1px solid color-mix(in srgb,var(--bar) 55%,var(--mix));overflow:hidden;display:flex;align-items:center;text-align:left;transition:box-shadow .12s}.gantt-bar:hover{box-shadow:0 0 0 2px color-mix(in srgb,var(--bar) 35%,transparent)}.gantt-bar-fill{position:absolute;inset:0 auto 0 0;background:color-mix(in srgb,var(--bar) 55%,var(--mix))}.stage-done .gantt-bar-fill{background:color-mix(in srgb,var(--bar) 40%,var(--mix))}.gantt-bar.is-blocked{border-color:var(--danger);border-style:dashed}.gantt-bar-label{position:relative;font-size:11.5px;font-weight:550;padding:0 8px;color:var(--text)}.gantt-outside-label{position:absolute;top:50%;transform:translateY(-50%);font-size:11.5px;color:var(--text-3);max-width:220px;pointer-events:none}.gantt-milestone{position:absolute;top:50%;transform:translate(-50%,-50%);color:var(--accent-ink);display:flex;align-items:center;gap:6px;white-space:nowrap}.gantt-milestone svg{fill:var(--accent-ink)}.gantt-ms-label{font-size:11.5px;font-weight:600;color:var(--text);background:var(--surface);padding:0 4px;border-radius:4px}.meetings{display:grid;grid-template-columns:260px minmax(0,1fr);gap:16px;align-items:start}.meeting-list{padding:14px;position:sticky;top:140px}.meeting-list ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:2px}.meeting-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:var(--radius-sm);text-align:left}.meeting-item:hover{background:var(--surface-2)}.meeting-item.is-on{background:var(--accent-soft)}.meeting-item-text{display:flex;flex-direction:column;min-width:0;font-size:13px}.meeting-dot{width:8px;height:8px;border-radius:50%;border:2px solid var(--border-strong);flex:none}.meeting-dot.is-next{border-color:var(--accent-ink);background:var(--accent-ink);box-shadow:0 0 0 3px var(--accent-soft)}.meeting-hint{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.meeting-report{padding:24px;display:flex;flex-direction:column;gap:18px}.report-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.report-title{font-size:22px;margin:2px 0 4px}.report-title-input{font-size:22px!important;font-weight:650;letter-spacing:-.02em;border-color:transparent!important;padding:2px 6px!important;margin:0 0 2px -7px}.report-title-input:hover{border-color:var(--border)!important}.report-progress{display:flex;flex-direction:column;gap:6px;max-width:420px}.report-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.report-section ul{list-style:none;padding:0;margin:0}.report-section-title{display:flex;align-items:center;gap:8px;font-size:13.5px;margin-bottom:6px;padding-bottom:6px;border-bottom:1px solid var(--border)}.tone-done svg{color:var(--s-done)}.tone-progress svg{color:var(--s-progress)}.tone-warn svg{color:var(--warn)}.tone-danger svg{color:var(--danger)}.tone-neutral svg{color:var(--text-3)}.report-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:7px 8px;border-radius:6px;font-size:13.5px}.report-item:hover:not(:disabled){background:var(--surface-2)}.report-item-text{flex:1;min-width:0}.notes-grid{display:grid;gap:14px;padding-top:18px;border-top:1px solid var(--border)}.notes-grid .field:first-child input{max-width:200px}.settings-page{max-width:860px;display:flex;flex-direction:column;gap:16px}.phase-editor{display:flex;flex-direction:column;gap:8px}.phase-row{display:grid;grid-template-columns:auto minmax(0,1fr) 150px 150px auto auto;gap:8px;align-items:center}.phase-move{display:flex;flex-direction:column}.danger-zone{border-color:color-mix(in srgb,var(--danger) 25%,var(--mix))}.client-list{display:flex;flex-direction:column;gap:14px}.client-card-head{display:flex;align-items:center;gap:10px}.client-card-head h2{font-size:17px;flex:1}.client-swatch{width:14px;height:14px;border-radius:4px;background:var(--accent-ink)}.client-cols{display:grid;grid-template-columns:1fr 1fr;gap:24px}.client-cols>div{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.client-project{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:7px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);font-weight:500}.client-project:hover{border-color:var(--border-strong)}.client-project-row{display:flex;align-items:center;gap:10px;width:100%}.client-project-row .client-project{flex:1;min-width:0}.team-only{margin-top:14px}.member-row{display:flex;align-items:center;gap:10px;width:100%}.member-text{display:flex;flex-direction:column;min-width:0;flex:1}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:13.5px}.table th{text-align:left;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);padding:8px 10px;border-bottom:1px solid var(--border)}.table td{padding:10px;border-bottom:1px solid var(--border);vertical-align:middle}.table tr:last-child td{border-bottom:0}.swatches{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.swatch{width:28px;height:28px;border-radius:8px;box-shadow:inset 0 0 0 1px #0000001a}.swatch.is-on{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--text)}.swatch-custom{width:36px;height:30px;padding:0;border:1px solid var(--border-strong);border-radius:8px;background:none;cursor:pointer}@media (max-width: 1100px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width: 900px){.shell{flex-direction:column}.topbar{display:flex;align-items:center;gap:10px;height:56px;padding:0 12px;background:var(--onyx);color:var(--onyx-text);position:sticky;top:0;z-index:30}.topbar-brand{display:flex;align-items:center;gap:8px;flex:1}.topbar .avatar{box-shadow:none}.sidebar{position:fixed;left:0;top:0;bottom:0;transform:translate(-100%);transition:transform .2s ease;width:272px}.nav-open .sidebar{transform:none}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:35}.nav-open .scrim{display:block}.page{padding:20px 16px 40px}.project-head{padding:16px 16px 0;top:56px}.project-head-row{flex-direction:column;gap:10px}.hero,.meetings{grid-template-columns:1fr}.meeting-list{position:static}.report-summary,.since-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.board{grid-template-columns:repeat(var(--cols, 4),82vw);grid-auto-columns:60vw;scroll-snap-type:x mandatory}.column,.board-add{scroll-snap-align:start}.gantt{max-height:none}.gantt-left{width:180px!important}.gantt-task-name{padding-left:14px}.gantt-task-name .avatar{display:none}.client-cols,.grid-3,.grid-2{grid-template-columns:1fr}.phase-row{grid-template-columns:auto minmax(0,1fr) auto}.phase-row input[type=date],.phase-row>.small{grid-column:2 / -1}.toolbar-note{margin-left:0}.search input{width:100%!important}.search{flex:1 1 100%}.login{grid-template-columns:1fr}.login-brand{display:none}.login-mobile-logo{display:flex;margin-bottom:8px}.callout{flex-direction:column}.callout .btn{margin-left:0}}@media (max-width: 520px){.stat-grid{grid-template-columns:1fr 1fr}.stat-value{font-size:20px}.props{grid-template-columns:80px 1fr}.date-pair{flex-direction:column;align-items:stretch}.date-pair .muted{display:none}}@media print{.sidebar,.topbar,.project-head .tabs,.project-actions,.meeting-list,.no-print,.toasts{display:none!important}body{background:#fff}.project-head{position:static;border:0}.meetings{display:block}.card{box-shadow:none;border:0;padding:0}textarea{border:0!important;resize:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}body{font-family:var(--font);font-size:14.5px;letter-spacing:-.005em}::selection{background:var(--brand);color:#f5f5f3}:focus-visible{outline-color:var(--brand-bright)}h1,h2,h3{font-weight:600;letter-spacing:-.035em}h1{letter-spacing:-.045em}.page-head h1{font-size:36px;line-height:1}.project-title h1{font-size:30px}.serif{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.01em}.serif-accent{color:var(--brand-bright)}.eyebrow{display:inline-flex;align-items:center;gap:9px;font:500 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);margin-bottom:12px}.eyebrow:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--brand-bright);box-shadow:0 0 10px var(--brand)}.section-label,.side-label,.gantt-corner,.table th,.stat-label,.portal-label{font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase}.stat-label{color:var(--text-3)}.count,.mono,.gantt-tick,.due,.project-card-meta{font-variant-numeric:tabular-nums}.btn{border-radius:999px;padding:0 16px;font-weight:600;letter-spacing:-.01em;background:transparent;border-color:var(--border-strong);box-shadow:none;transition:background .35s var(--ease),border-color .35s var(--ease),color .35s var(--ease),transform .1s}.btn:hover:not(:disabled){background:var(--surface-3);border-color:var(--text-3)}.btn-primary{background:var(--brand);border-color:var(--brand);color:#f5f5f3}.btn-primary:hover:not(:disabled){background:var(--brand-bright);border-color:var(--brand-bright)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-lg{height:46px}.segmented,.theme-switch,.segmented button,.theme-switch button{border-radius:999px}.badge{border-radius:999px;height:21px;padding:0 9px;font:500 10.5px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase}.badge.tiny{height:17px;font-size:9.5px}.phase-tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;border-radius:999px;padding:2px 8px}.card,.project-card,.task-card,.stat{box-shadow:none}.task-card{border-radius:12px}.task-card:hover,.project-card:hover{box-shadow:none;border-color:var(--border-strong)}.project-card:hover{transform:translateY(-2px)}.column{border:1px solid var(--border);background:var(--surface-2)}:root[data-theme=dark] .column{background:#101010}.modal,.drawer{border:1px solid var(--border)}.modal{border-radius:18px}input:not([type=checkbox]):not([type=range]):not([type=color]),select,textarea{background-color:var(--surface)}:root[data-theme=dark] input:not([type=checkbox]):not([type=range]):not([type=color]),:root[data-theme=dark] select,:root[data-theme=dark] textarea{background-color:var(--surface-2)}.big-number,.stat-value,.since-n{font-weight:600;letter-spacing:-.05em}.big-number{font-size:52px}.side-link.active{position:relative}.side-link.active:after{content:"";position:absolute;right:12px;top:50%;width:5px;height:5px;margin-top:-2.5px;border-radius:50%;background:var(--brand-bright);box-shadow:0 0 8px var(--brand)}.login-brand{background:radial-gradient(60% 55% at 70% 42%,rgba(140,21,29,.22),transparent 70%),radial-gradient(40% 40% at 20% 90%,rgba(140,21,29,.1),transparent 70%),var(--onyx)}.login-pitch h1{font-size:clamp(40px,4.6vw,64px);line-height:.95;letter-spacing:-.055em;font-weight:600}.login-pitch h1 .serif{font-size:1.06em;letter-spacing:-.02em}.login-form h2{font-size:26px;letter-spacing:-.04em}.login-foot{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase}.remember{gap:10px;width:fit-content}.remember input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;flex:none;width:18px;height:18px;margin:0;display:inline-grid;place-items:center;border-radius:6px;border:1px solid var(--border-strong);background:var(--surface-2);cursor:pointer;transition:background .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease)}.remember input[type=checkbox]:after{content:"";width:10px;height:10px;background:#f5f5f3;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12.5l5 5 10-11'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12.5l5 5 10-11'/%3E%3C/svg%3E") center / contain no-repeat;transform:scale(.4);opacity:0;transition:transform .35s var(--ease),opacity .2s}.remember:hover input[type=checkbox]{border-color:var(--text-3)}.remember input[type=checkbox]:checked{background:var(--brand);border-color:var(--brand);box-shadow:0 0 0 4px #8c151d29}.remember input[type=checkbox]:checked:after{transform:scale(1);opacity:1}.remember input[type=checkbox]:focus-visible{outline:2px solid var(--brand-bright);outline-offset:2px}input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.55;transition:opacity .2s}input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}:root[data-theme=dark] input[type=date]::-webkit-calendar-picker-indicator{filter:invert(1)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px;border:3px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background-color:var(--text-3)}::-webkit-scrollbar-track{background:transparent}.side-sub{padding-left:30px;height:30px;font-size:13px}.side-count{margin-left:auto;font:500 11px/1 var(--mono);color:var(--onyx-muted)}.folder-label{padding:0 0 10px}.folder-section{margin-bottom:28px}.folder-card{display:flex;align-items:center;gap:16px;max-width:520px;padding:16px 18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);transition:border-color .15s,transform .15s}.folder-card:hover{border-color:var(--brand);transform:translateY(-1px)}.folder-icon{display:grid;place-items:center;width:44px;height:44px;flex:none;border-radius:12px;background:color-mix(in srgb,var(--brand) 16%,transparent);color:var(--brand-bright)}.folder-body{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.folder-title{font-weight:600;font-size:16px}.folder-progress{display:flex;align-items:center;gap:10px;margin-top:4px}.folder-progress>:first-child{flex:1}.crumbs-link a,.crumbs a{color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--border-strong, var(--border))}.crumbs-link a:hover,.crumbs a:hover{color:var(--text)}.company-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:28px}.company-stat{padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.company-stat-value{font:500 22px/1.1 var(--mono);margin-bottom:4px}.year-group{margin-bottom:28px}.badge-current{background:color-mix(in srgb,var(--brand) 18%,transparent);color:var(--brand-bright)}.side-sub.active .side-count{margin-right:16px}.company-stats{grid-template-columns:repeat(5,minmax(0,1fr))}.quarter-strip{display:flex;flex-wrap:wrap;gap:8px 20px;margin-bottom:20px}.quarter-year{display:flex;align-items:center;gap:4px}.quarter-year-label{font:500 11px/1 var(--mono);letter-spacing:.1em;color:var(--text-3);margin-right:6px}.quarter-pill{position:relative;height:32px;min-width:44px;padding:0 12px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-2, var(--text));font:500 13px/1 var(--mono);cursor:pointer}.quarter-pill:hover{border-color:var(--brand)}.quarter-pill.is-active{background:var(--brand);border-color:var(--brand);color:#fff}.quarter-now{position:absolute;top:-2px;right:-2px;width:8px;height:8px;border-radius:50%;background:var(--brand-bright);box-shadow:0 0 0 2px var(--bg)}.quarter-pill.is-active .quarter-now{background:#fff}.card-flat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.add-goals{align-items:flex-start;text-align:left;border-style:dashed;cursor:pointer;font:inherit;color:var(--text)}.add-goals:before{display:none}.q-list{padding:6px}.q-months{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.q-month{display:flex;flex-direction:column;min-width:0}.q-month-head{display:flex;justify-content:space-between;align-items:baseline;padding:12px 14px;border-bottom:1px solid var(--border)}.q-month-body{padding:6px;max-height:520px;overflow-y:auto}.q-empty{padding:10px 8px}.q-row{display:flex;align-items:center;gap:10px;width:100%;padding:8px;border:0;border-radius:var(--radius-sm);background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}.q-row:hover{background:var(--surface-2, rgba(127, 127, 127, .08))}.q-row .status-dot{flex:none;width:8px;height:8px;border-radius:50%}.q-row-main{display:flex;flex-direction:column;flex:1;min-width:0;gap:2px}.q-row-title{font-size:13.5px}.q-row.is-done .q-row-title{color:var(--text-3);text-decoration:line-through}.q-row-project{display:flex;align-items:center;gap:6px}.q-row-project .side-dot{width:6px;height:6px;flex:none}@media (max-width: 900px){.q-months{grid-template-columns:minmax(0,1fr)}}@media (max-width: 640px){.company-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}input.is-invalid,textarea.is-invalid,select.is-invalid{border-color:var(--danger, #d64545)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--danger, #d64545) 18%,transparent)}input[type=date]{cursor:pointer}.field-error{margin-top:4px;font-size:12.5px;color:var(--danger, #d64545)}.char-count{font:500 11px/1 var(--mono);color:var(--text-3);text-align:right}.char-count.is-over{color:var(--danger, #d64545)}.card-slot{touch-action:manipulation}.card-slot.is-dragging{opacity:1;position:relative}.card-slot.is-dragging .task-card{visibility:hidden}.card-slot.is-dragging:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:10px;border:1.5px dashed var(--accent-line, var(--border-strong));background:var(--accent-soft, rgba(127, 127, 127, .08))}.task-card.is-overlay{cursor:grabbing;transform:rotate(-1.5deg) scale(1.02);box-shadow:0 18px 40px -12px #00000073,0 0 0 1px var(--accent-line, var(--border-strong))}.column.is-over{transition:border-color .15s,background .15s,box-shadow .15s;box-shadow:inset 0 0 0 1.5px var(--accent-line, var(--border-strong))}.is-dragging-board .column-body{min-height:80px}@media (prefers-reduced-motion: reduce){.task-card.is-overlay{transform:none}}.popover{position:fixed;z-index:300;background:var(--surface);border:1px solid var(--border-strong);border-radius:12px;box-shadow:var(--shadow-lg);animation:pop-in .14s cubic-bezier(.2,0,0,1);transform-origin:top left}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}}.dp-field{position:relative;display:flex;align-items:center;width:100%;min-width:0}.dp-field input{padding-right:34px!important;font-variant-numeric:tabular-nums}.dp-field.is-invalid input{border-color:var(--danger)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 18%,transparent)}.dp-icon{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:28px;height:28px;border:0;border-radius:6px;background:none;color:var(--text-3);cursor:pointer}.dp-icon:hover{color:var(--text);background:var(--surface-3)}.dp-cal{width:292px;padding:10px;-webkit-user-select:none;user-select:none}.dp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.dp-title{display:inline-flex;align-items:center;gap:6px;border:0;background:none;color:var(--text);font:600 14px/1 inherit;font-family:inherit;padding:7px 10px;border-radius:8px;cursor:pointer}.dp-title:hover{background:var(--surface-3)}.dp-week,.dp-grid{display:grid;grid-template-columns:repeat(7,1fr)}.dp-wd{text-align:center;font:500 10.5px/28px var(--mono);letter-spacing:.06em;color:var(--text-3)}.dp-day{position:relative;height:36px;border:0;background:none;color:var(--text);font:inherit;font-size:13px;font-variant-numeric:tabular-nums;cursor:pointer;border-radius:9px;transition:background .1s,color .1s}.dp-day:hover:not(:disabled):not(.is-selected){background:var(--surface-3)}.dp-day.is-out{color:var(--text-3);opacity:.55}.dp-day:disabled{opacity:.25;cursor:not-allowed}.dp-day.is-range{background:color-mix(in srgb,var(--brand) 14%,transparent);border-radius:0}.dp-day.is-r0{border-radius:9px 0 0 9px}.dp-day.is-r1{border-radius:0 9px 9px 0}.dp-day.is-r0.is-r1{border-radius:9px}.dp-day.is-edge{background:color-mix(in srgb,var(--brand) 30%,transparent)}.dp-day.is-today:after{content:"";position:absolute;left:50%;bottom:5px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--brand-bright)}.dp-day.is-selected{background:var(--brand)!important;color:#fff!important;font-weight:600;border-radius:9px}.dp-day.is-selected.is-today:after{background:#fff}.dp-day:focus-visible{outline:2px solid var(--brand-bright);outline-offset:-2px}.dp-months{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:4px 0}.dp-month{height:44px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:9px;font:inherit;font-size:13px;cursor:pointer}.dp-month:hover:not(:disabled){border-color:var(--brand)}.dp-month.is-current{border-color:var(--brand);color:var(--brand-bright)}.dp-month.is-selected{background:var(--brand);border-color:var(--brand);color:#fff}.dp-month:disabled{opacity:.3}.dp-foot{display:flex;gap:4px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.dp-clear{margin-left:auto;color:var(--text-3)}.sel-trigger{display:flex;align-items:center;gap:8px;width:100%;min-height:34px;padding:6px 10px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:var(--radius-sm);font:inherit;text-align:left;cursor:pointer;transition:border-color .12s,box-shadow .12s,background .12s}.sel-trigger:hover:not(:disabled){border-color:color-mix(in srgb,var(--text) 30%,var(--border-strong))}.sel-trigger:focus-visible,.sel-trigger.is-open{outline:none;border-color:var(--accent-ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-ink) 16%,transparent)}.sel-trigger:disabled{opacity:.55;cursor:not-allowed}.sel-trigger.is-invalid{border-color:var(--danger)}.sel-trigger.sel-sm{width:auto;min-height:30px;padding:4px 8px;font-size:12.5px}.sel-value{flex:1;min-width:0}.sel-value.is-placeholder{color:var(--text-3)}.sel-chevron{flex:none;color:var(--text-3);transition:transform .15s}.sel-trigger.is-open .sel-chevron{transform:rotate(180deg)}.sel-icon{display:inline-flex;flex:none;align-items:center}.sel-pop{max-width:min(360px,calc(100vw - 16px));padding:4px}.sel-search{display:flex;align-items:center;gap:6px;padding:4px 8px 6px;margin-bottom:4px;border-bottom:1px solid var(--border);color:var(--text-3)}.sel-search input{border:0!important;box-shadow:none!important;padding:4px 0!important;min-height:28px!important;background:none!important}.sel-list{list-style:none;margin:0;padding:0;max-height:300px;overflow-y:auto;outline:none}.sel-group{padding:8px 10px 4px;font:500 10.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.sel-option{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:8px;font-size:13.5px;cursor:pointer}.sel-option.is-active{background:var(--surface-3)}.sel-option.is-selected{font-weight:600}.sel-option.is-disabled{opacity:.4;cursor:not-allowed}.sel-label{display:flex;flex-direction:column;flex:1;min-width:0}.sel-hint{font-size:11.5px;font-weight:400;color:var(--text-3)}.sel-check{flex:none;color:var(--brand-bright)}.sel-empty{padding:10px;color:var(--text-3);font-size:13px}@media (prefers-reduced-motion: reduce){.popover{animation:none}}.toolbar .sel-trigger.toolbar-select{width:auto;min-width:150px;max-width:260px}.status-menu-moveto{display:flex;flex-direction:column;gap:6px}.toasts{position:fixed;right:20px;bottom:20px;z-index:400;display:flex;flex-direction:column;align-items:flex-end;gap:10px;pointer-events:none}.toast{position:relative;pointer-events:auto;display:flex;align-items:flex-start;gap:10px;width:min(380px,calc(100vw - 32px));max-width:none;padding:12px 10px 14px 14px;overflow:hidden;background:var(--onyx);color:#f5f5f3;border:1px solid rgba(255,255,255,.08);border-radius:12px;box-shadow:var(--shadow-lg);font-size:13.5px;line-height:1.4;animation:toast-in .26s cubic-bezier(.2,.9,.3,1.2)}.toast.is-leaving{animation:toast-out .18s ease forwards}@keyframes toast-in{0%{opacity:0;transform:translate(24px) scale(.96)}}@keyframes toast-out{to{opacity:0;transform:translate(24px) scale(.96)}}.toast-icon{display:grid;place-items:center;flex:none;width:26px;height:26px;margin-top:-2px;border-radius:8px;background:#ffffff14}.toast-success .toast-icon{color:#5fd39a;background:#5fd39a24}.toast-error{background:#2a0a0d;border-color:#ff8a8a40}.toast-error .toast-icon{color:#ff8a8a;background:#ff8a8a24}.toast-warning .toast-icon{color:#f6c453;background:#f6c45324}.toast-info .toast-icon{color:#ff6b74;background:#a81b2440}.toast-text{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;padding-top:2px}.toast-title{font-weight:600}.toast-action{flex:none;align-self:center;border:1px solid rgba(255,255,255,.2);background:#ffffff0f;color:#fff;font:inherit;font-size:12.5px;font-weight:600;padding:5px 10px;border-radius:7px;cursor:pointer}.toast-action:hover{background:#ffffff24}.toast-close{flex:none;display:grid;place-items:center;width:24px;height:24px;border:0;border-radius:6px;background:none;color:#ffffff80;cursor:pointer}.toast-close:hover{color:#fff;background:#ffffff1a}.toast-timer{position:absolute;left:0;bottom:0;height:2.5px;width:100%;transform-origin:left;background:currentColor;opacity:.35;animation:toast-timer linear forwards}.toast-success .toast-timer{color:#5fd39a;opacity:.6}.toast-error .toast-timer{color:#ff8a8a;opacity:.6}.toast-info .toast-timer{color:#ff6b74;opacity:.7}.toast:hover .toast-timer{animation-play-state:paused}@keyframes toast-timer{to{transform:scaleX(0)}}@media (max-width: 640px){.toasts{left:16px;right:16px;bottom:16px;align-items:stretch}.toast{width:auto}}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:350;display:grid;place-items:center;padding:16px;background:#0808088c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade-in .15s ease}@keyframes fade-in{0%{opacity:0}}.dialog{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;width:min(440px,100%);padding:22px 22px 18px;background:var(--surface);border:1px solid var(--border-strong);border-radius:16px;box-shadow:var(--shadow-lg);animation:dialog-in .22s cubic-bezier(.2,.9,.3,1.15)}@keyframes dialog-in{0%{opacity:0;transform:translateY(10px) scale(.97)}}.dialog-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--surface-3);color:var(--text-2, var(--text))}.dialog-danger .dialog-icon{background:color-mix(in srgb,var(--danger) 14%,transparent);color:var(--danger)}.dialog-default .dialog-icon,.dialog-primary .dialog-icon{background:color-mix(in srgb,var(--brand) 14%,transparent);color:var(--brand-bright)}.dialog-body h2{margin:2px 0 6px;font-size:17px}.dialog-msg{color:var(--text-2, var(--text-3));font-size:13.5px;line-height:1.5}.dialog-require{display:flex;flex-direction:column;gap:6px;margin-top:14px}.dialog-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:16px}@media (prefers-reduced-motion: reduce){.toast,.toast.is-leaving,.dialog,.dialog-overlay{animation:none}}.done-burst{position:fixed;z-index:250;width:0;height:0;pointer-events:none}.done-burst i{position:absolute;left:-4px;top:-4px;width:8px;height:8px;border-radius:2px;background:var(--brand-bright);animation:burst .75s cubic-bezier(.1,.8,.3,1) forwards}.done-burst i:nth-child(3n){background:#5fd39a;border-radius:50%}.done-burst i:nth-child(3n+1){background:var(--text);width:5px;height:5px}.done-burst b{position:absolute;left:-18px;top:-18px;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#2f9e6a;color:#fff;animation:burst-check .8s cubic-bezier(.2,.9,.3,1.4) forwards}@keyframes burst{0%{transform:rotate(var(--a)) translateY(0) scale(1);opacity:1}to{transform:rotate(var(--a)) translateY(calc(var(--d) * -1)) scale(.4);opacity:0}}@keyframes burst-check{0%{transform:scale(.2);opacity:0}35%{transform:scale(1.1);opacity:1}75%{transform:scale(1);opacity:1}to{transform:scale(.9);opacity:0}}kbd{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:5px;font:500 10.5px/1 var(--mono);color:var(--text-3);background:var(--surface-2)}.kbd-inline{margin-left:4px;border-color:#ffffff4d;background:#ffffff1f;color:inherit;opacity:.85}.side-search{display:flex;align-items:center;gap:9px;width:calc(100% - 4px);margin:0 2px 10px;height:36px;padding:0 8px 0 10px;border:1px solid var(--onyx-3, #2a2a2a);border-radius:var(--radius-sm);background:var(--onyx-2, #1a1a1a);color:#a9a9b0;font:inherit;font-size:13px;cursor:pointer;transition:border-color .12s,color .12s}.side-search:hover{color:#fff;border-color:#3a3a3a}.side-search kbd{margin-left:auto;background:transparent;border-color:#3a3a3a;color:#8a8a90}.cmdk-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:360;display:flex;justify-content:center;align-items:flex-start;padding:12vh 16px 16px;background:#08080880;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade-in .12s ease}.cmdk{width:min(620px,100%);overflow:hidden;background:var(--surface);border:1px solid var(--border-strong);border-radius:16px;box-shadow:var(--shadow-lg);animation:dialog-in .18s cubic-bezier(.2,.9,.3,1.1)}.cmdk-input{display:flex;align-items:center;gap:10px;padding:0 14px;border-bottom:1px solid var(--border);color:var(--text-3)}.cmdk-input input{flex:1;border:0!important;box-shadow:none!important;background:none!important;min-height:54px!important;font-size:15.5px;padding:0!important;color:var(--text)}.cmdk-list{list-style:none;margin:0;padding:6px;max-height:min(420px,55vh);overflow-y:auto}.cmdk-group{padding:10px 10px 4px;font:500 10.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.cmdk-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:9px;font-size:14px;cursor:pointer;color:var(--text)}.cmdk-item>svg:first-child{flex:none;color:var(--text-3)}.cmdk-item.is-active{background:var(--surface-3)}.cmdk-item.is-active>svg:first-child{color:var(--brand-bright)}.cmdk-hint{margin-left:auto;max-width:45%;font-size:12px;color:var(--text-3)}.cmdk-go{flex:none;color:var(--text-3)}.cmdk-empty{padding:18px 12px;color:var(--text-3);font-size:13.5px}.cmdk-foot{display:flex;gap:16px;padding:9px 14px;border-top:1px solid var(--border);font-size:11.5px;color:var(--text-3)}.cmdk-foot kbd{margin-right:3px}.cmdk-foot-right{margin-left:auto}@media (max-width: 640px){.cmdk-foot{display:none}}.skel{display:block;background:linear-gradient(90deg,var(--surface-3) 0%,color-mix(in srgb,var(--surface-3) 55%,var(--surface)) 50%,var(--surface-3) 100%);background-size:200% 100%;animation:skel 1.3s ease-in-out infinite}@keyframes skel{0%{background-position:100% 0}to{background-position:-100% 0}}.skel-card{display:flex;flex-direction:column;gap:10px;padding:18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.skel-board{display:grid;grid-template-columns:repeat(4,minmax(240px,1fr));gap:12px;overflow:hidden}.skel-col{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius)}.skel-task{display:flex;flex-direction:column;gap:9px;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:10px}.progress-fill{transition:width .9s cubic-bezier(.2,.8,.2,1)}.countup{font-variant-numeric:tabular-nums}@media (prefers-reduced-motion: reduce){.skel{animation:none}.progress-fill{transition:none}}.card-slot{position:relative}.card-check{position:absolute;z-index:2;top:8px;right:8px;display:grid;place-items:center;width:20px;height:20px;padding:0;border:1.5px solid var(--border-strong);border-radius:6px;background:var(--surface);color:transparent;opacity:0;cursor:pointer;transition:opacity .12s,background .12s,border-color .12s}.card-slot:hover .card-check,.card-slot:focus-visible .card-check,.board-page.is-selecting .card-check,.card-check.is-on{opacity:1}.card-check:hover{border-color:var(--brand)}.card-check.is-on{background:var(--brand);border-color:var(--brand);color:#fff}.card-slot:hover .task-card-flags,.board-page.is-selecting .task-card-flags,.card-slot.is-selected .task-card-flags{padding-right:26px}.card-slot.is-selected .task-card{border-color:var(--brand);box-shadow:0 0 0 1.5px var(--brand),var(--shadow-sm);background:color-mix(in srgb,var(--brand) 6%,var(--surface))}.task-card-title-input{width:100%;font:inherit;font-weight:600;font-size:13.5px;line-height:1.35;padding:4px 6px!important;min-height:0!important;resize:none}.due-btn{display:inline-flex;align-items:center;gap:4px;margin:-3px -6px;padding:3px 6px;border:0;border-radius:6px;background:none;font:inherit;color:inherit;cursor:pointer}.due-btn:hover,.due-btn.is-open{background:var(--surface-3)}.due-btn .muted{opacity:0;transition:opacity .12s}.card-slot:hover .due-btn .muted,.due-btn:focus-visible .muted{opacity:1}.overlay-count{position:absolute;top:-9px;right:-9px;display:grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border-radius:12px;background:var(--brand);color:#fff;font:600 12px/1 var(--mono);box-shadow:0 4px 10px #0000004d}.task-card.is-overlay{position:relative}.bulk-bar{position:fixed;z-index:150;left:50%;bottom:22px;transform:translate(-50%);display:flex;align-items:center;flex-wrap:nowrap;white-space:nowrap;gap:6px;max-width:calc(100vw - 32px);padding:8px 8px 8px 16px;background:var(--surface);border:1px solid var(--border-strong);border-radius:14px;box-shadow:var(--shadow-lg);animation:bulk-in .22s cubic-bezier(.2,.9,.3,1.2)}@keyframes bulk-in{0%{opacity:0;transform:translate(-50%,16px)}}.bulk-count{font-size:13px;margin-right:2px}.bulk-count strong{display:inline-grid;place-items:center;min-width:22px;height:22px;margin-right:4px;padding:0 6px;border-radius:11px;background:var(--brand);color:#fff;font:600 12px/1 var(--mono)}.bulk-sep{width:1px;height:22px;margin:0 4px;background:var(--border)}.bulk-close{margin-left:2px}@media (max-width: 900px){.bulk-bar{flex-wrap:wrap}}@media (max-width: 640px){.bulk-bar{left:16px;right:16px;transform:none;bottom:16px}@keyframes bulk-in{0%{opacity:0}}}.gantt-bar.is-editable,.gantt-milestone.is-editable{cursor:grab;touch-action:none}.is-dragging-bar,.is-dragging-bar *{cursor:grabbing!important;-webkit-user-select:none;user-select:none}.gantt-bar.is-dragging,.gantt-milestone.is-dragging{z-index:5;box-shadow:0 0 0 2px var(--bar, var(--brand)),0 8px 18px -6px #00000073}.gantt-milestone.is-dragging{box-shadow:none;filter:drop-shadow(0 4px 6px rgba(0,0,0,.4))}.gantt-handle{position:absolute;top:0;bottom:0;width:8px;z-index:2;cursor:ew-resize!important}.gantt-handle.is-start{left:0}.gantt-handle.is-end{right:0}.gantt-handle:after{content:"";position:absolute;top:25%;bottom:25%;left:3px;width:2px;border-radius:2px;background:color-mix(in srgb,var(--bar) 80%,var(--text));opacity:0;transition:opacity .12s}.gantt-bar:hover .gantt-handle:after,.gantt-bar.is-dragging .gantt-handle:after{opacity:.9}.gantt-track.can-draw{cursor:crosshair}.gantt-track.can-draw:hover{background:repeating-linear-gradient(90deg,transparent 0 10px,color-mix(in srgb,var(--brand) 6%,transparent) 10px 20px)}.gantt-drag-tip{position:absolute;z-index:6;top:-24px;transform:translate(-50%);padding:4px 8px;border-radius:6px;background:var(--onyx);color:#fff;font:500 11.5px/1.2 var(--mono);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow)}.presence-stack{display:flex;align-items:center;gap:8px;margin-right:4px}.presence-live{display:inline-flex;align-items:center;gap:6px;font:500 10.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-3)}.presence-dot{width:7px;height:7px;border-radius:50%;background:#2fbf71;box-shadow:0 0 #2fbf7199;animation:live-pulse 1.8s ease-out infinite;flex:none}@keyframes live-pulse{70%{box-shadow:0 0 0 7px #2fbf7100}to{box-shadow:0 0 #2fbf7100}}.presence-avatars{display:flex}.presence-avatar{margin-left:-8px;border-radius:50%;box-shadow:0 0 0 2px var(--bg, var(--surface));animation:pop-in .25s cubic-bezier(.2,.9,.3,1.3)}.presence-avatar:first-child{margin-left:0}.presence-more{display:grid;place-items:center;width:28px;height:28px;margin-left:-8px;border-radius:50%;background:var(--surface-3);font:600 11px/1 var(--mono);box-shadow:0 0 0 2px var(--bg, var(--surface))}.viewing-bar{display:flex;align-items:center;gap:8px;margin:0 20px;padding:7px 12px;border-radius:10px;background:color-mix(in srgb,#2fbf71 10%,var(--surface-2));border:1px solid color-mix(in srgb,#2fbf71 30%,transparent);font-size:12.5px}.viewing-bar .presence-dot{margin-left:auto}.viewing-avatars{display:flex}.viewing-avatars>*+*{margin-left:-6px}.card-slot.is-remote .task-card{border-color:#2fbf71;box-shadow:0 0 0 1.5px #2fbf71,var(--shadow-sm);opacity:.75}.remote-badge{position:absolute;z-index:3;top:-9px;left:10px;display:inline-flex;align-items:center;gap:5px;padding:2px 8px 2px 2px;border-radius:999px;background:#2fbf71;color:#fff;font-size:11px;font-weight:600;box-shadow:var(--shadow-sm);animation:pop-in .2s ease}.remote-ghost{display:flex;align-items:center;gap:8px;padding:12px;border:1.5px dashed #2fbf71;border-radius:10px;background:color-mix(in srgb,#2fbf71 8%,transparent);font-size:12.5px;color:var(--text-2, var(--text));animation:pop-in .2s ease}.card-slot.is-flash .task-card{animation:card-flash 1.8s ease}@keyframes card-flash{0%,30%{box-shadow:0 0 0 2px #2fbf71,0 0 22px -4px #2fbf71b3;border-color:#2fbf71}}@media (prefers-reduced-motion: reduce){.presence-dot,.card-slot.is-flash .task-card{animation:none}}.side-tools{display:flex;align-items:center;gap:6px;margin:0 2px 10px}.side-tools .side-search{flex:1;margin:0;width:auto}.bell{position:relative;display:grid;place-items:center;flex:none;width:36px;height:36px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-3);cursor:pointer;transition:color .12s,border-color .12s}.bell.on-dark{border-color:var(--onyx-3, #2a2a2a);background:var(--onyx-2, #1a1a1a);color:#a9a9b0}.bell:hover,.bell.is-open{color:#fff;border-color:#3a3a3a}.topbar .bell{width:34px;height:34px;margin-left:auto;margin-right:8px}.bell-count{position:absolute;top:-6px;right:-6px;display:grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--brand-bright);color:#fff;font:600 10.5px/1 var(--mono);box-shadow:0 0 0 2px var(--onyx);animation:pop-in .3s cubic-bezier(.2,.9,.3,1.6)}.bell-count{transform-origin:center}.notif-pop{width:min(400px,calc(100vw - 16px));padding:0;overflow:hidden}.notif-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border)}.notif-head strong{font-size:14px}.notif-head .link-btn{margin-left:auto}.segmented.sm button{padding:3px 9px;font-size:11.5px}.notif-list{max-height:min(480px,70vh);overflow-y:auto;padding:4px}.notif-group{padding:10px 10px 4px;font:500 10.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.notif-item{position:relative;display:flex;align-items:flex-start;gap:11px;width:100%;padding:10px;border:0;border-radius:10px;background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}.notif-item:hover{background:var(--surface-3)}.notif-item.is-unread{background:color-mix(in srgb,var(--brand) 6%,transparent)}.notif-item.is-unread:hover{background:color-mix(in srgb,var(--brand) 11%,transparent)}.notif-icon{position:relative;flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--surface-3);color:var(--text-3)}.notif-icon.kind-overdue{background:color-mix(in srgb,var(--danger) 15%,transparent);color:var(--danger)}.notif-kind{position:absolute;right:-3px;bottom:-3px;display:grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--brand);color:#fff;box-shadow:0 0 0 2px var(--surface)}.kind-assigned .notif-kind{background:#4f7cff}.kind-overdue .notif-kind{background:var(--danger)}.notif-body{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.notif-text{font-size:13px;line-height:1.4}.notif-quote{font-size:12.5px;color:var(--text-2, var(--text-3));padding-left:8px;border-left:2px solid var(--border-strong)}.notif-meta{font-size:11.5px;color:var(--text-3)}.notif-dot{flex:none;width:8px;height:8px;margin-top:6px;border-radius:50%;background:var(--brand-bright)}.notif-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:30px 20px;color:var(--text-3);font-size:13px;text-align:center}.tour{position:fixed;top:0;right:0;bottom:0;left:0;z-index:380}.tour-block{position:absolute;top:0;right:0;bottom:0;left:0}.tour-dim{position:absolute;top:0;right:0;bottom:0;left:0;background:#0808089e;animation:fade-in .2s ease}.tour-spot{position:fixed;border-radius:12px;box-shadow:0 0 0 9999px #0808089e,0 0 0 2px var(--brand-bright),0 0 24px 4px color-mix(in srgb,var(--brand) 45%,transparent);transition:top .3s cubic-bezier(.2,.8,.2,1),left .3s cubic-bezier(.2,.8,.2,1),width .3s cubic-bezier(.2,.8,.2,1),height .3s cubic-bezier(.2,.8,.2,1);pointer-events:none}.tour-card{position:fixed;width:min(360px,calc(100vw - 24px));padding:18px 18px 14px;background:var(--surface);border:1px solid var(--border-strong);border-radius:14px;box-shadow:var(--shadow-lg);animation:dialog-in .25s cubic-bezier(.2,.9,.3,1.15)}.tour-card.is-centered{width:min(420px,calc(100vw - 24px));padding:24px 22px 16px}.tour-icon{display:grid;place-items:center;width:40px;height:40px;margin-bottom:12px;border-radius:12px;background:color-mix(in srgb,var(--brand) 16%,transparent);color:var(--brand-bright)}.tour-step{font:500 10.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);margin-bottom:8px}.tour-card h2{margin:0 0 6px;font-size:17px}.tour-card p{margin:0;font-size:13.5px;line-height:1.55;color:var(--text-2, var(--text-3))}.tour-foot{display:flex;align-items:center;gap:6px;margin-top:16px}.tour-dots{display:flex;gap:4px;margin-right:auto}.tour-dots span{width:6px;height:6px;border-radius:3px;background:var(--border-strong);transition:width .2s,background .2s}.tour-dots span.is-past{background:color-mix(in srgb,var(--brand) 45%,var(--border-strong))}.tour-dots span.is-on{width:16px;background:var(--brand-bright)}@media (prefers-reduced-motion: reduce){.tour-spot{transition:none}}.card-slot{max-height:640px}.card-slot.is-gathered{max-height:0;margin-top:-8px;opacity:0;overflow:hidden;pointer-events:none;transform:scale(.92)!important}.card-slot.is-dragging.is-group:after{content:attr(data-count);display:grid;place-items:end center;padding-bottom:8px;font:600 11.5px/1 var(--mono);letter-spacing:.04em;color:var(--accent-ink, var(--brand-bright))}.card-slot.is-dragging.is-group{padding-bottom:22px}.drag-stack{position:relative;width:280px}.drag-stack .task-card.is-overlay{transform:none;width:100%}.drag-stack-top{position:relative;z-index:4;transform:rotate(-1.5deg)}.drag-stack-top .task-card{box-shadow:0 18px 40px -12px #00000080,0 0 0 1.5px var(--brand)!important}.drag-stack-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:calc(4 - var(--i));overflow:hidden;border-radius:10px;transform:translate(calc(var(--i) * 12px),calc(var(--i) * 9px)) rotate(calc(var(--i) * 3.5deg - 1deg));opacity:calc(1 - var(--i) * .12);animation:stack-in .28s cubic-bezier(.2,.9,.3,1.2) both;animation-delay:calc(var(--i) * 40ms)}.drag-stack-layer .task-card{height:100%;border-color:color-mix(in srgb,var(--brand) 55%,var(--border-strong))!important;box-shadow:0 10px 24px -10px #0009!important}.drag-stack-layer .task-card>*{opacity:.55}@keyframes stack-in{0%{transform:translate(0) rotate(-1.5deg);opacity:0}}.drag-stack .overlay-count{z-index:6;animation:pop-in .3s cubic-bezier(.2,.9,.3,1.6)}.drag-stack-label{position:absolute;z-index:6;left:0;bottom:-46px;display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--brand);color:#fff;font-size:11.5px;font-weight:600;white-space:nowrap;box-shadow:var(--shadow)}.card-slot.is-landed .task-card{animation:landed .5s cubic-bezier(.2,.9,.3,1.3)}@keyframes landed{0%{transform:translateY(-14px) scale(.95);opacity:0}}@media (prefers-reduced-motion: reduce){.drag-stack-layer,.card-slot.is-landed .task-card{animation:none}}
