@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@300;400;500;600;700;800&family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&display=swap";@font-face{font-family:Nasalization;src:url(/nasalization.woff2)format("woff2");font-display:swap}:root{--bg-main:#0b0c10;--bg-sidebar:#111219cc;--bg-panel:#161823a6;--bg-card:#1e213073;--bg-paper:#161822;--border-color:#ffffff0f;--border-color-active:#ffa6d266;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--text-paper:#fff;--accent-pink:#ffa6d2;--accent-purple:#f1ddcf;--glow-shadow:0 0 20px #ffa6d226;--glass-blur:blur(16px);--font-ui:"Outfit", "Inter", sans-serif;--font-fancy:"Playfair Display", serif}[data-theme=light]{--bg-main:#f5f4f0;--bg-sidebar:#f0ede6d9;--bg-panel:#fffc;--bg-card:#ffffffe6;--bg-paper:#fdfdfb;--border-color:#00000014;--border-color-active:#ffa6d273;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#64748b;--text-paper:#000;--accent-pink:#e07bb0;--accent-purple:#c9997e;--glow-shadow:0 4px 20px #ffa6d214}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-ui);background-color:var(--bg-main);color:var(--text-primary);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;transition:background-color .4s,color .4s;display:flex;position:relative;overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:-1;background:radial-gradient(circle,#ffa6d214,#f1ddcf05,#0000 60%);position:absolute;inset:0}.container{background:var(--bg-panel);width:100%;max-width:420px;-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border-color);text-align:center;z-index:10;border-radius:12px;padding:3rem 2.5rem;transition:all .3s;box-shadow:0 20px 50px #0003}.container:hover{border-color:var(--border-color-active);box-shadow:0 20px 50px #00000040, var(--glow-shadow)}.brand{margin-bottom:2.25rem}.logo-icon{width:48px;height:48px;color:var(--accent-pink);filter:drop-shadow(0 0 6px #ffa6d24d);margin-bottom:.75rem;animation:4s ease-in-out infinite float}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.title{font-family:"Nasalization", var(--font-ui);text-transform:uppercase;letter-spacing:.05em;color:var(--text-primary);margin-bottom:.25rem;font-size:2.75rem;font-weight:700}.subtitle{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.15em;opacity:.8;font-size:.85rem;font-weight:500}.form-group{text-align:left;margin-bottom:1.25rem}.form-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-secondary);margin-bottom:.5rem;font-size:.8rem;font-weight:600;display:block}.input-wrapper{position:relative}.input-icon{color:var(--text-muted);pointer-events:none;width:16px;height:16px;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.form-input{border:1px solid var(--border-color);width:100%;color:var(--text-primary);font-family:var(--font-ui);background:#00000026;border-radius:8px;outline:none;padding:12px 14px 12px 42px;font-size:.95rem;transition:all .25s}[data-theme=light] .form-input{background:#ffffff73}.form-input:focus{border-color:var(--border-color-active);box-shadow:var(--glow-shadow);background:#00000040}[data-theme=light] .form-input:focus{background:#ffffffb3}.btn{background:var(--bg-card);width:100%;color:var(--text-primary);border:1px solid var(--border-color);font-family:var(--font-ui);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:.95rem;font-weight:500;transition:all .25s;display:flex}.btn:hover{border-color:var(--border-color-active);box-shadow:var(--glow-shadow);color:var(--accent-pink);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.alert{text-align:left;border-radius:8px;align-items:center;gap:10px;margin-bottom:1.5rem;padding:10px 14px;font-size:.85rem;display:flex}.alert-danger{color:var(--accent-pink);background:#f43f5e1a;border:1px solid #f43f5e33}.theme-toggle{background:var(--bg-panel);border:1px solid var(--border-color);cursor:pointer;width:38px;height:38px;color:var(--text-primary);z-index:100;border-radius:8px;justify-content:center;align-items:center;transition:all .2s;display:flex;position:absolute;top:24px;right:24px;box-shadow:0 4px 15px #0000001a}.theme-toggle:hover{border-color:var(--border-color-active);color:var(--accent-pink);box-shadow:var(--glow-shadow)}.portal-container{z-index:10;flex-direction:column;gap:2.5rem;width:100%;max-width:900px;padding:3rem 2rem;display:flex}.portal-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.portal-title-area{text-align:left}.portal-welcome{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em;font-size:.9rem;font-weight:500}.portal-title{font-family:"Nasalization", var(--font-ui);text-transform:uppercase;letter-spacing:.05em;color:var(--text-primary);margin-top:.25rem;font-size:2.85rem;font-weight:700}.user-badge{background:var(--bg-panel);border:1px solid var(--border-color);border-radius:8px;align-items:center;gap:14px;padding:10px 20px;display:flex;box-shadow:0 10px 30px #0000001a}.avatar{background:var(--bg-card);border:1px solid var(--border-color-active);width:36px;height:36px;color:var(--accent-pink);border-radius:6px;justify-content:center;align-items:center;font-size:1rem;font-weight:700;display:flex}.username{text-transform:capitalize;font-size:.95rem;font-weight:600}.btn-logout{color:var(--text-muted);cursor:pointer;font-family:var(--font-ui);background:0 0;border:none;align-items:center;gap:4px;margin-top:4px;padding:0;font-size:.8rem;font-weight:500;transition:color .2s;display:flex}.btn-logout:hover{color:var(--accent-pink)}.bento-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem;display:grid}@media (width<=768px){.bento-grid{grid-template-columns:1fr}}.bento-card{background:var(--bg-panel);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border-color);text-align:left;color:inherit;border-radius:12px;flex-direction:column;justify-content:space-between;min-height:240px;padding:2.25rem;text-decoration:none;transition:all .3s;display:flex;box-shadow:0 10px 30px #0000001a}.bento-card:hover{border-color:var(--border-color-active);box-shadow:0 15px 40px #00000026, var(--glow-shadow);transform:translateY(-3px)}.card-icon-wrapper{background:var(--bg-card);border:1px solid var(--border-color);width:44px;height:44px;color:var(--accent-pink);border-radius:8px;justify-content:center;align-items:center;margin-bottom:1.5rem;transition:all .25s;display:flex}.bento-card:hover .card-icon-wrapper{border-color:var(--border-color-active);color:var(--accent-pink);box-shadow:0 0 10px #ffa6d21a}.card-title{font-family:var(--font-fancy);color:var(--text-primary);margin-bottom:.5rem;font-size:1.85rem;font-style:italic;font-weight:600}.card-desc{color:var(--text-secondary);margin-bottom:1.5rem;font-size:.9rem;line-height:1.5}.card-footer{color:var(--text-secondary);align-items:center;gap:8px;font-size:.85rem;font-weight:600;transition:color .2s;display:flex}.bento-card:hover .card-footer{color:var(--accent-pink)}.card-arrow{transition:transform .2s}.bento-card:hover .card-arrow{transform:translate(4px)}.spinner{border:2px solid #ffffff4d;border-top-color:var(--text-primary);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.global-spinner{border:2px solid var(--border-color);border-top-color:var(--accent-pink);width:36px;height:36px}
