/* Build 3 screens: Chop or wait, Season clock, Dry room, Season card, the Grows board and the bud rot alert additions.
   App tokens only (app.css). House rules: no gradients, glows, shadows or dials; radii 0/3/16/999; caps only on BETA;
   lime only on the one primary button; orange means High and yellow Medium, nowhere else. */

/* ---------- page frame ---------- */
.sv-page{max-width:calc(760px + 2 * var(--gutter));padding-top:14px;padding-bottom:40px}
.sv-back{display:inline-flex;align-items:center;min-height:44px;color:var(--violet);font-family:var(--sans);font-weight:600;font-size:var(--fs-ui);line-height:1}
.sv-chev{margin-right:4px}
@media (hover:hover){.sv-back:hover{text-decoration:underline;text-underline-offset:3px}}
.sv-h1{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:2px;font-family:var(--serif);font-weight:500;font-size:32px;line-height:1.15;color:var(--fg)}
.sv-h1 .beta{margin-left:0;vertical-align:middle}
.sv-lede{margin-top:10px;max-width:42ch;font-family:var(--serif);font-size:var(--fs-lede);line-height:1.45;color:var(--body);text-wrap:pretty}
.sv-meta{margin-top:8px;font-size:var(--fs-small);line-height:1.45;color:var(--dek)}
.sv-sec{margin-top:28px}
.sv-sec>h2{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding-top:10px;border-top:1px solid var(--rule-strong);font-family:var(--serif);font-weight:500;font-size:var(--fs-h2);line-height:1.2;color:var(--fg)}
.sv-note{margin-top:12px;font-size:var(--fs-small);line-height:1.45;color:var(--meta)}
.sv-note b{font-weight:600;color:var(--dek)}
.sv-links{display:flex;flex-wrap:wrap;gap:0 20px;margin-top:6px}
.sv-link{min-height:40px;font-size:var(--fs-small)}
.sv-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px;border-top:1px solid var(--rule)}
.sv-facts>div{padding:12px 12px 12px 0;border-bottom:1px solid var(--rule)}
.sv-facts>div:nth-child(2n){padding-left:12px;border-left:1px solid var(--rule)}
.sv-facts dt{font-family:var(--sans);font-weight:600;font-size:12px;line-height:1.3;color:var(--meta)}
.sv-facts dd{margin:4px 0 0;font-family:var(--serif);font-size:22px;line-height:1.2;color:var(--fg)}
.sv-facts dd small{display:block;margin-top:3px;font-family:var(--sans);font-size:12px;line-height:1.3;color:var(--meta)}
.sv-btns{display:flex;gap:10px;margin-top:20px}
.sv-btns .btn-primary{width:auto;flex:1}

/* ---------- keys (every chart: a compact visual key with words) ---------- */
.sv-key{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:12px;list-style:none;font-size:12px;line-height:1.3;color:var(--meta)}
.sv-key li{display:inline-flex;align-items:center;gap:6px}
.sv-key i{display:inline-block;width:14px;height:10px;background:var(--track)}
.sv-key i.k-line{width:16px;height:2px}
.sv-key i.k-violet{background:var(--violet)}
.sv-key i.k-grey{background:var(--dek)}
.sv-key i.k-white{width:0;height:12px;border-left:2px solid var(--fg);background:none}
.sv-key i.k-dash{height:0;background:none;border-top:2px dotted var(--dek)}
.sv-key i.k-yellow{height:0;background:none;border-top:2px dashed var(--med)}
.sv-key i.k-orange{height:0;background:none;border-top:2px dashed var(--high)}

