/* POAF Risk — design tokens */
:root{
  --paper:#f6f4ef; --surface:#ffffff; --surface-2:#fbfaf7; --ink:#15181c; --ink-2:#3b4148;
  --muted:#6b7279; --line:#e6e2da; --line-strong:#d6d1c6;
  --accent:#9f1d35; --accent-ink:#ffffff; --accent-soft:#f6e7ea; --accent-line:#e9c3cb;
  --ok:#1f7a55; --ok-soft:#e5f3ec; --wait:#9a6512; --wait-soft:#f8efdd;
  --hero:#14171b; --hero-ink:#f3f1ec; --hero-muted:#a5abb2; --hero-line:#2a2f35;
  --radius:14px; --radius-sm:10px;
  --shadow:0 1px 2px rgba(20,24,28,.04),0 8px 24px -12px rgba(20,24,28,.12);
  --focus:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent);
  --font:ui-sans-serif,-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Inter,Roboto,"Helvetica Neue",Arial,sans-serif;
  --display:ui-sans-serif,-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",Inter,Roboto,sans-serif;
}
@media (prefers-color-scheme:dark){:root{
  --paper:#0f1113; --surface:#171a1d; --surface-2:#1b1f23; --ink:#eceae5; --ink-2:#c6c9cc;
  --muted:#8d949b; --line:#262a2f; --line-strong:#33383e;
  --accent:#e0566f; --accent-ink:#16090c; --accent-soft:#2a1519; --accent-line:#4b232b;
  --ok:#5cc596; --ok-soft:#14261e; --wait:#e0ad5a; --wait-soft:#2a2214;
  --hero:#0b0c0e; --hero-line:#22262b;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 12px 32px -16px rgba(0,0,0,.6);
}}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;background:var(--paper);color:var(--ink);font:15px/1.55 var(--font);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3{font-family:var(--display);letter-spacing:-.02em;margin:0;color:var(--ink)}
p{margin:0}
a{color:inherit}
strong{font-weight:600}
.muted{color:var(--muted)} .small{font-size:13px}
.eyebrow{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}
.lede{color:var(--ink-2);font-size:16px;max-width:60ch}
.fine{font-size:12.5px;color:var(--muted);margin-top:18px;line-height:1.5}
.container{width:100%;max-width:1120px;margin:0 auto;padding:0 24px}

/* brand */
.brand{display:inline-flex;align-items:center;gap:10px;font-weight:650;font-size:15px;letter-spacing:-.01em;text-decoration:none;color:var(--ink)}
.mark-bg{fill:var(--accent)} .mark-line{stroke:var(--accent-ink)}
.brand-inverse{color:var(--hero-ink)}

/* buttons */
.btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 20px;
  border-radius:var(--radius-sm);border:1px solid transparent;font:600 14.5px/1 var(--font);cursor:pointer;text-decoration:none;
  transition:background-color .15s,border-color .15s,color .15s,transform .05s}
.btn:active{transform:translateY(1px)}
.btn:focus-visible{outline:none;box-shadow:var(--focus)}
.btn-primary{background:var(--accent);color:var(--accent-ink)}
.btn-primary:hover{background:color-mix(in srgb,var(--accent) 88%,#000)}
.btn-ghost{background:transparent;color:var(--ink-2);border-color:var(--line-strong)}
.btn-ghost:hover{background:var(--surface-2);color:var(--ink)}
.btn-sm{height:34px;padding:0 12px;font-size:13px}
.btn-block{width:100%}

/* form controls */
.field{display:flex;flex-direction:column;gap:7px;min-width:0}
.field label{font-size:13.5px;font-weight:550;color:var(--ink-2)}
input,select{width:100%;height:46px;padding:0 14px;font:15px var(--font);color:var(--ink);background:var(--surface);
  border:1px solid var(--line-strong);border-radius:var(--radius-sm);transition:border-color .15s,box-shadow .15s}
input::placeholder{color:color-mix(in srgb,var(--muted) 70%,transparent)}
input:hover,select:hover{border-color:color-mix(in srgb,var(--ink) 30%,var(--line-strong))}
input:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus)}
select{appearance:none;padding-right:40px;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%236b7279' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 15px center}
.input-unit{position:relative;display:flex;align-items:center}
.input-unit input{padding-right:64px;font-variant-numeric:tabular-nums}
.unit{position:absolute;right:14px;font-size:13px;color:var(--muted);pointer-events:none}
.help{font-size:12.5px;color:var(--muted)}
.form-stack{display:flex;flex-direction:column;gap:18px;margin-top:26px}

/* switch */
.switch-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid var(--line);
  border-radius:var(--radius-sm);background:var(--surface-2);cursor:pointer;transition:border-color .15s}
