/* Shared paper theme for the standalone coffee tools. */
:root { --cream:#f6f2e9; --paper:#fffdf8; --ink:#342b25; --muted:#716357; --green:#71513b; --green-soft:#eee5d7; --brown:#71513b; --line:#d9cfbf; --shadow:none; }
body { color:var(--ink); background:var(--cream); line-height:1.8; }
body::before { content:none; }
.site-shell { overflow:visible; }
.site-header { width:min(1180px,calc(100% - 48px)); display:flex; align-items:center; flex-wrap:wrap; gap:20px; padding:24px 0; border-bottom:1px solid var(--line); }
.brand { display:inline-flex; flex-shrink:1; min-width:0; }
.brand img { display:block; width:240px; max-width:100%; height:auto; }
.tool-nav { display:flex; flex-wrap:wrap; gap:4px 22px; margin-left:auto; }
.tool-nav a { display:flex; align-items:center; min-height:44px; padding:6px 0; font-size:.85rem; text-decoration:none; }
.tool-nav a[aria-current] { border-bottom:2px solid var(--brown); font-weight:700; }
.tool-nav a:hover { text-decoration:underline; text-underline-offset:6px; }
.hero { padding:48px 0 34px; }
.hero h1,.intro-copy h1 { font-family:"Yu Mincho","Hiragino Mincho ProN",serif; font-weight:500; font-size:clamp(2rem,4.5vw,3.8rem); line-height:1.55; letter-spacing:.02em; }
.hero h1 em,.intro-copy h1 em { color:var(--brown); font-style:normal; }
.hero > p:last-child { font-size:.95rem; line-height:1.9; }
.eyebrow { color:var(--brown); letter-spacing:.12em; }
.eyebrow > span { display:none; }
:is(button,input,select,textarea,a):focus-visible { outline:3px solid #93602e; outline-offset:4px; }
.primary-button,.secondary-button { min-height:48px; border-radius:0; box-shadow:none; padding:13px 20px; line-height:1.6; }
.primary-button { background:var(--brown); border-color:var(--brown); color:#fffdf8; }
.secondary-button { background:transparent; border:1px solid var(--line); color:var(--ink); }
.page-tabs { display:flex; flex-wrap:wrap; gap:0 26px; border-bottom:1px solid var(--line); margin-bottom:32px; padding:0; }
.page-tab { min-height:52px; background:transparent; color:var(--muted); border:0; border-bottom:3px solid transparent; border-radius:0; padding:12px 4px; font-size:.95rem; }
.page-tab.is-active { border-color:var(--brown); color:var(--ink); background:transparent; }
.page-grid { grid-template-columns:minmax(0,1fr) minmax(0,360px); gap:28px; }
.page-grid > *, .field-grid > *, .preset-box > *, .bean-detail-body > *, .archive-output > * { min-width:0; }
.form-section,.output-sticky { border:1px solid var(--line); background:var(--paper); box-shadow:none; border-radius:0; }
.form-section { padding:28px; }
.form-section:first-child { border-top:3px solid var(--brown); }
.section-heading,.output-heading { gap:12px; flex-wrap:wrap; margin-bottom:24px; }
.section-heading h2,.output-heading h2 { font-size:1.35rem; font-weight:600; line-height:1.6; letter-spacing:0; }
.section-number { color:var(--brown); }
.section-badge,.save-state { border-radius:0; font-size:.75rem; }
.preset-box { display:grid; grid-template-columns:minmax(0,1fr); padding:18px; border-left:2px solid var(--brown); }
.preset-box p { grid-column:auto; padding:0; font-size:.8rem; }
.preset-box select { width:100%; min-width:0; text-overflow:ellipsis; }
input:not([type=radio]):not([type=checkbox]),select,textarea { max-width:100%; min-height:46px; border-radius:0; border-color:var(--line); background:var(--paper); color:var(--ink); font-size:1rem; }
textarea { line-height:1.8; }
.rating-field { grid-template-columns:minmax(0,1fr); gap:12px; }
.rating-options { flex-wrap:wrap; gap:6px; }
.rating-option span { min-width:40px; min-height:44px; }
.output-panel { min-width:0; }
.output-sticky { position:static; padding:22px; }
.note-preview { min-height:0; border-top:3px solid var(--brown); }
.preview-head { padding:20px; background:#eee5d7; }
.preview-body { padding:16px 20px; }
.preview-head h3 { font:500 1.3rem/1.6 "Yu Mincho",serif; overflow-wrap:anywhere; }
.preview-fact { grid-template-columns:72px minmax(0,1fr); }
.preview-fact span { overflow-wrap:anywhere; }
.output-actions { gap:10px; }
.output-actions > button { width:100%; white-space:normal; }
.output-action-label { border-top:1px solid var(--line); padding-top:18px; }
.output-advanced { margin-top:18px; border-top:1px solid var(--line); }
.output-advanced summary { padding:14px 0; cursor:pointer; min-height:44px; font-size:.9rem; }
.output-advanced .output-actions { margin-top:0; }
.record-detail,.bean-detail,.selected-bean-card { border-radius:0; box-shadow:none; }
.record-selector { grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); }
.bean-archive-layout { grid-template-columns:230px minmax(0,1fr); gap:28px; }
.bean-detail-body,.record-detail-grid,.archive-output { grid-template-columns:repeat(2,minmax(0,1fr)); }
.bean-detail h3 { line-height:1.6; }
.screen { padding-block:42px; }
.intro-screen { gap:48px; }
.intro-copy h1 { margin-bottom:24px; }
.intro-lead { font-size:1rem; line-height:2; }
.hero-art { background:#eee5d7; border-radius:48% 48% 0 0; box-shadow:none; }
.question-copy h1,.question-copy h2 { font-family:"Yu Mincho",serif; font-weight:500; font-size:clamp(1.7rem,3vw,2.8rem); line-height:1.6; }
.choice-card,.result-card,.amount-card { border-radius:0; box-shadow:none; border:1px solid var(--line); background:var(--paper); }
.choice-card:hover,.amount-card:hover { border-color:var(--brown); }
.question-art { background:#eee5d7; border-radius:0; }
.site-footer { border-top:1px solid var(--line); padding-block:28px; }
[hidden] { display:none!important; }
@media(max-width:1000px) {
  .page-grid { grid-template-columns:minmax(0,1fr); }
  .output-panel { max-width:760px; width:100%; margin-inline:auto; }
  .bean-archive-layout { grid-template-columns:minmax(0,1fr); }
  .bean-selector { display:flex; flex-wrap:wrap; gap:8px; }
}
@media(max-width:680px) {
  .site-header { width:calc(100% - 32px); gap:10px; padding-block:20px 12px; }
  .brand img { width:200px; }
  .tool-nav { margin-left:0; width:100%; gap:0 20px; }
  .tool-nav a { font-size:.8rem; }
  .hero { padding-block:32px 26px; }
  .hero h1 { font-size:2.1rem; }
  .page-tabs { gap:0 14px; }
  .page-tab { font-size:.8rem; padding-inline:0; }
  .form-section { padding:22px 18px; }
  .field-grid,.bean-detail-body,.record-detail-grid,.archive-output { grid-template-columns:minmax(0,1fr); }
  .screen { width:calc(100% - 32px); padding-block:28px; }
  .intro-screen { gap:26px; }
  .hero-art { max-height:300px; }
  .section-heading h2 { font-size:1.25rem; }
}
@media print { .tool-nav,.output-advanced { display:none; } .output-sticky { border:0; } }
