:root{--wine:#58263c;--wine-deep:#28131e;--cream:#f6f3ed;--ink:#2e292b;--gold:#b89a6a;--muted:#5f565a;--line:#e6e0d6;--green:#4e7261;--red:#8b2e2e}
*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,select,input,textarea{font:inherit;min-height:44px}button{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #b9955d;outline-offset:3px}
a{color:var(--wine)}header{background:radial-gradient(ellipse at 20% 60%,#532436,transparent 65%),#28131e;color:#fff;padding:28px max(24px,calc((100vw - 1240px)/2)) 48px}
.topline{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff25;padding-bottom:20px;gap:16px;flex-wrap:wrap}
.brand{color:#fff;text-decoration:none;display:flex;align-items:center;gap:15px;line-height:1.25;letter-spacing:3px;font-size:13px;min-height:44px}
.brand small{font-size:10px;letter-spacing:2px;color:#e8d5c3}.monogram{display:grid;place-items:center;width:48px;height:48px;min-width:48px;border:1px solid #ba9d70;border-radius:50%;font:20px Georgia;color:#e6cea5}
.langswitch{display:flex;border:1px solid #c2a574;border-radius:4px;overflow:hidden}.langswitch button{background:transparent;color:#f0e2e5;border:0;padding:10px 18px;min-height:44px;font-weight:650;letter-spacing:1px}.langswitch button.active{background:#c2a574;color:#28131e}
.hero{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center;padding-top:42px}
.eyebrow{display:block;font-size:11px;letter-spacing:2px;font-weight:650;color:#7d5f36}.hero .eyebrow{color:#e2c79a;font-size:10px}
h1{font:clamp(32px,4vw,52px)/1.13 Georgia,serif;font-weight:400;letter-spacing:-1.2px;margin:20px 0}h1 em{color:#ecd3b8}
.hero p{color:#f0e2e5;line-height:1.8}.herobuttons{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}
.herocta{padding:12px 20px;border:1px solid #c2a574;background:#c2a574;color:#28131e;border-radius:3px;font-size:14px;min-height:48px;font-weight:600}
.herocta.dark{background:var(--wine);border-color:var(--wine);color:#fff}
.ghostcta{padding:12px 20px;border:1px solid #c2a574;background:transparent;color:#f7e9d3;border-radius:3px;font-size:14px;min-height:48px}
.ghostcta.darkghost{border-color:var(--wine);color:var(--wine)}
.hero-card{background:#fff;border-radius:10px;padding:26px;color:var(--ink);box-shadow:0 20px 60px #0003}
.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:16px 0}.hero-stats strong{font:28px Georgia;color:var(--wine);display:block}.hero-stats small{font-size:11px;color:var(--muted)}
.muted-light{font-size:12px;color:var(--muted)}
/* A1: the hero card sits on white — its note must keep the dark muted tone
   (>= 4.5:1 on white), not the pale hero text colour. */
.hero-card .muted-light{color:var(--muted)}
.ocrbox{background:#fdf6e3;border:1px solid #e7d9ae;border-radius:6px;padding:14px 16px;margin:12px 0}
.ocrbox strong{font-size:14px;color:#5d4a2f}
.sessioncounter{font-size:13px;font-weight:650;color:var(--wine);background:#f6f1e8;border:1px solid var(--line);border-radius:4px;padding:8px 12px}
tr.csverr td{color:var(--red)}
.navwrap{position:sticky;top:0;z-index:10;background:#f9f7f2f5;backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
nav{max-width:1240px;margin:auto;display:flex;gap:8px;overflow-x:auto;padding:0 16px}
nav button{flex-shrink:0;padding:14px 10px 12px;border:0;border-bottom:3px solid transparent;background:none;color:#4a4045;font-size:13px;min-height:48px}
nav button.active{color:var(--wine);border-bottom-color:var(--wine);font-weight:650}
.demobanner{max-width:1240px;margin:16px auto 0;padding:14px 18px;background:#fdf3d7;border:1px solid #d9b98a;border-radius:6px;display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap;font-size:13px}
main{max-width:1288px;margin:auto;padding:28px 24px 60px}
.welcome{background:#fffefa;border:2px dashed #c9bba8;border-radius:8px;padding:30px;margin-bottom:30px}
.steps{line-height:2;font-size:15px;padding-left:18px}
.sectiontitle{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:28px 0 20px;flex-wrap:wrap}
h2{font:29px/1.25 Georgia;font-weight:400;margin:10px 0 18px}h3{font:22px Georgia;margin:8px 0 12px}
.muted{font-size:13px;color:var(--muted);line-height:1.8}
.kpigrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin-bottom:24px}
.kpi{background:#fffefa;border:1px solid var(--line);border-radius:6px;padding:20px}.kpi span{font-size:10px;letter-spacing:1.4px;color:#6b5a43;display:block}.kpi strong{font:30px Georgia;color:var(--wine);display:block;margin:8px 0 4px}.kpi small{display:block;font-size:11px;color:var(--muted);line-height:1.7}
.panels{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:22px}
.panel{background:#fffefa;border:1px solid var(--line);border-radius:6px;padding:28px;min-width:0}.data-panel{margin-top:22px}
.barrow{display:grid;grid-template-columns:minmax(90px,170px) 1fr 90px;gap:13px;align-items:center;margin:16px 0;font-size:13px}.barrow b{text-align:right;font-size:13px;color:var(--wine)}
.track{background:#eee9e2;border-radius:20px;height:8px;overflow:hidden}.bar{height:100%;border-radius:20px;background:var(--wine)}
.textbutton{background:none;border:0;border-bottom:1px solid #bdab99;color:var(--wine);padding:10px 2px;font-size:13px}
.smallbtn{padding:9px 14px;border:1px solid #c9bba8;background:#fffefa;border-radius:4px;font-size:13px;min-height:44px;display:inline-flex;align-items:center}.smallbtn.danger{border-color:#c99;color:var(--red)}
.rowbuttons{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.filelabel{cursor:pointer}
.filters{display:flex;gap:12px;margin:20px 0;flex-wrap:wrap}
input,select,textarea{border:1px solid #c9bba8;border-radius:4px;background:#fffefa;padding:11px 14px;font-size:14px;color:var(--ink)}
.filters input{flex:1;min-width:180px}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:22px}
.card{background:#fffefa;border:1px solid var(--line);border-radius:6px;overflow:hidden;display:flex;flex-direction:column}
.cardphoto{height:210px;background:radial-gradient(ellipse at bottom,#f0e8de,#fff);display:grid;place-items:center;overflow:hidden}
.cardphoto img{width:100%;height:100%;object-fit:cover}.cardphoto .noimg{font:64px Georgia;color:#cbbfa8}
.cardbody{padding:20px;flex:1;display:flex;flex-direction:column}.cardbody h3{font-size:22px;margin:4px 0}
.badge{display:inline-block;background:#f6f1e8;border:1px solid #e4d8c8;border-radius:3px;padding:5px 9px;font-size:11px;color:var(--wine);margin-right:6px}
.badge.demo{background:#fdf3d7;border-color:#d9b98a;font-weight:700}.badge.ready{background:#e3efe7;color:var(--green)}.badge.late{background:#f7e3e3;color:var(--red)}
.tag{display:inline-block;font-size:11px;padding:5px 9px;background:#efe7e7;color:var(--wine);border-radius:3px;margin:8px 4px 8px 0}
.details{font-size:13px;line-height:1.8}.details p{margin:8px 0}
.cardactions{display:flex;gap:8px;margin-top:auto;padding-top:14px;flex-wrap:wrap}
.scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px;min-width:680px}
th,td{text-align:left;padding:13px 11px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:10px;letter-spacing:1px;color:#5d4a2f;background:#f6f1e8;white-space:nowrap}
.emptybox{border:1px dashed #c9bba8;border-radius:6px;padding:22px;text-align:center;color:var(--muted);background:#fffefa}
.vertical{border-bottom:1px solid var(--line);padding:20px 0}.vertical h3{font-size:21px}
.years{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.year{min-width:92px;background:#eee3e5;border:1px solid #ddccd2;border-radius:4px;padding:12px 15px}.year b{font:23px Georgia;color:var(--wine)}.year small{display:block;font-size:11px;margin-top:5px}
.hgroup{border-bottom:1px solid var(--line);padding:20px 0}.winechips{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.chip{background:#f6f1e8;border:1px solid var(--line);border-radius:20px;padding:7px 13px;font-size:12px}
ul.stratlist,ol.stratlist{margin:8px 0;padding-left:20px;font-size:14px;line-height:1.9}.stratlist .muted{font-size:12px}
dialog{border:1px solid var(--line);border-radius:8px;padding:28px;max-width:720px;width:calc(100vw - 32px);background:#fffefa;color:var(--ink)}
dialog::backdrop{background:#28131e99}
.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.formgrid label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:#5d4a2f}.formgrid label.wide{grid-column:1/-1}
.formgrid input,.formgrid textarea{width:100%}.photopreview img{max-height:160px;border-radius:6px;border:1px solid var(--line)}
.dialogactions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.formerror{color:var(--red);font-size:13px;min-height:18px}
footer{background:#28131e;color:#e8d8de;text-align:center;padding:38px 24px}.footerbrand{font-size:12px;letter-spacing:3px;color:#ecd3ac}footer p{font:20px Georgia;font-style:italic}footer small{font-size:10px;line-height:1.8;color:#d3bcc5}
.hide{display:none!important}
@media(max-width:1000px){.grid{grid-template-columns:repeat(2,1fr)}.hero{gap:24px}}
@media(max-width:700px){header{padding:14px 20px 20px}.hero{grid-template-columns:1fr;padding-top:16px;gap:16px}.hero h1{font-size:30px;margin:10px 0}.hero p{line-height:1.55}.hero-card{padding:18px}.hero-stats{grid-template-columns:repeat(3,1fr);margin:10px 0}.topline{padding-bottom:12px}.herobuttons{margin-top:8px}main{padding:20px 16px 40px}.panels{grid-template-columns:1fr}.grid{grid-template-columns:1fr}.formgrid{grid-template-columns:1fr}.sectiontitle{display:block}.barrow{grid-template-columns:100px 1fr 70px}h2{font-size:26px}table{min-width:620px}}
.privacypill{display:inline-flex;gap:9px;align-items:center;background:#ffffff14;border:1px solid #c2a57488;border-radius:999px;padding:9px 15px;font-size:12.5px;color:#f7e9d3;margin-top:6px;line-height:1.5}
.privacybox{background:#eef4ee;border:1px solid #b9cfbc;border-left:4px solid var(--green);border-radius:6px;padding:16px 18px;margin:14px 0}
.privacybox strong{color:var(--green);letter-spacing:.4px}.privacybox p{margin:6px 0 0;font-size:14px;line-height:1.7}
.simplehint{font-size:14px;background:#fdf6e3;border:1px solid #e7d9ae;border-radius:6px;padding:12px 15px;line-height:1.7}
