:root{--color-bg-main: #f7f9fc;--color-bg-card: #ffffff;--color-bg-highlight: #f1f5f9;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-light: #eff6ff;--gradient-primary: linear-gradient(135deg, #2563eb, #1d4ed8);--shadow-glow: 0 4px 14px 0 rgba(37, 99, 235, .39);--color-accent: #14b8a6;--color-text-main: #0f172a;--color-text-muted: #64748b;--color-text-light: #94a3b8;--color-success: #10b981;--color-warning: #f59e0b;--color-error: #ef4444;--color-info: #3b82f6;--border-color: #e2e8f0;--font-family-sans: "Inter", system-ui, -apple-system, sans-serif;--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--transition-fast: .15s ease;--transition-smooth: .3s ease}html[data-theme=dark]{--color-bg-main: #0f172a;--color-bg-card: #1e293b;--color-bg-highlight: #334155;--color-text-main: #f1f5f9;--color-text-muted: #cbd5e1;--color-text-light: #94a3b8;--border-color: #475569;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .3);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .5);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .5)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family-sans);background-color:var(--color-bg-main);color:var(--color-text-main);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased}a{text-decoration:none;color:inherit;transition:opacity var(--transition-fast)}button{font:inherit;cursor:pointer;border:none;background:none}h1,h2,h3,h4,h5,h6{font-weight:700;color:var(--color-text-main);line-height:1.25;letter-spacing:-.025em}.card{background:var(--color-bg-card);border-radius:var(--radius-md);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);padding:1.5rem}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}button,input,select,textarea{touch-action:manipulation}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch;width:100%;margin-bottom:1rem;border-radius:var(--radius-sm)}@media(max-width:768px){html,body{-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:hidden}button,a,[role=button]{min-height:36px}.content-area{scroll-padding-bottom:5rem}*{-webkit-overflow-scrolling:touch}}@media(max-height:500px)and (orientation:landscape){.content-area{padding:.5rem!important}}.btn{display:inline-flex;align-items:center;justify-content:center;font-weight:500;border-radius:var(--radius-md);transition:all var(--transition-fast);cursor:pointer;outline:none;font-family:inherit;position:relative;overflow:hidden}.btn:active{transform:translateY(1px)}.btn:focus-visible{box-shadow:0 0 0 2px var(--color-bg-main),0 0 0 4px var(--color-primary)}.btn:disabled{opacity:.8;cursor:wait;filter:none;background-color:#94a3b8!important;background:linear-gradient(135deg,#94a3b8,#64748b)!important;color:#fff!important;box-shadow:none;transform:none}.btn--primary{background:var(--gradient-primary);color:#fff;border:1px solid rgba(255,255,255,.1);text-shadow:0 1px 2px rgba(0,0,0,.2)}.btn--primary:hover:not(:disabled){box-shadow:var(--shadow-glow);transform:translateY(-1px)}.btn--secondary{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.btn--secondary:hover:not(:disabled){background:#e2e8f0;border-color:#cbd5e1;color:#334155}.btn--danger{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#fca5a5}.btn--danger:hover:not(:disabled){background:#ef444433;border-color:var(--color-error);color:#fff}.btn--sm{padding:.375rem .75rem;font-size:.75rem;gap:.25rem}.btn--md{padding:.625rem 1.25rem;font-size:.875rem;gap:.5rem}.btn--lg{padding:.875rem 2rem;font-size:1rem;gap:.75rem}.card{background:var(--color-bg-card);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-sm);border:1px solid var(--border-color);transition:all var(--transition-fast);position:relative}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--color-primary-light)}.card:before{display:none}.badge{display:inline-flex;align-items:center;padding:.25rem .75rem;font-size:.75rem;font-weight:600;border-radius:9999px;text-transform:uppercase;letter-spacing:.05em;border:1px solid transparent}.badge--info{background:#eff6ff;color:#1d4ed8;border-color:#dbeafe}.badge--success{background:#ecfdf5;color:#15803d;border-color:#d1fae5}.badge--warning{background:#fffbeb;color:#b45309;border-color:#fef3c7}.badge--error,.badge--danger{background:#fef2f2;color:#b91c1c;border-color:#fee2e2}.badge--secondary{background:#f1f5f9;color:#475569;border-color:#e2e8f0}.badge--yellow{background:#fefce8;color:#a16207;border-color:#fef08a}.input-group{display:flex;flex-direction:column;gap:.5rem;width:100%}.input-label{font-size:.875rem;font-weight:500;color:var(--color-text-main);margin-left:.25rem}.input-field{background:var(--color-bg-card);border:1px solid var(--border-color);color:var(--color-text-main);padding:.75rem 1rem;border-radius:var(--radius-md);font-size:.95rem;transition:all var(--transition-fast);width:100%;font-family:inherit;box-shadow:var(--shadow-sm)}.input-field:hover{border-color:var(--color-text-muted);background:var(--color-bg-highlight)}.input-field:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary),0 0 0 4px var(--color-primary-light);background:var(--color-bg-card)}.input-field--error{border-color:var(--color-error)}.input-field--error:focus{box-shadow:0 0 0 1px var(--color-error),0 0 0 4px #ef444433}.input-error{font-size:.75rem;color:var(--color-error);margin-left:.25rem}.select-field{appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%2364748b' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem}.select-field option{background-color:var(--color-bg-card);color:var(--color-text-main)}.textarea-field{min-height:100px;resize:vertical}.file-upload-container{display:flex;align-items:center;gap:1rem}.file-input-hidden{display:none}.file-upload-text{font-size:.9rem;color:var(--color-text-muted)}.toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:10px;pointer-events:none}.toast{pointer-events:auto;min-width:300px;max-width:400px;padding:1rem;border-radius:var(--radius-md);background:var(--color-bg-card);box-shadow:var(--shadow-lg);border-left:5px solid;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;animation:slideIn .3s cubic-bezier(.68,-.55,.265,1.55);transition:all .3s ease;opacity:.98}[data-theme=dark] .toast{box-shadow:0 10px 15px -3px #000000b3}.toast.exiting{animation:slideOut .3s forwards}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:.98}}@keyframes slideOut{0%{transform:translate(0);opacity:.98}to{transform:translate(120%);opacity:0}}.toast-success{border-left-color:var(--color-success)}.toast-success .toast-icon{color:var(--color-success)}.toast-error{border-left-color:var(--color-error)}.toast-error .toast-icon{color:var(--color-error)}.toast-warning{border-left-color:var(--color-warning)}.toast-warning .toast-icon{color:var(--color-warning)}.toast-info{border-left-color:var(--color-info)}.toast-info .toast-icon{color:var(--color-info)}.toast-content{flex:1}.toast-title{font-weight:600;margin-bottom:4px;font-size:.95rem;color:var(--color-text-main)}.toast-message{font-size:.85rem;color:var(--color-text-muted);line-height:1.4}.toast-close{background:transparent;border:none;color:var(--color-text-light);cursor:pointer;padding:4px;line-height:1;font-size:1.2rem;opacity:.6;transition:opacity .2s}.toast-close:hover{opacity:1}.eb-container{padding:0 1.5rem;margin-bottom:1.5rem}.eb-greeting-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:1rem}.eb-greeting h2{font-size:1.5rem;font-weight:700;color:#f8fafc;margin:0 0 .25rem}.eb-greeting p{color:#94a3b8;margin:0;font-size:.9rem}.eb-rank-badge{display:flex;align-items:center;gap:.5rem;background:linear-gradient(135deg,#fbbf24,#f59e0b);padding:.5rem 1rem;border-radius:20px;color:#fff;font-weight:700;box-shadow:0 4px 12px #f59e0b40}.eb-rank-icon{font-size:1.2rem}.eb-rank-number{font-size:1.1rem}.eb-rank-pts{font-size:.8rem;opacity:.9;font-weight:500}.eb-active-visit{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:linear-gradient(135deg,#10b98126,#10b9810d);border:1px solid rgba(16,185,129,.3);border-radius:10px;margin-bottom:1rem;color:#a7f3d0;font-size:.9rem}.eb-active-dot{width:10px;height:10px;border-radius:50%;background:#10b981;animation:eb-pulse 1.5s ease-in-out infinite;flex-shrink:0}@keyframes eb-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}}.eb-stats-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:.75rem}.eb-stat-card{background:#1e293b80;border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:1rem;display:flex;flex-direction:column;align-items:center;text-align:center;transition:transform .2s,border-color .2s}.eb-stat-card:hover{transform:translateY(-2px);border-color:#ffffff1f}.eb-stat-icon{font-size:1.3rem;margin-bottom:.5rem}.eb-stat-value{font-size:1.75rem;font-weight:800;line-height:1;margin-bottom:.35rem}.eb-stat-label{font-size:.75rem;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;font-weight:500}.eb-punch-card{position:relative}.eb-punch-card.pending{border-color:#ef44444d;background:#ef44440d}.eb-punch-card.active{border-color:#10b9814d;background:#10b9810d}.eb-punch-card.done{border-color:#64748b33}.eb-punch-status{font-size:.8rem;color:#e2e8f0;margin-bottom:.5rem;font-weight:500}.eb-punch-btn{background:#3b82f6;color:#fff;border:none;padding:.35rem .75rem;border-radius:6px;font-size:.75rem;font-weight:600;cursor:pointer;transition:background .2s}.eb-punch-btn:hover{background:#2563eb}.eb-punch-btn:disabled{opacity:.5;cursor:not-allowed}@media(max-width:1200px){.eb-stats-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.eb-stats-grid{grid-template-columns:repeat(2,1fr)}.eb-container{padding:0 1rem}.eb-greeting h2{font-size:1.25rem}}.layout{display:flex;height:100vh;overflow:hidden;position:relative;background:var(--color-bg-main)}.sidebar{width:280px;display:flex;flex-direction:column;flex-shrink:0;z-index:50;transition:transform var(--transition-smooth);background:#0f172a;color:#f8fafc;border-right:1px solid #1e293b}.sidebar-header{padding:2rem 1.5rem;margin-bottom:1rem}.sidebar-header h2{font-size:1.5rem;letter-spacing:-.05em;color:#fff}.sidebar-nav{flex:1;padding:0 1rem;display:flex;flex-direction:column;gap:.5rem;overflow-y:auto;overflow-x:hidden}.nav-item{display:flex;align-items:center;padding:.875rem 1.25rem;border-radius:var(--radius-md);color:#94a3b8;font-weight:500;transition:all var(--transition-fast);border:1px solid transparent}.nav-item:hover{background-color:#ffffff0d;color:#fff;transform:translate(4px)}.nav-item.active{background:var(--color-primary);color:#fff;box-shadow:0 4px 12px #0ea5e94d;border:1px solid rgba(255,255,255,.1)}.nav-icon{margin-right:1rem;font-size:1.2rem}.sidebar-footer{padding:1.5rem;border-top:1px solid #1e293b;background:#0003}.user-profile{display:flex;align-items:center;gap:1rem}.avatar{width:44px;height:44px;border-radius:50%;background:var(--color-primary);display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;box-shadow:0 2px 10px #0003}.user-info{display:flex;flex-direction:column}.user-name{font-size:.9rem;font-weight:600;color:#fff}.user-role{font-size:.75rem;color:#94a3b8}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative;z-index:10;background:var(--color-bg-main)}.topbar{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;z-index:40;background:var(--color-bg-card);border-bottom:1px solid var(--border-color);box-sizing:border-box;gap:1rem;overflow:visible}.page-title{font-size:1.35rem;font-weight:700;margin:0;color:var(--color-text-main);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;letter-spacing:-.01em}.topbar-actions{display:flex;align-items:center;gap:.65rem;flex-shrink:0;height:100%}.top-bar-right-actions{display:flex;align-items:center;gap:.65rem;height:100%}.global-search{position:relative;width:240px;max-width:260px;min-width:140px;flex-shrink:1;display:flex;align-items:center}.global-search .input-group{margin:0!important;gap:0!important;width:100%}.global-search .input-field{height:38px;padding:0 1rem;font-size:.85rem;border-radius:9999px;background:var(--color-bg-main);border:1px solid var(--border-color);box-shadow:none;box-sizing:border-box;width:100%;transition:all var(--transition-fast)}.global-search .input-field:focus{background:var(--color-bg-card);border-color:var(--color-primary);box-shadow:0 0 0 3px #0ea5e926}.topbar-actions .btn{height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;box-sizing:border-box;border:1px solid var(--border-color);background:var(--color-bg-card);color:var(--color-text-main);transition:all var(--transition-fast)}.topbar-actions .btn:hover{background:var(--color-bg-highlight);border-color:var(--color-text-muted)}.theme-toggle-btn,.notification-btn{width:38px;padding:0!important;flex-shrink:0}.notification-wrapper{position:relative;display:inline-flex;align-items:center;height:38px;flex-shrink:0}.notification-badge{position:absolute;top:-5px;right:-5px;background-color:var(--color-error, #ef4444);color:#fff;border-radius:999px;padding:1px 5px;font-size:.65rem;font-weight:700;min-width:18px;height:18px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #0003;cursor:pointer;border:2px solid var(--color-bg-card);line-height:1;z-index:2}.logout-btn{height:38px;padding:0 .85rem;border-radius:10px;display:inline-flex;align-items:center;gap:.4rem;flex-shrink:0}.logout-icon{flex-shrink:0}.logout-text{font-size:.85rem;font-weight:600;white-space:nowrap}@media(max-width:992px)and (min-width:769px){.topbar{padding:0 1rem;gap:.5rem}.global-search{width:170px}.topbar-actions,.top-bar-right-actions{gap:.5rem}}.content-area{flex:1;overflow-y:auto;overflow-x:hidden;padding:2rem}.content-area:has(.page-fullbleed){padding:0;overflow:hidden}.content-container{max-width:1200px;margin:0 auto}.content-area:has(.page-wide) .content-container,.content-container:has(.page-wide){max-width:1600px;width:100%}.mobile-menu-btn{display:none;font-size:1.5rem;color:var(--color-text-main);margin-right:1rem;padding:.5rem}.mobile-overlay{display:none;position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:45;opacity:0;transition:opacity var(--transition-fast)}.mobile-overlay.open{opacity:1;pointer-events:auto}@media(max-width:768px){.topbar{position:sticky;top:0;height:56px;padding:0 .75rem;gap:.4rem;background:#fffffff2;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid rgba(226,232,240,.8);z-index:40}[data-theme=dark] .topbar{background:#0f172af2;border-bottom:1px solid rgba(51,65,85,.7)}.mobile-menu-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;background:#0000000a;margin-right:.25rem;font-size:1.25rem;flex-shrink:0;border:none;cursor:pointer}[data-theme=dark] .mobile-menu-btn{background:#ffffff14}.mobile-overlay{display:block;pointer-events:none}.sidebar{position:absolute;height:100vh;transform:translate(-100%);box-shadow:5px 0 20px #00000080}.sidebar.open{transform:translate(0)}.page-title{font-size:1.05rem;font-weight:700;letter-spacing:-.02em;flex:1;min-width:0}.topbar-actions,.top-bar-right-actions{gap:.35rem}.global-search{display:none!important}.topbar-actions .btn{height:36px;border-radius:8px}.theme-toggle-btn,.notification-btn{width:36px;height:36px}.notification-wrapper{height:36px}.logout-btn{width:36px;height:36px;padding:0!important;justify-content:center}.logout-text{display:none}.content-area{padding:.85rem}.content-area:has(.page-fullbleed){padding:0}.notification-dropdown{position:fixed!important;top:60px!important;left:10px!important;right:10px!important;width:auto!important;max-height:75vh!important;box-shadow:0 10px 30px #00000040!important;border-radius:16px!important;z-index:99999!important}}.announcement-banner-stack{display:flex;flex-direction:column;gap:0}.announcement-banner{display:flex;align-items:center;gap:.75rem;padding:.65rem 1.25rem;font-size:.9rem;font-weight:500;animation:slideDown .3s ease;border-left:4px solid transparent;position:relative}@keyframes slideDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.announcement-banner--info{background:#eff6ff;border-left-color:#3b82f6;color:#1e40af}.announcement-banner--warning{background:#fffbeb;border-left-color:#f59e0b;color:#92400e}.announcement-banner--success{background:#f0fdf4;border-left-color:#22c55e;color:#166534}.announcement-banner--urgent{background:#fef2f2;border-left-color:#ef4444;color:#991b1b}[data-theme=dark] .announcement-banner--info{background:#3b82f626;color:#93c5fd}[data-theme=dark] .announcement-banner--warning{background:#f59e0b26;color:#fcd34d}[data-theme=dark] .announcement-banner--success{background:#22c55e26;color:#86efac}[data-theme=dark] .announcement-banner--urgent{background:#ef444426;color:#fca5a5}.announcement-icon{font-size:1rem;flex-shrink:0}.announcement-text{flex:1}.announcement-meta{font-size:.8rem;opacity:.7;flex-shrink:0}.announcement-dismiss{background:none;border:none;cursor:pointer;font-size:.9rem;opacity:.6;padding:0 .25rem;color:inherit;flex-shrink:0;transition:opacity .2s;line-height:1}.announcement-dismiss:hover{opacity:1}@media(max-width:768px){.announcement-banner{padding:.5rem .75rem;font-size:.82rem;gap:.5rem;border-radius:8px;margin-bottom:.5rem;flex-wrap:wrap}.announcement-meta{font-size:.72rem;width:100%;margin-left:1.5rem}}.modal-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--card-bg);border-radius:12px;box-shadow:0 20px 60px #0000004d;max-width:500px;width:90%;max-height:90vh;overflow-y:auto;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{padding:1.5rem;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between}.modal-header h2{margin:0;font-size:1.5rem;color:var(--text-primary)}.modal-close{background:none;border:none;font-size:2rem;color:var(--text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.modal-close:hover{background:var(--hover-bg);color:var(--text-primary)}.modal-body{padding:1.5rem}.modal-description{color:var(--text-secondary);margin-bottom:1.5rem;line-height:1.6}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}.error-message{background:#fff3cd;color:#856404;padding:.75rem 1rem;border-radius:6px;border-left:4px solid #ffc107;margin-top:1rem;font-size:.9rem}.success-message-container{text-align:center;padding:2rem 1rem}.success-icon{width:64px;height:64px;background:linear-gradient(135deg,#28a745,#20c997);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;margin:0 auto 1rem;animation:scaleIn .4s ease-out}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.success-message{color:var(--text-primary);font-size:1.1rem;margin-bottom:.5rem;font-weight:500}.success-note{color:var(--text-secondary);font-size:.9rem;margin-top:.5rem}body.dark-mode .error-message{background:#ffc10726;color:#ffc107;border-left-color:#ffc107}.login-page{min-height:100vh;width:100vw;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#f1f5f9,#cbd5e1);position:relative;padding:2rem 0;overflow-y:auto;--color-text-main: #0f172a;--color-text-muted: #64748b;--color-text-light: #94a3b8;--border-color: #e2e8f0}.login-page:before{content:"";position:absolute;width:600px;height:600px;background:#e0f2fe;filter:blur(80px);border-radius:50%;opacity:.6;top:-100px;right:-100px;z-index:0}.login-page:after{content:"";position:absolute;width:500px;height:500px;background:#f0fdf4;filter:blur(80px);border-radius:50%;opacity:.6;bottom:-100px;left:-100px;z-index:0}.login-container{position:relative;z-index:1;width:100%;max-width:420px;padding:2rem;display:flex;flex-direction:column;gap:1.5rem}.login-header{text-align:center}.login-header h1{font-size:2rem;margin-bottom:.5rem;font-weight:800;letter-spacing:-.02em;color:var(--color-text-main)}.login-header p{color:var(--color-text-muted);font-size:1rem}.text-primary{color:var(--color-primary)}.login-card{background:#fff!important;border:1px solid var(--border-color);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.login-card .input-field{background-color:#f8fafc!important;color:#1e293b!important;border-color:#cbd5e1!important}.login-card .input-field:focus{border-color:var(--color-primary)!important;background-color:#fff!important;box-shadow:0 0 0 3px #2563eb1a!important}.login-error{background:#fef2f2;border:1px solid #fee2e2;color:#b91c1c;padding:.75rem;border-radius:var(--radius-sm);font-size:.875rem;text-align:center;margin-top:1rem}.login-footer{text-align:center;margin-top:1.5rem;font-size:.8rem;color:var(--color-text-light)}.hint{margin-top:.5rem;font-family:monospace;opacity:.8}.forgot-password-link{background:none;border:none;color:var(--color-primary);font-size:.875rem;cursor:pointer;padding:0;text-decoration:none;transition:all .2s}.forgot-password-link:hover{text-decoration:underline;opacity:.8}.login-footer{padding-bottom:3rem}.spinner-sm{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;vertical-align:middle;margin-right:6px}@keyframes spin{to{transform:rotate(360deg)}}
