/* Landing, legal and auth pages (login / register / 2FA / reset). Uses the tokens from app.css. */

/* ---------------------------------------------------------------- landing */
.pub-main{max-width:1080px;margin:0 auto;padding:0 16px}
.hero{text-align:center;padding:52px 4px 30px;max-width:780px;margin:0 auto}
.hero-pill{display:inline-flex;align-items:center;gap:10px;padding:9px 20px;border-radius:999px;background:rgba(20,17,15,.86);border:1px solid #372c25;color:#e9e4de;font-size:15px}
.hero-pill::before{content:"";width:9px;height:9px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.18)}
.hero h1{font-size:clamp(36px,9vw,68px);line-height:1.08;margin:28px 0 22px;letter-spacing:-.025em;font-weight:700}
.hero h1 .grad{display:inline-block;background:linear-gradient(90deg,#d8a93f 0%,#5db8a4 42%,#37aef0 72%,#d8a93f 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .lead{color:#bfb9b2;font-size:clamp(17px,4.4vw,21px);line-height:1.8;max-width:660px;margin:0 auto 34px}
.hero-cta{display:flex;flex-direction:column;gap:14px;max-width:440px;margin:0 auto}
.btn-hero{min-height:58px;border-radius:999px;font-size:18px;background:var(--or);border-color:var(--or);color:var(--or-dark);box-shadow:0 8px 30px rgba(248,146,28,.28)}
.btn-hero-o{min-height:58px;border-radius:999px;font-size:18px;background:rgba(12,10,9,.5);border:1px solid #3a2f28;color:#fff}
.hero-link{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:50px;color:#fff;font-size:18px;text-decoration:none!important}
.hero-link:hover{color:var(--or)}
@media (min-width:720px){.hero-cta{flex-direction:row;flex-wrap:wrap;justify-content:center;max-width:none}.hero-cta .btn-hero,.hero-cta .btn-hero-o{min-width:250px}.hero-link{width:100%}}

.pub-sec{padding:34px 0}
.pub-sec>h2{font-size:clamp(28px,6.6vw,44px);line-height:1.15;margin-bottom:22px;letter-spacing:-.015em}
.pub-sec>.sub{color:var(--mut);font-size:18px;margin:-10px 0 22px;max-width:640px}
.pub-grid{display:grid;gap:16px;grid-template-columns:1fr}
@media (min-width:720px){.pub-grid.c2{grid-template-columns:1fr 1fr}.pub-grid.c3{grid-template-columns:repeat(3,1fr)}}
.pub-card{background:linear-gradient(180deg,rgba(28,21,17,.92),rgba(20,15,13,.94));border:1px solid #36281f;border-radius:26px;padding:26px 24px}
.pub-card h3{font-size:22px;margin:16px 0 8px}
.pub-card p{color:#bdb7b0;font-size:16.5px;line-height:1.65}
.f-ico{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;background:#3a2410;border:1px solid #7a4a10;color:var(--or)}
.mk-card .mk-head{display:flex;align-items:center;gap:16px;margin-bottom:16px}
.mk-card .mk-head .flag{font-size:38px;line-height:1}
.mk-card .mk-head h3{margin:0;font-size:23px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.chips span{padding:7px 15px;border-radius:999px;background:rgba(255,255,255,.04);border:1px solid #3a2f28;color:#e6e0da;font-size:14.5px}
.mk-rates{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}
.mk-rates div{padding:14px 16px;border-radius:14px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.04)}
.mk-rates small{display:flex;align-items:center;gap:8px;color:#a9a39c;font-size:15px}
.mk-rates b{display:block;margin-top:4px;font-size:21px;font-family:var(--ff-head)}
.steps{display:flex;flex-direction:column;gap:22px}
.step{display:flex;gap:18px;align-items:flex-start}
.step .n{flex:none;width:52px;height:52px;border-radius:50%;background:var(--or);color:var(--or-dark);display:grid;place-items:center;font:700 22px var(--ff-head)}
.step h4{font-size:21px;margin:2px 0 6px}
.step p{color:#bdb7b0;font-size:16.5px;line-height:1.6}
.faq{display:flex;flex-direction:column;gap:14px}
.faq .q{background:rgba(24,18,15,.9);border:1px solid #33261c;border-radius:20px;padding:20px 22px}
.faq .q h4{display:flex;gap:12px;align-items:flex-start;font-size:18px;font-family:var(--ff);font-weight:600;margin-bottom:8px}
.faq .q h4 .icon{color:var(--or);margin-top:3px}
.faq .q p{color:#bdb7b0;line-height:1.65}
.cta-band{margin:34px 0;text-align:center;padding:36px 22px;border-radius:26px;background:linear-gradient(135deg,rgba(60,36,14,.9),rgba(24,18,15,.94));border:1px solid #5a3a14}
.cta-band h2{font-size:clamp(26px,6vw,38px);margin-bottom:10px}
.cta-band p{color:#c9c2ba;margin-bottom:22px}
.pub-foot{margin-top:40px;border-top:1px solid #2a2622;background:rgba(15,13,12,.7);padding:26px 16px 40px}
.pub-foot-in{max-width:1080px;margin:0 auto;text-align:center;color:#a8a29b;font-size:15px}
.pub-links{display:flex;gap:6px 22px;justify-content:center;flex-wrap:wrap;margin-bottom:14px}
.pub-links a{color:#d6d0c9}
.legal{max-width:820px;margin:0 auto;padding:36px 4px}
.legal h1{font-size:34px;margin-bottom:6px}
.legal h2{font-size:21px;margin:26px 0 8px}
.legal p,.legal li{color:#c3bdb6;line-height:1.75}
.legal ul{padding-left:20px}
.legal .upd{color:var(--mut2);margin-bottom:22px}

/* ---------------------------------------------------------------- auth pages */
.auth-top{display:flex;align-items:center;gap:8px;padding:14px 16px;max-width:1080px;margin:0 auto}
.auth-top .grow{flex:1}
.auth-main{display:flex;flex-direction:column;align-items:center;padding:8px 16px 40px}
.auth-card{width:100%;max-width:480px;border-radius:28px;padding:26px 24px 24px;background:linear-gradient(180deg,rgba(13,15,24,.95),rgba(10,12,20,.96));border:1px solid #1f2740;box-shadow:0 30px 80px rgba(0,0,0,.45);--acc:var(--blue)}
.auth-card.wide{max-width:560px}
.auth-card.warm{background:linear-gradient(180deg,rgba(31,22,17,.97),rgba(24,17,13,.97));border-color:#3a2a1e;--acc:var(--or)}
.auth-card.center{text-align:center}
.auth-logo{display:flex;justify-content:center;margin:2px 0 14px}
.auth-logo .brand{flex-direction:column;gap:2px}
.auth-logo .brand-mark{width:64px;height:64px;filter:drop-shadow(0 6px 22px rgba(59,130,246,.35))}
.auth-logo .brand-txt{align-items:center;flex-direction:row;gap:8px}
.auth-logo .brand-txt i{margin:0}
.auth-card h1{font-size:30px;text-align:center;margin-bottom:6px}
.auth-card .lead{text-align:center;color:var(--mut);font-size:18px;margin-bottom:24px}
.auth-card .field>label{font-size:17px}
.auth-card .input,.auth-card .input-group,.auth-card .select-btn{min-height:54px;background:#0b0d15;border-color:#242b40}
.auth-card.warm .input,.auth-card.warm .input-group,.auth-card.warm .select-btn{background:#150f0c;border-color:#372820}
.auth-card .input-group .input{min-height:52px;border:0;background:transparent}
.auth-card .btn-block{min-height:54px;border-radius:10px;font-size:17px}
.auth-card .btn-blue.dim{background:#1c3a7a;border-color:#1c3a7a;color:#7d93c7}
.auth-card .btn-primary.dim{background:#6a4614;border-color:#6a4614;color:#b39468}
.auth-card .btn.dim{cursor:default}
.auth-alt{text-align:center;margin-top:20px;color:var(--mut);font-size:17px}
.auth-alt a{color:var(--acc);font-weight:600}
.auth-card.warm .auth-alt a{color:var(--or)}
.auth-foot{margin-top:22px;color:#7f86a0;font-size:14px;text-align:center}
.secure-line{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:18px;color:#7f86a0;font-size:14px}
.secure-line::before{content:"";width:8px;height:8px;border-radius:50%;background:#22c55e}
.auth-card .alert{margin-bottom:18px}
.auth-card .hint{font-size:14px}

/* captcha row */
.captcha{display:grid;grid-template-columns:140px minmax(0,1fr) 48px;gap:10px;align-items:center}
.cap-img{height:48px;border-radius:14px;overflow:hidden;box-shadow:0 0 22px rgba(124,92,255,.35)}
.cap-img img{display:block;width:140px;height:48px;border-radius:14px}
.cap-in{position:relative}
.cap-in .input{min-height:48px!important;height:48px;text-align:left;font-size:17px;letter-spacing:.06em;padding:0 14px;background:#080a11!important;border-radius:14px}
.captcha.filled .cap-in .input{padding-right:42px}
.cap-in .input::placeholder{letter-spacing:.1em;color:#565d74}
.cap-in .cap-ok{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--green-t);display:none}
.captcha.filled .cap-in .input{border-color:#1f8a5b}
.captcha.filled .cap-ok{display:block}
.cap-refresh{height:48px;width:48px;display:grid;place-items:center;border-radius:14px;border:1px solid #3a2f5a;background:linear-gradient(135deg,#221a3d,#2a1a26);color:#e6e8ff;cursor:pointer}
.cap-refresh:hover{filter:brightness(1.2)}
@media (max-width:360px){.captcha{grid-template-columns:120px minmax(0,1fr) 44px}.cap-img,.cap-img img{width:120px}}

/* register extras */
.terms-box{display:flex;gap:12px;align-items:flex-start;padding:16px;border:1px solid #372820;border-radius:14px;background:rgba(255,255,255,.02);margin-bottom:18px}
.terms-box .checkline{margin:0;align-items:flex-start;line-height:1.55;font-size:16px}
.terms-box .checkline span{padding-top:0}
.cur-pick{display:flex;gap:10px}
.cur-pick label{flex:1;position:relative;cursor:pointer}
.cur-pick input{position:absolute;opacity:0;inset:0}
.cur-pick span{display:flex;align-items:center;justify-content:center;gap:8px;min-height:54px;border-radius:12px;border:1px solid #372820;background:#150f0c;color:#e9dccf;font-size:17px}
.cur-pick input:checked+span{border-color:var(--or);background:rgba(248,146,28,.12);color:var(--or)}
.input-group .pre.at{font-size:18px;color:var(--mut2)}
.input-group .pre+.input{padding-left:8px}

/* 2FA */
.tf-hero{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;margin-bottom:18px}
.tf-hero .tile-ico{width:76px;height:76px;border-radius:22px}
.secnote{padding:16px 18px;border-radius:14px;border:1px solid #6a4310;background:rgba(248,146,28,.07);color:#f0d9b8;font-size:15.5px;line-height:1.6;margin:18px 0}
.secnote b{display:flex;align-items:center;gap:8px;color:var(--or2);margin-bottom:4px}
.qr-box{width:min(260px,100%);margin:0 auto 14px;padding:12px;border-radius:16px;background:#fff}
.otp-in{text-align:center;font-family:var(--ff-mono);font-size:30px!important;letter-spacing:.42em;padding-left:.42em!important}
.manual-key{display:flex;align-items:center;gap:8px;justify-content:space-between;padding:12px 14px;border-radius:12px;background:#0b0d15;border:1px solid #242b40;font-family:var(--ff-mono);font-size:15px;letter-spacing:.06em;word-break:break-all}
.steps-mini{margin:0 0 18px;padding:0;list-style:none;counter-reset:s;display:flex;flex-direction:column;gap:10px;color:#c4c8d8;font-size:15.5px}
.steps-mini li{counter-increment:s;display:flex;gap:12px;align-items:flex-start}
.steps-mini li::before{content:counter(s);flex:none;width:26px;height:26px;border-radius:50%;background:var(--blue-bg);color:#7db1ff;display:grid;place-items:center;font-size:13px;font-weight:700;margin-top:1px}

/* field-level messages + password rule list */
.err-msg{margin-top:7px;font-size:14px;color:#ff8a8a}
.field.has-err .input,.field.has-err .input-group{border-color:#a03a3a}
.terms-box.has-err{border-color:#a03a3a}
.pw-rules{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:15px;color:#8f857b}
.pw-rules li{display:flex;align-items:center;gap:9px}
.pw-rules li .icon{opacity:.35;transition:opacity .15s}
.pw-rules li.ok{color:var(--or)}
.pw-rules li.ok .icon{opacity:1}
.auth-card.warm .checkline{color:#e6d9cc}
.auth-card.warm .checkline a{color:var(--or);font-weight:500}

/* ===== QA-1: auth pages calibrated to the reference frames (c_login, c_register_bottom, v1 t084-t092, c_tg_gate) ===== */
.auth-card{border-radius:22px;padding:24px 24px 22px}
.auth-logo{margin:0 0 12px}
.auth-logo .brand{flex-direction:row;gap:9px;align-items:center}
.auth-logo .brand.lg .brand-mark{width:38px;height:38px;filter:drop-shadow(0 4px 14px rgba(59,130,246,.3))}
.auth-logo .brand.lg .brand-txt{flex-direction:column;align-items:flex-start;gap:2px}
.auth-logo .brand.lg .brand-txt b{font-size:16px}
.auth-logo .brand.lg .brand-txt i{font-size:13px;letter-spacing:.34em}
.auth-card h1{font-size:20px;margin-bottom:4px}
.auth-card .lead{font-size:14px;margin-bottom:26px}
.auth-card .field>label{font-size:14px}
.auth-card .input,.auth-card .input-group,.auth-card .select-btn{min-height:44px;font-size:14px;border-radius:9px}
.auth-card .input-group .input{min-height:42px}
.auth-card .btn-block{min-height:44px;font-size:14px;border-radius:8px}
.auth-card .checkline{font-size:14px}
.auth-card .link-btn{font-size:14px!important}
.auth-alt{font-size:14px;margin-top:18px}
.secure-line{font-size:12.5px;margin-top:14px}
.auth-card .hint{font-size:12px}
.auth-card .alert{font-size:14px}
.captcha{grid-template-columns:140px minmax(0,1fr) 47px}
.cap-img,.cap-img img{height:47px;border-radius:12px}
.cap-in .input{min-height:47px!important;height:47px;font-size:15px;border-radius:12px}
.cap-refresh{height:47px;width:47px;border-radius:12px}
.terms-box{padding:13px 14px;border-radius:12px;margin-bottom:16px}
.terms-box .checkline{font-size:12.5px}
.cur-pick span{min-height:44px;font-size:14px;border-radius:10px}
.input-group .pre.at{font-size:15px}
.tf-hero{gap:12px;margin-bottom:14px}
.tf-hero .tile-ico{width:62px;height:62px;border-radius:18px}
.tf-hero h1{font-size:20px}
.secnote{font-size:13px;padding:13px 15px;line-height:1.55}
.otp-in{font-size:24px!important}
.manual-key{font-size:13px;padding:10px 12px}
.steps-mini{font-size:13.5px;gap:9px}
.steps-mini li::before{width:22px;height:22px;font-size:11.5px}
.err-msg{font-size:12.5px}
.pw-rules{font-size:12.5px;gap:5px}
.qr-box{width:min(220px,100%);padding:10px;border-radius:12px}
