@import url("https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=JetBrains+Mono:wght@400;500&display=swap");:root{--brand:#2481cc;--brand-hover:#1d6fb3;--brand-glow:rgba(36,129,204,0.15);--brand-subtle:rgba(36,129,204,0.08);--bg-root:#0c0e12;--bg-surface:#13161c;--bg-elevated:#1a1e26;--bg-hover:#1f2430;--bg-input:#0f1117;--border:#222733;--border-hover:#2d3340;--border-brand:rgba(36,129,204,0.3);--text-primary:#e8ecf4;--text-secondary:#8b93a6;--text-muted:#5c6478;--text-inverse:#0c0e12;--success:#34d399;--warning:#fbbf24;--error:#f87171;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--shadow-sm:0 1px 2px rgba(0,0,0,0.3);--shadow-md:0 4px 16px rgba(0,0,0,0.4);--shadow-glow:0 0 24px var(--brand-glow);--font-sans:"DM Sans",system-ui,sans-serif;--font-mono:"JetBrains Mono",monospace;--sidebar-width:240px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--bg-root);color:var(--text-primary);line-height:1.6;min-height:100dvh}a{color:var(--brand);text-decoration:none;transition:color .15s}a:hover{color:var(--brand-hover)}h1{font-size:1.75rem;font-weight:700;letter-spacing:-.02em;margin-bottom:1.5rem}h2{font-size:1.125rem;letter-spacing:-.01em;margin-bottom:.75rem}h2,h3{font-weight:600}h3{font-size:1rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:var(--font-sans);font-weight:600;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s,transform .1s;white-space:nowrap}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-sm{padding:.375rem .75rem;font-size:.8125rem}.btn-md{padding:.625rem 1.25rem;font-size:.875rem}.btn-lg{padding:.75rem 1.75rem;font-size:1rem}.btn-primary{background:var(--brand);color:white;border-color:var(--brand)}.btn-primary:hover:not(:disabled){background:var(--brand-hover);box-shadow:var(--shadow-glow)}.btn-secondary{background:transparent;color:var(--text-primary);border-color:var(--border)}.btn-secondary:hover:not(:disabled){border-color:var(--border-hover);background:var(--bg-hover)}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:transparent}.btn-ghost:hover:not(:disabled){color:var(--text-primary);background:var(--bg-hover)}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:1.25rem 1.5rem;margin-bottom:1rem;transition:border-color .2s}.card:hover{border-color:var(--border-hover)}.dashboard-layout{display:flex;min-height:100dvh}.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-width);background:var(--bg-surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:1.5rem 0;z-index:50}.sidebar-header{padding:0 1.5rem 1.5rem;border-bottom:1px solid var(--border)}.sidebar-header a{font-size:1.125rem;font-weight:700;color:var(--text-primary);letter-spacing:-.02em}.sidebar-nav{flex:1 1;display:flex;flex-direction:column;gap:2px;padding:.75rem;overflow-y:auto}.nav-link{display:block;padding:.625rem .75rem;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.875rem;font-weight:500;transition:background .15s,color .15s}.nav-link:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-footer{padding:.75rem 1.5rem 0;border-top:1px solid var(--border)}.btn-logout{width:100%;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);padding:.5rem;font-family:var(--font-sans);font-size:.8125rem;cursor:pointer;transition:color .15s,border-color .15s}.btn-logout:hover{color:var(--error);border-color:var(--error)}.dashboard-content{margin-left:var(--sidebar-width);flex:1 1;padding:2rem 2.5rem;max-width:960px}.page>p{color:var(--text-secondary)}.amount,.devices,.expires,.plan,.status{color:var(--text-secondary);font-size:.9375rem;margin-bottom:.25rem}.greeting{color:var(--text-secondary);font-size:1rem}.coming-soon{font-style:italic}.coming-soon,.placeholder{color:var(--text-muted)}.subscription-url{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.url-display{font-family:var(--font-mono);font-size:.8125rem;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.625rem .875rem;color:var(--brand);word-break:break-all;flex:1 1;min-width:0}.client-list{list-style:none;display:flex;flex-direction:column;gap:.5rem}.client-list li{color:var(--text-secondary);font-size:.9375rem}.client-list strong{color:var(--text-primary);font-weight:600}.devices-table{width:100%;border-collapse:collapse;margin-bottom:1rem}.devices-table th{text-align:left;padding:.625rem .75rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.devices-table td,.devices-table th{border-bottom:1px solid var(--border)}.devices-table td{padding:.75rem;font-size:.875rem;color:var(--text-secondary)}.devices-table tr:last-child td{border-bottom:none}.plan-card h2{color:var(--brand)}.periods{display:flex;flex-direction:column;gap:.5rem}.period-option{display:flex;align-items:center;gap:1rem;padding:.625rem 0;border-bottom:1px solid var(--border)}.period-option:last-child{border-bottom:none}.period-label{flex:1 1;color:var(--text-primary);font-weight:500;font-size:.9375rem}.period-price{color:var(--text-secondary);font-size:.875rem;min-width:80px;text-align:right}.login-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;padding:2rem 1.5rem}.login-page h1{font-size:2rem;margin-bottom:2.5rem}.login-methods{display:flex;flex-direction:column;gap:1.5rem;width:100%;max-width:400px}.login-methods .card{text-align:center;padding:2rem}.login-methods .card h2{margin-bottom:.5rem}.login-methods .card p{color:var(--text-secondary);font-size:.875rem;margin-bottom:1.25rem}.divider{text-align:center;color:var(--text-muted);font-size:.8125rem;text-transform:uppercase;letter-spacing:.1em}.telegram-login-container{display:flex;justify-content:center}.input-email{width:100%;padding:.625rem .875rem;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-sans);font-size:.875rem;margin-bottom:.75rem;outline:none;transition:border-color .15s}.input-email::placeholder{color:var(--text-muted)}.input-email:focus{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-glow)}.email-sent{text-align:center}.email-sent strong{color:var(--brand)}.hint{color:var(--text-muted);margin-top:.5rem}.error,.hint{font-size:.8125rem}.error{color:var(--error);margin-bottom:.5rem}.landing{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;padding:2rem;text-align:center}.landing h1{font-size:3rem;letter-spacing:-.03em}.landing p{color:var(--text-secondary);font-size:1.125rem;margin-bottom:2rem}.landing .actions{display:flex;gap:1rem}.profile-info{display:grid;grid-template-columns:auto 1fr;grid-gap:.5rem 1.5rem;gap:.5rem 1.5rem}.profile-info dt{color:var(--text-muted);font-size:.8125rem;text-transform:uppercase;letter-spacing:.05em}.profile-info dd{color:var(--text-primary);font-size:.9375rem}@media (max-width:768px){.sidebar{position:relative;width:100%;border-right:none;border-bottom:1px solid var(--border);padding:1rem 0}.sidebar-header{padding:0 1rem 1rem}.sidebar-nav{flex-direction:row;overflow-x:auto;padding:.5rem;gap:0}.nav-link{white-space:nowrap;font-size:.8125rem}.sidebar-footer{display:none}.dashboard-layout{flex-direction:column}.dashboard-content{margin-left:0;padding:1.5rem 1rem}.login-page h1{font-size:1.5rem}.subscription-url{flex-direction:column;align-items:stretch}.period-option{flex-wrap:wrap}}.referral-stats{display:flex;flex-direction:column;gap:.75rem}.stat-row{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border)}.stat-row:last-child{border-bottom:none}.stat-label{color:var(--text-secondary);font-size:.95rem}.stat-value{font-weight:600;font-size:1rem;color:var(--text-primary)}