@import "https://fonts.googleapis.com/css2?family=Mulish:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400&family=IBM+Plex+Mono:wght@400;500;600&display=swap";@font-face{font-family:Avenir Next LT Pro;src:url(/fonts/Avenir_Next_LT_Pro_Demi.otf)format("opentype");font-weight:600;font-style:normal;font-display:swap}:root{--rocoto-red:#fc4b37;--rocoto-red-hover:#eb3a26;--rocoto-red-press:#c82e1d;--rocoto-red-tint:#ffe7e3;--rocoto-red-tint-2:#fff3f1;--rocoto-black:#000;--rocoto-rich-black:#0e0f10;--gray-0:#fff;--gray-50:#f6f6f7;--gray-100:#eaeaea;--gray-200:#d6d7d8;--gray-300:#b8babc;--gray-400:#909295;--gray-500:#6b6e71;--gray-600:#444648;--gray-700:#34363a;--gray-800:#292b2e;--gray-900:#1a1b1d;--gray-950:#0e0f10;--gray-1000:#000;--fg-1:#0e0f10;--fg-2:#444648;--fg-3:#6b6e71;--fg-inverse:#fff;--fg-accent:var(--rocoto-red);--bg-1:#fff;--bg-2:#f6f6f7;--bg-3:#eaeaea;--bg-inverse:#0e0f10;--border-1:#e2e2e3;--border-2:#d6d7d8;--border-strong:#b8babc;--status-online:#1f9d57;--status-online-tint:#e4f4eb;--status-warning:#e8a317;--status-warning-tint:#fbf0d6;--status-danger:#d92d20;--status-danger-tint:#fce9e7;--status-info:#2d72d2;--status-info-tint:#e4edfa;--font-display:"Avenir Next LT Pro", "Mulish", system-ui, sans-serif;--font-body:"Mulish", "Avenir Next LT Pro", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--text-xs:12px;--text-sm:14px;--text-base:16px;--text-md:18px;--text-lg:22px;--text-xl:28px;--text-2xl:36px;--text-3xl:46px;--text-4xl:58px;--text-5xl:74px;--leading-tight:1.08;--leading-snug:1.25;--leading-normal:1.5;--tracking-display:-.02em;--tracking-tight:-.01em;--tracking-normal:0;--tracking-wide:.08em;--radius-xs:3px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-pill:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--shadow-sm:0 1px 2px #0e0f100f, 0 1px 1px #0e0f100a;--shadow-md:0 4px 12px #0e0f1014, 0 1px 3px #0e0f100d;--shadow-lg:0 12px 32px #0e0f101f, 0 4px 8px #0e0f100f;--shadow-focus:0 0 0 3px #fc4b3747}.rocoto-type{color:var(--fg-1);font-family:var(--font-body)}.rocoto-type h1,.h1{font-family:var(--font-display);font-weight:600;font-size:var(--text-4xl);line-height:var(--leading-tight);letter-spacing:var(--tracking-display);color:var(--fg-1)}.rocoto-type h2,.h2{font-family:var(--font-display);font-weight:600;font-size:var(--text-2xl);line-height:var(--leading-snug);letter-spacing:var(--tracking-tight)}.rocoto-type h3,.h3{font-family:var(--font-display);font-weight:600;font-size:var(--text-xl);line-height:var(--leading-snug);letter-spacing:var(--tracking-tight)}.rocoto-type h4,.h4{font-family:var(--font-display);font-weight:600;font-size:var(--text-lg);line-height:var(--leading-snug)}.lead{font-family:var(--font-body);font-weight:400;font-size:var(--text-md);line-height:var(--leading-normal);color:var(--fg-2)}.rocoto-type p,.body{font-family:var(--font-body);font-weight:400;font-size:var(--text-base);line-height:var(--leading-normal);color:var(--fg-2)}.small{font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--fg-3)}.eyebrow{font-family:var(--font-display);font-weight:600;font-size:var(--text-xs);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--rocoto-red)}.mono,code,.spec{font-family:var(--font-mono);font-weight:500;font-size:var(--text-sm);letter-spacing:0;color:var(--fg-1)}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-body);color:var(--fg-1);background:var(--bg-1);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.45}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}button:disabled{cursor:default}input,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,h4,h5{font-family:var(--font-display);letter-spacing:var(--tracking-tight);margin:0;font-weight:600}h1{letter-spacing:var(--tracking-display);font-size:30px}h2{font-size:20px}h3{font-size:16px}kbd{font-family:var(--font-mono);color:var(--fg-3);border:1px solid var(--border-2);background:var(--bg-1);border-radius:4px;padding:0 5px;font-size:11px}:focus-visible{box-shadow:var(--shadow-focus);border-radius:6px;outline:none}.muted{color:var(--fg-3)}.small{font-size:12px}.spacer{flex:1}.pad{padding:8px 12px}.ellip{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.dot{border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.badge{border-radius:var(--radius-pill);background:var(--bg-3);min-width:18px;height:18px;color:var(--fg-2);justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:700;display:inline-flex}.link{color:var(--fg-2);text-decoration:underline;-webkit-text-decoration-color:var(--border-2);text-decoration-color:var(--border-2);text-underline-offset:2px}.link:hover{color:var(--fg-1);text-decoration-color:currentColor}.eyebrow-sm{font-family:var(--font-display);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--fg-3);font-size:11px;font-weight:600}.is-done{color:var(--fg-3);text-decoration:line-through}.overdue{color:var(--status-danger)!important}.notice{border-radius:var(--radius-sm);background:var(--status-warning-tint);color:#6b4a00;align-items:center;gap:8px;margin:8px 0;padding:8px 12px;font-size:13px;display:flex}.milestone-icon{color:var(--rocoto-red);flex:none}.btn{border-radius:var(--radius-sm);border:1px solid var(--border-2);background:var(--bg-1);white-space:nowrap;align-items:center;gap:6px;height:34px;padding:0 14px;font-size:13px;font-weight:600;transition:background .15s,border-color .15s,box-shadow .15s;display:inline-flex}.btn:hover:not(:disabled){background:var(--bg-2);border-color:var(--border-strong)}.btn:disabled{opacity:.4}.btn-primary{background:var(--rocoto-red);border-color:var(--rocoto-red);color:#fff}.btn-primary:hover:not(:disabled){background:var(--rocoto-red-hover);border-color:var(--rocoto-red-hover)}.btn-primary:active:not(:disabled){background:var(--rocoto-red-press)}.btn-danger{background:var(--status-danger);border-color:var(--status-danger);color:#fff}.btn-danger:hover:not(:disabled){background:#b42318;border-color:#b42318}.btn-ghost{color:var(--fg-2);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--bg-2);color:var(--fg-1);border-color:#0000}.btn.danger{color:var(--status-danger)}.btn-sm{height:28px;padding:0 10px;font-size:12px}.icon-btn{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--fg-3);flex:none;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.icon-btn:hover{background:var(--bg-3);color:var(--fg-1)}.chip{border-radius:var(--radius-pill);border:1px solid var(--border-2);height:30px;color:var(--fg-2);white-space:nowrap;align-items:center;gap:6px;padding:0 11px;font-size:13px;display:inline-flex}.chip:hover{border-color:var(--border-strong);color:var(--fg-1)}.chip.on{background:var(--rocoto-red-tint);color:var(--rocoto-red-press);border-color:#ffc4bb}.chip-check{color:var(--fg-2);cursor:pointer;align-items:center;gap:6px;font-size:13px;display:inline-flex}.segs,.gantt-zoom,.board-opts{align-items:center;gap:4px;display:inline-flex}.seg{border-radius:var(--radius-sm);height:28px;color:var(--fg-2);padding:0 10px;font-size:13px}.seg:hover{background:var(--bg-3)}.seg.on{background:var(--gray-800);color:#fff}.input,.select{border:1px solid var(--border-2);border-radius:var(--radius-sm);background:var(--bg-1);width:100%;height:36px;padding:0 10px}textarea.input{resize:vertical;height:auto;padding:8px 10px}.input:focus,.select:focus,textarea:focus{border-color:var(--rocoto-red);box-shadow:var(--shadow-focus);outline:none}.select-sm{width:auto;height:30px;font-size:13px}.field{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.field>span:first-child{font-size:13px;font-weight:600}.swatches{gap:8px;display:flex}.swatch{border:2px solid #0000;border-radius:50%;width:18px;height:18px;box-shadow:0 0 0 1px #0000000f}.swatch.lg{width:26px;height:26px}.swatch.on{box-shadow:0 0 0 2px var(--fg-1);border-color:#fff}.avatar{color:#fff;font-weight:700;font-family:var(--font-body);letter-spacing:0;-webkit-user-select:none;user-select:none;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.avatar-empty{border:1.5px dashed var(--border-strong);background:var(--bg-1)}.avatar-more{background:var(--bg-3);color:var(--fg-2);font-size:11px}.avatar-stack{display:inline-flex}.avatar-stack .avatar{box-shadow:0 0 0 2px var(--bg-1)}.avatar-stack .avatar+.avatar{margin-left:-6px}.app{grid-template-columns:auto 1fr;height:100vh;display:grid;overflow:hidden}.main{background:var(--bg-1);flex-direction:column;min-width:0;display:flex;overflow:hidden}.main-body{flex:1;min-height:0;overflow:auto}.topbar{border-bottom:1px solid var(--border-1);background:var(--bg-1);flex:none;align-items:center;gap:10px;height:52px;padding:0 20px 0 24px;display:flex}.topbar-brand{border-left:1px solid var(--border-1);white-space:nowrap;align-items:center;gap:10px;margin-left:4px;padding-left:14px;display:flex}.topbar-brand img{width:auto;height:20px}.brand-version{color:var(--fg-3);font-variant-numeric:tabular-nums;align-self:flex-end;margin-left:-4px;font-size:11px;line-height:16px}.topbar .request-btn{height:34px;margin:0}.topbar .me{border-top:0;margin:0;padding:4px 8px 4px 4px}.topbar .me-name{flex:none}.page{padding:24px 32px 48px}.sidebar{background:var(--bg-2);border-right:1px solid var(--border-1);flex-direction:column;width:248px;min-height:0;padding:10px 12px 12px;transition:width .18s cubic-bezier(.2,.7,.3,1),padding .18s;display:flex;overflow:hidden auto}.brand-row{justify-content:space-between;align-items:center;gap:4px;padding-bottom:20px;display:flex}.brand{white-space:nowrap;align-items:center;gap:10px;padding:4px 8px;display:flex}.brand-logo{width:auto;height:22px}.brand-mark{width:auto;height:26px}.collapse-btn{opacity:.7}.collapse-btn:hover{opacity:1}.request-btn{border-radius:var(--radius-sm);border:1px solid var(--border-2);background:var(--bg-1);height:36px;color:var(--fg-1);white-space:nowrap;align-items:center;gap:10px;margin-bottom:10px;padding:0 10px;font-weight:600;display:flex}.request-btn svg{color:var(--rocoto-red);flex:none}.request-btn:hover{border-color:var(--rocoto-red);background:var(--rocoto-red-tint-2)}.sidebar.mini .request-btn{justify-content:center;padding:0}.sidebar.mini .proj-dot{color:#fff;letter-spacing:.02em;width:30px;height:24px;font-size:10px;font-weight:800;font-family:var(--font-body);border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.type-options.three{grid-template-columns:repeat(3,1fr);margin-bottom:16px}.type-options.four{grid-template-columns:repeat(4,1fr);margin-bottom:16px}@media (width<=600px){.type-options.four{grid-template-columns:1fr 1fr}}.sidebar.mini{width:60px;padding:16px 8px 12px}.sidebar.mini .brand-row{flex-direction:column;gap:10px}.sidebar.mini .brand{padding:4px 0}.sidebar.mini .nav-label,.sidebar.mini .proj-link-name,.sidebar.mini .proj-link-vis,.sidebar.mini .me-name,.sidebar.mini .me>svg,.sidebar.mini .nav-sec-head .eyebrow-sm{display:none}.sidebar.mini .nav-item,.sidebar.mini .proj-link,.sidebar.mini .new-proj{justify-content:center;padding:0;position:relative}.sidebar.mini .nav-badge{padding:0 5px;font-size:10px;line-height:16px;position:absolute;top:2px;right:2px}.sidebar.mini .nav-sec-head{justify-content:center;padding:0 0 6px}.sidebar.mini .me{justify-content:center;padding:8px 0}.sidebar.mini .proj-list{scrollbar-width:none}.brand-product{font-family:var(--font-display);color:var(--fg-2);border-left:1px solid var(--border-2);padding-left:10px;font-size:15px;font-weight:600;line-height:20px}.nav{flex-direction:column;gap:2px;display:flex}.nav-item{border-radius:var(--radius-sm);height:36px;color:var(--fg-2);align-items:center;gap:10px;padding:0 10px;font-weight:600;display:flex}.nav-item:hover{background:var(--bg-3);color:var(--fg-1)}.nav-item.on{background:var(--bg-1);color:var(--fg-1);box-shadow:var(--shadow-sm)}.nav-item.on svg{color:var(--rocoto-red)}.nav-badge{background:var(--status-danger);color:#fff;border-radius:var(--radius-pill);margin-left:auto;padding:0 7px;font-size:11px;font-weight:700;line-height:18px}.nav-sec{flex-direction:column;margin-top:18px;display:flex}.sidebar-top{justify-content:flex-end;padding-bottom:6px;display:flex}.sidebar.mini .sidebar-top{justify-content:center}.sec-toggle{color:var(--fg-3);border-radius:4px;align-items:center;gap:4px;padding:2px 4px 2px 0;display:inline-flex}.sec-toggle:hover,.sec-toggle:hover .eyebrow-sm{color:var(--fg-1)}.sec-count{color:var(--fg-3);margin-left:2px;font-size:11px}.nav-sec-head{justify-content:space-between;align-items:center;padding:0 4px 6px 6px;display:flex}.nav-sec-head .sec-toggle{margin-right:auto}.nav-sec-head .icon-btn.on{color:var(--rocoto-red);background:var(--rocoto-red-tint)}.proj-search{border:1px solid var(--border-2);border-radius:var(--radius-sm);background:var(--bg-1,#fff);height:30px;color:var(--fg-3);align-items:center;gap:6px;margin:0 4px 6px;padding:0 4px 0 8px;display:flex}.proj-search:focus-within{border-color:var(--rocoto-red)}.proj-search input{min-width:0;font:inherit;color:var(--fg-1);background:0 0;border:0;outline:0;flex:1;font-size:13px}.proj-list{flex-direction:column;gap:1px;display:flex}.proj-link{border-radius:var(--radius-sm);height:32px;color:var(--fg-2);flex:none;align-items:center;gap:10px;padding:0 10px;display:flex}.proj-link:hover{background:var(--bg-3);color:var(--fg-1)}.proj-link.on{background:var(--bg-1);color:var(--fg-1);box-shadow:var(--shadow-sm);font-weight:600}.proj-dot{border-radius:3px;flex:none;width:10px;height:10px}.proj-link-name{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.proj-link-vis{color:var(--fg-3);display:inline-flex}.fav-star{color:var(--status-warning);fill:none;flex:none}.new-proj{justify-content:flex-start;margin-top:4px}.me{border-radius:var(--radius-md);text-align:left;border-top:1px solid var(--border-1);align-items:center;gap:10px;margin-top:8px;padding:8px;display:flex}.me:hover{background:var(--bg-3)}.me-name{flex-direction:column;flex:1;min-width:0;font-size:13px;font-weight:600;line-height:1.25;display:flex}.me-sub,.menu-sub{color:var(--fg-3);font-size:12px;font-weight:400;display:block}.popover{z-index:1000;background:var(--bg-1);border:1px solid var(--border-1);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);max-height:70vh;padding:6px;animation:.14s cubic-bezier(.2,.7,.3,1) pop;position:fixed;overflow:auto}@keyframes pop{0%{opacity:0;transform:translateY(-3px)}}.menu-item{border-radius:var(--radius-sm);text-align:left;align-items:center;gap:10px;width:100%;min-height:34px;padding:6px 8px;display:flex}.menu-item:hover:not(:disabled){background:var(--bg-2)}.menu-item:disabled{opacity:.4}.menu-item.danger{color:var(--status-danger)}.menu-icon{width:22px;color:var(--fg-3);flex:none;justify-content:center;display:inline-flex}.menu-item.danger .menu-icon{color:var(--status-danger)}.menu-label{flex:1;min-width:0}.menu-hint{margin-left:auto}.menu-sep{background:var(--border-1);height:1px;margin:6px 0}.menu-label-row{color:var(--fg-3);align-items:center;gap:8px;padding:8px 8px 4px;font-size:12px;display:flex}.menu-colors{color:var(--fg-3);align-items:center;gap:6px;padding:8px;display:flex}.pop-note{color:var(--fg-3);padding:6px 8px 8px;font-size:12px}.picker-search{color:var(--fg-3);border-bottom:1px solid var(--border-1);align-items:center;gap:8px;margin-bottom:4px;padding:4px 8px 8px;display:flex}.picker-search input{background:0 0;border:0;outline:none;flex:1;height:28px}.picker-search.boxed{border:1px solid var(--border-2);border-radius:var(--radius-sm);margin:0;padding:2px 10px}.picker-list{max-height:300px;overflow:auto}.picker-empty{color:var(--fg-3);padding:10px 8px;font-size:12px}.status-menu{flex-direction:column;gap:4px;display:flex}.status-option{border-radius:var(--radius-sm);height:32px;font-size:13px;font-weight:600;transition:filter .12s}.status-option:hover{filter:brightness(.94)}.modal-backdrop{z-index:900;background:#0e0f105c;justify-content:center;align-items:flex-start;padding:10vh 16px 16px;animation:.15s fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.modal{background:var(--bg-1);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;max-width:100%;max-height:80vh;display:flex}.modal-head{justify-content:space-between;align-items:center;padding:20px 24px 8px;display:flex}.modal-body{padding:8px 24px 16px;overflow:auto}.modal-foot{border-top:1px solid var(--border-1);justify-content:flex-end;gap:8px;padding:14px 24px;display:flex}.confirm-body{color:var(--fg-2)}.toasts{z-index:1100;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{background:var(--gray-900);color:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);align-items:center;gap:12px;padding:10px 10px 10px 16px;font-size:13px;animation:.18s cubic-bezier(.2,.7,.3,1) pop;display:flex}.toast-error{background:var(--status-danger)}.toast-undo{color:#ff9a8d;border-radius:4px;padding:2px 6px;font-weight:700}.toast-undo:hover{background:#ffffff1a}.toast-x{opacity:.6;display:inline-flex}.toast-x:hover{opacity:1}.empty{text-align:center;color:var(--fg-2);padding:56px 16px}.empty h3{margin-bottom:6px}.empty-body{color:var(--fg-3)}.inline-text{text-overflow:ellipsis;white-space:nowrap;border-radius:4px;min-width:0;margin:0 -4px;padding:2px 4px;overflow:hidden}.inline-text.editable{cursor:text}.inline-text.editable:hover{box-shadow:inset 0 0 0 1px var(--border-2);background:var(--bg-1)}.inline-input{border:1px solid var(--rocoto-red);min-width:0;box-shadow:var(--shadow-focus);background:var(--bg-1);border-radius:4px;outline:none;flex:1;margin:0 -5px;padding:2px 4px}.home-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.home-head .eyebrow{margin-bottom:4px}.kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:32px;display:grid}.kpi{border:1px solid var(--border-1);border-radius:var(--radius-md);background:var(--bg-1);grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:12px;padding:16px 18px;transition:box-shadow .15s,transform .15s;display:grid}a.kpi:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.kpi svg{color:var(--fg-3);grid-row:span 2}.kpi b{font-family:var(--font-display);font-size:28px;line-height:1.1}.kpi span{color:var(--fg-3);font-size:12px}.kpi.alert b,.kpi.alert svg{color:var(--status-danger)}.home-bar{align-items:center;gap:16px;margin-bottom:16px;display:flex}.search{border:1px solid var(--border-2);border-radius:var(--radius-sm);height:32px;color:var(--fg-3);background:var(--bg-1);align-items:center;gap:8px;min-width:220px;padding:0 10px;display:flex}.search:focus-within{border-color:var(--rocoto-red);box-shadow:var(--shadow-focus)}.search input{min-width:0;color:var(--fg-1);background:0 0;border:0;outline:none;flex:1}.cards{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.pcard{border:1px solid var(--border-1);border-radius:var(--radius-md);background:var(--bg-1);flex-direction:column;gap:12px;padding:18px;transition:box-shadow .18s,transform .18s;display:flex}.pcard:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.pcard-top{align-items:center;gap:10px;display:flex}.pcard-top h3{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.proj-color{border-radius:4px;flex:none;width:12px;height:12px}.pcard-desc{color:var(--fg-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;min-height:38px;margin:0;font-size:13px;display:-webkit-box;overflow:hidden}.pcard-progress{align-items:center;gap:10px;display:flex}.progress{background:var(--bg-3);border-radius:3px;flex:1;height:6px;overflow:hidden}.progress span{background:var(--status-online);border-radius:3px;height:100%;transition:width .3s;display:block}.pcard-stats{gap:14px;font-size:13px;display:flex}.pcard-next{background:var(--bg-2);border-radius:var(--radius-sm);align-items:center;gap:6px;padding:8px 10px;font-size:13px;display:flex}.pcard-next .ellip{flex:1}.pcard-foot{align-items:center;gap:6px;display:flex}.vis-badge{border-radius:var(--radius-pill);background:var(--bg-2);border:1px solid var(--border-1);height:22px;color:var(--fg-2);white-space:nowrap;flex:none;align-items:center;gap:4px;padding:0 8px;font-size:12px;display:inline-flex}.project-page{flex-direction:column;height:100%;min-height:0;padding:0;display:flex}.proj-head{padding:20px 32px 0}.proj-title-row{align-items:center;gap:10px;min-width:0;display:flex}.proj-title{font-family:var(--font-display);letter-spacing:var(--tracking-display);font-size:26px;font-weight:600}.proj-title-input{font-family:var(--font-display);max-width:600px;font-size:26px;font-weight:600}.star.on{color:var(--status-warning)}.members-btn{border-radius:var(--radius-pill);padding:2px;display:inline-flex}.members-btn:hover{background:var(--bg-2)}.proj-desc{color:var(--fg-3);white-space:normal;max-width:900px;margin:4px 0 0 22px;display:block}.view-tabs{border-bottom:1px solid var(--border-1);align-items:center;gap:4px;margin-top:16px;padding-bottom:8px;display:flex}.view-tab{border-radius:var(--radius-sm);height:34px;color:var(--fg-2);align-items:center;gap:6px;padding:0 12px;font-weight:600;display:inline-flex;position:relative}.view-tab:hover{background:var(--bg-2);color:var(--fg-1)}.view-tab.on{color:var(--fg-1)}.view-tab.on:after{content:"";background:var(--rocoto-red);border-radius:2px;height:2px;position:absolute;bottom:-9px;left:10px;right:10px}.filterbar{flex-wrap:wrap;align-items:center;gap:8px;padding:12px 32px;display:flex}.filter-cols{grid-template-columns:1fr 1.2fr 1fr;gap:20px;padding:8px 10px;display:grid}.filter-cols h5{text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--fg-3);margin:6px 0;font-size:12px}.filter-cols h5:not(:first-child){margin-top:16px}.check{cursor:pointer;align-items:center;gap:8px;padding:4px 0;font-size:13px;display:flex}.check input{accent-color:var(--rocoto-red);margin:0}.filter-people{max-height:260px;overflow:auto}.filter-foot{border-top:1px solid var(--border-1);align-items:center;gap:8px;margin-top:6px;padding:10px 10px 4px;display:flex}.filter-foot .muted{flex:1}.view-area{flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}.table-wrap{width:max-content;min-width:100%;padding:0 32px 40px}.tbl-row{grid-template-columns:var(--cols);align-items:center;min-height:38px;display:grid}.tbl-row>div{align-items:center;min-width:0;height:100%;display:flex}.tbl-head{z-index:5;background:var(--bg-1);color:var(--fg-3);border-bottom:1px solid var(--border-1);min-height:34px;font-size:12px;font-weight:600;position:sticky;top:0}.tbl-head>div{padding:0 8px}.c-center{justify-content:center}.c-right{justify-content:flex-end;padding-right:10px}.c-wbs{font-family:var(--font-mono);color:var(--fg-3);padding-left:6px;font-size:11px}.grp-head{border-radius:var(--radius-sm);align-items:center;gap:6px;height:60px;padding-top:20px;display:flex}.grp-head.drop-inside{background:var(--rocoto-red-tint-2);box-shadow:inset 0 0 0 1px var(--rocoto-red)}.grp-caret{color:var(--grp)}.grp-name{font-family:var(--font-display);color:var(--grp);font-size:17px;font-weight:600}.grp-name-input{font-family:var(--font-display);max-width:360px;font-size:17px;font-weight:600}.grp-count{color:var(--fg-3);margin-left:4px;font-size:12px}.grp-head .battery{width:160px;margin-left:12px}.grp-menu{opacity:0}.grp-head:hover .grp-menu,.grp-menu:focus-visible{opacity:1}.tbl-body .c-grip{box-shadow:inset 4px 0 0 var(--grp)}.tbl-body .grp-foot .c-grip{box-shadow:none}.tbl-body .task-row,.tbl-body .add-row{height:38px;min-height:0}.tbl-body .grp-foot{height:34px;min-height:0}.tbl-body .task-row .cell-status{min-height:0}.task-row{border-bottom:1px solid var(--border-1);background:var(--bg-1);transition:background .1s}.grp-head+.task-row{border-top:1px solid var(--border-1);border-top-left-radius:var(--radius-sm)}.task-row:hover{background:var(--bg-2)}.task-row.selected{background:var(--rocoto-red-tint-2)}.task-row.context .task-name{color:var(--fg-3)}.task-row.context>div:not(.c-name):not(.c-grip):not(.c-wbs){opacity:.45}.task-row.dragging{opacity:.4}.task-row.drop-before{box-shadow:inset 0 2px 0 var(--rocoto-red)}.task-row.drop-after{box-shadow:inset 0 -2px 0 var(--rocoto-red)}.task-row.drop-inside{background:var(--rocoto-red-tint)}.task-row.row-done .task-name{color:var(--fg-3);text-decoration:line-through}.c-grip{color:var(--fg-3);cursor:grab;justify-content:center}.c-grip svg{opacity:0}.task-row:hover .c-grip svg{opacity:1}.c-name{border-right:1px solid var(--border-1);gap:4px;padding-right:8px}.tbl-row>div:nth-child(n+4){border-right:1px solid var(--border-1)}.tbl-row>div:last-child,.tbl-head>div{border-right:0!important}.caret{width:22px;height:22px}.caret-spacer{flex:none;width:22px}.task-name{flex:0 auto}.task-name.parent{font-weight:700}.depth-1 .task-name{font-weight:600}.depth-1 .task-name.parent{font-weight:700}.row-tools{opacity:0;gap:2px;margin-left:2px;transition:opacity .12s;display:inline-flex}.task-row:hover .row-tools{opacity:1}.row-tools .icon-btn{width:24px;height:24px}.comment-badge{color:var(--fg-3);border-radius:4px;align-items:center;gap:3px;margin-left:auto;padding:2px 6px;font-size:12px;display:inline-flex}.comment-badge:hover{background:var(--bg-3);color:var(--fg-1)}.c-status{padding:0!important}.cell-status{width:100%;height:100%;min-height:38px;font-size:13px;font-weight:600;transition:filter .12s;position:relative}.cell-status:hover:not(:disabled){filter:brightness(.94)}.cell-status:disabled{cursor:default}.status-pill{border-radius:var(--radius-pill);white-space:nowrap;align-items:center;height:22px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.status-pill.sm{flex:none;justify-content:center;min-width:92px;height:20px;padding:0 8px;font-size:11px}.cell-btn{border-radius:var(--radius-sm);align-items:center;gap:6px;width:100%;height:30px;padding:0 8px;display:inline-flex}.cell-btn:hover:not(:disabled){background:var(--bg-3)}.cell-person{justify-content:center;width:auto}.cell-priority{font-size:13px}.cell-date{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;align-items:center;width:100%;height:30px;padding:0 8px;font-size:13px;display:inline-flex;position:relative}.cell-date:hover:not(.disabled){background:var(--bg-3)}.cell-date.disabled{cursor:default}.cell-date.auto{color:var(--fg-3);font-style:italic}.cell-date input{opacity:0;pointer-events:none;width:100%;position:absolute;inset:0}.cell-date.boxed{border:1px solid var(--border-2);width:auto;min-width:110px}.cell-date.overdue{font-weight:700}.task-row .cell-date .muted{opacity:0}.task-row:hover .cell-date .muted{opacity:1}.c-days{color:var(--fg-2);font-size:12px;font-family:var(--font-mono)}.c-menu{justify-content:center}.c-menu .icon-btn{opacity:0}.task-row:hover .c-menu .icon-btn,.c-menu .icon-btn:focus-visible,.tbl-head .c-menu .icon-btn{opacity:1}.add-row{border-bottom:1px solid var(--border-1)}.add-row .c-name{gap:8px;padding-left:34px}.add-input{background:0 0;border:0;outline:none;flex:1;height:34px}.add-input::placeholder{color:var(--fg-3)}.grp-foot{border-left:4px solid #0000}.grp-foot>div{padding:0 8px;border-right:0!important}.battery{background:var(--bg-1);border-radius:4px;gap:1px;width:100%;height:22px;display:flex;overflow:hidden}.battery span{height:100%;display:block}.battery.empty{background:var(--bg-3)}.add-group{margin-top:20px}.tbl-empty{text-align:center;color:var(--fg-3);padding:40px}.gantt{flex-direction:column;flex:1;min-height:0;padding:0 32px 24px;display:flex}.gantt-zoom{margin-bottom:10px}.gantt-hint{margin-left:12px}.gantt-scroll{border:1px solid var(--border-1);border-radius:var(--radius-md);background:var(--bg-1);flex:1;min-height:240px;position:relative;overflow:auto}.gantt-inner{position:relative}.gantt-head{z-index:4;background:var(--bg-1);border-bottom:1px solid var(--border-1);height:52px;display:flex;position:sticky;top:0}.gantt-left{z-index:3;background:inherit;border-right:1px solid var(--border-1);cursor:pointer;flex:none;align-items:center;gap:4px;width:340px;min-width:0;height:100%;padding:0 8px;display:flex;position:sticky;left:0}.gantt-left-head{background:var(--bg-1);color:var(--fg-3);cursor:default;padding-left:16px;font-size:12px;font-weight:600}.gantt-scale{flex:none;position:relative}.scale-top,.scale-bottom{height:26px;position:relative}.scale-top span,.scale-bottom span{height:100%;color:var(--fg-3);border-left:1px solid var(--border-1);white-space:nowrap;align-items:center;padding-left:6px;font-size:11px;display:flex;position:absolute;top:0;overflow:hidden}.scale-top span{color:var(--fg-2);font-size:12px;font-weight:700;overflow:visible}.scale-top span b{font-weight:700;position:sticky;left:348px}.scale-bottom{border-top:1px solid var(--border-1)}.scale-bottom span{justify-content:center;padding:0}.scale-bottom span.weekend{background:var(--bg-2)}.scale-bottom span.today{color:#fff;background:var(--rocoto-red);border-radius:4px;font-weight:700}.gantt-body{position:relative}.gantt-weekends{pointer-events:none;position:absolute;top:0;bottom:0;right:0}.gantt-weekends span{background:var(--bg-2);position:absolute;top:0;bottom:0}.gantt-today{background:var(--rocoto-red);z-index:2;pointer-events:none;opacity:.8;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0}.g-row{border-bottom:1px solid var(--border-1);background:0 0;height:36px;display:flex}.g-row .gantt-left{background:var(--bg-1)}.g-row:hover .gantt-left,.g-row.selected .gantt-left{background:var(--bg-2)}.g-row.selected{background:#fc4b370d}.g-row.context .g-name{color:var(--fg-3)}.g-group{background:var(--bg-2)}.g-group .gantt-left{background:var(--bg-2);border-left:4px solid var(--grp);cursor:default}.g-group-name{font-family:var(--font-display);color:var(--grp);white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:600;overflow:hidden}.g-track{flex:none;height:100%;position:relative}.g-wbs{font-family:var(--font-mono);color:var(--fg-3);min-width:30px;font-size:11px}.g-name{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.g-name.parent{font-weight:700}.bar-group{background:var(--grp);opacity:.7;border-radius:3px;height:6px;position:absolute;top:15px}.bar{cursor:grab;height:20px;box-shadow:var(--shadow-sm);touch-action:none;-webkit-user-select:none;user-select:none;z-index:1;border-radius:5px;justify-content:center;align-items:center;display:flex;position:absolute;top:8px}.bar.ro{cursor:pointer}.bar:hover{filter:brightness(.96);box-shadow:var(--shadow-md)}.bar.dragging{cursor:grabbing;box-shadow:var(--shadow-lg);z-index:3}.bar.overdue{box-shadow:inset 0 0 0 2px var(--status-danger)}.bar-in{pointer-events:none;font-size:11px;font-weight:700}.h{cursor:ew-resize;width:8px;position:absolute;top:0;bottom:0}.h-l{left:-2px}.h-r{right:-2px}.bar-label{white-space:nowrap;color:var(--fg-2);pointer-events:none;font-size:12px;position:absolute;top:50%;transform:translateY(-50%)}.bar-summary{background:var(--gray-800);cursor:pointer;z-index:1;height:8px;position:absolute;top:12px}.bar-summary:before,.bar-summary:after{content:"";border-top:8px solid var(--gray-800);width:0;height:0;position:absolute;top:0}.bar-summary:before{border-right:7px solid #0000;left:0;transform:translateY(8px)}.bar-summary:after{border-left:7px solid #0000;right:0;transform:translateY(8px)}.bar-summary .bar-label{color:var(--fg-1);font-weight:700}.ms{cursor:grab;z-index:1;touch-action:none;width:16px;height:16px;position:absolute;top:10px}.ms-diamond{background:var(--fg-1);border-radius:2px;position:absolute;inset:1px;transform:rotate(45deg)}.ms-diamond.done{background:var(--status-online)}.ms-diamond.overdue{background:var(--status-danger)}.drag-tip{background:var(--gray-900);color:#fff;white-space:nowrap;z-index:5;pointer-events:none;border-radius:4px;padding:2px 6px;font-size:11px;position:absolute;top:-2px;transform:translateY(-100%)}.board-wrap{flex-direction:column;flex:1;min-height:0;padding:0 32px 32px;display:flex}.board-opts{margin-bottom:12px}.board{grid-auto-columns:minmax(196px,1fr);grid-auto-flow:column;align-items:start;gap:12px;display:grid;overflow-x:auto}.board-col{background:var(--bg-2);border-radius:var(--radius-md);min-height:200px;transition:box-shadow .15s}.board-col.over{box-shadow:inset 0 0 0 2px var(--rocoto-red)}.board-col-head{border-radius:var(--radius-md) var(--radius-md) 0 0;justify-content:space-between;align-items:center;height:40px;padding:0 14px;font-weight:700;display:flex}.board-count{opacity:.85;font-size:12px}.board-cards{flex-direction:column;gap:8px;padding:10px;display:flex}.board-more{justify-content:center;width:100%}.board-empty{color:var(--fg-3);text-align:center;padding:16px;font-size:12px}.card{background:var(--bg-1);border:1px solid var(--border-1);border-left:3px solid var(--grp);border-radius:var(--radius-sm);cursor:pointer;box-shadow:var(--shadow-sm);flex-direction:column;gap:6px;padding:10px 12px;transition:box-shadow .15s,transform .15s;display:flex}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.card.dragging{opacity:.4}.card-crumb{color:var(--fg-3);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.card-title{align-items:flex-start;gap:6px;font-weight:600;display:flex}.card-title svg{margin-top:3px}.card-meta{color:var(--fg-2);align-items:center;gap:8px;font-size:12px;display:flex}.card-date{align-items:center;gap:4px;display:inline-flex}.drawer{z-index:800;background:var(--bg-1);border-left:1px solid var(--border-1);flex-direction:column;width:540px;max-width:100vw;animation:.2s cubic-bezier(.2,.7,.3,1) slide;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-12px 0 32px #0e0f101a}@keyframes slide{0%{opacity:0;transform:translate(24px)}}.drawer-head{border-bottom:1px solid var(--border-1);align-items:center;gap:4px;padding:12px 16px 12px 24px;display:flex}.crumbs{color:var(--fg-3);flex-wrap:wrap;flex:1;align-items:center;gap:4px;min-width:0;font-size:12px;display:flex}.crumbs .link{color:var(--fg-2);text-decoration:none}.crumbs .link:hover{text-decoration:underline}.crumb-group,.crumb-task{align-items:center;gap:5px;display:inline-flex}.drawer-body{flex:1;padding:16px 24px 32px;overflow:auto}.drawer-title{align-items:center;gap:8px;margin:4px 0 16px;display:flex}.title-text{font-family:var(--font-display);white-space:normal;font-size:22px;font-weight:600;line-height:1.25}.title-input{font-family:var(--font-display);font-size:22px;font-weight:600}.fields{grid-template-columns:128px 1fr;align-items:center;gap:6px 12px;display:grid}.f-label{color:var(--fg-3);align-items:center;gap:8px;height:36px;font-size:13px;display:flex}.fields>div:nth-child(2n){flex-direction:column;justify-content:center;min-height:36px;display:flex}.fields .cell-btn{align-self:flex-start;width:auto}.f-status .cell-status{border-radius:var(--radius-sm);width:160px;min-height:32px}.f-status .cell-label.empty{border:1px dashed var(--border-2)}.f-text .cell-text{border:1px solid var(--border-1);border-radius:var(--radius-sm);white-space:normal;min-height:28px;padding:4px 6px;display:block}.f-dates{align-items:center;gap:8px;display:flex}.f-auto{color:var(--fg-2);cursor:pointer;align-items:center;gap:6px;margin-top:6px;font-size:12px;display:flex}.f-auto input{accent-color:var(--rocoto-red);margin:0}.f-hint{color:var(--fg-3);margin-top:4px;font-size:12px}.fields .select{width:auto;min-width:200px;height:32px}.drawer-sec{margin-top:24px}.drawer-sec h4{align-items:baseline;gap:8px;margin-bottom:8px;font-size:14px;display:flex}.drawer-sec h4 .muted{font-family:var(--font-body);font-size:12px;font-weight:400}.details{border:1px solid var(--border-1);border-radius:var(--radius-sm);resize:vertical;background:var(--bg-1);width:100%;padding:10px 12px;line-height:1.5}.details:hover:not(:disabled){border-color:var(--border-2)}.details:disabled{background:var(--bg-2)}.drawer-sec .progress{margin-bottom:8px}.sublist{flex-direction:column;display:flex}.sub{border-radius:var(--radius-sm);text-align:left;align-items:center;gap:10px;padding:6px;display:flex}.sub:hover{background:var(--bg-2)}.sub-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.add-sub{align-items:center;gap:8px;padding:4px 6px;display:flex}.add-sub input{background:0 0;border:0;outline:none;flex:1;height:30px}.tabs-sm{border-bottom:1px solid var(--border-1);gap:16px;margin-bottom:12px;display:flex}.tabs-sm button{color:var(--fg-3);align-items:center;gap:6px;padding:6px 0 10px;font-weight:600;display:inline-flex;position:relative}.tabs-sm button.on{color:var(--fg-1)}.tabs-sm button.on:after{content:"";background:var(--rocoto-red);height:2px;position:absolute;bottom:-1px;left:0;right:0}.comments{flex-direction:column;gap:14px;margin-bottom:14px;display:flex}.comment{gap:10px;display:flex}.comment-body{flex:1;min-width:0}.comment-meta{align-items:baseline;gap:8px;font-size:13px;display:flex}.comment-meta .link{margin-left:auto}.comment-text{white-space:pre-wrap;color:var(--fg-2);background:var(--bg-2);border-radius:var(--radius-sm);margin-top:4px;padding:8px 10px}.comment-new{gap:10px;display:flex}.comment-box{flex-direction:column;flex:1;align-items:flex-end;gap:6px;display:flex}.comment-box textarea{border:1px solid var(--border-2);border-radius:var(--radius-sm);resize:vertical;width:100%;padding:8px 10px}.activity{flex-direction:column;gap:10px;display:flex}.act{color:var(--fg-2);grid-template-columns:auto 1fr auto;align-items:start;gap:8px;font-size:13px;display:grid}.vis-options{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px;display:grid}.vis-opt{border:1px solid var(--border-2);border-radius:var(--radius-md);text-align:left;color:var(--fg-2);flex-direction:column;align-items:flex-start;gap:4px;padding:12px;display:flex}.vis-opt:hover:not(:disabled){border-color:var(--border-strong)}.vis-opt.on{border-color:var(--rocoto-red);box-shadow:var(--shadow-focus);color:var(--fg-1)}.vis-opt.on svg{color:var(--rocoto-red)}.vis-label{font-weight:700}.vis-desc{color:var(--fg-3);font-size:12px;line-height:1.35}.share-add{margin-bottom:12px;position:relative}.share-results{border:1px solid var(--border-1);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);margin-top:4px;padding:4px}.members{flex-direction:column;display:flex}.member{border-bottom:1px solid var(--border-1);align-items:center;gap:12px;padding:8px 0;display:flex}.member:last-child{border-bottom:0}.member-name{flex:1;font-weight:600}.role-owner{color:var(--fg-2);align-items:center;gap:4px;font-size:13px;display:inline-flex}.bucket{margin-bottom:28px}.bucket h3{align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.bucket h3 .muted{font-family:var(--font-body);font-size:13px;font-weight:400}.bucket-overdue h3{color:var(--status-danger)}.mw-list{border:1px solid var(--border-1);border-radius:var(--radius-md);overflow:hidden}.mw-row{border-bottom:1px solid var(--border-1);grid-template-columns:28px 20px minmax(200px,1.4fr) minmax(160px,1fr) 140px 90px;align-items:center;gap:10px;min-height:42px;padding:0 12px;display:grid}.mw-row:last-child{border-bottom:0}.mw-row:hover{background:var(--bg-2)}.check-btn{border:1.5px solid var(--border-strong);color:#0000;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;transition:all .15s;display:inline-flex}.check-btn:hover:not(:disabled){border-color:var(--status-online);color:var(--status-online)}.check-btn.on{background:var(--status-online);border-color:var(--status-online);color:#fff}.mw-name{text-align:left;align-items:center;gap:6px;min-width:0;font-weight:600;display:flex}.mw-name span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.mw-name:hover span{text-decoration:underline}.mw-proj{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;min-width:0;font-size:12px;display:flex;overflow:hidden}.mw-proj:hover{text-decoration:underline}.mw-status{height:42px;display:flex}.mw-status .cell-status{border-radius:var(--radius-sm);align-self:center;height:30px;min-height:30px}.mw-date{text-align:right;font-size:13px}.archive-note{margin:12px 0 16px}.arch-list{border:1px solid var(--border-1);border-radius:var(--radius-md)}.arch-row{border-bottom:1px solid var(--border-1);align-items:center;gap:14px;padding:12px 16px;display:flex}.arch-row:last-child{border-bottom:0}.arch-kind{display:inline-flex}.arch-main{flex:1;min-width:0}.arch-name{font-weight:600}.arch-actions{gap:6px;display:flex}.archive .view-tabs{margin-top:0}.team-table{border:1px solid var(--border-1);border-radius:var(--radius-md);margin-bottom:12px;overflow-x:auto}.team-row{border-bottom:1px solid var(--border-1);grid-template-columns:minmax(200px,1.4fr) minmax(210px,1.4fr) 76px 86px 120px minmax(280px,1fr);align-items:center;gap:12px;min-width:1060px;padding:10px 16px;display:grid}.team-row:last-child{border-bottom:0}.team-row>div:nth-child(2){text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.team-head{color:var(--fg-3);padding-top:8px;padding-bottom:8px;font-size:12px;font-weight:600}.team-name{align-items:center;gap:10px;font-weight:600;display:flex}.team-actions{justify-content:flex-end;gap:4px;display:flex}.team-row.inactive{opacity:.5}.pw-state{color:#8a5a00;margin-top:2px;font-size:11px;display:block}.pw-state.set{color:var(--status-online)}.dup-badge{color:#8a5a00;background:var(--status-warning-tint);cursor:help;border-radius:4px;margin-left:6px;padding:0 6px;font-size:11px;font-weight:600;display:inline-block}.chip-warn:not(.on){color:#8a5a00;border-color:#f0d08a}.team-pw-note{margin:0;padding:8px 16px 0}.invite-list{flex-direction:column;max-height:55vh;display:flex;overflow:auto}.invite-row{border-bottom:1px solid var(--border-1);grid-template-columns:170px 1fr auto auto;align-items:center;gap:8px;padding:8px 0;display:grid}.invite-row .input{height:32px}.invite-name{font-weight:600}.email-preview{flex-direction:column;gap:8px;display:flex}.email-meta{grid-template-columns:64px 1fr;align-items:center;gap:8px;font-size:13px;display:grid}.email-meta .input{height:32px}.email-body{resize:vertical;font-family:inherit;line-height:1.5}.req-files{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.req-file{border:1px solid var(--border-1);border-radius:999px;align-items:center;gap:4px;max-width:220px;padding:2px 4px 2px 8px;font-size:12px;display:inline-flex}.req-file span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.invite-actions{grid-column:3/-1;justify-self:end;gap:6px;display:flex}.invite-error{color:var(--status-danger);grid-column:2/-1}.team-actions{flex-wrap:wrap}.email-missing .inline-text{color:#8a5a00;background:var(--status-warning-tint);border-radius:4px;padding:2px 6px}.email-missing .inline-text .muted{color:#8a5a00}.compact-bar{background:var(--bg-1);border-bottom:1px solid var(--border-1);flex:none;align-items:center;gap:10px;height:44px;padding:0 32px;display:flex}.compact-title{font-family:var(--font-display);white-space:nowrap;text-overflow:ellipsis;max-width:320px;font-size:15px;font-weight:600;overflow:hidden}.compact-tabs{background:var(--bg-2);border-radius:var(--radius-sm);gap:2px;padding:2px;display:inline-flex}.compact-tab{width:30px;height:26px;color:var(--fg-3);border-radius:5px;justify-content:center;align-items:center;display:inline-flex}.compact-tab:hover{color:var(--fg-1)}.compact-tab.on{background:var(--bg-1);color:var(--rocoto-red);box-shadow:var(--shadow-sm)}.compact-search{width:200px;min-width:160px;height:28px}.compact-bar .chip{height:26px}.project-page.compact .table-wrap,.project-page.compact .gantt,.project-page.compact .board-wrap{padding-top:12px}.stick{z-index:2;background:inherit;position:sticky}.tbl-head .stick{z-index:6}.add-row,.grp-foot{background:var(--bg-1)}.c-name.stick{box-shadow:1px 0 0 var(--border-1)}.grp-head{z-index:3;width:max-content;min-width:320px;position:sticky;left:0}.th{gap:4px;min-width:0}.th:not(.stick){position:relative}.th-label{min-width:0;color:var(--fg-3);align-items:center;gap:4px;max-width:100%;font-size:12px;font-weight:600;display:inline-flex}.th-label span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.th-label.has-menu:hover{color:var(--fg-1)}.th-caret{opacity:0;flex:none}.th:hover .th-caret{opacity:1}.col-resize{cursor:col-resize;z-index:7;width:8px;position:absolute;top:4px;bottom:4px;right:-4px}.col-resize:after{content:"";background:0 0;border-radius:1px;width:2px;transition:background .12s;position:absolute;top:0;bottom:0;left:3px}.th:hover .col-resize:after{background:var(--border-2)}.col-resize:hover:after,.col-resize.on:after{background:var(--rocoto-red)}.cell-label{text-overflow:ellipsis;white-space:nowrap;width:100%;height:100%;padding:0 6px;font-size:13px;font-weight:600;overflow:hidden}.cell-label.empty:hover:not(:disabled){background:var(--bg-3)}.c-text{padding:0 8px}.cell-text{width:100%;font-size:13px}.menu-check{padding:4px 8px}.type-options{grid-template-columns:1fr 1fr;gap:8px;display:grid}.opt-list{flex-direction:column;gap:6px;display:flex}.opt-row{grid-template-columns:auto 1fr auto;align-items:center;gap:8px;display:grid}.opt-row .input{height:32px}.labels-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.labels-grid .opt-row{grid-template-columns:auto 1fr auto auto}.label-preview{text-align:center;text-overflow:ellipsis;white-space:nowrap;border-radius:4px;min-width:76px;max-width:110px;height:24px;padding:0 8px;font-size:12px;font-weight:600;line-height:24px;overflow:hidden}@media (width<=640px){.labels-grid{grid-template-columns:1fr}}.add-opt{align-self:flex-start;margin-top:4px}.swatches.wrap{flex-wrap:wrap;padding:4px}.swatch{justify-content:center;align-items:center;display:inline-flex}.person-opt{cursor:pointer}.person-check{border:1.5px solid var(--border-strong);color:#fff;border-radius:4px;flex:none;justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex}.person-check.on{background:var(--rocoto-red);border-color:var(--rocoto-red)}.lead-tag{text-transform:uppercase;letter-spacing:.04em;color:var(--rocoto-red-press);background:var(--rocoto-red-tint);border-radius:4px;flex:none;padding:1px 5px;font-size:10px;font-weight:700}.lead-tag.sm{vertical-align:1px;margin-left:4px;font-size:9px}.make-lead{opacity:0;white-space:nowrap}.person-opt:hover .make-lead{opacity:1}.cell-person.with-names{text-align:left;flex-wrap:wrap;width:auto;max-width:100%;height:auto;min-height:30px}.people-names{line-height:1.4}.bell{width:36px;height:36px;color:var(--fg-2);position:relative}.bell-badge{border-radius:var(--radius-pill);background:var(--rocoto-red);color:#fff;text-align:center;min-width:17px;height:17px;box-shadow:0 0 0 2px var(--bg-1);padding:0 4px;font-size:10px;font-weight:800;line-height:17px;position:absolute;top:2px;right:1px}.notif-pop{flex-direction:column;max-height:75vh;padding:0;display:flex}.notif-head{border-bottom:1px solid var(--border-1);align-items:center;gap:8px;padding:12px 12px 10px 16px;display:flex}.notif-head h3{margin-right:4px;font-size:15px}.notif-list{flex:1;overflow:auto}.notif{text-align:left;border-bottom:1px solid var(--border-1);align-items:flex-start;gap:12px;width:100%;padding:12px 16px;display:flex}.notif:hover{background:var(--bg-2)}.notif.unread{background:var(--rocoto-red-tint-2)}.notif.unread:hover{background:var(--rocoto-red-tint)}.notif-icon{flex:none}.notif-sys{background:var(--bg-3);width:30px;height:30px;color:var(--fg-2);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.notif-sys.k-overdue{background:var(--status-danger-tint);color:var(--status-danger)}.notif-sys.k-due_soon{background:var(--status-warning-tint);color:#8a5a00}.notif-main{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.notif-text{color:var(--fg-1);overflow-wrap:anywhere;font-size:13px;line-height:1.4}.notif-meta{color:var(--fg-3);align-items:center;gap:4px;font-size:11px;display:inline-flex}.notif-dot{background:var(--rocoto-red);border-radius:50%;flex:none;width:8px;height:8px;margin-top:6px}.notif-foot{border-top:1px solid var(--border-1);padding:8px 16px}.notif-foot .link{align-items:center;gap:5px;text-decoration:none;display:inline-flex}.pref-table{border:1px solid var(--border-1);border-radius:var(--radius-md)}.pref-row{border-bottom:1px solid var(--border-1);grid-template-columns:1fr 70px 70px;align-items:center;gap:8px;padding:10px 14px;display:grid}.pref-row:last-child{border-bottom:0}.pref-row>:not(:first-child){justify-self:center}.pref-head{color:var(--fg-3);padding-top:8px;padding-bottom:8px;font-size:12px;font-weight:600}.toggle{background:var(--border-2);border-radius:10px;width:34px;height:20px;transition:background .15s;position:relative}.toggle span{width:16px;height:16px;box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;transition:left .15s;position:absolute;top:2px;left:2px}.toggle.on{background:var(--rocoto-red)}.toggle.on span{left:16px}.outbox{grid-template-columns:1fr 1fr;gap:12px;min-height:300px;margin-top:12px;display:grid}.outbox-list{border:1px solid var(--border-1);border-radius:var(--radius-sm);max-height:50vh;overflow:auto}.outbox-row{text-align:left;border-bottom:1px solid var(--border-1);flex-direction:column;gap:2px;width:100%;padding:8px 10px;display:flex}.outbox-row:hover,.outbox-row.on{background:var(--bg-2)}.outbox-to{align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.outbox-subj{color:var(--fg-2);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.ob-status{text-transform:uppercase;background:var(--status-warning-tint);color:#8a5a00;border-radius:4px;padding:0 5px;font-size:10px;font-weight:700}.ob-status.s-no_email{background:var(--bg-3);color:var(--fg-3)}.outbox-preview{border:1px solid var(--border-1);border-radius:var(--radius-sm);flex-direction:column;gap:4px;max-height:50vh;padding:10px 12px;display:flex;overflow:auto}.outbox-body{white-space:pre-wrap;font-family:var(--font-body);color:var(--fg-2);margin:8px 0 0;font-size:13px}.mention{color:var(--rocoto-red-press);background:var(--rocoto-red-tint-2);border-radius:3px;padding:0 2px;font-weight:700}.mention-pop{background:var(--bg-1);border:1px solid var(--border-1);border-radius:var(--radius-md);width:260px;box-shadow:var(--shadow-lg);z-index:20;margin-bottom:4px;padding:4px;position:absolute;bottom:100%;left:0}.mention-pop .menu-item.on{background:var(--bg-2)}.comment-box{position:relative}.intake-title{align-items:center;gap:8px;display:inline-flex}.intake-intro{margin:0 0 12px}.intake-enable{margin-bottom:14px;font-weight:600}.alias-input{font-family:var(--font-mono);align-items:center;gap:4px;font-size:13px;display:flex}.alias-input .input{width:160px;font-family:var(--font-mono)}.addr-list{flex-direction:column;gap:4px;margin-top:6px;display:flex}.addr{background:var(--bg-2);border-radius:var(--radius-sm);grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:6px 8px;display:grid}.addr code{font-family:var(--font-mono);color:var(--fg-1);font-size:12px}.addr-note{color:var(--fg-3);font-size:11px}.intake-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.intake-grid .cell-person{border:1px solid var(--border-2);justify-content:flex-start;padding:4px 8px}.radio-row{flex-wrap:wrap;gap:18px;display:flex}.intake-try{border:1px dashed var(--border-strong);border-radius:var(--radius-md);margin-top:8px;padding:12px 14px 14px}.intake-try h5,.intake-log h5{text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--fg-3);margin:0 0 4px;font-size:12px}.intake-try .field{margin-bottom:10px}.try-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.intake-log{margin-top:16px}.log-row{border-bottom:1px solid var(--border-1);align-items:flex-start;gap:10px;padding:8px 0;display:flex}.log-row .ok{color:var(--status-online);flex:none;margin-top:2px}.log-row .overdue{flex:none;margin-top:2px}.log-main{flex-direction:column;flex:1;min-width:0;font-size:13px;display:flex}.mail-badge{cursor:pointer;font-family:var(--font-mono);font-size:11px}.mail-badge:hover{border-color:var(--rocoto-red);color:var(--fg-1)}.source-note{color:var(--fg-3);align-items:center;gap:6px;margin:-8px 0 12px;font-size:12px;display:flex}.boot{flex-direction:column;justify-content:center;align-items:center;gap:12px;height:100vh;display:flex}.boot img{width:44px;height:auto;animation:1s ease-in-out infinite alternate fade}.login-page{background:var(--bg-2);justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login-card{background:var(--bg-1);border:1px solid var(--border-1);border-radius:var(--radius-lg);width:380px;max-width:100%;box-shadow:var(--shadow-md);padding:32px}.login-brand{align-items:center;gap:10px;margin-bottom:24px;display:flex}.login-brand img{height:24px}.login-card h1{margin-bottom:2px;font-size:24px}.login-card>.muted{margin:0 0 20px}.login-google{justify-content:center;width:100%;height:42px;font-size:14px}.login-or{color:var(--fg-3);align-items:center;gap:10px;margin:18px 0;font-size:12px;display:flex}.login-or:before,.login-or:after{content:"";background:var(--border-1);flex:1;height:1px}.login-form .btn{justify-content:center;width:100%;height:40px}.login-error{margin-bottom:14px}.login-switch{margin:14px 0 4px}.signout-link{margin-top:12px}.offline-badge{color:#8a5a00;background:var(--status-warning-tint);border-radius:var(--radius-pill);padding:3px 10px;font-size:12px;font-weight:600}.attachments.drop-over{outline:2px dashed var(--rocoto-red);outline-offset:4px;border-radius:var(--radius-sm);background:var(--rocoto-red-tint-2)}.drawer-sec h4 svg{vertical-align:-2px}.att-add{font-family:var(--font-body);margin-left:auto;font-weight:600}.att-list{flex-direction:column;gap:2px;display:flex}.att{border-radius:var(--radius-sm);grid-template-columns:40px 1fr auto auto auto;align-items:center;gap:10px;padding:6px;display:grid}.att:hover{background:var(--bg-2)}.att-thumb{object-fit:cover;border:1px solid var(--border-1);border-radius:6px;width:40px;height:40px}.att-icon{background:var(--bg-3);width:40px;height:40px;color:var(--fg-2);border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.att-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;font-weight:600;overflow:hidden}a.att-name:hover{text-decoration:underline}.att-meta{white-space:nowrap}.att.uploading{opacity:.6;grid-template-columns:40px 1fr auto}.att-empty{margin:4px 0}.import-help{margin:0 0 14px;font-size:13px}.dup-warning{align-items:flex-start;margin:-6px 0 14px}.dup-warning svg{flex:none;margin-top:2px}.dup-warning a{text-decoration:underline}.head-actions{gap:8px;display:flex}.import-link{margin-right:auto}[dir=auto]{unicode-bidi:plaintext}[dir=auto]:not(button){text-align:start}.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--radius-md);color:var(--fg-2);cursor:pointer;text-align:center;flex-direction:column;align-items:center;gap:8px;padding:32px 16px;transition:background .15s,border-color .15s;display:flex}.dropzone:hover,.dropzone.over{border-color:var(--rocoto-red);background:var(--rocoto-red-tint-2)}.dropzone input{display:none}.import-file{align-items:center;gap:8px;margin-bottom:14px;font-weight:600;display:flex}.import-file .link{margin-left:auto}.import-stats{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px;display:grid}.import-stats div{background:var(--bg-2);border-radius:var(--radius-sm);flex-direction:column;padding:10px 12px;display:flex}.import-stats b{font-family:var(--font-display);font-size:22px}.import-stats span{color:var(--fg-3);font-size:12px}.import-plan h5{text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--fg-3);margin:14px 0 6px;font-size:12px}.import-map{flex-direction:column;gap:4px;display:flex}.import-map-row{grid-template-columns:180px 30px 16px auto 1fr;align-items:center;gap:8px;display:grid}.import-label{font-size:13px;font-weight:600}.import-notes{color:var(--fg-2);margin:0;padding-left:18px}@media (width<=900px){.page,.proj-head,.filterbar,.table-wrap,.gantt,.board-wrap,.compact-bar{padding-left:16px;padding-right:16px}.compact-search,.topbar .me-name,.topbar .request-btn span{display:none}.topbar{padding:0 12px}.kpis{grid-template-columns:repeat(2,1fr)}.drawer{width:100vw}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
