:root{--bg:#f4f6f8;--surface:#fff;--border:#e2e6ea;--ink:#1f2a37;--muted:#6b7480;--accent:#2a78d6;--accent-ink:#1b5aa8}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:15px;line-height:1.45}a{color:var(--accent-ink)}.container{max-width:960px;margin:0 auto;padding:20px 16px 60px}.topbar{display:flex;align-items:center;justify-content:space-between;background:var(--surface);border-bottom:1px solid var(--border);padding:12px 16px}.topbar h1{font-size:16px;margin:0}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:16px}.card h2{font-size:15px;margin:0 0 12px}.muted{color:var(--muted)}.muted,label{font-size:13px}label{display:block;font-weight:600;margin:10px 0 4px}input,select,textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font:inherit;background:#fff}.row{display:flex;gap:10px;flex-wrap:wrap}.row>*{flex:1 1 160px}.btn{display:inline-flex;align-items:center;gap:6px;cursor:pointer;padding:8px 14px;border-radius:8px;border:1px solid var(--border);background:#fff;font:inherit;font-weight:600;color:var(--ink)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.sm{padding:5px 10px;font-size:13px}.btn.link{border:none;background:none;color:var(--accent-ink);padding:0}table{width:100%;border-collapse:collapse;font-size:14px}td,th{text-align:left;padding:8px;border-bottom:1px solid var(--border);vertical-align:top}.chip{display:inline-block;padding:2px 8px;border-radius:20px;font-size:12px;background:#eef2f6;color:var(--muted)}.notif{padding:8px 0;border-bottom:1px solid var(--border)}.notif.unread{font-weight:600}.err{color:#c0392b;font-size:13px;min-height:18px}.login-wrap{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:20px}.login-card{width:100%;max-width:380px;text-align:center}.login-card label{text-align:left}.oauth{display:flex;flex-direction:column;gap:8px;margin-top:12px}.login-logo{width:52px;height:52px;border-radius:15px;margin:0 auto 14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),var(--accent-ink))}.login-logo svg{width:27px;height:27px}.login-err{color:#c0392b;font-size:12.5px;min-height:16px;text-align:left;margin-top:2px}.pw-eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;padding:4px;cursor:pointer;color:var(--muted);display:grid;place-items:center;border-radius:6px}.login-luxe{position:relative;overflow:hidden;background:#070c18;isolation:isolate}.login-luxe .lx-bg{position:absolute;inset:0;z-index:0;pointer-events:none}.login-luxe .lx-bg.base{background:radial-gradient(115% 85% at 80% -10%,hsla(38,69%,69%,.28),hsla(38,69%,69%,0) 55%),radial-gradient(95% 75% at 10% 6%,rgba(70,130,220,.3),rgba(70,130,220,0) 60%),linear-gradient(165deg,#0c1430,#0b1c38 45%,#0a1526 72%,#060a16)}.login-luxe .lx-bg.aura{background:radial-gradient(38% 50% at 28% 42%,rgba(130,185,255,.18),transparent 70%),radial-gradient(34% 44% at 74% 60%,hsla(39,74%,70%,.16),transparent 72%);mix-blend-mode:screen;animation:lxDrift 20s ease-in-out infinite alternate}@keyframes lxDrift{0%{transform:translate3d(-3%,-2%,0) scale(1.08)}to{transform:translate3d(4%,3%,0) scale(1.18)}}.login-luxe .lx-sky{position:absolute;left:0;right:0;bottom:0;width:100%;height:46%;z-index:0;opacity:.92}.login-luxe .lx-orb{position:absolute;bottom:-24px;border-radius:50%;background:radial-gradient(circle,rgba(255,226,168,.95),rgba(255,198,120,0) 70%);opacity:0;z-index:1;animation-name:lxRise;animation-timing-function:ease-in;animation-iteration-count:infinite}@keyframes lxRise{0%{transform:translateY(0) scale(.5);opacity:0}12%{opacity:.85}80%{opacity:.5}to{transform:translateY(-104vh) scale(1.1);opacity:0}}.login-luxe .login-card{position:relative;z-index:2;color:#e9f0fb;background:linear-gradient(160deg,rgba(30,42,66,.72),rgba(12,18,34,.74));-webkit-backdrop-filter:blur(24px) saturate(1.3);backdrop-filter:blur(24px) saturate(1.3);border:1px solid hsla(0,0%,100%,.14);border-radius:16px;padding:30px 28px;box-shadow:0 40px 90px -24px rgba(0,0,0,.75),inset 0 1px 0 hsla(0,0%,100%,.16);animation:lxIn .6s cubic-bezier(.2,.75,.25,1)}@keyframes lxIn{0%{opacity:0;transform:translateY(20px) scale(.97)}}.login-luxe .login-card h1{color:#fff;letter-spacing:.01em;font-size:20px;margin:0}.login-luxe .lx-title{background:linear-gradient(100deg,#fff 18%,#ffe4a8 40%,#fff 62%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:lxShine 6.5s linear infinite}@keyframes lxShine{to{background-position:220% 0}}.login-luxe .login-card .muted{color:#aebbd2!important}.login-luxe .login-card label{color:#ccd6ea}.login-luxe .login-card input{background:hsla(0,0%,100%,.06);border:1px solid hsla(0,0%,100%,.17);color:#f4f7fc}.login-luxe .login-card input::placeholder{color:#8b98b2}.login-luxe .login-card input:focus{border-color:hsla(40,74%,70%,.85);outline:2px solid hsla(40,74%,70%,.22);background:hsla(0,0%,100%,.09)}.login-luxe .pw-eye{color:#9db0cf}.login-luxe .pw-eye:hover{color:#fff;background:hsla(0,0%,100%,.1)}.login-luxe .login-logo{background:linear-gradient(135deg,#f0cd86,#b8862f);box-shadow:0 10px 28px rgba(190,140,55,.5),inset 0 1px 0 hsla(0,0%,100%,.55)}.login-luxe .login-card .btn.primary{background:linear-gradient(135deg,#f0cd86,#c8932f);border:0;color:#2c2006;font-weight:700;letter-spacing:.01em;box-shadow:0 12px 28px -8px rgba(200,150,50,.65),inset 0 1px 0 hsla(0,0%,100%,.4)}.login-luxe .login-card .btn.primary:hover{filter:brightness(1.06)}.login-luxe .login-card .btn.link{color:#ffd98a}.login-luxe .login-err{color:#ff9a9a}.login-luxe .lx-badge{display:inline-flex;align-items:center;gap:8px;font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#e6c37a;margin-bottom:10px}.login-luxe .lx-badge:after,.login-luxe .lx-badge:before{content:"";width:22px;height:1px;background:linear-gradient(90deg,transparent,#e6c37a)}.login-luxe .lx-badge:after{background:linear-gradient(90deg,#e6c37a,transparent)}@media (prefers-reduced-motion:reduce){.login-luxe .login-card,.login-luxe .lx-bg.aura,.login-luxe .lx-orb,.login-luxe .lx-title{animation:none!important}.login-luxe .lx-title{-webkit-text-fill-color:#fff;color:#fff}}