:root,:root[data-theme=light]{color-scheme:light;--color-bg:#f5f4f2;--color-surface:#ffffff;--color-surface-raised:#fbfaf8;--color-surface-muted:#efeeec;--color-surface-hover:#eae8e5;--color-surface-pressed:#e3e0dd;--color-text:#27272a;--color-text-secondary:#525159;--color-text-muted:#66656a;--color-text-inverse:#ffffff;--color-border:#e2e0de;--color-border-strong:#bebabf;--color-divider:#eae8e5;--color-accent:#6a4d77;--color-accent-hover:#593e66;--color-accent-pressed:#4c3558;--color-accent-contrast:#ffffff;--color-accent-subtle:#f0e9f1;--color-accent-subtle-text:#5a4264;--color-focus:#8e679c;--color-progress:#9873a4;--color-progress-track:#e8e1e9;--color-success:#527966;--color-success-subtle:#eaf1ec;--color-warning:#956b34;--color-warning-subtle:#f5eee1;--color-danger:#a5535b;--color-danger-subtle:#f7e9ea;--color-info:#665d8b;--color-info-subtle:#efedf5;--shadow-sm:0 1px 2px rgb(24 20 27/6%);--shadow-md:0 6px 18px rgb(24 20 27/8%);--shadow-lg:0 18px 48px rgb(24 20 27/14%)}:root[data-theme=dark]{color-scheme:dark;--color-bg:#1b1b1d;--color-surface:#27272a;--color-surface-raised:#2d2c30;--color-surface-muted:#303035;--color-surface-hover:#37363b;--color-surface-pressed:#413e45;--color-text:#eae8e7;--color-text-secondary:#d2d0d0;--color-text-muted:#adabb1;--color-text-inverse:#1b1b1d;--color-border:#444248;--color-border-strong:#655e68;--color-divider:#38363b;--color-accent:#c8aacf;--color-accent-hover:#d8bdde;--color-accent-pressed:#e1cbe5;--color-accent-contrast:#1b1b1d;--color-accent-subtle:#3a2d3f;--color-accent-subtle-text:#dec7e4;--color-focus:#c8aacf;--color-progress:#b28cbe;--color-progress-track:#443849;--color-success:#9abba8;--color-success-subtle:#2b4035;--color-warning:#d5aa6d;--color-warning-subtle:#453723;--color-danger:#da9198;--color-danger-subtle:#472e34;--color-info:#aea8cf;--color-info-subtle:#333044;--shadow-sm:0 1px 2px rgb(0 0 0/18%);--shadow-md:0 6px 18px rgb(0 0 0/22%);--shadow-lg:0 18px 48px rgb(0 0 0/32%)}:root{--font-family-sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-family-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;--font-size-2xs:0.75rem;--font-size-xs:0.8125rem;--font-size-sm:0.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.65;--letter-spacing-tight:-0.02em;--letter-spacing-normal:0;--letter-spacing-caps:0.06em;--space-0:0px;--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;--radius-xs:4px;--radius-sm:8px;--radius-md:10px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:24px;--radius-full:9999px;--border-width:1px;--border-width-strong:2px;--control-height-sm:36px;--control-height-md:40px;--control-height-lg:44px;--hit-target-min:44px;--content-width:1280px;--reading-width:720px;--gutter-mobile:16px;--gutter-tablet:24px;--gutter-desktop:32px;--duration-fast:120ms;--duration-normal:180ms;--duration-slow:240ms;--duration-deliberate:320ms;--ease-standard:cubic-bezier(0.2,0,0,1);--ease-enter:cubic-bezier(0,0,0.2,1);--ease-exit:cubic-bezier(0.4,0,1,1);--z-base:0;--z-sticky:10;--z-dropdown:20;--z-overlay:30;--z-dialog:40;--z-toast:50}@media (prefers-reduced-motion:reduce){:root{--duration-fast:0ms;--duration-normal:0ms;--duration-slow:0ms;--duration-deliberate:0ms}}*{box-sizing:border-box}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-family-sans);font-size:var(--font-size-md);line-height:var(--line-height-normal)}button,input,select,textarea{font:inherit}a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a:focus-visible,button:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}p{line-height:var(--line-height-relaxed);color:var(--color-text-secondary);margin:var(--space-2) 0}h1,h2,h3{font-weight:var(--font-weight-semibold);margin:0;letter-spacing:var(--letter-spacing-tight)}h1{font-size:var(--font-size-3xl);line-height:var(--line-height-tight)}h2{font-size:var(--font-size-xl)}h3{font-size:var(--font-size-md)}small{display:block;color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.workspace{min-height:100vh}.sidebar{width:264px;background:var(--color-surface);border-right:1px solid var(--color-border);position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;padding:var(--space-8) var(--space-5) 0;z-index:var(--z-overlay);overflow-y:auto}.brand{display:flex;align-items:center;gap:var(--space-3);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-8)}.brand-mark{display:grid;place-items:center;background:var(--color-accent);border-radius:var(--radius-sm);width:40px;height:40px;color:var(--color-accent-contrast)}.brand-dot{display:none}.workspace-switch{border:1px solid var(--color-border);background:var(--color-surface-raised);padding:var(--space-3);border-radius:var(--radius-sm);justify-content:flex-start;text-align:left;width:100%;gap:var(--space-3);margin-bottom:var(--space-6)}.workspace-switch>svg{margin-left:auto;color:var(--color-text-muted)}.workspace-switch b{font-size:var(--font-size-sm)}.workspace-avatar{width:36px;height:36px;background:var(--color-accent-subtle);border-radius:var(--radius-sm);display:grid;place-items:center;color:var(--color-accent-subtle-text)}nav{display:grid;grid-gap:var(--space-1);gap:var(--space-1);margin-bottom:var(--space-6)}nav button{border:0;background:transparent;color:var(--color-text-secondary);padding:var(--space-3);min-height:var(--hit-target-min);border-radius:var(--radius-sm);justify-content:flex-start;font-size:var(--font-size-sm);gap:var(--space-3)}nav button:hover{background:var(--color-surface-hover)}nav button.active{background:var(--color-accent-subtle);color:var(--color-accent-subtle-text);font-weight:var(--font-weight-semibold)}.nav-count{margin-left:auto;border-radius:var(--radius-xs);font-size:var(--font-size-xs);padding:0 var(--space-2);background:var(--color-surface)}.sidebar-bottom{margin-top:auto}.secure-note{display:flex;gap:var(--space-2);align-items:center;padding:var(--space-4) var(--space-2);color:var(--color-text-muted)}.secure-note b{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.secure-note small:empty{display:none}.profile{display:flex;gap:var(--space-2);align-items:center;border-top:1px solid var(--color-border);padding:var(--space-5) 0}.profile b{font-size:var(--font-size-sm)}.profile>.icon-button{margin-left:auto}.avatar{width:36px;height:36px;flex-shrink:0;display:grid;place-items:center;border-radius:var(--radius-full);background:var(--color-accent-subtle);color:var(--color-accent-subtle-text);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.main{margin-left:264px}.topbar{height:76px;border-bottom:1px solid var(--color-border);background:var(--color-surface);padding:0 var(--space-8);display:flex;align-items:center;justify-content:space-between}.breadcrumb{font-size:var(--font-size-sm);color:var(--color-text-muted);display:flex;gap:var(--space-4)}.breadcrumb b{color:var(--color-text);font-weight:var(--font-weight-medium)}.top-right{display:flex;align-items:center;gap:var(--space-6)}.private-pill{display:inline-flex;gap:var(--space-2);font-size:var(--font-size-sm);align-items:center;color:var(--color-text-muted)}.content{padding:var(--space-8) var(--gutter-desktop) 0;max-width:1500px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-8);gap:var(--space-5)}.page-heading p{font-size:var(--font-size-md);margin-top:var(--space-3)}.primary{background:var(--color-accent);color:var(--color-accent-contrast);border:1px solid var(--color-accent);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);min-height:var(--hit-target-min);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap}.primary:hover{background:var(--color-accent-hover)}.secondary{background:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);min-height:var(--hit-target-min);font-size:var(--font-size-sm);display:inline-flex;gap:var(--space-2);align-items:center}.secondary:hover{background:var(--color-surface-hover)}.icon-button{border:0;background:transparent;width:var(--hit-target-min);height:var(--hit-target-min);flex-shrink:0;color:var(--color-text-secondary);border-radius:var(--radius-sm)}.icon-button:hover{background:var(--color-surface-hover)}.text-button{white-space:nowrap;flex-shrink:0;padding:var(--space-2) 0;border:0;background:none;color:var(--color-accent);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);min-height:var(--hit-target-min)}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:var(--space-4);gap:var(--space-4);margin-bottom:var(--space-6)}.stat{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5)}.stat-label{font-size:var(--font-size-sm);display:flex;justify-content:space-between;color:var(--color-text-secondary);align-items:center;gap:var(--space-2)}.stat-label span{color:var(--color-accent);display:grid;place-items:center;background:var(--color-accent-subtle);border-radius:var(--radius-sm);padding:var(--space-2)}.stat strong{font-size:var(--font-size-4xl);display:block;margin:var(--space-3) 0;font-weight:var(--font-weight-medium)}.stat small{font-size:var(--font-size-sm)}.stat small i{display:none}.overview-grid{display:grid;grid-template-columns:1.65fr 1fr;grid-gap:var(--space-6);gap:var(--space-6)}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:var(--space-6);gap:var(--space-3)}.panel-heading p{font-size:var(--font-size-sm);margin:var(--space-2) 0 0}.panel-heading h2{font-size:var(--font-size-lg)}.project-row{padding:var(--space-4) var(--space-6);display:flex;align-items:center;gap:var(--space-3);border-top:1px solid var(--color-divider);flex-wrap:wrap}.project-icon{height:44px;width:44px;display:grid;place-items:center;border-radius:var(--radius-md);background:var(--color-accent-subtle);color:var(--color-accent-subtle-text);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);flex-shrink:0}.project-name{display:grid;grid-gap:var(--space-1);gap:var(--space-1);flex:1 1;min-width:130px}.project-name strong{font-size:var(--font-size-md)}.project-name span{font-size:var(--font-size-sm);color:var(--color-text-muted)}.env{border:1px solid var(--color-border);border-radius:var(--radius-xs);padding:var(--space-1) var(--space-2)}.badge,.env{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.badge{border:1px solid var(--color-border);border-radius:var(--radius-full);padding:var(--space-1) var(--space-3);display:inline-flex;align-items:center;gap:var(--space-2);white-space:nowrap;background:var(--color-surface-muted)}.badge i{width:6px;height:6px;border-radius:50%;background:currentColor}.badge.connected{background:var(--color-success-subtle);color:var(--color-success)}.badge.unreachable{background:var(--color-warning-subtle);color:var(--color-warning)}.add-row{display:flex;width:calc(100% - 48px);margin:var(--space-2) var(--space-6) var(--space-6);border:1px dashed var(--color-border-strong);background:var(--color-surface-raised);color:var(--color-accent);padding:var(--space-3);border-radius:var(--radius-sm);min-height:var(--hit-target-min)}.add-row,.count{font-size:var(--font-size-sm)}.count{background:var(--color-surface-muted);padding:var(--space-1) var(--space-2);border-radius:var(--radius-xs);color:var(--color-text-secondary)}.calm-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-2) var(--space-6) var(--space-6)}.calm-state>span{color:var(--color-success);background:var(--color-success-subtle);width:56px;height:56px;border-radius:50%;display:grid;place-items:center;margin:0 0 var(--space-4)}.calm-state p{font-size:var(--font-size-sm);max-width:270px;margin:var(--space-2) 0 0}.onboarding{display:flex;gap:var(--space-8);align-items:center;background:var(--color-accent-subtle);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8);margin:var(--space-6) 0}.onboarding-art{color:var(--color-accent-subtle-text);width:80px;height:80px;flex-shrink:0;display:grid;place-items:center}.mini-node,.orbit{display:none}.onboarding h2{font-size:var(--font-size-2xl);color:var(--color-accent-subtle-text)}.onboarding p{font-size:var(--font-size-sm);margin:var(--space-3) 0}.empty-inline{justify-content:center;padding:var(--space-8) var(--space-5);font-size:var(--font-size-sm)}.activity-row,.empty-inline{display:flex;align-items:center;gap:var(--space-3);color:var(--color-text-muted)}.activity-row{border-top:1px solid var(--color-divider);padding:var(--space-4) var(--space-6)}.activity-row b{font-size:var(--font-size-sm);color:var(--color-text)}.activity-row .badge{margin-left:auto}.footer{display:flex;justify-content:space-between;padding:var(--space-6) 0;font-size:var(--font-size-xs);color:var(--color-text-muted)}.footer span:first-child{display:flex;gap:var(--space-2);align-items:center}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5);color:var(--color-text-muted);font-size:var(--font-size-sm)}.panel>.toolbar{padding:var(--space-5);margin:0;border-bottom:1px solid var(--color-divider)}.search{display:flex;align-items:center;gap:var(--space-3);min-width:280px;background:var(--color-surface);border:1px solid var(--color-border);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm)}.search input{border:0;background:none;outline:none;width:100%;font-size:var(--font-size-sm);padding:var(--space-1)}.project-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:var(--space-6);gap:var(--space-6)}.project-card{padding:var(--space-6)}.card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-5)}.project-card>p{margin-bottom:var(--space-6);overflow-wrap:anywhere}.detail,.project-card>p{font-size:var(--font-size-sm)}.detail{display:flex;justify-content:space-between;padding:var(--space-3) 0;border-bottom:1px solid var(--color-divider);gap:var(--space-3)}.detail span{color:var(--color-text-muted)}.detail b{font-weight:var(--font-weight-medium);text-align:right}.card-actions{display:flex;justify-content:space-between;margin-top:var(--space-5)}.capabilities{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-3)}.setup{padding:var(--space-6)}.setup,.setup-steps{margin-top:var(--space-6)}.setup-steps{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--space-8);gap:var(--space-8)}.setup-steps>div>span{display:grid;place-items:center;background:var(--color-accent-subtle);border-radius:50%;width:32px;height:32px;color:var(--color-accent-subtle-text);margin-bottom:var(--space-4)}.setup-steps p,.setup-steps>div>span{font-size:var(--font-size-sm)}.empty-state{padding:var(--space-16) var(--space-8);text-align:center;display:flex;flex-direction:column;align-items:center}.empty-state>span{background:var(--color-accent-subtle);color:var(--color-accent-subtle-text);border-radius:var(--radius-xl);padding:var(--space-4);margin-bottom:var(--space-6)}.empty-state p{max-width:470px;font-size:var(--font-size-md);margin-top:var(--space-4)}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm);text-align:left}th{color:var(--color-text-secondary);font-weight:var(--font-weight-medium);background:var(--color-surface-raised);padding:var(--space-3) var(--space-5)}td{padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-divider)}td strong{font-weight:var(--font-weight-medium)}td code{display:block;color:var(--color-text-muted);margin-top:var(--space-2);font-size:var(--font-size-xs);font-family:var(--font-family-mono)}.row-actions{display:flex;gap:var(--space-2)}.project-select{display:flex;align-items:center;gap:var(--space-3)}.project-select select{min-width:200px}.maintenance-row{display:flex;align-items:center;gap:var(--space-5);padding:var(--space-6);border-top:1px solid var(--color-divider);color:var(--color-text-secondary)}.maintenance-row p{font-size:var(--font-size-sm)}.maintenance-row button{margin-left:auto}.settings-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-6);gap:var(--space-6)}.settings-card{padding:var(--space-6)}.settings-card>svg{color:var(--color-accent);margin-bottom:var(--space-5)}.settings-card>p{font-size:var(--font-size-md);margin:var(--space-4) 0}.settings-card>.secondary{margin-top:var(--space-6)}.modal-backdrop{position:fixed;inset:0;z-index:var(--z-dialog);background:rgb(24 20 27/45%);display:flex;align-items:center;justify-content:center;padding:var(--space-5)}.modal{width:500px;max-height:95vh;overflow:auto;position:relative;border-radius:var(--radius-xl);background:var(--color-surface);padding:var(--space-8);box-shadow:var(--shadow-lg)}.modal-close{position:absolute;right:var(--space-3);top:var(--space-3)}.modal h2{font-size:var(--font-size-2xl);padding-right:var(--space-8)}.modal>p{font-size:var(--font-size-md);margin:var(--space-4) 0 var(--space-6)}form label{display:grid;grid-gap:var(--space-2);gap:var(--space-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin:var(--space-5) 0}input,select,textarea{border:1px solid var(--color-border-strong);background:var(--color-surface);padding:var(--space-3);border-radius:var(--radius-sm);min-width:0;color:var(--color-text);font-size:var(--font-size-md)}input:focus,select:focus,textarea:focus{outline:2px solid var(--color-focus);outline-offset:1px}textarea{resize:vertical;min-height:100px}form>.primary{width:100%;margin-top:var(--space-3)}.fine,.toast{font-size:var(--font-size-sm)}.toast{position:fixed;bottom:var(--space-6);right:var(--space-6);max-width:500px;background:var(--color-surface);border:1px solid var(--color-success);box-shadow:var(--shadow-md);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);z-index:var(--z-toast);display:flex;align-items:center;gap:var(--space-4)}.toast-error{border-color:var(--color-danger)}.error{color:var(--color-danger)}.login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-brand{background:var(--color-accent-subtle);padding:var(--space-16);color:var(--color-accent-subtle-text);display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.login-brand h1{font-size:clamp(36px,4vw,56px);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:var(--space-8) 0 var(--space-4)}.login-brand p{max-width:400px;font-size:var(--font-size-lg);color:var(--color-accent-subtle-text)}.login-form{padding:var(--space-12);width:100%;max-width:580px;align-self:center;justify-self:center}.login-form>svg{color:var(--color-accent);margin-bottom:var(--space-6)}.login-form h2{font-size:var(--font-size-3xl)}.login-form>p{margin:var(--space-4) 0 var(--space-8)}.google-login,.login-form>p{font-size:var(--font-size-md)}.google-login{width:100%;gap:var(--space-3)}.configuration-note{color:var(--color-text-muted)}.dev-login{border-top:1px solid var(--color-border);margin-top:var(--space-8);padding-top:var(--space-6)}.dev-login summary{cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.mobile-menu,.scrim{display:none}.attention-item{padding:var(--space-3) var(--space-6) var(--space-5)}.attention-item p{font-size:var(--font-size-sm)}@media (max-width:1200px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-grid,.settings-grid{grid-template-columns:1fr}.project-row .env{display:none}.project-cards{grid-template-columns:1fr}.onboarding{padding:var(--space-6)}.setup-steps{grid-template-columns:1fr;gap:var(--space-5)}}@media (max-width:800px){.sidebar{transform:translateX(-100%)}.sidebar:not(.open){visibility:hidden}.sidebar.open{transform:translateX(0)}.main{margin-left:0}.mobile-menu{display:flex}.topbar{height:64px;padding:0 var(--space-4);gap:var(--space-3)}.breadcrumb{margin-right:auto;gap:var(--space-2)}.top-right .private-pill{display:none}.content{padding:var(--space-6) var(--gutter-mobile) 0}.page-heading{align-items:flex-start}.page-heading h1{font-size:var(--font-size-2xl)}.page-heading p{font-size:var(--font-size-sm)}.page-heading .primary{font-size:0;padding:var(--space-3);gap:0}.page-heading .primary svg{width:20px;height:20px}.stats{gap:var(--space-3)}.stat{padding:var(--space-4)}.stat-label{font-size:var(--font-size-sm)}.stat-label span{display:none}.stat small{font-size:var(--font-size-xs)}.project-row{gap:var(--space-2);padding:var(--space-4)}.project-row .badge{margin-left:52px}.project-row .icon-button{margin-left:auto}.panel-heading{padding:var(--space-5)}.panel-heading h2{font-size:var(--font-size-lg)}.onboarding{padding:var(--space-6)}.onboarding-art{display:none}.onboarding h2{font-size:var(--font-size-xl)}.footer>span:last-child,.onboarding p br{display:none}.scrim{display:block;position:fixed;inset:0;background:rgb(24 20 27/45%);z-index:25;border:0}.toolbar{flex-wrap:wrap}.search{min-width:0;flex:1 1}.maintenance-row{align-items:flex-start;gap:var(--space-3);padding:var(--space-5);flex-wrap:wrap}.maintenance-row>div{flex:1 1}.maintenance-row button{margin-left:var(--space-8)}.project-select{flex-wrap:wrap}.login{grid-template-columns:1fr}.login-brand{display:none}.login-form{padding:var(--space-8)}.modal{padding:var(--space-6)}.toast{left:var(--space-4);right:var(--space-4);bottom:var(--space-4)}.row-actions{flex-wrap:wrap}}