/* Extracted from templates/login.html */

:root {
 --orange: #B95CE4; /* Prism V2 Amethyst */
 --orange-dark: #9B3FC4;
 --bg: #f0f2f6;
 --bg-card: #ffffff;
 --text: #0a0e17;
 --text-dim: rgba(10,14,23,0.55);
 --text-muted: rgba(10,14,23,0.40);
 --border: rgba(185,92,228,0.25);
 --glass-bg: rgba(255,255,255,0.85);
 --glass-border: rgba(0,0,0,0.08);
 --radius: 12px;
 --font-body: 'Inter', system-ui, -apple-system, sans-serif;
 --font-heading: 'Oswald', 'Inter', sans-serif;
 --pf-white: #ffffff;
}
:root[data-theme="dark"] {
 --bg: #161B26;
 --bg-card: #1C2230;
 --text: #F2F5F8;
 --text-dim: rgba(242,245,248,0.55);
 --text-muted: rgba(242,245,248,0.35);
 --border: rgba(185,92,228,0.15);
 --glass-bg: rgba(31,26,44,0.55);
 --glass-border: rgba(255,255,255,0.06);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{width:100%;height:100%}
body{
 font-family:var(--font-body);
 background:var(--bg);
 color:var(--text);
 -webkit-font-smoothing:antialiased;
 display:flex;align-items:center;justify-content:center;
 min-height:100vh;
 transition: background 0.3s ease, color 0.3s ease;
}
.bg-gradient{
 position:fixed;top:0;left:0;width:100%;height:100%;
 background:
 radial-gradient(ellipse 60% 50% at 50% 40%, rgba(185,92,228,0.08) 0%, transparent 70%),
 radial-gradient(ellipse 80% 60% at 50% 100%, rgba(185,92,228,0.04) 0%, transparent 60%);
 z-index:0;pointer-events:none;
}
[data-theme="light"] .bg-gradient{
 background:
 radial-gradient(ellipse 60% 50% at 50% 40%, rgba(185,92,228,0.06) 0%, transparent 70%),
 radial-gradient(ellipse 80% 60% at 50% 100%, rgba(185,92,228,0.03) 0%, transparent 60%);
}
/* —— Prism Logo Watermark —— */
.bg-watermark{
 position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);
 width:min(800px, 90vw);height:min(800px, 90vw);
 background:url('/static/prism-logo-bg.png?v=89') center/contain no-repeat;
 z-index:0;pointer-events:none;opacity:0.18;
 filter:drop-shadow(0 0 80px rgba(185,92,228,0.25));
}
[data-theme="light"] .bg-watermark{
 opacity:0.08;
 filter:drop-shadow(0 0 40px rgba(185,92,228,0.12));
}
.login-wrapper{
 position:relative;z-index:1;
 width:100%;max-width:420px;padding:0 20px;
}
.login-card{
 background:var(--glass-bg);
 backdrop-filter:blur(20px) saturate(1.2);
 -webkit-backdrop-filter:blur(20px) saturate(1.2);
 border:1px solid var(--glass-border);
 border-radius:16px;padding:40px 36px 32px;
 box-shadow:0 4px 32px rgba(0,0,0,0.4);
 transition: background 0.3s ease, border-color 0.3s ease;
}
[data-theme="light"] .login-card{
 box-shadow:0 4px 24px rgba(0,0,0,0.08);
}
.login-brand{text-align:center;margin-bottom:32px}
.login-brand img{width:56px;height:56px;border-radius:10px;margin-bottom:10px}
.login-brand h1{
 font-family:var(--font-heading);font-size:20px;font-weight:600;
 letter-spacing:0.5px;text-transform:uppercase;color:var(--text);
}
.login-brand h1 span{color:var(--orange)}
.login-brand p{font-size:12px;color:var(--text-dim);margin-top:2px;font-weight:400;letter-spacing:1px;text-transform:uppercase}

.error-msg{
 display:none;padding:10px 14px;margin-bottom:18px;
 background:var(--pf-red-dim, rgba(255,50,50,0.1));border:1px solid var(--pf-red-border, rgba(255,50,50,0.2));
 border-radius:8px;color:var(--pf-red-181);font-size:13px;text-align:center;
}
.error-msg.show{display:block}

.form-group{margin-bottom:16px}
.form-group label{
 display:block;font-size:11px;font-weight:500;
 text-transform:uppercase;letter-spacing:0.5px;
 color:var(--text-dim);margin-bottom:6px;
}
.input-field{
 width:100%;height:46px;padding:0 14px;
 background:var(--glass-bg);
 border:1px solid var(--glass-border);border-radius:8px;
 color:var(--text);font-family:var(--font-body);font-size:14px;
 outline:none;transition:border-color 0.2s, box-shadow 0.2s;
}
.input-field::placeholder{color:var(--text-muted)}
.input-field:focus{
 border-color:var(--orange);
 box-shadow:0 0 0 3px rgba(185,92,228,0.12);
}

.btn-primary{
 width:100%;height:48px;
 display:flex;align-items:center;justify-content:center;
 background:var(--orange);color:var(--pf-white);
 font-family:var(--font-body);font-size:14px;font-weight:600;
 letter-spacing:0.3px;border:none;border-radius:8px;
 cursor:pointer;transition:background 0.2s, transform 0.1s;
 margin-top:8px;
}
.btn-primary:hover{background:var(--orange-dark)}
.btn-primary:active{transform:scale(0.98)}
.btn-primary.loading{pointer-events:none;opacity:0.7}
.btn-primary .spinner{
 display:none;width:18px;height:18px;
 border:2px solid rgba(255,255,255,0.3);border-top-color:var(--pf-white);
 border-radius:50%;animation:spin 0.6s linear infinite;
}
.btn-primary.loading .btn-text{display:none}
.btn-primary.loading .spinner{display:block}

.form-footer{text-align:center;margin-top:18px}
.form-footer a{color:var(--text-muted);font-size:12px;text-decoration:none}
.form-footer a:hover{color:var(--orange)}

@keyframes spin{to{transform:rotate(360deg)}}

@media(max-width:480px){
 .login-card{padding:28px 20px 24px;border-radius:12px}
}
[data-theme="dark"] .input-field {
 background: rgba(0,0,0,0.04);
}
[data-theme="dark"] .form-footer a {
 color: var(--text-muted);
}

/* ── Theme Toggle Switch ── */
.theme-toggle-login {
 position: absolute; top: 1rem; right: 1rem;
 width: 48px; height: 26px;
 background: var(--glass-border);
 border: none; border-radius: 13px;
 cursor: pointer; padding: 2px;
 transition: background 0.3s ease;
 z-index: 2;
}
.theme-toggle-login:hover { background: var(--orange); }
.tt-slider {
 display: block;
 width: 22px; height: 22px;
 background: white;
 border-radius: 50%;
 transition: transform 0.3s ease;
 transform: translateX(0);
 box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}
[data-theme="dark"] .tt-slider {
 transform: translateX(22px);
}
[data-theme="dark"] .theme-toggle-login {
 background: var(--orange);
}

/* --- next block --- */

.card,.stat-card,.glass-card,[class*='card']{border-radius:12px!important}