/* ---------- charts (SVG) ---------- */
.sv-chart{display:block;width:100%;max-width:100%;height:auto;margin-top:12px;overflow:visible}
.sv-chart text{font-family:var(--sans);font-size:11px;fill:var(--meta)}
.sv-chart text.sv-cfig{font-family:var(--mono);font-size:10.5px}
.sv-chart text.sv-cmark{font-weight:600;fill:var(--dek)}
.sv-cgrid{stroke:var(--rule);stroke-width:1}
.sv-c14{stroke:var(--violet);stroke-width:1;stroke-dasharray:4 4}
.sv-cline{fill:none;stroke:var(--body);stroke-width:1.75}
.sv-m14{stroke:var(--violet);stroke-width:1.25}
.sv-mpist{stroke:var(--dek);stroke-width:1.25}
.sv-mtoday{stroke:var(--fg);stroke-width:2}
.sv-mfin{stroke:var(--dek);stroke-width:1.25;stroke-dasharray:2 3}
.sv-cbase{stroke:var(--rule-2);stroke-width:1}
.sv-t12{stroke:var(--med);stroke-width:1;stroke-dasharray:4 3}
.sv-t16{stroke:var(--high);stroke-width:1;stroke-dasharray:4 3}
.sv-b0{fill:var(--rule-2)}
.sv-b1{fill:var(--med)}
.sv-b2{fill:var(--high)}

/* ---------- Chop or wait: the timeline ---------- */
.sv-tl{list-style:none;margin-top:10px}
.sv-ti{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;row-gap:6px;padding-block:12px;border-bottom:1px solid var(--rule)}
.sv-ti .t-when{font-family:var(--mono);font-weight:500;font-size:var(--fs-fig);line-height:1.3;color:var(--fg)}
.sv-ti .t-tag{align-self:center;justify-self:end;font-family:var(--sans);font-weight:600;font-size:12px;line-height:1.2;white-space:nowrap}
.sv-ti .t-chop{padding:2px 6px;border:1px solid var(--fg);border-radius:var(--r-tag);color:var(--fg)}
.sv-ti .t-rot{color:var(--dek)}
.sv-ti .t-bar{grid-column:1/-1;height:8px;background:var(--track)}
.sv-ti .t-bar i{display:block;height:100%}
.sv-ti.wet .t-bar i{background:var(--water)}
.sv-ti.dry .t-bar i{background:var(--rule-2)}
.sv-ti.chop .t-bar i{background:var(--fg)}
.sv-ti .t-what{grid-column:1/-1;font-size:13.5px;line-height:1.4;color:var(--dek)}

/* ---------- Season clock ---------- */
.sv-soon{padding:14px 16px 16px;border:1px dashed var(--rule-2)}
.sv-soon>h2{padding-top:0;border-top:0}

