:root{--bg:#f6f7fb;--card:#fff;--border:#e5e7eb;--text:#111827;--muted:#6b7280;--primary:#4f46e5;--primary-hover:#4338ca;--danger:#dc2626;--ok:#16a34a}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}.auth-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;width:100%;max-width:400px;padding:32px;box-shadow:0 1px 2px #0000000a,0 8px 24px #0000000a}.card h1{margin:0 0 4px;font-size:22px}.card .sub{color:var(--muted);margin:0 0 24px;font-size:14px}.field{margin-bottom:14px}.field label{margin-bottom:6px;font-size:13px;font-weight:600;display:block}.field input{border:1px solid var(--border);border-radius:8px;outline:none;width:100%;padding:10px 12px;font-size:15px}.field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #4f46e51f}.btn{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;padding:11px 16px;font-size:15px;font-weight:600}.btn:hover{background:var(--primary-hover)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn.secondary{color:var(--text);border:1px solid var(--border);background:#fff}.btn.secondary:hover{background:#f9fafb}.divider{color:var(--muted);align-items:center;gap:12px;margin:18px 0;font-size:13px;display:flex}.divider:before,.divider:after{content:"";background:var(--border);flex:1;height:1px}.msg{border-radius:8px;margin-bottom:14px;padding:10px 12px;font-size:14px}.msg.error{color:var(--danger);background:#fef2f2}.msg.ok{color:var(--ok);background:#f0fdf4}.foot{color:var(--muted);text-align:center;margin-top:18px;font-size:14px}.admin{max-width:1000px;margin:0 auto;padding:32px 24px}.admin h1{margin:0 0 24px;font-size:24px}.admin h2{margin:32px 0 12px;font-size:17px}.admin nav{border-bottom:1px solid var(--border);gap:16px;margin-bottom:24px;padding-bottom:12px;display:flex}table{border-collapse:collapse;background:var(--card);border:1px solid var(--border);border-radius:10px;width:100%;font-size:14px;overflow:hidden}th,td{text-align:left;border-bottom:1px solid var(--border);padding:10px 12px}th{background:#f9fafb;font-weight:600}tr:last-child td{border-bottom:none}.tag{color:var(--primary);background:#eef2ff;border-radius:6px;margin:2px;padding:2px 8px;font-size:12px;display:inline-block}.inline-form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.inline-form input,.inline-form select{border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:14px}.inline-form button{width:auto;padding:8px 14px}
