@font-face{font-family:Tanker;font-style:normal;font-weight:400 900;font-display:swap;src:url(/fonts/tanker-regular.woff2) format("woff2")}@font-face{font-family:Excon;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/excon-variable.woff2) format("woff2")}:root{--bg-top: #f6f9f4;--bg-mid: #ecf4e7;--bg-bot: #e2eddb;--band: #e8f1e1;--page-bg: radial-gradient(1200px 600px at 85% 0%, rgba(255, 255, 255, .65), transparent 70%), linear-gradient(160deg, var(--bg-top) 0%, var(--bg-mid) 55%, var(--bg-bot) 100%);--surface: #ffffff;--surface-sunk: #f4f8f1;--surface-border: rgba(20, 60, 30, .06);--line-soft: rgba(20, 60, 30, .1);--line-strong: rgba(20, 60, 30, .2);--shadow-nav: 0 12px 40px rgba(28, 74, 38, .12);--ink: #13251a;--ink-soft: #3c4a41;--text-muted: #5f6f64;--text-faint: #8a978d;--brand: #3f9e46;--brand-strong: #2f8a39;--brand-bright: #5cbf5f;--btn-grad: linear-gradient(135deg, #5cbd60 0%, #3f9e46 58%, #338a3c 100%);--btn-grad-hover: linear-gradient(135deg, #54b358 0%, #379040 58%, #2c7e34 100%);--btn-shadow: 0 8px 20px rgba(47, 143, 58, .28);--btn-shadow-hover: 0 10px 28px rgba(47, 143, 58, .4);--on-brand: #ffffff;--badge-border: #7cc47f;--badge-bg: #f2f8f0;--badge-text: #3f9e46;--brand-green: var(--brand);--brand-green-hi: var(--brand);--brand-green-text: var(--brand-strong);--brand-green-press: var(--brand-strong);--brand-green-soft: var(--badge-bg);--brand-green-glow: var(--btn-shadow);--bg-0: var(--surface);--bg-1: var(--surface);--bg-2: var(--surface);--bg-3: var(--surface-sunk);--bg-4: #eaf1e4;--line-1: var(--surface-border);--line-2: var(--line-soft);--line-3: var(--line-strong);--fg-1: var(--ink);--fg-2: var(--text-muted);--fg-3: var(--text-faint);--fg-4: #a7b2a9;--success: #2f8a39;--warning: #b8791b;--danger: #c8443f;--info: #3a72c4;--r-xs: 4px;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 22px;--r-pill: 999px;--shadow-sm: 0 1px 2px rgba(28, 74, 38, .08);--shadow-md: 0 12px 32px rgba(28, 74, 38, .12);--shadow-lg: 0 24px 60px rgba(28, 74, 38, .16);--shadow-glow: 0 0 0 1px var(--brand), 0 8px 24px rgba(47, 143, 58, .22);--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--s-10: 40px;--s-12: 48px;--s-16: 64px;--s-20: 80px;--font-display: "Tanker", "Excon", system-ui, sans-serif;--font-ui: "Excon", system-ui, -apple-system, sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, monospace;--t-h1: 700 32px/1.15 var(--font-display);--t-h2: 700 24px/1.2 var(--font-display);--t-h3: 600 18px/1.3 var(--font-display);--t-body: 400 15px/1.5 var(--font-ui);--t-body-sm: 400 13px/1.5 var(--font-ui);--t-label: 600 13px/1.2 var(--font-ui);--t-overline: 600 11px/1.2 var(--font-ui);--tracking-tight: -.02em;--tracking-wide: .08em;--ease-out: cubic-bezier(.2,.7,.2,1);--ease-in: cubic-bezier(.7,0,.8,.3);--dur-fast: .12s;--dur-base: .18s;--dur-slow: .28s}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;background:var(--page-bg);background-attachment:fixed;color:var(--ink);font:var(--t-body);font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;min-height:100%}a{color:var(--brand-strong);text-decoration:none}a:hover{color:var(--brand)}h1{font:var(--t-h1);letter-spacing:var(--tracking-tight);margin:0}h2{font:var(--t-h2);letter-spacing:var(--tracking-tight);margin:0}h3{font:var(--t-h3);margin:0}p{font:var(--t-body);color:var(--fg-2);margin:0}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.page{min-height:100vh;display:flex;flex-direction:column}.site-header{padding:20px 24px;border-bottom:1px solid var(--line-1)}.site-header a{display:inline-flex;align-items:center}.logo-mark{height:48px;width:auto;display:block}.site-footer{margin-top:auto;padding:24px;border-top:1px solid var(--line-1);display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;font:var(--t-body-sm);color:var(--fg-3)}.site-footer a{color:var(--fg-3)}.site-footer a:hover{color:var(--fg-2)}.site-footer .footer-copy{margin-right:auto}.auth-main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:64px 20px}.auth-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--r-xl);padding:36px;box-shadow:var(--shadow-md)}.auth-card>h1{font:400 28px/1.2 var(--font-display);letter-spacing:var(--tracking-tight)}.auth-sub{font:var(--t-body);color:var(--fg-2);margin:8px 0 24px}.auth-card b{color:var(--fg-1)}.form-field{display:block;margin-bottom:16px}.form-label{display:block;font:var(--t-overline);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--fg-3);margin-bottom:8px}.form-input{width:100%;background:var(--surface-sunk);border:1px solid var(--line-soft);border-radius:var(--r-sm);color:var(--ink);font:var(--t-body);padding:12px 14px}.form-input::placeholder{color:var(--fg-4)}.form-input:focus-visible{outline:none;border-color:var(--brand);box-shadow:0 0 0 2px var(--brand)}.form-input[aria-invalid=true]{border-color:var(--danger)}.form-error,.form-success,.form-hint{font:var(--t-body-sm);margin-top:8px;display:none}.form-error.is-shown,.form-success.is-shown,.form-hint.is-shown{display:block}.form-error{color:var(--danger)}.form-success{color:var(--success)}.form-hint{color:var(--fg-3)}.btn-primary{display:block;width:100%;border:0;cursor:pointer;font:600 15px/1 var(--font-ui);color:var(--on-brand);background:var(--btn-grad);padding:15px 20px;border-radius:var(--r-pill);box-shadow:var(--btn-shadow);text-align:center;transition:box-shadow .16s ease,transform .16s ease,background .16s ease}.btn-primary:hover{background:var(--btn-grad-hover);box-shadow:var(--btn-shadow-hover);transform:translateY(-1px)}.btn-primary:disabled,.btn-primary[aria-busy=true]{opacity:.55;pointer-events:none}.btn-secondary{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;border:1px solid var(--line-strong);cursor:pointer;font:600 14px/1 var(--font-ui);color:var(--ink);background:var(--surface);padding:13px 20px;border-radius:var(--r-pill)}.btn-secondary:hover{background:var(--surface-sunk);border-color:var(--brand)}.btn-secondary:disabled,.btn-secondary[aria-busy=true]{opacity:.55;pointer-events:none}.btn-ghost{background:none;border:0;cursor:pointer;font:var(--t-body-sm);color:var(--brand-green-text);padding:4px}.btn-ghost:hover{color:var(--brand-green-hi)}.stack-gap>*+*{margin-top:12px}.auth-divider{display:flex;align-items:center;gap:10px;margin:20px 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--line-2)}.auth-divider span{font:var(--t-body-sm);color:var(--fg-3)}.auth-actions{display:flex;justify-content:space-between;align-items:center;margin-top:16px}.captcha-holder{width:100%;max-width:420px;margin:12px 0 4px}.g-icon{width:18px;height:18px;display:block}.portal-main{flex:1;width:100%;max-width:720px;margin:0 auto;padding:48px 20px 96px}.portal-header{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:28px}.portal-section{background:var(--surface);border:1px solid var(--surface-border);border-radius:var(--r-xl);padding:24px;margin-bottom:20px;box-shadow:var(--shadow-sm)}.portal-section>h2{font:var(--t-h3);margin-bottom:16px}.portal-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 0;border-top:1px solid var(--line-1)}.portal-row:first-of-type{border-top:0}.portal-key{color:var(--fg-3);font:var(--t-body-sm)}.portal-val{color:var(--fg-1);font:var(--t-body);text-align:right}.portal-badge{font:var(--t-body-sm);padding:2px 10px;border-radius:var(--r-pill);white-space:nowrap}.portal-badge--ok{background:var(--badge-bg);color:var(--brand-strong)}.portal-badge--warn{background:#b8791b1f;color:var(--warning)}.portal-badge--muted{background:var(--bg-4);color:var(--fg-3)}.portal-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}.portal-actions .btn-primary,.portal-actions .btn-secondary{width:auto;flex:0 0 auto}.portal-inline-form{margin-top:16px}.portal-note{font:var(--t-body-sm);color:var(--fg-3)}@media(max-width:520px){.auth-card,.portal-section{padding:24px 20px}.portal-row{flex-direction:column;align-items:flex-start;gap:4px}.portal-val{text-align:left}.portal-header{flex-direction:column;gap:8px}}@media(prefers-reduced-motion:reduce){.btn-primary{transition:none}.btn-primary:hover{transform:none}}
