@font-face{font-family:Poppins;font-weight:400;font-display:swap;src:url(/fonts/Poppins-Regular.ttf)format("truetype")}@font-face{font-family:Poppins;font-weight:500;font-display:swap;src:url(/fonts/Poppins-Medium.ttf)format("truetype")}@font-face{font-family:Poppins;font-weight:600;font-display:swap;src:url(/fonts/Poppins-SemiBold.ttf)format("truetype")}@font-face{font-family:Poppins;font-weight:700;font-display:swap;src:url(/fonts/Poppins-Bold.ttf)format("truetype")}:root{--primary:#1fc6c1;--primary-pressed:#18aaa6;--primary-soft:#1fc6c11f;--primary-subtle:#1fc6c114;--primary-deep:#0b7f86;--primary-gradient:linear-gradient(135deg, #1fc6c1, #0e9fb5);--canvas:#fff;--surface:#fff;--surface-muted:#f1f5f7;--border:#e1e7eb;--border-strong:#d2d9de;--text:#202124;--text-secondary:#3c4043;--text-muted:#5f6368;--success:#137333;--success-surface:#e6f4ea;--warning:#795500;--warning-surface:#fef7e0;--error:#a50e0e;--error-surface:#fce8e6;--radius-control:12px;--radius-compact-card:16px;--radius-card:20px;--radius-large-card:24px;--radius-pill:999px;--control-height:48px;--page-inset:16px;--section-gap:24px;--shadow-card:0 4px 14px #20212412;--shadow-elevated:0 10px 24px #2021241f;--motion-fast:.15s;--motion-medium:.22s;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--primary-soft:#32d5cf33;--canvas:#121516;--surface:#1b2021;--surface-muted:#171b1c;--border:#303839;--border-strong:#566162;--text:#f4f7f7;--text-secondary:#b6c0c0;--text-muted:#b6c0c0;--success:#8bcb9b;--success-surface:#8bcb9b24;--warning:#f2a413;--warning-surface:#f2a41324;--error:#ff8a80;--error-surface:#ff8a8024;--shadow-card:0 4px 14px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{min-width:320px}body{background:var(--canvas);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:Poppins,system-ui,sans-serif;font-size:14px;line-height:1.4}a{color:var(--primary-pressed);font-weight:600;text-decoration:none}a:hover{text-decoration:underline}:root[data-theme=dark] a{color:var(--primary)}h1,h2,h3,p{margin:0}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}.auth-shell{min-height:100dvh;padding:32px var(--page-inset);background:radial-gradient(900px 400px at 50% -10%, var(--primary-subtle), transparent 70%), var(--canvas);flex-direction:column;align-items:center;display:flex}.auth-brand{justify-content:center;align-items:center;margin-bottom:28px;display:flex}.auth-brand img{width:auto;height:34px}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-large-card);width:100%;max-width:440px;box-shadow:var(--shadow-card);padding:28px 24px}.auth-title{font-size:24px;font-weight:700}.auth-sub{color:var(--text-muted);margin-top:6px;line-height:1.5}.auth-foot{text-align:center;color:var(--text-muted);margin-top:20px}.auth-legal{color:var(--text-muted);text-align:center;margin-top:24px;font-size:11px}.stack{flex-direction:column;gap:16px;margin-top:22px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field>label{font-size:14px;font-weight:500}.input-wrap{position:relative}.input{width:100%;height:var(--control-height);font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-control);transition:border-color var(--motion-fast) ease-out, box-shadow var(--motion-fast) ease-out;padding:12px 16px}.input::placeholder{color:var(--text-muted)}.input:hover{border-color:var(--border-strong)}.input:focus{border:1.5px solid var(--primary);outline:none;padding:11.5px 15.5px}.input[aria-invalid=true]{border-color:var(--error)}.input.has-toggle{padding-right:48px}.input:disabled{background:var(--surface-muted);color:var(--text-muted)}.toggle-vis{cursor:pointer;width:40px;height:40px;color:var(--text-muted);border-radius:var(--radius-control);background:0 0;border:0;place-items:center;display:grid;position:absolute;top:4px;right:4px}.field-error{color:var(--error);font-size:12px}.field-hint{color:var(--text-muted);font-size:12px}.btn{min-height:var(--control-height);width:100%;font:inherit;cursor:pointer;border-radius:var(--radius-pill);transition:background var(--motion-fast) ease-out, opacity var(--motion-fast) ease-out;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 24px;font-weight:600;display:inline-flex}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-pressed);text-decoration:none}.btn-outline{color:var(--primary-pressed);background:0 0;border-color:#1fc6c180}.btn-outline:hover:not(:disabled){background:var(--primary-subtle);text-decoration:none}.btn-danger{background:var(--error);color:#fff}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-inline{width:auto}.spinner{border:2px solid #ffffff80;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}.btn-outline .spinner{border-color:var(--primary-soft);border-top-color:var(--primary-pressed)}@keyframes spin{to{transform:rotate(360deg)}}.banner{border-radius:var(--radius-compact-card);gap:10px;padding:12px 14px;font-size:13px;line-height:1.5;display:flex}.banner-error{background:var(--error-surface);color:var(--error)}.banner-success{background:var(--success-surface);color:var(--success)}.banner-info{background:var(--primary-subtle);color:var(--primary-deep)}:root[data-theme=dark] .banner-info{color:var(--primary)}.state-icon{background:var(--primary-soft);width:56px;height:56px;color:var(--primary-deep);border-radius:50%;place-items:center;margin-bottom:16px;display:grid}.state-icon.error{background:var(--error-surface);color:var(--error)}.strength{align-items:center;gap:10px;display:flex}.strength-bar{background:var(--surface-muted);border-radius:3px;flex:1;height:6px;overflow:hidden}.strength-bar>span{height:100%;transition:width var(--motion-medium) ease-out;border-radius:3px;display:block}.strength-label{text-align:right;min-width:48px;font-size:12px;font-weight:600}.portal{flex-direction:column;min-height:100dvh;display:flex}.topbar{height:64px;padding:0 var(--page-inset);background:var(--canvas);border-bottom:1px solid var(--border);z-index:10;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.topbar img{width:auto;height:30px}.topbar-user{align-items:center;gap:12px;display:flex}.avatar{background:var(--primary-gradient);color:#fff;border-radius:50%;place-items:center;width:36px;height:36px;font-size:14px;font-weight:700;display:grid}.portal-body{width:100%;max-width:1040px;padding:0 var(--page-inset) 40px;gap:var(--section-gap);flex:1;grid-template-columns:1fr;margin:0 auto;display:grid}.nav{gap:8px;padding:16px 0 0;display:flex;overflow-x:auto}.nav a{white-space:nowrap;border-radius:var(--radius-pill);border:1px solid var(--border);color:var(--text-secondary);padding:8px 16px;font-size:13px;font-weight:600}.nav a:hover{background:var(--surface-muted);text-decoration:none}.nav a[aria-current=page]{background:var(--primary);border-color:var(--primary);color:#fff}.content{gap:var(--section-gap);flex-direction:column;min-width:0;display:flex}.page-title{font-size:24px;font-weight:700}.page-sub{color:var(--text-muted);margin-top:4px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:20px}.card h2{font-size:16px;font-weight:600}.card .stack{margin-top:16px}.card.danger{border-color:var(--error)}.kv{grid-template-columns:1fr;gap:14px;margin-top:16px;display:grid}.kv dt{color:var(--text-muted);font-size:12px;font-weight:500}.kv dd{overflow-wrap:anywhere;margin:2px 0 0;font-weight:500}.badge{border-radius:var(--radius-pill);padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.badge-ok{background:var(--success-surface);color:var(--success)}.badge-warn{background:var(--warning-surface);color:var(--warning)}.mono{font-family:ui-monospace,Consolas,monospace;font-size:12px}@media (min-width:720px){.auth-card{padding:36px}.kv{grid-template-columns:1fr 1fr}.portal-body{grid-template-columns:220px 1fr}.nav{flex-direction:column;padding-top:32px;overflow:visible}.nav a{border-radius:var(--radius-control);border-color:#0000}.content{padding-top:32px}.page-title{font-size:28px}}.brand{color:var(--text);align-items:center;gap:10px;font-size:20px;display:inline-flex}.brand-mark{background:var(--primary-gradient);border-radius:8px;width:26px;height:26px}.brand-text strong{font-weight:700}.brand-text{font-weight:500}
