@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=Inter+Tight:wght@500;600;700;800;900&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--gsf-black:#000;--gsf-white:#fff;--gsf-ink-900:#0a0a0a;--gsf-ink-800:#1a1a1a;--gsf-ink-700:#333;--gsf-ink-600:#555;--gsf-ink-500:#777;--gsf-ink-400:#999;--gsf-ink-300:#bbb;--gsf-ink-200:#d9d9d9;--gsf-ink-150:#e8e8e8;--gsf-ink-100:#f2f2f2;--gsf-ink-50:#f8f8f8;--gsf-blue-900:#033e6b;--gsf-blue-700:#0a6bbd;--gsf-blue-600:#0c88ed;--gsf-blue-500:#3ca2f3;--gsf-blue-400:#7fc0f6;--gsf-blue-200:#bfdffb;--gsf-blue-100:#e6f2fd;--gsf-success:#1f8a3a;--gsf-warning:#c98a00;--gsf-danger:#c62828;--fg-1:var(--gsf-ink-900);--fg-2:var(--gsf-ink-700);--fg-3:var(--gsf-ink-500);--fg-muted:var(--gsf-ink-400);--fg-inverse:var(--gsf-white);--fg-accent:var(--gsf-blue-600);--bg-canvas:var(--gsf-white);--bg-surface:var(--gsf-white);--bg-subtle:var(--gsf-ink-50);--bg-muted:var(--gsf-ink-100);--bg-inverse:var(--gsf-black);--bg-accent-soft:var(--gsf-blue-100);--border-1:var(--gsf-ink-150);--border-2:var(--gsf-ink-200);--border-strong:var(--gsf-ink-900);--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-display:"Inter Tight", "Inter", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--text-2xs:11px;--text-xs:12px;--text-sm:13px;--text-base:15px;--text-md:16px;--text-lg:18px;--text-xl:22px;--text-2xl:28px;--text-3xl:36px;--text-4xl:48px;--text-5xl:64px;--text-6xl:84px;--leading-tight:1.1;--leading-snug:1.25;--leading-normal:1.45;--leading-relaxed:1.6;--tracking-tight:-.02em;--tracking-normal:0;--tracking-wide:.08em;--tracking-caps:.14em;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-black:900;--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--radius-none:0;--radius-xs:2px;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-pill:999px;--radius-circle:50%;--shadow-none:none;--shadow-xs:0 1px 0 #0000000a;--shadow-sm:0 1px 2px #0000000f, 0 0 0 1px #0000000a;--shadow-md:0 2px 8px #00000014;--shadow-lg:0 8px 24px #0000001a;--shadow-focus:0 0 0 3px #1e6bff59;--ease-standard:cubic-bezier(.2,0,0,1);--ease-emphasized:cubic-bezier(.2,0,0,1);--dur-fast:.12s;--dur-base:.2s;--dur-slow:.36s}html,body{font-family:var(--font-sans);font-size:var(--text-base);color:var(--fg-1);background:var(--bg-canvas);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}.gsf-display{font-family:var(--font-display);font-weight:var(--weight-black);font-size:var(--text-6xl);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--fg-1)}.gsf-h1{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-4xl);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight)}.gsf-h2{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--text-3xl);line-height:var(--leading-snug);letter-spacing:var(--tracking-tight)}.gsf-h3{font-family:var(--font-sans);font-weight:var(--weight-semibold);font-size:var(--text-2xl);line-height:var(--leading-snug)}.gsf-h4{font-family:var(--font-sans);font-weight:var(--weight-semibold);font-size:var(--text-xl);line-height:var(--leading-snug)}.gsf-body{font-family:var(--font-sans);font-weight:var(--weight-regular);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--fg-1)}.gsf-body-sm{font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--fg-2)}.gsf-caption{font-family:var(--font-sans);font-size:var(--text-xs);color:var(--fg-3);line-height:var(--leading-normal)}.gsf-eyebrow{font-family:var(--font-sans);font-weight:var(--weight-semibold);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--fg-2)}.gsf-code,code,kbd,pre{font-family:var(--font-mono);font-size:.92em}.gsf-metric{font-family:var(--font-display);font-weight:var(--weight-black);font-size:var(--text-6xl);letter-spacing:var(--tracking-tight);color:var(--fg-1);line-height:1}.gsf-metric-accent{color:var(--fg-accent)}a,.gsf-link{color:var(--fg-accent);transition:border-color var(--dur-fast) var(--ease-standard);border-bottom:1px solid #0000;text-decoration:none}a:hover,.gsf-link:hover{border-bottom-color:currentColor}:root{--slate-50:#fafbfc;--slate-100:#f4f5f8;--slate-150:#eceef2;--slate-200:#e2e5eb;--slate-300:#cdd1da;--slate-400:#9ca1ae;--slate-500:#6e7382;--slate-600:#565b69;--slate-700:#3e424e;--slate-800:#282b33;--slate-900:#1a1c22;--slate-950:#0f1014;--slate-1000:#08090b;--accent:#2d7ff9;--accent-hover:#1e6ff0;--accent-press:#175fd6;--accent-soft:color-mix(in oklch, var(--accent) 12%, white);--accent-ring:color-mix(in oklch, var(--accent) 40%, transparent);--accent-fg:#fff;--c-bg:#fff;--c-bg-subtle:var(--slate-50);--c-bg-muted:var(--slate-100);--c-surface:#fff;--c-surface-2:var(--slate-50);--c-elevated:#fff;--c-hover:color-mix(in oklch, var(--slate-500) 7%, transparent);--c-active:color-mix(in oklch, var(--slate-500) 11%, transparent);--c-selected:color-mix(in oklch, var(--accent) 10%, transparent);--c-text:var(--slate-800);--c-text-2:var(--slate-600);--c-text-3:var(--slate-500);--c-text-faint:var(--slate-400);--c-text-inverse:#fff;--c-text-accent:var(--accent);--c-border:color-mix(in oklch, var(--slate-800) 11%, transparent);--c-border-subtle:color-mix(in oklch, var(--slate-800) 6%, transparent);--c-border-strong:color-mix(in oklch, var(--slate-800) 22%, transparent);--c-focus-ring:var(--accent-ring);--c-success:#15924e;--c-warning:#c2820b;--c-danger:#d83a3a;--c-info:var(--accent);--r-xs:4px;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--r-pill:999px;--sh-xs:0 1px 2px #0f10140d;--sh-sm:0 1px 2px #0f10140f, 0 0 0 1px var(--c-border-subtle);--sh-md:0 2px 4px #0f10140d, 0 4px 12px #0f101414;--sh-lg:0 4px 8px #0f10140f, 0 12px 32px #0f10141f;--sh-pop:0 0 0 1px var(--c-border), 0 8px 28px #0f101429, 0 2px 6px #0f101414;--sh-focus:0 0 0 3px var(--c-focus-ring);--tlin-fast:.13s var(--ease-standard,cubic-bezier(.2,0,0,1));--tlin-base:.19s var(--ease-standard,cubic-bezier(.2,0,0,1))}[data-theme=dark]{--c-bg:var(--slate-1000);--c-bg-subtle:var(--slate-950);--c-bg-muted:var(--slate-900);--c-surface:#101116;--c-surface-2:#15161c;--c-elevated:#191b22;--c-hover:oklch(100% 5.96046e-8 none/.06);--c-active:oklch(100% 5.96046e-8 none/.1);--c-selected:color-mix(in oklch, var(--accent) 22%, transparent);--c-text:#ecedf1;--c-text-2:#a7abb7;--c-text-3:#767b89;--c-text-faint:#565b69;--c-text-inverse:var(--slate-950);--c-text-accent:color-mix(in oklch, var(--accent) 80%, white);--c-border:oklch(100% 5.96046e-8 none/.1);--c-border-subtle:oklch(100% 5.96046e-8 none/.06);--c-border-strong:oklch(100% 5.96046e-8 none/.18);--accent-soft:color-mix(in oklch, var(--accent) 22%, transparent);--sh-xs:0 1px 2px #0006;--sh-sm:0 1px 2px #0006, 0 0 0 1px var(--c-border-subtle);--sh-md:0 2px 6px #0006, 0 6px 16px #0000005c;--sh-lg:0 8px 24px #00000080, 0 2px 8px #0006;--sh-pop:0 0 0 1px var(--c-border), 0 12px 40px #0009, 0 2px 8px #00000080}[data-accent=blue]{--accent:#2d7ff9;--accent-hover:#1e6ff0;--accent-press:#175fd6}[data-accent=indigo]{--accent:#5e6ad2;--accent-hover:#6e79de;--accent-press:#4e59c2}[data-accent=violet]{--accent:#7c5cff;--accent-hover:#8b6fff;--accent-press:#6a48f0}[data-accent=teal]{--accent:#0d9488;--accent-hover:#0b8279;--accent-press:#096e67}[data-accent=green]{--accent:#16a34a;--accent-hover:#15803d;--accent-press:#146530}[data-accent=rose]{--accent:#e63553;--accent-hover:#d11a3d;--accent-press:#b01532}[data-radius=square]{--r-xs:2px;--r-sm:3px;--r-md:4px;--r-lg:6px;--r-xl:8px}[data-radius=soft]{--r-xs:4px;--r-sm:6px;--r-md:8px;--r-lg:12px;--r-xl:16px}[data-radius=round]{--r-xs:6px;--r-sm:9px;--r-md:12px;--r-lg:16px;--r-xl:22px}.lin-root{font-family:var(--font-sans,"Inter", system-ui, sans-serif);font-feature-settings:"cv11" 1, "ss01" 1;-webkit-font-smoothing:antialiased;background:var(--c-bg);color:var(--c-text)}.lin-display{font-weight:680;font-size:var(--text-4xl,48px);letter-spacing:-.028em;line-height:1.05}.lin-h1{font-weight:640;font-size:var(--text-2xl,28px);letter-spacing:-.022em;line-height:1.15}.lin-h2{font-weight:620;font-size:var(--text-xl,22px);letter-spacing:-.018em;line-height:1.2}.lin-h3{font-weight:600;font-size:var(--text-md,16px);letter-spacing:-.012em;line-height:1.3}.lin-body{font-weight:400;font-size:var(--text-sm,13px);color:var(--c-text);line-height:1.5}.lin-meta{font-weight:450;font-size:var(--text-xs,12px);color:var(--c-text-3);letter-spacing:-.005em}.lin-mono{font-family:var(--font-mono,ui-monospace, monospace);letter-spacing:-.01em;font-size:12px}:root{--fg-1:var(--c-text);--fg-2:var(--c-text-2);--fg-3:var(--c-text-3);--fg-muted:var(--c-text-faint);--fg-inverse:var(--c-text-inverse);--fg-accent:var(--accent);--bg-canvas:var(--c-bg);--bg-surface:var(--c-surface);--bg-subtle:var(--c-bg-subtle);--bg-muted:var(--c-bg-muted);--bg-accent-soft:var(--accent-soft);--border-1:var(--c-border-subtle);--border-2:var(--c-border);--border-strong:var(--c-border-strong);--shadow-xs:var(--sh-xs);--shadow-sm:var(--sh-sm);--shadow-md:var(--sh-md);--shadow-lg:var(--sh-lg);--shadow-focus:var(--sh-focus)}[data-theme=dark]{--bg-inverse:var(--c-text)}*{box-sizing:border-box}html,body{height:100%;margin:0}#root{height:100%}body{background:var(--c-bg);color:var(--c-text);font-family:var(--font-sans);font-feature-settings:"cv11" 1, "ss01" 1;-webkit-font-smoothing:antialiased;font-size:13px}.app{background:var(--c-bg);height:100%;transition:background var(--tlin-base), color var(--tlin-base);grid-template-columns:244px 1fr;display:grid}.icon{stroke-width:1.7px;flex:none;width:16px;height:16px}.mono{font-family:var(--font-mono);letter-spacing:-.01em;font-variant-numeric:tabular-nums}.tnum{font-variant-numeric:tabular-nums}.side{border-right:1px solid var(--c-border);background:var(--c-bg-subtle);flex-direction:column;min-height:0;display:flex}.hubsw{padding:10px 9px 2px}.hubsw .seg{width:100%;display:flex}.hubsw .seg button{flex:1;justify-content:center}.hubsw.solo{letter-spacing:.09em;text-transform:uppercase;color:var(--c-text-faint);padding:16px 18px 4px;font-size:10.5px;font-weight:650}.navsec{padding:7px}.navsec .lbl{letter-spacing:.09em;text-transform:uppercase;color:var(--c-text-faint);padding:8px 11px 5px;font-size:10.5px;font-weight:650}.nav{flex-direction:column;gap:1px;display:flex}.nav button{appearance:none;cursor:pointer;text-align:left;border-radius:var(--r-md);width:100%;color:var(--c-text-2);font:inherit;letter-spacing:-.008em;transition:background var(--tlin-fast), color var(--tlin-fast);background:0 0;border:0;align-items:center;gap:10px;padding:8px 11px;font-size:13px;font-weight:480;display:flex}.nav button .icon{color:var(--c-text-3);transition:color var(--tlin-fast)}.nav button:hover{background:var(--c-hover);color:var(--c-text)}.nav button:hover .icon{color:var(--c-text-2)}.nav button.active{background:var(--c-selected);color:var(--c-text-accent);font-weight:560}.nav button.active .icon{color:var(--c-text-accent)}.nav button .badge{color:var(--c-text-faint);margin-left:auto;font-size:11px}.nav button .pip{border-radius:var(--r-pill);background:var(--accent);color:#fff;place-items:center;min-width:18px;height:18px;margin-left:auto;padding:0 5px;font-size:10.5px;font-weight:650;display:grid}.side .foot{border-top:1px solid var(--c-border-subtle);align-items:center;gap:9px;margin-top:auto;padding:9px 10px;display:flex}.side .foot .who{min-width:0;line-height:1.25}.side .foot .who .n{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:560;overflow:hidden}.side .foot .who .r{color:var(--c-text-3);font-size:11px}.side .foot .gear{color:var(--c-text-faint);cursor:pointer;border-radius:var(--r-sm);background:0 0;border:0;margin-left:auto;padding:6px;display:grid}.side .foot .gear:hover{background:var(--c-hover);color:var(--c-text-2)}.side .ver{text-align:center;color:var(--c-text-faint);letter-spacing:.02em;padding:2px 0 6px;font-size:10px}.main{background:var(--c-bg);flex-direction:column;min-width:0;min-height:0;display:flex}.topbar{border-bottom:1px solid var(--c-border);flex:none;align-items:center;gap:10px;height:53px;padding:0 20px;display:flex}.topbar .crumb{letter-spacing:-.014em;align-items:center;gap:8px;font-size:14px;font-weight:580;display:flex}.topbar .crumb .icon{color:var(--c-text-3)}.topbar .crumb .sep{color:var(--c-text-faint);font-weight:400}.topbar .crumb .sub{color:var(--c-text-2);font-weight:460}.topbar .sp{flex:1}.content{flex:1;min-height:0;overflow:auto}.pad{padding:22px 24px 28px}.btn{appearance:none;cursor:pointer;font:inherit;letter-spacing:-.008em;border-radius:var(--r-md);white-space:nowrap;transition:background var(--tlin-fast), border-color var(--tlin-fast), color var(--tlin-fast), box-shadow var(--tlin-fast);border:1px solid #0000;align-items:center;gap:7px;padding:7px 12px;font-size:12.5px;font-weight:540;display:inline-flex}.btn .icon{width:15px;height:15px}.btn.primary{background:var(--accent);color:#fff;box-shadow:var(--sh-xs)}.btn.primary:hover{background:var(--accent-hover)}.btn.primary:active{background:var(--accent-press)}.btn.secondary{background:var(--c-surface);color:var(--c-text);border-color:var(--c-border);box-shadow:var(--sh-xs)}.btn.secondary:hover{background:var(--c-bg-muted)}.btn.ghost{color:var(--c-text-2);background:0 0}.btn.ghost:hover{background:var(--c-hover);color:var(--c-text)}.btn.danger{color:var(--c-danger);border-color:color-mix(in oklch, var(--c-danger) 32%, transparent);background:0 0}.btn.danger:hover{background:color-mix(in oklch, var(--c-danger) 10%, transparent)}.btn:focus-visible{box-shadow:var(--sh-focus);outline:none}.iconbtn{appearance:none;cursor:pointer;border-radius:var(--r-md);border:1px solid var(--c-border);background:var(--c-surface);width:30px;height:30px;color:var(--c-text-2);transition:background var(--tlin-fast), color var(--tlin-fast);place-items:center;display:grid}.iconbtn:hover{background:var(--c-bg-muted);color:var(--c-text)}.iconbtn.flat{background:0 0;border-color:#0000}.iconbtn.flat:hover{background:var(--c-hover)}.seg{background:var(--c-bg-muted);border:1px solid var(--c-border-subtle);border-radius:var(--r-md);gap:2px;padding:2px;display:inline-flex}.seg button{appearance:none;cursor:pointer;font:inherit;color:var(--c-text-2);border-radius:calc(var(--r-md) - 2px);white-space:nowrap;transition:background var(--tlin-fast), color var(--tlin-fast);background:0 0;border:0;align-items:center;gap:6px;padding:5px 11px;font-size:12px;font-weight:520;display:inline-flex}.seg button[aria-pressed=true]{background:var(--c-surface);color:var(--c-text);box-shadow:var(--sh-xs)}.seg button:hover:not([aria-pressed=true]){color:var(--c-text)}.seg-full{width:100%;display:flex}.seg-full button{flex:1;justify-content:center}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--sh-sm)}.card .hd{border-bottom:1px solid var(--c-border-subtle);justify-content:space-between;align-items:center;gap:10px;padding:13px 16px;display:flex}.card .hd .eyebrow{letter-spacing:.09em;text-transform:uppercase;color:var(--c-text-faint);font-size:10.5px;font-weight:650}.card .hd .meta{color:var(--c-text-3);font-size:11.5px}.card .bd{padding:16px}.eyebrow{letter-spacing:.09em;text-transform:uppercase;color:var(--c-text-faint);font-size:10.5px;font-weight:650}.avatar{border-radius:var(--r-pill);color:#fff;letter-spacing:.01em;flex:none;place-items:center;font-weight:650;display:grid}.avstack{display:flex}.avstack .avatar{box-shadow:0 0 0 2px var(--c-surface);margin-left:-7px}.avstack .avatar:first-child{margin-left:0}.pill{border-radius:var(--r-pill);white-space:nowrap;align-items:center;gap:6px;padding:3px 9px;font-size:11px;font-weight:560;display:inline-flex}.pill .dot{border-radius:50%;flex:none;width:7px;height:7px}.label{color:var(--c-text-2);border:1px solid var(--c-border);border-radius:var(--r-pill);white-space:nowrap;align-items:center;gap:6px;padding:2px 9px;font-size:11px;font-weight:500;display:inline-flex}.label .dot{border-radius:50%;flex:none;width:7px;height:7px}.field{flex-direction:column;gap:6px;display:flex}.field>label{color:var(--c-text-2);letter-spacing:-.005em;font-size:11.5px;font-weight:560}.input{width:100%;font:inherit;color:var(--c-text);background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--r-md);transition:border-color var(--tlin-fast), box-shadow var(--tlin-fast);padding:8px 11px;font-size:13px}.input::placeholder{color:var(--c-text-faint)}.input:focus{border-color:var(--accent);box-shadow:var(--sh-focus);outline:none}textarea.input{resize:none;line-height:1.45}.hint{border-radius:var(--r-md);background:var(--accent-soft);border:1px solid color-mix(in oklch, var(--accent) 22%, transparent);color:var(--c-text);align-items:center;gap:9px;padding:10px 12px;font-size:12.5px;display:flex}.hint .icon{color:var(--c-text-accent)}.tiles{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.tile{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--sh-sm);padding:15px 16px}.tile .k{color:var(--c-text-3);align-items:center;gap:8px;font-size:11.5px;font-weight:540;display:flex}.tile .k .icon{width:15px;height:15px;color:var(--c-text-faint)}.tile .v{font-family:var(--font-display);letter-spacing:-.03em;margin-top:9px;font-size:32px;font-weight:660;line-height:1.05}.tile .s{color:var(--c-text-3);margin-top:3px;font-size:11.5px}.tbl{width:100%}.tbl .th,.tbl .tr{align-items:center;gap:12px;padding:0 16px;display:grid}.tbl .th{background:var(--c-bg-subtle);border-bottom:1px solid var(--c-border-subtle);letter-spacing:.07em;text-transform:uppercase;height:36px;color:var(--c-text-faint);font-size:10.5px;font-weight:650}.tbl .tr{border-bottom:1px solid var(--c-border-subtle);height:48px;font-size:12.5px}.tbl .tr:last-child{border-bottom:0}.tbl .tr:hover{background:var(--c-hover)}.scrim{z-index:60;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#08090b6b;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0}.pop{background:var(--c-elevated);border-radius:var(--r-lg);box-shadow:var(--sh-pop)}.cmd{width:560px;max-width:calc(100vw - 40px);margin-top:13vh;overflow:hidden}.cmd .q{border-bottom:1px solid var(--c-border-subtle);align-items:center;gap:10px;padding:14px 16px;display:flex}.cmd .q input{font:inherit;color:var(--c-text);letter-spacing:-.01em;background:0 0;border:0;flex:1;font-size:15px}.cmd .q input:focus{outline:none}.cmd .q input::placeholder{color:var(--c-text-faint)}.cmd .grp{padding:6px}.cmd .grp .h{letter-spacing:.08em;text-transform:uppercase;color:var(--c-text-faint);padding:8px 10px 4px;font-size:10.5px;font-weight:650}.cmd .it{border-radius:var(--r-md);color:var(--c-text);cursor:pointer;letter-spacing:-.01em;text-align:left;background:0 0;border:0;align-items:center;gap:11px;width:100%;padding:8px 10px;font-family:inherit;font-size:13.5px;display:flex}.cmd .it .icon{color:var(--c-text-3)}.cmd .it .k{margin-left:auto}.cmd .it.sel,.cmd .it:hover{background:var(--c-selected);color:var(--c-text-accent)}.cmd .it.sel .icon,.cmd .it:hover .icon{color:var(--c-text-accent)}.cmd .foot{border-top:1px solid var(--c-border-subtle);color:var(--c-text-faint);gap:14px;padding:8px 14px;font-size:11px;display:flex}.kbd{font-family:var(--font-mono);color:var(--c-text-faint);border:1px solid var(--c-border);background:var(--c-surface);border-radius:4px;padding:1px 5px;font-size:10.5px;line-height:1.4}@media (prefers-reduced-motion:no-preference){.view-enter{animation:viewin .26s var(--ease-standard,cubic-bezier(.2,0,0,1))}@keyframes viewin{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}}.ptools{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;display:flex}.ptools .ptitle{align-items:baseline;gap:9px;margin-right:4px;display:flex}.ptools .ptitle .kw{font-family:var(--font-display);letter-spacing:-.018em;color:var(--c-text);white-space:nowrap;font-size:15.5px;font-weight:640}.ptools .ptitle .rng{color:var(--c-text-3);white-space:nowrap;font-size:12.5px}.ptools .sp{flex:1}.pl{border:1px solid var(--c-border);border-radius:var(--r-lg);background:var(--c-surface);box-shadow:var(--sh-sm);position:relative;overflow:hidden}.pl.has-pop{overflow:visible}.pl .gx{align-items:stretch;display:grid}.pl .wkrow{border-bottom:1px solid var(--c-border-subtle);background:var(--c-bg-subtle)}.pl .wkhdr{grid-row:1;justify-content:center;align-items:baseline;gap:8px;padding:7px 4px 6px;display:flex}.pl .hrow{border-bottom:1px solid var(--c-border)}.pl .dh{grid-row:1;justify-content:center;align-items:center;gap:6px;min-width:0;padding:10px 4px;display:flex}.pl .dh .dow{color:var(--c-text-2);font-size:11.5px;font-weight:560}.pl .dh .date{color:var(--c-text-faint);font-size:11px}.pl .dh.today .dow{color:var(--c-text-accent);font-weight:650}.pl .dh.today .date{background:var(--accent);color:#fff;border-radius:var(--r-pill);padding:1px 7px;font-weight:620}.pl .dh.hol .dow{color:var(--c-text-faint)}.pl .dh.hol .date{text-decoration:line-through}.pl .hrow.dense .date{color:var(--c-text-2);font-weight:560}.pl .sumrow{border-bottom:1px solid var(--c-border);background:var(--c-bg-subtle)}.pl .sumcell{color:var(--c-text-3);grid-row:1;justify-content:center;align-items:center;padding:5px 0 6px;font-size:11px;display:flex}.pl .sumcell.today{color:var(--c-text-accent);font-weight:650}.pl .slbl{color:var(--c-text-3);font-size:11px;font-weight:560}.pl .pcell{border-right:1px solid var(--c-border-subtle);grid-area:1/1;align-items:center;gap:10px;min-width:0;padding:0 14px;display:flex}.pl .pcell .nm{color:var(--c-text);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:540;overflow:hidden}.pl .pcell .me-tag{color:var(--c-text-faint);font-weight:450}.pl .pcell .wstag{letter-spacing:.06em;color:var(--c-text-3);border:1px solid var(--c-border);border-radius:var(--r-pill);background:var(--c-surface);flex:none;margin-left:auto;padding:1px 6px;font-size:9.5px;font-weight:650}.pl .freecell{color:var(--c-text-faint);z-index:1;grid-row:1;place-self:center;font-size:12px}.pl .precell{z-index:3;background:var(--c-bg-muted);opacity:.45;border-radius:var(--r-sm);pointer-events:none;grid-row:1;margin:2px 1px}.pl .prow{transition:background var(--tlin-fast);align-items:stretch;display:grid}.pl .prow+.prow{border-top:1px solid var(--c-border-subtle)}.pl .prow:hover{background:var(--c-hover)}.pl .prow.me{background:color-mix(in oklch, var(--accent) 4%, transparent)}.pl .prow.me .pcell{box-shadow:inset 2px 0 0 var(--accent)}.pl .grprow{background:var(--c-bg-subtle);border-top:1px solid var(--c-border-subtle);color:var(--c-text-3);align-items:center;gap:8px;padding:5px 14px 6px;font-size:11px;font-weight:600;display:flex}.pl .grprow .cnt{color:var(--c-text-faint);font-weight:500}.pl .uday{z-index:0;pointer-events:none;grid-row:1}.pl .uday.today{background:color-mix(in oklch, var(--accent) 5%, transparent);z-index:1}.pl .uday.hol{background:repeating-linear-gradient(-45deg, var(--c-border-subtle) 0 5px, transparent 5px 11px)}.pl .bar{z-index:1;height:var(--bar-h,30px);border-radius:var(--r-sm);color:var(--c-text);white-space:nowrap;grid-row:1;align-self:center;align-items:center;gap:7px;min-width:0;margin:0 3px;padding:0 10px;font-size:12px;font-weight:520;display:flex;overflow:hidden}.pl .bar .dot{border-radius:50%;flex:none;width:8px;height:8px}.pl .bar .lbl{text-overflow:ellipsis;min-width:0;overflow:hidden}.pl .bar .code{font-family:var(--font-mono);letter-spacing:.01em;font-size:11px;font-weight:620}.pl .bar.center{justify-content:center;gap:6px;padding:0 5px}.pl .bar .hsep{background:var(--c-border);flex:none;align-self:stretch;width:1px;margin:7px 0}.pl .hit{z-index:2;border-radius:var(--r-sm);cursor:pointer;color:var(--c-text-accent);transition:box-shadow var(--tlin-fast), background var(--tlin-fast);grid-row:1;place-items:center;margin:4px 2px;display:grid;position:relative}.pl .hit .icon{opacity:0;width:13px;height:13px;transition:opacity var(--tlin-fast)}.pl .hit:hover{box-shadow:inset 0 0 0 1.5px var(--accent);background:color-mix(in oklch, var(--accent) 7%, transparent)}.pl .hit:hover .icon{opacity:.85}.pl .hit.open{box-shadow:inset 0 0 0 1.5px var(--accent)}.pl .hit[draggable=true]{cursor:grab}.pl .hit[draggable=true]:active{cursor:grabbing}.pl .hit.drop-ok{box-shadow:inset 0 0 0 1.5px var(--accent);background:color-mix(in oklch, var(--accent) 12%, transparent)}.pl .bar-resize{z-index:4;width:12px;height:var(--bar-h,30px);cursor:ew-resize;touch-action:none;border-radius:0 var(--r-sm) var(--r-sm) 0;opacity:0;transition:opacity var(--tlin-fast);grid-row:1;place-self:center end;margin-right:3px;position:relative}.pl .bar-resize:after{content:"";background:var(--c-text-faint);border-radius:1px;width:2px;height:12px;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.pl .prow:hover .bar-resize{opacity:.7}.pl .bar-resize:hover{opacity:1}.pl .prow.resizing{cursor:ew-resize}.pl .resize-ghost{pointer-events:none;z-index:3}.menu{background:var(--c-elevated);border-radius:var(--r-md);width:238px;box-shadow:var(--sh-pop);z-index:50;text-align:left;cursor:default;padding:5px;position:absolute;top:calc(100% + 7px)}.menu .mhd{border-bottom:1px solid var(--c-border-subtle);justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:5px;padding:6px 9px 8px;display:flex}.menu .mhd .mt{color:var(--c-text);letter-spacing:-.01em;font-size:12.5px;font-weight:600}.menu .mhd .md{color:var(--c-text-3);font-size:11px}.menu .mi{border-radius:var(--r-sm);cursor:pointer;width:100%;font:inherit;color:var(--c-text);text-align:left;transition:background var(--tlin-fast);background:0 0;border:0;align-items:center;gap:9px;padding:7px 9px;font-size:12.5px;display:flex}.menu .mi:hover{background:var(--c-hover)}.menu .mi .dot{border-radius:50%;flex:none;width:8px;height:8px}.menu .mi .icon{width:14px;height:14px;color:var(--c-text-3)}.menu .mi .chk{color:var(--c-text-accent);margin-left:auto;display:flex}.menu .mi .chk .icon{width:14px;height:14px;color:var(--c-text-accent)}.menu .mi.on{background:var(--accent-soft)}.menu .msep{background:var(--c-border-subtle);height:1px;margin:5px 0}.menu .mlbl{letter-spacing:.08em;text-transform:uppercase;color:var(--c-text-faint);padding:3px 9px 4px;font-size:10px;font-weight:650}.menu .halfgrid{grid-template-columns:1fr 1fr;gap:2px 8px;display:grid}.menu .halfgrid .mi{padding:6px 9px;font-size:12px}.dp{position:relative}.dp-trigger{cursor:pointer;text-align:left;align-items:center;gap:8px;display:flex}.dp-trigger .ic{color:var(--c-text-3);display:flex}.dp-trigger .ic .icon{width:15px;height:15px}.dp-trigger .dp-val{font-size:12.5px}.cal{z-index:60;background:var(--c-elevated);border-radius:var(--r-md);width:248px;box-shadow:var(--sh-pop);cursor:default;padding:8px;position:absolute;top:calc(100% + 6px);left:0}.cal-hd{justify-content:space-between;align-items:center;padding:2px 2px 8px;display:flex}.cal-hd .iconbtn{width:26px;height:26px}.cal-title{color:var(--c-text);font-size:12.5px;font-weight:600}.cal-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.cal-wd{letter-spacing:.04em;text-transform:uppercase;color:var(--c-text-faint);text-align:center;padding-bottom:4px;font-size:10px;font-weight:650}.cal-day{appearance:none;font:inherit;color:var(--c-text);border-radius:var(--r-sm);cursor:pointer;height:30px;transition:background var(--tlin-fast), color var(--tlin-fast);background:0 0;border:0;font-size:12px}.cal-day:hover:not(:disabled){background:var(--c-hover)}.cal-day.out{color:var(--c-text-faint)}.cal-day.muted{color:var(--c-text-3)}.cal-day.sel{background:var(--accent);color:#fff;font-weight:600}.cal-day.sel:hover{background:var(--accent)}.cal-day:disabled{color:var(--c-text-faint);opacity:.4;cursor:not-allowed}.cal-day.week-hl:not(:disabled){background:var(--c-hover)}.cal-day.current-week{background:color-mix(in oklch, var(--accent) 12%, transparent);font-weight:600}.cal-day.current-week.sel{background:var(--accent);color:#fff}.legend{flex-wrap:wrap;align-items:center;gap:18px;margin-top:12px;padding:2px 4px;display:flex}.legend .li{color:var(--c-text-3);align-items:center;gap:7px;font-size:11.5px;display:flex}.legend .li .icon{width:13px;height:13px}.legend .eyebrow{font-size:10px}.divider{background:var(--c-border);width:1px;height:14px}.bstrip{flex-wrap:wrap;align-items:center;gap:22px;padding:15px 18px;display:flex}.bstrip .bnum{align-items:center;gap:12px;display:flex}.bstrip .bnum .big{font-family:var(--font-display);letter-spacing:-.03em;color:var(--c-text);font-size:34px;font-weight:680;line-height:1}.bstrip .bnum .t{color:var(--c-text);font-size:12.5px;font-weight:560;line-height:1.3}.bstrip .bnum .s{color:var(--c-text-3);font-size:11px}.bstrip .vsep{background:var(--c-border-subtle);align-self:stretch;width:1px}.bstrip .bstat{flex-direction:column;gap:2px;display:flex}.bstrip .bstat .k{color:var(--c-text-3);font-size:11px}.bstrip .bstat .v{font-family:var(--font-mono);color:var(--c-text);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.bstrip .sp{flex:1}.bstrip .bbar{flex-direction:column;gap:7px;min-width:180px;display:flex}.bstrip .bbar .track{border-radius:var(--r-pill);background:var(--c-bg-muted);height:6px;display:flex;overflow:hidden}.bstrip .bbar .lg{color:var(--c-text-3);gap:12px;font-size:10.5px;display:flex}.glist{overflow:hidden}.glist .ghd{background:var(--c-bg-subtle);border-bottom:1px solid var(--c-border-subtle);color:var(--c-text-2);align-items:center;gap:8px;padding:7px 16px;font-size:12px;font-weight:600;display:flex}.glist .ghd+.ghd,.glist .grw+.ghd{border-top:1px solid var(--c-border-subtle)}.glist .ghd .sticon{display:flex}.glist .ghd .sticon .icon{width:14px;height:14px}.glist .ghd .cnt{color:var(--c-text-faint);font-weight:500;font-family:var(--font-mono);font-size:11px}.glist .grw{border-bottom:1px solid var(--c-border-subtle);height:44px;transition:background var(--tlin-fast);align-items:center;gap:12px;padding:0 16px;display:flex}.glist .grw:last-child{border-bottom:0}.glist .grw:hover{background:var(--c-hover)}.glist .grw .rid{color:var(--c-text-faint);flex:none;width:56px;font-size:11px}.glist .grw .rsn{color:var(--c-text-3);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;overflow:hidden}.glist .grw .sp{flex:1}.glist .grw .rng2{color:var(--c-text-2);white-space:nowrap;font-size:11.5px}.glist .grw .dys{color:var(--c-text);white-space:nowrap;text-align:right;width:52px;font-size:11.5px;font-weight:600}.glist .gempty{color:var(--c-text-faint);text-align:center;padding:22px 16px;font-size:12.5px}.dlg{width:640px;min-width:min(560px,100vw - 48px);max-width:calc(100vw - 48px);margin-top:10vh;overflow:visible}.dlg .dhd{border-bottom:1px solid var(--c-border-subtle);border-radius:var(--r-lg) var(--r-lg) 0 0;align-items:center;gap:10px;padding:14px 18px;display:flex;overflow:hidden}.dlg .dhd .t{letter-spacing:-.014em;color:var(--c-text);font-size:14px;font-weight:600}.dlg .dhd .sp{flex:1}.dlg .dbd{flex-direction:column;gap:15px;padding:18px;display:flex;overflow:visible}.dlg .dft{border-top:1px solid var(--c-border-subtle);border-radius:0 0 var(--r-lg) var(--r-lg);align-items:center;gap:8px;padding:13px 18px;display:flex;overflow:hidden}.dlg .dft .note{color:var(--c-text-3);align-items:center;gap:8px;font-size:11.5px;display:flex}.dlg .dft .sp{flex:1}.lchart{border-bottom:1px solid var(--c-border);height:132px;margin-top:10px;position:relative}.lchart .yaxis{flex:none;width:44px;position:relative}.lchart .yaxis span{color:var(--c-text-faint);white-space:nowrap;font-size:10px;position:absolute;right:6px;transform:translateY(-50%)}.lchart-area{flex:1;position:relative;overflow:hidden}.lchart svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.lchart .grid{stroke:var(--c-border);stroke-width:1px;vector-effect:non-scaling-stroke;stroke-dasharray:3 3}.lchart .ln{fill:none;stroke:var(--accent);stroke-width:2px;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}.lchart .avg{stroke:var(--c-border-strong);stroke-width:1.5px;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}.lchart .pt{background:var(--accent);border:2px solid var(--c-surface);width:9px;height:9px;box-shadow:0 0 0 1px var(--accent);border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.lchart .pt.on{box-shadow:0 0 0 1px var(--accent), 0 0 0 5px var(--accent-soft)}.lchart .pv{color:var(--c-text-3);white-space:nowrap;font-size:10.5px;position:absolute;transform:translate(-50%,-215%)}.lchart .pv.on{color:var(--c-text-accent);font-weight:650}.lchart .avlbl{color:var(--c-text-faint);background:var(--c-surface);padding:0 3px;font-size:10px;position:absolute;right:2px;transform:translateY(-135%)}.vaxis{gap:10px;padding:7px 4px 0 48px;display:flex}.vaxis div{text-align:center;color:var(--c-text-faint);flex:1;font-size:10.5px}.vaxis div.on{color:var(--c-text-accent);font-weight:650}.hchart{flex-direction:column;gap:9px;display:flex}.hchart .hrow2{align-items:center;gap:10px;display:flex}.hchart .hn{width:102px;color:var(--c-text-2);white-space:nowrap;text-overflow:ellipsis;flex:none;font-size:11.5px;overflow:hidden}.hchart .hn.me{color:var(--c-text-accent);font-weight:600}.hchart .htrack{border-radius:var(--r-pill);background:var(--c-bg-muted);flex:1;height:6px;overflow:hidden}.hchart .hfill{border-radius:var(--r-pill);background:color-mix(in oklch, var(--c-text) 26%, transparent);height:100%}.hchart .hfill.accent{background:var(--accent)}.hchart .hv{text-align:right;width:22px;color:var(--c-text);flex:none;font-size:11.5px;font-weight:600}.donut{align-items:center;gap:20px;display:flex}.donut-ring{flex:none;width:120px;height:120px;position:relative}.donut-ring svg{width:100%;height:100%}.donut-center{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.donut-center span{font-size:13px;font-weight:700}.donut-leg{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.donut-item{align-items:center;gap:8px;display:flex}.donut-dot{border-radius:50%;flex:none;width:8px;height:8px}.donut-lbl{color:var(--c-text-2);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11.5px;overflow:hidden}.donut-val{flex:none;font-size:11.5px;font-weight:600}.fb-st{border-radius:var(--r-full);align-items:center;gap:5px;padding:2px 9px;font-size:11.5px;font-weight:560;display:inline-flex}.fb-st:before{content:"";border-radius:50%;flex:none;width:7px;height:7px}.fb-st.open{background:color-mix(in oklch, var(--c-text-3) 12%, transparent);color:var(--c-text-3)}.fb-st.open:before{background:var(--c-text-3)}.fb-st.scheduled{background:color-mix(in oklch, var(--accent) 14%, transparent);color:var(--accent)}.fb-st.scheduled:before{background:var(--accent)}.fb-st.done{background:color-mix(in oklch, var(--c-success) 14%, transparent);color:var(--c-success)}.fb-st.done:before{background:var(--c-success)}.fb-grid{grid-template-columns:1fr 24px 1fr 80px 90px 90px}.fb-me{background:color-mix(in oklch, var(--accent) 4%, transparent);box-shadow:inset 2px 0 0 var(--accent)}.fb-abs-hint{color:var(--c-text-3);border-bottom:1px solid var(--c-border-subtle);flex-direction:column;gap:2px;padding:4px 16px 8px;font-size:11px;display:flex}
