.mono{font-family:var(--font-mono);font-feature-settings:"ss02" on,"cv11" on;letter-spacing:var(--tracking-mono)}.tabular{font-variant-numeric:tabular-nums}:root{--app-header-h: 60px}@media (max-width: 540px){:root{--app-header-h: 56px}:root[data-header-style=capsules]{--app-header-h: 76px}}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{position:sticky;top:0;z-index:30;background:color-mix(in oklab,var(--bg) 80%,transparent);backdrop-filter:saturate(140%) blur(10px);-webkit-backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--border-faint)}.app-header-inner{max-width:720px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:24px;letter-spacing:-.01em;color:var(--text)}:root[data-brand-mark=on] .brand{font-size:28px}:root[data-brand-mark=off] .brand-mark{display:none}.brand-mark{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;color:var(--text);flex-shrink:0}.brand-mark svg{width:22px;height:22px;display:block}.header-actions{display:flex;align-items:center;gap:8px}.theme-toggle{display:inline-flex;align-items:center;gap:0;padding:3px;background:var(--surface-2);border:1px solid var(--border-faint);border-radius:999px}.theme-toggle button{width:36px;height:32px;display:grid;place-items:center;background:transparent;border:0;border-radius:999px;color:var(--text-muted);cursor:pointer;transition:background-color .15s,color .15s}.theme-toggle button:hover{color:var(--text)}.theme-toggle button[aria-pressed=true]{background:var(--bg-elev);color:var(--text);box-shadow:var(--shadow-sm)}.theme-toggle button svg{width:22px;height:22px}@media (max-width: 540px){:root[data-header-style=capsules] .app-header{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:0}:root[data-header-style=capsules] .app-header-inner{max-width:none;padding:4px 0;display:grid;grid-template-columns:1fr 1fr;gap:88px;align-items:stretch}:root[data-header-style=capsules] .brand,:root[data-header-style=capsules] .header-actions{background:color-mix(in oklab,var(--bg) 80%,transparent);backdrop-filter:saturate(140%) blur(10px);-webkit-backdrop-filter:saturate(140%) blur(10px);border:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:0 8px;min-height:68px}:root[data-header-style=capsules] .brand{border-radius:0 999px 999px 0}:root[data-header-style=capsules] .header-actions{border-radius:999px 0 0 999px}}.app-main{flex:1;width:100%;max-width:720px;margin:0 auto;padding:var(--section-gap) 20px 80px;display:flex;flex-direction:column;gap:var(--section-gap)}@media (max-width: 540px){.app-header-inner{padding:12px 16px}.app-main{padding:var(--section-gap) 14px 60px}}.install-card{max-width:520px;margin:40px auto;padding:var(--card-pad);background:var(--surface);border:1px solid var(--border-faint);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);color:var(--text);font-size:var(--fs-md)}.install-card-title{margin:0 0 8px;font-size:var(--fs-xl);font-weight:600;letter-spacing:-.015em;font-family:var(--font-display)}.install-card p{margin:0;color:var(--text-muted);line-height:1.5}.card{background:var(--surface);border:1px solid var(--border-faint);border-radius:var(--r-lg);padding:var(--card-pad);box-shadow:var(--shadow-sm)}.section{display:flex;flex-direction:column;gap:16px}.section-head{display:flex;min-height:32px;align-items:center;justify-content:space-between;gap:12px}.section-title{font-size:var(--fs-xl);font-weight:600;letter-spacing:-.015em;margin:0;font-family:var(--font-display)}.section-head-count{font-size:var(--fs-sm);color:var(--text-muted);font-family:var(--font-mono);font-feature-settings:"tnum"}.locations-empty{font-size:var(--fs-sm);color:var(--text-muted)}.bundle-segmented{display:flex;gap:4px;padding:4px;background:var(--surface-2);border-radius:var(--r-md)}.bundle-segment{flex:1;height:38px;padding:0 12px;border:0;background:transparent;border-radius:var(--r-sm);color:var(--text-muted);font-size:var(--fs-md);font-weight:500;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}.bundle-segment:hover:not(:disabled){color:var(--text)}.bundle-segment[aria-pressed=true]{background:var(--accent);color:var(--accent-fg);box-shadow:var(--shadow-sm);font-weight:600}.bundle-segment:disabled{opacity:.45;cursor:not-allowed}.bundle-helper{margin:0 0 10px}.profiles-row-actions{display:flex;align-items:center;gap:6px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;padding:0 16px;border-radius:var(--r-md);border:1px solid transparent;background:var(--surface-2);color:var(--text);font-size:var(--fs-md);font-weight:500;cursor:pointer;white-space:nowrap;transition:background-color .15s,border-color .15s,color .15s,transform .15s;text-decoration:none;font-family:inherit}.btn:hover{background:var(--bg-hover)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:active:not(:disabled){transform:translateY(.5px)}.btn-primary{background:var(--text);color:var(--text-inverse);border-color:var(--text)}.btn-primary:hover{background:oklch(from var(--text) calc(l + .08) c h)}[data-theme=dark] .btn-primary:hover{background:oklch(from var(--text) calc(l - .08) c h)}.btn-ghost{background:transparent;color:var(--text)}.btn-ghost:hover{background:var(--bg-hover)}.btn-outline{background:transparent;border-color:var(--border);color:var(--text)}.btn-outline:hover{background:var(--bg-hover);border-color:var(--border-strong)}.btn-danger{background:transparent;color:var(--danger);border-color:color-mix(in oklab,var(--danger) 30%,var(--border))}.btn-danger:hover{background:var(--danger-soft);border-color:color-mix(in oklab,var(--danger) 60%,var(--border))}.btn-danger.btn-solid{background:var(--danger);color:var(--text-inverse);border-color:var(--danger)}.btn-danger.btn-solid:hover{background:oklch(from var(--danger) calc(l - .04) c h)}[data-theme=dark] .btn-danger.btn-solid{color:var(--text)}.btn-sm{height:30px;padding:0 10px;font-size:var(--fs-sm);border-radius:var(--r-sm)}.btn-lg{height:46px;padding:0 22px;font-size:var(--fs-lg)}.btn svg{width:22px;height:22px;flex-shrink:0}.btn-sm svg{width:22px;height:22px}.btn-lg svg{width:22px;height:22px}.chip{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:999px;font-size:var(--fs-xs);font-weight:500;letter-spacing:.01em;background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border-faint);height:22px;white-space:nowrap}.chip-ok{background:var(--surface-2);color:var(--text);border-color:var(--border)}.chip-warn{background:var(--pending-soft);color:var(--text-muted);border-color:var(--pending-border)}.chip-accent{background:var(--accent-soft);color:var(--on-accent-text);border-color:color-mix(in oklab,var(--accent) 25%,transparent)}.chip-danger{background:var(--danger-soft, var(--pending-soft));color:var(--danger, var(--text));border-color:color-mix(in oklab,var(--danger, var(--text)) 25%,transparent)}.chip-rotated{background:var(--pending-soft, var(--bg-elev));color:var(--text-muted);border-color:var(--pending-border, var(--border-faint));font-size:var(--fs-xs)}.device-suspension{margin-top:8px;display:flex;flex-direction:column;gap:6px}.device-suspension-text{font-size:var(--fs-xs);color:var(--text-muted)}.input{width:100%;height:42px;padding:0 14px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-elev);color:var(--text);font-size:var(--fs-md);transition:border-color .15s,box-shadow .15s,background-color .15s;font-family:inherit}.input::placeholder{color:var(--text-faint)}.input:hover{border-color:var(--border-strong)}.input:focus{outline:none}.input.input-mono{font-family:var(--font-mono);letter-spacing:.04em}.code-box{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--code-bg);border:1px solid var(--border-faint);border-radius:var(--r-md);font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text-muted);word-break:break-all;line-height:1.5}.device-list{display:flex;flex-direction:column;gap:10px;padding:0;margin:0;list-style:none}.device-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:14px;padding:var(--row-pad-y) 14px;border:1px solid var(--border-faint);border-radius:var(--r-md);background:var(--bg-elev);transition:border-color .15s,background .15s}.device-row:hover{border-color:var(--border-strong)}.device-row[data-current=true]{border-color:var(--border-strong);background:var(--surface-2)}.device-row[data-pending=true]{border-color:var(--border);background:var(--bg-elev);border-style:dashed}.device-row .device-name{font-weight:600;font-size:var(--fs-md);display:flex;align-items:center;gap:8px;min-width:0}.device-row .device-meta{display:flex;flex-direction:column;gap:2px;align-items:flex-start;font-size:var(--fs-sm);color:var(--text-muted);margin-top:2px;flex-wrap:wrap}.device-row .device-actions{display:flex;gap:4px;opacity:1}.icon-btn{width:32px;height:32px;display:grid;place-items:center;border:1px solid transparent;background:transparent;color:var(--text-muted);border-radius:var(--r-sm);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.icon-btn:hover{background:var(--bg-hover);color:var(--text);border-color:var(--border-faint)}.icon-btn.danger:hover{color:var(--danger);border-color:color-mix(in oklab,var(--danger) 30%,var(--border))}.icon-btn svg{width:22px;height:22px}.empty-state{text-align:center;padding:32px 16px;border:1.5px dashed var(--border);border-radius:var(--r-md);background:var(--bg-sunken);color:var(--text-muted)}.empty-state .icon{width:32px;height:32px;margin:0 auto 12px;display:grid;place-items:center;color:var(--text-muted)}.empty-state .icon svg{width:32px;height:32px}.empty-state .title{color:var(--text);font-weight:600;margin-bottom:4px;font-size:var(--fs-md)}.empty-state .body{font-size:var(--fs-sm);max-width:380px;margin:0 auto;line-height:1.55}.empty-state .empty-state-action{margin-top:16px}.platform-tabs{display:flex;gap:4px;padding:4px;background:var(--surface-2);border-radius:var(--r-md);margin-bottom:12px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.platform-tabs::-webkit-scrollbar{display:none}.platform-tab{flex:1;height:36px;padding:0 10px;border:0;background:transparent;border-radius:var(--r-sm);color:var(--text-muted);font-size:var(--fs-sm);font-weight:500;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:inherit;white-space:nowrap}.platform-tab:hover{color:var(--text)}.platform-tab[aria-pressed=true]{background:var(--bg-elev);color:var(--text);box-shadow:var(--shadow-sm)}.slots-gauge{position:relative;display:flex;align-items:center;justify-content:center;padding:8px 0 4px}.slots-gauge svg{display:block}.slots-gauge-label{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.slots-gauge-value{font-family:var(--font-display);font-size:36px;font-weight:600;letter-spacing:-.02em;line-height:1;color:var(--text);display:flex;align-items:baseline;gap:2px}.slots-gauge-value .sep{color:var(--text-muted);font-weight:500}.slots-gauge-value .den{color:var(--text-muted);font-size:22px}.slots-gauge-cap{margin-top:6px;font-size:var(--fs-xs);color:var(--text-muted);letter-spacing:.02em}.traffic-gauge-cap{display:flex;flex-direction:column;align-items:center;gap:2px;line-height:1.25;letter-spacing:0}.slots-total{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px 0 8px;min-height:160px}.slots-total-num{position:relative;font-family:var(--font-display);font-size:56px;font-weight:600;letter-spacing:-.03em;line-height:1;color:var(--text)}.slots-total-cap{position:relative;margin-top:8px;font-size:var(--fs-sm);color:var(--text-muted)}.numeric-stat{min-height:172px;padding:8px 0 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.numeric-stat-value{max-width:100%;display:flex;align-items:baseline;justify-content:center;gap:6px;color:var(--text);font-family:var(--font-display);line-height:1;letter-spacing:0}.numeric-stat-value .num{font-size:52px;font-weight:600}.numeric-stat-value .unit{color:var(--text-muted);font-size:18px;font-weight:600;white-space:nowrap}.numeric-stat-cap{margin-top:10px;color:var(--text-muted);font-size:var(--fs-sm)}.summary-period-control{display:flex;justify-content:center;margin:0 0 2px}.summary-period-control .soft-tabs.is-compact{max-width:360px;width:100%}.summary-period-control .soft-tabs.is-compact .soft-tab{flex:1;min-width:0}.devices-screen{display:flex;flex-direction:column;gap:var(--section-gap)}.status-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--section-gap)}.conn-card{display:flex;flex-direction:column;align-items:stretch;min-height:160px;padding:0;gap:0}.conn-refresh[disabled]{opacity:.45;cursor:not-allowed}.conn-refresh.spinning svg{animation:conn-refresh-spin .7s linear infinite}@media (hover: none){.conn-refresh:hover{background:transparent;border-color:transparent;color:var(--text-muted)}}.conn-refresh:focus:not(:focus-visible){outline:none}@keyframes conn-refresh-spin{to{transform:rotate(360deg)}}.conn-card-top{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:40px 0;flex:1;justify-content:center}.conn-card-country{font-family:var(--font-display);font-size:26px;font-weight:600;letter-spacing:-.01em;line-height:1.1;color:var(--text)}.conn-card-city{font-size:var(--fs-sm);color:var(--text-muted)}.conn-card-chip-clean{display:inline-flex;align-items:center;margin-top:6px;padding:4px 12px;border-radius:999px;font-size:var(--fs-xs);font-weight:600;letter-spacing:.01em;color:color-mix(in oklab,var(--text) 70%,var(--ok));border:1px solid color-mix(in oklab,var(--ok) 28%,transparent);background:linear-gradient(122deg,transparent 22%,color-mix(in oklab,var(--ok) 16%,transparent) 50%,transparent 78%),color-mix(in oklab,var(--surface-2) 86%,var(--ok));background-size:220% 100%,100% 100%;background-repeat:no-repeat;background-position:18% 0,0 0;animation:cleanIpSheen 7s ease-in-out infinite alternate}@keyframes cleanIpSheen{0%{background-position:18% 0,0 0}to{background-position:82% 0,0 0}}.conn-card-meta{display:flex;flex-direction:column;gap:8px;padding-top:0;margin-top:0}.conn-card-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.conn-card-label{font-size:var(--fs-xs);color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase}.conn-card-value{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conn-card-unit{margin-left:3px;color:var(--text-muted);font-size:var(--fs-xs)}@media (max-width: 540px){.card{padding:14px}.device-row{padding:12px 10px}.device-row .device-meta{font-size:var(--fs-xs)}}.modal-blur{position:fixed;inset:0;z-index:100;background:color-mix(in oklab,var(--bg-sunken) 88%,transparent);backdrop-filter:blur(14px) saturate(120%);-webkit-backdrop-filter:blur(14px) saturate(120%);animation:backdrop-in .2s ease}.modal-backdrop{position:fixed;top:var(--vv-top, 0);left:0;right:0;height:var(--vv-h, 100dvh);z-index:101;display:grid;place-items:center;padding:20px;pointer-events:none}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}.modal{width:100%;max-width:440px;max-height:calc(var(--vv-h, 100dvh) * .9);overflow-y:auto;background:var(--surface);border:1px solid var(--border-faint);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);animation:modal-in .22s cubic-bezier(.2,.8,.2,1);pointer-events:auto}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}.modal-head{padding:var(--card-pad) var(--card-pad) 0}.modal-head .modal-title{font-size:var(--fs-xl);font-weight:600;letter-spacing:-.01em;font-family:var(--font-display);color:var(--text);margin:0;line-height:1.25}.modal-body{padding:16px var(--card-pad) 0;display:flex;flex-direction:column;gap:16px;font-size:var(--fs-md);color:var(--text);line-height:1.55;min-width:0}.modal-foot{padding:20px var(--card-pad) var(--card-pad);display:flex;flex-direction:column;gap:10px}.modal-foot .btn{width:100%;min-width:0}.modal-foot .btn-ghost,.pin-actions .btn-ghost,.error-actions .btn-ghost,.token-card .btn-ghost{border-color:var(--border);background:var(--bg-elev)}.modal-foot .btn-ghost:hover,.pin-actions .btn-ghost:hover,.error-actions .btn-ghost:hover,.token-card .btn-ghost:hover{background:var(--bg-hover);border-color:var(--border-strong)}.modal-help{margin:0;color:var(--text-muted);font-size:var(--fs-sm);line-height:1.55}.deep-link-body{display:flex;flex-direction:column;gap:12px}.deep-link-hint{margin:0;font-size:var(--fs-sm);color:var(--text-muted);line-height:1.5}.deep-link-warning{display:flex;flex-wrap:wrap;gap:4px;padding:12px 14px;border-radius:var(--r-sm);background:color-mix(in srgb,var(--accent-warning, #f59e0b) 12%,transparent);border:1px solid color-mix(in srgb,var(--accent-warning, #f59e0b) 38%,transparent);color:var(--text);font-size:var(--fs-sm);line-height:1.5}.deep-link-warning strong{font-weight:600}.deep-link-source{display:flex;align-items:flex-start;gap:6px;margin:0;font-size:var(--fs-sm);line-height:1.5}.deep-link-source svg{width:15px;height:15px;flex:none;margin-top:1px}.deep-link-source strong{font-weight:600}.deep-link-source.is-official{color:var(--ok)}.deep-link-source.is-unofficial{color:var(--accent-warning)}.confirm-revoke-list{margin:0;padding-left:18px;color:var(--text-muted);font-size:var(--fs-sm);display:flex;flex-direction:column;gap:4px;list-style:disc}.modal:has(.confirm-revoke-list) .modal-foot{padding-top:16px}.modal-body>p{margin:0}.qr-frame{background:var(--bg-elev);padding:16px;border-radius:var(--r-md);border:1px solid var(--border-faint);display:grid;place-items:center;width:min(260px,100%);aspect-ratio:1 / 1;height:auto;margin:0 auto}.qr-frame svg,.qr-frame img{display:block;width:100%;height:auto;max-width:228px;max-height:228px}.qr-with-link{display:flex;flex-direction:column;gap:16px}.qr-help{margin:0;font-size:var(--fs-sm);color:var(--text-muted);line-height:1.5;text-align:center}.qr-link-row{display:flex;gap:8px;align-items:stretch}.qr-link-row .code-box{flex:1;min-width:0;height:44px;padding:0 12px;display:flex;align-items:center;font-size:12px;white-space:nowrap;overflow-x:auto;user-select:all;-webkit-user-select:all;scrollbar-width:thin}.qr-link-row .code-box::-webkit-scrollbar{height:4px}.icon-btn-lg{width:44px;height:44px;flex-shrink:0;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);color:var(--text);display:grid;place-items:center;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.icon-btn-lg:hover{background:var(--bg-hover);border-color:var(--border-faint)}.icon-btn-lg svg{width:22px;height:22px}.field{display:flex;flex-direction:column;gap:6px}.field-label{font-size:var(--fs-sm);font-weight:500;color:var(--text);display:block}.toggle-row-helper{font-size:var(--fs-xs);color:var(--text-muted)}.toggle-switch{position:relative;display:inline-flex;flex:0 0 auto;width:44px;height:26px;cursor:pointer}.toggle-switch.is-disabled{cursor:not-allowed;opacity:.5}.toggle-switch input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:inherit}.toggle-track{display:block;width:100%;height:100%;border-radius:999px;background:color-mix(in oklab,var(--text) 18%,transparent);transition:background .16s ease;position:relative}.toggle-thumb{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #00000040;transition:transform .16s ease}.toggle-switch input:checked~.toggle-track{background:var(--accent, #2563eb)}.toggle-switch input:checked~.toggle-track .toggle-thumb{transform:translate(18px)}.toggle-switch input:focus-visible~.toggle-track{outline:2px solid var(--accent, #2563eb);outline-offset:2px}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid color-mix(in oklab,var(--text) 20%,transparent);border-top-color:var(--accent);animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.pin-screen{max-width:380px;width:100%;margin:0 auto;flex:1;display:flex;flex-direction:column;justify-content:center;gap:20px;padding:24px 0}:root[data-step=set-pin] body,:root[data-step=verify-pin] body,:root[data-step=locked-pin] body{overflow:hidden}:root[data-step=set-pin] .app-main,:root[data-step=verify-pin] .app-main,:root[data-step=locked-pin] .app-main{padding-bottom:0}:root[data-step=set-pin] .pin-screen,:root[data-step=verify-pin] .pin-screen,:root[data-step=locked-pin] .pin-screen{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);margin:0;width:min(380px,calc(100vw - 48px));max-height:100dvh;z-index:5}@media (max-width: 540px){:root[data-step=set-pin] .pin-screen,:root[data-step=verify-pin] .pin-screen,:root[data-step=locked-pin] .pin-screen{top:calc(50% + var(--app-header-h) / 2)}}.pin-head{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.pin-screen .pin-icon{width:32px;height:32px;display:grid;place-items:center;color:var(--text);margin-bottom:4px}.pin-screen .pin-icon svg{width:32px;height:32px}.pin-screen h1{font-size:var(--fs-xl);margin:0;font-weight:600;letter-spacing:-.02em;font-family:var(--font-display)}.pin-screen .lede{margin:0;color:var(--text-muted);font-size:var(--fs-sm);line-height:1.45;min-height:calc(var(--fs-sm) * 1.45 * 2)}.pin-fields{display:flex;flex-direction:column;gap:8px;min-height:84px}@keyframes pin-shake{0%,to{transform:translate(0)}18%{transform:translate(-6px)}38%{transform:translate(5px)}58%{transform:translate(-3px)}78%{transform:translate(2px)}}.pin-fields.pin-shake{animation:pin-shake .36s ease}.pin-boxes{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.pin-box{aspect-ratio:1 / 1;border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-elev);display:grid;place-items:center;font-family:var(--font-mono);font-size:20px;font-weight:600;color:var(--text);transition:border-color .15s,box-shadow .15s;max-height:56px;touch-action:manipulation}.pin-box[data-filled=true]{border-color:var(--border-strong)}.pin-box[data-active=true]{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 20%,transparent)}.pin-status{font-size:var(--fs-sm);display:flex;align-items:center;gap:6px;min-height:20px;height:20px}.pin-status svg{width:14px;height:14px;flex-shrink:0}.pin-status.ok{color:var(--text)}.pin-status.bad{color:var(--text-muted)}.pin-locked{display:flex;align-items:center;justify-content:center;padding:16px 0 8px;margin-bottom:8px}.pin-locked-gauge{position:relative;display:flex;align-items:center;justify-content:center}.pin-locked-gauge svg{display:block}.pin-locked-gauge-label{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.pin-locked-clock{font-family:var(--font-mono);font-size:32px;font-weight:600;letter-spacing:-.01em;line-height:1;color:var(--text);font-variant-numeric:tabular-nums}.pin-locked-cap{margin-top:6px;font-size:var(--fs-xs);color:var(--text-muted);letter-spacing:.02em}.pin-locked-note{margin:0 auto;max-width:360px;text-align:center;font-size:var(--fs-sm);color:var(--text-muted);line-height:1.5;text-wrap:pretty}.pin-busy{min-height:380px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;color:var(--text)}.pin-busy .label{font-size:var(--fs-md);color:var(--text-muted)}.pin-spinner{width:36px;height:36px;border-radius:50%;border:2px solid var(--border);border-top-color:var(--accent);animation:pin-spin .7s linear infinite}@keyframes pin-spin{to{transform:rotate(360deg)}}.pin-keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;touch-action:manipulation}.pin-key{height:48px;border:1px solid var(--border-faint);background:var(--bg-elev);border-radius:var(--r-md);font-size:20px;font-family:var(--font-mono);font-weight:500;color:var(--text);cursor:pointer;transition:background .1s,border-color .1s;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.pin-key:hover{background:var(--bg-hover);border-color:var(--border-strong)}.pin-key:active{background:var(--surface-2)}.pin-key[data-flash=true]{background:var(--surface-2);border-color:var(--border-strong)}.pin-key:disabled{opacity:.4;cursor:not-allowed;background:transparent;border-color:var(--border-faint);color:var(--text-muted)}.pin-key:disabled:hover{background:transparent;border-color:var(--border-faint)}.pin-key.dim svg{width:22px;height:22px}.pin-key.dim{background:transparent;border-color:transparent;color:var(--text-muted)}.pin-actions{display:grid;grid-template-columns:1fr;gap:8px;min-height:46px;margin-top:28px;position:relative}.pin-actions.two-up{grid-template-columns:1fr 2fr}@media (max-width: 540px){.pin-actions{min-height:48px}}.pin-switch-link{position:absolute;inset:0;margin:auto;width:fit-content;height:fit-content;background:transparent;border:0;padding:6px 12px;font-family:inherit;font-size:var(--fs-sm);color:var(--text-muted);cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--border);white-space:nowrap}.pin-switch-link:hover{color:var(--text);text-decoration-color:var(--text-muted)}.pin-switch-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}.pin-locked-note-link{background:transparent;border:0;padding:0;font:inherit;color:var(--text);cursor:pointer;text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--border)}.pin-locked-note-link:hover{text-decoration-color:var(--text-muted)}.pin-locked-note-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}.alert{padding:10px 12px;border-radius:var(--r-sm);background:var(--danger-soft);border:1px solid color-mix(in oklab,var(--danger) 25%,transparent);color:var(--danger);font-size:var(--fs-sm)}[data-theme=dark] .alert{color:oklch(.85 .13 25)}.install-footer{display:flex;flex-direction:column;gap:6px}.install-footer .geo-attribution{text-align:center;font-size:var(--fs-xs);color:var(--text-faint)}.install-footer .geo-attribution a{color:inherit;text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:2px}.install-footer .geo-attribution a:hover{text-decoration-color:var(--text-muted)}.trust-row{display:flex;gap:10px;align-items:center;justify-content:center;padding:10px 14px;font-size:var(--fs-sm);color:var(--text-muted)}.token-entry{max-width:520px;width:100%;margin:0 auto;flex:1;display:flex;flex-direction:column;justify-content:center;padding:24px 0}.token-card{display:flex;flex-direction:column;gap:20px}.token-lede{margin:0;color:var(--text-muted);font-size:var(--fs-sm);line-height:1.55}.token-input-row{display:flex;gap:8px;align-items:stretch}.token-input{flex:1;min-width:0;font-size:16px}.field{position:relative}.token-status{font-size:var(--fs-xs);line-height:1.4;position:absolute;top:100%;left:0;right:0;margin-top:4px;pointer-events:none}.token-error{color:var(--danger, #d24c4c)}.token-submit{width:100%}.token-card-actions{display:flex;flex-direction:column;gap:10px}.token-card-actions .btn{width:100%}.public-connect{max-width:520px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:var(--section-gap)}.connect-card{display:flex;flex-direction:column;gap:18px}.connect-help{margin:0;font-size:var(--fs-sm);color:var(--text-muted);line-height:1.55}.ttl-gauge-wrap{display:flex;justify-content:center;padding:8px 0 4px}.error-actions{display:flex;flex-direction:column;gap:8px;margin-top:4px}.error-actions .btn{width:100%}.token-saved{max-width:520px;width:100%;margin:0 auto;flex:1;display:flex;flex-direction:column;justify-content:center;padding:24px 0}:root[data-page=gate] body,:root[data-page=error] body{overflow:hidden}:root[data-page=gate] .app-main,:root[data-page=error] .app-main{padding-bottom:0}:root[data-page=gate] .token-entry,:root[data-page=gate] .token-saved,:root[data-page=error] .public-connect{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);margin:0;width:min(520px,calc(100vw - 48px));max-height:100dvh;overflow-y:auto;z-index:5;scrollbar-width:none;-ms-overflow-style:none}:root[data-page=gate] .token-entry,:root[data-page=gate] .token-saved{top:calc(var(--vv-top, 0px) + var(--vv-h, 100dvh) / 2)}:root[data-page=gate] .token-entry::-webkit-scrollbar,:root[data-page=gate] .token-saved::-webkit-scrollbar,:root[data-page=error] .public-connect::-webkit-scrollbar{display:none}@media (max-width: 540px){:root[data-page=error] .public-connect{top:calc(50% + var(--app-header-h) / 2)}}:root[data-step=devices] .app-main{max-width:720px;padding-bottom:96px}.install-dashboard{--surface-3: var(--bg-elev);--row-icon: color-mix(in oklab, var(--text) 76%, var(--text-muted));width:100%}.content-shell{min-width:0}.desktop-nav{position:fixed;top:calc(68px + var(--section-gap) + 1px);left:max(20px,calc(50% - 540px));width:160px;display:flex;flex-direction:column;gap:4px;padding:6px;border:1px solid var(--border-faint);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm);z-index:20}.nav-item{border:0;background:transparent;color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap;font-family:inherit}.nav-item svg{width:21px;height:21px;flex:0 0 auto}.nav-icon{position:relative;width:21px;height:21px;display:grid;place-items:center;flex:0 0 auto}.nav-icon svg{width:21px;height:21px}.nav-badge{position:absolute;top:-7px;right:-8px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;display:grid;place-items:center;background:color-mix(in oklab,#c6a04e 78%,var(--surface-3));border:1px solid color-mix(in oklab,#c6a04e 58%,var(--border));color:var(--text);font-family:var(--font-mono);font-size:10px;line-height:1;box-shadow:0 2px 8px #00000047}.nav-item:hover{color:var(--text)}.nav-item:focus{outline:none}.nav-item:focus-visible{outline:1px solid var(--border-strong);outline-offset:2px}.nav-item[aria-current=page]{background:var(--surface-2);color:var(--text);box-shadow:var(--shadow-sm)}.desktop-nav .nav-item{justify-content:flex-start;width:100%;height:42px;padding:0 12px;border-radius:var(--r-md)}.mobile-tabbar-wrap{position:fixed;left:0;right:0;bottom:0;z-index:40;display:none;justify-content:center;padding:12px 14px calc(12px + env(safe-area-inset-bottom));pointer-events:none}.mobile-tabbar{width:min(100%,380px);display:grid;grid-template-columns:repeat(var(--nav-count, 6),1fr);gap:4px;padding:5px;border:1px solid var(--border-faint);border-radius:999px;background:color-mix(in oklab,var(--bg) 82%,transparent);box-shadow:0 8px 30px #00000052;backdrop-filter:blur(10px) saturate(140%);-webkit-backdrop-filter:blur(10px) saturate(140%);pointer-events:auto}.mobile-tabbar .nav-item{height:48px;border-radius:999px}.mobile-tabbar .nav-item svg{width:22px;height:22px}.mobile-tabbar .nav-icon{width:24px;height:24px}.page{display:block}.stack{display:flex;flex-direction:column;gap:var(--section-gap)}.page-hero{display:flex;flex-direction:column;gap:8px;margin:2px 0 0}.page-title{margin:0;font-family:var(--font-display);font-size:28px;line-height:1.15;font-weight:700;letter-spacing:0}.page-subtitle,.helper{margin:0;color:var(--text-muted);font-size:var(--fs-sm);line-height:1.5}.page-subtitle{max-width:560px}.home-status-card{min-height:272px;display:flex}.home-status-card .section{flex:1}.home-status-card .conn-card{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:space-between}.home-status-card .conn-card-top{min-height:112px;padding:0}:root{--aurora-boost: 1.15}[data-theme=dark]{--aurora-boost: 1.05}.home-status-card.is-vpn-active{position:relative;overflow:hidden;clip-path:inset(0 round var(--r-lg));isolation:isolate;border-color:color-mix(in oklab,var(--border-faint) 78%,var(--ok));background:radial-gradient(120% 90% at 82% 0%,color-mix(in oklab,var(--surface) 90%,var(--ok)) 0%,transparent 54%),linear-gradient(180deg,color-mix(in oklab,var(--surface) 95%,var(--ok)) 0%,var(--surface) 72%);box-shadow:var(--shadow-sm),inset 0 1px color-mix(in oklab,var(--text) 8%,transparent)}.home-status-card.is-vpn-active:before{content:"";position:absolute;inset:-50%;border-radius:inherit;background:radial-gradient(closest-side at 18% 28%,color-mix(in oklab,var(--surface-2) 58%,var(--ok)) 0%,transparent 62%),radial-gradient(closest-side at 76% 18%,color-mix(in oklab,var(--surface-3) 64%,var(--ok)) 0%,transparent 58%),radial-gradient(closest-side at 82% 76%,color-mix(in oklab,var(--surface-2) 62%,var(--ok)) 0%,transparent 64%),radial-gradient(closest-side at 34% 84%,color-mix(in oklab,var(--surface-3) 72%,var(--ok)) 0%,transparent 60%),radial-gradient(closest-side at 50% 46%,color-mix(in oklab,var(--surface-2) 74%,var(--ok)) 0%,transparent 42%);filter:blur(30px) saturate(1.18) saturate(var(--aurora-boost, 1));opacity:.68;mix-blend-mode:screen;pointer-events:none;transform:translate3d(-8%,-5%,0) rotate(-6deg) scale(1.06);transform-origin:50% 48%;animation:vpnAmbientAurora var(--aurora-before-duration, 16s) cubic-bezier(.37,0,.22,1) infinite;animation-delay:var(--aurora-before-delay, -2.8s);animation-direction:var(--aurora-before-direction, alternate);will-change:transform;z-index:0}.home-status-card.is-vpn-active:after{content:"";position:absolute;inset:1px;border-radius:inherit;background:linear-gradient(122deg,transparent 16%,color-mix(in oklab,var(--ok) 16%,transparent) 44%,transparent 68%),radial-gradient(110% 82% at 92% 4%,color-mix(in oklab,var(--surface) 78%,var(--ok)) 0%,transparent 58%);opacity:.32;pointer-events:none;transform:translate3d(-14%,0,0);animation:vpnSurfaceWash var(--aurora-after-duration, 13s) ease-in-out infinite;animation-delay:var(--aurora-after-delay, -1.4s);animation-direction:var(--aurora-after-direction, alternate);will-change:transform,opacity;z-index:0}.home-status-card.is-vpn-active .section{position:relative;z-index:2}@keyframes vpnAmbientAurora{0%{transform:translate3d(-10%,-6%,0) rotate(-7deg) scale(1.06)}35%{transform:translate3d(1%,1%,0) rotate(1deg) scale(1.13)}68%{transform:translate3d(8%,-1%,0) rotate(5deg) scale(1.09)}to{transform:translate3d(12%,7%,0) rotate(7deg) scale(1.12)}}@keyframes vpnSurfaceWash{0%{opacity:.2;transform:translate3d(-18%,0,0) skew(-3deg)}48%{opacity:.34;transform:translateZ(0) skew(-2deg)}to{opacity:.26;transform:translate3d(14%,0,0) skew(-3deg)}}.conn-card-text{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:var(--fs-sm);text-align:right}.conn-active-text{color:var(--text)}.conn-inactive-text{color:var(--text-muted)}.action-list,.mode-list,.client-list,.device-list{list-style:none;margin:0;padding:0;border:1px solid var(--border-faint);border-radius:var(--r-md);overflow:hidden;clip-path:inset(0 round var(--r-md));background:var(--surface-3)}.action-row,.mode-row,.client-row{--toggle-thumb-bg: var(--surface-3);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;min-height:58px;padding:10px 14px;border-bottom:1px solid var(--border-faint);background:transparent;color:var(--text);text-align:left;font:inherit;text-decoration:none}.action-row{width:100%;border-left:0;border-right:0;border-top:0;cursor:pointer;transition:background .15s}.action-row:hover{background:color-mix(in oklab,var(--surface-3) 72%,var(--surface-2))}.mode-row:last-child,.client-row:last-child,.action-row:last-child{border-bottom:0}.standalone-row{border:1px solid var(--border-faint);border-radius:var(--r-md);background:var(--surface-3)}.standalone-row:last-child{border-bottom:1px solid var(--border-faint)}.summary-icon,.country-chip,.client-mark,.device-icon{position:relative;width:28px;height:28px;display:grid;place-items:center;color:var(--row-icon);background:transparent;border:0;flex:0 0 auto}.summary-icon svg,.device-icon svg{width:22px;height:22px}.country-chip,.client-mark{font-family:var(--font-mono);font-size:12px;font-weight:650;letter-spacing:.03em}.mode-main,.client-main,.device-main{min-width:0}.row-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:var(--fs-md);font-weight:650}.row-sub{display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);font-size:var(--fs-xs)}.action-arrow{width:24px;height:24px;display:grid;place-items:center;justify-self:end;color:var(--text-muted)}.action-arrow svg{width:20px;height:20px}.soft-tabs,.platform-tabs,.bundle-segmented{display:flex;gap:4px;padding:4px;background:var(--surface-2);border-radius:var(--r-md);overflow-x:auto;scrollbar-width:none}.soft-tabs::-webkit-scrollbar,.platform-tabs::-webkit-scrollbar{display:none}.soft-tab,.platform-tab,.bundle-segment{flex:1;min-width:max-content;height:38px;padding:0 12px;border:0;border-radius:var(--r-sm);background:transparent;color:var(--text-muted);font-size:var(--fs-md);font-weight:550;cursor:pointer;white-space:nowrap;font-family:inherit}.soft-tab:hover,.platform-tab:hover,.bundle-segment:hover{color:var(--text)}.soft-tab[aria-pressed=true],.platform-tab[aria-pressed=true],.bundle-segment[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.soft-tabs.is-compact{flex:0 0 auto;padding:3px}.soft-tabs.is-compact .soft-tab{flex:0 0 auto;height:32px;padding:0 10px;font-size:var(--fs-sm)}.mode-groups{display:flex;flex-direction:column;gap:14px}.group-title{display:flex;align-items:center;gap:8px;margin:0;color:var(--text);font-size:var(--fs-sm);font-weight:650}.group-description{margin:3px 0 8px;color:var(--text-muted);font-size:var(--fs-xs);line-height:1.45}.mode-row .row-title{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3;overflow:hidden}.geo-drawer{margin-top:10px;border-radius:12px;border:1px solid var(--border-faint);background:color-mix(in oklab,var(--surface-2) 72%,transparent);overflow:hidden}.geo-drawer-body{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;animation:geoDrawerOpen .24s ease-out}@keyframes geoDrawerOpen{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.geo-hint-icon{color:var(--accent)}.geo-hint-sub{white-space:normal;line-height:1.45}.geo-drawer-toggle{min-height:34px}.geo-drawer-toggle[aria-expanded=true]{border-top:1px solid var(--border-faint)}.client-picker{display:flex;flex-direction:column;gap:12px}.client-row{display:block;min-height:0;padding:0}.client-row-button{width:100%;min-height:58px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:10px 14px;border:0;background:transparent;color:var(--text);text-align:left;font:inherit;cursor:pointer}.client-row-button:hover:not(:disabled){background:color-mix(in oklab,var(--surface-2) 60%,transparent)}.client-row-button:disabled{opacity:.45;cursor:not-allowed}.more-row{grid-template-columns:1fr;min-height:29px;padding:0}.more-btn{width:100%;min-height:29px;border:0;border-radius:0;background:transparent;color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:var(--fs-md);font-weight:650;cursor:pointer;transition:color .15s}.more-btn:hover{color:var(--text)}.more-btn svg{width:20px;height:20px}.more-icon-up{display:none;transform:rotate(180deg)}.more-btn[aria-expanded=true] .more-icon-down{display:none}.more-btn[aria-expanded=true] .more-icon-up{display:inline-flex}.device-list{display:block;gap:0}.device-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;min-height:58px;padding:10px 14px;border:0;border-bottom:1px solid var(--border-faint);border-radius:0;background:transparent;transition:background .15s}.device-row:last-child{border-bottom:0}.device-row:hover{background:color-mix(in oklab,var(--surface-2) 60%,transparent)}.device-row.is-current{position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(120% 90% at 82% 0%,color-mix(in oklab,var(--surface-2) 72%,var(--ok)) 0%,transparent 58%),color-mix(in oklab,var(--surface-3) 78%,var(--surface-2))}.device-row.is-current:before{content:"";position:absolute;inset:-86% -28%;background:radial-gradient(closest-side at 18% 34%,color-mix(in oklab,var(--surface-2) 58%,var(--ok)) 0%,transparent 60%),radial-gradient(closest-side at 72% 22%,color-mix(in oklab,var(--surface-3) 64%,var(--ok)) 0%,transparent 56%),radial-gradient(closest-side at 62% 78%,color-mix(in oklab,var(--surface-2) 74%,var(--ok)) 0%,transparent 62%),radial-gradient(closest-side at 46% 48%,color-mix(in oklab,var(--surface-2) 78%,var(--ok)) 0%,transparent 40%);filter:blur(22px) saturate(1.16) saturate(var(--aurora-boost, 1));opacity:.62;mix-blend-mode:screen;pointer-events:none;transform:translate3d(-8%,-4%,0) rotate(-5deg) scale(1.05);animation:vpnAmbientAurora var(--aurora-before-duration, 16s) cubic-bezier(.37,0,.22,1) infinite;animation-delay:var(--aurora-before-delay, -2.8s);animation-direction:var(--aurora-before-direction, alternate);will-change:transform;z-index:0}.device-row.is-current:after{content:"";position:absolute;inset:0;background:linear-gradient(122deg,transparent 12%,color-mix(in oklab,var(--ok) 14%,transparent) 44%,transparent 70%),radial-gradient(90% 80% at 92% 8%,color-mix(in oklab,var(--surface-2) 70%,var(--ok)) 0%,transparent 60%);opacity:.26;pointer-events:none;transform:translate3d(-14%,0,0);animation:vpnSurfaceWash var(--aurora-after-duration, 13s) ease-in-out infinite;animation-delay:var(--aurora-after-delay, -1.4s);animation-direction:var(--aurora-after-direction, alternate);will-change:transform,opacity;z-index:0}.device-row.is-current>*{position:relative;z-index:1}.device-row.is-disabled{position:relative;overflow:hidden;isolation:isolate;background:radial-gradient(120% 90% at 82% 0%,color-mix(in oklab,var(--surface-2) 72%,#4389f4) 0%,transparent 58%),color-mix(in oklab,var(--surface-3) 80%,var(--surface-2))}.device-row.is-disabled:before{content:"";position:absolute;inset:-86% -28%;background:radial-gradient(closest-side at var(--aurora-blob-1, 18% 34%),color-mix(in oklab,var(--surface-2) 58%,#4389f4) 0%,transparent 60%),radial-gradient(closest-side at var(--aurora-blob-2, 72% 22%),color-mix(in oklab,var(--surface-3) 64%,#4389f4) 0%,transparent 56%),radial-gradient(closest-side at var(--aurora-blob-3, 62% 78%),color-mix(in oklab,var(--surface-2) 74%,#4389f4) 0%,transparent 62%),radial-gradient(closest-side at var(--aurora-blob-4, 46% 48%),color-mix(in oklab,var(--surface-2) 78%,#4389f4) 0%,transparent 40%);filter:blur(22px) saturate(1.16) saturate(var(--aurora-boost, 1));opacity:.5;mix-blend-mode:screen;pointer-events:none;animation:vpnAmbientAurora var(--aurora-before-duration, 17s) cubic-bezier(.37,0,.22,1) infinite;animation-delay:var(--aurora-before-delay, -3.1s);animation-direction:var(--aurora-before-direction, alternate);will-change:transform;z-index:0}.device-row.is-disabled:after{content:"";position:absolute;inset:0;background:linear-gradient(var(--surface-angle, 122deg),transparent 12%,color-mix(in oklab,#4389f4 14%,transparent) 44%,transparent 70%),radial-gradient(90% 80% at var(--surface-blob, 92% 8%),color-mix(in oklab,var(--surface-2) 70%,#4389f4) 0%,transparent 60%);opacity:.22;pointer-events:none;animation:vpnSurfaceWash var(--aurora-after-duration, 12s) ease-in-out infinite;animation-delay:var(--aurora-after-delay, -1.2s);animation-direction:var(--aurora-after-direction, alternate);will-change:transform,opacity;z-index:0}.device-row.is-disabled>*{position:relative;z-index:1}.device-name{display:flex;align-items:baseline;gap:9px;min-width:0;font-size:var(--fs-md);font-weight:650}.device-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-meta{margin-top:3px;display:flex;flex-direction:column;gap:0;color:var(--text-muted);font-size:var(--fs-sm)}.device-meta span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-actions{display:flex;gap:4px}.notice-row{--notice-row-accent: #c6a04e;position:relative;overflow:hidden;clip-path:inset(0 round var(--r-md));isolation:isolate;background:radial-gradient(110% 90% at 92% 0%,color-mix(in oklab,var(--surface-3) 76%,var(--notice-row-accent)) 0%,transparent 58%),var(--surface-3)}.notice-row.is-danger{--notice-row-accent: #d65a4d;border-color:color-mix(in oklab,var(--border-faint) 70%,var(--notice-row-accent))}.notice-row.is-danger .summary-icon{color:color-mix(in oklab,#d65a4d 76%,var(--text))}.notice-row:before{content:"";position:absolute;inset:-88% -30%;background:radial-gradient(closest-side at var(--aurora-blob-1, 18% 34%),color-mix(in oklab,var(--surface-2) 58%,var(--notice-row-accent)) 0%,transparent 60%),radial-gradient(closest-side at var(--aurora-blob-2, 72% 22%),color-mix(in oklab,var(--surface-3) 64%,var(--notice-row-accent)) 0%,transparent 56%),radial-gradient(closest-side at var(--aurora-blob-3, 62% 78%),color-mix(in oklab,var(--surface-2) 74%,var(--notice-row-accent)) 0%,transparent 62%),radial-gradient(closest-side at var(--aurora-blob-4, 46% 48%),color-mix(in oklab,var(--surface-2) 78%,var(--notice-row-accent)) 0%,transparent 40%);filter:blur(22px) saturate(1.16) saturate(var(--aurora-boost, 1));opacity:.48;mix-blend-mode:screen;pointer-events:none;animation:warningAurora var(--aurora-before-duration, 19s) cubic-bezier(.37,0,.22,1) infinite;animation-delay:var(--aurora-before-delay, -4.2s);animation-direction:var(--aurora-before-direction, alternate);z-index:0}.notice-row>*{position:relative;z-index:1}.notification-list{display:flex;flex-direction:column;border:1px solid var(--border-faint);border-radius:var(--r-md);overflow:hidden;clip-path:inset(0 round var(--r-md));background:var(--surface-3)}.notification-row{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;padding:14px;border-bottom:1px solid var(--border-faint);background:transparent;overflow:hidden;isolation:isolate}.notification-row:last-child{border-bottom:0}.notification-row.is-critical{background:radial-gradient(116% 92% at 92% 0%,color-mix(in oklab,var(--surface-3) 78%,#c6a04e) 0%,transparent 60%),var(--surface-3)}.notification-row.is-critical:before{content:"";position:absolute;inset:-86% -28%;background:radial-gradient(closest-side at var(--aurora-blob-1, 18% 34%),color-mix(in oklab,var(--surface-2) 58%,#c6a04e) 0%,transparent 60%),radial-gradient(closest-side at var(--aurora-blob-2, 72% 22%),color-mix(in oklab,var(--surface-3) 64%,#c6a04e) 0%,transparent 56%),radial-gradient(closest-side at var(--aurora-blob-3, 62% 78%),color-mix(in oklab,var(--surface-2) 74%,#c6a04e) 0%,transparent 62%),radial-gradient(closest-side at var(--aurora-blob-4, 46% 48%),color-mix(in oklab,var(--surface-2) 78%,#c6a04e) 0%,transparent 40%);filter:blur(22px) saturate(1.16) saturate(var(--aurora-boost, 1));opacity:.54;mix-blend-mode:screen;pointer-events:none;animation:warningAurora var(--aurora-before-duration, 18s) cubic-bezier(.37,0,.22,1) infinite;animation-delay:var(--aurora-before-delay, -3.7s);animation-direction:var(--aurora-before-direction, alternate);will-change:transform;z-index:0}.notification-row.is-critical:after{content:"";position:absolute;inset:0;background:linear-gradient(var(--surface-angle, 122deg),transparent 12%,color-mix(in oklab,#c6a04e 14%,transparent) 44%,transparent 70%),radial-gradient(90% 80% at var(--surface-blob, 92% 8%),color-mix(in oklab,var(--surface-2) 70%,#c6a04e) 0%,transparent 60%);opacity:.22;pointer-events:none;animation:warningSurface var(--aurora-after-duration, 12.8s) ease-in-out infinite;animation-delay:var(--aurora-after-delay, -1.9s);animation-direction:var(--aurora-after-direction, alternate);will-change:transform,opacity;z-index:0}.notification-row>*{position:relative;z-index:1}.notification-main{min-width:0}.notice-row .row-sub,.notification-row .row-sub{white-space:normal;line-height:1.45}.notification-status{display:block;margin-top:6px;color:var(--text-muted);font-size:var(--fs-xs);line-height:1.35}.notification-status span{display:block}.notification-summary{display:flex;flex-direction:column;margin:14px 0;border:1px solid var(--border-faint);border-radius:var(--r-md);overflow:hidden;background:var(--surface-3)}.notification-summary .mode-row{border-bottom:1px solid var(--border-faint);background:transparent}.notification-summary .mode-row:last-child{border-bottom:0}.notification-summary-value{justify-self:end;color:var(--text);font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:650;line-height:1;white-space:nowrap}.notification-block{display:grid;gap:8px;margin-top:14px}.notification-inline-actions{display:flex;flex-direction:column;margin-top:14px;border:1px solid var(--border-faint);border-radius:var(--r-md);overflow:hidden;background:color-mix(in oklab,var(--surface-3) 88%,transparent)}.notification-inline-actions .mode-row{min-height:58px;border:0;border-bottom:1px solid var(--border-faint);border-radius:0;background:transparent}.notification-inline-actions .mode-row:last-child{border-bottom:0}.notification-inline-actions .mode-row:hover{background:color-mix(in oklab,var(--surface-2) 62%,transparent)}.admin-message-list{display:flex;flex-direction:column;border:1px solid var(--border-faint);border-radius:var(--r-md);overflow:hidden;background:var(--surface-3)}.admin-message-row{width:100%;min-height:76px;padding:10px 14px;border:0;border-bottom:1px solid var(--border-faint);background:transparent;color:var(--text);display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;text-align:left;font:inherit;cursor:pointer;transition:background .15s,color .15s}.admin-message-row:hover{background:color-mix(in oklab,var(--surface-2) 60%,transparent)}.admin-message-row:last-child{border-bottom:0}.admin-message-row.is-read{color:var(--text-muted)}.admin-message-main{min-width:0;display:flex;flex-direction:column;gap:2px}.admin-message-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:var(--fs-md);font-weight:650}.admin-message-row.is-read .admin-message-title{color:var(--text-muted)}.admin-message-meta{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);font-size:var(--fs-xs);line-height:1.35}.admin-message-check{width:24px;height:24px;display:grid;place-items:center;color:var(--row-icon)}.admin-message-check svg{width:21px;height:21px}.admin-message-more{min-height:29px;border-bottom:0;background:transparent}.notification-section{margin-top:12px}.notification-section .notification-block{margin-top:0}@keyframes warningAurora{0%{transform:translate3d(-10%,-6%,0) rotate(-7deg) scale(1.06)}35%{transform:translate3d(1%,1%,0) rotate(1deg) scale(1.13)}68%{transform:translate3d(8%,-1%,0) rotate(5deg) scale(1.09)}to{transform:translate3d(12%,7%,0) rotate(7deg) scale(1.12)}}@keyframes warningSurface{0%{opacity:.18;transform:translate3d(-18%,0,0) skew(-3deg)}48%{opacity:.28;transform:translateZ(0) skew(-2deg)}to{opacity:.22;transform:translate3d(14%,0,0) skew(-3deg)}}.toggle-thumb{background:var(--toggle-thumb-bg, var(--surface));border:1px solid var(--border-strong);box-shadow:0 1px 2px #00000038}.toggle-switch input:checked~.toggle-track{background:var(--accent)}.adblock-row{--toggle-thumb-bg: var(--surface-3);border:1px solid var(--border-faint);border-radius:var(--r-md);background:var(--surface-3)}.card-action-buttons{display:flex;justify-content:flex-end;gap:8px}.card-action-buttons>.btn{min-width:240px}.card-action-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.card-action-buttons.is-single{grid-template-columns:minmax(0,1fr);justify-items:stretch}.card-action-buttons.is-single>.btn{width:100%;min-width:0}.btn svg{width:22px;height:22px}.account-action-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.account-action-buttons .btn{width:100%;min-width:0}.token-row{display:flex;gap:8px;align-items:stretch}.value-box{flex:1;min-width:0;height:44px;padding:0 12px;display:flex;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--border-faint);color:var(--text);font-size:var(--fs-md);font-weight:550}.value-input{font:inherit;outline:none}.value-input:focus{border-color:var(--border)}.dashboard-empty-row{display:grid;grid-template-columns:auto 1fr;align-items:center;text-align:left;gap:12px;min-height:74px;padding:14px;border-style:solid;background:var(--surface-3)}.dashboard-empty-row .row-sub{white-space:normal}.export-range{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.date-field-wrap{position:relative}.date-box{width:100%;height:44px;padding:0 12px;border:1px solid var(--border-faint);border-radius:var(--r-md);background:var(--surface-2);color:var(--text);display:flex;align-items:center;justify-content:space-between;gap:10px;font:inherit;font-size:var(--fs-sm);font-weight:550;cursor:pointer}.date-box:hover,.date-box[aria-expanded=true]{background:var(--surface-3);border-color:var(--border)}.date-box span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.date-box svg{width:18px;height:18px;color:var(--row-icon);flex:0 0 auto}.date-popover{position:absolute;z-index:80;top:calc(100% + 8px);left:0;width:100%;min-width:0;padding:10px;border:1px solid var(--border);border-radius:var(--r-md);background:color-mix(in oklab,var(--surface) 96%,var(--bg));box-shadow:var(--shadow-sm)}.date-popover-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.date-popover-title{color:var(--text);font-size:var(--fs-md);font-weight:650;text-align:center}.date-popover .icon-btn{width:30px;height:30px;border-color:var(--border-faint);background:var(--surface-2)}.date-weekdays,.date-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.date-weekdays{margin-bottom:4px}.date-weekdays span{color:var(--text-muted);font-size:10px;font-weight:650;line-height:22px;text-align:center;text-transform:uppercase}.date-day,.date-blank{height:34px;border-radius:var(--r-sm)}.date-day{border:1px solid transparent;background:transparent;color:var(--text-muted);font:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.date-day:hover{background:var(--surface-3);border-color:var(--border-faint);color:var(--text)}.date-day.is-today:not(.is-selected){border-color:var(--border);color:var(--text)}.date-day.is-selected{background:var(--text);border-color:var(--text);color:var(--bg)}.traffic-stats{display:flex;flex-direction:column;gap:12px}.traffic-device-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.traffic-device-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.traffic-device-actions button{height:28px;padding:0 9px;border:1px solid var(--border-faint);border-radius:var(--r-sm);background:var(--surface-2);color:var(--text-muted);font:inherit;font-size:var(--fs-xs);font-weight:650;cursor:pointer}.traffic-device-actions button:hover{color:var(--text);border-color:var(--border)}.traffic-device-list+.traffic-deleted-group{margin-top:8px}.traffic-device-row.is-archived .row-title,.traffic-device-row.is-archived .summary-icon{color:var(--text-muted)}.traffic-deleted-group{display:flex;flex-direction:column;gap:8px}.traffic-deleted-toggle{width:100%;min-height:36px;padding:0 12px;border:1px solid var(--border-faint);border-radius:var(--r-md);background:var(--surface-3);color:var(--text-muted);display:flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-size:var(--fs-sm);font-weight:650;cursor:pointer}.traffic-deleted-toggle:hover{color:var(--text)}.traffic-deleted-toggle svg{width:19px;height:19px}.traffic-deleted-toggle[aria-expanded=true] .more-icon-down{display:none}.traffic-deleted-toggle[aria-expanded=true] .more-icon-up{display:inline-flex}.traffic-grouping{display:flex;align-items:center;justify-content:space-between;gap:12px}.traffic-chart-panel{position:relative;min-height:0;padding:12px;border:1px solid var(--border-faint);border-radius:var(--r-md);background:var(--surface-3);overflow:hidden}.traffic-chart-panel.is-empty{min-height:236px;display:grid;place-items:center}.traffic-chart-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px}.traffic-chart-metric{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px}.traffic-chart-metric+.traffic-chart-metric{align-items:flex-end;text-align:right}.traffic-chart-metric-label{color:var(--text-muted);font-size:var(--fs-xs);font-weight:650;line-height:1}.traffic-chart-metric-value{color:var(--text);font-size:26px;line-height:1.1;font-weight:650;letter-spacing:0;max-width:100%;overflow-wrap:anywhere}.traffic-chart{width:100%;height:auto;display:block;overflow:visible}.traffic-grid-line{stroke:var(--border-faint);stroke-width:1}.traffic-axis-unit{fill:var(--text-muted);font-family:var(--font-sans);font-size:var(--fs-xs);font-weight:650;letter-spacing:0}.traffic-area{fill:color-mix(in oklab,var(--text) 8%,transparent)}.traffic-line{fill:none;stroke:var(--text);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.traffic-point{fill:var(--surface-3);stroke:var(--text);stroke-width:3}.traffic-axis-label{fill:var(--text-muted);font-family:var(--font-mono);font-size:var(--fs-xs)}.install-footer{align-items:center}.trust-row{padding:10px 14px}@media (prefers-reduced-motion: reduce){.device-row.is-current:before,.device-row.is-current:after,.device-row.is-disabled:before,.device-row.is-disabled:after,.home-status-card.is-vpn-active:before,.home-status-card.is-vpn-active:after,.notice-row:before,.notification-row.is-critical:before,.notification-row.is-critical:after,.conn-card-chip-clean,.geo-drawer-body,.pin-fields.pin-shake{animation:none;transform:none}}@media (max-width: 1120px){.desktop-nav{display:none}.mobile-tabbar-wrap{display:flex}}@media (max-width: 720px){.status-grid{grid-template-columns:1fr}}@media (max-width: 540px){:root[data-step=devices] .app-main{padding:var(--section-gap) 14px 108px}.page-title{font-size:26px}.card{padding:14px}.btn{min-width:0;width:100%;height:48px;font-size:var(--fs-lg)}.card-action-buttons{justify-content:stretch}.account-action-buttons,.card-action-buttons,.card-action-buttons.is-single{grid-template-columns:1fr}.card-action-buttons.is-single>.btn{width:100%}.export-range{grid-template-columns:1fr}.mode-row,.action-row,.client-row-button{padding:10px}.more-row{min-height:29px;padding:0}.more-btn{min-height:29px}.device-row{gap:6px;grid-template-columns:24px minmax(0,1fr) auto;padding:12px 10px}.device-list .notification-row{grid-template-columns:24px minmax(0,1fr);gap:6px;padding:12px 10px}.device-icon{width:24px;height:24px}.device-list .notification-row>.summary-icon{width:24px;height:24px}.device-icon svg{width:20px;height:20px}.device-list .notification-row>.summary-icon svg{width:20px;height:20px}.device-actions{gap:2px}.device-actions .icon-btn{width:28px;height:28px}.device-actions .icon-btn svg{width:19px;height:19px}.device-meta{font-size:var(--fs-xs)}.traffic-chart-panel{padding:10px}.traffic-chart-metrics{grid-template-columns:1fr;gap:8px}.traffic-chart-metric,.traffic-chart-metric+.traffic-chart-metric{align-items:flex-start;text-align:left}.traffic-device-head{align-items:stretch;flex-direction:column}.traffic-device-actions{justify-content:stretch}.traffic-device-actions button{flex:1}.traffic-grouping{align-items:stretch;flex-direction:column}.traffic-grouping .soft-tabs.is-compact{width:100%;justify-content:stretch}.traffic-grouping .soft-tabs.is-compact .soft-tab{flex:1;min-width:0}}
