.auth-shell{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:24px 16px;position:relative;overflow:hidden;background:linear-gradient(135deg,#16307f,#1e3c94)}.auth-bg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(circle at 15% 20%,rgba(35,72,196,.28),transparent 50%),radial-gradient(circle at 85% 80%,rgba(156,192,234,.14),transparent 55%)}.auth-card{position:relative;width:100%;max-width:440px;background:#fff;border-radius:20px;box-shadow:0 24px 64px #0f161e47,0 4px 16px #0f161e1f;overflow:hidden;display:flex;flex-direction:column}.auth-content{padding:40px 32px 8px;text-align:center}.auth-title{margin:0 0 8px;color:#16307f;font-size:24px;font-weight:700;letter-spacing:-.02em}.auth-subtitle{margin:0 auto 28px;color:#66727d;font-size:13.5px;line-height:1.5;max-width:340px}.auth-form{display:flex;flex-direction:column;gap:18px;text-align:left}.auth-form .field{display:flex;flex-direction:column;gap:7px}.auth-form .field label{font-size:12.5px;font-weight:600;color:#24303a;letter-spacing:.005em}.auth-form .field input{height:46px;padding:0 14px;border:1px solid #E5E8EC;border-radius:12px;font-size:14px;color:#24303a;background:#fff;transition:border-color .15s,box-shadow .15s;font-family:inherit;width:100%;box-sizing:border-box}.auth-form .field input::placeholder{color:#b0b8bf;font-weight:400}.auth-form .field input:focus{outline:none;border-color:#2348c4;box-shadow:0 0 0 4px #2348c424}.password-field{position:relative}.password-field input{padding-right:44px}.password-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:36px;height:36px;display:grid;place-items:center;background:transparent;border:none;border-radius:8px;color:#8a95a0;cursor:pointer;transition:background .15s,color .15s;padding:0;font-family:inherit}.password-toggle:hover{background:#f1f3f6;color:#16307f}.password-toggle:focus-visible{outline:2px solid #2348C4;outline-offset:1px}.auth-error{background:#f8e4e4;color:#a04848;border:1px solid #F0CFCF;border-radius:10px;padding:11px 14px;font-size:13px;line-height:1.45;text-align:center}.auth-success{background:#e7f2ec;color:#2d6b4d;border:1px solid #C7DDD0;border-radius:10px;padding:14px 16px;font-size:13.5px;line-height:1.5;text-align:center}.auth-success p{margin:0 0 6px}.auth-success p:last-child{margin-bottom:0}.auth-submit{margin-top:6px;height:48px;font-weight:600;font-size:14px;border-radius:12px;width:100%;cursor:pointer;letter-spacing:.005em;transition:background .15s,opacity .15s,transform .05s}.auth-submit:hover:not(:disabled){background:#1e3c94}.auth-submit:active:not(:disabled){transform:translateY(1px)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-foot{padding:18px 32px 28px;display:flex;justify-content:center;border-top:1px solid #F1F3F6;margin-top:12px}.auth-foot .subtle-link{background:none;border:none;color:#2348c4;font-size:13px;font-weight:600;cursor:pointer;padding:6px 10px;font-family:inherit;border-radius:6px;transition:color .15s,background .15s}.auth-foot .subtle-link:hover{color:#16307f;background:#2348c412}.auth-foot .subtle-link:focus-visible{outline:2px solid #2348C4;outline-offset:2px}.app-loading{min-height:100vh;min-height:100dvh;display:grid;place-items:center;background:#f7f8fa}.app-loading-spinner{width:32px;height:32px;border:3px solid #E5E8EC;border-top-color:#2348c4;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 480px){.auth-card{border-radius:16px}.auth-content{padding:32px 22px 4px}.auth-foot{padding:16px 22px 22px}.auth-title{font-size:21px}.auth-subtitle{font-size:13px;margin-bottom:22px}}@media (prefers-reduced-motion: reduce){.auth-submit,.password-toggle,.auth-form .field input,.auth-foot .subtle-link{transition:none}.app-loading-spinner{animation-duration:1.6s}}@keyframes sk-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none!important}.btn:disabled:hover{background:inherit}.empty-state{padding:48px 24px;text-align:center;color:var(--muted)}.empty-state-icon{width:56px;height:56px;border-radius:16px;background:var(--bg-2);color:var(--muted);display:inline-grid;place-items:center;margin-bottom:16px}.empty-state-title{font-size:14px;font-weight:700;color:var(--text);margin:0 0 6px}.empty-state-desc{font-size:12px;line-height:1.55;max-width:320px;margin:0 auto 16px}.field .error{color:var(--error);font-size:12px;margin-top:4px}.chip.active{background:var(--coffee-bg);color:var(--coffee);border-color:transparent}.toggle{width:36px;height:20px;border-radius:999px;background:var(--border);position:relative;cursor:pointer;transition:background .15s;border:none;padding:0;display:inline-block}.toggle:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .15s;box-shadow:0 1px 3px #0003}.toggle.on{background:var(--coffee)}.toggle.on:after{left:18px}.toggle:disabled{opacity:.5;cursor:not-allowed}.banner{padding:12px 14px;border-radius:10px;background:var(--bg-2);display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text)}.banner.info{background:var(--info-bg);border:1px solid #D0DBEB;color:#345078}.banner.warning{background:var(--warning-bg);border:1px solid #F0DCC2;color:#856630}.banner.success{background:var(--success-bg);border:1px solid #C7DDD0;color:#2d6b4d}.permission-hint{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);padding:6px 0}
