/*
 * LetaDial — Sign in / register
 * Wyodrębnione z inline <style> w pages/login.php
 * PLAN_NAPRAWY_CSP.md — Krok 5a (statyczne <style> -> zewnętrzny CSS)
 * Treść reguł ponizej NIEZMIENIONA wzgledem oryginalnego inline bloku.
 */
body { display:flex; align-items:center; justify-content:center; min-height:100vh; padding:1.5rem; }
.login-card {
    width:100%; max-width:420px;
    background:var(--surface); border:1px solid var(--border);
    border-radius:var(--radius-lg); box-shadow:var(--shadow-xl);
    padding:2.25rem 2rem 2rem;
}
.logo { text-align:center; margin-bottom:2rem; }
.logo-img { width:80px; height:80px; object-fit:contain; filter:drop-shadow(0 2px 10px rgba(0,0,0,.18)); margin-bottom:.75rem; transition:transform .25s ease; }
.logo-img:hover { transform:scale(1.06) rotate(-2deg); }
.logo h1 { font-size:1.35rem; font-weight:700; }
.logo p  { color:var(--text-muted); font-size:.875rem; margin:.15rem 0 0; }
.form-row { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.5rem; font-size:.85rem; flex-wrap:wrap; gap:.5rem; }
.code-input { text-align:center !important; letter-spacing:.28em !important; font-size:1.5rem !important; font-weight:700 !important; font-family:var(--font-mono) !important; padding:.75rem !important; }
.totp-info { text-align:center; color:var(--text-muted); font-size:.875rem; margin-bottom:1.25rem; line-height:1.6; }
.register-switch { text-align:center; margin-top:1.25rem; font-size:.85rem; color:var(--text-muted); }
.register-switch a { color:var(--primary); cursor:pointer; text-decoration:none; }
.register-switch a:hover { text-decoration:underline; }
.pw-strength { height:4px; border-radius:var(--radius-full); background:var(--border); margin-top:var(--space-2); overflow:hidden; }
.pw-strength-bar { height:100%; border-radius:var(--radius-full); transition:width 0.3s ease, background-color 0.3s ease; width:0%; }
/* Cookie Consent Banner */
.cookie-overlay {
    position:fixed; inset:0;
    background:rgba(0,0,0,.35); z-index:9999;
    display:flex; align-items:flex-end; padding:1rem;
    backdrop-filter:blur(2px);
}
.cookie-banner {
    background:var(--surface); border:1px solid var(--border);
    border-radius:var(--radius-lg); box-shadow:var(--shadow-xl);
    padding:1.5rem 1.75rem; max-width:640px; margin:0 auto; width:100%;
    animation:cookieSlideUp .25s ease;
}
@keyframes cookieSlideUp { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:translateY(0)} }
.cookie-banner h3 { font-size:1rem; font-weight:700; margin-bottom:.5rem; }
.cookie-banner p  { font-size:.875rem; color:var(--text-muted); line-height:1.6; margin-bottom:.75rem; }
.cookie-banner p:last-of-type { margin-bottom:1rem; }
.cookie-banner a  { color:var(--primary); }
.cookie-buttons   { display:flex; gap:.75rem; flex-wrap:wrap; }
.cookie-buttons .cbtn {
    flex:1; min-width:140px;
    background:var(--surface-alt); color:var(--text);
    border:1.5px solid var(--border); border-radius:var(--radius-md);
    padding:.65rem 1rem; font-size:.875rem; font-weight:600;
    cursor:pointer; text-align:center; font-family:var(--font-sans);
    transition:all var(--transition);
}
.cookie-buttons .cbtn:hover { border-color:var(--primary); color:var(--primary); background:var(--primary-bg); }
.login-blocked { pointer-events:none; filter:blur(2px); user-select:none; opacity:.6; transition:all .3s; }
