/* Lexicon Customer Portal, in the presentation site's look (lexicon-prezentare/site.css): rose and plum pastels,
   soft shadows, rounded corners, pill buttons, serif headings. Nothing loads from other sites, so the headings use
   Playfair Display only if it is installed and Georgia otherwise. Field borders are darker than the site's, to keep
   at least 3:1 against the page. Dark mode follows the plum tones of the site's footer. */
:root{
  --bg:#fdf6f9; --bg-soft:#f9ebf2; --surface:#ffffff; --ink:#3b1430; --muted:#6b5566; --line:#f1dbe7;
  --accent:#9d2a63; --accent-dark:#7d1f4e; --accent-ink:#ffffff; --blush:#fbe3ee; --rose:#f6c9dc;
  --panel:#2e1026; --panel-ink:#ffffff; --panel-muted:#d9bccd;
  --field-line:#a07f93;
  --error:#b3261e; --error-bg:#fbe5e3; --ok:#276947; --ok-bg:#e3f2ea; --warn:#7a4508; --warn-bg:#fbefdc;
  --display:"Playfair Display",Georgia,"Times New Roman",serif;
  --font:"Inter","Segoe UI",system-ui,-apple-system,Roboto,"Helvetica Neue",Arial,sans-serif;
  --r-sm:12px; --r-md:18px; --r-pill:999px;
  --shadow-sm:0 1px 2px rgba(59,20,48,.06),0 2px 8px rgba(59,20,48,.05);
  --shadow-md:0 2px 6px rgba(59,20,48,.06),0 12px 32px rgba(157,42,99,.10);
  --ease:cubic-bezier(.22,1,.36,1); --t:220ms;
  --bar:rgba(253,246,249,.86); color-scheme:light;
}
/* Dark: chosen by the client (data-theme="dark" on <html>), or following the device when no choice was made. */
:root[data-theme="dark"]{
  --bg:#1a0a15; --bg-soft:#22101c; --surface:#2a1323; --ink:#f6e9f0; --muted:#c9afbf; --line:#3d2133;
  --accent:#f29ac3; --accent-dark:#f6b4d3; --accent-ink:#2e1026; --blush:#3f1a33; --rose:#5a2448;
  --panel:#12060f; --panel-muted:#c9afbf; --field-line:#8a6a7e;
  --error:#ffb4ab; --error-bg:#3d1c1a; --ok:#7fcfa2; --ok-bg:#1d3327; --warn:#e8b06a; --warn-bg:#3a2b17;
  --shadow-sm:0 1px 2px rgba(0,0,0,.3); --shadow-md:0 8px 24px rgba(0,0,0,.35); --bar:rgba(26,10,21,.86); color-scheme:dark}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#1a0a15; --bg-soft:#22101c; --surface:#2a1323; --ink:#f6e9f0; --muted:#c9afbf; --line:#3d2133;
  --accent:#f29ac3; --accent-dark:#f6b4d3; --accent-ink:#2e1026; --blush:#3f1a33; --rose:#5a2448;
  --panel:#12060f; --panel-muted:#c9afbf; --field-line:#8a6a7e;
  --error:#ffb4ab; --error-bg:#3d1c1a; --ok:#7fcfa2; --ok-bg:#1d3327; --warn:#e8b06a; --warn-bg:#3a2b17;
  --shadow-sm:0 1px 2px rgba(0,0,0,.3); --shadow-md:0 8px 24px rgba(0,0,0,.35); --bar:rgba(26,10,21,.86); color-scheme:dark}}

*{box-sizing:border-box}
html,body{height:100%}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-underline-offset:3px}
a:hover{color:var(--accent-dark)}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:6px}
::selection{background:var(--rose);color:var(--ink)}
h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.15;letter-spacing:-.01em;text-wrap:balance;margin:0}
p{text-wrap:pretty}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (prefers-reduced-motion: reduce){*{transition:none!important}}