.switch-row:hover{border-color:var(--line-strong)}
.switch-text{display:flex;flex-direction:column;font-size:14.5px;font-weight:500;color:var(--ink)}
.switch-text small{font-size:12.5px;font-weight:400;color:var(--muted)}
.switch{appearance:none;flex:none;width:42px;height:24px;padding:0;margin:0;border:0;border-radius:999px;background:var(--line-strong);
  position:relative;cursor:pointer;transition:background-color .2s}
.switch::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;
  box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .2s cubic-bezier(.3,.7,.4,1)}
.switch:checked{background:var(--accent)}
.switch:checked::after{transform:translateX(18px)}
.switch:focus-visible{outline:none;box-shadow:var(--focus)}

/* notices & chips */
.notice{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--radius-sm);font-size:14px;margin-top:20px}
.notice svg{flex:none;margin-top:1px}
.notice ul{margin:0;padding-left:16px}
.notice-error{background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--accent)}
.notice-error ul,.notice-error span{color:var(--ink)}
.chip{display:inline-flex;align-items:center;gap:7px;height:28px;padding:0 11px;border-radius:999px;font-size:12.5px;font-weight:550;white-space:nowrap}
.chip .dot{width:7px;height:7px;border-radius:50%;background:currentColor}
.chip-ok{background:var(--ok-soft);color:var(--ok)}
.chip-wait{background:var(--wait-soft);color:var(--wait)}

/* ---------- login ---------- */
.auth-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);min-height:100vh}
.auth-hero{background:var(--hero);color:var(--hero-ink);padding:40px 56px;display:flex;flex-direction:column;justify-content:space-between;gap:48px;
  position:relative;overflow:hidden}
.auth-hero::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(var(--hero-line) 1px,transparent 1px),linear-gradient(90deg,var(--hero-line) 1px,transparent 1px);
  background-size:28px 28px;mask-image:radial-gradient(ellipse at 30% 60%,#000 20%,transparent 75%)}
.auth-hero>*{position:relative}
.hero-copy h1{color:var(--hero-ink);font-size:clamp(30px,3.4vw,46px);line-height:1.08;letter-spacing:-.03em;max-width:15ch;margin-bottom:18px}
.hero-copy .eyebrow{color:#ef8095}
.hero-copy .lede{color:var(--hero-muted);font-size:17px;max-width:44ch}
.trace{margin:0}
.trace svg{width:100%;height:120px;display:block;overflow:visible}
.trace path{fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1400;stroke-dashoffset:1400;
  animation:draw 2.6s cubic-bezier(.5,0,.2,1) forwards}
.trace-sinus{stroke:#7c858e}
.trace-af{stroke:#ef5b77;animation-delay:1.1s!important}
.trace figcaption{display:flex;justify-content:space-between;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--hero-muted);
  border-top:1px solid var(--hero-line);padding-top:10px;margin-top:6px}
.trace figcaption span:last-child{color:#ef8095}
@keyframes draw{to{stroke-dashoffset:0}}
.hero-foot{font-size:12.5px;color:var(--hero-muted)}
.auth-main{display:flex;align-items:center;justify-content:center;padding:48px 24px}
.auth-card{width:100%;max-width:380px}
.auth-card h2{font-size:28px;margin-bottom:8px}
.only-mobile{display:none;margin-bottom:36px}

/* ---------- app ---------- */
.topbar{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--paper) 82%,transparent);backdrop-filter:saturate(1.4) blur(12px);
  -webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--line)}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;height:64px;gap:16px}
.topbar-right{display:flex;align-items:center;gap:14px}
.user{display:flex;align-items:center;gap:10px;margin:0;padding-left:14px;border-left:1px solid var(--line)}
.avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--paper);font-size:13px;font-weight:650}
.user-name{font-size:14px;font-weight:550;color:var(--ink-2)}
.page{padding-top:48px;padding-bottom:40px}
.page-head{margin-bottom:32px}
.page-head h1{font-size:clamp(28px,3vw,38px);line-height:1.1;letter-spacing:-.03em;margin-bottom:10px}

