/* Entry and legal surfaces. Authentication handlers and legal fragments untouched. */
html:root:has(.auth-page,.legal-wrap,.landing-page,.ob-wrap) {
  --bg:#f3f3ef; --surface:#fff; --bg-soft:#f6f6f2; --field-bg:#fff;
  --text:#202622; --text-secondary:#666f68; --text-muted:#666f68; --text-dim:#666f68;
  --border:#dce0d8; --border-strong:#dce0d8;
  --accent:#006961; --accent-link:#006961; --accent-rgb:0,105,97; --accent-hover:#00564f; --accent-soft:#e2efeb; --on-accent:#fff;
  --font-title:'Satoshi',system-ui,sans-serif; --font-body:'Satoshi',system-ui,sans-serif;
}
html:root[data-theme="dark"]:has(.auth-page,.legal-wrap,.landing-page,.ob-wrap) {
  --bg:#141414; --surface:#1d1d1d; --bg-soft:#252525; --field-bg:#1d1d1d;
  --text:#eee; --text-secondary:#acacac; --text-muted:#acacac; --text-dim:#acacac;
  --border:#383838; --border-strong:#383838; --accent:#88c9bf; --accent-link:#88c9bf; --accent-rgb:136,201,191; --accent-hover:#a1d9d0; --accent-soft:#243b36; --on-accent:#1d1d1d;
}
body.auth-page { background:var(--bg)!important; color:var(--text); padding:32px; min-height:100dvh; font-family:var(--font-body); overflow-y:auto; }
body.auth-page::before,body.auth-page::after { content:none!important; }
body.auth-page .auth-card {
  width:min(100%,460px); max-width:460px; padding:36px; background:var(--surface)!important;
  border:1px solid var(--border)!important; border-radius:10px!important; box-shadow:none!important; backdrop-filter:none!important;
}
body.auth-page :is(.auth-title,.rw-step-title) { font-family:var(--font-title); font-size:32px; line-height:1.12; letter-spacing:-.04em; color:var(--text); }
body.auth-page .auth-logo { margin-bottom:32px; justify-content:flex-start; }
body.auth-page .auth-logo-text { font-family:var(--font-title); font-size:22px; font-weight:800; letter-spacing:-.04em; color:var(--text); }
body.auth-page .ciblup-brand-mark { background:#17191b!important; color:#fff!important; }
body.auth-page .auth-title,body.auth-page .auth-sub { text-align:left; }
body.auth-page :is(.input,.textarea,.field input:not([type="checkbox"]):not([type="radio"]),.field select) {
  background:var(--field-bg)!important; color:var(--text)!important; border:1px solid var(--border)!important;
  border-radius:8px!important; box-shadow:none!important; min-width:0; max-width:100%; font-family:inherit;
}
body.auth-page .btn { border:1px solid var(--border)!important; border-radius:8px!important; box-shadow:none!important; background-image:none!important; min-height:42px; }
body.auth-page .btn-primary { background:var(--accent)!important; color:var(--on-accent)!important; border-color:transparent!important; }
body.auth-page .index-console-access .btn { display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:10px 18px; text-decoration:none; font:600 14px/1.4 var(--font-body); }
body.auth-page :is(a,button,input,select,textarea):focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
body.auth-page :is(.auth-warning,.auth-error,.auth-success) { border-radius:8px; background-image:none!important; }
body.auth-split { padding:24px; gap:24px; align-items:stretch; }
body.auth-split .auth-left { background:var(--surface); border:1px solid var(--border); border-radius:10px; padding:40px; }
body.auth-split .auth-card { border:0!important; box-shadow:none!important; padding:0; max-width:390px; }
body.auth-split .auth-right { background:var(--bg-soft); border:1px solid var(--border); border-radius:10px; flex-basis:46%; }
body.auth-split .auth-right :is(video,img,.auth-right-shade) { display:none; }
body.auth-split .auth-right::before,body.auth-split .auth-right::after { content:none; }
body.auth-split .auth-right-content { padding:42px; color:var(--text); }
body.auth-split .auth-right-content h2 { font:650 clamp(28px,3.5vw,52px)/1.12 var(--font-title); letter-spacing:-.04em; color:var(--text); }
body.auth-split .auth-right-content p { color:var(--text-muted); }
body.auth-split .auth-chip { background:var(--surface); color:var(--text-muted); border:1px solid var(--border); border-radius:7px; backdrop-filter:none; font-size:12px; }
body.auth-page .rw-shell { max-width:1040px; gap:32px; align-items:start; }
body.auth-page .rw-card { max-width:none; }
body.auth-page .rw-marketing { background:#171717; color:#fff; border:0; border-radius:16px; padding:36px; }
body.auth-page .rw-marketing :is(h2,b,.rw-marketing-accent) { color:#fff!important; background:none!important; -webkit-text-fill-color:currentColor; }
body.auth-page .rw-marketing :is(p,.rw-bullet-tx,.rw-marketing-sub,.rw-reassurance) { color:#c4c4c4; }
body.auth-page .rw-choice { background:var(--bg-soft)!important; border-color:var(--border)!important; box-shadow:none!important; border-radius:8px; }
body.auth-page .rw-choice:has(input:checked) { background:var(--accent-soft)!important; }
body:has(.legal-wrap) { background:var(--bg); font-family:var(--font-body); }
.legal-wrap { max-width:960px; padding-top:32px; }
.legal-wrap .ciblup-brand-mark { background:#17191b!important; color:#fff!important; }
.legal-wrap .legal-card { background:var(--surface); border:1px solid var(--border); border-radius:16px; padding:clamp(24px,5vw,56px); box-shadow:none; }
.legal-wrap .legal h1 { font-size:clamp(30px,4vw,44px); letter-spacing:-.045em; line-height:1.1; }
.legal-wrap .legal :is(p,li) { max-width:76ch; }
.legal-wrap .legal-card { min-width:0; }
/* A legal table can exceed its column even on tablets with the side navigation. */
.legal-wrap .legal table { display:block; max-width:100%; overflow-x:auto; }
.legal-wrap .legal :is(p,li,td,th) { overflow-wrap:anywhere; }
.legal-wrap .legal h2 { padding-top:20px; border-top:1px solid var(--border); }
.legal-wrap:has(.index-legal-layout) {max-width:1180px;}
.index-legal-layout {display:grid;grid-template-columns:180px minmax(0,1fr);gap:32px;align-items:start;}
.index-legal-nav {display:flex;flex-direction:column;gap:8px;position:sticky;top:24px;}
.index-legal-nav>span {padding:12px;}
.index-legal-nav a {padding:10px 12px;font-size:13px;text-decoration:none;color:var(--text-muted);border-radius:6px;}
.index-legal-nav a[aria-current=page] {background:var(--surface);color:var(--text);font-weight:700;}
@media(max-width:700px) {.index-legal-layout {grid-template-columns:minmax(0,1fr);gap:20px;}.index-legal-nav{position:static;flex-direction:row;flex-wrap:wrap;gap:4px;}.index-legal-nav>span{width:100%;}.index-legal-nav a{padding:8px;}}
body.landing-page { background:var(--bg); color:var(--text); font-family:var(--font-body); }
body.landing-page .ciblup-brand-mark { background:#17191b!important; color:#fff!important; }
body.landing-page .hero { text-align:left; padding:clamp(40px,7vw,90px) 40px; margin:28px 0; background:#171717; color:#fff; border-radius:20px; }
body.landing-page .hero h1 { margin-left:0; color:#fff; font-size:clamp(36px,5vw,64px); letter-spacing:-.055em; max-width:19ch; }
body.landing-page .hero h1 b { color:#72cacf; }
body.landing-page .hero > p:not(.req-note) { margin-left:0; color:#c4c4c4; }
body.landing-page .hero-cta { justify-content:flex-start; }
body.landing-page .hero .req-note { color:#bcbcbc; border-color:#474747; }
body.landing-page :is(.feat,.purpose,.price-card) { background:var(--surface); border:1px solid var(--border); border-radius:12px; box-shadow:none; }
body.landing-page .btn { border:1px solid var(--border)!important; border-radius:8px; box-shadow:none!important; background-image:none!important; }
body.landing-page .btn-primary { background:var(--accent)!important; border-color:transparent!important; color:var(--on-accent)!important; }
body:has(.ob-wrap) { background:var(--bg)!important; background-image:none!important; }
body:has(.ob-wrap) .ob-wrap :is(.card,.ob-card) { background:var(--surface)!important; border:1px solid var(--border)!important; border-radius:14px!important; box-shadow:none!important; }
body:has(.ob-wrap) .ob-wrap .btn { background-image:none!important; border-color:var(--border)!important; box-shadow:none!important; border-radius:8px!important; }
body:has(.ob-wrap) .ob-wrap .btn-primary { border-color:transparent!important; }
@media(max-width:900px) {
  body.auth-split { display:block; padding:20px; }
  body.auth-split .auth-right { display:none; }
  body.auth-split .auth-left { min-height:calc(100dvh - 40px); padding:28px; }
  body.auth-page .rw-shell { grid-template-columns:1fr; max-width:560px; }
  body.auth-page .rw-marketing { display:none; }
}
@media(max-width:480px) {
  body.landing-page .hero { padding:32px 22px; }
  body.auth-page { padding:16px; }
  body.auth-page .auth-card { padding:24px; }
  body.auth-split .auth-card { padding:0; }
  body.auth-split .auth-left { padding:24px; min-height:calc(100dvh - 32px); }
  body.auth-page .rw-shell { width:100%; }
}
/* Index public composition: shared by login, registration, recovery and 2FA. */
.landing-header .index-public-brand { color:var(--text); text-decoration:none; }
.index-public-hero { display:grid; grid-template-columns:1.3fr .8fr; gap:70px; align-items:center; padding:80px 0 95px; }
.index-public-hero h1 { font-size:clamp(42px,5vw,68px); font-weight:550; letter-spacing:-.05em; margin:22px 0; line-height:1.03; color:var(--text); }
.index-public-hero>div>p:not(.index-auth-eyebrow) { max-width:500px; font-size:16px; line-height:1.65; }
.index-hero-actions { display:flex; gap:12px; flex-wrap:wrap; margin:25px 0 18px; }
.index-public-hero small { font-size:11px; color:var(--text-muted); }
.index-public-hero .index-device-note { font-size:11px!important; color:var(--text-muted); margin-top:10px; }
.index-public-preview { background:var(--surface); border:1px solid var(--border); border-radius:10px; padding:30px; min-width:0; }
.index-preview-row { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; font-size:12px; }
.index-public-preview .index-preview-date { font-size:11px!important; color:var(--text-muted); margin-top:32px; }
.index-public-preview h2 { font-size:34px; letter-spacing:-1.2px; margin:20px 0; line-height:1.15; }
.index-preview-contact { display:flex; gap:12px; align-items:center; margin:28px 0; }
.index-preview-contact>span { background:var(--accent-soft); color:var(--accent); border-radius:50%; width:40px; height:40px; display:grid; place-items:center; flex-shrink:0; font-weight:700; font-size:12px; }
.index-preview-contact p { font-size:12px; color:var(--text-muted); margin:4px 0; }
.index-public-preview>p { font-size:14px!important; }
.index-preview-line { display:flex; gap:6px; margin:25px 0; }
.index-preview-line i { height:5px; flex:1; background:var(--accent); border-radius:3px; }
.index-preview-line i:nth-child(n+3) { background:var(--border); }
.index-public-flow-section { border-top:1px solid var(--border); padding:45px 0; }
.index-public-flow-section h2 { font-size:32px; letter-spacing:-1px; margin:14px 0 28px; line-height:1.2; }
.index-public-flow { display:grid; grid-template-columns:1fr auto 1fr auto 1fr; gap:14px; align-items:center; }
.index-public-flow article { background:var(--surface); border:1px solid var(--border); border-radius:10px; padding:24px; height:100%; }
.index-public-flow h3 { font-size:20px; margin:16px 0 10px; }
.index-public-flow p { color:var(--text-muted); font-size:14px; line-height:1.6; }
.index-public-flow small { font-size:11px; color:var(--text-muted); }
@media(max-width:800px) {
  .index-public-hero { grid-template-columns:1fr; gap:30px; padding:35px 0 45px; }
  .index-public-preview { max-width:480px; }
  .index-public-flow { grid-template-columns:1fr; }
  .index-public-flow>span { display:none; }
}
body.index-auth-page { display:block!important; padding:0; }
.index-public-nav { max-width:1280px; margin:auto; padding:25px 32px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.index-public-nav a { text-decoration:none; color:var(--text); }
.index-public-brand { font-size:27px; font-weight:850; letter-spacing:-1.2px; white-space:nowrap; }
.index-public-brand span { margin-left:3px; color:var(--accent); font-weight:500; }
.index-public-nav>div { display:flex; gap:16px; align-items:center; font-size:13px; }
.index-public-nav .btn { padding:10px 16px; }
.index-auth-layout { max-width:1060px; margin:45px auto 90px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:70px; padding:32px; align-items:center; }
.index-auth-aside { min-height:380px; padding-right:50px; border-right:1px solid var(--border); display:flex; flex-direction:column; justify-content:center; gap:20px; }
.index-auth-aside p,.index-auth-aside h2,.index-auth-aside h3 { margin:0; }
.index-auth-aside h2 { font-size:52px; font-weight:550; line-height:1.06; letter-spacing:-2px; color:var(--text); }
.index-auth-aside>p:not(.index-auth-eyebrow) { font-size:15px; line-height:1.6; }
.index-auth-aside small,.index-auth-example p { color:var(--text-muted); }
.index-auth-eyebrow { font:500 10px/1.5 'JetBrains Mono',monospace; text-transform:uppercase; letter-spacing:1px; color:var(--text-muted); }
.index-auth-example { background:var(--surface); border:1px solid var(--border); border-radius:10px; padding:22px; }
.index-auth-example h3 { font-size:18px; margin:15px 0 8px; }
.index-auth-example p { font-size:12px; line-height:1.6; }
.index-auth-example>div { display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between; font-size:12px; margin-top:20px; }
.index-auth-badge { color:#22633e; background:#e4efe7; padding:4px 8px; border-radius:5px; }
[data-theme="dark"] .index-auth-badge { color:#b1d7be; background:#263c2e; }
.index-auth-layout>.auth-left { min-width:0; width:100%; padding:0; display:block; }
body.index-auth-page .auth-card { width:100%; max-width:none; padding:28px; }
body.index-auth-page .auth-card .auth-logo { display:none; }
body.index-auth-page .rw-shell { display:block; min-width:0; width:100%; }
body.index-auth-page .rw-marketing { display:none; }
body.index-auth-page .rw-step-sub { color:var(--text-muted); }
body.index-auth-page .auth-title { margin-top:0; }
@media(max-width:900px) {
  .index-auth-layout { gap:28px; padding:24px; }
  .index-auth-aside { padding-right:24px; }
  .index-auth-aside h2 { font-size:42px; }
  .index-public-explore { display:none; }
}
@media(max-width:700px) {
  .index-public-nav { padding:20px; gap:12px; }
  .index-public-nav>div { gap:6px; }
  .index-public-nav .btn { padding:8px 10px; font-size:11px; }
  .index-public-brand { font-size:23px; }
  .index-auth-layout { grid-template-columns:minmax(0,1fr); max-width:510px; margin:10px auto 45px; padding:20px; }
  .index-auth-aside { display:none; }
  body.index-auth-page .auth-card { padding:24px; }
}
