:root{--font-sans: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--text-xs: 12px;--text-sm: 14px;--text-md: 16px;--text-lg: 18px;--text-xl: 28px;--text-2xl: 48px;--weight-normal: 400;--weight-medium: 500;--weight-bold: 700;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 64px;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 24px;--radius-pill: 999px;--sidebar-width: 232px;--topbar-height: 56px;--content-max: 1120px;--shadow-card: 0 1px 2px rgba(15, 39, 64, .06), 0 6px 20px rgba(15, 39, 64, .06);--color-bg: #f3f8fc;--color-surface: #ffffff;--color-border: #cfe1ef;--color-border-strong: #6b89a6;--color-text: #0f2740;--color-text-muted: #44607b;--color-accent: #1a66b3;--color-accent-text: #ffffff;--color-accent-soft: #e3f0fb;--color-ok: #1b6e41;--color-ok-bg: #e6f4ec;--color-warn: #7a4f00;--color-warn-bg: #fff3d6;--color-error: #b3261e;--color-error-bg: #fdecea;--color-sky-top: #9fd0f5;--color-sky-mid: #cfe8fb;--color-sky-horizon: #f3f8fc;--color-cloud: #ffffff;--color-star: #cfe8fb}@media(prefers-color-scheme:dark){:root{--shadow-card: 0 1px 2px rgba(0, 0, 0, .4), 0 6px 20px rgba(0, 0, 0, .25);--color-bg: #0b1730;--color-surface: #13244a;--color-border: #2a3f66;--color-border-strong: #6f8bb0;--color-text: #e9f1fb;--color-text-muted: #9fb4cd;--color-accent: #7db9f6;--color-accent-text: #0b1730;--color-accent-soft: #1a3160;--color-ok: #63d391;--color-ok-bg: #12352a;--color-warn: #f2bd55;--color-warn-bg: #3a2d0f;--color-error: #ff8f85;--color-error-bg: #3b1a20;--color-sky-top: #060d1f;--color-sky-mid: #0e1d3f;--color-sky-horizon: #1a3160;--color-cloud: #dce9fa;--color-star: #cfe0ff}}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--font-sans);font-size:var(--text-sm);color:var(--color-text);background:var(--color-bg);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}.screen-message{display:grid;place-items:center;min-height:100vh;padding:var(--space-4);color:var(--color-text-muted)}.app{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);flex-shrink:0;padding:var(--space-5) var(--space-4);border-right:1px solid var(--color-border);background:var(--color-surface)}.sidebar .brandmark{padding:0 var(--space-2) var(--space-5)}.nav{display:flex;flex-direction:column;gap:var(--space-1)}.nav-link{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-muted);font-weight:var(--weight-medium);text-decoration:none}.nav-link:hover{color:var(--color-text);background:var(--color-accent-soft)}.nav-link.active{color:var(--color-accent);background:var(--color-accent-soft)}.main{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{height:var(--topbar-height);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-6);border-bottom:1px solid var(--color-border);background:var(--color-surface)}.topbar-user{display:flex;align-items:center;gap:var(--space-3);color:var(--color-text-muted)}.tenant-name{font-weight:var(--weight-medium)}.tenant-select{font:inherit;color:inherit;min-height:36px;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2)}.content{width:100%;max-width:var(--content-max);padding:var(--space-6)}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-5)}.page-header .page-title{margin:0}.page-title{font-size:var(--text-xl);line-height:34px;font-weight:var(--weight-bold);letter-spacing:-.01em;margin:0 0 var(--space-5)}.section-title{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-muted);margin:var(--space-6) 0 var(--space-3)}.list{list-style:none;margin:0;padding:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.list-row{display:flex;justify-content:space-between;padding:var(--space-3) var(--space-4)}.list-row+.list-row{border-top:1px solid var(--color-border)}.details{display:grid;grid-template-columns:140px 1fr;gap:var(--space-3);margin:0 0 var(--space-6)}.details dt{color:var(--color-text-muted)}.details dd{margin:0}.text-ok{color:var(--color-ok)}.text-error{color:var(--color-error)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--color-error-bg);color:var(--color-error)}.btn{display:inline-flex;align-items:center;gap:var(--space-2);font:var(--weight-medium) var(--text-sm)/20px var(--font-sans);padding:var(--space-2) var(--space-4);min-height:40px;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;text-decoration:none}.btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--color-accent);color:var(--color-accent-text)}.btn-ghost{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-strong)}.btn-ghost:hover{background:var(--color-accent-soft)}.status{display:inline-flex;align-items:center;gap:6px;padding:2px var(--space-3);border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:var(--weight-medium);line-height:16px}.status:before{font-size:10px}.status-running{background:var(--color-ok-bg);color:var(--color-ok)}.status-running:before{content:"●"}.status-stopped{background:var(--color-accent-soft);color:var(--color-text-muted)}.status-stopped:before{content:"○"}.status-pending{background:var(--color-warn-bg);color:var(--color-warn)}.status-pending:before{content:"◐"}.status-error{background:var(--color-error-bg);color:var(--color-error)}.status-error:before{content:"▲"}.status-unknown{background:var(--color-accent-soft);color:var(--color-text-muted)}.status-unknown:before{content:"?"}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4)}.stat{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4)}.stat-value{font-size:36px;line-height:40px;font-weight:var(--weight-bold)}.stat-label{font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:.02em;color:var(--color-text-muted)}.table{width:100%;border-collapse:separate;border-spacing:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.table th{text-align:left;font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-muted);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.table tr:last-child td{border-bottom:0}.cell-strong{font-weight:var(--weight-bold)}.cell-muted{color:var(--color-text-muted)}.cell-mono{font-family:var(--font-mono);font-size:13px}.cell-actions{display:flex;gap:var(--space-2);justify-content:flex-end}.empty{text-align:center;padding:var(--space-6) var(--space-4);background:var(--color-surface);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-text-muted)}.empty svg{width:72px;height:auto;margin-bottom:var(--space-3);fill:var(--color-accent-soft);stroke:var(--color-border-strong);stroke-width:2}.empty p{margin:0 0 var(--space-3)}@media(max-width:768px){.stats{grid-template-columns:repeat(2,1fr)}}.brandmark{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:var(--weight-bold);font-size:20px;letter-spacing:-.01em;color:var(--color-text);text-decoration:none}.brandmark svg{width:32px;height:auto;fill:var(--color-accent);stroke:var(--color-accent);stroke-width:5;stroke-linejoin:round}.sky-bg{background:linear-gradient(180deg,var(--color-sky-top),var(--color-sky-mid) 55%,var(--color-sky-horizon));position:relative;overflow:hidden}@media(prefers-color-scheme:dark){.sky-bg:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle 1.5px at 12% 18%,var(--color-star) 98%,transparent),radial-gradient(circle 1px at 28% 8%,var(--color-star) 98%,transparent),radial-gradient(circle 1.5px at 44% 26%,var(--color-star) 98%,transparent),radial-gradient(circle 1px at 63% 12%,var(--color-star) 98%,transparent),radial-gradient(circle 1.5px at 78% 30%,var(--color-star) 98%,transparent),radial-gradient(circle 1px at 90% 10%,var(--color-star) 98%,transparent),radial-gradient(circle 1px at 6% 46%,var(--color-star) 98%,transparent),radial-gradient(circle 1px at 94% 52%,var(--color-star) 98%,transparent)}}.landing{font-size:var(--text-md);line-height:24px;min-height:100vh}.landing-header{display:flex;align-items:center;justify-content:space-between;max-width:var(--content-max);margin:0 auto;padding:var(--space-4) var(--space-6);position:relative;z-index:1}.landing-actions{display:flex;align-items:center;gap:var(--space-4)}.landing-actions a.link{color:var(--color-text);font-weight:var(--weight-medium);font-size:var(--text-sm);text-decoration:underline;text-underline-offset:3px}.hero{max-width:var(--content-max);margin:0 auto;padding:var(--space-6) var(--space-6) 120px;position:relative;z-index:1;display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:var(--space-6)}.hero-title{font-size:48px;line-height:52px;font-weight:var(--weight-bold);letter-spacing:-.02em;margin:0 0 var(--space-3)}.hero-text{margin:0 0 var(--space-5);max-width:460px;color:var(--color-text)}.hero-cloud{width:100%;max-width:340px;justify-self:center;fill:var(--color-cloud);stroke:var(--color-cloud);stroke-width:5;stroke-linejoin:round;filter:drop-shadow(0 12px 20px rgba(15,39,64,.15));animation:float 9s ease-in-out infinite}@keyframes float{50%{transform:translateY(-10px)}}@media(prefers-color-scheme:dark){.hero-cloud{filter:none}}@media(prefers-reduced-motion:reduce){.hero-cloud,.loading-cloud svg{animation:none}}.features{max-width:var(--content-max);margin:var(--space-6) auto;padding:0 var(--space-6);display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5)}.feature{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5)}.feature-title{font-size:var(--text-lg);line-height:26px;font-weight:600;margin:0 0 var(--space-2)}.feature-text{margin:0;color:var(--color-text-muted);font-size:var(--text-sm);line-height:20px}.usecases{max-width:var(--content-max);margin:var(--space-7) auto var(--space-6);padding:0 var(--space-6)}.usecases h2{font-size:28px;line-height:34px;margin:0 0 var(--space-4)}.usecase-row{display:flex;gap:var(--space-3);flex-wrap:wrap}.vpn-band{max-width:var(--content-max);margin:var(--space-6) auto;padding:var(--space-5) var(--space-6);background:var(--color-accent-soft);border-radius:var(--radius-lg);display:flex;gap:var(--space-5);align-items:center;box-sizing:border-box;width:calc(100% - 64px)}.vpn-band h3{margin:0 0 var(--space-1);font-size:var(--text-lg)}.vpn-band p{margin:0;color:var(--color-text-muted);font-size:var(--text-sm)}.vpn-band svg{width:56px;flex-shrink:0;fill:var(--color-accent);stroke:var(--color-accent);stroke-width:5;stroke-linejoin:round}.landing-footer{border-top:1px solid var(--color-border);padding:var(--space-5) var(--space-6);color:var(--color-text-muted);font-size:var(--text-sm);max-width:var(--content-max);margin:0 auto;display:flex;justify-content:space-between}.chip{display:inline-flex;align-items:center;padding:4px var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:20px}.login-screen{min-height:100%;display:grid;place-items:center;padding:var(--space-6) var(--space-4)}.login-card{position:relative;z-index:1;width:100%;max-width:380px;box-sizing:border-box;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-6)}.login-card h1{font-size:24px;line-height:30px;margin:var(--space-4) 0 var(--space-1)}.login-card .sub{margin:0 0 var(--space-5);color:var(--color-text-muted);font-size:var(--text-sm)}.field{display:block;margin-bottom:var(--space-4)}.field span{display:block;font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:.02em;color:var(--color-text-muted);margin-bottom:var(--space-1)}.field input{width:100%;box-sizing:border-box;min-height:44px;padding:var(--space-2) var(--space-3);font:var(--text-md)/24px var(--font-sans);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm)}.field input:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.login-card .btn{width:100%;justify-content:center}.login-card .alt{display:block;text-align:center;margin-top:var(--space-4);font-size:var(--text-sm);color:var(--color-accent);text-underline-offset:3px}.fw-bar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;background:var(--color-warn-bg);color:var(--color-warn);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);font-weight:var(--weight-medium)}.fw-bar .grow{flex:1}.fw-canvas{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-6)}.fw-row{display:grid;grid-template-columns:200px 1fr 200px;align-items:center;gap:var(--space-4);margin-bottom:var(--space-5)}.fw-row:last-of-type{margin-bottom:var(--space-4)}.fw-block{background:var(--color-accent-soft);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);padding:var(--space-4);text-align:center}.fw-block b{display:block;font-size:var(--text-md)}.fw-block small{font-size:var(--text-xs);color:var(--color-text-muted)}.fw-link{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.fw-chips{display:flex;gap:var(--space-2);flex-wrap:wrap;justify-content:center}.fw-arrow{position:relative;width:100%;height:2px;background:var(--color-border-strong)}.fw-arrow:after{content:"";position:absolute;right:-1px;top:-6px;border:7px solid transparent;border-left:12px solid var(--color-border-strong);border-right:0}.fw-sentence{margin:0;font-size:var(--text-sm);color:var(--color-text-muted)}.fw-sentence strong{color:var(--color-text)}.fw-list{display:none}.state-card{text-align:center;padding:var(--space-6) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.state-card p{margin:var(--space-3) 0 0;color:var(--color-text-muted)}.loading-cloud svg{width:72px;height:auto;fill:var(--color-accent);stroke:var(--color-accent);stroke-width:5;stroke-linejoin:round;animation:breathe 2.4s ease-in-out infinite}@keyframes breathe{50%{transform:scale(1.08);opacity:.75}}.error-cloud svg{width:72px;height:auto}.error-cloud .c{fill:var(--color-text-muted);stroke:var(--color-text-muted);stroke-width:5;stroke-linejoin:round}.error-cloud .drop{fill:var(--color-error)}@media(max-width:768px){.fw-canvas{display:none}.fw-list{display:block}.hero,.features{grid-template-columns:1fr}.hero{padding:var(--space-4) var(--space-4) var(--space-7)}.hero-title{font-size:36px;line-height:40px}.hero-cloud{max-width:200px;grid-row:1}.landing-header,.features,.usecases,.landing-footer{padding-left:var(--space-4);padding-right:var(--space-4)}.landing-actions{gap:var(--space-3)}.vpn-band{flex-direction:column;align-items:flex-start;width:calc(100% - 32px);padding:var(--space-5) var(--space-4)}.landing-footer{flex-direction:column;gap:var(--space-1)}.app{flex-direction:column}.sidebar{width:auto;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-right:0;border-bottom:1px solid var(--color-border)}.sidebar .brandmark{padding:0;font-size:0}.nav{flex-direction:row;overflow-x:auto}.nav-link{white-space:nowrap}.topbar{padding:0 var(--space-4)}.topbar-user{gap:var(--space-2)}.topbar-name{display:none}.content{padding:var(--space-4)}.details{grid-template-columns:1fr;gap:var(--space-1)}.details dd{margin-bottom:var(--space-3)}.table{background:none;border:0;border-radius:0;overflow:visible}.table thead{display:none}.table,.table tbody,.table tr,.table td{display:block}.table tr{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3)}.table td,.table tr:last-child td{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-1) 0;border:0}.table td[data-label]:before{content:attr(data-label);color:var(--color-text-muted)}.table .cell-strong{font-size:var(--text-lg);padding-bottom:var(--space-2)}.table tr td:last-child{display:block;padding-top:var(--space-3);margin-top:var(--space-2);border-top:1px solid var(--color-border)}}
