:root{--text:#1c2433;--text-muted:#6b7488;--bg:#f3f5f9;--card-bg:#fff;--border:#e4e7ee;--brand-950:#050e1c;--brand-900:#0a1f38;--brand-800:#0f2c4c;--brand-700:#163d68;--brand-600:#1e5189;--brand-500:#2c6bb0;--brand-400:#4a8bcf;--accent:var(--brand-500);--accent-hover:var(--brand-600);--danger:#dc2626;--success:#16a34a;--sidebar-collapsed:72px;--sidebar-expanded:248px;color:var(--text);background:var(--bg);font:15px/150% system-ui,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0}#root{min-height:100svh}h1,h2{margin:0 0 12px;font-weight:600}button{font:inherit;background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:9px 16px;transition:background-color .15s}button:hover{background:var(--accent-hover)}button:disabled{opacity:.6;cursor:not-allowed}input,select,textarea{font:inherit;border:1px solid var(--border);border-radius:8px;width:100%;padding:9px 12px;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--brand-400);outline:none;box-shadow:0 0 0 3px #2c6bb026}label{color:var(--text-muted);flex-direction:column;gap:4px;margin-bottom:12px;font-size:13px;display:flex}a{color:var(--accent)}.auth-page{background:radial-gradient(circle at 15% 15%, #4a8bcf59, transparent 45%), linear-gradient(135deg, var(--brand-950) 0%, var(--brand-800) 55%, var(--brand-600) 100%);justify-content:center;align-items:center;min-height:100svh;padding:20px;display:flex}.auth-card{background:#fffffff7;border:1px solid #fff6;border-radius:16px;width:340px;padding:36px 32px;box-shadow:0 20px 60px #050e1c73}.auth-card h1{color:var(--brand-900);margin-bottom:20px;font-size:22px}.auth-card button{width:100%;margin-top:4px;padding:11px 16px;font-weight:600}.password-field{position:relative}.password-field input{padding-right:40px}.password-toggle{width:30px;height:30px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:6px;display:flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.password-toggle:hover{color:var(--text);background:0 0}.form-error{color:var(--danger);font-size:13px}.form-success{color:var(--success);font-size:13px}.layout{min-height:100svh}.sidebar{width:var(--sidebar-collapsed);background:linear-gradient(180deg, var(--brand-900) 0%, var(--brand-950) 100%);z-index:100;flex-direction:column;transition:width .16s;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden;box-shadow:2px 0 24px #050e1c40}.sidebar:hover{width:var(--sidebar-expanded)}.sidebar-brand{color:#fff;white-space:nowrap;border-bottom:1px solid #ffffff14;align-items:center;gap:12px;min-height:32px;padding:18px 16px;font-size:16px;font-weight:700;display:flex}.sidebar-brand-mark{background:linear-gradient(135deg, var(--brand-400), var(--brand-600));color:#fff;border-radius:9px;flex:none;justify-content:center;align-items:center;width:32px;height:32px;font-weight:700;display:flex}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:12px 8px;display:flex;overflow-y:auto}.sidebar-link{color:#ffffffb8;white-space:nowrap;border-radius:9px;align-items:center;gap:14px;padding:10px 12px;font-size:14px;text-decoration:none;display:flex;position:relative}.sidebar-link svg{flex:none;width:20px;height:20px}.sidebar-link:hover{color:#fff;background:#ffffff12}.sidebar-link.active{color:#fff;background:#2c6bb059}.sidebar-link.active:before{content:"";background:var(--brand-400);border-radius:3px;width:3px;position:absolute;top:8px;bottom:8px;left:-8px}.sidebar-link-label{opacity:0;transition:opacity .1s}.sidebar:hover .sidebar-link-label{opacity:1}.sidebar-footer{border-top:1px solid #ffffff14;padding:12px 8px}.sidebar-logout{width:100%;font:inherit;cursor:pointer;background:0 0;border:none}.sidebar-logout:hover{background:#ffffff12}.layout-main{margin-left:var(--sidebar-collapsed);flex-direction:column;min-height:100svh;display:flex}.layout-header{background:var(--card-bg);border-bottom:1px solid var(--border);z-index:10;justify-content:space-between;align-items:center;padding:18px 32px;display:flex;position:sticky;top:0}.layout-header h1{color:var(--brand-900);margin:0;font-size:19px}.layout-user{color:var(--text-muted);align-items:center;gap:14px;font-size:13px;display:flex}.layout-user button{background:var(--bg);color:var(--text);border:1px solid var(--border)}.layout-user button:hover{background:#ebedf3}.layout-content{flex-direction:column;gap:20px;width:100%;max-width:1080px;margin:0 auto;padding:28px 32px 64px;display:flex}.card{background:var(--card-bg);border:1px solid var(--border);text-align:left;border-radius:14px;padding:22px 26px;box-shadow:0 1px 2px #1018280a}.toolbar{justify-content:flex-end;display:flex}.form{flex-direction:column;max-width:380px;display:flex}.inline-form{align-items:flex-end;gap:8px;display:flex}.inline-form input{flex:1}.data-table{border-collapse:collapse;background:var(--card-bg);border:1px solid var(--border);border-radius:14px;width:100%;overflow:hidden;box-shadow:0 1px 2px #1018280a}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border);padding:13px 16px;font-size:14px}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:#f8fafc}.data-table th{color:var(--text-muted);letter-spacing:.03em;text-transform:uppercase;background:#fafbfd;font-size:11.5px;font-weight:600}.row-link{color:var(--accent);align-items:center;gap:6px;font-weight:600;text-decoration:none;display:inline-flex}.row-link:hover{text-decoration:underline}.row-action{width:32px;height:32px;color:var(--text-muted);background:var(--bg);border:1px solid var(--border);border-radius:8px;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.row-action:hover{color:var(--text);background:#ebedf3}.badge{border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-block}.badge-active{color:#166534;background:#dcfce7}.badge-suspended{color:#991b1b;background:#fee2e2}.simple-list{flex-direction:column;gap:8px;margin:0 0 16px;padding:0;list-style:none;display:flex}.simple-list li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 4px;font-size:14px;display:flex}.webapp-page{max-width:420px;margin:0 auto;padding:24px 20px}.webapp-page h1{font-size:20px}.page-loading{justify-content:center;align-items:center;min-height:100svh;display:flex}@media (width<=720px){.sidebar{width:0}.sidebar:hover{width:var(--sidebar-expanded)}.layout-main{margin-left:0}}
