:root{--bg: #0f1115;--surface: #171a21;--surface-alt: #1f232c;--border: #2a2f3a;--text: #e8eaed;--text-dim: #9aa1ac;--accent: #ff194a;--accent-hover: #ff3f6e;--accent-glow: rgba(255, 25, 74, .28);--accent-border-dim: rgba(255, 25, 74, .3);--danger: #ff6b6b;--success: #4ade80;--radius: 10px;--sidebar-width: 240px;--sidebar-width-collapsed: 72px}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text)}.page-loading{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--text-dim)}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.auth-row{display:flex;align-items:stretch;gap:24px;max-width:800px}.auth-divider{display:flex;align-items:center;justify-content:center;color:var(--text-dim);font-size:13px}.auth-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--accent-border-dim);border-radius:var(--radius);padding:32px;display:flex;flex-direction:column;gap:14px}@media(max-width:720px){.auth-row{flex-direction:column;align-items:center}.auth-divider{padding:4px 0}}.auth-card h1{margin:0 0 8px;font-size:22px}.auth-card label,.profile-form label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--text-dim)}.auth-card input,.profile-form input,.profile-form textarea{background:var(--surface-alt);border:1px solid var(--border);border-radius:8px;padding:10px 12px;color:var(--text);font-size:14px;font-family:inherit}.auth-card input:focus,.profile-form input:focus,.profile-form textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.auth-card input:disabled,.profile-form input:disabled{opacity:.6}button{cursor:pointer;border:none;border-radius:8px;padding:10px 16px;background:var(--accent);color:#fff;font-size:14px;font-weight:600}button:hover{background:var(--accent-hover)}button:disabled{opacity:.6;cursor:not-allowed}button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-glow)}.button-secondary{background:transparent;color:var(--text);border:1px solid var(--border)}.button-secondary:hover{background:var(--surface-alt);border-color:var(--accent)}.auth-switch{font-size:13px;color:var(--text-dim);text-align:center;margin:0}.auth-switch a{color:var(--accent)}.form-error{color:var(--danger);font-size:13px;margin:0}.form-success{color:var(--success);font-size:13px;margin:0}.password-rules{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-dim)}.password-rules li:before{content:"○ "}.password-rules li.ok{color:var(--accent)}.password-rules li.ok:before{content:"● "}.app-layout{display:flex;min-height:100vh}.app-main{flex:1;padding:32px}.sidebar{width:var(--sidebar-width);flex-shrink:0;background:var(--surface);border-left:1px solid var(--accent-border-dim);display:flex;flex-direction:column;padding:20px 16px;gap:8px;transition:width .18s ease,padding .18s ease;overflow:hidden}.sidebar.collapsed{width:var(--sidebar-width-collapsed);padding:20px 12px}.sidebar-toggle{align-self:flex-end;width:28px;height:28px;padding:0;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--accent);color:var(--accent);border-radius:50%;flex-shrink:0}.sidebar.collapsed .sidebar-toggle{align-self:center}.sidebar-toggle:hover{background:var(--accent);color:#fff}.sidebar-profile{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);padding:8px;border-radius:8px;min-width:0}.sidebar.collapsed .sidebar-profile{justify-content:center;padding:8px 0}.sidebar-profile:hover{background:var(--surface-alt)}.sidebar-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;background:var(--surface-alt);border:2px solid var(--accent);flex-shrink:0}.sidebar-profile-guest{cursor:default}.sidebar-profile-guest:hover{background:none}.sidebar-profile-guest svg{width:40px;height:40px;padding:8px;border-radius:50%;background:var(--surface-alt);border:2px solid var(--accent);color:var(--text-dim);flex-shrink:0}.sidebar-username{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-spacer{flex:1}.sidebar-logout{background:transparent;border:1px solid var(--border);color:var(--text-dim);display:flex;align-items:center;justify-content:center}.sidebar.collapsed .sidebar-logout{padding:10px}.sidebar-logout:hover{background:var(--surface-alt);border-color:var(--accent);color:var(--text)}.sidebar-nav-link{display:flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;color:var(--text-dim);border:1px solid var(--border);border-radius:8px;padding:10px 16px;font-size:14px;font-weight:600}.sidebar.collapsed .sidebar-nav-link{padding:10px}.sidebar-nav-link:hover{background:var(--surface-alt);border-color:var(--accent);color:var(--text)}.sidebar-nav-link.active{background:var(--accent);border-color:var(--accent);color:#fff}.sidebar-divider{height:1px;background:var(--border);margin:4px 6px}.profile-page{max-width:480px}.back-link{color:var(--text-dim);text-decoration:none;font-size:13px}.profile-avatar-block{display:flex;align-items:center;gap:16px;margin:20px 0}.profile-avatar{width:80px;height:80px;border-radius:50%;object-fit:cover;background:var(--surface-alt);border:2px solid var(--accent)}.profile-form{display:flex;flex-direction:column;gap:12px}.profile-form h2{font-size:15px;margin:10px 0 0;border-top:1px solid var(--border);padding-top:16px}.modal-backdrop{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:24px;z-index:100}.modal-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--accent);box-shadow:0 0 0 4px var(--accent-glow);border-radius:var(--radius);padding:24px}.modal-card h2{margin:0 0 12px;font-size:17px}.modal-card p{margin:0 0 20px;font-size:14px;color:var(--text-dim);line-height:1.5}.modal-field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--text-dim);margin-bottom:14px}.modal-field input{background:var(--surface-alt);border:1px solid var(--border);border-radius:8px;padding:9px 12px;color:var(--text);font-size:14px;font-family:inherit}.modal-field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.modal-actions{display:flex;justify-content:flex-end;gap:10px}.admin-tabs{width:200px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--accent-border-dim);display:flex;flex-direction:column;gap:4px;padding:20px 16px}.admin-tabs h2{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);margin:0 0 12px}.admin-tab{text-decoration:none;color:var(--text);padding:9px 12px;border-radius:8px;font-size:14px;font-weight:600}.admin-tab:hover{background:var(--surface-alt)}.admin-tab.active{background:var(--accent);color:#fff}.admin-section{max-width:960px}.admin-section h1{margin:0 0 20px;font-size:20px}.admin-empty{color:var(--text-dim);font-size:14px}.admin-inline-form{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:24px;padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.admin-inline-form input{background:var(--surface-alt);border:1px solid var(--border);border-radius:8px;padding:9px 12px;color:var(--text);font-size:14px;font-family:inherit}.admin-inline-form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.admin-inline-toggle{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-dim);cursor:pointer}.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table th{text-align:left;color:var(--text-dim);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em;padding:0 12px 10px;border-bottom:1px solid var(--border)}.admin-table td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle}.admin-table tbody tr:hover{background:var(--surface-alt)}.admin-table-truncate{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-table-actions{display:flex;gap:8px;justify-content:flex-end}.admin-table-actions button{padding:6px 12px;font-size:13px}.admin-table-hint{color:var(--text-dim);font-size:13px;font-style:italic}.admin-user-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;background:var(--surface-alt);border:2px solid var(--accent);display:block}.status-badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;text-transform:capitalize;border:1px solid currentColor}.status-badge-guest{margin-left:8px;color:var(--accent)}.status-active{color:var(--success)}.status-inactive,.status-expired,.status-exhausted{color:var(--text-dim)}.service-access-menu{position:fixed;z-index:200;width:240px;max-height:320px;overflow-y:auto;background:var(--surface);border:1px solid var(--accent);box-shadow:0 8px 24px #0006,0 0 0 4px var(--accent-glow);border-radius:var(--radius);padding:8px;display:flex;flex-direction:column;gap:2px}.service-access-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px;border-radius:6px;font-size:13px;cursor:pointer}.service-access-row:hover{background:var(--surface-alt)}.service-access-inactive-tag{color:var(--text-dim);font-style:italic}.toggle-switch{position:relative;display:inline-block;width:34px;height:20px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-switch-track{position:absolute;inset:0;background:var(--border);border-radius:999px;transition:background .15s}.toggle-switch-track:before{content:"";position:absolute;width:16px;height:16px;left:2px;top:2px;background:#fff;border-radius:50%;transition:transform .15s}.toggle-switch input:checked+.toggle-switch-track{background:var(--accent)}.toggle-switch input:checked+.toggle-switch-track:before{transform:translate(14px)}.toggle-switch input:focus-visible+.toggle-switch-track{box-shadow:0 0 0 3px var(--accent-glow)}.dashboard-empty{color:var(--text-dim);font-size:14px}.service-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.service-card{display:flex;align-items:center;justify-content:center;text-align:center;min-height:100px;padding:20px;background:var(--surface);border:1px solid var(--accent-border-dim);border-radius:var(--radius);color:var(--text);text-decoration:none;font-weight:600;font-size:15px}.service-card:hover{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.notfound-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-dim);text-align:center;padding:24px}.notfound-page a{color:var(--accent)}
