.workbook {
  --forest: #2B3D2F;
  --pine: #3D6B4F;
  --bracken: #C4933E;
  --peat: #6B4E3A;
  --water: #4A7C8C;
  --moss: #8BA888;
  --lichen: #A8B298;
  --cream: #F5F0E8;
  --parchment: #EDE7DA;
  --ink: #2A2A25;
  --muted: #6B6B60;
  --rule: #D4CCBC;
  --card-bg: #FDFBF7;
  --highlight: #FFF8E8;
  --tag-bg: #E8F0E4;
  --tag-text: #3D6B4F;
  --warning-bg: #FFF3E0;
  --warning-text: #8B5E3C;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
.workbook {
    --forest: #8FC9A0;
    --pine: #7DB892;
    --bracken: #D4A84E;
    --peat: #C4A07A;
    --water: #6AAEBB;
    --moss: #5A7A58;
    --lichen: #4A5A42;
    --cream: #1A1F1A;
    --parchment: #222822;
    --ink: #E0DDD5;
    --muted: #9A9A8E;
    --rule: #3A3D35;
    --card-bg: #252A25;
    --highlight: #2A2815;
    --tag-bg: #2A352A;
    --tag-text: #8FC9A0;
    --warning-bg: #2A2518;
    --warning-text: #D4A84E;
    color-scheme: dark;
  }
}
.workbook, .workbook * { box-sizing: border-box; margin: 0; padding: 0; }
.workbook {
  font-family: "Source Sans 3", "Segoe UI", system-ui, sans-serif;
  background: var(--cream);
  color: var(--ink);
  line-height: 1.6;
  padding-inline: 16px;
  padding-block: 0;
}
.workbook h1, .workbook h2, .workbook h3, .workbook h4, .workbook h5 {
  font-family: "Bitter", Georgia, serif;
  text-wrap: balance;
  line-height: 1.25;
}
.workbook .workbook-header {
  text-align: center;
  padding: 48px 0 32px;
  border-bottom: 3px solid var(--forest);
  margin-bottom: 0;
}
.workbook .workbook-header h1 {
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  color: var(--forest);
  margin-bottom: 4px;
  font-weight: 700;
  letter-spacing: -0.5px;
}
.workbook .workbook-header .subtitle {
  font-size: 1.05rem;
  color: var(--muted);
  font-weight: 300;
  margin-bottom: 12px;
}
.workbook .workbook-header .location-line {
  font-size: 0.85rem;
  color: var(--water);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.workbook .workbook-header .year-line {
  font-size: 0.9rem;
  color: var(--bracken);
  font-weight: 600;
  margin-top: 8px;
}
/* Navigation */
.workbook .month-nav {
  position: sticky;
  top: env(safe-area-inset-top, 0px);
  background: var(--cream);
  z-index: 100;
  padding: 12px 0;
  border-bottom: 1px solid var(--rule);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.workbook .month-nav-inner {
  display: flex;
  gap: 4px;
  min-width: max-content;
}
.workbook .month-nav button {
  font-family: "Source Sans 3", sans-serif;
  font-size: 0.8rem;
  font-weight: 600;
  padding: 6px 12px;
  border: 1px solid var(--rule);
  border-radius: 4px;
  background: var(--card-bg);
  color: var(--muted);
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.15s;
}
.workbook .month-nav button:hover { border-color: var(--pine); color: var(--pine); }
.workbook .month-nav button.active {
  background: var(--forest);
  color: var(--cream);
  border-color: var(--forest);
}
.workbook .month-nav button.season-autumn { border-left: 3px solid var(--bracken); }
.workbook .month-nav button.season-winter { border-left: 3px solid var(--water); }
.workbook .month-nav button.season-spring { border-left: 3px solid var(--pine); }
.workbook .month-nav button.season-summer { border-left: 3px solid var(--peat); }
/* Section tabs */
.workbook .section-tabs {
  display: flex;
  gap: 2px;
  margin: 16px 0 0;
  border-bottom: 2px solid var(--rule);
  overflow-x: auto;
}
.workbook .section-tabs button {
  font-family: "Source Sans 3", sans-serif;
  font-size: 0.82rem;
  font-weight: 600;
  padding: 8px 16px;
  border: none;
  background: none;
  color: var(--muted);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  white-space: nowrap;
  transition: all 0.15s;
}
.workbook .section-tabs button:hover { color: var(--forest); }
.workbook .section-tabs button.active {
  color: var(--forest);
  border-bottom-color: var(--forest);
}
/* Content sections */
.workbook .tab-content {  }
.workbook .tab-content.active { display: block; }
.workbook .month-section {  padding-top: 8px; }
.workbook .month-section.active { display: block; }
/* Climate box */
.workbook .climate-box {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  gap: 10px;
  padding: 16px;
  background: var(--parchment);
  border-radius: 6px;
  margin: 16px 0;
  border: 1px solid var(--rule);
}
.workbook .climate-stat {
  text-align: center;
}
.workbook .climate-stat .stat-value {
  font-family: "Bitter", serif;
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--forest);
  font-variant-numeric: tabular-nums;
}
.workbook .climate-stat .stat-label {
  font-size: 0.72rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
}
/* Week sections */
.workbook .week-block {
  margin: 16px 0;
  border-left: 3px solid var(--moss);
  padding-left: 16px;
}
.workbook .week-block h4 {
  font-size: 0.95rem;
  color: var(--forest);
  margin-bottom: 8px;
}
.workbook .week-block ul {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.workbook .week-block li {
  font-size: 0.88rem;
  padding-left: 18px;
  position: relative;
  line-height: 1.5;
}
.workbook .week-block li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--moss);
}
.workbook .week-block li.priority::before { background: var(--bracken); }
.workbook .week-block li.biodynamic::before { background: var(--water); }
/* Tables */
.workbook .sow-table-wrap {
  overflow-x: auto;
  margin: 16px 0;
}
.workbook table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.85rem;
}
.workbook table th {
  background: var(--forest);
  color: var(--cream);
  font-weight: 600;
  padding: 8px 10px;
  text-align: left;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.workbook table td {
  padding: 7px 10px;
  border-bottom: 1px solid var(--rule);
  vertical-align: top;
}
.workbook table tr:nth-child(even) { background: var(--parchment); }
.workbook table tr:hover { background: var(--highlight); }
/* Tags */
.workbook .tag {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 600;
  padding: 2px 7px;
  border-radius: 3px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.workbook .tag-sow { background: var(--tag-bg); color: var(--tag-text); }
.workbook .tag-plant { background: #E4E8F0; color: #4A5A7C; }
.workbook .tag-harvest { background: #F0E8E4; color: #7C5A4A; }
.workbook .tag-prune { background: #F0E4F0; color: #7C4A7C; }
.workbook .tag-bd { background: #E4F0F0; color: #4A7C7C; }
/* Reference sections */
.workbook .ref-section {
  margin: 20px 0;
}
.workbook .ref-section h3 {
  font-size: 1.1rem;
  color: var(--forest);
  margin-bottom: 12px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--rule);
}
.workbook .guild-card {
  background: var(--card-bg);
  border: 1px solid var(--rule);
  border-radius: 6px;
  padding: 16px;
  margin: 12px 0;
}
.workbook .guild-card h4 {
  font-size: 1rem;
  color: var(--peat);
  margin-bottom: 10px;
}
.workbook .guild-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
}
.workbook .guild-role {
  font-size: 0.82rem;
}
.workbook .guild-role strong {
  display: block;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--pine);
  margin-bottom: 2px;
}
/* Site analysis */
.workbook .analysis-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 16px;
  margin: 16px 0;
}
.workbook .analysis-card {
  background: var(--card-bg);
  border: 1px solid var(--rule);
  border-radius: 6px;
  padding: 16px;
}
.workbook .analysis-card h4 {
  font-size: 0.9rem;
  color: var(--water);
  margin-bottom: 8px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.workbook .analysis-card p, .workbook .analysis-card li {
  font-size: 0.85rem;
  line-height: 1.55;
}
.workbook .analysis-card ul {
  list-style: disc;
  padding-left: 18px;
}
.workbook .analysis-card ul li { margin: 3px 0; }
.workbook .data-pair {
  display: flex;
  justify-content: space-between;
  padding: 4px 0;
  border-bottom: 1px dotted var(--rule);
  font-size: 0.85rem;
}
.workbook .data-pair .label { color: var(--muted); }
.workbook .data-pair .value { font-weight: 600; color: var(--forest); font-variant-numeric: tabular-nums; }
/* Infrastructure */
.workbook .infra-item {
  display: flex;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--rule);
  font-size: 0.88rem;
}
.workbook .infra-num {
  font-family: "Bitter", serif;
  font-weight: 700;
  color: var(--bracken);
  font-size: 1.1rem;
  min-width: 28px;
}
.workbook .infra-item h5 {
  font-size: 0.9rem;
  color: var(--forest);
  margin-bottom: 2px;
}
.workbook .infra-item p { color: var(--muted); font-size: 0.82rem; }
/* Variety tables */
.workbook .variety-group {
  margin: 16px 0;
}
.workbook .variety-group h4 {
  font-size: 0.95rem;
  color: var(--peat);
  margin-bottom: 8px;
}
/* Notes/warnings */
.workbook .note-box {
  background: var(--warning-bg);
  border-left: 3px solid var(--bracken);
  padding: 12px 16px;
  border-radius: 0 6px 6px 0;
  margin: 12px 0;
  font-size: 0.85rem;
}
.workbook .note-box strong { color: var(--warning-text); }
/* Print styles */
@media print {
.workbook .month-nav, .workbook .section-tabs { display: none; }
.workbook .month-section, .workbook .tab-content { display: block !important; }
.workbook { font-size: 10pt; }
}
/* Responsive */
@media (max-width: 600px) {
.workbook .climate-box { grid-template-columns: repeat(3, 1fr); }
.workbook .guild-grid { grid-template-columns: 1fr; }
.workbook .analysis-grid { grid-template-columns: 1fr; }
.workbook .month-nav button { font-size: 0.72rem; padding: 5px 8px; }
.workbook table { font-size: 0.78rem; }
.workbook table th, .workbook table td { padding: 5px 6px; }
}
.workbook .container { max-width: 900px; margin: 0 auto; }
.workbook .month-header {
  padding: 16px 0 0;
}
.workbook .month-header h2 {
  font-size: 1.5rem;
  color: var(--forest);
  margin-bottom: 4px;
}
.workbook .month-header .month-subtitle {
  font-size: 0.88rem;
  color: var(--muted);
  font-style: italic;
  margin-bottom: 0;
}
.workbook .section-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 20px 0 10px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--rule);
}
.workbook .section-header h3 {
  font-size: 1rem;
  color: var(--peat);
  margin: 0;
  border: none;
  padding: 0;
}
.workbook .harvest-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 8px 0;
}
.workbook .harvest-chip {
  font-size: 0.78rem;
  padding: 3px 10px;
  border-radius: 12px;
  background: var(--tag-bg);
  color: var(--tag-text);
  font-weight: 500;
}
.workbook .harvest-chip.polytunnel {
  background: var(--warning-bg);
  color: var(--warning-text);
}
.workbook .bd-notes {
  background: var(--parchment);
  border: 1px solid var(--rule);
  border-radius: 6px;
  padding: 12px 16px;
  margin: 12px 0;
  font-size: 0.85rem;
}
.workbook .bd-notes strong { color: var(--water); }
.workbook .soil-layers {
  margin: 12px 0;
}
.workbook .soil-layer {
  display: flex;
  align-items: stretch;
  margin: 2px 0;
}
.workbook .soil-layer-bar {
  width: 16px;
  border-radius: 3px;
  margin-right: 10px;
  flex-shrink: 0;
}
.workbook .soil-layer-text {
  font-size: 0.82rem;
  padding: 4px 0;
}
.workbook .soil-layer-text strong { color: var(--forest); }
.workbook { padding-bottom: 48px; }
.workbook .month-nav { z-index: 10; }
.workbook .month-nav button:focus-visible { outline: 3px solid var(--water); outline-offset: -3px; }
.workbook.is-interactive .month-section:not(.active),
.workbook.is-interactive .tab-content:not(.active) { display: none; }
@media print {
  .site-header, body > footer { display: none; }
  .workbook.is-interactive .month-section, .workbook.is-interactive .tab-content { display: block !important; }
}
