.af-auth,.afp{--ink:#fbf7f2;--ink-2:#f3ece2;--panel:#fff;--panel-2:#f7f0e8;--line:#ede2d6;--line-soft:#f1e9de;--bone:#1a1410;--dim:#5a5048;--faint:#8c8177;--accent:#f2542d;--accent-dark:#c93f1d;--goldlt:#ffb25c;--accent-soft:rgba(242,84,45,.1);--glow:rgba(242,84,45,.14);--red:#b8402e;--red-soft:rgba(184,64,46,.1);--amber:#a9701f;--amber-soft:rgba(255,178,92,.2);--shadow:0 20px 44px -32px rgba(26,20,16,.14);--serif:"Inter",-apple-system,system-ui,sans-serif;--sans:"Inter",-apple-system,system-ui,sans-serif;--mono:"JetBrains Mono",ui-monospace,monospace;font-family:var(--sans);color:var(--bone);background:var(--ink);-webkit-font-smoothing:antialiased}.af-auth .af-auth-h1,.af-auth .af-auth-quote,.afp .afp-brand-name,.afp .afp-card-title,.afp .afp-empty .t,.afp .afp-h1,.afp .afp-h2,.afp .afp-stat-value,.afp .afp-topbar-title{font-weight:800;letter-spacing:-.02em}.af-auth *,.af-auth :after,.af-auth :before,.afp *,.afp :after,.afp :before{box-sizing:border-box}.af-auth a,.afp a{color:inherit;text-decoration:none}.af-auth svg,.afp svg{display:block}.af-auth h1,.afp h1,.afp h2,.afp h3,.afp p{margin:0}.afp{display:flex;min-height:100vh}.afp-sidebar{width:232px;flex-shrink:0;position:fixed;inset:0 auto 0 0;z-index:40;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:18px 14px 16px;overflow-y:auto}.afp-brand{display:flex;align-items:center;gap:9px;padding:4px 8px 16px;border-bottom:1px solid var(--line-soft);margin-bottom:12px}.afp-brand-glyph{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--accent);color:#fff;flex-shrink:0}.afp-brand-name{font-family:var(--serif);font-size:16.5px;font-weight:600;letter-spacing:-.01em}.afp-brand-sub{font-size:9px;letter-spacing:.14em}.afp-brand-sub,.afp-nav-label{font-family:var(--mono);text-transform:uppercase;color:var(--faint)}.afp-nav-label{font-size:9.5px;letter-spacing:.16em;padding:14px 10px 6px}.afp-nav-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;font-size:13.5px;font-weight:500;color:var(--dim);cursor:pointer;transition:background .15s ease,color .15s ease;border:1px solid transparent}.afp-nav-item svg{width:16px;height:16px;flex-shrink:0;color:var(--faint);transition:color .15s ease}.afp-nav-item:hover{background:var(--ink-2);color:var(--bone)}.afp-nav-item.active{background:var(--accent-soft);color:var(--accent-dark);border-color:color-mix(in srgb,var(--accent) 26%,var(--line));font-weight:600}.afp-nav-item.active svg{color:var(--accent)}.afp-nav-badge{margin-left:auto;font-family:var(--mono);font-size:10px;font-weight:600;background:var(--accent);color:#fff;border-radius:999px;padding:1px 7px}.afp-sidebar-foot{margin-top:auto;padding-top:14px;border-top:1px solid var(--line-soft)}.afp-main{flex:1 1;margin-left:232px;display:flex;flex-direction:column;min-width:0}.afp-topbar{position:-webkit-sticky;position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:14px;padding:13px 28px;background:hsla(36,50%,96%,.86);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.afp-topbar-title{font-family:var(--serif);font-size:17px;font-weight:600}.afp-topbar-right{margin-left:auto;gap:10px}.afp-topbar-right,.afp-user{display:flex;align-items:center}.afp-user{gap:8px;font-size:12.5px;color:var(--dim);padding:5px 10px;border:1px solid var(--line);border-radius:999px;background:var(--panel)}.afp-user b{font-weight:600;color:var(--bone)}.afp-content{padding:26px 28px 60px;width:100%;max-width:1240px;margin:0 auto}.afp-burger{display:none;width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--bone);place-items:center;cursor:pointer}.afp-scrim{display:none}.afp-demo-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--amber);background:var(--amber-soft);border:1px solid color-mix(in srgb,var(--goldlt) 40%,var(--line));border-radius:999px;padding:4px 10px;white-space:nowrap}.afp-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}.afp-h1{font-size:clamp(24px,3vw,30px);letter-spacing:-.01em}.afp-h1,.afp-h2{font-family:var(--serif);font-weight:600}.afp-h2{font-size:19px}.afp-sub{font-size:13.5px;color:var(--dim);margin-top:6px;line-height:1.55;max-width:640px}.afp-kicker{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}.afp-section{margin-top:28px}.afp-grid-2{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:16px;gap:16px}.afp-grid-3{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px}.afp-grid-4{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px}.afp-grid-main{display:grid;grid-template-columns:1.6fr 1fr;grid-gap:16px;gap:16px;align-items:start}.afp-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:var(--shadow)}.afp-card--flat{box-shadow:none}.afp-card--accent{border-color:color-mix(in srgb,var(--accent) 30%,var(--line));background:linear-gradient(180deg,var(--accent-soft),var(--panel) 55%)}.afp-card-head{justify-content:space-between;gap:12px;margin-bottom:14px}.afp-card-head,.afp-card-title{display:flex;align-items:center}.afp-card-title{font-family:var(--serif);font-size:16px;font-weight:600;gap:8px}.afp-card-title svg{width:16px;height:16px;color:var(--accent)}.afp-card-sub{font-size:12.5px;color:var(--faint);margin-top:3px}.afp-card-link{font-size:12.5px;font-weight:600;color:var(--accent-dark);display:inline-flex;align-items:center;gap:4px}.afp-card-link:hover{text-decoration:underline}.afp-stat{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:var(--shadow)}.afp-stat-label{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);display:flex;align-items:center;gap:7px}.afp-stat-label svg{width:13px;height:13px;color:var(--accent)}.afp-stat-value{font-family:var(--serif);font-size:30px;font-weight:600;letter-spacing:-.02em;margin-top:8px}.afp-stat-note{font-size:11.5px;color:var(--faint);margin-top:5px}.afp-stat-note b{color:var(--accent-dark);font-weight:600}.afp-badge{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.03em;border-radius:999px;padding:3px 9px;white-space:nowrap;border:1px solid transparent}.afp-badge .dot{width:5px;height:5px;border-radius:50%;background:currentColor}.afp-badge--green{color:var(--accent-dark);background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 32%,var(--line))}.afp-badge--amber{color:var(--amber);background:var(--amber-soft);border-color:color-mix(in srgb,var(--goldlt) 40%,var(--line))}.afp-badge--red{color:var(--red);background:var(--red-soft);border-color:color-mix(in srgb,var(--red) 30%,var(--line))}.afp-badge--gray{color:var(--faint);background:var(--ink-2);border-color:var(--line)}.afp-badge--outline{color:var(--dim);background:transparent;border-color:var(--line)}.afp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:10px 18px;font-family:var(--sans);font-size:13.5px;font-weight:600;cursor:pointer;border:1px solid var(--line);background:var(--panel);color:var(--bone);transition:transform .15s ease,filter .15s ease,background .15s ease;text-align:center}.afp-btn svg{width:15px;height:15px}.afp-btn:hover{transform:translateY(-1px)}.afp-btn:disabled{opacity:.55;cursor:default;transform:none}.afp-btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 12px 28px -12px rgba(14,158,110,.45)}.afp-btn-primary:hover{filter:brightness(1.06)}.afp-btn-ghost{background:transparent}.afp-btn-ghost:hover{background:var(--ink-2)}.afp-btn-danger{color:var(--red);border-color:color-mix(in srgb,var(--red) 35%,var(--line));background:transparent}.afp-btn-danger:hover{background:var(--red-soft)}.afp-btn-sm{padding:6px 13px;font-size:12.5px;border-radius:999px}.afp-btn-block{width:100%}.afp-field{display:flex;flex-direction:column;gap:6px}.afp-label{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}.afp-hint{font-size:11.5px;color:var(--faint);line-height:1.5}.afp-input,.afp-select,.afp-textarea{width:100%;background:#fff;border:1px solid var(--line);border-radius:11px;padding:10px 13px;font-family:var(--sans);font-size:13.5px;color:var(--bone);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.afp-textarea{min-height:96px;resize:vertical;line-height:1.55}.afp-input:focus,.afp-select:focus,.afp-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.afp-form-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:14px;gap:14px}.afp-form-grid .full{grid-column:1/-1}.afp-form-actions{display:flex;align-items:center;gap:10px;margin-top:18px;flex-wrap:wrap}.afp-switch{position:relative;display:inline-flex;width:38px;height:22px;flex-shrink:0;cursor:pointer}.afp-switch input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}.afp-switch .track{width:100%;border-radius:999px;background:var(--line);transition:background .18s ease}.afp-switch .thumb{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:left .18s ease}.afp-switch input:checked~.track{background:var(--accent)}.afp-switch input:checked~.thumb{left:19px}.afp-switch-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--line-soft)}.afp-switch-row:last-child{border-bottom:none}.afp-switch-row .t{font-size:13.5px;font-weight:500}.afp-switch-row .d{font-size:12px;color:var(--faint);margin-top:2px;line-height:1.5}.afp-chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;cursor:pointer;padding:6px 13px;font-size:12.5px;font-weight:500;color:var(--dim);background:var(--panel);border:1px solid var(--line);transition:all .15s ease}.afp-chip:hover{border-color:var(--accent);color:var(--accent-dark)}.afp-chip.active{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 40%,var(--line));color:var(--accent-dark);font-weight:600}.afp-chip-row{gap:8px}.afp-chip-row,.afp-toolbar{display:flex;flex-wrap:wrap}.afp-toolbar{align-items:center;gap:10px;margin-bottom:16px}.afp-search{position:relative;flex:1 1;min-width:200px;max-width:340px}.afp-search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--faint)}.afp-search .afp-input{padding-left:34px}.afp-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:16px;background:var(--panel);box-shadow:var(--shadow)}.afp-table{width:100%;border-collapse:collapse;font-size:13px;min-width:640px}.afp-table th{text-align:left;font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-weight:500;padding:12px 14px;border-bottom:1px solid var(--line);background:var(--panel-2);white-space:nowrap}.afp-table td{padding:12px 14px;border-bottom:1px solid var(--line-soft);color:var(--dim);vertical-align:middle}.afp-table tr:last-child td{border-bottom:none}.afp-table td b{color:var(--bone);font-weight:600}.afp-table .mono{font-family:var(--mono);font-size:11.5px}.afp-tr-click{cursor:pointer;transition:background .12s ease}.afp-tr-click:hover{background:var(--ink-2)}.afp-list{display:flex;flex-direction:column}.afp-list-row{display:flex;align-items:center;gap:12px;padding:11px 4px;border-bottom:1px solid var(--line-soft);font-size:13px}.afp-list-row:last-child{border-bottom:none}.afp-list-ic{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;flex-shrink:0;background:var(--accent-soft);color:var(--accent)}.afp-list-ic svg{width:15px;height:15px}.afp-list-ic--amber{background:var(--amber-soft);color:var(--amber)}.afp-list-ic--red{background:var(--red-soft);color:var(--red)}.afp-list-ic--gray{background:var(--ink-2);color:var(--faint)}.afp-list-main{flex:1 1;min-width:0}.afp-list-t{font-weight:600;color:var(--bone);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.afp-list-d{font-size:11.5px;color:var(--faint);margin-top:1px}.afp-list-end{flex-shrink:0;text-align:right}.afp-kv{display:flex;flex-direction:column}.afp-kv-row{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:13px}.afp-kv-row:last-child{border-bottom:none}.afp-kv-row .k{color:var(--faint)}.afp-kv-row .v{font-weight:600;color:var(--bone);text-align:right}.afp-kv-row .v.accent{color:var(--accent-dark)}.afp-empty{text-align:center;padding:44px 20px;color:var(--faint)}.afp-empty svg{width:30px;height:30px;margin:0 auto 12px;color:var(--line)}.afp-empty .t{font-family:var(--serif);font-size:16px;color:var(--dim);margin-bottom:5px}.afp-empty .d{max-width:340px;margin:0 auto}.afp-alert,.afp-empty .d{font-size:12.5px;line-height:1.55}.afp-alert{display:flex;gap:10px;align-items:flex-start;border-radius:14px;padding:13px 15px;border:1px solid var(--line);background:var(--panel-2);color:var(--dim)}.afp-alert svg{width:15px;height:15px;flex-shrink:0;margin-top:1px;color:var(--accent)}.afp-alert--warn{background:var(--amber-soft);border-color:color-mix(in srgb,var(--goldlt) 40%,var(--line))}.afp-alert--warn svg{color:var(--amber)}.afp-progress{height:7px;border-radius:999px;background:var(--ink-2);overflow:hidden}.afp-progress>span{display:block;height:100%;border-radius:999px;background:var(--accent);transition:width .4s ease}.afp-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:20px;overflow-x:auto}.afp-tab{padding:9px 15px;font-size:13px;font-weight:500;color:var(--faint);cursor:pointer;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;font-family:var(--sans);white-space:nowrap}.afp-tab:hover{color:var(--bone)}.afp-tab.active{color:var(--accent-dark);border-bottom-color:var(--accent);font-weight:600}.afp-output{background:var(--ink-2);border:1px solid var(--line);border-radius:14px;padding:15px 16px;font-size:13px;line-height:1.65;color:var(--bone);white-space:pre-wrap;min-height:120px}.afp-output.empty{color:var(--faint);font-style:italic;display:grid;place-items:center;text-align:center}.afp-score{display:inline-flex;gap:3px;align-items:center}.afp-score i{width:7px;height:7px;border-radius:50%;background:var(--line)}.afp-score i.on{background:var(--accent)}.afp-wizard{max-width:620px;margin:0 auto;padding:40px 20px 80px}.afp-wizard-steps{display:flex;align-items:center;gap:6px;margin-bottom:30px}.afp-wizard-steps .s{flex:1 1;height:5px;border-radius:999px;background:var(--line)}.afp-wizard-steps .s.done{background:var(--accent)}.af-auth{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.af-auth-form-col{display:flex;align-items:center;justify-content:center;padding:40px 24px}.af-auth-card{width:100%;max-width:400px}.af-auth-brand{display:inline-flex;align-items:center;gap:9px;margin-bottom:26px}.af-auth-h1{font-family:var(--serif);font-size:27px;font-weight:600;letter-spacing:-.01em;margin-bottom:6px}.af-auth-sub{font-size:13.5px;color:var(--dim);line-height:1.55;margin-bottom:24px}.af-auth-card .afp-field,.af-auth-err{margin-bottom:14px}.af-auth-err{color:var(--red);font-size:12.5px;line-height:1.5}.af-auth-ok{background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));color:var(--accent-dark);border-radius:12px;padding:13px 15px;font-size:13px;line-height:1.55;margin-bottom:14px}.af-auth-links{margin-top:18px;font-size:12.5px;color:var(--faint);display:flex;flex-direction:column;gap:8px}.af-auth-links a{color:var(--accent-dark);font-weight:600}.af-auth-links a:hover{text-decoration:underline}.af-auth-fine{font-size:11px;color:var(--faint);line-height:1.55;margin-top:16px}.afp-strength{display:flex;align-items:center;gap:10px;margin-top:7px}.afp-strength-bar{display:flex;gap:4px;flex:1 1}.afp-strength-seg{height:4px;flex:1 1;border-radius:999px;transition:background .18s ease}.afp-strength-label{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;white-space:nowrap}.af-auth-side{background:linear-gradient(160deg,var(--panel-2),var(--ink));border-left:1px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 40px;position:relative;overflow:hidden}.af-auth-side:before{content:"";position:absolute;inset:0;background:radial-gradient(560px 380px at 70% 10%,var(--glow),transparent 60%)}.af-auth-side-inner{position:relative;max-width:420px;width:100%}.af-auth-quote{font-family:var(--serif);font-size:21px;line-height:1.45;color:var(--bone);margin-bottom:22px}.af-auth-quote em{color:var(--accent-dark);font-style:normal}.af-auth-points{display:flex;flex-direction:column;gap:11px;margin-top:22px}.af-auth-point{display:flex;align-items:flex-start;gap:9px;font-size:13px;color:var(--dim);line-height:1.5}.af-auth-point svg{width:15px;height:15px;flex-shrink:0;margin-top:1px;color:var(--accent)}.af-auth-mini{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:15px 16px;box-shadow:0 30px 60px -36px rgba(120,90,50,.22);font-size:12.5px}.af-auth-mini .row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px dashed var(--line-soft)}.af-auth-mini .row:last-child{border-bottom:none}.af-auth-mini .k{color:var(--faint)}.af-auth-mini .v{font-weight:600;color:var(--bone)}@media (max-width:1080px){.afp-grid-4{grid-template-columns:repeat(2,1fr)}.afp-grid-main{grid-template-columns:1fr}}@media (max-width:900px){.afp-sidebar{transform:translateX(-100%);transition:transform .22s ease;box-shadow:0 0 60px rgba(0,0,0,.18)}.afp.nav-open .afp-sidebar{transform:translateX(0)}.afp.nav-open .afp-scrim{display:block;position:fixed;inset:0;z-index:35;background:rgba(22,19,15,.3)}.afp-main{margin-left:0}.afp-burger{display:grid}.afp-content{padding:20px 16px 60px}.afp-topbar{padding:11px 16px}.af-auth{grid-template-columns:1fr}.af-auth-side{display:none}.afp-form-grid,.afp-grid-2,.afp-grid-3{grid-template-columns:1fr}}@media (max-width:540px){.afp-grid-4{grid-template-columns:1fr}.afp-page-head{flex-direction:column;align-items:flex-start}}