.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;position:relative;overflow:hidden;background:#f8fafb}.login-bg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.login-shape{position:absolute;border-radius:50%;opacity:.06}.login-shape-1{width:min(90vw,520px);height:min(90vw,520px);background:linear-gradient(135deg,var(--color-deep),var(--color-purple));top:-20%;left:-15%}.login-shape-2{width:min(60vw,320px);height:min(60vw,320px);background:linear-gradient(135deg,var(--color-teal),var(--color-mint));bottom:-10%;right:-10%}.login-shape-3{width:min(40vw,200px);height:min(40vw,200px);background:var(--color-teal);top:50%;right:5%}.login-card{width:100%;max-width:400px;background:#fff;border-radius:16px;padding:2.25rem 2rem;box-shadow:0 4px 24px #07173b14,0 1px 3px #0000000a;position:relative;z-index:1}.login-logo{height:56px;width:auto;display:block;margin:0 auto 1.75rem}.login-form{display:flex;flex-direction:column;gap:1.25rem}.login-label{display:flex;flex-direction:column;gap:.4rem}.login-label-text{font-size:.875rem;font-weight:600;color:var(--color-deep)}.login-input{width:100%;padding:.75rem 1rem;border:1px solid rgba(7,23,59,.15);border-radius:10px;font-size:1rem;font-family:inherit;color:var(--color-deep);background:#fff;box-sizing:border-box;transition:border-color .2s,box-shadow .2s}.login-input::placeholder{color:#07173b66}.login-input:hover:not(:disabled){border-color:#07173b40}.login-input:focus{outline:none;border-color:var(--color-teal);box-shadow:0 0 0 3px #4395ad26}.login-input:disabled{opacity:.65;cursor:not-allowed}.login-password-wrap{position:relative;display:flex;align-items:center;border:1px solid rgba(7,23,59,.15);border-radius:10px;background:#fff;transition:border-color .2s,box-shadow .2s}.login-password-wrap:hover:not(:focus-within){border-color:#07173b40}.login-password-wrap:focus-within{border-color:var(--color-teal);box-shadow:0 0 0 3px #4395ad26}.login-input-pw{flex:1;border:none;background:transparent;padding:.75rem 2.75rem .75rem 1rem}.login-input-pw:focus{box-shadow:none}.login-pw-toggle{position:absolute;right:.35rem;top:50%;transform:translateY(-50%);width:36px;height:36px;display:flex;align-items:center;justify-content:center;padding:0;border:none;background:none;color:#07173b80;cursor:pointer;border-radius:8px;transition:color .2s,background .2s}.login-pw-toggle:hover{color:var(--color-deep);background:#07173b0f}.login-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:.25rem}.login-btn{flex-shrink:0;padding:.875rem 1.5rem;font-size:1rem;font-weight:600;font-family:inherit;color:#fff;background:linear-gradient(135deg,var(--color-deep),var(--color-purple));border:none;border-radius:10px;cursor:pointer;transition:opacity .2s,transform .1s}.login-btn:hover:not(:disabled){opacity:.94}.login-btn:active:not(:disabled){transform:scale(.99)}.login-btn:disabled{opacity:.75;cursor:not-allowed}.login-forgot{font-size:.875rem;color:var(--color-teal);text-decoration:none;white-space:nowrap}.login-forgot:hover{text-decoration:underline}.login-error-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#07173b59;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.login-error-box{width:100%;max-width:340px;background:#fff;border-radius:14px;padding:1.5rem 1.75rem;box-shadow:0 12px 40px #00000026}.login-error-title{font-size:1.1rem;font-weight:600;color:var(--color-deep);margin:0 0 .75rem}.login-error-msg{margin:0 0 1.25rem;font-size:.9rem;color:var(--color-purple);line-height:1.5;padding:.75rem 1rem;background:#47287814;border-radius:8px}.login-error-btn{width:100%;padding:.7rem 1rem;font-size:.9375rem;font-weight:600;font-family:inherit;color:#fff;background:linear-gradient(135deg,var(--color-deep),var(--color-purple));border:none;border-radius:8px;cursor:pointer;transition:opacity .2s}.login-error-btn:hover{opacity:.94}.apps-page{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,#f0f4f8,#e8eef4)}.apps-bar{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1.25rem;background:#fff;border-bottom:1px solid rgba(7,23,59,.06);box-shadow:0 1px #07173b0a}.apps-logo{height:38px;width:auto}.apps-logout{padding:.5rem 1rem;font-size:.9rem;font-weight:600;font-family:inherit;color:var(--color-teal);background:transparent;border:1px solid rgba(67,149,173,.4);border-radius:8px;cursor:pointer;transition:background .2s,color .2s}.apps-logout:hover{background:#4395ad14;color:var(--color-deep)}.apps-main{flex:1;display:flex;flex-direction:column;align-items:stretch;padding:1.5rem 1.25rem 2rem;width:100%;max-width:1600px;margin:0 auto;box-sizing:border-box}.apps-section-title{font-size:1.125rem;font-weight:600;color:#07173bb3;letter-spacing:.02em;margin:0 0 1.25rem;text-transform:uppercase}.apps-banners{width:100%;margin-bottom:2rem;display:grid;grid-template-columns:1fr;gap:1.5rem}.apps-banner-wrap{width:100%;border-radius:16px;overflow:hidden;box-shadow:0 6px 24px #07173b1a,0 2px 8px #07173b0f;background:#fff;transition:box-shadow .25s ease;min-width:0}.apps-banner-wrap:hover{box-shadow:0 12px 40px #07173b1f,0 4px 12px #07173b14}.apps-banner-img{width:100%;height:auto;display:block;object-fit:cover;object-position:center;min-height:200px;max-height:380px;vertical-align:middle}@media (min-width: 768px){.apps-main{padding:2rem 2.5rem 2.5rem}.apps-section-title{font-size:1.25rem;margin-bottom:1.5rem}.apps-banners{grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-bottom:2.5rem}.apps-banner-img{max-height:320px}}.apps-welcome{background:#fff;border-radius:16px;padding:1.5rem 1.75rem;box-shadow:0 2px 12px #07173b0f;margin-bottom:1.5rem;text-align:center}.apps-title{font-size:1.5rem;font-weight:600;color:var(--color-deep);margin:0 0 .35rem}.apps-text{font-size:1rem;color:#07173ba6;margin:0}.apps-build{font-size:.7rem;color:#07173b4d;margin:0;text-align:center}:root{--color-deep: #07173b;--color-purple: #472878;--color-teal: #4395ad;--color-mint: #e8f4f6;--font-body: "Outfit", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box}body{margin:0;font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}
