.login-container{width:100%;height:100vh;background:linear-gradient(135deg,#eef8f9,#f9fcfd);display:flex;align-items:center;justify-content:center;padding:1rem;font-family:Inter,sans-serif}.login-card{width:100%;max-width:420px;background:#fff;padding:3rem 2.5rem;border-radius:22px;box-shadow:0 20px 35px #0000000f,0 2px 6px #0000000a;animation:fadeIn .25s ease;border:1px solid #f1f5f9}.login-title{font-size:2rem;font-weight:700;color:#0f2930;margin-bottom:.3rem;letter-spacing:-.02em}.login-subtitle{font-size:1rem;color:#6c7b86;margin-bottom:2.2rem}.login-form{display:flex;flex-direction:column;gap:1.2rem}.login-input{width:100%;padding:14px 16px;border-radius:14px;border:1px solid #c9d6da;font-size:1rem;outline:none;color:#0a3440;background:#fff;transition:all .2s ease}.login-input::placeholder{color:#9db2b8}.login-input:focus{border-color:#0ca6a6;box-shadow:0 0 0 3px #0ca6a626;background:#fcffff}.login-button{margin-top:.5rem;width:100%;padding:14px 16px;background:#0ca6a6;color:#fff;border:none;border-radius:14px;font-size:1.05rem;font-weight:600;cursor:pointer;transition:all .22s ease;box-shadow:0 4px 12px #0ca6a640}.login-button:hover{background:#089191;box-shadow:0 6px 16px #0ca6a647;transform:translateY(-1px)}.login-button:active{transform:translateY(0);box-shadow:0 2px 8px #0ca6a633}.login-error{margin-top:10px;color:#e64646;text-align:center;font-size:.9rem;animation:shake .25s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%{transform:translate(0)}25%{transform:translate(-4px)}50%{transform:translate(4px)}75%{transform:translate(-4px)}to{transform:translate(0)}}.login-label{font-size:.9rem;color:#334155;margin-bottom:4px;display:block;font-weight:500}.password-field,.password-wrapper{position:relative}.password-toggle{position:absolute;right:12px;top:12px;background:none;border:none;cursor:pointer;padding:2px;color:#6c7b86}.password-toggle:hover{color:#0ca6a6}.login-footer{margin-top:1.5rem;text-align:center;font-size:.9rem;color:#64748b}.login-footer a{color:#0ca6a6;font-weight:600;text-decoration:none}.login-footer a:hover{text-decoration:underline}.notfound-card{text-align:center}.notfound-code{font-size:5rem;font-weight:800;color:#0ca6a6;margin-bottom:.5rem;letter-spacing:-.04em}.login-footer span{color:#0ca6a6;font-weight:600;cursor:pointer}.login-footer span:hover{text-decoration:underline}*,*:before,*:after{box-sizing:border-box}html,body,#root{width:100%;min-height:100%;margin:0}.portal-card{box-sizing:border-box;width:100%}.portal-card .login-title{margin-top:0}.portal-card .login-subtitle{margin-top:.5rem}.portal-page{box-sizing:border-box;min-height:100vh;min-height:100svh;height:auto;overflow-x:hidden;overflow-y:auto;padding:3rem 1.5rem}.login-container{box-sizing:border-box;min-height:100vh;min-height:100svh;height:auto;overflow-x:hidden;padding:1rem}.portal-card .login-form{width:100%}.portal-card .login-form>div{width:100%}.portal-card .login-input,.portal-card .login-button{box-sizing:border-box;display:block;width:100%}.portal-content{width:min(100%,960px);margin:auto}.portal-header{margin-bottom:2rem;text-align:center}.portal-heading{margin:0;color:#0f2930;font-size:clamp(2rem,5vw,3rem);letter-spacing:-.03em}.portal-welcome{margin:.75rem 0 0;color:#6c7b86}.portal-app-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem}.portal-app-card{display:flex;min-height:150px;flex-direction:column;gap:.75rem;padding:1.5rem;border:1px solid #dce8ea;border-radius:18px;background:#fff;box-shadow:0 8px 22px #0f29300d;color:inherit;text-decoration:none;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}.portal-app-card:not(.is-disabled):hover{transform:translateY(-2px);border-color:#0ca6a6;box-shadow:0 12px 26px #0f29301a}.portal-app-card.is-disabled{cursor:not-allowed;opacity:.62}.portal-app-name{color:#0f2930;font-size:1.25rem;font-weight:700}.portal-app-description{color:#6c7b86;line-height:1.45}.portal-app-action{margin-top:auto;color:#078b8b;font-weight:600}.portal-checking{margin-bottom:0}.portal-retry-button{padding:.65rem;border:0;background:transparent;color:#078b8b;font:inherit;cursor:pointer}@media(max-width:520px){.portal-page{align-items:flex-start;padding:2rem 1rem}.login-card{padding:2rem 1.5rem}.portal-app-grid{grid-template-columns:1fr}}