.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.card-head h2{font-size:18px}

/* empty state */
.empty{padding:48px;display:flex;flex-direction:column;align-items:flex-start}
.empty-icon{width:72px;height:72px;border-radius:18px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);margin-bottom:22px}
.empty h2{font-size:22px;margin-bottom:8px}
.empty>p{max-width:62ch}
.steps{list-style:none;margin:32px 0 0;padding:28px 0 0;border-top:1px solid var(--line);width:100%;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.steps li{display:flex;gap:14px}
.steps strong{display:block;font-size:14.5px;margin-bottom:3px}
.steps span:not(.step-n){font-size:13.5px;color:var(--muted)}
.step-n{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line-strong);
  font-size:13px;font-weight:600;color:var(--ink-2);font-variant-numeric:tabular-nums}

/* calculator */
.calc{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:24px;align-items:start}
.form-card{padding:28px}
.group{border:0;margin:28px 0 0;padding:0;min-width:0}
.group legend{padding:0;margin-bottom:14px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.fields .switch-row{grid-column:span 1}
.form-actions{display:flex;gap:10px;margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}

.result-card{padding:28px;position:sticky;top:88px}
.result-empty{text-align:center;padding:28px 8px}
.result-empty h2{font-size:17px;margin-bottom:6px}
.ring{width:132px;height:132px;margin:0 auto 22px;border-radius:50%;
  background:conic-gradient(var(--line) 0 100%);-webkit-mask:radial-gradient(circle,transparent 54px,#000 55px);mask:radial-gradient(circle,transparent 54px,#000 55px);
  position:relative;opacity:.9}
.figure{display:flex;align-items:baseline;gap:4px;margin:2px 0 22px;font-family:var(--display);font-variant-numeric:tabular-nums;color:var(--ink)}
.figure-num{font-size:72px;font-weight:650;letter-spacing:-.045em;line-height:1}
.figure-unit{font-size:28px;font-weight:600;color:var(--muted)}
.scale-track{position:relative;height:8px;border-radius:999px;background:var(--line)}
.scale-fill{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 55%,transparent),var(--accent));
  animation:grow .7s cubic-bezier(.3,.7,.3,1)}
.scale-pin{position:absolute;top:50%;width:18px;height:18px;margin-left:-9px;margin-top:-9px;border-radius:50%;background:var(--surface);
  border:3px solid var(--accent);box-shadow:0 1px 4px rgba(0,0,0,.18)}
