:root,[data-theme=light]{--bg:#f6f8fb;--surface:#fff;--card:#fff;--card-2:#f8fafc;--border:#e3e8ef;--border-2:#eef2f7;--text:#0f172a;--text-2:#475569;--muted:#94a3b8;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-ink:#fff;--accent-weak:rgba(37,99,235,.1);--green:#15803d;--green-weak:rgba(22,163,74,.12);--red:#b91c1c;--red-weak:rgba(220,38,38,.1);--orange:#b45309;--orange-weak:rgba(217,119,6,.12);--shadow:0 1px 2px rgba(15,23,42,.04),0 1px 3px rgba(15,23,42,.06);--shadow-lg:0 4px 12px rgba(15,23,42,.08),0 14px 34px rgba(15,23,42,.1);--nav-bg:hsla(0,0%,100%,.85);--row-hover:rgba(37,99,235,.05);--radius:10px;--radius-lg:14px}[data-theme=dark]{--bg:#0a0f1e;--surface:#0f172a;--card:#14213c;--card-2:#18294a;--border:#21385c;--border-2:#1c3050;--text:#e6f1ff;--text-2:#aac4e0;--muted:#6b88a6;--accent:#38bdf8;--accent-hover:#0ea5e9;--accent-ink:#04121f;--accent-weak:rgba(56,189,248,.14);--green:#34d399;--green-weak:rgba(52,211,153,.14);--red:#f87171;--red-weak:hsla(0,91%,71%,.14);--orange:#fb923c;--orange-weak:rgba(251,146,60,.14);--shadow:0 1px 2px rgba(0,0,0,.35);--shadow-lg:0 10px 30px rgba(0,0,0,.5);--nav-bg:rgba(15,23,42,.82);--row-hover:rgba(56,189,248,.06)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:Plus Jakarta Sans,system-ui,-apple-system,Segoe UI,sans-serif;min-height:100vh;line-height:1.5;letter-spacing:-.005em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background .25s ease,color .25s ease}a{color:var(--accent);text-decoration:none;transition:color .15s ease}a:hover{color:var(--accent-hover)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.btn:focus-visible,.side-link:focus-visible,button:focus-visible{outline-offset:2px}::selection{background:var(--accent);color:var(--accent-ink)}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px;border:3px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--muted);background-clip:content-box}::-webkit-scrollbar-track{background:transparent}.nav{display:flex;gap:2px;align-items:center;padding:12px 24px;border-bottom:1px solid var(--border);background:var(--nav-bg);backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);position:-webkit-sticky;position:sticky;top:0;z-index:50;flex-wrap:wrap}.nav .brand{font-weight:800;margin-right:18px;font-size:16px;letter-spacing:-.2px}.nav .brand em{color:var(--accent);font-style:normal}.nav a{padding:7px 12px;border-radius:7px;color:var(--text-2);font-size:13.5px;font-weight:500;white-space:nowrap;transition:color .15s ease,background .15s ease}.nav a:hover{color:var(--text);background:var(--card-2)}.nav a.active{color:var(--accent);background:var(--accent-weak);font-weight:600}.nav-icon-btn{background:transparent;border:1px solid var(--border);color:var(--text-2);width:34px;height:34px;border-radius:8px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:15px;cursor:pointer;transition:all .15s ease}.nav-icon-btn:hover{color:var(--text);border-color:var(--accent)}.nav-hamburger{display:none}.nav-links{display:contents}@media (max-width:860px){.nav{gap:0;padding:10px 16px}.nav-hamburger{display:inline-flex;margin-left:auto}.nav-links{display:none;order:99;width:100%;flex-direction:column;gap:2px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.nav-links.open{display:flex}.nav-links a{padding:11px 12px;font-size:15px}.nav-links a[style]{margin-left:0!important}}.container{max-width:1200px;margin:0 auto;padding:28px}h1{font-size:24px;font-weight:800;margin-bottom:4px;letter-spacing:-.5px;line-height:1.2}h2{font-size:16px;margin:24px 0 12px;letter-spacing:-.2px}h2,h3{font-weight:700}h3{letter-spacing:-.1px}.sub{color:var(--muted);font-size:13px;margin-bottom:20px;line-height:1.55}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:14px;gap:14px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow);transition:border-color .15s ease,box-shadow .18s ease,transform .18s ease,background .25s ease}.card.hover:hover,a.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:var(--accent)}.stat .label{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}.stat .value{font-size:26px;font-weight:800;margin-top:6px;letter-spacing:-.5px}table{width:100%;border-collapse:collapse;font-size:13px;margin-top:8px}td,th{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.6px;font-weight:700}tbody tr{transition:background .12s ease}tr:hover td{background:var(--row-hover)}tbody tr:last-child td{border-bottom:none}.table-sticky thead th{position:-webkit-sticky;position:sticky;top:0;z-index:1;background:var(--card);box-shadow:inset 0 -1px 0 var(--border)}.badge{font-size:11px;padding:3px 9px;border-radius:99px;border:1px solid var(--border);font-weight:600}.badge.active,.badge.paid,.badge.success,.badge.used{color:var(--green);border-color:var(--green);background:var(--green-weak)}.badge.failed,.badge.overdue,.badge.suspended{color:var(--red);border-color:var(--red);background:var(--red-weak)}.badge.open,.badge.pending,.badge.unused{color:var(--orange);border-color:var(--orange);background:var(--orange-weak)}.btn,button{background:var(--accent);color:var(--accent-ink);border:1px solid transparent;cursor:pointer;padding:9px 16px;border-radius:8px;font-weight:600;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:background .15s ease,transform .06s ease,box-shadow .15s ease,border-color .15s ease,color .15s ease}.btn:hover,button:hover{background:var(--accent-hover);box-shadow:var(--shadow)}.btn:active,button:active{transform:translateY(1px)}button.ghost{background:transparent;color:var(--text);border-color:var(--border)}button.ghost:hover{background:var(--card-2);border-color:var(--accent);color:var(--accent);box-shadow:none}button.danger{background:var(--red-weak);color:var(--red);border-color:var(--red)}button.danger:hover{background:var(--red);color:#fff;box-shadow:none}.btn.sm,button.sm{padding:6px 11px;font-size:12px;border-radius:7px}.btn:disabled,button:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none;background:var(--accent)}button.ghost:disabled{background:transparent}input,select,textarea{background:var(--surface);border:1px solid var(--border);color:var(--text);padding:9px 12px;border-radius:8px;font-size:13px;width:100%;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-weak)}input::placeholder{color:var(--muted)}label{display:block;font-size:12px;color:var(--muted);margin:10px 0 4px;font-weight:500}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.row>div{flex:1 1;min-width:140px}.toast{padding:11px 14px;border-radius:8px;margin:12px 0;font-size:13px;border:1px solid transparent;border-left-width:4px;font-weight:500}.toast.ok{background:var(--green-weak);color:var(--green);border-color:var(--green)}.toast.err{background:var(--red-weak);color:var(--red);border-color:var(--red)}.toast.info{background:var(--accent-weak);color:var(--accent);border-color:var(--accent)}code{font-family:ui-monospace,Cascadia Code,monospace;background:var(--card-2);padding:2px 6px;border-radius:5px;font-size:.92em}.vpn-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:99px;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;min-width:110px;justify-content:center;border:1px solid var(--border);background:var(--surface)}.vpn-pill:before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}.vpn-pill.online{color:var(--green);border-color:var(--green);background:var(--green-weak)}.vpn-pill.online:before{box-shadow:0 0 0 0 currentColor;animation:vpn-pulse 1.8s infinite}.vpn-pill.offline{color:var(--red);border-color:var(--red);background:var(--red-weak)}.vpn-pill.pending{color:var(--muted);background:var(--card-2)}@keyframes vpn-pulse{0%{box-shadow:0 0 0 0 var(--green-weak)}70%{box-shadow:0 0 0 8px rgba(52,211,153,0)}to{box-shadow:0 0 0 0 rgba(52,211,153,0)}}.skeleton{background:linear-gradient(90deg,var(--card-2) 25%,var(--border-2) 37%,var(--card-2) 63%);background-size:400% 100%;border-radius:8px;animation:skeleton-shimmer 1.3s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.empty-state{text-align:center;color:var(--muted);padding:36px 18px;font-size:13.5px}.empty-state .icon{font-size:28px;opacity:.6;display:block;margin-bottom:8px}.app-main>*{animation:page-in .2s ease both}@keyframes page-in{0%{opacity:0}to{opacity:1}}@media (max-width:640px){.container{padding:16px}h1{font-size:21px}table{display:block;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}}.app-main{margin-left:248px;transition:margin-left .22s ease;min-height:100vh}[data-sidebar=hidden] .app-main{margin-left:0}.sidebar{position:fixed;top:0;left:0;bottom:0;width:248px;z-index:60;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;transform:translateX(0);transition:transform .22s ease}[data-sidebar=hidden] .sidebar{transform:translateX(-100%)}.sidebar-head{display:flex;align-items:center;gap:8px;padding:15px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.sidebar-head .brand{font-weight:800;font-size:16px;letter-spacing:-.2px}.sidebar-head .brand em{color:var(--accent);font-style:normal}.sidebar-collapse{margin-left:auto}.sidebar-nav{flex:1 1;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:2px}.side-link{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:8px;color:var(--text-2);font-size:14px;font-weight:500;cursor:pointer;width:100%;background:transparent;border:none;text-align:left;font-family:inherit;transition:background .15s ease,color .15s ease}.side-link:hover{background:var(--card-2);color:var(--text);filter:none;box-shadow:none}.side-link.active{background:var(--accent-weak);color:var(--accent);font-weight:600;box-shadow:inset 3px 0 0 var(--accent)}.side-link .ico{width:20px;text-align:center;font-size:15px;flex-shrink:0}.side-link .chev{margin-left:auto;font-size:10px;opacity:.55;transition:transform .18s ease}.side-link .chev.open{transform:rotate(90deg)}.side-sub{display:flex;flex-direction:column;gap:1px;margin:1px 0 4px}.side-sub a{display:block;padding:7px 11px 7px 41px;border-radius:8px;color:var(--text-2);font-size:13px;font-weight:500;transition:background .15s ease,color .15s ease}.side-sub a:hover{background:var(--card-2);color:var(--text)}.side-sub a.active{color:var(--accent);background:var(--accent-weak);font-weight:600}.sidebar-divider{height:1px;background:var(--border);margin:8px 4px}.sidebar-foot{border-top:1px solid var(--border);padding:10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex-shrink:0}.sidebar-foot .side-link{width:auto;flex:1 1}.sidebar-reopen{position:fixed;top:12px;left:12px;z-index:58;display:none;background:var(--card);box-shadow:var(--shadow-lg)}[data-sidebar=hidden] .sidebar-reopen{display:inline-flex}.sidebar-backdrop{display:none}@media (max-width:860px){.app-main{margin-left:0!important}.sidebar{box-shadow:var(--shadow-lg)}[data-sidebar=shown] .sidebar-backdrop{display:block;position:fixed;inset:0;z-index:59;background:rgba(0,0,0,.45)}}