/* ---------- Dry room ---------- */
.sv-days{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.sv-days a{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border:1px solid var(--rule-2);border-radius:var(--r-pill);font-family:var(--sans);font-weight:600;font-size:13px;color:var(--dek)}
.sv-days a.on{border-color:var(--fg);color:var(--fg)}
.sv-calls{list-style:none;margin-top:12px}
.sv-call{padding-block:14px 15px;border-bottom:1px solid var(--rule)}
.sv-call .c-when{display:block;font-family:var(--sans);font-weight:600;font-size:var(--fs-small);line-height:1.3;color:var(--violet)}
.sv-call .c-what{display:block;margin-top:3px;font-family:var(--serif);font-weight:500;font-size:var(--fs-title);line-height:1.3;color:var(--fg)}
.sv-call .c-why{display:block;margin-top:4px;font-size:13.5px;line-height:1.45;color:var(--meta)}
.sv-grid{margin-top:10px}
.sv-rows{list-style:none}
.sv-row{display:grid;grid-template-columns:52px minmax(0,1fr);column-gap:10px;align-items:center;padding-block:9px;border-bottom:1px solid var(--rule)}
.sv-day{font-family:var(--sans);font-weight:600;font-size:var(--fs-small);line-height:1.2;color:var(--fg)}
.sv-cells{display:grid;grid-template-columns:repeat(24,minmax(0,1fr));gap:1px}
.sv-cells i{display:block;box-sizing:border-box;height:16px;background:var(--track)}
.sv-cells i.c-open,.sv-key i.c-open{background:var(--dek)}
.sv-cells i.c-fast,.sv-key i.c-fast{background:none;border:1.5px solid var(--dek)}
.sv-cells i.c-damp,.sv-key i.c-damp{background:rgba(106,168,255,.5)}
.sv-cells i.c-rain,.sv-key i.c-rain{background:var(--water)}
.sv-cells i.c-smoke,.sv-key i.c-smoke{background:var(--input-line)}
.sv-key i.c-fast{box-sizing:border-box}
.sv-ticks{display:grid;grid-template-columns:52px minmax(0,1fr);column-gap:10px;margin-top:6px}
.sv-ticks div{display:grid;grid-template-columns:repeat(4,1fr);font-family:var(--mono);font-size:10.5px;color:var(--meta)}

/* ---------- Season card ---------- */
.sv-sc{margin-top:18px;padding:22px 20px 20px;border:1px solid var(--rule-2);background:var(--surface)}
.sv-sc-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--rule)}
.sv-sc-top .np-top{gap:8px}
.sv-sc-top img.c-cube{width:auto;height:22px}
.sv-sc-top img.c-word{width:auto;height:15px}
.sv-sc-top .c-kind{font-family:var(--sans);font-weight:700;font-size:13px;color:var(--violet)}
.sv-sc h2{margin-top:14px;font-family:var(--serif);font-weight:500;font-size:26px;line-height:1.15;color:var(--fg)}
.sv-sc .c-sub{margin-top:6px;font-size:var(--fs-small);line-height:1.45;color:var(--dek)}
.sv-sc .c-logged{color:var(--meta)}
.sv-sc .sv-facts dd{font-size:20px}
.sv-sc-foot{margin-top:16px}
.sv-sc-foot p{font-size:12px;line-height:1.45;color:var(--meta)}
.sv-sc-foot .c-fp{margin-top:8px;color:var(--dek)}
.sv-hash{display:block;margin-top:4px;font-family:var(--mono);font-size:11px;line-height:1.5;color:var(--dek);word-break:break-all}

/* ---------- Grows board ---------- */
.sv-gb-list{list-style:none;border-top:1px solid var(--rule)}
.sv-gb-item{padding-block:16px;border-bottom:1px solid var(--rule)}
.sv-gb-item .g-name{font-family:var(--serif);font-weight:500;font-size:var(--fs-title);line-height:1.3;color:var(--fg)}
.sv-gb-item .g-meta{margin-top:2px;font-size:var(--fs-small);line-height:1.4;color:var(--meta)}
.sv-gb-item .g-lead{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin-top:10px}
.sv-gb-item .g-risk{display:inline-flex;align-items:center;font-family:var(--sans);font-weight:600;font-size:var(--fs-ui);color:var(--fg)}
.sv-gb-item .g-risk .beta{margin-left:6px}
.sv-gb-item .win{font-family:var(--sans);font-weight:600;font-size:var(--fs-small);color:var(--violet)}
.sv-gb-item .g-act{margin-top:6px;font-size:13.5px;line-height:1.45;color:var(--dek)}
.sv-gb-item .g-stale{margin-top:6px;font-size:var(--fs-small);line-height:1.45;color:var(--meta)}
.sv-gb-item .g-more{margin-top:2px}
.sv-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;margin-top:12px;list-style:none}
/* the level is the bar's weight as well as its colour: Low thin, Medium thicker, High thickest */
.sv-strip li{padding-top:5px;border-top:2px solid var(--rule-2);font-family:var(--mono);font-size:10.5px;line-height:1;color:var(--meta)}
.sv-strip li.l1{border-top:4px solid var(--med)}
.sv-strip li.l2{border-top:6px solid var(--high)}
.sv-gb+.ff-h2{margin-top:36px}

/* ---------- bud rot alert additions ---------- */
.sv-since-p{margin-top:8px;font-family:var(--serif);font-size:var(--fs-lede);line-height:1.45;color:var(--body)}
.sv-alert-links{margin-top:16px}

@media (min-width:840px){
  .sv-page{padding-top:24px}
  .sv-h1{font-size:40px}
  .sv-row,.sv-ticks{grid-template-columns:72px minmax(0,1fr)}
  .sv-cells i{height:20px}
}
