/* bot.ecorce.app: calm Écorce look. Linen paper, bark ink, one beet accent, sunflower only as a highlight.
   Fonts self-hosted (OFL): Bricolage Grotesque (text + headings) and Fraunces (italic accent words). Reused from ecorce-site-mock-v2. */
@font-face{font-family:Bricolage;src:url(/assets/fonts/bricolage.woff2) format("woff2");font-weight:200 800;font-stretch:75% 100%;font-style:normal;font-display:swap}
@font-face{font-family:Fraunces;src:url(/assets/fonts/fraunces-italic.woff2) format("woff2");font-weight:100 900;font-style:italic;font-display:swap}
@font-face{font-family:Fraunces;src:url(/assets/fonts/fraunces.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
:root{--bark:#2b1710;--bark2:#5a4034;--bark3:#8a7468;--beet:#d61f5b;--sun:#ffc528;--linen:#fff1e3;--paper:#fffaf3;--line:rgba(43,23,16,.16);--line2:rgba(43,23,16,.3);--ok:#2f6b3a;--sans:"Bricolage",system-ui,"Helvetica Neue",Arial,sans-serif;--serif:"Fraunces",Georgia,serif;--w:1080px;--pad:clamp(18px,4vw,40px);--r:18px}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--linen);color:var(--bark);font:400 17px/1.5 var(--sans);font-variation-settings:"opsz" 17;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration-color:var(--beet);text-underline-offset:3px;text-decoration-thickness:1.5px}a:hover{color:var(--beet)}
h1,h2,h3{text-wrap:balance;font-weight:700;letter-spacing:-.02em;line-height:1.1;margin:0}
h1{font-size:clamp(34px,6.4vw,64px);font-stretch:88%}h2{font-size:clamp(25px,3.6vw,36px);font-stretch:92%}h3{font-size:19px}
em,.acc{font-family:var(--serif);font-style:italic;font-weight:600;letter-spacing:-.02em;color:var(--beet)}
p{margin:0}code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86em}
code{background:rgba(43,23,16,.07);padding:.1em .35em;border-radius:6px}
pre{background:var(--bark);color:var(--linen);padding:14px 16px;border-radius:12px;overflow:auto;margin:0;white-space:pre-wrap;word-break:break-word}
.wrap{max-width:var(--w);margin:0 auto;padding:0 var(--pad)}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--sun);outline-offset:3px;border-radius:6px}
/* header */
.hd{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:18px 0;flex-wrap:wrap}
.logo{display:inline-flex;align-items:baseline;gap:10px;text-decoration:none;font-weight:800;font-size:24px;letter-spacing:-.03em}
.logo i{font-family:var(--serif);font-style:italic;font-weight:700;color:var(--beet)}.logo small{font:500 14px var(--sans);letter-spacing:0;color:var(--bark2)}
.nav{display:flex;gap:18px;font-weight:600;font-size:15px;flex-wrap:wrap}.nav a{text-decoration:none}.nav a:hover{text-decoration:underline}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:700 16px/1 var(--sans);min-height:48px;padding:0 22px;border-radius:99px;border:2px solid var(--bark);background:var(--bark);color:var(--linen);cursor:pointer;text-decoration:none;transition:transform .15s}
.btn:hover{transform:translateY(-2px);color:var(--linen)}.btn:active{transform:none}.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none}
.btn.out{background:transparent;color:var(--bark)}.btn.out:hover{color:var(--bark);background:rgba(43,23,16,.06)}
.btn.beet{background:var(--beet);border-color:var(--beet);color:#fff}.btn.beet:hover{color:#fff}.btn.sm{min-height:38px;padding:0 15px;font-size:14px}
.btn.warn{background:transparent;border-color:var(--beet);color:var(--beet)}
/* hero */
.hero{padding:clamp(26px,6vw,70px) 0 clamp(30px,5vw,56px)}.hero p.lede{font-size:clamp(18px,2vw,22px);max-width:34em;margin-top:20px;color:var(--bark2)}
.cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.tag{display:inline-block;font:700 12px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;padding:8px 12px;border-radius:99px;background:var(--sun);color:var(--bark);margin-bottom:18px}
section.s{padding:clamp(28px,5vw,52px) 0;border-top:1px solid var(--line)}section.s>h2{margin-bottom:8px}section.s>p.sub{color:var(--bark2);max-width:40em;margin-bottom:22px}
.grid{display:grid;gap:14px;grid-template-columns:1fr}@media(min-width:760px){.grid.c3{grid-template-columns:repeat(3,1fr)}.grid.c2{grid-template-columns:repeat(2,1fr)}}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:20px}.card h3{margin-bottom:8px}.card p{color:var(--bark2);font-size:16px}
.tools{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.tools li{font:600 13px ui-monospace,Menlo,Consolas,monospace;background:rgba(43,23,16,.07);padding:5px 9px;border-radius:8px}
.lv{font:700 11px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;padding:4px 8px;border-radius:99px;border:1.5px solid currentColor;margin-left:6px;vertical-align:middle}
.lv.read{color:var(--ok)}.lv.prepare{color:#8a5a00}.lv.commit{color:var(--beet)}
.levels{display:grid;gap:12px}@media(min-width:760px){.levels{grid-template-columns:repeat(3,1fr)}}
.note{background:var(--paper);border:1px dashed var(--line2);border-radius:14px;padding:12px 16px;font-size:15px;color:var(--bark2)}
.note b{color:var(--bark)}
.banner{background:var(--sun);color:var(--bark);padding:9px var(--pad);font:600 14px/1.35 var(--sans);text-align:center}
footer.ft{border-top:1px solid var(--line);padding:26px 0 40px;margin-top:20px;color:var(--bark2);font-size:14px}footer.ft .wrap{display:flex;gap:12px 24px;flex-wrap:wrap;justify-content:space-between}
/* docs */
.doc{padding:20px 0 40px;max-width:760px}.doc h1{font-size:clamp(30px,5vw,44px);margin-bottom:12px}.doc h2{margin:34px 0 8px;font-size:26px}.doc h3{margin:24px 0 6px;font-family:ui-monospace,Menlo,monospace;font-size:18px}.doc p,.doc ul{margin:8px 0}.doc ul{padding-left:22px}.doc pre{margin:10px 0}
/* approval / connect (narrow, phone-first) */
.narrow{max-width:520px;margin:0 auto;padding:22px var(--pad) 60px}.narrow h1{font-size:clamp(28px,7vw,38px);margin:6px 0 10px}
.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:6px 18px;margin:16px 0}
.row{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-bottom:1px solid var(--line);font-size:16px}.row:last-child{border:0}.row span{color:var(--bark2)}.row b{text-align:right;font-weight:600}
.lines{list-style:none;margin:0;padding:0}.lines li{display:grid;grid-template-columns:44px 1fr auto;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);align-items:baseline}.lines li:last-child{border:0}.lines .q{font:800 20px var(--sans);font-variant-numeric:tabular-nums;color:var(--beet)}.lines small{display:block;color:var(--bark3);font-size:13px}
.two{display:grid;grid-template-columns:1fr;gap:10px;margin:18px 0 8px}.two .btn{width:100%;min-height:56px;font-size:18px}
.hint{font-size:14px;color:var(--bark2);margin-top:12px}.msg{min-height:1.4em;text-align:center;color:var(--beet);font-size:15px;margin:8px 0}
.code{font:800 40px/1 ui-monospace,Menlo,monospace;letter-spacing:.12em;text-align:center;background:var(--paper);border:2px solid var(--bark);border-radius:var(--r);padding:18px;margin:16px 0}
input[type=text]{width:100%;min-height:48px;border-radius:12px;border:1.5px solid var(--line2);padding:0 14px;font:500 16px var(--sans);background:#fff;color:var(--bark)}
label{display:block;font:700 12px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--bark2);margin:14px 0 6px}
.ok-badge{display:inline-block;background:var(--ok);color:#fff;font:700 13px var(--sans);padding:6px 12px;border-radius:99px}
.embed body,body.embed{background:transparent}body.embed .narrow{padding-top:10px;padding-bottom:14px}

/* prices (TEST data) */
.lines .pr{text-align:right;font:700 16px var(--sans);font-variant-numeric:tabular-nums;white-space:nowrap}.lines .pr small{font-weight:500}
.note.warnp{background:#fff6dc;border:1px solid #e6c668;border-style:solid;margin:14px 0}
.panel.tot .row b{font-size:20px;font-variant-numeric:tabular-nums}

/* product search (landing) */
.ps form{display:flex;gap:10px;flex-wrap:wrap}.ps form input{flex:1 1 260px}.ps form .btn{flex:0 0 auto}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px}.chip{font:600 14px var(--sans);background:var(--paper);border:1.5px solid var(--line2);color:var(--bark);border-radius:99px;padding:7px 12px;cursor:pointer}.chip:hover{border-color:var(--beet);color:var(--beet)}
.understood{margin:16px 0 4px;font-size:15px;color:var(--bark2)}.understood b{color:var(--bark)}.asof{display:inline-block;background:#fff6dc;border:1px solid #e6c668;border-radius:99px;padding:5px 12px;font:600 13px var(--sans);margin:6px 0 14px}
.pgrid{list-style:none;margin:0;padding:0;display:grid;gap:12px;grid-template-columns:1fr}@media(min-width:760px){.pgrid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1040px){.pgrid{grid-template-columns:repeat(3,1fr)}}
.pcard{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:16px 16px 12px;display:flex;flex-direction:column;gap:8px;min-width:0}
.pcard .ph{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.pcard h3{font-size:18px;margin-right:auto}
.pcard .pb{display:flex;gap:12px;justify-content:space-between;align-items:flex-start}.pcard .po{min-width:0;font-size:14px}.pcard .po span{display:block;font-weight:600;overflow-wrap:anywhere}.pcard .po small{display:block;color:var(--bark2);font-size:13px;margin-top:2px}
.pcard .pp{text-align:right;white-space:nowrap}.pcard .pp b{font:800 20px var(--sans);font-variant-numeric:tabular-nums;color:var(--beet)}.pcard .pp small{display:block;color:var(--bark3);font-size:12px}
.pcard .est{font-size:14px;background:rgba(43,23,16,.05);border-radius:10px;padding:6px 10px}.pcard details{font-size:14px}.pcard summary{cursor:pointer;font-weight:600;color:var(--bark2)}.pcard details ul{margin:6px 0;padding-left:18px;color:var(--bark2)}
.pill{font:700 11px/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;padding:4px 8px;border-radius:99px;background:rgba(43,23,16,.08);color:var(--bark2)}.pill.bio{background:#e3f0e1;color:var(--ok)}.pill.warn{background:#fff0c2;color:#7a5200;text-transform:none;letter-spacing:0}
.mut{color:var(--bark3)}.subs{list-style:none;padding:0;margin:10px 0}.subs li{padding:8px 0;border-bottom:1px solid var(--line);font-size:15px}.subs small{display:block;color:var(--bark2)}
