.login-page[data-v-c2dfe8b9]{position:relative;min-height:70vh;display:flex;align-items:center;justify-content:center;overflow:hidden}.login-bg-glow[data-v-c2dfe8b9]{position:absolute;border-radius:999px;filter:blur(90px);pointer-events:none;z-index:0}.glow-a[data-v-c2dfe8b9]{width:380px;height:380px;background:#3898ec26;top:-100px;right:-80px}.glow-b[data-v-c2dfe8b9]{width:280px;height:280px;background:#0e2c461f;bottom:-60px;left:-60px}.login-card[data-v-c2dfe8b9]{position:relative;z-index:1;width:100%;max-width:420px;background:#fff;border:1px solid #d4e8f5;border-radius:20px;padding:2.2rem 2rem;box-shadow:0 16px 48px #0e2c461a}.back-link[data-v-c2dfe8b9]{display:inline-block;font-size:.8rem;color:#4a7fa0;text-decoration:none;margin-bottom:1.5rem;font-weight:600;transition:color .15s}.back-link[data-v-c2dfe8b9]:hover{color:#1f5d8f}.login-brand[data-v-c2dfe8b9]{display:flex;align-items:center;gap:.5rem;margin-bottom:1.2rem}.brand-dot[data-v-c2dfe8b9]{display:inline-block;width:10px;height:10px;border-radius:999px;background:#1f5d8f}.brand-name[data-v-c2dfe8b9]{font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#1f5d8f}h1[data-v-c2dfe8b9]{margin:0 0 .4rem;font-size:1.65rem;font-weight:800;color:#0d2d4a;line-height:1.2}.login-sub[data-v-c2dfe8b9]{margin:0 0 1.8rem;font-size:.88rem;color:#4a6a80;line-height:1.5}.login-form[data-v-c2dfe8b9]{display:grid;gap:1rem}.field[data-v-c2dfe8b9]{display:grid;gap:.35rem}.field label[data-v-c2dfe8b9]{font-size:.8rem;font-weight:700;color:#2e4e62;letter-spacing:.02em}.field input[data-v-c2dfe8b9]{padding:.65rem .85rem;border:1px solid #c5dff0;border-radius:10px;font-size:.9rem;color:#0d2d4a;background:#f6fbff;outline:none;transition:border-color .15s,box-shadow .15s;width:100%;box-sizing:border-box}.field input[data-v-c2dfe8b9]:focus{border-color:#3a8fd1;box-shadow:0 0 0 3px #3a8fd126;background:#fff}.field input[data-v-c2dfe8b9]::placeholder{color:#a0bdd0}.btn-submit[data-v-c2dfe8b9]{margin-top:.4rem;width:100%;padding:.72rem;background:#1a4a72;color:#fff;border:none;border-radius:10px;font-size:.95rem;font-weight:700;cursor:pointer;transition:background .15s,opacity .15s;display:flex;align-items:center;justify-content:center;gap:.5rem}.btn-submit[data-v-c2dfe8b9]:hover:not(:disabled){background:#1f5d8f}.btn-submit[data-v-c2dfe8b9]:disabled{opacity:.55;cursor:not-allowed}.spinner[data-v-c2dfe8b9]{width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin-c2dfe8b9 .7s linear infinite;display:inline-block}@keyframes spin-c2dfe8b9{to{transform:rotate(360deg)}}.msg-error[data-v-c2dfe8b9]{margin:.9rem 0 0;padding:.65rem .85rem;background:#fff3f3;border:1px solid #f5c0c0;border-radius:8px;color:#b12a2a;font-size:.85rem;line-height:1.4}.divider[data-v-c2dfe8b9]{margin:1.2rem 0 .8rem;text-align:center;font-size:.78rem;color:#849daf;position:relative}.divider[data-v-c2dfe8b9]:before,.divider[data-v-c2dfe8b9]:after{content:"";position:absolute;top:50%;width:38%;height:1px;background:#d4e8f5}.divider[data-v-c2dfe8b9]:before{left:0}.divider[data-v-c2dfe8b9]:after{right:0}.btn-oauth2[data-v-c2dfe8b9]{width:100%;padding:.72rem;background:#f0f8ff;color:#1a4a72;border:1px solid #c5dff0;border-radius:10px;font-size:.95rem;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s}.btn-oauth2[data-v-c2dfe8b9]:hover{background:#e0f0ff;border-color:#3a8fd1}.login-note[data-v-c2dfe8b9]{margin:1.2rem 0 0;text-align:center;font-size:.75rem;color:#849daf}@media(max-width:480px){.login-card[data-v-c2dfe8b9]{padding:1.8rem 1.2rem;border-radius:16px}}.landing[data-v-aa194a64]{min-height:65vh;display:flex;align-items:center}.hero[data-v-aa194a64]{width:100%;box-sizing:border-box;padding:clamp(2rem,6vw,4rem);border-radius:20px;background:linear-gradient(150deg,#002040,#0060a0);color:#fff}.badge[data-v-aa194a64]{display:inline-block;margin-bottom:1.2rem;color:#ffd08a;font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}h1[data-v-aa194a64]{margin:0 0 1rem;color:#fff;font-size:clamp(2rem,5vw,3.2rem)}p[data-v-aa194a64]{max-width:56ch;margin:0 0 2rem;color:#d5ebfa;line-height:1.65}.button[data-v-aa194a64]{display:inline-block;padding:.75rem 1.2rem;border-radius:10px;background:#fff;color:#0060a0;font-weight:700;text-decoration:none}.callback-page[data-v-6cd15300]{min-height:70vh;display:flex;align-items:center;justify-content:center}.callback-card[data-v-6cd15300]{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2.5rem 2rem;background:#fff;border:1px solid #d4e8f5;border-radius:20px;box-shadow:0 16px 48px #0e2c461a;max-width:380px;width:100%;text-align:center}.callback-card.error[data-v-6cd15300]{border-color:#f5c0c0}.callback-title[data-v-6cd15300]{font-size:1.1rem;font-weight:700;color:#b12a2a;margin:0}.callback-msg[data-v-6cd15300]{font-size:.9rem;color:#4a6a80;margin:0}.back-link[data-v-6cd15300]{font-size:.85rem;color:#4a7fa0;text-decoration:none;font-weight:600}.back-link[data-v-6cd15300]:hover{color:#1f5d8f}.spinner[data-v-6cd15300]{width:32px;height:32px;border:3px solid rgba(26,74,114,.2);border-top-color:#1a4a72;border-radius:50%;animation:spin-6cd15300 .7s linear infinite;display:inline-block}@keyframes spin-6cd15300{to{transform:rotate(360deg)}}:root{font-family:IBM Plex Sans,Segoe UI,sans-serif;color:#102a43;background:#f3f7fb}*{box-sizing:border-box}body{margin:0}.layout{min-height:100vh}.topbar{background:linear-gradient(90deg,#002040,#0060a0);color:#fff;padding:.65rem 1.2rem;display:flex;align-items:center;gap:1.5rem}.topbar-brand{display:flex;align-items:center;gap:.55rem;text-decoration:none;flex-shrink:0}.topbar-logo{height:36px;width:auto;border-radius:6px;object-fit:contain}.topbar-name{font-size:1rem;font-weight:700;color:#fff;letter-spacing:.01em}nav{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-left:auto}nav a{color:#fff;text-decoration:none;opacity:.85}nav a.router-link-active{opacity:1;font-weight:700}main{max-width:900px;margin:0 auto;padding:1rem}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.5rem;margin-bottom:1rem}input,select,button{padding:.6rem;border-radius:8px;border:1px solid #c7d7e6}button{background:#2f86c7;color:#fff;cursor:pointer}.error{color:#b00020}.hint{opacity:.8}li button{margin-left:.75rem}.nav-logout{background:transparent;border:1px solid #d9efff;color:#fff;padding:.35rem .7rem}