/* ---- Sign-in pages: the brand panel and a form ---- */
.shell{min-height:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
@media (max-width:760px){.shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}}
.brand{position:relative;overflow:hidden;background:var(--panel);color:var(--panel-ink);padding:48px max(24px,5vw);display:flex;flex-direction:column;justify-content:space-between;gap:24px}
.brand::before{content:"";position:absolute;inset:auto -20% -40% auto;width:70%;aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,rgba(246,201,220,.35),rgba(157,42,99,0) 70%);pointer-events:none}
.brand > *{position:relative}
.brand img{display:block;width:clamp(140px,24vw,300px);height:auto}
.brand p{color:var(--panel-muted);max-width:30ch;margin:18px 0 0;font-family:var(--display);font-size:clamp(1.15rem,1rem + .6vw,1.5rem);line-height:1.35}
.brand small{color:var(--panel-muted);font-size:.8rem}
@media (max-width:760px){.brand{padding:22px 16px}.brand img{width:120px}.brand p{font-size:1.05rem;margin-top:12px}.brand small{display:none}}
main{display:grid;place-items:center;padding:40px 16px}
.box{width:100%;max-width:400px;display:grid;gap:18px}
.box h1{font-size:clamp(1.9rem,1.5rem + 1.6vw,2.6rem)}
.lead{color:var(--muted);margin:-6px 0 0}

/* ---- Forms ---- */
form{display:grid;gap:16px}
label{display:grid;gap:6px;font-weight:600;font-size:.94rem}
.hint{font-weight:400;color:var(--muted);font-size:.86rem}
input{font:inherit;font-size:16px;color:var(--ink);background:var(--surface);border:1.5px solid var(--field-line);border-radius:var(--r-sm);padding:11px 14px;min-height:48px;width:100%;transition:border-color var(--t) ease,box-shadow var(--t) ease}
input:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px rgba(157,42,99,.16)}
input[readonly]{background:transparent;border-style:dashed;color:var(--muted)}
input[aria-invalid="true"]{border-color:var(--error)}
button,a.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 24px;border:0;border-radius:var(--r-pill);background:var(--accent);color:var(--accent-ink);font:inherit;font-weight:600;text-decoration:none;cursor:pointer;box-shadow:0 6px 18px rgba(157,42,99,.26);transition:transform var(--t) var(--ease),box-shadow var(--t) var(--ease),background-color var(--t) ease}
button:hover,a.button:hover{background:var(--accent-dark);color:var(--accent-ink);transform:translateY(-1px);box-shadow:0 10px 24px rgba(157,42,99,.3)}
button:active,a.button:active{transform:scale(.98)}
button:focus-visible,a.button:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
a.button.ghost{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm);border:1px solid var(--line)}
a.button.ghost:hover{color:var(--accent);background:var(--surface);box-shadow:var(--shadow-md)}
button.link{background:none;color:var(--accent);padding:0;font-weight:500;text-decoration:underline;min-height:44px;box-shadow:none;border-radius:6px}
button.link:hover{background:none;color:var(--accent-dark);transform:none;box-shadow:none}
label.check{display:flex;align-items:flex-start;gap:12px;font-weight:500;font-size:.96rem;padding:14px 16px;border-radius:var(--r-md);background:var(--bg-soft);border:1px solid var(--line)}
label.check input{width:22px;height:22px;min-height:0;margin:2px 0 0;padding:0;flex:none;accent-color:var(--accent)}

/* ---- Messages ---- */
.error,.ok{margin:0;font-size:.94rem;border-radius:var(--r-sm);padding:12px 14px;border:1px solid transparent}
.error{color:var(--error);background:var(--error-bg);border-color:rgba(179,38,30,.25)}
.ok{color:var(--ok);background:var(--ok-bg)}
.links{display:flex;flex-wrap:wrap;align-items:center;gap:0 20px;font-size:.96rem}
.links a{display:inline-flex;align-items:center;min-height:44px}
.links form{display:inline}

