:root{--green: #2f4a34;--green-soft: #e7ede4;--terracotta: #a65a3a;--ink: #1c1a17;--muted: #7d7a70;--line: #e2ddd2;--bg: #fcfaf6;--panel: #ffffff;font-family:"Source Sans 3",system-ui,sans-serif;color:var(--ink);background:var(--bg)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:16px;padding:10px 16px;background:var(--bg);border-bottom:1px solid var(--line);z-index:5}.brand{display:flex;flex-direction:column;line-height:1.1;min-width:180px}.brand-name{font-family:Fraunces,Georgia,serif;font-size:22px;color:var(--green)}.brand-by{font-size:12px;color:var(--muted)}.search{position:relative;display:flex;gap:6px;flex:1;max-width:520px}.search input{flex:1}.hits{position:absolute;top:100%;left:0;right:0;margin:4px 0 0;padding:4px;list-style:none;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 18px #0000001f}.hits button{width:100%;text-align:left;border:0;background:none}.hits button:hover{background:var(--green-soft)}.trial{margin-left:auto;font-size:13px;color:var(--terracotta);white-space:nowrap}.workspace{position:relative;flex:1;display:flex;min-height:0}.map{flex:1;min-width:0}.status{position:absolute;left:12px;bottom:36px;max-width:min(560px,calc(100% - 400px));background:#fcfaf6f2;border:1px solid var(--line);border-radius:8px;padding:8px 12px;font-size:14px;box-shadow:0 2px 8px #00000014}.panel{width:360px;background:var(--panel);border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.panel section{padding:12px 16px 24px;overflow-y:auto;flex:1}.panel h3{font-family:Fraunces,Georgia,serif;font-weight:600;color:var(--green);font-size:17px;margin:18px 0 8px}.panel h3:first-child{margin-top:4px}.tabs{display:flex;border-bottom:1px solid var(--line)}.tabs button{flex:1;border:0;border-radius:0;background:none;padding:12px;font-weight:600;color:var(--muted)}.tabs button.active{color:var(--green);background:none;box-shadow:inset 0 -3px 0 var(--green)}button,.filebtn{font:inherit;font-size:14px;padding:7px 10px;border-radius:8px;cursor:pointer;border:1px solid var(--line);background:#fff;color:var(--ink);display:inline-flex;align-items:center;gap:6px}button:hover,.filebtn:hover{border-color:var(--green)}button.active{background:var(--green);color:#fff;border-color:var(--green)}button.danger{color:#b3261e}.search button[type=submit],.row button[type=submit]{background:var(--green);color:#fff;border-color:var(--green)}input,select{font:inherit;font-size:14px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;min-width:0}.row{display:flex;gap:6px;margin:8px 0}.row input{flex:1}.tools{display:flex;flex-wrap:wrap;gap:6px}.tools.grid{display:grid;grid-template-columns:1fr 1fr}.tools.grid button,.tools.grid .filebtn{justify-content:flex-start}.filebtn input{display:none}.swatch{width:14px;height:14px;border-radius:3px;border:2px solid;flex:none}.check{display:flex;gap:6px;align-items:center;font-size:14px;margin:6px 0}.note{font-size:13px;color:var(--muted);margin:8px 0}.plants{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.plants button{width:100%;text-align:left;justify-content:flex-start;padding:6px 8px}.plants button.active{background:var(--green-soft);color:var(--ink);border-color:var(--green)}.dot{width:18px;height:18px;border-radius:50%;border:2px solid;flex:none}.dot.shape-star{border-radius:30%;transform:rotate(45deg)}.dot.shape-grass{border-radius:2px}.pname{display:flex;flex-direction:column;flex:1;min-width:0}.pname small{color:var(--muted);font-style:italic;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pmeta{font-size:12px;color:var(--muted);white-space:nowrap}.selected{margin:14px 0;padding:12px;border:1px solid var(--green);border-radius:10px;background:var(--green-soft);display:flex;flex-direction:column;gap:8px}.sel-head{display:flex;justify-content:space-between}.range{display:flex;flex-direction:column;font-size:14px}.plant-info{font-size:13px;display:flex;flex-direction:column;gap:6px}.cal{border-collapse:collapse;font-size:11px;width:100%}.cal th{font-weight:400;color:var(--muted)}.cal td{border:1px solid #fff;height:14px;background:#0000000d}.cal td:first-child{background:none;padding-right:6px;white-space:nowrap}.cost{width:100%;border-collapse:collapse;font-size:14px}.cost td{padding:6px 0;border-bottom:1px solid var(--line);vertical-align:top}.cost td small{display:block;color:var(--muted);font-size:12px}.cost .num{text-align:right;white-space:nowrap;padding-left:12px}.cost tfoot td{font-weight:700;border-bottom:0;color:var(--green)}.ol-scale-line{left:12px;bottom:8px;background:#2f4a34cc}@media(max-width:800px){.workspace{flex-direction:column}.panel{width:100%;height:45%;border-left:0;border-top:1px solid var(--line)}.status{max-width:calc(100% - 24px);bottom:calc(45% + 36px)}.brand-by,.trial{display:none}}.grid-bg{background-color:#fbfaf5;background-image:linear-gradient(rgba(47,74,52,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(47,74,52,.08) 1px,transparent 1px);background-size:24px 24px}.times{align-self:center;color:var(--muted)}.row input[inputmode=decimal]{width:64px;flex:none}.subhead{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:10px 0 6px}.layers{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.layers li{display:flex;align-items:center;gap:8px;padding:4px 6px;border:1px solid var(--line);border-radius:8px}.layers li.off .lname{color:var(--muted)}.lname{flex:1;display:flex;justify-content:space-between;font-size:14px}.lname small{color:var(--muted)}button.icon{padding:2px 8px;min-width:34px;justify-content:center}button.icon.active{background:var(--terracotta);border-color:var(--terracotta)}.layers li.current{border-color:var(--green);background:var(--green-soft)}.warnings{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.warnings button{width:100%;text-align:left;white-space:normal;line-height:1.35}.warnings li.warn button{border-color:#e0a370;background:#fdf3ea}.warnings li.info button{color:var(--muted)}button.badge{margin-left:auto;background:#fdf3ea;border-color:#e0a370;color:var(--terracotta);font-size:13px}button.badge+.trial{margin-left:0}.month-title{flex:1;text-align:center;margin:0;text-transform:capitalize}.month-list{display:grid;gap:8px;font-size:14px;margin:8px 0 4px}.month-list strong{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.year{border-collapse:collapse;font-size:11px;width:100%;table-layout:fixed}.year th{font-weight:400;color:var(--muted)}.year th:first-child{width:38%}.year td{border:1px solid #fff;height:18px;text-align:center;background:#0000000a;font-size:10px}.year td:first-child{background:none;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.year td small{color:var(--muted)}.year .now{outline:2px solid var(--green);outline-offset:-2px}.report{display:none}@media print{@page{size:A4;margin:14mm}html,body,#root{height:auto}.app{display:block;height:auto}.app>header,.app>main{display:none!important}.report{display:block;color:#222;font-size:11pt}.report header{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:2px solid var(--green);padding-bottom:6px;margin-bottom:10px}.report h1{font-family:Fraunces,serif;margin:0;font-size:24pt;color:var(--green)}.report header p{margin:2px 0 0}.report h2{font-family:Fraunces,serif;font-size:14pt;color:var(--green);margin:14px 0 6px}.report h3{font-size:10pt;text-transform:capitalize;margin:0 0 2px}.r-brand{display:flex;flex-direction:column;align-items:flex-end;font-size:9pt;color:#555}.r-plan{width:100%;max-height:150mm;object-fit:contain;border:1px solid #ccc}.r-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px;break-inside:avoid}.r-table{width:100%;border-collapse:collapse;font-size:9.5pt}.r-table th{text-align:left;border-bottom:1px solid #999;font-weight:600}.r-table td{border-bottom:1px solid #ddd;padding:3px 4px 3px 0}.r-table em{color:#666;font-size:8.5pt}.r-table .num,.report .num{text-align:right}.r-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:middle}.r-warn{padding-left:16px;margin:0;font-size:10pt}.r-break{break-before:page}.r-months{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px 16px;margin-top:10px}.r-months>div{break-inside:avoid}.r-months .month-list{font-size:9pt;gap:3px;margin:0}.r-months .month-list strong{font-size:7.5pt;display:inline;margin-right:4px}.report .year td,.report .r-dot,.report .year th{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