.scale-ticks{display:flex;justify-content:space-between;margin-top:10px;font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
@keyframes grow{from{width:0}}
.freq{margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}
.freq p{font-size:14.5px;color:var(--ink-2);margin-bottom:14px}
.freq strong{color:var(--ink)}
.dots{display:grid;grid-template-columns:repeat(20,1fr);gap:5px}
.dots span{aspect-ratio:1;border-radius:50%;background:var(--line)}
.dots span.on{background:var(--accent)}

.site-foot{display:flex;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;padding-top:24px;padding-bottom:40px;
  border-top:1px solid var(--line);font-size:12.5px;color:var(--muted)}
.app .site-foot{margin-top:24px}

/* responsive */
@media (max-width:960px){
  .auth-grid{grid-template-columns:1fr}
  .auth-hero{display:none}
  .only-mobile{display:inline-flex}
  .calc{grid-template-columns:1fr}
  .result-card{position:static}
}
@media (max-width:640px){
  .container{padding:0 16px}
  .user-name,.topbar .chip{display:none}
  .user{border-left:0;padding-left:0}
  .page{padding-top:28px}
  .empty,.form-card,.result-card{padding:22px}
  .steps{grid-template-columns:1fr}
  .fields{grid-template-columns:1fr}
  .figure-num{font-size:60px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.trace path{stroke-dashoffset:0}}
.w0{width:0%}.l0{left:0%}.w1{width:1%}.l1{left:1%}.w2{width:2%}.l2{left:2%}.w3{width:3%}.l3{left:3%}.w4{width:4%}.l4{left:4%}.w5{width:5%}.l5{left:5%}.w6{width:6%}.l6{left:6%}.w7{width:7%}.l7{left:7%}.w8{width:8%}.l8{left:8%}.w9{width:9%}.l9{left:9%}.w10{width:10%}.l10{left:10%}.w11{width:11%}.l11{left:11%}.w12{width:12%}.l12{left:12%}.w13{width:13%}.l13{left:13%}.w14{width:14%}.l14{left:14%}.w15{width:15%}.l15{left:15%}.w16{width:16%}.l16{left:16%}.w17{width:17%}.l17{left:17%}.w18{width:18%}.l18{left:18%}.w19{width:19%}.l19{left:19%}.w20{width:20%}.l20{left:20%}.w21{width:21%}.l21{left:21%}.w22{width:22%}.l22{left:22%}.w23{width:23%}.l23{left:23%}.w24{width:24%}.l24{left:24%}.w25{width:25%}.l25{left:25%}.w26{width:26%}.l26{left:26%}.w27{width:27%}.l27{left:27%}.w28{width:28%}.l28{left:28%}.w29{width:29%}.l29{left:29%}.w30{width:30%}.l30{left:30%}.w31{width:31%}.l31{left:31%}.w32{width:32%}.l32{left:32%}.w33{width:33%}.l33{left:33%}.w34{width:34%}.l34{left:34%}.w35{width:35%}.l35{left:35%}.w36{width:36%}.l36{left:36%}.w37{width:37%}.l37{left:37%}.w38{width:38%}.l38{left:38%}.w39{width:39%}.l39{left:39%}.w40{width:40%}.l40{left:40%}.w41{width:41%}.l41{left:41%}.w42{width:42%}.l42{left:42%}.w43{width:43%}.l43{left:43%}.w44{width:44%}.l44{left:44%}.w45{width:45%}.l45{left:45%}.w46{width:46%}.l46{left:46%}.w47{width:47%}.l47{left:47%}.w48{width:48%}.l48{left:48%}.w49{width:49%}.l49{left:49%}.w50{width:50%}.l50{left:50%}.w51{width:51%}.l51{left:51%}.w52{width:52%}.l52{left:52%}.w53{width:53%}.l53{left:53%}.w54{width:54%}.l54{left:54%}.w55{width:55%}.l55{left:55%}.w56{width:56%}.l56{left:56%}.w57{width:57%}.l57{left:57%}.w58{width:58%}.l58{left:58%}.w59{width:59%}.l59{left:59%}.w60{width:60%}.l60{left:60%}.w61{width:61%}.l61{left:61%}.w62{width:62%}.l62{left:62%}.w63{width:63%}.l63{left:63%}.w64{width:64%}.l64{left:64%}.w65{width:65%}.l65{left:65%}.w66{width:66%}.l66{left:66%}.w67{width:67%}.l67{left:67%}.w68{width:68%}.l68{left:68%}.w69{width:69%}.l69{left:69%}.w70{width:70%}.l70{left:70%}.w71{width:71%}.l71{left:71%}.w72{width:72%}.l72{left:72%}.w73{width:73%}.l73{left:73%}.w74{width:74%}.l74{left:74%}.w75{width:75%}.l75{left:75%}.w76{width:76%}.l76{left:76%}.w77{width:77%}.l77{left:77%}.w78{width:78%}.l78{left:78%}.w79{width:79%}.l79{left:79%}.w80{width:80%}.l80{left:80%}.w81{width:81%}.l81{left:81%}.w82{width:82%}.l82{left:82%}.w83{width:83%}.l83{left:83%}.w84{width:84%}.l84{left:84%}.w85{width:85%}.l85{left:85%}.w86{width:86%}.l86{left:86%}.w87{width:87%}.l87{left:87%}.w88{width:88%}.l88{left:88%}.w89{width:89%}.l89{left:89%}.w90{width:90%}.l90{left:90%}.w91{width:91%}.l91{left:91%}.w92{width:92%}.l92{left:92%}.w93{width:93%}.l93{left:93%}.w94{width:94%}.l94{left:94%}.w95{width:95%}.l95{left:95%}.w96{width:96%}.l96{left:96%}.w97{width:97%}.l97{left:97%}.w98{width:98%}.l98{left:98%}.w99{width:99%}.l99{left:99%}.w100{width:100%}.l100{left:100%}
