:root{--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Inter Tight", var(--font-sans);--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--s-0:2px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--r-xs:6px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:22px;--r-full:999px;--fs-11:.6875rem;--fs-12:.75rem;--fs-13:.8125rem;--fs-14:.875rem;--fs-16:1rem;--fs-18:1.125rem;--fs-22:1.375rem;--fs-28:1.75rem;--fs-36:2.25rem;--ease:cubic-bezier(.2, .8, .2, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--t-fast:.12s;--t-med:.22s;--t-slow:.38s;--sidebar-w:248px;--topbar-h:60px;--tabbar-h:64px;--column-w:300px;--bg:#f6f6fb;--bg-grad:radial-gradient(1200px 600px at 100% -10%, #eeebff 0%, transparent 60%), radial-gradient(900px 500px at -10% 110%, #e7f7f4 0%, transparent 55%);--surface:#fff;--surface-2:#f1f1f8;--surface-3:#e8e8f2;--surface-sunken:#ececf4;--overlay:#11102461;--border:#e4e4ee;--border-strong:#d2d2e0;--text:#16152b;--text-2:#4b4a66;--text-3:#83829c;--text-inverse:#fff;--accent:#6d5dfc;--accent-hover:#5b4bea;--accent-soft:#eeebff;--accent-text:#4b3bd6;--focus:0 0 0 3px color-mix(in srgb, var(--accent) 35%, transparent);--success:#12a37a;--success-soft:#e3f6ef;--warning:#d98a0b;--warning-soft:#fdf3df;--danger:#e0445a;--danger-soft:#fde8eb;--info:#2f7df6;--info-soft:#e6f0ff;--p-urgent:#e0445a;--p-high:#f07a2b;--p-medium:#d9a50b;--p-low:#2f7df6;--p-none:#a3a2b8;--shadow-1:0 1px 2px #16152b0d, 0 1px 1px #16152b08;--shadow-2:0 2px 6px #16152b0f, 0 8px 24px -8px #16152b1a;--shadow-3:0 12px 40px -8px #16152b38, 0 4px 12px #16152b0f;--shadow-drag:0 20px 48px -10px #3728b459, 0 6px 16px #16152b1f;--viz-1:#6d5dfc;--viz-2:#eb6834;--viz-3:#1baf7a;--viz-4:#eda100;--viz-neutral:#b9b8cc;--viz-ord-1:#a79dfd;--viz-ord-2:#8374f9;--viz-ord-3:#6252e8;--viz-ord-4:#4432c4;--viz-seq-0:#eeedf6;--viz-seq-1:#dad5fe;--viz-seq-2:#a79dfd;--viz-seq-3:#7f70f8;--viz-seq-4:#5343d9;--st-good:#0ca30c;--st-warn:#fab219;--st-serious:#ec835a;--st-critical:#d03b3b;--st-unknown:#a3a2b8;--good-text:#007a3d;--bad-text:#c42e43;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e0f1a;--bg-grad:radial-gradient(1200px 600px at 100% -10%, #1e1a45 0%, transparent 60%), radial-gradient(900px 500px at -10% 110%, #0f2a2a 0%, transparent 55%);--surface:#171828;--surface-2:#1d1e31;--surface-3:#26283f;--surface-sunken:#121322;--overlay:#04040c99;--border:#2a2c45;--border-strong:#3a3d5c;--text:#ededf7;--text-2:#b5b5cf;--text-3:#7d7e9c;--accent:#8b7cff;--accent-hover:#9d90ff;--accent-soft:#272350;--accent-text:#b7adff;--success-soft:#0f2e27;--warning-soft:#33270e;--danger-soft:#3a1820;--info-soft:#12264a;--shadow-1:0 1px 2px #0006;--shadow-2:0 2px 8px #00000059, 0 10px 30px -10px #00000080;--shadow-3:0 16px 48px -8px #000000a6;--shadow-drag:0 24px 56px -10px #000000b3, 0 0 0 1px #8b7cff59;--viz-1:#8b7cff;--viz-2:#d95926;--viz-3:#199e70;--viz-4:#c98500;--viz-neutral:#4a4c68;--viz-ord-1:#6a5cdb;--viz-ord-2:#8a7cf5;--viz-ord-3:#afa4ff;--viz-ord-4:#d8d2ff;--viz-seq-0:#22243a;--viz-seq-1:#3a3470;--viz-seq-2:#5a4fb0;--viz-seq-3:#8577f2;--viz-seq-4:#bdb4ff;--st-unknown:#5e607e;--good-text:#2fd08a;--bad-text:#ff7a8c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0e0f1a;--bg-grad:radial-gradient(1200px 600px at 100% -10%, #1e1a45 0%, transparent 60%), radial-gradient(900px 500px at -10% 110%, #0f2a2a 0%, transparent 55%);--surface:#171828;--surface-2:#1d1e31;--surface-3:#26283f;--surface-sunken:#121322;--overlay:#04040c99;--border:#2a2c45;--border-strong:#3a3d5c;--text:#ededf7;--text-2:#b5b5cf;--text-3:#7d7e9c;--accent:#8b7cff;--accent-hover:#9d90ff;--accent-soft:#272350;--accent-text:#b7adff;--success-soft:#0f2e27;--warning-soft:#33270e;--danger-soft:#3a1820;--info-soft:#12264a;--shadow-1:0 1px 2px #0006;--shadow-2:0 2px 8px #00000059, 0 10px 30px -10px #00000080;--shadow-3:0 16px 48px -8px #000000a6;--shadow-drag:0 24px 56px -10px #000000b3, 0 0 0 1px #8b7cff59;--viz-1:#8b7cff;--viz-2:#d95926;--viz-3:#199e70;--viz-4:#c98500;--viz-neutral:#4a4c68;--viz-ord-1:#6a5cdb;--viz-ord-2:#8a7cf5;--viz-ord-3:#afa4ff;--viz-ord-4:#d8d2ff;--viz-seq-0:#22243a;--viz-seq-1:#3a3470;--viz-seq-2:#5a4fb0;--viz-seq-3:#8577f2;--viz-seq-4:#bdb4ff;--st-unknown:#5e607e;--good-text:#2fd08a;--bad-text:#ff7a8c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-reduced-motion:reduce){:root{--t-fast:0s;--t-med:0s;--t-slow:0s}*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-sans);font-size:var(--fs-14);color:var(--text);background:var(--bg);background-image:var(--bg-grad);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11", "ss01", "ss03";background-attachment:fixed;margin:0;line-height:1.5}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.02em;margin:0;line-height:1.2}h1{font-size:var(--fs-28);font-weight:800}h2{font-size:var(--fs-22);font-weight:700}h3{font-size:var(--fs-16);font-weight:700}p{margin:0}a{color:var(--accent-text);text-decoration:none}a:hover{text-decoration:underline}button,input,textarea,select{font:inherit;color:inherit}code,.mono{font-family:var(--font-mono);font-size:.92em}.num{font-variant-numeric:tabular-nums}:focus-visible{box-shadow:var(--focus);border-radius:var(--r-xs);outline:none}::selection{background:color-mix(in srgb, var(--accent) 30%, transparent)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.muted{color:var(--text-3)}.text-2{color:var(--text-2)}.small{font-size:var(--fs-12)}.row{align-items:center;gap:var(--s-2);display:flex}.row.wrap{flex-wrap:wrap}.stack{gap:var(--s-3);flex-direction:column;display:flex}.stack-lg{gap:var(--s-5);flex-direction:column;display:flex}.spacer{flex:1}.grow{flex:1;min-width:0}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.scroll-y{overflow-y:auto}.kbd{font-family:var(--font-mono);font-size:var(--fs-11);border:1px solid var(--border-strong);color:var(--text-2);background:var(--surface);border-bottom-width:2px;border-radius:5px;padding:1px 6px}.shell{grid-template-columns:var(--sidebar-w) 1fr;height:100%;display:grid}.sidebar{gap:var(--s-1);padding:var(--s-4) var(--s-3);border-right:1px solid var(--border);background:color-mix(in srgb, var(--surface) 70%, transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);flex-direction:column;display:flex;overflow-y:auto}.brand{align-items:center;gap:var(--s-2);padding:var(--s-1) var(--s-2) var(--s-4);font-family:var(--font-display);font-weight:800;font-size:var(--fs-18);letter-spacing:-.03em;display:flex}.brand img{width:28px;height:28px}.nav-section{margin-top:var(--s-4);padding:0 var(--s-2) var(--s-1);font-size:var(--fs-11);text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);align-items:center;font-weight:600;display:flex}.nav-link{align-items:center;gap:var(--s-3);padding:7px var(--s-2);border-radius:var(--r-sm);color:var(--text-2);transition:background var(--t-fast), color var(--t-fast);font-weight:500;text-decoration:none;display:flex}.nav-link:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.nav-link.active{background:var(--accent-soft);color:var(--accent-text)}.nav-link svg{flex:none;width:18px;height:18px}.nav-link .count{font-size:var(--fs-12);color:var(--text-3);font-variant-numeric:tabular-nums;margin-left:auto}.project-dot{border-radius:3px;flex:none;width:10px;height:10px;margin:0 4px}.sidebar-footer{padding-top:var(--s-4);gap:var(--s-1);flex-direction:column;margin-top:auto;display:flex}.main{flex-direction:column;min-width:0;min-height:0;display:flex}.topbar{height:var(--topbar-h);align-items:center;gap:var(--s-3);padding:0 var(--s-5);border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--bg) 80%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:20;flex:none;display:flex;position:sticky;top:0}.search-trigger{align-items:center;gap:var(--s-2);min-width:260px;padding:7px var(--s-3);border:1px solid var(--border);border-radius:var(--r-full);background:var(--surface);color:var(--text-3);cursor:pointer;transition:border-color var(--t-fast), box-shadow var(--t-fast);display:flex}.search-trigger:hover{border-color:var(--border-strong);box-shadow:var(--shadow-1)}.search-trigger .kbd{margin-left:auto}.content{flex:1;min-height:0;overflow:auto}.page{padding:var(--s-6) var(--s-6) var(--s-8);width:100%;max-width:1440px;margin:0 auto}.page-header{align-items:flex-end;gap:var(--s-4);margin-bottom:var(--s-5);flex-wrap:wrap;display:flex}.page-header .eyebrow{font-size:var(--fs-12);color:var(--text-3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--s-1);font-weight:600}.tabbar{display:none}.live-dot{background:var(--text-3);border-radius:50%;width:8px;height:8px}.live-dot.open{background:var(--success);box-shadow:0 0 0 3px color-mix(in srgb, var(--success) 25%, transparent)}.btn{justify-content:center;align-items:center;gap:var(--s-2);height:36px;padding:0 var(--s-4);border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);font-weight:600;font-size:var(--fs-13);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;box-shadow:var(--shadow-1);transition:background var(--t-fast), border-color var(--t-fast), transform var(--t-fast), box-shadow var(--t-fast);display:inline-flex}.btn:hover{border-color:var(--border-strong);background:var(--surface-2)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn svg{width:16px;height:16px}.btn.primary{background:var(--accent);color:var(--text-inverse);border-color:#0000;box-shadow:0 1px 2px #0000001a,inset 0 1px #ffffff26}.btn.primary:hover{background:var(--accent-hover)}.btn.danger{background:var(--danger);color:#fff;border-color:#0000}.btn.danger:hover{filter:brightness(1.05)}.btn.ghost{box-shadow:none;color:var(--text-2);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface-2);color:var(--text)}.btn.sm{height:30px;padding:0 var(--s-3);font-size:var(--fs-12)}.btn.lg{height:44px;padding:0 var(--s-5);font-size:var(--fs-14);border-radius:var(--r-md)}.btn.icon{width:36px;padding:0}.btn.icon.sm{width:30px}.btn.block{width:100%}.field{flex-direction:column;gap:6px;display:flex}.field>label,.label{font-size:var(--fs-12);color:var(--text-2);font-weight:600}.hint{font-size:var(--fs-12);color:var(--text-3)}.input,.select,.textarea{width:100%;min-height:38px;padding:8px var(--s-3);border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);transition:border-color var(--t-fast), box-shadow var(--t-fast)}.textarea{resize:vertical;min-height:96px;line-height:1.55}.input:hover,.select:hover,.textarea:hover{border-color:var(--border-strong)}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:var(--focus);outline:none}.input.mono{font-family:var(--font-mono);letter-spacing:.02em}.input.bare{box-shadow:none;background:0 0;border-color:#0000;padding-left:0}.input.bare:hover{border-color:#0000}.input.bare:focus{box-shadow:none}.error-text{color:var(--danger);font-size:var(--fs-13)}.checkbox{gap:var(--s-2);cursor:pointer;align-items:flex-start;display:flex}.checkbox input{width:16px;height:16px;accent-color:var(--accent);margin-top:2px}.form-grid{gap:var(--s-3) var(--s-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.form-grid .full{grid-column:1/-1}.segmented{border-radius:var(--r-md);background:var(--surface-sunken);border:1px solid var(--border);padding:3px;display:inline-flex}.segmented button{padding:5px var(--s-3);border-radius:var(--r-sm);font-weight:600;font-size:var(--fs-12);color:var(--text-2);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;display:inline-flex}.segmented button svg{width:14px;height:14px}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-1)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-1)}.card-pad{padding:var(--s-5)}.card-header{align-items:center;gap:var(--s-2);padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--border);display:flex}.card-body{padding:var(--s-4) var(--s-5)}.empty{text-align:center;justify-content:center;align-items:center;gap:var(--s-2);padding:var(--s-7) var(--s-5);color:var(--text-3);flex-direction:column;display:flex}.empty svg{width:36px;height:36px;color:var(--text-3);opacity:.6}.empty h3{color:var(--text)}.banner{align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-radius:var(--r-md);font-size:var(--fs-13);border:1px solid;display:flex}.banner svg{flex:none;width:18px;height:18px}.banner.info{background:var(--info-soft);border-color:color-mix(in srgb, var(--info) 30%, transparent)}.banner.warn{background:var(--warning-soft);border-color:color-mix(in srgb, var(--warning) 35%, transparent)}.banner.danger{background:var(--danger-soft);border-color:color-mix(in srgb, var(--danger) 35%, transparent)}.banner.success{background:var(--success-soft);border-color:color-mix(in srgb, var(--success) 35%, transparent)}.badge{border-radius:var(--r-full);height:22px;font-size:var(--fs-11);background:var(--surface-2);color:var(--text-2);white-space:nowrap;align-items:center;gap:4px;padding:0 8px;font-weight:600;display:inline-flex}.badge svg{width:12px;height:12px}.badge.accent{background:var(--accent-soft);color:var(--accent-text)}.badge.success{background:var(--success-soft);color:var(--success)}.badge.warning{background:var(--warning-soft);color:var(--warning)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.badge.info{background:var(--info-soft);color:var(--info)}.label-chip{height:20px;font-size:var(--fs-11);background:var(--surface-2);color:var(--text-2);border-radius:6px;align-items:center;padding:0 7px;font-weight:600;display:inline-flex}.prio{font-size:var(--fs-12);align-items:center;gap:4px;font-weight:600;display:inline-flex}.prio-bars{align-items:flex-end;gap:2px;height:12px;display:inline-flex}.prio-bars i{background:var(--border-strong);border-radius:1px;width:3px}.prio-bars i:first-child{height:5px}.prio-bars i:nth-child(2){height:8px}.prio-bars i:nth-child(3){height:12px}.avatar{--size:24px;width:var(--size);height:var(--size);font-size:calc(var(--size) * .42);color:#fff;border:2px solid var(--surface);border-radius:50%;flex:none;place-items:center;font-weight:700;display:inline-grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.avatar-stack{display:inline-flex}.avatar-stack .avatar+.avatar{margin-left:-7px}.avatar-more{background:var(--surface-3);color:var(--text-2)}.tabs{gap:var(--s-1);border-bottom:1px solid var(--border);margin-bottom:var(--s-5);scrollbar-width:none;display:flex;overflow-x:auto}.tab{padding:var(--s-2) var(--s-3) 10px;font-weight:600;font-size:var(--fs-13);color:var(--text-3);white-space:nowrap;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;text-decoration:none;display:inline-flex}.tab svg{width:16px;height:16px}.tab:hover{color:var(--text);text-decoration:none}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.hero{gap:var(--s-4);margin-bottom:var(--s-5);grid-template-columns:1.3fr 1fr;display:grid}.greeting h1{font-size:var(--fs-36)}.greeting p{color:var(--text-2);margin-top:var(--s-2);font-size:var(--fs-16)}.stat-row{gap:var(--s-3);margin-top:var(--s-5);grid-template-columns:repeat(4,1fr);display:grid}.stat{padding:var(--s-4);border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border)}.stat .v{font-family:var(--font-display);font-size:var(--fs-28);font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-weight:800}.stat .k{font-size:var(--fs-12);color:var(--text-3);font-weight:600}.stat.danger .v{color:var(--danger)}.focus-list{flex-direction:column;display:flex}.focus-item{align-items:center;gap:var(--s-3);padding:10px var(--s-5);border-top:1px solid var(--border);cursor:pointer;transition:background var(--t-fast);display:flex}.focus-item:first-child{border-top:0}.focus-item:hover{background:var(--surface-2)}.project-grid{gap:var(--s-4);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.project-card{gap:var(--s-3);padding:var(--s-5);color:inherit;transition:transform var(--t-med) var(--ease), box-shadow var(--t-med) var(--ease), border-color var(--t-med);flex-direction:column;text-decoration:none;display:flex;position:relative;overflow:hidden}.project-card:before{content:"";background:var(--pc);height:4px;position:absolute;inset:0 0 auto}.project-card:after{content:"";background:radial-gradient(circle, color-mix(in srgb, var(--pc) 18%, transparent), transparent 70%);pointer-events:none;border-radius:50%;width:140px;height:140px;position:absolute;top:-40px;right:-40px}.project-card:hover{box-shadow:var(--shadow-2);border-color:color-mix(in srgb, var(--pc) 40%, var(--border));text-decoration:none;transform:translateY(-2px)}.project-icon{border-radius:var(--r-md);color:#fff;background:var(--pc);width:40px;height:40px;box-shadow:0 6px 16px -6px var(--pc);place-items:center;display:grid}.project-icon svg{width:20px;height:20px}.ring{flex:none;width:56px;height:56px;position:relative}.ring svg{transform:rotate(-90deg)}.ring .ring-label{font-size:var(--fs-12);font-variant-numeric:tabular-nums;place-items:center;font-weight:700;display:grid;position:absolute;inset:0}.mini-stats{gap:var(--s-4);font-size:var(--fs-12);color:var(--text-3);display:flex}.mini-stats b{color:var(--text);font-variant-numeric:tabular-nums}.pulse{font-weight:600;font-size:var(--fs-12);align-items:center;gap:6px;display:inline-flex}.pulse i{background:currentColor;border-radius:50%;width:8px;height:8px;animation:2s infinite pulse;box-shadow:0 0}.pulse.on_track{color:var(--success)}.pulse.at_risk{color:var(--warning)}.pulse.off_track{color:var(--danger)}.pulse.not_started{color:var(--text-3)}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, currentColor 50%, transparent)}70%{box-shadow:0 0 0 8px #0000}to{box-shadow:0 0 #0000}}.project-head{align-items:center;gap:var(--s-4);margin-bottom:var(--s-4);flex-wrap:wrap;display:flex}.project-head h1{font-size:var(--fs-22)}.project-head .key{font-family:var(--font-mono);font-size:var(--fs-12);color:var(--text-3)}.board{gap:var(--s-4);padding:0 var(--s-6) var(--s-6);margin:0 calc(-1 * var(--s-6));scroll-snap-type:x proximity;scroll-padding:0 var(--s-6);align-items:flex-start;min-height:60vh;display:flex;overflow-x:auto}.column{flex:0 0 var(--column-w);border-radius:var(--r-lg);background:var(--surface-sunken);border:1px solid var(--border);scroll-snap-align:start;max-height:calc(100vh - 220px);transition:background var(--t-fast), border-color var(--t-fast);flex-direction:column;display:flex}.column.over{background:color-mix(in srgb, var(--accent-soft) 60%, var(--surface-sunken));border-color:color-mix(in srgb, var(--accent) 40%, var(--border))}.column.wip-exceeded{border-color:color-mix(in srgb, var(--danger) 50%, var(--border))}.column-head{align-items:center;gap:var(--s-2);padding:var(--s-3) var(--s-3) var(--s-2) var(--s-4);display:flex}.column-head .name{font-weight:700;font-size:var(--fs-13)}.column-head .cnt{font-size:var(--fs-12);color:var(--text-3);font-variant-numeric:tabular-nums}.column-head .cnt.over{color:var(--danger);font-weight:700}.column-swatch{border-radius:50%;width:8px;height:8px}.column-body{gap:var(--s-2);padding:var(--s-1) var(--s-2) var(--s-2);flex-direction:column;min-height:60px;display:flex;overflow-y:auto}.column-add{margin:0 var(--s-2) var(--s-2);color:var(--text-3);justify-content:flex-start}.add-column{border:1.5px dashed var(--border-strong);border-radius:var(--r-lg);min-height:120px;color:var(--text-3);cursor:pointer;background:0 0;flex:0 0 240px;place-items:center;font-weight:600;display:grid}.add-column:hover{color:var(--accent-text);border-color:var(--accent);background:var(--accent-soft)}.column-drag-handle{cursor:grab;color:var(--text-3);background:0 0;border:0;border-radius:4px;place-items:center;padding:2px;display:grid}.column-drag-handle svg{width:14px;height:14px}.task-card{gap:var(--s-2);padding:var(--s-3);border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-1);cursor:pointer;text-align:left;width:100%;transition:box-shadow var(--t-fast), border-color var(--t-fast), transform var(--t-fast);touch-action:manipulation;flex-direction:column;display:flex;position:relative}.task-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-2)}.task-card.dragging{opacity:.35}.task-card.overlay{box-shadow:var(--shadow-drag);cursor:grabbing;transform:rotate(1.5deg)scale(1.02)}.task-card .accent-bar{border-radius:0 3px 3px 0;width:3px;position:absolute;top:10px;bottom:10px;left:0}.task-card .title{font-weight:600;line-height:1.35;font-size:var(--fs-13)}.task-card .done-title{color:var(--text-3);text-decoration:line-through}.task-meta{align-items:center;gap:var(--s-2);font-size:var(--fs-12);color:var(--text-3);flex-wrap:wrap;display:flex}.task-meta .m{align-items:center;gap:3px;display:inline-flex}.task-meta svg{width:13px;height:13px}.task-ref{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--text-3)}.due{font-weight:600;font-size:var(--fs-11);border-radius:6px;align-items:center;gap:3px;padding:1px 6px;display:inline-flex}.due.overdue{background:var(--danger-soft);color:var(--danger)}.due.today{background:var(--warning-soft);color:var(--warning)}.due.soon{background:var(--info-soft);color:var(--info)}.due.later{color:var(--text-3)}.progress{background:var(--surface-3);border-radius:2px;height:4px;overflow:hidden}.progress>i{background:var(--success);height:100%;transition:width var(--t-med) var(--ease);border-radius:2px;display:block}.points{background:var(--surface-2);min-width:20px;height:18px;font-size:var(--fs-11);color:var(--text-2);font-variant-numeric:tabular-nums;border-radius:6px;place-items:center;padding:0 5px;font-weight:700;display:inline-grid}.planning{gap:var(--s-4);grid-template-columns:1fr 1fr;align-items:start;display:grid}.lane{border-radius:var(--r-lg);border:1px solid var(--border);background:var(--surface);flex-direction:column;display:flex;overflow:hidden}.lane.over{border-color:var(--accent);box-shadow:var(--focus)}.lane-head{align-items:center;gap:var(--s-2);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--border);background:var(--surface-2);display:flex}.lane-body{min-height:120px;max-height:calc(100vh - 300px);overflow-y:auto}.list-row{align-items:center;gap:var(--s-3);padding:9px var(--s-4);border-bottom:1px solid var(--border);cursor:pointer;background:var(--surface);transition:background var(--t-fast);grid-template-columns:20px 72px 1fr auto auto auto auto;display:grid}.list-row:hover{background:var(--surface-2)}.list-row:last-child{border-bottom:0}.list-row.dragging{opacity:.4}.grip{color:var(--text-3);cursor:grab;place-items:center;display:grid}.grip svg{width:14px;height:14px}.status-dot{border:2px solid var(--text-3);border-radius:50%;flex:none;width:10px;height:10px}.status-dot.in_progress{border-color:var(--warning);background:linear-gradient(90deg, var(--warning) 50%, transparent 50%)}.status-dot.done{border-color:var(--success);background:var(--success)}.sprint-bar{gap:var(--s-4);margin-bottom:var(--s-5);grid-template-columns:1fr 380px;display:grid}.sprint-goal{font-size:var(--fs-16);color:var(--text-2)}.burndown-card{height:240px;padding:var(--s-4) var(--s-4) var(--s-2)}.chart-tooltip{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);padding:var(--s-2) var(--s-3);box-shadow:var(--shadow-2);font-size:var(--fs-12)}.scrim{background:var(--overlay);z-index:60;animation:fade var(--t-med) var(--ease);position:fixed;inset:0}.drawer{background:var(--surface);border-left:1px solid var(--border);width:min(720px,100vw);box-shadow:var(--shadow-3);z-index:61;animation:slide-in var(--t-slow) var(--ease);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.drawer-head{align-items:center;gap:var(--s-2);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--border);display:flex}.drawer-body{padding:var(--s-5) var(--s-6) var(--s-7);gap:var(--s-5);flex-direction:column;flex:1;display:flex;overflow-y:auto}.drawer-body>*{flex-shrink:0}.drawer-title{field-sizing:content;min-height:calc(1.25em + 8px);font-family:var(--font-display);font-size:var(--fs-22);letter-spacing:-.02em;border-radius:var(--r-sm);resize:none;background:0 0;border:0;width:100%;margin-left:-6px;padding:4px 6px;font-weight:700;line-height:1.25}.drawer-title:hover{background:var(--surface-2)}.drawer-title:focus{background:var(--surface-2);box-shadow:var(--focus);outline:none}.props{gap:6px var(--s-3);grid-template-columns:120px 1fr;align-items:center;display:grid}.props>.k{color:var(--text-3);font-size:var(--fs-13);align-items:center;gap:6px;display:flex}.props>.k svg{width:15px;height:15px}.props .input,.props .select{min-height:32px;padding:4px var(--s-2);background:0 0;border-color:#0000}.props .input:hover,.props .select:hover{background:var(--surface-2)}.section-title{align-items:center;gap:var(--s-2);font-size:var(--fs-12);text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin-bottom:var(--s-2);font-weight:700;display:flex}.section-title svg{width:14px;height:14px}.md{color:var(--text);line-height:1.6}.md p+p{margin-top:var(--s-2)}.md ul,.md ol{margin:var(--s-1) 0;padding-left:var(--s-5)}.md pre{background:var(--surface-sunken);padding:var(--s-3);border-radius:var(--r-sm);overflow-x:auto}.md code{background:var(--surface-2);border-radius:4px;padding:1px 5px}.md pre code{background:0 0;padding:0}.md-check{border:1.5px solid var(--border-strong);vertical-align:-2px;border-radius:4px;width:13px;height:13px;margin-right:6px;display:inline-block}.md-check.on{background:var(--success);border-color:var(--success)}.md-editable{border-radius:var(--r-sm);padding:var(--s-2);margin:calc(-1 * var(--s-2));cursor:text;min-height:48px}.md-editable:hover{background:var(--surface-2)}.subtask{align-items:center;gap:var(--s-2);padding:6px var(--s-2);border-radius:var(--r-sm);display:flex}.subtask:hover{background:var(--surface-2)}.check{border:1.5px solid var(--border-strong);background:var(--surface);cursor:pointer;width:18px;height:18px;transition:background var(--t-fast), border-color var(--t-fast);border-radius:6px;flex:none;place-items:center;padding:0;display:grid}.check svg{color:#fff;opacity:0;width:12px;height:12px}.check.on{background:var(--success);border-color:var(--success)}.check.on svg{opacity:1}.attachments{gap:var(--s-2);grid-template-columns:repeat(auto-fill,minmax(120px,1fr));display:grid}.attachment{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);color:inherit;flex-direction:column;text-decoration:none;display:flex;overflow:hidden}.attachment .thumb{background:var(--surface-sunken);height:80px;color:var(--text-3);place-items:center;display:grid}.attachment .thumb img{object-fit:cover;width:100%;height:100%}.attachment .meta{padding:6px var(--s-2);font-size:var(--fs-11)}.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--r-md);padding:var(--s-4);text-align:center;color:var(--text-3);cursor:pointer;transition:border-color var(--t-fast), background var(--t-fast)}.dropzone.active,.dropzone:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-text)}.pr{align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-3);border:1px solid var(--border);border-radius:var(--r-md);display:flex}.pr+.pr{margin-top:var(--s-2)}.pr-state{font-size:var(--fs-11);border-radius:var(--r-full);text-transform:capitalize;padding:2px 8px;font-weight:700}.pr-state.open{background:var(--success-soft);color:var(--success)}.pr-state.draft{background:var(--surface-2);color:var(--text-3)}.pr-state.merged{background:var(--accent-soft);color:var(--accent-text)}.pr-state.closed{background:var(--danger-soft);color:var(--danger)}.pr-state.unknown{background:var(--surface-2);color:var(--text-3)}.timeline{gap:var(--s-3);flex-direction:column;display:flex}.timeline-item{gap:var(--s-3);font-size:var(--fs-13);display:flex}.comment-bubble{background:var(--surface-2);border-radius:4px var(--r-md) var(--r-md) var(--r-md);padding:var(--s-2) var(--s-3)}.event-line{color:var(--text-3);font-size:var(--fs-12);gap:var(--s-2);align-items:center;display:flex}.modal-wrap{z-index:70;padding:var(--s-4);place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);width:min(560px,100%);max-height:calc(100vh - 32px);box-shadow:var(--shadow-3);animation:pop var(--t-med) var(--ease-spring);flex-direction:column;display:flex;position:relative}.modal.wide{width:min(920px,100%)}.modal-head{align-items:center;gap:var(--s-2);padding:var(--s-5) var(--s-5) var(--s-3);display:flex}.modal-body{padding:0 var(--s-5) var(--s-5);gap:var(--s-4);flex-direction:column;display:flex;overflow-y:auto}.modal-foot{gap:var(--s-2);padding:var(--s-4) var(--s-5);border-top:1px solid var(--border);justify-content:flex-end;display:flex}@keyframes fade{0%{opacity:0}}@keyframes slide-in{0%{opacity:0;transform:translate(40px)}}@keyframes pop{0%{opacity:0;transform:scale(.96)translateY(8px)}}.menu{z-index:80;min-width:200px;padding:var(--s-1);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-3);animation:pop var(--t-fast) var(--ease);position:absolute}.menu button{align-items:center;gap:var(--s-2);width:100%;padding:7px var(--s-2);border-radius:var(--r-xs);cursor:pointer;text-align:left;font-size:var(--fs-13);background:0 0;border:0;display:flex}.menu button:hover,.menu button:focus-visible{background:var(--surface-2);box-shadow:none}.menu button.danger{color:var(--danger)}.menu button svg{width:15px;height:15px;color:var(--text-3)}.menu hr{border:0;border-top:1px solid var(--border);margin:var(--s-1) 0}.pop-anchor{position:relative}.palette{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);width:min(640px,100vw - 32px);box-shadow:var(--shadow-3);z-index:90;animation:pop var(--t-med) var(--ease-spring);position:fixed;top:12vh;left:50%;overflow:hidden;transform:translate(-50%)}.palette-input{align-items:center;gap:var(--s-3);padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--border);display:flex}.palette-input input{font-size:var(--fs-16);background:0 0;border:0;outline:none;flex:1}.palette-list{max-height:50vh;padding:var(--s-2);overflow-y:auto}.palette-group{padding:var(--s-2) var(--s-3) var(--s-1);font-size:var(--fs-11);text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);font-weight:700}.palette-item{align-items:center;gap:var(--s-3);padding:9px var(--s-3);border-radius:var(--r-sm);cursor:pointer;display:flex}.palette-item svg{width:16px;height:16px;color:var(--text-3)}.palette-item[aria-selected=true]{background:var(--accent-soft);color:var(--accent-text)}.palette-item[aria-selected=true] svg{color:var(--accent-text)}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--fs-13)}.table th{text-align:left;font-size:var(--fs-11);text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);padding:var(--s-2) var(--s-4);border-bottom:1px solid var(--border);white-space:nowrap;font-weight:700}.table td{padding:10px var(--s-4);border-bottom:1px solid var(--border);vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tr:hover td{background:color-mix(in srgb, var(--surface-2) 60%, transparent)}.table .err td{background:var(--danger-soft)}.table .warn td{background:var(--warning-soft)}.vault{grid-template-columns:260px 340px 1fr;height:100%;min-height:0;display:grid}.vault-rail{border-right:1px solid var(--border);padding:var(--s-4) var(--s-3);gap:var(--s-1);background:color-mix(in srgb, var(--surface) 50%, transparent);flex-direction:column;display:flex;overflow-y:auto}.vault-link{align-items:center;gap:var(--s-3);padding:var(--s-2);border-radius:var(--r-md);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;width:100%;display:flex}.vault-link:hover{background:var(--surface-2)}.vault-link.active{background:var(--surface);border-color:var(--border);box-shadow:var(--shadow-1)}.vault-glyph{color:#fff;background:var(--vc);border-radius:10px;flex:none;place-items:center;width:34px;height:34px;display:grid;box-shadow:inset 0 -8px 16px #0000001f}.vault-glyph svg{width:17px;height:17px}.vault-list{border-right:1px solid var(--border);background:var(--surface);flex-direction:column;min-height:0;display:flex}.vault-list-head{padding:var(--s-4);border-bottom:1px solid var(--border);gap:var(--s-3);flex-direction:column;display:flex}.vault-items{flex:1;overflow-y:auto}.vault-item{align-items:center;gap:var(--s-3);padding:10px var(--s-4);cursor:pointer;border-left:3px solid #0000;display:flex}.vault-item:hover{background:var(--surface-2)}.vault-item.active{background:var(--accent-soft);border-left-color:var(--accent)}.item-icon{width:34px;height:34px;font-weight:800;font-size:var(--fs-13);color:#fff;border-radius:10px;flex:none;place-items:center;display:grid}.item-icon svg{width:17px;height:17px}.vault-detail{padding:var(--s-6);gap:var(--s-5);flex-direction:column;display:flex;overflow-y:auto}.secret-field{gap:var(--s-2);padding:var(--s-3) var(--s-4);border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);grid-template-columns:1fr auto;align-items:center;display:grid}.secret-field+.secret-field{margin-top:var(--s-2)}.secret-field .lbl{font-size:var(--fs-11);text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);font-weight:700}.secret-field .val{font-family:var(--font-mono);font-size:var(--fs-13);word-break:break-all}.secret-field .val.masked{letter-spacing:.12em;color:var(--text-2)}.env-var{font-family:var(--font-mono);font-size:var(--fs-11);color:var(--accent-text)}.otp-display{align-items:center;gap:var(--s-4);padding:var(--s-4) var(--s-5);border-radius:var(--r-lg);background:linear-gradient(135deg, var(--accent-soft), color-mix(in srgb, var(--success-soft) 70%, var(--accent-soft)));border:1px solid color-mix(in srgb, var(--accent) 25%, transparent);display:flex}.otp-code{font-family:var(--font-mono);font-size:var(--fs-28);letter-spacing:.25em;font-variant-numeric:tabular-nums;font-weight:700}.countdown{width:40px;height:40px;position:relative}.countdown svg{transform:rotate(-90deg)}.countdown span{font-size:var(--fs-11);font-variant-numeric:tabular-nums;place-items:center;font-weight:700;display:grid;position:absolute;inset:0}.lock-screen{height:100%;padding:var(--s-5);place-items:center;display:grid}.lock-card{text-align:center;width:min(420px,100%);padding:var(--s-7) var(--s-6)}.lock-orb{width:72px;height:72px;margin:0 auto var(--s-4);color:#fff;background:linear-gradient(135deg,#8b7cff,#4f46e5);border-radius:24px;place-items:center;display:grid;box-shadow:0 16px 40px -12px #6d5dfc}.lock-orb svg{width:32px;height:32px}.fingerprint{font-family:var(--font-mono);font-size:var(--fs-12);letter-spacing:.04em;color:var(--text-2);word-spacing:.2em}.auth{grid-template-columns:1fr 1fr;min-height:100%;display:grid}.auth-art{color:#fff;padding:var(--s-7);background:linear-gradient(145deg,#1c1757 0%,#3b2fc9 55%,#6d5dfc 100%);flex-direction:column;justify-content:space-between;display:flex;position:relative;overflow:hidden}.auth-art h2{font-size:var(--fs-36);max-width:440px;font-weight:800;line-height:1.1}.auth-art p{opacity:.8;max-width:400px;margin-top:var(--s-3);font-size:var(--fs-16)}.orbits{pointer-events:none;width:640px;height:640px;position:absolute;top:50%;right:-180px;transform:translateY(-50%)}.orbits circle{fill:none;stroke:#ffffff24}.orbits .planet{fill:#fff;stroke:none}.orbit-spin{transform-origin:320px 320px;animation:40s linear infinite spin}.orbit-spin.slow{animation-duration:70s;animation-direction:reverse}@keyframes spin{to{transform:rotate(360deg)}}.auth-form{padding:var(--s-6);place-items:center;display:grid}.auth-form .inner{gap:var(--s-4);flex-direction:column;width:min(400px,100%);display:flex}.secret-key-display{font-family:var(--font-mono);font-size:var(--fs-16);letter-spacing:.04em;text-align:center;padding:var(--s-4);border-radius:var(--r-md);background:var(--surface-sunken);border:1.5px dashed var(--accent);word-break:break-all;-webkit-user-select:all;user-select:all;font-weight:600}.kit{padding:var(--s-5);border-radius:var(--r-lg);border:1px solid var(--border);background:var(--surface);gap:var(--s-3);flex-direction:column;display:flex}.strength{grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.strength i{background:var(--surface-3);border-radius:2px;height:4px}.strength.s1 i:nth-child(-n+1){background:var(--danger)}.strength.s2 i:nth-child(-n+2){background:var(--warning)}.strength.s3 i:nth-child(-n+3){background:var(--info)}.strength.s4 i{background:var(--success)}.toasts{bottom:var(--s-5);right:var(--s-5);gap:var(--s-2);z-index:100;flex-direction:column;display:flex;position:fixed}.toast{align-items:center;gap:var(--s-3);min-width:260px;max-width:420px;padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--text);color:var(--bg);box-shadow:var(--shadow-3);font-size:var(--fs-13);animation:pop var(--t-med) var(--ease-spring);font-weight:500;display:flex}.toast.error{background:var(--danger);color:#fff}.toast svg{flex:none;width:16px;height:16px}.skeleton{background:linear-gradient(90deg, var(--surface-2) 0%, var(--surface-3) 50%, var(--surface-2) 100%);border-radius:var(--r-sm);background-size:200% 100%;animation:1.4s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin;display:inline-block}.admin-grid{gap:var(--s-4);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}.group-card{padding:var(--s-5);gap:var(--s-3);flex-direction:column;display:flex;position:relative;overflow:hidden}.group-card:before{content:"";background:var(--vc);width:4px;position:absolute;inset:0 auto 0 0}.member-row{align-items:center;gap:var(--s-2);padding:6px 0;display:flex}.code-block{font-family:var(--font-mono);font-size:var(--fs-12);background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s-3) var(--s-4);white-space:pre-wrap;word-break:break-all}@media (max-width:1100px){.vault{grid-template-columns:220px 1fr}.vault-detail{border-top:1px solid var(--border);grid-column:1/-1}.sprint-bar,.hero{grid-template-columns:1fr}}@media (max-width:860px){:root{--column-w:84vw}.shell{grid-template-columns:1fr}.sidebar{display:none}.topbar{padding:0 var(--s-4)}.search-trigger{flex:1;min-width:0}.search-trigger .kbd{display:none}.page{padding:var(--s-4) var(--s-4) calc(var(--tabbar-h) + var(--s-6))}.board{padding:0 var(--s-4) var(--s-4);margin:0 calc(-1 * var(--s-4));scroll-snap-type:x mandatory;scroll-padding:0 var(--s-4)}.column{max-height:calc(100vh - 260px)}.tabbar{z-index:50;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-top:1px solid var(--border);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar a{font-size:var(--fs-11);color:var(--text-3);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-weight:600;text-decoration:none;display:flex}.tabbar a svg{width:22px;height:22px}.tabbar a.active{color:var(--accent-text)}.drawer{border-left:0;width:100vw}.drawer-body{padding:var(--s-4) var(--s-4) var(--s-7)}.props{grid-template-columns:100px 1fr}.planning{grid-template-columns:1fr}.list-row{grid-template-columns:20px 1fr auto}.list-row .hide-sm{display:none}.stat-row{grid-template-columns:repeat(2,1fr)}.auth{grid-template-columns:1fr}.auth-art{display:none}.vault{grid-template-columns:1fr}.vault-rail{border-right:0;border-bottom:1px solid var(--border);padding:var(--s-2);flex-direction:row;overflow-x:auto}.vault-link{flex:none;width:auto}.vault-link .grow{display:none}.vault-list{border-right:0}.vault[data-detail=true] .vault-list,.vault[data-detail=false] .vault-detail{display:none}.vault-detail{padding:var(--s-4) var(--s-4) calc(var(--tabbar-h) + var(--s-6))}.form-grid{grid-template-columns:1fr}.modal-wrap{align-items:end;padding:0}.modal{border-radius:var(--r-xl) var(--r-xl) 0 0;width:100%;max-height:92vh}.toasts{left:var(--s-4);right:var(--s-4);bottom:calc(var(--tabbar-h) + var(--s-3))}.hide-mobile{display:none!important}}@media (min-width:861px){.show-mobile{display:none!important}}.provider-chip{border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--border);flex:none;place-items:center;width:28px;height:28px;display:inline-grid}.provider-chip.lg{border-radius:var(--r-md);width:38px;height:38px}.connect-grid{gap:var(--s-3);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.connect-card{gap:var(--s-2);padding:var(--s-4);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);flex-direction:column;display:flex}.connect-card.unavailable{opacity:.85;border-style:dashed}.sso-divider{align-items:center;gap:var(--s-3);color:var(--text-3);font-size:var(--fs-12);text-transform:uppercase;letter-spacing:.08em;display:flex}.sso-divider:before,.sso-divider:after{content:"";background:var(--border);flex:1;height:1px}.btn.microsoft{background:var(--surface);border-color:var(--border-strong,var(--border));gap:10px;font-weight:600}.btn.microsoft:hover{background:var(--surface-2)}.calendar-state{align-items:center;gap:var(--s-3);flex-wrap:wrap;display:flex}.calendar-meta{gap:var(--s-3);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.calendar-meta .k{font-size:var(--fs-12);color:var(--text-3);display:block}.filter-row{align-items:center;gap:var(--s-2);flex-wrap:wrap;display:flex}.freshness{font-size:var(--fs-12);color:var(--text-3);white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.freshness i{background:var(--st-good);border-radius:50%;width:6px;height:6px}.freshness.busy i{background:var(--accent);animation:1.2s infinite pulse}.refetching{opacity:.6;transition:opacity var(--t-med)}.section-head{align-items:baseline;gap:var(--s-3);margin:var(--s-6) 0 var(--s-3);flex-wrap:wrap;display:flex}.section-head h2{align-items:center;gap:var(--s-2);font-size:var(--fs-18);display:inline-flex}.section-head h2 svg{width:18px;height:18px;color:var(--text-3)}.section-head .btn{margin-left:auto}.kpi-row{gap:var(--s-3);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.kpi{gap:var(--s-3);padding:var(--s-4) var(--s-4) var(--s-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-1);color:inherit;flex-direction:column;min-width:0;text-decoration:none;display:flex}.kpi.link{transition:border-color var(--t-fast), transform var(--t-med) var(--ease)}.kpi.link:hover{border-color:var(--border-strong);text-decoration:none;transform:translateY(-1px)}.kpi.link:focus-visible{box-shadow:var(--focus);outline:none}.kpi-label{font-family:var(--font-mono);font-size:var(--fs-11);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);align-items:center;gap:8px;min-width:0;font-weight:600;display:flex}.kpi-label>i{border-radius:50%;flex:none;width:7px;height:7px}.kpi-main{justify-content:space-between;align-items:flex-end;gap:var(--s-2);min-width:0;display:flex}.kpi-main>div{min-width:0}.kpi-value{font-family:var(--font-sans);font-size:var(--fs-28);letter-spacing:-.025em;white-space:nowrap;font-weight:700;line-height:1.1}.kpi-value small{font-size:var(--fs-13);color:var(--text-3);letter-spacing:0;margin-left:4px;font-weight:600}.sparkline{flex:none;overflow:visible}.delta{font-size:var(--fs-12);color:var(--text-3);white-space:nowrap;align-items:center;gap:4px;margin-top:4px;display:inline-flex}.delta b{border-radius:var(--r-full);background:var(--surface-2);color:var(--text-2);padding:1px 6px;font-weight:700}.delta.good b{background:var(--success-soft);color:var(--good-text)}.delta.bad b{background:var(--danger-soft);color:var(--bad-text)}.rating{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:.06em;border-radius:var(--r-full);border:1px solid var(--border);color:var(--text-2);padding:2px 7px;font-size:10px;font-weight:700}.rating.elite{background:var(--success-soft);color:var(--good-text);border-color:#0000}.rating.high{background:var(--info-soft);color:var(--info);border-color:#0000}.rating.medium{background:var(--warning-soft);color:var(--warning);border-color:#0000}.rating.low{background:var(--danger-soft);color:var(--bad-text);border-color:#0000}.good-text{color:var(--good-text)}.bad-text{color:var(--bad-text)}.ok-text{color:var(--good-text);gap:6px}.danger-text{color:var(--danger)}.callout{align-items:center;gap:var(--s-2);margin-top:var(--s-3);padding:var(--s-2) var(--s-4);border-radius:var(--r-md);font-size:var(--fs-13);display:flex}.callout svg{flex:none;width:16px;height:16px}.callout.danger{background:var(--danger-soft);color:var(--text)}.callout.danger svg{color:var(--danger)}.chart-card{gap:var(--s-3);padding:var(--s-4) var(--s-5) var(--s-5);flex-direction:column;min-width:0;display:flex}.chart-card>header{align-items:flex-start;gap:var(--s-2);display:flex}.chart-card h3{font-size:var(--fs-14);font-weight:700}.chart-card .chart-table{max-height:320px;margin:0 calc(-1 * var(--s-5));overflow:auto}.hero-chart{margin-top:var(--s-4)}.hero-figure{font-size:var(--fs-22);color:var(--text);letter-spacing:-.02em;font-weight:700}.chart-box{min-width:0;height:240px;position:relative}.chart-box.tall{height:300px}.chart-box.short{height:140px}.no-data{text-align:center;place-items:center;gap:6px;height:100%;min-height:80px;display:grid}.viz-grid{gap:var(--s-4);margin-top:var(--s-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.viz-grid .span-2{grid-column:1/-1}.chart-tooltip .tip-row{grid-template-columns:12px auto 1fr;align-items:center;gap:6px;display:grid}.chart-tooltip .tip-row i{border-radius:1px;width:12px;height:2px}.chart-tooltip b{font-variant-numeric:tabular-nums}.legend{gap:var(--s-1) var(--s-4);font-size:var(--fs-12);color:var(--text-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.legend li{align-items:center;gap:6px;display:inline-flex}.legend li>i{border-radius:3px;flex:none;width:10px;height:10px}.legend li>i.line{border-radius:1px;width:14px;height:2px}.legend b{color:var(--text);font-variant-numeric:tabular-nums;font-weight:700}.segbar-wrap,.heatmap,.health-grid{position:relative}.viz-tip{pointer-events:none;z-index:5;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);box-shadow:var(--shadow-2);font-size:var(--fs-12);white-space:nowrap;padding:6px 10px;position:absolute;transform:translate(-50%,calc(-100% - 10px))}.segbar{border-radius:var(--r-full);width:100%;margin-bottom:var(--s-3);gap:2px;display:flex;overflow:hidden}.segbar>span{cursor:default;min-width:4px;transition:filter var(--t-fast)}.segbar>span:hover,.segbar>span:focus-visible{filter:brightness(1.12);outline:none}.segbar-empty{background:var(--surface-2);flex:1}.workload{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.workload li{align-items:center;gap:var(--s-2);font-size:var(--fs-13);grid-template-columns:24px minmax(80px,140px) 1fr 32px 48px;display:grid}.workload .bar{border-radius:0 4px 4px 0;gap:2px;min-width:6px;height:10px;display:flex;overflow:hidden}.workload .bar>span{min-width:3px}.workload b{text-align:right}.heatmap svg{display:block}.heatmap .axis-text{fill:var(--text-3);font-size:9px}.heat{fill:var(--viz-seq-0)}.heat.l1{fill:var(--viz-seq-1)}.heat.l2{fill:var(--viz-seq-2)}.heat.l3{fill:var(--viz-seq-3)}.heat.l4{fill:var(--viz-seq-4)}rect.heat:hover{stroke:var(--text);stroke-width:1px}.heat-scale{margin-top:var(--s-2);justify-content:flex-end;align-items:center;gap:3px;display:flex}.heat-scale span{background:var(--viz-seq-0);border-radius:3px;width:11px;height:11px}.heat-scale span.l1{background:var(--viz-seq-1)}.heat-scale span.l2{background:var(--viz-seq-2)}.heat-scale span.l3{background:var(--viz-seq-3)}.heat-scale span.l4{background:var(--viz-seq-4)}.health{font-size:var(--fs-12);align-items:center;gap:6px;font-weight:600;display:inline-flex}.health>i{background:var(--st-unknown);border-radius:50%;flex:none;width:8px;height:8px}.health.up>i{background:var(--st-good)}.health.degraded>i{background:var(--st-warn)}.health.down>i{background:var(--st-critical);box-shadow:0 0 0 3px color-mix(in srgb, var(--st-critical) 25%, transparent)}.deploy-badge{border-radius:var(--r-full);height:20px;font-size:var(--fs-11);background:var(--surface-2);color:var(--text-2);align-items:center;gap:4px;padding:0 7px;font-weight:700;display:inline-flex}.deploy-badge svg{width:12px;height:12px}.deploy-badge.success{background:var(--success-soft);color:var(--good-text)}.deploy-badge.failed{background:var(--danger-soft);color:var(--bad-text)}.deploy-badge.rolled_back{background:color-mix(in srgb, var(--st-serious) 16%, transparent);color:var(--text)}.deploy-badge.in_progress{background:var(--accent-soft);color:var(--accent-text)}.spin{animation:1s linear infinite spin}.status-chip{white-space:nowrap;border-radius:var(--r-full);height:26px;font-size:var(--fs-12);background:var(--success-soft);color:var(--good-text);align-items:center;gap:8px;padding:0 12px;font-weight:700;display:inline-flex}.status-chip i{background:currentColor;border-radius:50%;width:8px;height:8px;animation:2.4s infinite pulse}.status-chip.degraded{background:var(--warning-soft);color:var(--warning)}.status-chip.down{background:var(--danger-soft);color:var(--bad-text)}.status-chip.unknown{background:var(--surface-2);color:var(--text-3)}.status-chip.unknown i{animation:none}.health-grid{flex-direction:column;gap:10px;display:flex}.health-row{align-items:center;gap:var(--s-3);grid-template-columns:minmax(100px,180px) 1fr;display:grid}.health-name{font-size:var(--fs-13);color:var(--text);align-items:center;gap:4px;min-width:0;font-weight:600;text-decoration:none;display:flex}.health-name:hover{text-decoration:underline}.health-tiles{flex-wrap:wrap;gap:6px;display:flex}.health-tile{background:var(--st-unknown);color:#fff;width:30px;height:30px;transition:transform var(--t-fast) var(--ease);border-radius:8px;place-items:center;display:grid;position:relative}.health-tile svg{stroke-width:2.6px;width:14px;height:14px}.health-tile .env-letter{opacity:.85;font-size:8px;font-weight:800;position:absolute;bottom:0;right:2px}.health-tile.up{background:var(--st-good)}.health-tile.degraded{background:var(--st-warn);color:#3a2600}.health-tile.down{background:var(--st-critical)}.health-tile:hover,.health-tile:focus-visible{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--border-strong);outline:none;transform:scale(1.1)}.pipeline{align-items:stretch;gap:0;margin:0;padding:0;list-style:none;display:flex;overflow-x:auto}.env-pill{min-width:120px;padding:var(--s-2) var(--s-3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);flex-direction:column;flex:1 1 0;gap:2px;display:flex}.env-pill.production{border-color:color-mix(in srgb, var(--svc,var(--accent)) 45%, var(--border));background:color-mix(in srgb, var(--svc,var(--accent)) 7%, var(--surface))}.env-top{align-items:center;gap:6px;display:flex}.env-name{font-size:var(--fs-12);text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);font-weight:700}.env-version{font-size:var(--fs-14);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.env-link{padding:0 var(--s-2);color:var(--text-3);flex-direction:column;flex:none;justify-content:center;align-items:center;min-width:64px;display:flex}.env-link svg{width:16px;height:16px}.env-link span{white-space:nowrap;font-weight:600}.pipeline.compact{overflow:visible}.pipeline.compact .env-pill{min-width:0;padding:6px 10px}.pipeline.compact .env-name,.pipeline.compact .env-version{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pipeline.compact .env-top{min-width:0}.pipeline.compact .env-age{display:none}.pipeline.compact .env-link{min-width:40px;padding:0 4px}.pipeline.compact .env-link span{font-size:10px}.devops-grid{align-items:start;gap:var(--s-4);margin-top:var(--s-4);grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);display:grid}.ship-grid{gap:var(--s-4);grid-template-columns:repeat(auto-fill,minmax(340px,1fr));display:grid}.ship-card{gap:var(--s-3);padding:var(--s-4);flex-direction:column;display:flex;position:relative;overflow:hidden}.ship-card:before{content:"";background:var(--svc);height:3px;position:absolute;inset:0 0 auto}.ship-card>header{align-items:center;gap:var(--s-2);display:flex}.ship-title{align-items:center;gap:var(--s-2);color:inherit;flex:1;min-width:0;text-decoration:none;display:flex}.ship-title .grow{flex-direction:column;display:flex}.ship-title .small{align-items:center;gap:4px;display:inline-flex}.svc-glyph{background:color-mix(in srgb, var(--svc) 14%, var(--surface));width:34px;height:34px;color:var(--svc);border-radius:10px;flex:none;place-items:center;display:grid}.svc-glyph svg{width:18px;height:18px}.ship-status{gap:var(--s-2);flex-direction:column;min-height:44px;display:flex}.ship-status .row{gap:6px}.ship-headline{align-items:center;gap:var(--s-2);font-size:var(--fs-14);display:flex}.ship-headline svg{color:var(--accent)}.chips{flex-wrap:wrap;gap:6px;display:flex}.ship-card>footer{align-items:center;gap:var(--s-2);border-top:1px solid var(--border);padding-top:var(--s-3);margin-top:auto;display:flex}.task-chip{border-radius:var(--r-full);border:1px solid var(--border);background:var(--surface);height:24px;font-size:var(--fs-12);cursor:pointer;color:var(--text);align-items:center;gap:6px;padding:0 8px;display:inline-flex}.task-chip:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-2)}.task-chip:disabled{cursor:default}.task-chip.in_progress,.task-chip.todo{border-color:color-mix(in srgb, var(--warning) 45%, var(--border))}.task-chip .status-dot{border-width:1.5px;width:8px;height:8px}.task-chip .small{color:var(--text-3)}.deploys{margin:0;padding:0;list-style:none}.deploy-row{gap:var(--s-3);padding:var(--s-3) var(--s-5);border-bottom:1px solid var(--border);grid-template-columns:12px 1fr auto;align-items:start;display:grid}.chart-card .deploy-row{padding-left:0;padding-right:0}.deploy-row:last-child{border-bottom:0}.deploy-dot{background:var(--st-unknown);border-radius:50%;width:10px;height:10px;margin-top:5px}.deploy-row.success .deploy-dot{background:var(--st-good)}.deploy-row.failed .deploy-dot{background:var(--st-critical)}.deploy-row.rolled_back .deploy-dot{background:var(--st-serious)}.deploy-row.in_progress .deploy-dot{background:var(--accent);animation:1.4s infinite pulse}.deploy-main{min-width:0;font-size:var(--fs-13);flex-direction:column;gap:3px;display:flex}.deploy-svc{color:var(--text);align-items:center;gap:2px;font-weight:700;text-decoration:none;display:inline-flex}.env-tag{border-radius:var(--r-xs);background:var(--surface-2);height:20px;font-size:var(--fs-11);font-weight:700;font-family:var(--font-mono);color:var(--text-2);white-space:nowrap;align-items:center;gap:5px;padding:0 7px;display:inline-flex}.env-tag.prod{background:var(--accent-soft);color:var(--accent-text)}.onboarding{padding:var(--s-6);gap:var(--s-6);grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);align-items:start;display:grid}.onboarding h2{font-size:var(--fs-22);margin-bottom:var(--s-2)}.onboarding ol{gap:var(--s-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.onboarding li{align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);display:flex}.step-num{width:22px;height:22px;font-size:var(--fs-11);background:var(--accent);color:#fff;border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid}.step-icon svg{width:18px;height:18px;color:var(--text-3)}.compare-head{align-items:center;gap:var(--s-3);padding:var(--s-4);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);grid-template-columns:1fr auto 1fr;display:grid}.compare-head>div{flex-direction:column;gap:2px;display:flex}.compare-head>div:last-child{text-align:right}.compare-arrow{font-size:var(--fs-12);color:var(--text-2);border-radius:var(--r-full);background:var(--surface);border:1px solid var(--border);white-space:nowrap;padding:4px 10px}.warn-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.warn-list li{align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);background:var(--warning-soft);font-size:var(--fs-13);display:flex}.warn-list li.danger{background:var(--danger-soft)}.warn-list svg{width:15px;height:15px;color:var(--warning);flex:none}.warn-list li.danger svg{color:var(--danger)}.file-list{padding:var(--s-2) var(--s-3);border-radius:var(--r-sm);background:var(--surface-sunken);margin:0;list-style:none}.pr-group{gap:var(--s-2);padding:var(--s-3);border:1px solid var(--border);border-radius:var(--r-md);flex-direction:column;display:flex}.pr-link{color:var(--text);align-items:center;gap:4px;font-weight:600;display:inline-flex}.commits{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.commits li{gap:var(--s-2);font-size:var(--fs-13);border-top:1px dashed #0000;grid-template-columns:64px minmax(0,1fr) auto;align-items:baseline;padding:4px 0;display:grid}.commits li+li{border-top-color:var(--border);border-top-style:solid}.nowrap{white-space:nowrap}.swatch{cursor:pointer;border:0;border-radius:8px;width:24px;height:24px}.env-editor{gap:var(--s-2);flex-direction:column;display:flex}.env-edit-row{gap:var(--s-2);grid-template-columns:130px 120px 1fr 1fr 32px;align-items:center;display:grid}.ci-steps{margin:0 0 var(--s-2);flex-direction:column;gap:4px;padding-left:18px;display:flex}.ci-snippet{white-space:pre;word-break:normal;max-height:360px;overflow:auto}.services-table tr.clickable{cursor:pointer}.back-link{color:var(--text-3);margin-bottom:var(--s-2);align-items:center;gap:4px;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--text)}.project-dot.lg{border-radius:4px;width:14px;height:14px}.env-cards{gap:var(--s-4);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}.env-stats{gap:var(--s-4);text-align:right;display:flex}.env-stats>div{flex-direction:column;display:flex}.env-stats b{font-size:var(--fs-16);font-variant-numeric:tabular-nums}.link-btn{color:var(--accent-text);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.perm-list{flex-direction:column;gap:2px;margin:0;padding-left:18px;display:flex}.dora-section{margin-top:var(--s-2)}.card-header.wrap{flex-wrap:wrap}@media (max-width:1100px){.kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}.devops-grid,.onboarding{grid-template-columns:1fr}}@media (max-width:860px){.devops .page-header>.grow,.analytics .page-header>.grow{flex-basis:100%}.viz-grid{grid-template-columns:1fr}.chart-card{padding:var(--s-4)}.chart-card .chart-table{margin:0 calc(-1 * var(--s-4))}.ship-grid{grid-template-columns:1fr}.env-edit-row{grid-template-columns:1fr 1fr 32px}.env-edit-row input[aria-label=URL],.env-edit-row input[aria-label="Health check URL"]{grid-column:span 3}.workload li{grid-template-columns:24px 1fr 1fr 28px 40px}.health-row{grid-template-columns:1fr;gap:6px}.deploy-row{padding:var(--s-3) var(--s-4)}.compare-head{text-align:left;grid-template-columns:1fr}.compare-head>div:last-child{text-align:left}.commits li{grid-template-columns:56px minmax(0,1fr)}.commits li>span:last-child{grid-column:2}}@media (max-width:520px){.kpi-row{grid-template-columns:1fr}.kpi-value{font-size:var(--fs-22)}}.servers{gap:var(--s-4);flex-direction:column;display:flex}.server-card .card-header h3{font-size:var(--fs-16)}.server-metrics{gap:var(--s-4);padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--border);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.server-metric{flex-direction:column;gap:6px;min-width:0;display:flex}.server-metric .metric-value{font-size:var(--fs-22);font-variant-numeric:tabular-nums;font-weight:700}.progress.meter{border-radius:3px;height:6px}.progress.meter.warn>i{background:var(--st-warn)}.progress.meter.critical>i{background:var(--st-critical)}.containers-table .group-row td{background:var(--surface-2);font-size:var(--fs-12);text-transform:none}@media (max-width:720px){.server-metrics{padding:var(--s-4);grid-template-columns:repeat(2,minmax(0,1fr))}}
