:root{color-scheme:light dark;--bg: #fafaf7;--fg: #1d2a1f;--muted: #5b6b5f;--accent: #2f7d3a;--ok: #1f7a3a;--warn: #8a5a00;--error: #b3261e;--surface: #ffffff;--border: #d5dccf;--map-bed: #c9b79c;--map-bed-stroke: #8a7456;--map-path: #e3dccb;--map-structure: #b8c4cc;--map-structure-stroke: #6b7a85;--map-shape: #d9e4d3;--map-label: #1d2a1f;--map-planting: #2f7d3a;--map-selection: #1565c0;--space-1: .25rem;--space-2: .5rem;--space-3: 1rem;--space-4: 1.5rem;--space-5: 2.5rem;--radius: .5rem;--font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.25rem;--content-width: 72rem}@media(prefers-color-scheme:dark){:root{--bg: #141a15;--fg: #e6ede4;--muted: #9fb0a2;--accent: #6fcf7c;--ok: #7fd48a;--warn: #f0c060;--error: #ff8a80;--surface: #1d261f;--border: #35433a;--map-bed: #6e5f49;--map-bed-stroke: #a8946f;--map-path: #3c3a33;--map-structure: #55626b;--map-structure-stroke: #8fa0ab;--map-shape: #3a4a38;--map-label: #e6ede4;--map-planting: #6fcf7c;--map-selection: #64b5f6}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font);font-size:var(--text-md);line-height:1.5;overflow-wrap:anywhere}h1,h2,h3{line-height:1.25;margin:0 0 var(--space-2)}p{margin:0 0 var(--space-3)}a{color:var(--accent)}img,svg,canvas{max-width:100%}input,select,textarea,button{font:inherit;color:inherit;max-width:100%}input:not([type=checkbox]):not([type=radio]),select,textarea{display:block;width:100%;padding:var(--space-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}label{display:block;margin-bottom:var(--space-3)}button{padding:var(--space-2) var(--space-3);background:var(--accent);color:var(--bg);border:1px solid transparent;border-radius:var(--radius);cursor:pointer}button:disabled{opacity:.6;cursor:not-allowed}.link-button{padding:0;background:none;border:0;color:var(--accent);text-decoration:underline}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.chrome-header{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-2) var(--space-3);background:var(--surface);border-bottom:1px solid var(--border)}.brand{font-weight:700;text-decoration:none}.garden-name{color:var(--muted)}.chrome-header>:last-child{margin-left:auto}.chrome-nav{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-3);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border)}.chrome-nav a{text-decoration:none;padding:var(--space-1) 0}.chrome-nav a[aria-current=page]{font-weight:700;border-bottom:2px solid var(--accent)}main{display:block;max-width:var(--content-width);margin:0 auto;padding:var(--space-3)}.status-chip{display:inline-block;padding:0 var(--space-2);border:1px solid var(--border);border-radius:999px;font-size:var(--text-sm);color:var(--muted)}.status-chip[data-tone=ok]{color:var(--ok);border-color:var(--ok)}.status-chip[data-tone=busy]{color:var(--accent);border-color:var(--accent)}.status-chip[data-tone=warn]{color:var(--warn);border-color:var(--warn)}.status-chip[data-tone=error]{color:var(--error);border-color:var(--error)}.banner{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-2) var(--space-3);background:var(--surface);border-left:4px solid var(--warn);border-bottom:1px solid var(--border)}.failure{max-width:100%;margin:var(--space-4) 0;padding:var(--space-3);border:1px solid var(--error);border-radius:var(--radius);background:var(--surface)}.failure-details{max-width:100%;overflow-x:auto;white-space:pre-wrap;font-family:var(--font-mono);font-size:var(--text-sm)}[hidden]{display:none!important}.auth{max-width:28rem;margin:var(--space-4) auto;padding:0 var(--space-3)}.auth label{display:block;margin-bottom:var(--space-1)}.auth input{width:100%;max-width:100%;box-sizing:border-box}.migrated{padding:var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.prominent{display:inline-block;min-height:2.75rem;padding:var(--space-2) 0;line-height:1.75rem;font-weight:600;color:var(--accent);text-decoration:underline}.form-error{min-height:1.25rem;margin:var(--space-2) 0;color:var(--error)}.form-error:empty{min-height:0;margin:0}.overlay-backdrop{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;overflow-y:auto;box-sizing:border-box;padding:max(var(--space-3),env(safe-area-inset-top,0px)) max(var(--space-3),env(safe-area-inset-right,0px)) max(var(--space-3),env(safe-area-inset-bottom,0px)) max(var(--space-3),env(safe-area-inset-left,0px));background:#0000008c}.overlay-dialog{box-sizing:border-box;width:100%;max-width:min(26rem,100%);max-height:100%;overflow-y:auto;margin:auto;padding:var(--space-4);background:var(--surface);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius)}.overlay-dialog input{width:100%;max-width:100%;box-sizing:border-box}.muted{color:var(--muted)}.garden-list-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-3);margin-bottom:var(--space-3)}.garden-list-head h1{margin:0}.garden-rows{list-style:none;margin:0 0 var(--space-3);padding:0}.garden-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-1) var(--space-3);padding:var(--space-3);margin-bottom:var(--space-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.garden-link{flex:1 1 12rem;min-width:0;font-weight:600;font-size:var(--text-lg)}.garden-meta{color:var(--muted);font-size:var(--text-sm)}.form,.create-garden,.invite,.placeholder{max-width:28rem}.form label{margin-bottom:var(--space-1)}.invite .actions{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-3)}button.secondary{background:none;color:var(--accent);border-color:var(--accent)}.settings{max-width:40rem}.settings-block{margin-bottom:var(--space-4)}.settings select{max-width:100%}.settings .actions,.failed-row .actions{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-3)}.confirm-panel{flex:1 1 100%;box-sizing:border-box;margin-top:var(--space-3);padding:var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.confirm-panel input{width:100%;max-width:100%;box-sizing:border-box}.failed-rows{list-style:none;margin:0;padding:0}.failed-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-1) var(--space-3);padding:var(--space-3);margin-bottom:var(--space-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.failed-table{font-weight:600}.failed-reason{flex:1 1 100%;min-width:0;overflow-wrap:anywhere}.failed-row .form-error{flex:1 1 100%;margin:0}main:has(.layout){max-width:none;padding:0}.layout{display:flex;flex-direction:column;gap:var(--space-2);position:relative}.layout>.layout-body,.layout>.form-error,.layout>.layout-banner,.layout>.layout-lock-hint,.layout>p:not(.layout-status){margin-inline:var(--space-2)}.layout-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);background:var(--surface);border-bottom:1px solid var(--border)}.layout-toolbar button{min-width:2.75rem;min-height:2.75rem}.layout-toolbar button[hidden]{display:none}.layout-toolbar-sep{align-self:stretch;width:1px;margin:var(--space-1) var(--space-1);background:var(--border)}.layout-toolbar button[aria-pressed=true]{background:var(--accent);color:var(--bg)}.layout-banner,.layout-lock-hint{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.layout-banner{border-color:var(--accent)}.layout-banner span,.layout-lock-hint span{flex:1}.layout-banner[hidden],.layout-lock-hint[hidden]{display:none}.layout-lock-hint{color:var(--muted)}.layout-date{display:inline-flex;align-items:center;gap:var(--space-1)}.layout-zoom-info{font-variant-numeric:tabular-nums;white-space:nowrap}.layout-date-text,.tb-glyph{display:none}@media(max-width:40rem){.layout-toolbar{flex-wrap:nowrap;gap:var(--space-1);padding-inline:var(--space-2);overflow-x:auto}.layout-toolbar>*{flex:none}.layout-toolbar [data-ref=zoom-in],.layout-toolbar [data-ref=zoom-out],.layout-toolbar [data-ref=today],.layout-zoom-info,.layout-date-label,.tb-word{display:none}.tb-glyph{display:inline;font-size:1.25rem}.layout-toolbar-sep{margin-inline:0}.layout-date{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding-inline:var(--space-2);border:1px solid var(--border);border-radius:var(--radius)}.layout-date-text{display:inline;white-space:nowrap}.layout-date[data-active=true]{background:var(--accent);color:var(--bg)}.layout-date input{position:absolute;inset:0;width:100%;height:100%;opacity:0}}.layout-body{display:flex;gap:var(--space-3);align-items:stretch}.layout-canvas{position:relative;flex:1 1 auto;min-height:60vh;height:calc(100dvh - 12rem);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none}.layout-canvas:focus-visible{outline:2px solid var(--map-selection)}.layout-panel{flex:0 0 18rem;max-width:40%;padding:var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:auto}.layout-panel[hidden]{display:none}.layout-panel header{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-2)}.layout-panel h2{margin:0;font-size:var(--text-lg)}.layout-panel dl{margin:var(--space-2) 0 0}.layout-panel dt{font-size:var(--text-sm);color:var(--muted);margin-top:var(--space-2)}.layout-panel dd{margin:0}.layout-panel-field{display:flex;flex-direction:column;gap:var(--space-1);margin-top:var(--space-2)}.layout-panel-field[hidden]{display:none}.layout-panel-check label{display:flex;align-items:center;gap:var(--space-2);color:inherit;font-size:inherit}.layout-panel-field input[type=range]{width:100%}.layout-panel-actions{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-3)}.layout-panel-actions [hidden]{display:none}.layout-panel-buttons{display:flex;gap:var(--space-2)}.layout-panel-actions .danger{color:var(--error)}.layout-panel-field label,.layout-panel-label{font-size:var(--text-sm);color:var(--muted)}.layout-segmented{display:flex}.layout-segmented button{flex:1;min-height:2.75rem;border-radius:0;margin:0;background:transparent;color:inherit;border:1px solid var(--border)}.layout-segmented button+button{margin-left:-1px}.layout-segmented button:first-child{border-radius:var(--radius) 0 0 var(--radius)}.layout-segmented button:last-child{border-radius:0 var(--radius) var(--radius) 0}.layout-segmented button[aria-checked=true]{background:var(--map-selection);color:#fff;border-color:var(--map-selection)}.layout-segmented button:disabled{opacity:.6}.layout-panel-pair{display:flex;gap:var(--space-2)}.layout-panel-pair input{flex:1 1 40%;min-width:0}.layout-panel-pair select{flex:1 1 60%;min-width:0}.layout-panel-field textarea{width:100%;box-sizing:border-box;resize:vertical}.layout-panel-field input,.layout-panel-field select{width:100%;box-sizing:border-box;min-height:2.75rem}.layout-panel-object{margin-top:var(--space-3)}.layout-panel-object[hidden],.layout-panel-object [hidden]{display:none}.layout-object-swatches{display:flex;gap:var(--space-2);flex-wrap:wrap}.layout-object-swatch{width:2.75rem;min-height:2.75rem;padding:0;margin:0;border-radius:50%;background:var(--surface);border:2px solid var(--border)}.layout-object-swatch[aria-checked=true]{border-color:var(--text)}.layout-object-warn{color:var(--warn)}@media(max-width:40rem){.layout-body{flex-direction:column}.layout-panel{flex:0 0 auto;max-width:none}.layout-canvas{height:60dvh}}.layout-palette{flex:0 0 11rem;width:11rem;display:flex;flex-direction:column;gap:var(--space-2);max-height:calc(100dvh - 12rem)}.layout-palette[hidden]{display:none}.layout-palette input{width:100%;box-sizing:border-box}.layout-palette ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1);overflow-y:auto;min-height:0}.layout-palette ul[hidden]{display:none}.palette-item{display:flex;align-items:center;gap:var(--space-1);width:100%;min-height:2.75rem;text-align:left;touch-action:pan-y;-webkit-user-select:none;user-select:none;white-space:nowrap}.palette-group{font-size:var(--text-sm);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:var(--space-1) 0 0}.palette-icon{width:1.5rem;height:1.5rem;flex:0 0 auto;fill:currentColor}.palette-ghost{position:fixed;transform:translate(-50%,-50%);pointer-events:none;z-index:1000;display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1);background:var(--surface);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius);opacity:.9}.palette-ghost .palette-icon{width:2rem;height:2rem;fill:currentColor}.palette-ghost.is-cancel{opacity:.5;filter:grayscale(1)}.palette-ghost-ring{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);box-sizing:border-box;border:2px solid var(--error);border-radius:50%;pointer-events:none}.palette-ghost-x{font-weight:700}.layout-tree{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;list-style:none}.layout-tree button{all:unset}.layout-status{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.layout-conflict-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.layout-conflict-actions button{min-height:2.75rem}@media(max-width:40rem){.layout-palette{flex:0 0 auto;width:auto;max-height:none}.layout-palette ul{flex-direction:row;overflow-x:auto;overflow-y:hidden}.palette-item{touch-action:pan-x}}.update-bar{position:fixed;inset-inline:var(--space-3);bottom:calc(var(--space-3) + env(safe-area-inset-bottom,0px));z-index:1000;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);max-width:32rem;margin-inline:auto;padding:var(--space-2) var(--space-3);background:var(--surface);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 .25rem 1rem #00000026}.update-bar[hidden]{display:none}.update-bar>span{flex:1 1 12rem}