/* ---- Signed-in pages: a light top bar like the site's, content in cards ---- */
body.app{display:block}
.wrap{max-width:980px;margin:0 auto;padding:0 clamp(16px,4vw,32px)}
header.top{position:sticky;top:0;z-index:10;background:var(--bar);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--line)}
header.top .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:6px 20px;min-height:72px;padding-top:8px;padding-bottom:8px}
.home{display:inline-flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;min-height:44px}
.home:hover{color:var(--ink)}
.home img{width:24px;height:auto}
.home .name{font-family:var(--display);font-weight:600;font-size:1.45rem}
.eyebrow{display:inline-flex;align-items:center;width:fit-content;padding:4px 12px;border-radius:var(--r-pill);background:var(--blush);color:var(--accent);font-size:.82rem;font-weight:600}
.who{margin-left:auto;font-size:.9rem;color:var(--muted);overflow-wrap:anywhere}
header.top .links a,header.top button.link{color:var(--ink);text-decoration:none;font-weight:500;padding:0 14px;border-radius:var(--r-pill)}
header.top .links a:hover,header.top button.link:hover{background:var(--blush);color:var(--accent)}
@media (max-width:640px){.home .eyebrow{display:none}.who{margin-left:0;flex-basis:100%;order:3}header.top .links{margin-left:auto}header.top .links a,header.top button.link{padding:0 10px}}
main.content{display:grid;gap:22px;padding-top:28px;padding-bottom:48px;place-items:stretch}
.content > h1{font-size:clamp(1.9rem,1.4rem + 1.8vw,2.7rem)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:clamp(18px,3vw,26px);display:grid;gap:14px;min-width:0;box-shadow:var(--shadow-sm)}
.card h2{font-size:1.5rem}
.card h3{font-family:var(--font);font-size:1rem;font-weight:700;margin:6px 0 0}
.muted{color:var(--muted);margin:0}
.item{display:grid;gap:10px}
.item + .item{border-top:1px solid var(--line);padding-top:14px}
.item-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.item-head h3{margin:0}
.kv{display:grid;grid-template-columns:minmax(130px,max-content) minmax(0,1fr);gap:8px 18px;margin:0}
.kv dt{color:var(--muted)}
.kv dd{margin:0;overflow-wrap:anywhere}
@media (max-width:520px){.kv{grid-template-columns:minmax(0,1fr);gap:2px}.kv dd{margin-bottom:8px}}
.tag{display:inline-block;font-size:.8rem;font-weight:600;border-radius:var(--r-pill);padding:4px 12px;background:var(--blush);color:var(--accent);white-space:nowrap}
.tag.good{background:var(--ok-bg);color:var(--ok)}
.tag.warn{background:var(--warn-bg);color:var(--warn)}
.tag.bad{background:var(--error-bg);color:var(--error)}
.rows{list-style:none;margin:0;padding:0;display:grid}
.row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:6px 18px;padding:14px 0;border-top:1px solid var(--line)}
.row:first-child{border-top:0}
.row .sub{display:block;color:var(--muted);font-size:.86rem}
.row .nums{text-align:right;font-variant-numeric:tabular-nums}
.row a{display:inline-flex;align-items:center;min-height:44px}
.doc-links{display:flex;gap:4px 16px;flex-wrap:wrap}
.doc-links a{display:inline-flex;align-items:center;min-height:44px;font-weight:600}
@media (max-width:640px){.row{grid-template-columns:minmax(0,1fr)}.row .nums{text-align:left}}

/* ---- Orders ---- */
.actions{display:flex;flex-wrap:wrap;gap:10px}
.terms{margin:0;padding-left:20px;display:grid;gap:8px}
.terms li::marker{color:var(--accent)}
.card form{max-width:520px}
.order-form label .hint{display:block}
.stepper{display:flex;align-items:stretch;gap:8px;max-width:240px}
.stepper input{text-align:center;font-weight:700;font-size:1.1rem}
.step{min-width:48px;padding:0;font-size:1.35rem;line-height:1;background:var(--surface);color:var(--accent);border:1.5px solid var(--field-line);box-shadow:none}
.step:hover{background:var(--blush);color:var(--accent);box-shadow:none;transform:none}
.summary{display:grid;grid-template-columns:minmax(130px,max-content) minmax(0,1fr);gap:10px 18px;margin:4px 0 0;padding:18px 20px;border-radius:var(--r-md);background:var(--bg-soft);border:1px solid var(--line)}
.summary dt{color:var(--muted)}
.summary dd{margin:0;font-variant-numeric:tabular-nums}
.summary dd b{font-size:1.08rem}
.summary .sub{display:block;color:var(--muted);font-size:.86rem}
@media (max-width:520px){.summary{grid-template-columns:minmax(0,1fr);gap:2px}.summary dd{margin-bottom:8px}}

/* Account page: the look */
.choices{display:grid;gap:10px;border:0;margin:0;padding:0}
.choices legend{font-weight:600;font-size:.94rem;margin-bottom:6px}
.choice{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface);font-weight:500;cursor:pointer}
.choice:has(input:checked){border-color:var(--accent);background:var(--bg-soft)}
.choice input{width:20px;height:20px;min-height:0;margin:3px 0 0;padding:0;flex:none;accent-color:var(--accent)}
.choice .sub{display:block;color:var(--muted);font-weight:400;font-size:.86rem}
