.splash{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:12px;background:#f2f4f6;color:#18212c;font-family:Segoe UI,system-ui,-apple-system,sans-serif}[data-theme=dark] .splash{background:#12171e;color:#e8edf2}.splash-tile{width:88px;height:88px;border-radius:24px;display:grid;place-items:center;background:#fff;box-shadow:0 2px 4px #141e2d0f,0 12px 28px #141e2d1f}[data-theme=dark] .splash-tile{background:#1a2129;box-shadow:0 2px 4px #0000004d,0 14px 34px #00000073}.splash-word{font-weight:700;font-size:22px;letter-spacing:-.02em}.splash-word b{color:#016cff}[data-theme=dark] .splash-word b{color:#4c95ff}.splash path{transform-box:fill-box}.splash svg{overflow:visible}.splash .a{animation:sl 1.9s cubic-bezier(.2,.7,.2,1) infinite}.splash .b{animation:sr 1.9s cubic-bezier(.2,.7,.2,1) infinite}.splash .c{animation:sf 1.9s cubic-bezier(.2,.7,.2,1) infinite}@keyframes sl{0%{opacity:0;transform:translate(-18px,26px)}22%,74%{opacity:1;transform:none}92%,to{opacity:0;transform:translateY(-6px)}}@keyframes sr{0%,8%{opacity:0;transform:translate(18px,26px)}30%,76%{opacity:1;transform:none}94%,to{opacity:0;transform:translateY(-6px)}}@keyframes sf{0%,18%{opacity:0;transform:translate(30px)}42%,78%{opacity:1;transform:none}96%,to{opacity:0;transform:translate(6px,-6px)}}@media(prefers-reduced-motion:reduce){.splash path{animation:none!important}}:root{--bg: #f2f4f6;--surface: #ffffff;--surface-2: #f7f8fa;--hover: #edf0f3;--ink: #18212c;--ink-2: #465262;--ink-3: #66717f;--line: #dee3e9;--primary: #0a5bd8;--primary-ink: #ffffff;--primary-soft: #e7f0fd;--brand-navy: #0b1a3d;--brand-blue: #016cff;--brand-teal: #1aac8f;--side-bg: #0b1a3d;--side-line: rgba(255, 255, 255, .09);--side-ink: #c5d0e2;--side-ink-strong: #ffffff;--side-muted: #8d9bb3;--side-hover: rgba(255, 255, 255, .07);--side-active: rgba(76, 149, 255, .2);--side-accent: #4c95ff;--bug: #c0472a;--task: #2e6cb0;--request: #7a4dae;--improve: #3b8759;--s-open: #3a7bd5;--s-progress: #c98b10;--s-ready: #7a4dae;--s-reopened: #c0472a;--s-resolved: #3b8759;--s-closed: #8b95a2;--sev-critical: #b42318;--sev-major: #d9731a;--sev-minor: #3a7bd5;--sev-trivial: #8b95a2;--p-urgent: #c0472a;--p-high: #d9731a;--p-normal: #6b7785;--p-low: #a6afba;--shadow: 0 1px 2px rgba(20, 30, 45, .06), 0 8px 24px rgba(20, 30, 45, .08);--radius-s: 6px;--radius-m: 10px;--radius-l: 16px;--line-strong: #c9d1da;--ease-out: cubic-bezier(.2, .7, .2, 1);--ease-spring: cubic-bezier(.34, 1.4, .5, 1);--t-fast: .12s;--t-med: .2s;--shadow-lift: 0 2px 4px rgba(20, 30, 45, .06), 0 12px 28px rgba(20, 30, 45, .12);--ring: 0 0 0 3px color-mix(in srgb, var(--primary) 24%, transparent);--head: "Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;--body: "Public Sans", "Segoe UI", system-ui, -apple-system, sans-serif;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #12171e;--surface: #1a2129;--surface-2: #1f2731;--hover: #26303b;--ink: #e8edf2;--ink-2: #b3bdc9;--ink-3: #8e99a7;--line: #2c3642;--primary: #6aa7ff;--primary-ink: #0a1428;--primary-soft: #16294a;--brand-navy: #e8edf2;--brand-blue: #4c95ff;--side-bg: #0a0f17;--side-line: rgba(255, 255, 255, .07);--line-strong: #3a4654;--shadow-lift: 0 2px 4px rgba(0, 0, 0, .3), 0 14px 34px rgba(0, 0, 0, .45);--bug: #e9714f;--task: #6aa6ea;--request: #b08ce0;--improve: #6cc08e;--s-open: #6aa6ea;--s-progress: #e8b23d;--s-ready: #b08ce0;--s-reopened: #e9714f;--s-resolved: #6cc08e;--s-closed: #8b95a2;--sev-critical: #f07062;--sev-major: #f0a050;--sev-minor: #6aa6ea;--sev-trivial: #8e99a7;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 10px 30px rgba(0, 0, 0, .35);color-scheme:dark}}:root[data-theme=dark]{--bg: #12171e;--surface: #1a2129;--surface-2: #1f2731;--hover: #26303b;--ink: #e8edf2;--ink-2: #b3bdc9;--ink-3: #8e99a7;--line: #2c3642;--primary: #6aa7ff;--primary-ink: #0a1428;--primary-soft: #16294a;--brand-navy: #e8edf2;--brand-blue: #4c95ff;--side-bg: #0a0f17;--side-line: rgba(255, 255, 255, .07);--line-strong: #3a4654;--shadow-lift: 0 2px 4px rgba(0, 0, 0, .3), 0 14px 34px rgba(0, 0, 0, .45);--bug: #e9714f;--task: #6aa6ea;--request: #b08ce0;--improve: #6cc08e;--s-open: #6aa6ea;--s-progress: #e8b23d;--s-ready: #b08ce0;--s-reopened: #e9714f;--s-resolved: #6cc08e;--s-closed: #8b95a2;--sev-critical: #f07062;--sev-major: #f0a050;--sev-minor: #6aa6ea;--sev-trivial: #8e99a7;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 10px 30px rgba(0, 0, 0, .35);color-scheme:dark}:root{box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}html{scroll-padding-top:env(safe-area-inset-top,0px);height:100%}*,*:before,*:after{box-sizing:border-box}body{margin:0;height:100%;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}#root{height:100%}a{color:var(--primary)}.spin{width:18px;height:18px;border:2px solid var(--line);border-top-color:var(--primary);border-radius:50%;animation:rot .7s linear infinite}@keyframes rot{to{transform:rotate(360deg)}}.center{display:grid;place-items:center;padding:48px;color:var(--ink-3);gap:10px}.skeleton{position:relative;overflow:hidden;background:var(--hover);border-radius:6px}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--surface) 70%,transparent),transparent);animation:sk 1.4s ease-in-out infinite}@keyframes sk{to{transform:translate(100%)}}button,input,select,textarea{font:inherit;color:inherit}option,optgroup{color:var(--ink);background:var(--surface)}button{cursor:pointer}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}h1,h2,h3{font-family:var(--head);margin:0;letter-spacing:-.01em}h1{font-size:26px;line-height:1.15}h2{font-size:18px}h3{font-size:15px}.muted{color:var(--ink-3)}.small{font-size:12.5px}.app{display:grid;grid-template-columns:244px 1fr;height:100%}.side{background:var(--side-bg);border-right:1px solid var(--side-line);color:var(--side-ink);display:flex;flex-direction:column;min-height:0}.brand{display:flex;align-items:center;gap:10px;padding:18px 18px 14px;font-family:var(--head);font-weight:700;font-size:19px}.brand-mark{width:28px;height:28px;border-radius:8px;background:var(--primary);display:grid;place-items:center;color:var(--primary-ink)}.nav{padding:4px 10px;display:flex;flex-direction:column;gap:2px;overflow:auto;flex:1}.nav-sec{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--side-muted);padding:16px 10px 6px;font-weight:600}.nav-item{text-decoration:none;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-s);border:0;background:none;text-align:left;width:100%;color:var(--ink-2);font-weight:500}.nav-item:hover{background:var(--hover);color:var(--ink)}.nav-item.on{background:var(--primary-soft);color:var(--primary);font-weight:600}.side .nav-item{color:var(--side-ink)}.side .nav-item:hover{background:var(--side-hover);color:var(--side-ink-strong)}.side .nav-item.on{background:var(--side-active);color:var(--side-ink-strong);box-shadow:inset 3px 0 0 var(--side-accent)}.pdot{width:10px;height:10px;border-radius:3px;flex:none}.side-foot{border-top:1px solid var(--line);padding:12px;display:flex;flex-direction:column;gap:8px}.main{display:flex;flex-direction:column;min-width:0;min-height:0}.top{display:flex;align-items:center;gap:10px;padding:12px 24px;border-bottom:1px solid var(--line);background:var(--surface)}.searchbtn{flex:1;max-width:440px;display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--radius-m);border:1px solid var(--line);background:var(--surface-2);color:var(--ink-3);text-align:left}.kbd{margin-left:auto;font-size:11.5px;border:1px solid var(--line);border-radius:5px;padding:1px 6px;color:var(--ink-3);background:var(--surface)}.content{flex:1;overflow:auto;padding:24px}.content-inner{max-width:1200px;margin:0 auto}.btn{display:inline-flex;align-items:center;gap:6px;color:var(--ink);padding:8px 14px;border-radius:var(--radius-m);border:1px solid var(--line);background:var(--surface);font-weight:600;font-size:13.5px;white-space:nowrap;transition:background-color var(--t-fast),border-color var(--t-fast),box-shadow var(--t-med),transform var(--t-fast),filter var(--t-fast);box-shadow:0 1px 1px #141e2d0a}.btn:active:not(:disabled){transform:translateY(1px) scale(.985)}.btn:disabled{cursor:not-allowed;opacity:.62}.btn[aria-busy=true]{opacity:.88;cursor:progress}.btn[aria-busy=true]:before{content:"";width:13px;height:13px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:rot .7s linear infinite;flex:none}.btn:hover{background:var(--hover)}.btn.primary{background:var(--primary) linear-gradient(180deg,#ffffff24,#fff0);color:var(--primary-ink);border-color:transparent;box-shadow:0 1px 2px color-mix(in srgb,var(--primary) 30%,transparent),inset 0 1px #ffffff1f}.btn.primary:hover:not(:disabled){filter:brightness(1.07);box-shadow:0 4px 14px color-mix(in srgb,var(--primary) 32%,transparent),inset 0 1px #ffffff1f}.btn.ghost{border-color:transparent;background:none;color:inherit}.btn.ghost:hover{background:var(--hover)}.btn.danger{color:var(--bug)}.btn.danger-solid{background:var(--bug);color:#fff;border-color:transparent}.btn.danger-solid:hover{filter:brightness(1.06);background:var(--bug)}.err{display:flex;gap:6px;align-items:flex-start;color:var(--bug);font-size:12.5px;font-weight:500;margin-top:6px;line-height:1.4;animation:err-in .2s var(--ease-out)}.err svg{flex:none;margin-top:1px}.hint{display:flex;gap:6px;align-items:flex-start;color:var(--ink-2);font-size:12.5px;margin-top:6px;padding:8px 10px;border-radius:var(--radius-s);background:var(--surface-2);border:1px solid var(--line)}.hint button{border:0;background:none;padding:0;color:var(--primary);font-weight:600}.invalid,.invalid:focus{border-color:var(--bug)!important;outline-color:var(--bug)!important}.invalid{animation:shake .32s var(--ease-out)}.invalid:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--bug) 20%,transparent)!important}.counter{font-size:12px;color:var(--ink-3);text-align:right;margin-top:4px;font-variant-numeric:tabular-nums}.counter.over{color:var(--bug);font-weight:600}.btn.sm{padding:5px 10px;font-size:12.5px}.iconbtn{width:36px;height:36px;display:grid;place-items:center;border-radius:var(--radius-m);border:1px solid transparent;background:none;color:var(--ink-2)}.iconbtn:hover{background:var(--hover)}.field{color:var(--ink);padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--surface);width:100%;transition:border-color var(--t-fast),box-shadow var(--t-med),background-color var(--t-fast)}.field:hover:not(:disabled):not(:focus){border-color:var(--line-strong)}.field:focus{outline:2px solid transparent;border-color:var(--primary);box-shadow:var(--ring)}select.field{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink-3) 50%),linear-gradient(135deg,var(--ink-3) 50%,transparent 50%);background-position:calc(100% - 14px) 52%,calc(100% - 9px) 52%;background-size:5px 5px;background-repeat:no-repeat;padding-right:26px}.preview-as{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-3)}.preview-as select{padding:6px 26px 6px 8px;font-size:12.5px;width:auto}.phead{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:18px}.phead .grow{flex:1;min-width:200px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:18px;overflow-x:auto;scrollbar-width:none}.tab{padding:9px 12px;border:0;background:none;color:var(--ink-3);font-weight:600;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;display:flex;gap:7px;align-items:center}.tab.on{color:var(--ink);border-bottom-color:var(--primary)}.tab:hover{color:var(--ink)}.key{font-weight:600;color:var(--ink-3);font-size:12.5px;white-space:nowrap;font-variant-numeric:tabular-nums}.chip{position:relative;display:inline-flex;align-items:center;gap:6px;padding:2px 9px 2px 8px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;background:color-mix(in srgb,currentColor 10%,var(--surface));border:1px solid color-mix(in srgb,currentColor 26%,transparent);transition:background var(--t-med),border-color var(--t-med)}.chip:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.st-open{color:var(--s-open)}.st-progress{color:var(--s-progress)}.st-ready{color:var(--s-ready)}.st-reopened{color:var(--s-reopened)}.st-resolved{color:var(--s-resolved)}.st-closed{color:var(--s-closed)}.type{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;white-space:nowrap}.type i{width:8px;height:8px;border-radius:2px;display:block}.prio{display:inline-flex;align-items:flex-end;gap:2px;height:12px}.prio b{width:3px;border-radius:1px;background:var(--line);display:block}.av{width:24px;height:24px;border-radius:50%;display:inline-grid;place-items:center;font-size:10.5px;font-weight:700;color:#fff;flex:none}.av.lg{width:32px;height:32px;font-size:12px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l)}.card-h{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 10px;gap:10px}.home-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:18px;align-items:start}.stack{display:flex;flex-direction:column;gap:18px}.irow{display:flex;align-items:center;gap:12px;padding:10px 16px;border-top:1px solid var(--line);cursor:pointer;min-width:0}.irow:hover{background:var(--surface-2)}.irow .t{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.empty{padding:22px 16px;color:var(--ink-3);border-top:1px solid var(--line)}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.stat{padding:14px 16px}.stat .n{font-family:var(--head);font-size:28px;font-weight:700;line-height:1;margin-bottom:4px}.act{display:flex;gap:10px;padding:10px 16px;border-top:1px solid var(--line);font-size:13px}.act .when{color:var(--ink-3);font-size:12px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;align-items:center}.filters .field{width:auto;padding-top:6px;padding-bottom:6px;font-size:13px}.filters .q{min-width:220px;flex:1;max-width:340px}.tbl{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);overflow:hidden}.tr{display:grid;grid-template-columns:24px 84px minmax(220px,1fr) 104px 116px 76px 150px 84px;align-items:center;gap:12px;padding:0 16px;min-height:46px;border-top:1px solid var(--line);cursor:pointer}.tr:first-child{border-top:0}.tr:hover{background:var(--surface-2)}.tr.th{min-height:38px;font-size:12px;color:var(--ink-3);font-weight:600;cursor:default;background:var(--surface-2)}.tcell-title{display:flex;align-items:center;gap:6px;min-width:0}.tcell-title span.tt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.caret{width:20px;height:20px;display:grid;place-items:center;border:0;background:none;color:var(--ink-3);border-radius:4px;flex:none;padding:0}.caret:hover{background:var(--hover)}.subcount{font-size:11.5px;color:var(--ink-3);border:1px solid var(--line);border-radius:999px;padding:0 7px;flex:none}.who{display:flex;align-items:center;gap:8px;min-width:0}.who span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.overdue{color:var(--bug);font-weight:600}.board{display:grid;grid-template-columns:repeat(var(--cols, 4),minmax(184px,1fr));gap:12px;align-items:start;overflow-x:auto;padding-bottom:6px}.col{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-l);padding:10px;min-height:200px;transition:background .15s}.col.over{background:var(--primary-soft)}.col-h{display:flex;align-items:center;gap:8px;padding:4px 4px 10px;font-weight:700}.col-h .n{color:var(--ink-3);font-weight:600}.bcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);padding:10px 12px;margin-bottom:8px;cursor:grab;box-shadow:0 1px 1px #00000008}.bcard:hover{border-color:var(--ink-3)}.bcard.dragging{opacity:.4}.bcard .t{font-weight:500;margin:6px 0 10px}.bcard .meta{display:flex;align-items:center;gap:8px}.bcard .parent{font-size:11.5px;color:var(--ink-3)}.gantt{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);overflow:auto;max-height:calc(100vh - 240px);position:relative}.g-row{display:flex;min-height:38px;border-top:1px solid var(--line)}.g-row:not(.head){height:38px;box-sizing:border-box}.g-row.head{position:sticky;top:0;z-index:3;background:var(--surface);border-top:0;min-height:0}.g-row.group{background:var(--surface-2)}.g-label{position:sticky;left:0;z-index:2;background:var(--surface);flex:none;width:var(--lw);display:flex;align-items:center;gap:6px;padding:0 12px;border-right:1px solid var(--line);min-width:0;cursor:pointer}.g-row.group .g-label{background:var(--surface-2);font-weight:700;cursor:default}.g-row.head .g-label{z-index:4;cursor:default;color:var(--ink-3);font-size:12px;font-weight:600}.g-label .tt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.g-track{position:relative;flex:none}.g-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(to right,var(--line) 1px,transparent 1px);opacity:.55;pointer-events:none}.g-today{position:absolute;top:0;bottom:0;width:2px;background:var(--bug);opacity:.7;pointer-events:none}.g-bar{position:absolute;top:8px;height:22px;border-radius:6px;display:flex;align-items:center;padding:0 8px;font-size:11.5px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;cursor:pointer;touch-action:pan-y}.g-bar.draggable{cursor:grab;touch-action:none}.g-bar .rh{position:absolute;right:0;top:0;bottom:0;width:8px;cursor:ew-resize}.g-months{display:flex;height:24px}.g-month{font-size:12px;font-weight:700;padding:4px 8px;border-left:1px solid var(--line);white-space:nowrap;overflow:hidden}.g-days{display:flex;height:22px}.g-day{font-size:10.5px;color:var(--ink-3);text-align:center;flex:none;line-height:22px}.g-day.we{color:var(--line)}.g-day.td{color:var(--bug);font-weight:700}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0c121a61;z-index:40;animation:fade .2s ease;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(720px,100%);background:var(--surface);z-index:41;display:flex;flex-direction:column;box-shadow:var(--shadow);animation:drawer-in .28s var(--ease-out);padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}@keyframes drawer-in{0%{transform:translate(48px);opacity:0}to{transform:none;opacity:1}}@keyframes fade{0%{opacity:0}to{opacity:1}}.dr-top{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line)}.crumbs{display:flex;align-items:center;gap:6px;flex:1;min-width:0;font-size:13px;color:var(--ink-3);flex-wrap:wrap}.crumbs button{border:0;background:none;color:var(--ink-3);padding:0;font-weight:600}.crumbs button:hover{color:var(--primary)}.dr-body{flex:1;overflow:auto;padding:20px 24px 40px}.title-in{width:100%;border:1px solid transparent;background:none;font-family:var(--head);font-size:22px;font-weight:700;padding:4px 6px;margin-left:-7px;border-radius:var(--radius-s);resize:none;line-height:1.25}.title-in:hover:not(:disabled){border-color:var(--line)}.title-in:focus{outline:2px solid var(--primary)}.props{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 20px;margin:14px 0 22px}.prop{display:grid;grid-template-columns:110px 1fr;align-items:center;gap:8px;min-height:36px}.prop label{color:var(--ink-3);font-size:12.5px;font-weight:600}.inl{border:1px solid transparent;background:none;padding:5px 8px;border-radius:var(--radius-s);width:100%;font-size:13.5px;font-weight:500}.inl:hover:not(:disabled){background:var(--hover)}.inl:focus{outline:2px solid var(--primary);background:var(--surface)}.inl:disabled{opacity:1;cursor:default}select.inl{-webkit-appearance:none;-moz-appearance:none;appearance:none}.desc{width:100%;min-height:110px;border:1px solid var(--line);border-radius:var(--radius-m);padding:12px;background:var(--surface-2);resize:vertical;line-height:1.55}.sec{margin-top:26px}.sec-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:10px}.tree{border:1px solid var(--line);border-radius:var(--radius-m);overflow:hidden}.tnode{display:flex;align-items:center;gap:8px;padding:8px 12px;border-top:1px solid var(--line);cursor:pointer;position:relative}.tnode:first-child{border-top:0}.tnode:hover{background:var(--surface-2)}.tnode .tt{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lvl-line{width:14px;height:14px;border-left:1.5px solid var(--line);border-bottom:1.5px solid var(--line);border-bottom-left-radius:5px;flex:none;margin-top:-8px}.addsub{display:flex;gap:8px;padding:8px 12px;border-top:1px solid var(--line);background:var(--surface-2)}.addsub input{flex:1}.check{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--ink-3);flex:none;display:grid;place-items:center}.check.done{background:var(--s-resolved);border-color:var(--s-resolved);color:#fff}.feed-item{display:flex;gap:10px;padding:10px 0;border-top:1px solid var(--line)}.feed-item:first-child{border-top:0}.feed-item .b{flex:1;min-width:0}.comment-text{white-space:pre-wrap;margin-top:2px}.hist{font-size:13px;color:var(--ink-2)}.hist b{color:var(--ink);font-weight:600}.hist del{color:var(--ink-3)}.ai-box{border:1px solid var(--line);border-radius:var(--radius-m);padding:12px 14px;background:linear-gradient(180deg,var(--primary-soft),transparent 140%)}.ai-out{white-space:pre-wrap;margin-top:10px;font-size:13.5px;line-height:1.55}.segm{display:inline-flex;border:1px solid var(--line);border-radius:var(--radius-m);padding:2px;background:var(--surface-2)}.segm button{border:0;background:none;padding:5px 10px;border-radius:7px;font-size:12.5px;font-weight:600;color:var(--ink-3)}.segm button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #00000014}.modal{position:fixed;z-index:51;left:50%;top:12vh;transform:translate(-50%);width:min(560px,calc(100% - 24px));background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);box-shadow:var(--shadow-lift);animation:modal-in .22s var(--ease-out)}.modal-h{padding:16px 18px 6px;display:flex;align-items:center;justify-content:space-between}.modal-b{padding:8px 18px 18px;display:flex;flex-direction:column;gap:12px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.lbl{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:600;color:var(--ink-3)}.big-in{border:0;font-family:var(--head);font-size:20px;font-weight:600;padding:6px 0;background:none;width:100%}.big-in:focus{outline:none}.modal-f{display:flex;justify-content:flex-end;gap:8px;align-items:center;padding:12px 18px;border-top:1px solid var(--line)}.pal-in{width:100%;border:0;padding:16px 18px;font-size:16px;background:none;border-bottom:1px solid var(--line)}.pal-in:focus{outline:none}.pal-list{max-height:50vh;overflow:auto;padding:6px}.pal-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--radius-s);cursor:pointer}.pal-item.on{background:var(--primary-soft)}.pal-group{font-size:11.5px;font-weight:700;color:var(--ink-3);padding:8px 12px 4px}.matrix{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);overflow:auto}.mx{border-collapse:collapse;width:100%;min-width:640px}.mx th,.mx td{padding:9px 14px;border-top:1px solid var(--line);text-align:left}.mx thead th{border-top:0;background:var(--surface-2);font-size:12.5px;position:sticky;top:0;z-index:1}.mx th.rc,.mx td.rc{text-align:center;width:128px}.mx tr.grp td{background:var(--surface-2);font-weight:700;font-size:12.5px;color:var(--ink-2)}.mx td.perm{font-weight:500}.tog{flex-shrink:0;width:36px;height:21px;border-radius:999px;border:0;background:var(--line);position:relative;padding:0;transition:background .15s;vertical-align:middle}.tog:after{content:"";position:absolute;top:3px;left:3px;width:15px;height:15px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 2px #0003}.tog.on{background:var(--primary)}.tog.on:after{transform:translate(15px)}.tog:disabled{opacity:.45;cursor:not-allowed}.ovr{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--p-high);margin-left:6px;vertical-align:middle}.note{padding:10px 14px;border-radius:var(--radius-m);background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);font-size:13px}.mlist .mrow{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-top:1px solid var(--line);gap:12px}.mlist .mrow:first-child{border-top:0}.toasts{position:fixed;left:50%;transform:translate(-50%);bottom:calc(24px + env(safe-area-inset-bottom,0px));z-index:60;display:flex;flex-direction:column;gap:8px;align-items:center}.toast{position:relative;overflow:hidden;background:var(--ink);color:var(--bg);padding:10px 14px 10px 12px;border-radius:var(--radius-m);display:flex;gap:10px;align-items:center;box-shadow:var(--shadow-lift);font-size:13.5px;animation:toast-in .32s var(--ease-spring);max-width:min(520px,calc(100vw - 24px))}.toast button{background:none;border:0;color:var(--primary-soft);font-weight:700;padding:0}:root[data-theme=dark] .toast button{color:var(--primary-ink)}.login{min-height:100%;display:grid;place-items:center;padding:24px}.login-card{width:min(400px,100%);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);padding:32px 28px;box-shadow:var(--shadow)}.login-card .brand{padding:0 0 6px;font-size:22px}.login-form{display:flex;flex-direction:column;gap:14px;margin-top:22px}.or{display:flex;align-items:center;gap:10px;color:var(--ink-3);font-size:12.5px}.or:before,.or:after{content:"";flex:1;height:1px;background:var(--line)}.rel{position:relative}.pop{position:absolute;top:calc(100% + 6px);right:0;width:min(380px,calc(100vw - 24px));background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);box-shadow:var(--shadow);z-index:45;overflow:hidden;animation:pop-in .16s var(--ease-out);transform-origin:top right}.pop-h{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line);gap:10px}.pop-list{max-height:60vh;overflow:auto}.notif{display:flex;gap:10px;padding:10px 14px;border-top:1px solid var(--line);cursor:pointer;font-size:13px}.notif:first-child{border-top:0}.notif:hover{background:var(--surface-2)}.notif.unread{background:var(--primary-soft)}.badge{position:absolute;top:3px;right:3px;min-width:17px;height:17px;border-radius:999px;background:var(--bug);color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center;padding:0 4px;border:2px solid var(--surface)}.menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;border:0;background:none;text-align:left;color:var(--ink)}.menu-item:hover{background:var(--hover)}.avbtn{border:0;background:none;padding:2px;border-radius:50%}.bulk{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 12px;margin-bottom:10px;background:var(--primary);color:var(--primary-ink);border-radius:var(--radius-m);box-shadow:var(--shadow)}.bulk .field{width:auto;padding:5px 26px 5px 8px;font-size:13px}.bulk .btn{padding:5px 10px;font-size:12.5px}.cb{width:16px;height:16px;accent-color:var(--primary);margin:0;cursor:pointer}.th-sort{border:0;background:none;padding:0;font:inherit;color:inherit;display:inline-flex;gap:3px;align-items:center;font-weight:600}.th-sort:hover,.th-sort.on{color:var(--ink)}.report-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:18px;align-items:start}.hbar{display:grid;grid-template-columns:128px 1fr 32px;gap:10px;align-items:center;padding:7px 16px;font-size:13px}.hbar .track{height:10px;background:var(--surface-2);border-radius:999px;overflow:hidden;border:1px solid var(--line)}.hbar .fill{height:100%;border-radius:999px}.att{display:flex;align-items:center;gap:10px;padding:8px 12px;border-top:1px solid var(--line);font-size:13px}.att:first-child{border-top:0}.ficon{width:34px;height:34px;border-radius:7px;background:var(--surface-2);border:1px solid var(--line);display:grid;place-items:center;font-size:9.5px;font-weight:700;color:var(--ink-2);flex:none;text-transform:uppercase}.drop{border:1.5px dashed var(--line);border-radius:var(--radius-m);padding:14px;text-align:center;color:var(--ink-3);font-size:13px;margin-top:8px}.drop.over{border-color:var(--primary);background:var(--primary-soft);color:var(--ink)}.drop button{border:0;background:none;color:var(--primary);font-weight:600;padding:0}.swatch{width:30px;height:30px;border-radius:8px;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--line)}.swatch.on{box-shadow:0 0 0 2px var(--ink)}.kbd-row{display:flex;justify-content:space-between;padding:9px 0;border-top:1px solid var(--line)}.kbd-row:first-child{border-top:0}.watch{display:inline-flex;align-items:center;gap:6px}.mbrand{display:none}.brand-lockup{display:inline-flex;align-items:center;gap:9px}.brand-lockup img{display:block;flex:none}.wordmark{font-family:var(--head);font-weight:700;font-size:20px;letter-spacing:-.02em;line-height:1}.wm-avo{color:var(--brand-navy)}.wm-track{color:var(--brand-blue)}.full-logo{display:inline-block;position:relative}.full-logo img{display:block;max-width:100%;height:auto}.logo-on-dark{display:none!important}:root[data-theme=dark] .logo-on-light{display:none!important}:root[data-theme=dark] .logo-on-dark{display:block!important}.login-logo{display:flex;justify-content:center;margin:-6px 0 16px}.login-card h2{text-align:center}.login-card>.muted{text-align:center}.wiki{display:grid;grid-template-columns:240px 1fr;gap:18px;align-items:start}.wiki-nav{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);padding:10px;position:sticky;top:0}.md{line-height:1.65;max-width:78ch;margin-top:16px;overflow-wrap:anywhere}.md h1,.md h2,.md h3{margin:1.2em 0 .4em}.md h1{font-size:22px}.md h2{font-size:18px}.md h3{font-size:15.5px}.md p,.md ul,.md ol{margin:0 0 .8em}.md li{margin:.2em 0}.md code{background:var(--surface-2);border:1px solid var(--line);border-radius:4px;padding:1px 5px;font-size:.92em}.md pre{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:12px;overflow-x:auto}.md pre code{border:0;padding:0;background:none}.md table{border-collapse:collapse;display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--line);padding:6px 10px;text-align:left}.md blockquote{margin:0 0 .8em;padding-left:12px;border-left:3px solid var(--line);color:var(--ink-2)}.bnav,.fab{display:none}@media(max-width:820px){.app{grid-template-columns:1fr}.side{display:none}.top{padding:10px 14px}.top .desk{display:none}.wiki{grid-template-columns:1fr}.wiki-nav{position:static}.searchbtn{flex:0 0 auto;width:40px;padding:8px 11px;font-size:0;gap:0;order:2}.searchbtn svg{width:18px;height:18px}.mbrand{display:flex;align-items:center;gap:8px;font-family:var(--head);font-weight:700;font-size:17px}.content{padding:16px 14px 96px}h1{font-size:22px}.home-grid{grid-template-columns:minmax(0,1fr)}.stats{grid-template-columns:repeat(2,1fr)}.tbl{border-radius:var(--radius-m)}.tr.th{display:none}.tr{grid-template-columns:1fr auto;grid-template-areas:"title title" "meta meta";gap:6px;padding:10px 14px}.report-grid{grid-template-columns:minmax(0,1fr)}.bulk{top:-16px}.tr>.c-cb,.tr>.c-key,.tr>.c-type,.tr>.c-prio,.tr>.c-due,.tr>.c-who,.tr>.c-st{display:none}.tr>.tcell-title{grid-area:title}.tr>.m-meta{grid-area:meta;display:flex!important;gap:8px;align-items:center;flex-wrap:wrap}.board{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;margin:0 -14px;padding:0 14px}.col{flex:0 0 84%;scroll-snap-align:center}.gantt{max-height:calc(100vh - 230px)}.drawer{width:100%}.dr-body{padding:16px 16px 40px}.props{grid-template-columns:1fr}.prop{grid-template-columns:104px 1fr}.modal{top:auto;bottom:0;transform:none;left:0;width:100%;border-radius:var(--radius-l) var(--radius-l) 0 0;padding-bottom:env(safe-area-inset-bottom,0px)}.grid2{grid-template-columns:1fr}.bnav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--surface);border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px));justify-content:space-around}.bnav button,.bnav a{text-decoration:none}.bnav button,.bnav a{flex:1;border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;font-weight:600;color:var(--ink-3);padding:6px 0}.bnav button.on,.bnav a.on{color:var(--primary)}.fab{display:grid;place-items:center;position:fixed;right:16px;bottom:calc(76px + env(safe-area-inset-bottom,0px));width:54px;height:54px;border-radius:16px;background:var(--primary);color:var(--primary-ink);border:0;z-index:31;box-shadow:var(--shadow)}}.m-meta{display:none!important}.side .wm-avo{color:#fff}.side .wm-track{color:#5aa2ff}.side .muted{color:var(--side-muted)!important}.side .iconbtn{color:var(--side-muted)}.side .iconbtn:hover{background:var(--side-hover);color:var(--side-ink-strong)}.side .nav-item:focus-visible,.side .iconbtn:focus-visible{outline-color:var(--side-accent)}.side .pdot{box-shadow:0 0 0 1.5px #ffffff2e}.side ::-webkit-scrollbar{width:8px}.side ::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:8px}.side .brand-lockup img{background:#fff;border-radius:8px;padding:3px;box-sizing:content-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}::selection{background:color-mix(in srgb,var(--primary) 24%,transparent)}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:10px;border:3px solid transparent;background-clip:content-box}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px) scale(.97)}to{opacity:1;transform:none}}@keyframes modal-in{0%{opacity:0;transform:translate(-50%) translateY(10px) scale(.985)}to{opacity:1;transform:translate(-50%)}}@keyframes sheet-in{0%{transform:translateY(100%)}to{transform:none}}@keyframes toast-in{0%{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:none}}@keyframes toast-out{to{opacity:0;transform:translateY(8px) scale(.97)}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes err-in{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}@keyframes shake{20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}@keyframes ping{0%{transform:scale(1);opacity:.55}80%,to{transform:scale(2.6);opacity:0}}@keyframes grow-x{0%{transform:scaleX(0)}to{transform:none}}@keyframes grow-y{0%{transform:scaleY(0)}to{transform:none}}@keyframes draw{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes swing{0%,to{transform:rotate(0)}20%{transform:rotate(9deg)}40%{transform:rotate(-7deg)}60%{transform:rotate(4deg)}80%{transform:rotate(-2deg)}}@keyframes pop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.18);opacity:1}to{transform:scale(1)}}@keyframes flash{0%{background-color:color-mix(in srgb,var(--brand-teal) 22%,transparent)}to{background-color:transparent}}@keyframes dash{to{stroke-dashoffset:-16}}@keyframes drift{0%,to{transform:translate(0) scale(1)}50%{transform:translate(4%,-3%) scale(1.06)}}.mark-svg{display:block;overflow:visible}.mark-svg path{transform-box:fill-box}.mark-svg.is-animated .mk-l{animation:mk-l 1.9s var(--ease-out) infinite}.mark-svg.is-animated .mk-r{animation:mk-r 1.9s var(--ease-out) infinite}.mark-svg.is-animated .mk-f{animation:mk-f 1.9s var(--ease-out) infinite}@keyframes mk-l{0%{opacity:0;transform:translate(-18px,26px)}22%,74%{opacity:1;transform:none}92%,to{opacity:0;transform:translateY(-6px)}}@keyframes mk-r{0%,8%{opacity:0;transform:translate(18px,26px)}30%,76%{opacity:1;transform:none}94%,to{opacity:0;transform:translateY(-6px)}}@keyframes mk-f{0%,18%{opacity:0;transform:translate(30px)}42%,78%{opacity:1;transform:none}96%,to{opacity:0;transform:translate(6px,-6px)}}.boot{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:12px;background:var(--bg);z-index:100;animation:fade .3s ease}.boot-mark{width:88px;height:88px;border-radius:24px;display:grid;place-items:center;background:var(--surface);box-shadow:var(--shadow-lift)}.boot-word{font-family:var(--head);font-weight:700;font-size:22px;letter-spacing:-.02em}.boot-label{color:var(--ink-3);font-size:13px;min-height:18px}.loader{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:56px 16px;color:var(--ink-3);font-size:13px;opacity:0;animation:fade .25s ease .15s forwards}.loader.inline{flex-direction:row;padding:14px}.topprog{position:fixed;top:0;left:0;right:0;height:3px;z-index:90;pointer-events:none;opacity:0;transition:opacity .3s ease .1s}.topprog i{display:block;height:100%;transform-origin:left;transform:scaleX(0);background:linear-gradient(90deg,var(--brand-blue),var(--brand-teal));box-shadow:0 0 8px color-mix(in srgb,var(--brand-blue) 60%,transparent);border-radius:0 3px 3px 0}.topprog.run{opacity:1;transition:none}.topprog.run i{animation:trickle 9s cubic-bezier(.1,.6,.2,1) forwards}.topprog.done{opacity:0}.topprog.done i{transform:scaleX(1);transition:transform .25s ease}@keyframes trickle{0%{transform:scaleX(0)}10%{transform:scaleX(.35)}40%{transform:scaleX(.7)}to{transform:scaleX(.93)}}.sk-wrap{display:flex;flex-direction:column}.sk-row{display:flex;align-items:center;gap:14px;padding:13px 16px;border-top:1px solid var(--line)}.sk-wrap .sk-row:first-child{border-top:0}.card .sk-wrap .sk-row:first-child{border-top:1px solid var(--line)}.sk-card{cursor:default}.stat .skeleton{flex:none}.empty-rich{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:26px 20px 28px}.empty-rich.compact{flex-direction:row;text-align:left;padding:16px;gap:14px}.empty-rich.compact .empty-ill{width:84px;height:59px;flex:none}.empty-text{max-width:42ch;color:var(--ink-3);line-height:1.5}.empty-ill{display:block;overflow:visible}.empty-ill .float{animation:float 3.6s ease-in-out infinite;transform-box:fill-box}.empty-ill .swing{animation:swing 2.4s ease-in-out .4s 1 both;transform-origin:60px 22px}.empty-ill .draw{stroke-dasharray:1;animation:draw 1.1s var(--ease-out) .15s both}.empty-ill .grow-y{transform-box:fill-box;transform-origin:bottom;animation:grow-y .7s var(--ease-out) both}.empty-ill .grow-x{transform-box:fill-box;transform-origin:left;animation:grow-x .7s var(--ease-out) both}.empty-ill .dash{animation:dash 1s linear infinite}.empty-ill .wave{transform-box:fill-box;transform-origin:left;animation:float 3s ease-in-out infinite}.st-progress:after{content:"";position:absolute;left:8px;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;background:currentColor;animation:ping 2.4s cubic-bezier(0,0,.2,1) infinite;pointer-events:none}.key{letter-spacing:.01em}.av{box-shadow:0 0 0 2px var(--surface);transition:transform var(--t-fast)}.check.done,.badge{animation:pop .35s var(--ease-spring)}.bell-ring svg{animation:swing .9s ease-in-out;transform-origin:50% 15%}.card{transition:box-shadow var(--t-med),transform var(--t-med),border-color var(--t-med)}.stat.with-ic{display:flex;align-items:center;gap:12px}.stat-ic{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;flex:none;color:var(--tone);background:color-mix(in srgb,var(--tone) 13%,var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tone) 22%,transparent)}.stat:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.stat .n{font-variant-numeric:tabular-nums}.irow,.tr,.notif,.tnode,.pal-item,.menu-item,.nav-item,.tab,.iconbtn,.caret,.inl,.segm button{transition:background-color var(--t-fast),color var(--t-fast),box-shadow var(--t-fast)}.irow{position:relative}.irow:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--primary);transform:scaleY(0);transition:transform var(--t-med) var(--ease-out)}.irow:hover:before{transform:none}.card .irow,.card .act,.tbl .tr:not(.th),.notif,.feed-item{animation:rise .32s var(--ease-out) both}.card .irow:nth-child(3),.card .act:nth-child(3),.tbl .tr:nth-child(3){animation-delay:.03s}.card .irow:nth-child(4),.card .act:nth-child(4),.tbl .tr:nth-child(4){animation-delay:.06s}.card .irow:nth-child(5),.card .act:nth-child(5),.tbl .tr:nth-child(5){animation-delay:.09s}.card .irow:nth-child(6),.card .act:nth-child(6),.tbl .tr:nth-child(6){animation-delay:.12s}.card .irow:nth-child(7),.card .act:nth-child(7),.tbl .tr:nth-child(7){animation-delay:.15s}.card .irow:nth-child(n+8),.card .act:nth-child(n+8),.tbl .tr:nth-child(n+8){animation-delay:.18s}.tr.lit,.irow.lit{animation:flash 1.8s ease-out}.tbl.windowed .tr:not(.th):not(.lit){animation:none}.tab{position:relative;border-bottom-color:transparent!important}.tab:after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:2px;border-radius:2px;background:var(--primary);transform:scaleX(0);transition:transform var(--t-med) var(--ease-out)}.tab.on:after{transform:none}.tab svg{transition:transform var(--t-med) var(--ease-out)}.tab:hover svg{transform:translateY(-1px)}.nav-item svg{transition:transform var(--t-med) var(--ease-out)}.nav-item:hover svg{transform:translate(1px)}.iconbtn:active,.caret:active{transform:scale(.92)}.tog{transition:background-color var(--t-med) var(--ease-out)}.tog:after{transition:transform var(--t-med) var(--ease-spring)}.searchbtn{transition:border-color var(--t-fast),box-shadow var(--t-med),background-color var(--t-fast)}.searchbtn:hover{border-color:var(--line-strong);background:var(--surface);box-shadow:0 1px 4px #141e2d0f}.bcard{transition:transform var(--t-med) var(--ease-out),box-shadow var(--t-med),border-color var(--t-fast),opacity var(--t-med);animation:rise .28s var(--ease-out) both}.bcard:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--line-strong)}.bcard.dragging{opacity:.35;transform:rotate(1.5deg) scale(.98)}.col{transition:background-color var(--t-med),box-shadow var(--t-med)}.col.over{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--primary) 45%,transparent)}.col-h .n{display:inline-grid;place-items:center;min-width:22px;height:20px;padding:0 6px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:12px}.col-dot{width:8px;height:8px;border-radius:50%;flex:none}.hbar .fill{transform-origin:left;animation:grow-x .8s var(--ease-out) both}.hbar:nth-child(3) .fill{animation-delay:.06s}.hbar:nth-child(4) .fill{animation-delay:.12s}.hbar:nth-child(5) .fill{animation-delay:.18s}.hbar:nth-child(n+6) .fill{animation-delay:.24s}.burn-line{stroke-dasharray:1;animation:draw 1.2s var(--ease-out) .1s both}.burn-dot{transform-box:fill-box;transform-origin:center;animation:pop .4s var(--ease-spring) 1.1s both}.g-bar{transform-origin:left;animation:grow-x .5s var(--ease-out) both;transition:box-shadow var(--t-fast),filter var(--t-fast)}.g-bar:hover{filter:brightness(1.06);box-shadow:0 2px 8px #0000002e}.toast.leaving{animation:toast-out .2s ease forwards}.toast .t-ic{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;flex:none;background:color-mix(in srgb,var(--brand-teal) 85%,#000);color:#fff;animation:pop .4s var(--ease-spring) .05s both}.toast.err .t-ic{background:#ffffff38}.toast .t-bar{position:absolute;left:0;bottom:0;height:2px;width:100%;transform-origin:left;background:color-mix(in srgb,var(--brand-teal) 80%,transparent);animation:grow-x var(--dur) linear reverse both}.toast.err .t-bar{background:#ffffff80}.toast:hover .t-bar{animation-play-state:paused}.login{position:relative;overflow:hidden;isolation:isolate;align-content:center}.login:before,.login:after{content:"";position:absolute;z-index:-1;width:62vmax;height:62vmax;border-radius:50%;filter:blur(60px);opacity:.5;animation:drift 22s ease-in-out infinite}.login:before{left:-22vmax;top:-26vmax;background:radial-gradient(circle,color-mix(in srgb,var(--brand-blue) 45%,transparent),transparent 65%)}.login:after{right:-24vmax;bottom:-28vmax;background:radial-gradient(circle,color-mix(in srgb,var(--brand-teal) 40%,transparent),transparent 65%);animation-delay:-11s}.login-grid{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background-image:radial-gradient(color-mix(in srgb,var(--ink) 9%,transparent) 1px,transparent 1px);background-size:22px 22px;-webkit-mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%);mask-image:radial-gradient(ellipse at center,#000 30%,transparent 75%)}.login-card{animation:rise .5s var(--ease-out) both;background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.login-logo{animation:fade .6s ease .1s both}.login-foot{margin-top:18px;text-align:center;color:var(--ink-3);font-size:12px}.theme-switching *,.theme-switching *:before,.theme-switching *:after{transition:background-color .35s ease,border-color .35s ease,color .35s ease,fill .35s ease!important}@media(max-width:820px){.modal{animation:sheet-in .3s var(--ease-out)}.bcard:hover{transform:none}.empty-rich.compact{flex-direction:column;text-align:center}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.mark-svg.is-animated{animation:breathe 1.6s ease-in-out infinite!important}.mark-svg.is-animated path{animation:none!important;opacity:1!important}.spin,.btn[aria-busy=true]:before{animation:rot 1.4s linear infinite!important;animation-duration:1.4s!important;animation-iteration-count:infinite!important}.loader{opacity:1}.st-progress:after,.login:before,.login:after{display:none}@keyframes breathe{50%{opacity:.45}}}@media(forced-colors:active){.topprog,.login:before,.login:after{display:none}}.col-empty{margin:2px 0 4px;padding:18px 8px;text-align:center;color:var(--ink-3);font-size:12.5px;border:1.5px dashed var(--line);border-radius:var(--radius-m);transition:border-color var(--t-med),color var(--t-med),background-color var(--t-med)}.col.over .col-empty{border-color:var(--primary);color:var(--primary);background:color-mix(in srgb,var(--primary) 6%,transparent)}.ai-box{position:relative;overflow:hidden}.ai-thinking{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:13px;font-weight:600;color:var(--primary)}.ai-thinking svg{animation:spark-spin 1.6s var(--ease-out) infinite}.ai-thinking span{background:linear-gradient(90deg,var(--ink-3) 0%,var(--primary) 40%,var(--brand-teal) 55%,var(--ink-3) 90%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer-text 1.6s linear infinite}@keyframes spark-spin{0%{transform:rotate(0) scale(1)}50%{transform:rotate(90deg) scale(1.15)}to{transform:rotate(180deg) scale(1)}}@keyframes shimmer-text{0%{background-position:120% 0}to{background-position:-100% 0}}.ai-out{animation:rise .35s var(--ease-out)}.num{font-variant-numeric:tabular-nums}.sev{display:inline-flex;align-items:center;padding:1px 7px;border-radius:5px;font-size:11.5px;font-weight:700;letter-spacing:.01em;white-space:nowrap;color:var(--c);background:color-mix(in srgb,var(--c) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--c) 30%,transparent)}.sev.crit{color:#fff;background:var(--c);border-color:transparent}.blocked{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;border-radius:5px;font-size:11px;font-weight:700;color:var(--bug);background:color-mix(in srgb,var(--bug) 10%,var(--surface));border:1px solid color-mix(in srgb,var(--bug) 28%,transparent);white-space:nowrap;flex:none}.res{font-size:12px;font-weight:600;color:var(--ink-3)}.mention-wrap{position:relative}.mention-wrap>textarea{display:block;width:100%}.mention-pop{position:absolute;left:0;top:calc(100% + 4px);z-index:48;width:min(340px,100%);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);box-shadow:var(--shadow-lift);padding:4px;animation:pop-in .14s var(--ease-out);transform-origin:top left}.mention-opt{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:var(--radius-s);cursor:pointer;font-size:13.5px}.mention-opt.on{background:var(--primary-soft)}.mo-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mo-handle{margin-left:auto;color:var(--ink-3);font-size:12px;white-space:nowrap}.mention-hint{padding:6px 9px 4px;font-size:11.5px;color:var(--ink-3);border-top:1px solid var(--line);margin-top:4px}.mention{display:inline-block;padding:0 6px;border-radius:6px;background:var(--primary-soft);color:var(--primary);font-weight:600;white-space:nowrap}.key-link{border:0;background:none;padding:0;font:inherit;font-weight:700;color:var(--primary);cursor:pointer;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--primary) 35%,transparent);text-underline-offset:2px}.comment-text a{overflow-wrap:anywhere}.inline-shot{display:block;margin:8px 0;padding:0;border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface-2);cursor:zoom-in;overflow:hidden;max-width:min(100%,420px);transition:box-shadow var(--t-med),transform var(--t-med)}.inline-shot:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.inline-shot img{display:block;max-width:100%;max-height:280px;object-fit:contain}.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:10px}.thumbs.small-thumbs{grid-template-columns:repeat(auto-fill,minmax(84px,104px));margin-top:8px}.thumb{position:relative;aspect-ratio:4/3;padding:0;border:1px solid var(--line);border-radius:var(--radius-m);overflow:hidden;background:var(--surface-2);cursor:zoom-in;transition:transform var(--t-med) var(--ease-out),box-shadow var(--t-med),border-color var(--t-fast);animation:rise .3s var(--ease-out) both}.thumb:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--line-strong)}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.thumb-video{display:grid;place-items:center;align-content:center;gap:4px;height:100%;color:var(--ink-2);font-size:11.5px;font-weight:600;background:linear-gradient(135deg,var(--surface-2),var(--hover))}.thumb-name{position:absolute;left:0;right:0;bottom:0;padding:14px 8px 5px;font-size:11px;font-weight:600;color:#fff;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:linear-gradient(transparent,#0009);opacity:0;transition:opacity var(--t-med)}.thumb:hover .thumb-name,.thumb:focus-visible .thumb-name{opacity:1}.small-thumbs .thumb-name{display:none}.viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:66;background:#080c14eb;display:flex;flex-direction:column;animation:fade .18s ease;color:#fff}.viewer-top{display:flex;align-items:center;gap:12px;padding:12px 16px}.viewer-top .btn{background:#ffffff1a;color:#fff;border-color:#ffffff29;box-shadow:none}.viewer-top .btn:hover{background:#ffffff2e}.viewer-x{color:#fff}.viewer-x:hover{background:#ffffff1f}.viewer-name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.viewer-meta{font-size:12px;opacity:.7}.viewer-stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:8px 64px 24px;position:relative}.viewer-stage img,.viewer-stage video{max-width:100%;max-height:100%;object-fit:contain;border-radius:8px;box-shadow:0 20px 60px #00000080;animation:pop-in .22s var(--ease-out);background:#000}.viewer-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:#ffffff14;color:#fff;display:grid;place-items:center}.viewer-nav:hover{background:#ffffff2e}.viewer-nav.l{left:12px}.viewer-nav.r{right:12px}.rec-bar{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:72;display:flex;align-items:center;gap:12px;padding:8px 10px 8px 14px;border-radius:999px;background:var(--ink);color:var(--bg);box-shadow:var(--shadow-lift);font-weight:600;font-variant-numeric:tabular-nums;animation:toast-in .3s var(--ease-spring)}.rec-bar .btn{border-radius:999px}.rec-dot{width:10px;height:10px;border-radius:50%;background:#e5484d;box-shadow:0 0 #e5484d99;animation:rec 1.4s ease-out infinite}@keyframes rec{to{box-shadow:0 0 0 10px #e5484d00}}.annot{position:fixed;top:3vh;right:3vw;bottom:3vh;left:3vw;z-index:71;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l);box-shadow:var(--shadow-lift);overflow:hidden;animation:pop-in .2s var(--ease-out)}.annot-top{display:flex;align-items:center;gap:14px;padding:10px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}.annot-top h2{font-size:16px;white-space:nowrap}.annot-tools{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-left:auto}.annot-btn{width:34px;height:34px;display:grid;place-items:center;border-radius:8px;border:1px solid transparent;background:none;color:var(--ink-2);font-weight:700;font-size:12.5px}.annot-btn:hover:not(:disabled){background:var(--hover);color:var(--ink)}.annot-btn.on{background:var(--primary-soft);color:var(--primary);border-color:color-mix(in srgb,var(--primary) 35%,transparent)}.annot-btn:disabled{opacity:.35;cursor:default}.annot-color{width:22px;height:22px;border-radius:50%;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--line-strong);padding:0;transition:transform var(--t-fast)}.annot-color.on{box-shadow:0 0 0 2px var(--primary);transform:scale(1.12)}.annot-sep{width:1px;height:22px;background:var(--line);margin:0 4px}.annot-stage{flex:1;min-height:0;display:grid;place-items:center;padding:16px;overflow:auto;background:repeating-conic-gradient(var(--surface-2) 0% 25%,var(--surface) 0% 50%) 50% / 18px 18px}.annot-canvas-wrap{position:relative;display:inline-block;line-height:0}.annot-canvas{max-width:100%;max-height:calc(94vh - 150px);box-shadow:0 6px 30px #0000002e;border-radius:4px;touch-action:none;cursor:crosshair}.annot-canvas.t-text{cursor:text}.annot-text{position:absolute;min-width:160px;padding:4px 8px;border:2px solid var(--primary);border-radius:6px;background:#fffffff2;font:700 15px var(--body);line-height:1.3;box-shadow:var(--shadow)}.annot-foot{display:flex;align-items:center;gap:12px;padding:10px 14px;border-top:1px solid var(--line);flex-wrap:wrap}.link-group{padding:7px 12px 5px;font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);background:var(--surface-2);border-top:1px solid var(--line)}.tree>div:first-child>.link-group{border-top:0}.link-form{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start;margin-top:10px}.link-form .picker{flex:1;min-width:220px}.picker{position:relative}.picker-pop{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:62;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);box-shadow:var(--shadow-lift);padding:4px;max-height:300px;overflow:auto;animation:pop-in .14s var(--ease-out);transform-origin:top left}.picker-opt{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:var(--radius-s);cursor:pointer;font-size:13px}.picker-opt.on{background:var(--primary-soft)}.picker-opt .tt{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:820px){.annot{top:0;right:0;bottom:0;left:0;border-radius:0}.viewer-stage{padding:8px 8px 16px}.viewer-nav,.viewer-top .btn span{display:none}}.bug-box{border:1px solid var(--line);border-radius:var(--radius-m);padding:6px 12px 12px;margin:0;background:var(--surface-2);animation:rise .25s var(--ease-out)}.bug-box legend{padding:0 6px;font-size:12px;font-weight:700;color:var(--ink-3)}.shots{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.shot{position:relative;width:84px;height:62px;border-radius:8px;overflow:hidden;border:1px solid var(--line);animation:pop-in .2s var(--ease-out)}.shot img{width:100%;height:100%;object-fit:cover}.shot-x{position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:50%;border:0;background:#0009;color:#fff;display:grid;place-items:center}.modal{max-height:76vh;display:flex;flex-direction:column}.modal>.modal-b{overflow:auto}@media(max-width:820px){.modal{max-height:92vh}}.settings-tabs{max-width:100%;overflow-x:auto;scrollbar-width:none}.flow{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.flow-step{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;font-weight:600;font-size:13px;background:color-mix(in srgb,var(--c) 11%,var(--surface));border:1px solid color-mix(in srgb,var(--c) 32%,transparent);animation:pop-in .25s var(--ease-out) both}.flow-step i{width:8px;height:8px;border-radius:50%;background:var(--c)}.flow-step.opt{border-style:dashed}.flow-arrow{color:var(--ink-3);font-weight:700}.env-list{display:flex;gap:8px;flex-wrap:wrap}.env-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 6px 4px 11px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-weight:600;font-size:13px;animation:pop-in .2s var(--ease-out)}.env-chip button{width:20px;height:20px;border-radius:50%;border:0;background:var(--hover);color:var(--ink-2);display:grid;place-items:center;padding:0}.env-chip button:hover{background:color-mix(in srgb,var(--bug) 15%,var(--surface));color:var(--bug)}.comp-ic{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;flex:none;color:var(--primary);background:var(--primary-soft)}.filters-end{margin-left:auto;display:flex;align-items:center;gap:8px}.view-btn{max-width:240px}.view-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.views-pop{width:280px;padding:4px 0;max-height:70vh;overflow:auto}.views-sec{padding:8px 14px 4px;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}.menu-item.on{color:var(--primary);font-weight:600}.menu-item svg:last-child{margin-left:auto}.view-row{padding:0 8px 0 0}.view-row>button:first-child{flex:1;text-align:left;border:0;background:none;padding:10px 14px;color:inherit;font:inherit}.more-pop{width:min(520px,calc(100vw - 24px));padding:14px}.more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}.count-pill{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--primary);color:var(--primary-ink);font-size:11px;font-weight:700}.btn.has-count{border-color:color-mix(in srgb,var(--primary) 45%,var(--line))}.chips-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:-4px 0 12px}.fchip{display:inline-flex;align-items:center;gap:4px;padding:3px 4px 3px 10px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:12.5px;font-weight:600;animation:pop-in .18s var(--ease-out)}.fchip button{width:20px;height:20px;display:grid;place-items:center;border:0;border-radius:50%;background:none;color:inherit;padding:0}.fchip button:hover{background:color-mix(in srgb,var(--primary) 16%,transparent)}.check-row{display:flex;gap:10px;align-items:flex-start;cursor:pointer}.check-row .cb{margin-top:2px}.import-modal{width:min(760px,calc(100% - 24px));top:7vh;max-height:86vh}.steps{display:flex;gap:6px;list-style:none;margin:0;padding:2px 18px 10px;flex-wrap:wrap}.steps li{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--ink-3);padding-right:10px}.steps li span{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--hover);font-size:11.5px}.steps li.on{color:var(--ink)}.steps li.on span{background:var(--primary);color:var(--primary-ink)}.big-drop{padding:36px 16px;display:grid;justify-items:center;gap:8px}.map-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 16px}.map-row{display:grid;grid-template-columns:120px 1fr;gap:8px;align-items:center;font-size:13px;font-weight:600;color:var(--ink-2)}.req{color:var(--bug);margin-left:2px}.map-preview{border:1px solid var(--line);border-radius:var(--radius-m);overflow:hidden}.map-table{overflow:auto;max-height:180px}.map-table table{border-collapse:collapse;width:100%;font-size:12.5px}.map-table th,.map-table td{text-align:left;padding:6px 10px;border-top:1px solid var(--line);white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis}.map-table th{background:var(--surface-2);color:var(--ink-3);font-weight:700;border-top:0;position:sticky;top:0}.check-sum{border-radius:var(--radius-m);padding:12px 14px;border:1px solid;animation:rise .25s var(--ease-out)}.check-sum.good{background:color-mix(in srgb,var(--s-resolved) 9%,var(--surface));border-color:color-mix(in srgb,var(--s-resolved) 35%,transparent)}.check-sum.bad{background:color-mix(in srgb,var(--bug) 7%,var(--surface));border-color:color-mix(in srgb,var(--bug) 30%,transparent)}.check-head{display:flex;align-items:center;gap:8px}.check-sum.good .check-head svg{color:var(--s-resolved)}.check-sum.bad .check-head svg{color:var(--bug)}.check-list{margin:10px 0 0;padding:0 0 0 18px;max-height:180px;overflow:auto;font-size:12.5px;display:grid;gap:4px}.check-list li.bad b{color:var(--bug)}.done-mark{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--s-resolved);animation:pop .45s var(--ease-spring);box-shadow:0 8px 24px color-mix(in srgb,var(--s-resolved) 40%,transparent)}@media(max-width:820px){.map-grid,.more-grid{grid-template-columns:1fr}.filters-end{width:100%;justify-content:flex-end}.view-btn{max-width:100%}}.modal-b>*{flex-shrink:0}a.btn{text-decoration:none;color:inherit}a.btn.primary{color:var(--primary-ink)}.tests-grid{display:grid;grid-template-columns:240px minmax(0,1fr);gap:18px;align-items:start}.suite-nav{padding:8px;position:sticky;top:0}.suite-link{position:relative;cursor:pointer}.sl-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suite-x{width:24px;height:24px;opacity:0;transition:opacity var(--t-fast)}.suite-link:hover .suite-x,.suite-link:focus-within .suite-x{opacity:1}.suite-link:hover .suite-x+*{display:none}.tr.tc-row{grid-template-columns:24px 84px minmax(200px,1fr) 70px 54px 110px}.tr.rc-row{grid-template-columns:96px 84px minmax(200px,1fr) 84px 130px}.tr.rc-row.sel{background:var(--primary-soft)}.result{display:inline-flex;align-items:center;gap:6px;padding:2px 9px 2px 8px;border-radius:999px;font-size:12px;font-weight:700;color:color-mix(in srgb,var(--c) 85%,var(--ink));background:color-mix(in srgb,var(--c) 13%,var(--surface));border:1px solid color-mix(in srgb,var(--c) 32%,transparent);white-space:nowrap}.result:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--c)}.result.r-untested{color:var(--ink-3)}.runbar{display:flex;height:8px;border-radius:999px;overflow:hidden;background:var(--hover);gap:2px;min-width:80px}.runbar.big{height:14px}.runbar i{display:block;min-width:4px;transform-origin:left;animation:grow-x .7s var(--ease-out) both}.last-sum{display:flex;align-items:center;gap:8px;min-width:200px}.last-sum .runbar{flex:1}.runs{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.runs-h{margin:26px 0 12px;color:var(--ink-3);font-size:13px;text-transform:uppercase;letter-spacing:.05em}.run-card{text-align:left;padding:16px;display:flex;flex-direction:column;gap:12px;cursor:pointer;font:inherit;color:inherit;animation:rise .3s var(--ease-out) both}.run-card:hover{box-shadow:var(--shadow);transform:translateY(-2px);border-color:var(--line-strong)}.run-head{display:flex;gap:12px;align-items:flex-start}.run-name{font-weight:700;font-size:15px;margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-pct{margin-left:auto;display:grid;justify-items:end;line-height:1.1}.run-pct b{font-family:var(--head);font-size:22px}.run-legend{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--ink-2)}.run-legend span{display:inline-flex;align-items:center;gap:5px}.run-legend i{width:8px;height:8px;border-radius:2px;display:block}.run-done{margin-left:auto;color:var(--s-resolved);font-weight:700}.back-link{margin:-6px 0 8px -8px}.run-top{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap;margin-bottom:14px}.run-title{font-size:22px}.run-stats{display:flex;align-items:center;gap:20px;padding:16px 18px;margin-bottom:14px;flex-wrap:wrap}.run-big{display:grid;line-height:1.15}.run-big b{font-family:var(--head);font-size:30px}.result-filter{margin-bottom:12px;flex-wrap:wrap}.dr-foot{display:flex;align-items:center;gap:8px;justify-content:flex-end;padding:12px 16px;border-top:1px solid var(--line);background:var(--surface)}.dr-foot .muted{margin-right:auto}.steps-ed{display:flex;flex-direction:column;gap:10px}.step-ed{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:start;padding:10px;border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface-2);animation:rise .2s var(--ease-out)}.step-n{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:12.5px;background:var(--primary-soft);color:var(--primary);flex:none}.step-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.step-fields .err{grid-column:1 / -1;margin-top:0}.step-fields textarea{resize:vertical;min-height:58px}.step-fields .expected{background:color-mix(in srgb,var(--s-resolved) 5%,var(--surface))}.step-tools{display:flex;flex-direction:column}.step-tools .iconbtn{width:28px;height:26px}.scope-box{border:0;padding:0;margin:0;display:grid;gap:8px}.suite-picks{display:grid;gap:6px;padding:4px 0 4px 26px;max-height:180px;overflow:auto}.exec-title{font-size:20px;line-height:1.3}.exec-steps{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:10px}.exec-steps li{display:flex;gap:12px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface);animation:rise .25s var(--ease-out) both}.exec-steps li:nth-child(2){animation-delay:.04s}.exec-steps li:nth-child(3){animation-delay:.08s}.exec-steps li:nth-child(n+4){animation-delay:.12s}.es-action{font-weight:600;white-space:pre-wrap}.es-exp{margin-top:6px;padding:6px 10px;border-radius:6px;font-size:13px;background:color-mix(in srgb,var(--s-resolved) 8%,var(--surface));white-space:pre-wrap}.es-exp b{color:var(--s-resolved)}.result-btns{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}.res-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 8px;border-radius:var(--radius-m);border:1.5px solid color-mix(in srgb,var(--c) 45%,var(--line));background:var(--surface);color:color-mix(in srgb,var(--c) 85%,var(--ink));font-weight:700;transition:background-color var(--t-fast),transform var(--t-fast),box-shadow var(--t-med)}.res-btn:hover:not(:disabled){background:color-mix(in srgb,var(--c) 10%,var(--surface))}.res-btn:active:not(:disabled){transform:scale(.97)}.res-btn.on{background:var(--c);color:#fff;border-color:transparent;box-shadow:0 4px 14px color-mix(in srgb,var(--c) 35%,transparent)}.res-btn .kbd{margin-left:2px;font-size:10.5px;padding:0 5px;background:transparent;color:inherit;border-color:currentColor;opacity:.55}.res-btn[aria-busy=true]:before{content:"";width:12px;height:12px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:rot .7s linear infinite}.bug-form{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:10px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface-2);animation:rise .2s var(--ease-out)}@media(max-width:820px){.tests-grid{grid-template-columns:1fr}.suite-nav{position:static}.tr.tc-row,.tr.rc-row{grid-template-columns:1fr auto}.tr.tc-row>span:nth-child(1),.tr.tc-row>span:nth-child(4),.tr.tc-row>span:nth-child(5){display:none}.step-fields{grid-template-columns:1fr}.result-btns{grid-template-columns:repeat(2,minmax(0,1fr))}.bug-form{grid-template-columns:1fr}}.time-sum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface-2)}.time-fig{display:flex;flex-direction:column;gap:2px;min-width:0}.time-fig b{font-family:var(--head);font-size:17px;font-variant-numeric:tabular-nums}.time-est{font-family:var(--head);font-size:17px;font-weight:700;padding:2px 6px;margin-left:-6px;max-width:120px}.time-bar{grid-column:1/-1;height:8px;border-radius:999px;background:var(--surface);border:1px solid var(--line);overflow:hidden}.time-bar span{display:block;height:100%;background:var(--primary);border-radius:inherit;transition:width .5s cubic-bezier(.2,.8,.2,1)}.time-bar.over span{background:var(--p-high)}.time-form{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;margin-top:12px;padding:14px;border:1px solid var(--line);border-radius:var(--radius-m);animation:pop-in .18s ease-out}.time-form .lbl{display:grid;gap:4px}.time-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:8px}.quick-days{display:flex;gap:6px}.quick-days button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:2px 9px;font-size:12px;color:var(--ink-2)}.quick-days button.on{border-color:var(--primary);color:var(--primary);background:var(--primary-weak, var(--surface-2))}.time-list{margin-top:10px;display:grid}.time-row{display:flex;gap:10px;align-items:flex-start;padding:8px 2px;border-top:1px solid var(--line)}.time-row:first-child{border-top:0}.time-what{flex:1;min-width:0;font-size:13px}@media(max-width:640px){.time-form{grid-template-columns:1fr}}.ts-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.ts-head h1{margin:0 auto 0 0}.ts-wrap{overflow-x:auto}.ts{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;min-width:760px}.ts th,.ts td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums}.ts th:first-child,.ts td:first-child{text-align:left}.ts thead th{font-size:12px;color:var(--ink-3);font-weight:600;background:var(--surface-2);position:sticky;top:0}.ts thead th.today{color:var(--primary)}.ts td.today{background:color-mix(in srgb,var(--primary) 6%,transparent)}.ts td.zero{color:var(--ink-3)}.ts tfoot td{font-weight:700;border-bottom:0;background:var(--surface-2)}.ts .ts-issue{display:flex;gap:8px;align-items:center;min-width:0;max-width:380px}.ts .ts-issue a{color:var(--ink);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ts .ts-issue a:hover{color:var(--primary)}.ts tr.weekend td,.ts th.weekend{color:var(--ink-3)}.rule-list{display:grid;gap:10px}.rule{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface);transition:border-color .15s,box-shadow .15s}.rule:hover{border-color:color-mix(in srgb,var(--primary) 35%,var(--line))}.rule.off{opacity:.65}.rule-ico{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--primary);flex-shrink:0}.rule-body{flex:1;min-width:0}.rule-body .sentence{color:var(--ink-2);font-size:13px;margin-top:2px}.rule-body .sentence b{color:var(--ink);font-weight:600}.templates{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.template{text-align:left;border:1px dashed var(--line);background:var(--surface);border-radius:var(--radius-m);padding:12px 14px;display:grid;gap:4px;transition:border-color .15s,transform .15s}.template:hover{border-color:var(--primary);transform:translateY(-1px)}.template b{font-size:13.5px}.template span{font-size:12.5px;color:var(--ink-3)}.rb{display:grid;gap:14px}.rb-step{display:grid;gap:8px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-m);position:relative}.rb-step>.rb-n{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--primary)}.rb-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.rb-row .field{width:auto;min-width:150px;flex:1}.rb-act{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.rb-act>.field{flex:1;min-width:150px}.teams-card{display:flex;gap:14px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface-2)}.teams-card .dot{width:10px;height:10px;border-radius:50%;background:var(--ink-3);flex-shrink:0}.teams-card .dot.ok{background:var(--s-resolved);box-shadow:0 0 0 4px color-mix(in srgb,var(--s-resolved) 20%,transparent)}.teams-card .dot.bad{background:var(--p-high);box-shadow:0 0 0 4px color-mix(in srgb,var(--p-high) 20%,transparent)}.check-list{display:grid;gap:8px}.check-list label{display:flex;gap:10px;align-items:center;font-size:13.5px}.steps-help{margin:0;padding-left:18px;color:var(--ink-2);font-size:13px;display:grid;gap:4px}.q-ready{display:flex;gap:16px;align-items:center;padding:16px 18px;border-radius:var(--radius-l, 14px);border:1px solid var(--line);background:var(--surface);margin-bottom:18px}.q-ready .badge-big{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;flex-shrink:0;color:#fff}.q-ready.ok .badge-big{background:var(--s-resolved)}.q-ready.no .badge-big{background:var(--p-high)}.q-ready ul{margin:6px 0 0;padding-left:18px;color:var(--ink-2);font-size:13px}.q-legend{display:flex;gap:14px;font-size:12px;color:var(--ink-3)}.q-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}.q-bars rect{transition:height .5s cubic-bezier(.2,.8,.2,1),y .5s cubic-bezier(.2,.8,.2,1)}.view-switch{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.archived-banner{display:flex;gap:12px;align-items:center;padding:12px 16px;margin:-4px 0 16px;border-radius:var(--radius-m);background:color-mix(in srgb,var(--p-high) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--p-high) 30%,var(--line));color:var(--ink-2);font-size:13.5px}.archived-banner b{color:var(--ink)}.archived-banner>svg{color:var(--p-high);flex-shrink:0}.nav-toggle{display:flex;align-items:center;gap:6px;width:100%;border:0;background:none;font-family:inherit;text-align:left;cursor:pointer}.nav-item.archived{opacity:.7}.nav-alert{width:8px;height:8px;border-radius:50%;background:var(--bug);margin-left:auto;box-shadow:0 0 0 3px color-mix(in srgb,var(--bug) 30%,transparent);animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--bug) 0%,transparent)}}.bk-hero{display:flex;gap:16px;align-items:center;padding:18px 20px;border-radius:var(--radius-l);border:1px solid var(--line);background:var(--surface)}.bk-hero .bk-ico{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;color:#fff;flex-shrink:0;background:var(--s-resolved)}.bk-hero.warn .bk-ico{background:var(--p-high)}.bk-hero.bad{border-color:color-mix(in srgb,var(--bug) 40%,var(--line));background:color-mix(in srgb,var(--bug) 5%,var(--surface))}.bk-hero.bad .bk-ico{background:var(--bug)}.bk-title{font-family:var(--head);font-weight:700;font-size:17px}.bk-problems{list-style:none;margin:0;padding:0;display:grid;gap:8px}.bk-problems li{display:flex;gap:8px;align-items:flex-start;padding:10px 12px;border-radius:var(--radius-m);font-size:13.5px;border:1px solid var(--line);background:var(--surface)}.bk-problems li.error{border-color:color-mix(in srgb,var(--bug) 35%,var(--line));color:var(--ink)}.bk-problems li.error svg{color:var(--bug);flex-shrink:0;margin-top:1px}.bk-problems li.warning svg{color:var(--p-high);flex-shrink:0;margin-top:1px}.bk-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.bk-card{padding:14px 16px;display:grid;gap:4px;align-content:start}.bk-n{font-family:var(--head);font-size:22px;font-weight:700}.bk-meter{height:8px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);overflow:hidden;margin:4px 0 2px}.bk-meter span{display:block;height:100%;background:var(--primary)}.bk-meter span.low{background:var(--bug)}.bk-list{display:grid}.bk-row{display:grid;grid-template-columns:18px minmax(0,1fr) 90px 80px 140px;gap:10px;align-items:center;padding:8px 16px;border-top:1px solid var(--line);font-size:13px}.bk-name{font-family:var(--mono, ui-monospace, monospace);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spin-sm{display:inline-block;width:14px;height:14px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:rot .8s linear infinite;margin-right:6px;vertical-align:-2px}@media(max-width:760px){.bk-grid{grid-template-columns:1fr}.bk-row{grid-template-columns:18px minmax(0,1fr) 70px}.bk-row>:nth-child(3),.bk-row>:nth-child(5){display:none}.bk-hero{flex-wrap:wrap}}.pub{align-content:start;padding-top:5vh}.pub-card{width:min(640px,100%);padding:28px}.pub-form{display:grid;gap:14px}.pub-head{display:flex;gap:8px;align-items:center}.pub-title{font-size:24px;margin:0}.pub-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.pub-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.pub-drop{display:flex;gap:10px;align-items:center;justify-content:center;padding:18px;border:1.5px dashed var(--line-strong);border-radius:var(--radius-m);color:var(--ink-2);font-weight:400;font-size:13.5px;background:var(--surface-2);text-align:center;flex-wrap:wrap}.pub-drop.invalid{border-color:var(--bug)}.linkbtn{border:0;background:none;padding:0;color:var(--primary);font:inherit;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.pub-files{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:6px}.pub-files li{display:flex;gap:8px;align-items:center;padding:6px 8px 6px 10px;border:1px solid var(--line);border-radius:var(--radius-s);font-weight:400;font-size:13px}.pub-files .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pub-msg{display:grid;gap:12px;justify-items:center;text-align:center;padding:16px 4px}.pub-msg h2{margin:4px 0 0}.pub-msg p{margin:0;max-width:420px}.pub-ico{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;color:#fff;animation:pop .45s var(--ease-out)}.pub-ico.ok{background:var(--s-resolved)}.pub-ico.bad{background:var(--p-high)}.pub-foot{text-align:center;margin-top:16px}@media(max-width:560px){.pub-two{grid-template-columns:1fr}.pub-card{padding:22px 18px}}.intake-card{padding:16px;display:grid;gap:14px}.intake-h{display:flex;gap:12px;align-items:flex-start}.intake-h h2{margin:0 0 2px}.intake-h p{margin:0}.link-box{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:8px 8px 8px 12px;border:1px solid var(--line);border-radius:var(--radius-m);background:var(--surface-2)}.link-box code{flex:1;min-width:200px;font-size:12.5px;word-break:break-all;color:var(--ink)}.intake-status{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-m);font-size:13px}.intake-status .dot,.inbound-row .out{width:9px;height:9px;border-radius:50%;background:var(--ink-3);flex-shrink:0}.intake-status .dot.ok,.inbound-row .out.ok{background:var(--s-resolved)}.intake-status .dot.bad,.inbound-row .out.bad{background:var(--bug)}.intake-adv summary{cursor:pointer;font-weight:600;font-size:13.5px;color:var(--ink-2)}.intake-adv[open] summary{margin-bottom:8px}.inbound-list{display:grid;border:1px solid var(--line);border-radius:var(--radius-m);overflow:hidden}.inbound-row{display:flex;gap:10px;align-items:center;padding:8px 12px;border-top:1px solid var(--line);font-size:13px}.inbound-row:first-child{border-top:0}.inbound-row .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.savebar{position:sticky;bottom:12px;display:flex;gap:10px;align-items:center;padding:10px 12px 10px 16px;border-radius:var(--radius-m);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-lift);animation:rise .2s var(--ease-out);z-index:5}.savebar span{flex:1;font-size:13.5px;color:var(--ink-2)}.device-row{display:flex;gap:8px;align-items:center;padding:6px 0;border-top:1px solid var(--line);font-size:13.5px}
