:root{--font: Cambria, Georgia, "Times New Roman", serif;--color-bg: #eef2f7;--color-bg-accent: #e4eaf3;--color-surface: #ffffff;--color-surface-muted: #f7f9fc;--color-border: #d4dce8;--color-border-light: #e8edf4;--color-text: #1a2b42;--color-text-muted: #5c6b82;--color-text-light: #8a97a8;--color-primary: #1e4d8c;--color-primary-hover: #163a6b;--color-primary-light: #e8f0fa;--color-nav: #0f2744;--color-nav-text: #e8eef6;--color-nav-link: #a8c4e8;--shadow-sm: 0 1px 3px rgba(15, 39, 68, .06), 0 1px 2px rgba(15, 39, 68, .04);--shadow-md: 0 4px 12px rgba(15, 39, 68, .08), 0 2px 4px rgba(15, 39, 68, .04);--shadow-lg: 0 12px 32px rgba(15, 39, 68, .12), 0 4px 8px rgba(15, 39, 68, .06);--shadow-nav: 0 4px 20px rgba(15, 39, 68, .25);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--transition: .2s ease}*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:var(--font);font-size:16px;line-height:1.55;color:var(--color-text);background:linear-gradient(160deg,var(--color-bg) 0%,var(--color-bg-accent) 50%,#dce4ef 100%);background-attachment:fixed;-webkit-font-smoothing:antialiased}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition)}a:hover{color:var(--color-primary-hover)}.container{max-width:1040px;margin:0 auto;padding:2rem 1.75rem 3rem}.container-wide{max-width:1320px;padding-left:2rem;padding-right:2rem}.page-header{margin-bottom:1.75rem}.page-header h1{margin:0 0 .35rem;font-size:1.85rem;font-weight:700;color:var(--color-text);letter-spacing:-.02em}.page-header .muted{margin:0;font-size:1rem}.nav{display:flex;align-items:center;justify-content:space-between;padding:0 1.75rem;min-height:64px;background:var(--color-nav);color:var(--color-nav-text);box-shadow:var(--shadow-nav);position:sticky;top:0;z-index:100}.nav-brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;color:inherit}.nav-brand:hover{opacity:.92}.nav-logo{width:36px;height:36px;border-radius:var(--radius-sm);background:linear-gradient(135deg,#2a6cb8,#1e4d8c);display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:700;color:#fff;box-shadow:0 2px 8px #0003}.nav-title{font-weight:700;font-size:1.15rem;letter-spacing:.01em}.nav-actions{display:flex;align-items:center;gap:.5rem}.nav-link{color:var(--color-nav-link);text-decoration:none;padding:.45rem .9rem;border-radius:var(--radius-sm);font-size:.95rem;font-weight:600;transition:background var(--transition),color var(--transition)}.nav-link:hover{background:#ffffff14;color:#fff}.nav-link.active{background:#ffffff1f;color:#fff}.nav-user-menu{position:relative;margin-left:.5rem}.nav-user-trigger{display:flex;align-items:center;gap:.35rem;padding:.45rem .75rem;border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-sm);background:#ffffff14;font-family:var(--font);cursor:pointer;transition:background var(--transition)}.nav-user-trigger:hover{background:#ffffff24}.nav-user-name{color:#fff;font-size:.95rem;font-weight:600;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-user-chevron{color:#ffffffb3;font-size:.75rem}.nav-user-dropdown{position:absolute;top:calc(100% + .5rem);right:0;min-width:200px;background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);overflow:hidden;z-index:200;animation:fadeIn .15s ease}.nav-user-dropdown-email{padding:.75rem 1rem;font-size:.82rem;color:var(--color-text-muted);border-bottom:1px solid var(--color-border-light);word-break:break-all}.nav-user-dropdown-item{display:block;width:100%;padding:.75rem 1rem;border:none;background:none;font-family:var(--font);font-size:.95rem;font-weight:600;color:var(--color-text);text-align:left;cursor:pointer;transition:background var(--transition)}.nav-user-dropdown-item:hover{background:var(--color-surface-muted)}.card{background:var(--color-surface);border-radius:var(--radius-lg);padding:1.75rem 2rem;box-shadow:var(--shadow-md);border:1px solid var(--color-border-light);transition:box-shadow var(--transition)}.card:hover{box-shadow:var(--shadow-lg)}.card-header{margin-bottom:1.25rem;padding-bottom:1rem;border-bottom:1px solid var(--color-border-light)}.card-header h2{margin:0 0 .35rem;font-size:1.35rem;font-weight:700;color:var(--color-text)}.card-header .muted{margin:0}.card+.card{margin-top:1rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.6rem 1.15rem;border-radius:var(--radius-sm);border:none;font-family:var(--font);font-weight:600;font-size:.95rem;cursor:pointer;transition:background var(--transition),box-shadow var(--transition),transform .1s ease;box-shadow:var(--shadow-sm)}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn:active:not(:disabled){transform:translateY(0)}.btn-primary{background:linear-gradient(180deg,#2569b0 0%,var(--color-primary) 100%);color:#fff}.btn-primary:hover:not(:disabled){background:linear-gradient(180deg,var(--color-primary) 0%,var(--color-primary-hover) 100%)}.btn-secondary{background:var(--color-surface-muted);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:#eef2f8}.btn-danger{background:linear-gradient(180deg,#e04545,#c53030);color:#fff}.btn-danger:hover:not(:disabled){background:linear-gradient(180deg,#c53030,#9b2222)}.btn-update{background:linear-gradient(180deg,#e8940a,#c77d08);color:#fff}.btn-update:hover:not(:disabled){background:linear-gradient(180deg,#c77d08,#a36606)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.btn-row{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.25rem}.btn-lg{padding:.75rem 1.5rem;font-size:1rem}.input{width:100%;padding:.7rem .9rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font);font-size:1rem;color:var(--color-text);background:var(--color-surface);box-shadow:inset 0 1px 2px #0f27440a;transition:border-color var(--transition),box-shadow var(--transition)}.input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #1e4d8c1f}.input::placeholder{color:var(--color-text-light)}.label{display:block;font-size:.9rem;font-weight:600;margin-bottom:.4rem;color:var(--color-text-muted)}.field{margin-bottom:1.1rem}.alert{padding:.85rem 1.1rem;border-radius:var(--radius-md);font-size:.95rem;margin-bottom:1rem;box-shadow:var(--shadow-sm)}.alert-success{background:#edf7f0;border:1px solid #a8d5b5;color:#1a5c32}.alert-error{background:#fdf0f0;border:1px solid #e8b4b4;color:#8b2020}.error{color:#b91c1c;font-size:.9rem;margin-top:.5rem}.success{color:#15803d;font-size:.9rem}.muted{color:var(--color-text-muted);font-size:.95rem}.badge{display:inline-block;padding:.25rem .65rem;border-radius:999px;font-size:.78rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;box-shadow:var(--shadow-sm)}.badge-success{background:#dcfce7;color:#166534;border:1px solid #86efac}.badge-warning{background:#fef3c7;color:#92400e;border:1px solid #fcd34d}.badge-error{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.badge-neutral{background:var(--color-primary-light);color:var(--color-primary);border:1px solid #b8d0ea}.update-banner{margin:1.25rem 0;padding:1.1rem 1.25rem;border-radius:var(--radius-md);border:1px solid transparent;box-shadow:var(--shadow-sm)}.update-banner strong{font-size:1rem}.update-banner-warning{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-color:#f0d060;color:#78350f}.update-banner-success{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-color:#86efac;color:#14532d}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.stat{padding:1.15rem 1.25rem;background:var(--color-surface-muted);border-radius:var(--radius-md);border:1px solid var(--color-border-light);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition),transform var(--transition)}.stat:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-label{font-size:.82rem;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.stat-value{font-size:1.3rem;font-weight:700;margin-top:.35rem;color:var(--color-text)}.stat-value-sm{font-size:.95rem;font-weight:600}.table-wrap{overflow-x:auto;border-radius:var(--radius-md);border:1px solid var(--color-border-light);box-shadow:var(--shadow-sm);margin-top:1rem}table{width:100%;border-collapse:collapse;font-size:.95rem}thead{background:var(--color-surface-muted)}th{text-align:left;padding:.85rem 1rem;font-size:.82rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:2px solid var(--color-border)}td{text-align:left;padding:.85rem 1rem;border-bottom:1px solid var(--color-border-light);color:var(--color-text)}tbody tr{transition:background var(--transition)}tbody tr:hover{background:#f5f8fc}tbody tr:last-child td{border-bottom:none}tbody tr.row-terminated{opacity:.72}tbody tr.row-terminated td{color:var(--color-text-muted)}.users-table-wrap{margin-top:1.5rem}.users-table{font-size:1rem;table-layout:auto}.users-table th,.users-table td{padding:1.1rem 1.35rem;vertical-align:middle}.users-table th:last-child,.users-table td:last-child{min-width:280px}.users-table th:nth-child(1),.users-table td:nth-child(1){min-width:220px}.users-table th:nth-child(3),.users-table td:nth-child(3){min-width:140px}.users-table .btn{padding:.5rem .95rem;font-size:.9rem;white-space:nowrap}.password-hidden{color:var(--color-text-light);font-size:1.1rem;letter-spacing:.15em;-webkit-user-select:none;user-select:none}.tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem;padding:.35rem;background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border-light);box-shadow:var(--shadow-sm)}.tab{padding:.55rem 1.15rem;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;font-family:var(--font);font-size:.95rem;font-weight:600;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition)}.tab:hover{background:var(--color-surface-muted);color:var(--color-text)}.tab.active{background:linear-gradient(180deg,#2569b0 0%,var(--color-primary) 100%);color:#fff;border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1.25rem;background:#0a1628;position:relative;overflow:hidden}.login-vanta-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.login-vanta-bg canvas{display:block}.login-card{width:100%;max-width:420px;position:relative;z-index:1;padding:1.75rem 2rem;box-shadow:0 24px 48px #00000059,0 0 0 1px #ffffff14;background:#fffffff0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:login-card-enter .6s ease-out}.login-card:hover{box-shadow:0 24px 48px #00000059,0 0 0 1px #ffffff14}@keyframes login-card-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.login-card{animation:none}}.login-brand{text-align:center;margin-bottom:1.25rem}.login-logo{width:56px;height:56px;margin:0 auto 1rem;border-radius:var(--radius-md);background:linear-gradient(135deg,#2a6cb8,#1e4d8c);display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;color:#fff;box-shadow:var(--shadow-md)}.login-card h1{margin:0 0 .4rem;font-size:1.65rem;text-align:center}.login-card .muted{text-align:center;margin-bottom:0}.login-divider{height:1px;background:var(--color-border-light);margin:1.25rem 0 1.5rem}.google-login-wrap{display:flex;justify-content:center;align-items:center;min-height:44px;margin-bottom:.75rem}.google-loading{margin:0;color:var(--color-text-muted);font-size:.95rem;font-weight:600}.login-domain-hint{text-align:center;margin:0 0 1.25rem;font-size:.9rem}.login-or-divider{display:flex;align-items:center;gap:1rem;margin:0 0 1.25rem;color:var(--color-text-muted);font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.login-or-divider:before,.login-or-divider:after{content:"";flex:1;height:1px;background:var(--color-border-light)}pre{background:#0f2744;color:#d4e4f7;padding:1.15rem 1.25rem;border-radius:var(--radius-md);overflow:auto;font-size:.82rem;line-height:1.5;box-shadow:inset 0 2px 8px #0003;border:1px solid rgba(255,255,255,.06);font-family:Consolas,Courier New,monospace}.site-add-form{display:flex;gap:.75rem;margin-top:1.25rem}.site-add-form .input{flex:1}.domain-list{list-style:none;margin:1.25rem 0 0;padding:0;border-radius:var(--radius-md);border:1px solid var(--color-border-light);box-shadow:var(--shadow-sm);overflow:hidden}.domain-list-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.15rem;background:var(--color-surface);border-bottom:1px solid var(--color-border-light);transition:background var(--transition)}.domain-list-item:hover{background:var(--color-surface-muted)}.domain-list-item:last-child{border-bottom:none}.domain-list-item span{font-size:.98rem;font-weight:600;color:var(--color-text)}.dashboard-page .page-header{margin-bottom:1.25rem}.dashboard-section-title{margin:0 0 1.1rem;font-size:1.2rem;font-weight:700;color:var(--color-text)}.dashboard-guide-card{margin-bottom:1rem}.setup-steps{list-style:none;margin:0;padding:0;display:grid;gap:.85rem}.setup-step{display:flex;align-items:flex-start;gap:.85rem}.setup-step-num{flex-shrink:0;width:1.75rem;height:1.75rem;border-radius:50%;background:var(--color-primary-light);color:var(--color-primary);font-size:.85rem;font-weight:700;display:flex;align-items:center;justify-content:center;margin-top:.1rem}.setup-step strong{display:block;margin-bottom:.2rem;font-size:.98rem}.setup-step p{margin:0;font-size:.92rem;line-height:1.45}.wireguard-downloads{margin-top:1.25rem;padding-top:1.15rem;border-top:1px solid var(--color-border-light)}.wireguard-downloads-label{margin:0 0 .65rem;font-size:.88rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.wireguard-downloads-grid{display:flex;flex-wrap:wrap;gap:.55rem}.wireguard-download-link{display:inline-flex;align-items:center;padding:.45rem .85rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface-muted);color:var(--color-primary);font-size:.9rem;font-weight:600;text-decoration:none;transition:background var(--transition),border-color var(--transition)}.wireguard-download-link:hover{background:var(--color-primary-light);border-color:#a8c4e8;color:var(--color-primary-hover)}.update-banner-text{margin:.35rem 0 0}.dashboard-welcome{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;padding-bottom:1.25rem;border-bottom:1px solid var(--color-border-light)}.dashboard-welcome h1{margin:0 0 .35rem;font-size:1.75rem}.download-section{margin-top:1.75rem;padding-top:1.5rem;border-top:1px solid var(--color-border-light)}.download-meta{margin-top:1rem;font-size:.9rem;color:var(--color-text-muted)}.admin-panel{animation:fadeIn .25s ease}.pipeline-output-label{margin:1.25rem 0 .5rem;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.form-section{margin-bottom:1.75rem;padding:1.25rem;background:var(--color-surface-muted);border-radius:var(--radius-md);border:1px solid var(--color-border-light);box-shadow:var(--shadow-sm)}.form-section-title{margin:0 0 1rem;font-size:1rem;font-weight:700;color:var(--color-text)}.empty-state{text-align:center;padding:2rem 1rem;color:var(--color-text-muted);background:var(--color-surface-muted);border-radius:var(--radius-md);border:1px dashed var(--color-border);margin-top:1.25rem}code{font-family:Consolas,Courier New,monospace;font-size:.9em;padding:.15rem .4rem;background:var(--color-surface-muted);border-radius:4px;border:1px solid var(--color-border-light)}.user-password{font-family:var(--font);font-size:.95rem;font-weight:600;letter-spacing:.02em}.password-edit-row{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem;min-width:260px}.password-edit-row .input{flex:1;min-width:160px;padding:.55rem .85rem;font-size:.95rem}.users-table .btn-row{gap:.5rem}.users-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem}.users-search-input{flex:1;min-width:220px}.users-status-filter{width:auto;min-width:160px}.users-count{font-size:.9rem;white-space:nowrap}.table-empty{text-align:center;color:var(--color-text-muted);padding:1.5rem!important}
