:root{--ink:#172b25;--muted:#597168;--dark:#102923;--line:#dee7df;--bg:#f8faf7;--green:#1f7957;--pink:#f096ff}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{color:var(--ink);background:#eaf0e9;font:14px/1.45 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:#24764c;text-underline-offset:3px}a:focus-visible,button:focus-visible{outline:3px solid #d5a34e;outline-offset:3px}.app{height:100dvh;min-height:380px;display:flex;flex-direction:column}.topbar{background:var(--dark);height:54px;flex:none;color:white;display:flex;gap:17px;align-items:center;padding:0 22px;z-index:1001}.brand{display:flex;align-items:center;gap:10px;color:white;text-decoration:none;font-size:17px;font-weight:780;letter-spacing:-.035em}.brand img{width:26px;height:26px}.separator{height:23px;border-left:1px solid #ffffff35}.product-name{font-weight:620;font-size:13px;color:#e0eee3}.topbar nav{margin-left:auto}.topbar nav a{color:#cddfd5;text-decoration:none;font-size:12px;font-weight:660}.topbar nav a:hover{text-decoration:underline}.layout{flex:1;display:flex;min-height:0}.sidebar{width:320px;flex:none;background:#fff;border-right:1px solid var(--line);overflow-y:auto;overscroll-behavior:contain;padding:27px 24px 18px;z-index:400}.eyebrow{display:flex;gap:9px;align-items:center;margin:0 0 19px;font-weight:800;letter-spacing:.12em;font-size:10px;color:#39815f}.online-dot{display:inline-block;width:7px;height:7px;background:#30ae6a;border-radius:50%;box-shadow:0 0 0 3px #30ae6a28;flex:none}h1{font-size:31px;line-height:1.09;letter-spacing:-.045em;margin:0 0 12px;max-width:265px}h2{font-size:14px}.lead{font-size:13px;color:var(--muted);margin:0 0 22px;line-height:1.63}.reading{border-radius:10px;border:1px solid #c6e1ce;background:#f1f9f2;padding:17px 17px 16px}.reading-top{display:flex;justify-content:space-between;gap:10px;align-items:center}.reading h2{font-size:10px;letter-spacing:.06em;margin:0;color:#517560;font-weight:850}.reading-top span{font-size:10px;color:#3b7352;white-space:nowrap}.score-line{display:flex;gap:8px;align-items:baseline;margin:11px 0 4px}.score-line strong{font-size:64px;line-height:1;letter-spacing:-.065em;font-variant-numeric:tabular-nums;font-weight:800;color:#185d42}.score-line span{font-weight:650;color:#7b9d85;font-size:16px}.score-explanation{font-size:12px;line-height:1.48;color:#466b54}.location{font:11px/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;color:#5e7e69;border-top:1px solid #d1e9d6;margin-top:16px;padding-top:11px}.key{padding:21px 0 18px;border-bottom:1px solid var(--line)}.key-title{display:flex;justify-content:space-between;gap:6px;color:#617c6d;font-size:10px;letter-spacing:.08em;font-weight:800}.key-title span{font-size:10px;letter-spacing:0;color:#839689;font-weight:600}.swatches{display:flex;gap:9px 13px;flex-wrap:wrap;margin:14px 0 12px}.swatches>span{font-size:11px;color:#3e574a;display:inline-flex;gap:5px;align-items:center}.swatch{width:11px;height:11px;display:inline-block;border:1px solid #00000014;border-radius:3px}.swatch.crops{background:#f096ff}.swatch.tree{background:#006400}.swatch.grass{background:#ffff4c}.swatch.built{background:#fa0000}.swatch.bare{background:#b4b4b4}.swatch.water{background:#0064c8}.key-note{font-size:11px;line-height:1.53;color:#819085;margin:0}.method{padding-top:17px}.method h2{font-size:12px;margin:0 0 10px}.method p{color:#68786f;font-size:11.5px;line-height:1.65;margin:0 0 11px}.method>a{font-size:11px;font-weight:700}.sidebar footer{border-top:1px solid var(--line);margin-top:22px;padding:14px 0;font-size:11px;color:#78877f}.map-shell{position:relative;flex:1;min-width:0;overflow:hidden;background:#dce8e4}#map{position:absolute;inset:0;background:#dae8e0;cursor:crosshair}.leaflet-container{font:inherit}.leaflet-tile-pane .farmland-wms{image-rendering:auto}.map-label{position:absolute;z-index:420;top:15px;left:16px;background:#fffefeeb;border:1px solid #e3ebdf;display:flex;align-items:center;gap:9px;padding:11px 13px;border-radius:8px;box-shadow:0 2px 15px #1a3a2a14;font-size:11px;color:#6f8376;pointer-events:none}.map-label strong{font-size:11px;color:#244535;letter-spacing:.05em}.map-separator{color:#c3cfc7}.map-bottom{position:absolute;z-index:420;left:16px;right:16px;bottom:12px;display:flex;gap:10px;justify-content:space-between;flex-wrap:wrap;font-size:10px;color:#446655;pointer-events:none;text-shadow:0 1px #fff,0 0 6px #fff}.map-pointer{position:absolute;z-index:450;pointer-events:none;min-width:103px;background:#103d2eea;color:#fff;padding:8px 11px;border-radius:6px;box-shadow:0 6px 24px #081f1840;transform:translate(13px,-24px)}.map-pointer[hidden]{display:none}.map-pointer span{display:block;white-space:nowrap;font-size:18px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.1}.map-pointer small{display:block;font:10px/1.3 ui-monospace,SFMono-Regular,Consolas,monospace;color:#c6e4d1;margin-top:4px}.map-failure{position:absolute;left:50%;top:70px;z-index:600;transform:translateX(-50%);width:min(370px,calc(100% - 30px));background:#fff8ef;border:1px solid #edcaaa;padding:12px 14px;border-radius:8px;font-size:12px;color:#7b5232;box-shadow:0 10px 30px #20372a21}.map-failure[hidden]{display:none}.leaflet-top.leaflet-right{top:8px;right:8px}.leaflet-control-zoom{border:1px solid #d6e1d8!important;box-shadow:0 2px 12px #243e301b!important}.leaflet-control-zoom a{color:#285b40}.leaflet-control-attribution{font-size:9px!important;max-width:75vw}@media(max-width:840px){.sidebar{width:288px;padding:23px 19px}h1{font-size:27px}.map-label{top:12px;left:11px}.map-label span:last-child{display:none}}@media(max-width:640px){.app{height:100dvh}.topbar{height:48px;padding:0 14px}.brand{font-size:15px}.separator{height:18px}.product-name{font-size:12px}.layout{flex-direction:column}.sidebar{width:100%;height:auto;overflow:visible;display:grid;grid-template-columns:minmax(0,1fr) 155px;align-items:start;gap:0 14px;padding:10px 14px;border-right:0;border-bottom:1px solid var(--line);z-index:470}.eyebrow{grid-column:1/-1;margin:0 0 7px;font-size:9px}.sidebar h1{font-size:19px;margin:0 0 5px;max-width:none}.lead{font-size:11px;margin:0;max-width:430px}.reading{grid-column:2;grid-row:2/span 2;padding:9px 10px}.reading h2{font-size:9px;line-height:1.2}.reading-top span{font-size:9px}.score-line{margin:5px 0 0}.score-line strong{font-size:37px}.score-line span{font-size:11px}.score-explanation{display:none}.location{margin-top:5px;padding-top:6px;font-size:9px}.key,.method,.sidebar footer{display:none}.map-shell{min-height:210px;flex:1}.map-label{top:10px;left:10px;padding:9px}.map-bottom{font-size:9px;left:10px;bottom:10px}.map-bottom span:last-child{display:none}.leaflet-control-attribution{max-width:90vw}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Caloric output v1: all classification keys replaced by one red-green production scale. */
.capacity-gradient{height:17px;margin-top:14px;border-radius:5px;background:linear-gradient(90deg,#7e1323 0%,#d65537 21%,#e6c350 44%,#9ab756 65%,#4d9a4a 83%,#075d37 100%);border:1px solid #27463224;box-shadow:inset 0 1px 2px #00000011}
.gradient-labels{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:750;color:#557161;margin:7px 0 11px}
.capacity-count{border-top:1px solid #cfe6d4;margin-top:14px;padding-top:13px}
.capacity-label{font-size:10px;font-weight:800;letter-spacing:.06em;color:#577d69;margin-bottom:5px}
.capacity-count strong{display:block;font-size:29px;line-height:1.15;letter-spacing:-.035em;color:#204c3b;font-variant-numeric:tabular-nums}
.capacity-note{font-size:10px;line-height:1.55;color:#748875;margin-top:6px}
.key-title strong{color:#54745f;font-size:11px}
.map-pointer small{white-space:nowrap}
.map-pointer small:first-of-type{color:#fff1cc;font:12px/1.35 system-ui,-apple-system,"Segoe UI",sans-serif;font-weight:750}
.score-line strong{font-size:61px}
@media(max-width:640px){.capacity-count{padding-top:5px;margin-top:6px}.capacity-count strong{font-size:19px}.capacity-label{font-size:7px;line-height:1.25}.capacity-note{display:none}.reading{grid-row:2/span 2}.score-line strong{font-size:35px}.sidebar{grid-template-columns:minmax(0,1fr) 158px}.key{display:none}}

/* Food-output totals for arbitrary freehand areas. Keep regional answer above local hover. */
.region-metric{background:#eff8f0;border:1px solid #c6ddc9;border-radius:11px;padding:17px 16px 14px;margin:0 0 18px}
.region-heading{display:flex;gap:12px;justify-content:space-between;align-items:flex-start}
.region-heading h2{color:#38654d;font-size:10px;font-weight:850;letter-spacing:.06em;line-height:1.3;margin:0}
.region-heading span{font-size:10px;white-space:nowrap;color:#52735d}
#region-total{display:block;font-size:38px;line-height:1.14;letter-spacing:-.048em;color:#194c36;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin-top:9px}
#region-hint{font-size:12px;line-height:1.54;color:#577761;margin:6px 0 9px}
.region-stat-line{display:flex;gap:8px;justify-content:space-between;flex-wrap:wrap;font-size:10px;border-top:1px solid #d6e7d9;padding-top:9px;color:#708474}
.draw-toolbar{position:absolute;top:63px;left:16px;z-index:700;display:flex;gap:5px;padding:5px;border:1px solid #d7e4da;border-radius:9px;background:#fffffff2;box-shadow:0 2px 16px #0d2f211f}
.draw-toolbar button{font-size:12px;min-height:36px;padding:7px 10px;border:1px solid transparent;border-radius:6px;font-weight:700;cursor:pointer;background:transparent;color:#3c624e;white-space:nowrap}
.draw-toolbar button[aria-pressed="true"]{background:#176444;border-color:#176444;color:#fff}
.draw-toolbar button:hover:not([aria-pressed="true"]){background:#eaf3e9}
.draw-toolbar button.clear-region{border-left:1px solid #dde8df;border-radius:0 6px 6px 0;color:#7c5151}
.draw-hint{position:absolute;z-index:640;top:117px;left:16px;padding:7px 10px;border-radius:6px;background:#fffefae9;box-shadow:0 2px 12px #12371c19;font-size:11px;color:#58745e;pointer-events:none}
.map-shell.freehand-mode #map{cursor:crosshair!important;touch-action:none}
.map-shell.move-mode #map{cursor:grab!important;touch-action:pan-x pan-y}
.map-shell.freehand-mode .leaflet-interactive{pointer-events:none}
.region-map-result{position:absolute;z-index:600;right:18px;bottom:39px;padding:12px 15px;border:1px solid #bfd6c5;border-radius:9px;background:#fffffff5;box-shadow:0 4px 20px #133e251f;min-width:170px;max-width:min(350px,80%)}
.region-map-result[hidden]{display:none}
.region-map-result span{font-size:9px;letter-spacing:.06em;font-weight:800;color:#5e7864;display:block}
.region-map-result strong{display:block;font-size:24px;font-weight:850;letter-spacing:-.03em;color:#23573c;font-variant-numeric:tabular-nums}
@media(max-width:840px){.draw-toolbar{left:11px}}
@media(max-width:640px){
 .sidebar{grid-template-columns:minmax(0,1fr) 158px;gap:0 10px;padding:9px 11px}
 .sidebar h1{font-size:18px}
 .lead{font-size:10px;line-height:1.35}
 .region-metric{grid-column:2;grid-row:2/span 2;padding:9px;margin:0;border-radius:8px}
 .region-heading{display:block}
 .region-heading h2{font-size:8px}
 .region-heading span{font-size:8px}
 #region-total{font-size:21px;margin-top:3px}
 #region-hint{font-size:9px;line-height:1.35;margin:3px 0}
 .region-stat-line{font-size:9px;padding-top:4px}
 .reading{display:none}
 .draw-toolbar{left:9px;top:48px;gap:0;padding:3px}
 .draw-toolbar button{font-size:10px;min-height:32px;padding:7px 8px}
 .draw-hint{top:94px;left:9px;right:9px;font-size:9px;padding:6px 8px;width:max-content;max-width:calc(100% - 18px)}
 .region-map-result{right:10px;bottom:35px;padding:8px 11px}
 .region-map-result strong{font-size:19px}
}

/* Map-first interface: one primary regional result, quiet local secondary reading. */
.sidebar{width:308px;padding:20px 21px 15px}
.sidebar .eyebrow{margin-bottom:10px}
.sidebar h1{font-size:25px;line-height:1.1;max-width:none;margin:0 0 8px}
.sidebar .lead{font-size:12.5px;line-height:1.52;margin:0 0 17px}
.region-metric{background:#f7f9f7;border:1px solid #d8e6dc;padding:15px 14px 13px;margin:0 0 13px}
.region-heading{align-items:center;gap:7px}
.region-heading h2{color:#476a56;font-size:10px}
.region-heading span{font-size:10px}
#region-total{font-size:42px;color:#134a33;letter-spacing:-.045em;margin-top:7px}
#region-hint{font-size:11.5px;line-height:1.48;margin:7px 0 11px}
.region-stat-line{font-size:10px}
.reading{background:#fff;border:1px solid #e2e9e4;padding:13px 14px;margin:0}
.reading h2{color:#678073;font-size:10px}
.reading-top span{color:#71897b}
.reading .score-line{margin:7px 0 0}
.reading .score-line strong{font-size:33px;letter-spacing:-.04em;color:#396d4e}
.reading .score-line span{font-size:13px}
.reading .score-explanation{font-size:10.5px;line-height:1.45;color:#6c8576}
.reading .capacity-count{margin-top:10px;padding-top:10px}
.reading .capacity-count strong{font-size:22px}
.reading .capacity-note{font-size:10px}
.reading .location{font-size:10px;margin-top:10px;padding-top:8px}
.key{padding:17px 0 15px}
.key-title{font-size:10px}
.key-note{font-size:11px}
.method{display:block;border-top:1px solid #e0e7e2;padding-top:12px;margin-top:6px}
.method>summary{font-size:12px;font-weight:760;color:#3e6850;cursor:pointer;padding:5px 0;list-style-position:inside}
.method>summary:hover{text-decoration:underline}
.method>summary:focus-visible{outline:2px solid #a4cb91;outline-offset:3px}
.method-body{padding-top:10px}
.method-body p{font-size:11px;line-height:1.65}
.draw-toolbar{top:15px;left:15px;gap:4px;padding:5px;border:1px solid #d3dfd5;box-shadow:0 3px 20px #132e2225}
.draw-toolbar button{min-height:40px;padding:9px 12px;font-size:12px}
.draw-toolbar button[aria-pressed="true"]{background:#175a3c;color:#fff;border-color:#175a3c}
.draw-toolbar button#move-region[aria-pressed="true"]{background:#eaf2ec;color:#214b33;border-color:#d2e2d8}
.draw-toolbar button.clear-region{border-left:1px solid #e0e7e2}
.draw-toolbar button[disabled]{opacity:.45;cursor:not-allowed}
.draw-hint{top:68px;left:15px;font-size:11px;padding:8px 11px;max-width:min(430px,calc(100% - 30px))}
.draw-hint[hidden]{display:none!important}
.map-legend{position:absolute;z-index:450;bottom:34px;left:16px;display:flex;gap:8px;align-items:center;background:#fffefaed;padding:10px 12px;border-radius:8px;box-shadow:0 2px 15px #1a392321;pointer-events:none}
.map-legend span{font-size:10px;font-weight:790;letter-spacing:.06em;color:#395846}
.map-legend i{display:block;height:10px;width:clamp(95px,12vw,145px);border-radius:99px;background:linear-gradient(90deg,#7e1323 0%,#d65537 21%,#e6c350 44%,#9ab756 65%,#4d9a4a 83%,#075d37 100%)}
.map-bottom{bottom:9px;left:16px;font-size:10px;color:#395d48;z-index:440}
.map-bottom span:last-child{color:#476653}
.region-map-result{display:none!important} /* Single authoritative total in the sidebar. */
.leaflet-control-zoom{border-radius:7px;overflow:hidden}
.leaflet-control-zoom a{border-color:#e1e7e1!important}
@media(max-width:840px){
 .sidebar{width:280px;padding:18px}
 .sidebar h1{font-size:23px}
 .draw-toolbar{left:11px}
 .draw-hint{left:11px}
 .map-legend{left:11px}
}
@media(max-width:640px){
 .sidebar{grid-template-columns:minmax(0,1fr) 159px;padding:10px 12px}
 .sidebar h1{font-size:18px;margin:0 0 5px}
 .sidebar .eyebrow{grid-column:1/-1;margin:0 0 7px}
 .sidebar .lead{font-size:10px;margin:0}
 .region-metric{grid-column:2;grid-row:2/span 2;margin:0;padding:9px 10px}
 .region-heading h2{font-size:8px}
 .region-heading span{font-size:8px}
 #region-total{font-size:23px;margin-top:5px}
 #region-hint{font-size:9px;line-height:1.35;margin:5px 0}
 .region-stat-line{font-size:8px}
 .reading,.key,.sidebar footer{display:none}
 .method{grid-column:1/-1;display:block;border:0;padding:3px 0 0;margin:0}
 .method>summary{font-size:10px;padding:2px 0}
 .method-body{max-height:200px;overflow:auto;padding-top:7px}
 .draw-toolbar{left:8px;top:10px;padding:3px;gap:2px}
 .draw-toolbar button{min-height:36px;font-size:11px;padding:8px 9px}
 .draw-hint{left:8px;top:58px;font-size:10px;max-width:calc(100% - 16px)}
 .map-legend{left:9px;bottom:28px;padding:7px 9px}
 .map-legend span{font-size:9px}
 .map-legend i{width:105px;height:9px}
 .map-bottom{left:9px;bottom:6px;font-size:9px}
 .map-bottom span:last-child{display:none}
}
