:root{
  --ground:#181110;
  --ground-2:#221816;
  --surface:#241a17;
  --crema:#F0E4D2;
  --crema-dim:#B8A48D;
  --copper:#C98E5A;
  --copper-soft:rgba(201,142,90,.16);
  --tick:#4A3A32;
  --line:#33261f;
}
*{margin:0;padding:0;box-sizing:border-box}
body{
  background:var(--ground);
  color:var(--crema);
  font-family:'IBM Plex Sans Arabic',system-ui,sans-serif;
  min-height:100vh;
  display:flex;flex-direction:column;
  background-image:radial-gradient(ellipse 80% 50% at 50% 0%, #241a16 0%, var(--ground) 60%);
}
.hidden{display:none !important}

header{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 22px;
  max-width:680px;width:100%;margin:0 auto;
}
.brand{display:flex;align-items:baseline;gap:12px}
.brand-ar{font-size:26px;font-weight:700}
.brand-domain{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.14em;color:var(--copper);direction:ltr}
.lang-toggle{
  background:none;border:1px solid var(--line);color:var(--crema-dim);
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  padding:7px 14px;border-radius:20px;cursor:pointer;
}
.lang-toggle:hover{border-color:var(--copper);color:var(--copper)}

main{flex:1;max-width:680px;width:100%;margin:0 auto;padding:12px 22px 48px}
h1{font-size:clamp(26px,6vw,34px);font-weight:700;line-height:1.3}
.sub{color:var(--crema-dim);font-weight:300;margin-top:6px;margin-bottom:30px}

.field{margin-bottom:26px}
.field>label{
  display:block;font-size:14px;color:var(--crema-dim);
  margin-bottom:10px;letter-spacing:.02em;
}
.field output{color:var(--copper);font-weight:600}

select, input[type=text], textarea{
  width:100%;
  background:var(--surface);border:1px solid var(--line);
  color:var(--crema);font-family:inherit;font-size:16px;
  padding:13px 15px;border-radius:12px;
  appearance:none;
}
select:focus, input:focus, textarea:focus, button:focus-visible{
  outline:2px solid var(--copper);outline-offset:1px;
}
input[type=text]{margin-top:10px}

/* segmented + chips */
.seg,.chips{display:flex;flex-wrap:wrap;gap:9px}
.seg button,.chips button{
  background:var(--surface);border:1px solid var(--line);
  color:var(--crema-dim);font-family:inherit;font-size:14px;
  padding:10px 16px;border-radius:22px;cursor:pointer;
  transition:all .15s;
}
.seg button.active,.chips button.active{
  background:var(--copper-soft);border-color:var(--copper);color:var(--copper);
  font-weight:600;
}

/* acidity slider */
input[type=range]{
  width:100%;accent-color:var(--copper);height:32px;
}

.cta{
  width:100%;
  background:var(--copper);color:var(--ground);
  border:none;font-family:inherit;font-size:17px;font-weight:700;
  padding:16px;border-radius:14px;cursor:pointer;
  margin-top:8px;
  transition:transform .1s;
}
.cta:active{transform:scale(.98)}
.cta.secondary{background:var(--copper-soft);color:var(--copper);border:1px solid var(--copper)}

/* loading dial (from landing page) */
#loading{padding:70px 0;text-align:center}
.dial{position:relative;max-width:340px;margin:0 auto 26px}
.ticks{display:flex;justify-content:space-between;align-items:flex-end;height:24px;border-bottom:1px solid var(--tick)}
.ticks i{display:block;width:1px;background:var(--tick);height:9px}
.ticks i:nth-child(5n+1){height:18px}
.marker{
  position:absolute;bottom:-6px;inset-inline-start:0;
  width:12px;height:12px;background:var(--copper);border-radius:50%;
  box-shadow:0 0 0 4px var(--copper-soft), 0 0 22px rgba(201,142,90,.35);
}
.marker.moving{animation:sweep 1.6s ease-in-out infinite alternate}
@keyframes sweep{from{inset-inline-start:8%}to{inset-inline-start:88%}}
@media (prefers-reduced-motion:reduce){.marker.moving{animation:none;inset-inline-start:62%}}
.loading-text{color:var(--crema-dim)}

/* recipe card */
.recipe-card{
  background:var(--ground-2);border:1px solid var(--line);
  border-radius:18px;padding:24px;margin-bottom:26px;
}
.recipe-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}
.recipe-head h2{font-size:20px;font-weight:700}
.badge{
  font-family:'IBM Plex Mono',monospace;font-size:11px;
  color:var(--copper);border:1px solid var(--copper);
  padding:4px 10px;border-radius:14px;white-space:nowrap;
}
.numbers{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));
  gap:12px;margin-bottom:18px;
}
.num{
  background:var(--surface);border-radius:12px;padding:12px 14px;
}
.num .k{font-size:12px;color:var(--crema-dim);margin-bottom:4px}
.num .v{font-size:17px;font-weight:600}
.num .v small{font-size:12px;color:var(--crema-dim);font-weight:400;display:block;margin-top:2px}

.pours{margin-bottom:18px}
.pours .pour{
  display:flex;justify-content:space-between;
  padding:9px 4px;border-bottom:1px dashed var(--line);
  font-size:14px;color:var(--crema-dim);
}
.pours .pour b{color:var(--crema)}

.expert h3{
  font-size:13px;color:var(--copper);font-weight:600;
  margin:16px 0 6px;letter-spacing:.03em;
}
.expert p{font-size:15px;line-height:1.75;font-weight:300}

.feedback{margin-bottom:22px}
.feedback>p{color:var(--crema-dim);margin-bottom:12px}
.feedback textarea{margin-top:12px}
#refine{margin-top:12px}

.actions{display:flex;gap:10px}
.actions button{
  flex:1;background:none;border:1px solid var(--line);color:var(--crema-dim);
  font-family:inherit;font-size:14px;padding:12px;border-radius:12px;cursor:pointer;
}
.actions button:hover{border-color:var(--copper);color:var(--copper)}

footer{
  text-align:center;padding:22px;
  font-family:'IBM Plex Mono',monospace;font-size:12px;
  color:var(--crema-dim);letter-spacing:.08em;
}
