@font-face{font-family:Montserrat;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/montserrat-400-BLhwKU8k.woff2)format("woff2")}@font-face{font-family:Montserrat;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/montserrat-500-DRFEGfly.woff2)format("woff2")}@font-face{font-family:Montserrat;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/montserrat-600-UVxSCcoG.woff2)format("woff2")}@font-face{font-family:Montserrat;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/montserrat-700-BdjcYUrC.woff2)format("woff2")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}*{box-sizing:border-box}html,body{margin:0;padding:0}#root{min-height:100svh}a{color:inherit}button{font-family:inherit}:root{--brand-indigo:#5d5ded;--brand-red:#a50000;--brand-orange:#ff6700;--brand-green:#20c994;--brand-blue:#4db9f4;--brand-cyan:#1ac3ec;--brand-yellow:#fce762;--brand-teal:#7fd8be;--grad-ai:linear-gradient(135deg, #5d5ded 0%, #1ac3ec 100%);--ink:#1a1d29;--ink2:#6b7280;--ink3:#9aa1ad;--bg:#f5f6f8;--surface:#fff;--line:#e6e8ec;--line2:#eef0f3;--accent:#1273ae;--accent-soft:#e7f3fb;--accent-tua:#0e5883;--ok:#16915a;--ok-soft:#e8f5ee;--ok-tua:#12784a;--warn:#b9791a;--warn-soft:#fbf3e6;--warn-tua:#8a5a10;--bad:#cf3f3a;--bad-soft:#fcecec;--bad-tua:#bc352f;--info:#2563c9;--info-soft:#eaf1fc;--info-tua:#1e56ae;--r:16px;--r-sm:8px;--shadow:0 1px 2px #1018280a, 0 1px 3px #1018280f}body{background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:14px;line-height:1.5}.btn{border-radius:var(--r-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.7rem 1.1rem;font-size:.95rem;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,transform 50ms;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-ghost{color:var(--ink2);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--accent-soft);color:var(--accent)}.muted{color:var(--ink2)}.login-wrap{background:#fff;place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);width:100%;max-width:412px;padding:32px;font-family:Montserrat,Inter,ui-sans-serif,system-ui,sans-serif;box-shadow:0 12px 48px #1018281a}.login-card .lg{align-items:center;gap:12px;margin-bottom:24px;display:flex}.login-card .lg img{object-fit:contain;flex-shrink:0;width:44px;height:44px}.login-card .lg .nm{letter-spacing:-.01em;font-size:15px;font-weight:600;line-height:1.25}.login-card .lg .by{color:var(--ink3);margin-top:2px;font-size:11.5px;font-weight:500}.login-card h1{letter-spacing:-.02em;margin:0;font-size:22px;font-weight:700}.login-card p.sub{color:var(--ink2);margin:6px 0 24px;font-size:13.5px}.login-card .btn i,.pwd-toggle i{font-size:16px}@media (width<=900px){.login-card{padding:24px}.login-card .btn{min-height:44px}}.field{margin-bottom:14px}.field label{color:var(--ink2);margin-bottom:6px;font-size:12.5px;font-weight:600;display:block}.field input{border:1px solid var(--line);border-radius:var(--r-sm);width:100%;color:var(--ink);background:var(--surface);padding:9px 12px;font-family:inherit;font-size:13.5px;transition:border-color .15s,box-shadow .15s}.field input::placeholder{color:var(--ink3)}.field input:focus{border-color:var(--accent);outline:none}.field input:disabled{opacity:.6;cursor:not-allowed}.pwd-wrap{position:relative}.pwd-wrap input{padding-right:44px}.pwd-toggle{width:32px;height:32px;color:var(--ink3);cursor:pointer;background:0 0;border:none;border-radius:50%;place-items:center;display:grid;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.pwd-toggle:hover{color:var(--ink2);background:var(--line2)}.pwd-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.login-err{background:var(--bad-soft);color:var(--bad-tua);border:1px solid var(--bad);border-radius:var(--r-sm);margin-bottom:14px;padding:9px 12px;font-size:12.5px;font-weight:500}.login-card .btn.pri{border-radius:var(--r-sm);background:var(--accent);color:#fff;border-color:#0000;gap:7px;padding:9px 14px;font-family:inherit;font-size:13px;font-weight:600}.login-card .btn.pri:hover:not(:disabled){background:var(--accent-tua)}.hint{color:var(--ink3);margin-top:5px;font-size:11.5px}.logo{align-items:center;gap:.7rem;display:inline-flex}.brand-logo{object-fit:contain;flex:none;width:42px;height:42px}.logo-text{text-align:left;font-family:Montserrat,Inter,ui-sans-serif,system-ui,sans-serif;line-height:1.2}.logo-text strong{color:var(--ink);letter-spacing:-.01em;font-size:1.1rem;font-weight:600;display:block}.logo-text span{letter-spacing:0;color:var(--ink3);font-size:.78rem}.login-error{background:var(--bad-soft);border:1px solid var(--bad);color:var(--bad-tua);border-radius:var(--r-sm);align-items:center;gap:.5rem;margin-bottom:1rem;padding:.6rem .8rem;font-size:.85rem;display:flex}.portal{min-height:100svh}.topbar{background:var(--surface);border-bottom:1px solid var(--line);z-index:20;position:sticky;top:0}.topbar-inner{justify-content:space-between;align-items:center;max-width:1120px;margin:0 auto;padding:.85rem 1.5rem;display:flex}.user-menu{position:relative}.user-trigger{cursor:pointer;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:.6rem;padding:.35rem .6rem .35rem .4rem;display:inline-flex}.user-trigger:hover{background:var(--bg);border-color:var(--line)}.avatar{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);border-radius:50%;flex:none;place-items:center;display:grid}.user-name{text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:.9rem;font-weight:600;overflow:hidden}.dropdown{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);z-index:30;min-width:190px;padding:.35rem;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 48px #1018281a}.dropdown-item{border-radius:var(--r-sm);width:100%;color:var(--ink);cursor:pointer;background:0 0;border:none;align-items:center;gap:.6rem;padding:.6rem .7rem;font-size:.9rem;text-decoration:none;display:flex}.dropdown-item:hover{background:var(--bg)}.dropdown-item.danger{color:var(--bad)}.dropdown-sep{background:var(--line);height:1px;margin:.25rem 0}.content{max-width:1120px;margin:0 auto;padding:1.75rem 1.5rem 3rem}.section-title{color:var(--ink);align-items:center;gap:.55rem;margin:0 0 1rem;font-size:1.1rem;font-weight:700;display:flex}.section-title svg{color:var(--accent)}.profile-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);align-items:center;gap:1.25rem;padding:1.4rem 1.5rem;display:flex;position:relative;overflow:hidden}.profile-photo{border-radius:var(--r-sm);background:var(--accent-soft);width:72px;height:72px;color:var(--accent);flex:none;place-items:center;display:grid}.profile-body{min-width:0}.profile-name-row{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.3rem;display:flex}.profile-name{color:var(--ink);font-size:1.15rem;font-weight:700}.badge{letter-spacing:.08em;text-transform:uppercase;background:var(--accent);color:#fff;border-radius:999px;padding:.2rem .55rem;font-size:.65rem;font-weight:800}.profile-title{color:var(--ink2);margin-bottom:.7rem;font-size:.9rem}.profile-meta{color:var(--ink2);flex-wrap:wrap;gap:.5rem 1.4rem;font-size:.85rem;display:flex}.profile-meta span{align-items:center;gap:.4rem;display:inline-flex}.profile-meta svg{color:var(--ink3)}.profile-meta b{color:var(--ink);font-weight:600}.section{margin-top:2rem}.app-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.1rem;display:grid}.app-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);color:inherit;flex-direction:row;align-items:center;gap:.85rem;padding:1rem 1.1rem;text-decoration:none;transition:transform .12s,box-shadow .15s;display:flex;position:relative}.app-card:hover{transform:translateY(-3px)}.app-card-disabled{cursor:default;opacity:.6}.app-card-disabled:hover{transform:none}.app-logo{object-fit:contain;border-radius:50%;flex:none;width:44px;height:44px}.app-text{min-width:0}.app-name{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:700;overflow:hidden}.app-by{color:var(--ink2);margin-top:.1rem;font-size:.78rem;line-height:1.4}.profile-page{max-width:620px}.detail-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:1.75rem}.detail-card h2{margin:0 0 .4rem;font-size:1.35rem}.details{grid-template-columns:9rem 1fr;gap:.75rem 1rem;margin-top:1.25rem;display:grid}.details dt{color:var(--ink2);font-size:.9rem}.details dd{color:var(--ink);margin:0;font-weight:600}.profile-section-title{border-top:1px solid var(--line);text-transform:uppercase;letter-spacing:.04em;color:var(--ink2);margin:1.75rem 0 0;padding-top:1.25rem;font-size:.85rem;font-weight:700}.profile-section-title+.details{margin-top:.85rem}.state-center{min-height:60svh;color:var(--ink2);place-items:center;display:grid}.gate{min-height:100svh;color:var(--ink2);background:var(--surface);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:32px;display:flex}.gate p{font-size:13.5px}.gate-spin{color:var(--accent);animation:.9s linear infinite gate-rotate}@keyframes gate-rotate{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.gate-spin{animation-duration:2.4s}}@media (width<=560px){.profile-card{text-align:left;flex-direction:column;align-items:flex-start}.user-name{display:none}}
