[hidden]{display:none!important}*,:before,:after{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--font-ui);font-size:var(--fs-md);color:var(--color-text);background:var(--color-bg);line-height:1.4}button,input,select,textarea{font:inherit;color:inherit}.tabular,input,.num{font-variant-numeric:tabular-nums}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{z-index:100;background:var(--color-surface);padding:var(--space-3);position:absolute;top:0;left:-9999px}.skip-link:focus{left:var(--space-3)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}a{color:var(--color-focus)}h2{font-family:var(--font-display);margin:0;font-size:1.05rem;font-weight:600}h3{font-family:var(--font-display);margin:var(--space-5) 0 var(--space-3);color:var(--color-text);font-size:1.05rem;font-weight:600}h4{font-family:var(--font-display);font-size:var(--fs-md);margin:var(--space-3) 0 var(--space-2);font-weight:600}p{margin:var(--space-3) 0}.muted{color:var(--color-text-muted)}.small{font-size:var(--fs-sm)}.noscript{padding:2rem}.btn{align-items:center;gap:var(--space-3);min-height:var(--touch);padding:0 var(--space-4);border:1px solid var(--color-border);background:var(--color-surface);cursor:pointer;white-space:nowrap;transition:background var(--dur), border-color var(--dur);border-radius:8px;font-weight:500;display:inline-flex}.btn .icon{flex:none}.btn:hover{background:var(--color-surface-2);border-color:var(--color-border-strong)}.btn-primary{background:var(--color-action);border-color:var(--color-action);color:var(--color-action-text);font-weight:600}.btn-primary:hover{background:var(--color-action-hover);border-color:var(--color-action-hover)}.btn-danger{color:var(--color-danger);border-color:var(--color-danger)}.btn-quiet{background:0 0;border-color:#0000}.btn-quiet:hover{background:var(--color-surface-2);border-color:#0000}.btn-small{min-height:28px;padding:0 var(--space-3);font-size:var(--fs-sm)}.btn[disabled],.icon-btn[disabled]{opacity:.45;cursor:not-allowed}input:disabled,select:disabled,textarea:disabled{opacity:.55;cursor:not-allowed}.icon-btn{min-width:var(--touch);min-height:var(--touch);cursor:pointer;font-size:var(--fs-lg);background:0 0;border:0;border-radius:8px;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--color-surface-2)}.icon-btn[aria-pressed=true]{background:var(--color-action-soft);color:var(--color-action)}input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],input[type=date],input[type=time],select,textarea{min-height:var(--touch);border:1px solid var(--color-border-strong);background:var(--color-surface);border-radius:8px;width:100%;padding:7px 10px}input[type=text]:hover,input[type=email]:hover,input[type=password]:hover,input[type=number]:hover,input[type=search]:hover,input[type=date]:hover,input[type=time]:hover,select:hover,textarea:hover{border-color:var(--color-text-muted)}input[type=text]:focus-visible,input[type=email]:focus-visible,input[type=password]:focus-visible,input[type=number]:focus-visible,input[type=search]:focus-visible,input[type=date]:focus-visible,input[type=time]:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-focus);outline-offset:1px}select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5L6 8l3.5-3.5' fill='none' stroke='%23808a84' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 9px center;background-repeat:no-repeat;background-size:12px 12px;padding-right:30px}select option{background:var(--color-surface);color:var(--color-text)}input[aria-invalid=true]{border-color:var(--color-danger);background:var(--color-danger-soft)}input[type=checkbox],input[type=radio]{width:18px;height:18px;accent-color:var(--color-action)}input[type=range]{accent-color:var(--color-action);width:100%}textarea{resize:vertical}.field{gap:var(--space-1);margin-bottom:var(--space-3);display:grid}.field>label{font-size:var(--fs-xs);color:var(--color-text-muted);font-weight:500}.field-hint{color:var(--color-text-muted);font-size:var(--fs-xs)}.field-error{color:var(--color-danger);font-size:var(--fs-xs);min-height:0}.field-error:empty{display:none}.field-row{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.field-row-3{gap:var(--space-3);grid-template-columns:1fr 1fr 1fr;display:grid}.check{align-items:center;gap:var(--space-3);min-height:var(--touch);display:flex}.inline-field{align-items:center;gap:var(--space-2);display:inline-flex}.inline-field select{width:auto;min-height:26px;padding:0 24px 0 var(--space-3);background-position:right 7px center;background-size:10px 10px;border-radius:6px;max-width:11em}.badge{font-size:var(--fs-xs);border:1px solid var(--color-border);background:var(--color-surface-2);white-space:nowrap;border-radius:10px;padding:0 7px;display:inline-block}.badge-verified{border-color:var(--color-ok);color:var(--color-ok)}.badge-user{border-color:var(--color-focus);color:var(--color-focus)}.badge-unknown{color:var(--color-text-muted);border-style:dashed}.badge-warn{border-color:var(--color-warn);color:var(--color-warn);background:var(--color-warn-soft)}.badge-danger{border-color:var(--color-danger);color:var(--color-danger);background:var(--color-danger-soft)}.kv{gap:var(--space-2) var(--space-3);grid-template-columns:minmax(90px,40%) 1fr;margin:0;display:grid}.kv dt{color:var(--color-text-muted);font-size:var(--fs-sm)}.kv dd{margin:0}.stack>*+*{margin-top:var(--space-3)}.row{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.spacer{flex:1}table.data{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}table.data th,table.data td{border-bottom:1px solid var(--color-border);padding:var(--space-2) var(--space-3);text-align:left;vertical-align:top}table.data th{color:var(--color-text-muted);font-weight:600}table.data td.num,table.data th.num{text-align:right}.app{height:100vh;grid-template-rows:auto auto 1fr auto;height:100dvh;display:grid}.app>.topbar{grid-row:1}.app>.banner{grid-row:2}.app>.workspace{grid-row:3}.app>.statusbar{grid-row:4}.app>.mobile-nav{grid-row:5}.topbar{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5);background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-wrap:wrap;min-height:54px;display:flex}.brand{font-family:var(--font-display);letter-spacing:-.01em;color:var(--color-text);padding:var(--space-1) var(--space-2) var(--space-1) var(--space-1);margin:calc(-1 * var(--space-1));cursor:pointer;min-height:var(--touch);background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;font-size:1.15rem;font-weight:700;display:flex}.brand:hover{background:var(--color-surface-2)}.logo{flex:none;display:block}.project-name{max-width:260px;font-weight:600;background:0 0!important;border-color:#0000!important}.project-name:hover,.project-name:focus{border-color:var(--color-border-strong)!important}.menu{gap:var(--space-1);flex-wrap:wrap;display:flex}.history-btns{gap:var(--space-1);display:flex}.theme-select{border-color:var(--color-border);width:auto!important}.save-status{align-items:center;gap:var(--space-2);font-size:var(--fs-xs);color:var(--color-text-muted);background:var(--color-surface-2);border:0;border-radius:999px;margin-left:auto;padding:3px 10px;display:inline-flex}.save-dot{background:var(--color-ok);border-radius:50%;width:9px;height:9px}.save-status[data-state=unsaved] .save-dot,.save-status[data-state=saving] .save-dot{background:var(--color-warn)}.save-status[data-state=failed],.save-status[data-state=unavailable],.save-status[data-state=conflict]{border-color:var(--color-danger);color:var(--color-danger);background:var(--color-danger-soft);font-weight:600}.save-status[data-state=failed] .save-dot,.save-status[data-state=unavailable] .save-dot,.save-status[data-state=conflict] .save-dot{background:var(--color-danger);border-radius:0;transform:rotate(45deg)}.banner{gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-danger-soft);color:var(--color-text);border-bottom:2px solid var(--color-danger);flex-wrap:wrap;align-items:center;display:flex}.banner[data-kind=warn]{background:var(--color-warn-soft);border-color:var(--color-warn)}.banner strong{color:var(--color-danger)}.account-btn{max-width:16em}.account-btn .icon{flex:none}.account-label{text-overflow:ellipsis;overflow:hidden}.account-btn[data-state=signed-in]{border-color:var(--color-border)}.form-error{font-size:var(--fs-sm);margin:0}.server-status{align-items:center;gap:var(--space-2);font-size:var(--fs-sm);padding:2px 2px 2px var(--space-3);border:1px dashed var(--color-border);border-radius:12px;min-height:28px;display:inline-flex}.server-status[hidden]{display:none}.server-status .icon{color:var(--color-text-muted);flex:none}.server-status[data-state=synced]{padding-right:var(--space-3);border-style:solid}.server-status[data-state=synced] .icon{color:var(--color-ok)}.server-status[data-state=unsynced] .icon,.server-status[data-state=saving] .icon{color:var(--color-warn)}.server-status[data-state=failed],.server-status[data-state=conflict]{border-style:solid;border-color:var(--color-danger);color:var(--color-danger);background:var(--color-danger-soft);font-weight:600}.server-status[data-state=failed] .icon,.server-status[data-state=conflict] .icon{color:var(--color-danger)}.server-status .btn-small{min-height:24px}.check-row{align-items:center;gap:var(--space-2);display:flex}.server-status[data-state=readonly]{padding-right:var(--space-3);border-style:solid}.server-status[data-state=offline],.server-status[data-state=behind]{border-style:solid}.server-status[data-state=offline]{padding-right:var(--space-3)}.server-status[data-state=offline] .icon,.server-status[data-state=behind] .icon{color:var(--color-warn)}.server-status[data-state=none] .server-text{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.server-status[data-state=none]{padding-left:var(--space-2)}@media (min-width:768px) and (max-width:1500px){html[data-server]:not([data-server=off]) .brand-name{display:none}html[data-server]:not([data-server=off]) .topbar{gap:var(--space-2)}}.workspace{grid-template-columns:var(--panel-w) 1fr var(--panel-w-right);min-height:0;display:grid}.panel{background:var(--color-surface);flex-direction:column;min-height:0;display:flex;overflow:hidden}.panel-left{border-right:1px solid var(--color-border)}.panel-right{border-left:1px solid var(--color-border)}.tabs{margin:var(--space-3) var(--space-3) 0;background:var(--color-surface-3);border-radius:var(--radius-md);flex-shrink:0;gap:2px;padding:3px;display:flex;overflow-x:auto}.tabs [role=tab]{min-width:0;min-height:30px;padding:0 var(--space-2);cursor:pointer;font-size:var(--fs-sm);white-space:nowrap;color:var(--color-text-muted);background:0 0;border:0;border-radius:8px;flex:auto}.tabs [role=tab]:hover{color:var(--color-text)}.panel-right .tabs [role=tab]{font-size:var(--fs-xs);padding:0 6px}.tabs [role=tab][aria-selected=true]{background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 3px color-mix(in srgb, var(--color-text) 18%, transparent);font-weight:600}.pane{padding:var(--space-4);flex:1;min-height:0;overflow:auto}.canvas-wrap{background:var(--color-canvas);grid-template-rows:auto 1fr;min-width:0;min-height:0;display:grid;position:relative}.hintbar{gap:var(--space-3);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);min-height:36px;font-size:var(--fs-xs);align-items:center;display:flex}.tool-hint{flex:1}.hint-actions{gap:var(--space-2);display:flex}.plan{touch-action:none;-webkit-user-select:none;user-select:none;background:var(--color-canvas);outline-offset:-3px;width:100%;height:100%;display:block}.canvas-controls{right:var(--space-4);bottom:var(--space-4);gap:var(--space-2);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2);box-shadow:0 2px 10px color-mix(in srgb, var(--color-text) 12%, transparent);display:flex;position:absolute}.shadow-note{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);max-width:60%;padding:var(--space-3);font-size:var(--fs-sm);box-shadow:var(--elev-1);position:absolute;bottom:52px;left:28px}.statusbar{align-items:center;gap:var(--space-3);padding:5px var(--space-4);border-top:1px solid var(--color-border);background:var(--color-surface);font-size:var(--fs-xs);flex-wrap:wrap;display:flex}#cursor-pos{text-overflow:ellipsis;white-space:nowrap;flex:0 28ch;min-width:0;display:inline-block;overflow:hidden}#zoom-readout{white-space:nowrap;text-overflow:ellipsis;flex:0 auto;min-width:4ch;overflow:hidden}.statusbar .inline-field{white-space:nowrap;gap:5px}.statusbar .inline-field>span{color:var(--color-text-muted)}@media (min-width:1100px){.statusbar{flex-wrap:nowrap}.statusbar>*{min-width:0}.statusbar .inline-field{flex:none}}.mobile-nav{display:none}.tool-grid{gap:var(--space-2);grid-template-columns:repeat(2,1fr);display:grid}.tool-btn{align-items:center;gap:var(--space-3);min-height:40px;padding:0 var(--space-3);border-radius:var(--radius-md);background:var(--color-surface-2);cursor:pointer;text-align:left;font-size:var(--fs-sm);border:1px solid #0000;display:flex}.tool-btn:hover{background:var(--color-surface-3)}.tool-btn .icon{flex:none}.tool-btn kbd{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-text-muted);margin-left:auto}.tool-btn[aria-pressed=true]{background:var(--color-action-soft);color:var(--color-action);border-color:var(--color-action);font-weight:600}.tool-btn[aria-pressed=true] kbd{color:inherit;border-color:currentColor}.obj-list{margin:0;padding:0;list-style:none}.obj-list li{align-items:center;gap:var(--space-2);margin-bottom:1px;display:flex}.obj-item{gap:var(--space-2);min-height:var(--touch);padding:0 var(--space-3);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;flex:1;align-items:center;min-width:0;display:flex}.obj-item:hover{background:var(--color-surface-2)}.obj-item .obj-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.obj-item[aria-selected=true]{background:var(--color-action-soft);font-weight:600}.obj-item.is-hidden .obj-name{color:var(--color-text-muted);text-decoration:line-through}.obj-code{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-text-muted);min-width:3.2em}.obj-group-title{font-size:var(--fs-xs);color:var(--color-text-muted);padding:var(--space-3) var(--space-2) var(--space-1);font-weight:600}.plant-card{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);margin-bottom:var(--space-2);background:var(--color-surface)}.plant-card[aria-current=true]{border-color:var(--color-action);background:var(--color-action-soft)}.plant-card .bot{font-style:italic;font-weight:600}.plant-card .cultivar{font-style:normal}.advisory{border:1px solid var(--color-border);border-left:4px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:var(--space-3);margin-bottom:var(--space-3);background:var(--color-surface)}.advisory[data-severity=warning]{border-left-color:var(--color-warn)}.advisory[data-severity=info]{border-left-color:var(--color-focus)}.advisory[data-severity=caution]{border-left-color:var(--color-danger)}.advisory h4{margin:0 0 var(--space-2)}.season-grid{border-collapse:collapse;font-size:var(--fs-xs)}.season-grid th,.season-grid td{border:1px solid var(--color-border);text-align:center;padding:2px 3px}.season-grid tr{--interest:var(--color-interest-other)}.season-grid tr[data-interest=flower]{--interest:var(--color-bloom)}.season-grid tr[data-interest=foliage]{--interest:var(--color-foliage)}.season-grid tr[data-interest=evergreen]{--interest:var(--color-evergreen)}.season-grid td.s-observed{background:var(--interest);color:var(--color-surface);font-weight:700}.season-grid td.s-source-months{background:color-mix(in srgb, var(--interest) 45%, transparent)}.season-grid td.s-season-only{background:repeating-linear-gradient(45deg, transparent 0 3px, var(--color-surface-3) 3px 6px)}.season-grid td.s-unknown{color:var(--color-text-muted)}.season-grid td.current{outline:2px solid var(--color-focus);outline-offset:-2px}.dialog{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);width:min(520px,100vw - 24px);max-height:calc(100dvh - 24px);box-shadow:var(--elev-2);border-radius:12px;padding:0}.dialog-wide{width:min(900px,100vw - 24px)}.dialog::backdrop{background:#08100c80}.dialog-form{flex-direction:column;max-height:calc(100dvh - 26px);display:flex}.dialog-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.dialog-body{padding:var(--space-5);overflow:auto}.dialog-actions{justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.toasts{right:var(--space-4);gap:var(--space-3);z-index:50;max-width:min(440px,100vw - 24px);display:grid;position:fixed;bottom:56px}.toast{gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-focus);border-radius:var(--radius-md);box-shadow:var(--elev-2);align-items:center;display:flex}.toast span{flex:1}.toast-warn{border-left-color:var(--color-warn)}.toast-error{border-left-color:var(--color-danger)}.toast-ok{border-left-color:var(--color-ok)}kbd{font-family:var(--font-mono);font-size:var(--fs-xs);border:1px solid var(--color-border-strong);background:var(--color-surface-2);border-bottom-width:2px;border-radius:3px;padding:0 4px}.three-host{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-canvas);width:100%;height:320px;position:relative}.three-host canvas{width:100%;height:100%;display:block}@media (max-width:1199px){.workspace{grid-template-columns:1fr;position:relative}.panel{z-index:20;width:min(360px,92vw);box-shadow:var(--elev-2);position:absolute;top:0;bottom:0}.panel-left{left:0}.panel-right{right:0}.app[data-panel=plan] .panel,.app[data-panel=left] .panel-right,.app[data-panel=right] .panel-left{display:none}.mobile-nav{gap:var(--space-2);padding:var(--space-2);background:var(--color-surface);border-top:1px solid var(--color-border);display:flex}.mobile-nav button{border:1px solid var(--color-border);background:var(--color-surface);border-radius:8px;flex:1;min-height:40px}.mobile-nav button[aria-pressed=true]{background:var(--color-action);color:var(--color-action-text);border-color:var(--color-action)}.app{grid-template-rows:auto auto 1fr auto auto}:root{--touch:40px}.handle{stroke-width:2px}}@media (max-width:767px){.topbar{gap:var(--space-2);padding:var(--space-2)}.brand-name{display:none}.project-name{max-width:50vw}.menu{flex-wrap:nowrap;order:10;width:100%;min-width:0;max-width:100%;overflow-x:auto}.menu .btn .icon{display:none}.menu .btn{flex:none}.save-status{margin-left:0}.server-status .server-text{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.server-status{padding-left:var(--space-2)}.account-btn{padding:0 var(--space-2)}.account-label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.panel{width:100vw}.statusbar{gap:var(--space-3);font-size:var(--fs-xs);flex-wrap:nowrap;overflow-x:auto}.statusbar>*{flex:none}#cursor-pos,#zoom-readout{flex:none;overflow:visible}.canvas-controls{right:var(--space-2);bottom:var(--space-2);flex-wrap:wrap}.hintbar{flex-wrap:wrap}.field-row,.field-row-3{grid-template-columns:1fr}#server-versions .col-wide{display:none}#server-versions .row{gap:var(--space-2)}#server-projects .col-wide{display:none}#server-projects .row{gap:var(--space-2)}.server-status[data-state=offline] .server-text,.server-status[data-state=readonly] .server-text{clip:auto;width:auto;height:auto;margin:0;position:static;overflow:visible}#server-share .share-form{grid-template-columns:1fr}#admin-users .col-wide{display:none}#admin-users .share-form{grid-template-columns:1fr}}@media print{.app{display:none}}.obj-static{cursor:default}.scroll-x{overflow-x:auto}.share-form{gap:var(--space-3);grid-template-columns:minmax(0,1fr) auto auto;align-items:end;display:grid}.share-form .field{margin-bottom:0}.share-email{overflow-wrap:anywhere}#share-list select{width:auto;min-width:6.5rem}.account-tools{gap:var(--space-2);flex-wrap:wrap;display:flex}.btn-link{font:inherit;color:var(--color-focus);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.link-box{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-surface-2)}.link-box h3{margin-top:0}.link-row{gap:var(--space-2);align-items:center;display:flex}.link-field{min-width:0;font-family:var(--font-mono);font-size:var(--fs-sm);flex:1}#user-list .row{gap:var(--space-2)}.calib-svg{border:1px solid var(--color-border);cursor:crosshair;touch-action:none;width:100%;max-height:55vh}.three-host-large{height:min(60vh,560px)}.welcome-lead{font-size:var(--fs-lg)}.welcome-list{gap:var(--space-2);margin:0;padding-left:1.25em;display:grid}.welcome h3{margin-bottom:0}@media (max-width:480px){.dialog:has(#signup-name){width:calc(100vw - 32px)}:is(.dialog:has(#signup-name) input[type=text],.dialog:has(#signup-name) input[type=email],.dialog:has(#signup-name) input[type=password]){width:100%;min-height:44px;font-size:16px}.dialog:has(#signup-name) .dialog-actions{flex-direction:column}.dialog:has(#signup-name) .dialog-actions .btn{width:100%;min-height:44px}}.ctx-layer{z-index:60;pointer-events:none;position:fixed;inset:0}.ctx-menu{pointer-events:auto;min-width:220px;max-width:min(340px,100vw - 8px);max-height:calc(100vh - 8px);padding:var(--space-2);background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);box-shadow:var(--elev-2);font-size:var(--fs-sm);border-radius:12px;position:fixed;overflow-y:auto}.ctx-item{align-items:center;gap:var(--space-2);width:100%;min-height:var(--touch);padding:0 var(--space-3) 0 var(--space-2);border-radius:var(--radius-sm);color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:1.1em 1fr auto auto;display:grid}.ctx-item:hover,.ctx-item:focus{background:var(--color-action-soft);outline:none}.ctx-item:focus-visible{outline:2px solid var(--color-focus);outline-offset:-2px}.ctx-item[aria-disabled=true]{color:var(--color-text-muted);cursor:default}.ctx-item[aria-disabled=true]:hover{background:0 0}.ctx-item[aria-expanded=true]{background:var(--color-surface-2)}.ctx-check{color:var(--color-action);font-weight:700}.ctx-shortcut{color:var(--color-text-muted);font-size:var(--fs-xs);padding-left:var(--space-4)}.ctx-arrow{color:var(--color-text-muted)}.ctx-back{border-bottom:1px solid var(--color-border);margin-bottom:var(--space-1);border-radius:0;font-weight:600}.ctx-sep{height:1px;margin:var(--space-1) var(--space-2);background:var(--color-border)}@media (max-width:767px){.ctx-item{min-height:40px}.ctx-shortcut{display:none}}@media print{.ctx-layer{display:none}}.account-gate{z-index:40;padding:var(--space-6) var(--space-5);background:var(--color-bg);place-items:center;display:grid;position:fixed;inset:0;overflow-y:auto}.account-gate-card{gap:var(--space-4);width:100%;max-width:460px;padding:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--elev-2);font-size:var(--fs-lg);display:grid}.account-gate-card h1{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:1.6rem;line-height:1.2}.account-gate-card p{margin:0}.account-gate-brand{font-family:var(--font-display);color:var(--color-action);font-weight:700}.account-gate-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.account-gate-actions .btn{min-height:44px;padding:0 var(--space-5);font-size:var(--fs-lg)}@media (max-width:480px){.account-gate{padding:var(--space-5);place-items:start center}.account-gate-card{padding:var(--space-5)}.account-gate-actions .btn{flex:100%;justify-content:center}}.server-usage-warn{color:var(--color-warn);background:var(--color-warn-soft);border-radius:var(--radius-sm,6px);padding:var(--space-2) var(--space-3);margin:0}.grid-minor{stroke:var(--color-grid-minor);stroke-width:1px;fill:none}.grid-major{stroke:var(--color-grid-major);stroke-width:1px;fill:none}.origin-mark{stroke:var(--color-text-muted);stroke-width:1px}.ruler-bg{fill:var(--color-surface-2);opacity:.92}.ruler-tick{stroke:var(--color-text-muted);stroke-width:1px}.ruler-text{fill:var(--color-text-muted);font-variant-numeric:tabular-nums;font-size:9px}.ent .shape{fill:var(--fill-bed);stroke:var(--stroke-ent);stroke-width:1.25px}.ent{cursor:pointer}.kind-site-boundary .shape{fill:none;stroke:var(--color-text);stroke-width:1.5px;stroke-dasharray:10 4 2 4;pointer-events:stroke}.kind-raised-bed .shape,.kind-container .shape{fill:var(--fill-raised);stroke-width:2px}.kind-planting-area .shape{stroke-dasharray:6 3}.kind-building .shape,.kind-greenhouse .shape,.kind-obstacle .shape{fill:var(--fill-building);stroke:var(--color-text);stroke-width:1.5px}.kind-greenhouse .shape{fill:var(--fill-water)}.kind-patio .shape,.kind-path .shape,.kind-seating .shape,.kind-compost-area .shape{fill:var(--fill-hardscape)}.kind-fence .shape,.kind-trellis .shape{fill:var(--stroke-ent)}.kind-lawn .shape{fill:var(--fill-lawn);stroke-width:.8px}.kind-pond .shape{fill:var(--fill-water)}.kind-utility .shape{fill:var(--color-danger-soft);stroke:var(--color-danger);stroke-dasharray:8 4}.kind-conditions-region .shape{fill:#c8aa3c14;stroke:var(--color-warn);stroke-dasharray:3 3}.kind-tree-canopy .shape{fill:#50783c1f;stroke:var(--color-evergreen);stroke-dasharray:5 3}.centerline{fill:none;stroke:var(--color-text-muted);stroke-width:1px;stroke-dasharray:4 3}.status-remove .shape,.status-remove .plant-footprint{stroke-dasharray:3 3;stroke:var(--color-danger)!important}.status-relocate .shape,.status-relocate .plant-footprint{stroke-dasharray:8 3}.status-existing .plant-footprint{fill-opacity:.6}.plant-footprint{fill:var(--fill-plant);stroke:var(--stroke-plant);stroke-width:1.2px}.plant-center{fill:var(--stroke-plant)}.size-unknown .plant-footprint{fill:url(#hatch-unknown);stroke-dasharray:2 2;stroke:var(--color-unknown)}.hatch-line{stroke:var(--color-unknown);stroke-width:1px}.season-flower .plant-footprint{fill:color-mix(in srgb, var(--color-bloom) 55%, transparent);stroke:var(--color-bloom)}.season-foliage .plant-footprint{fill:color-mix(in srgb, var(--color-foliage) 40%, transparent)}.season-evergreen .plant-footprint{fill:color-mix(in srgb, var(--color-evergreen) 55%, transparent)}.season-unknown .plant-footprint{fill:url(#hatch-unknown)}.locked .shape{stroke-dasharray:1 3}.ref-frame{fill:none;stroke:var(--color-focus);stroke-width:1px;stroke-dasharray:4 4}.kind-reference-image{pointer-events:visiblePainted}.note-dot{fill:var(--color-text)}.dim-line{stroke:var(--color-text);stroke-width:1px}.hit-line{stroke:#0000;stroke-width:10px}.dim-text,.note-text,.ent-label,.plant-label{fill:var(--color-text);paint-order:stroke;stroke:var(--color-canvas);stroke-width:3px;stroke-linejoin:round;font-variant-numeric:tabular-nums;font-size:11px}.plant-label{font-size:10px;font-weight:600}.ent-label{fill:var(--color-text-muted);font-size:11px}.sel-outline{fill:none;stroke:var(--color-select);stroke-width:2px}.handle{fill:var(--color-canvas);stroke:var(--color-select);stroke-width:1.5px;cursor:grab}.handle-mid{opacity:.6}.handle-ctrl{fill:var(--color-select)}.handle-hole-center{fill:var(--color-select);cursor:move}.handle-rotate{fill:var(--color-action);stroke:var(--color-canvas);cursor:crosshair}.handle-stem{stroke:var(--color-select);stroke-width:1px}.group-box{fill:none;stroke:var(--color-select);stroke-width:1px;stroke-dasharray:4 3;pointer-events:none}.draft{fill:color-mix(in srgb, var(--color-draft) 8%, transparent);stroke:var(--color-draft);stroke-width:1.5px;stroke-dasharray:6 3}.draft-unknown{stroke-dasharray:2 2}.draft-wide{fill:none;stroke:color-mix(in srgb, var(--color-draft) 25%, transparent)}.draft-pt{fill:var(--color-draft)}.draft-stem{stroke:var(--color-draft);stroke-width:1px}.snap-mark{fill:none;stroke:var(--color-focus);stroke-width:1.5px}.marquee{fill:#1d5fa814;stroke:var(--color-select);stroke-dasharray:4 3}.shadow{fill:var(--shadow-fill)}.north-ring{fill:var(--color-surface);stroke:var(--color-text);stroke-width:1px}.north-dark{fill:var(--color-text)}.north-light{fill:var(--color-surface);stroke:var(--color-text);stroke-width:1px}.north-text{font-family:var(--font-display);fill:var(--color-text);paint-order:stroke;stroke:var(--color-canvas);stroke-width:3px;font-size:12px;font-weight:700}.scale-bg{fill:var(--color-canvas);opacity:.85}.scale-dark{fill:var(--color-text)}.scale-light{fill:var(--color-surface);stroke:var(--color-text);stroke-width:1px}.scale-text{font-family:var(--font-mono);fill:var(--color-text);font-size:10px}.tx-bg-lawn{fill:var(--fill-lawn)}.tx-bg-bed{fill:var(--fill-bed)}.tx-bg-pave{fill:var(--fill-hardscape)}.tx-bg-water{fill:var(--fill-water)}.tx-bg-roof{fill:var(--fill-building)}.tx-mark{fill:none;stroke-linecap:round;stroke-width:.012px}.tx-lawn-mark{stroke:var(--tx-lawn-mark)}.tx-bed-mark{stroke:var(--tx-bed-mark);stroke-width:.014px}.tx-pave-line{stroke:var(--tx-pave-line);stroke-width:.01px}.tx-water-line{stroke:var(--tx-water-line)}.tx-roof-line{stroke:var(--tx-roof-line);stroke-width:.02px}.style-presentation .kind-lawn .shape{fill:url(#tx-lawn);stroke:var(--tx-lawn-mark)}.style-presentation .kind-bed .shape,.style-presentation .kind-planting-area .shape,.style-presentation .kind-raised-bed .shape,.style-presentation .kind-container .shape{fill:url(#tx-bed)}.style-presentation .kind-patio .shape,.style-presentation .kind-path .shape,.style-presentation .kind-seating .shape{fill:url(#tx-pave)}.style-presentation .kind-pond .shape{fill:url(#tx-water);stroke:var(--tx-water-line)}.style-presentation .kind-building .shape,.style-presentation .kind-obstacle .shape{fill:url(#tx-roof);stroke-width:2.4px}.style-presentation .grid-minor{opacity:.5}.style-presentation .ent:not(.size-unknown) .plant-footprint{fill:#0000;stroke:#0000}.style-presentation .ent:not(.size-unknown) .plant-center{fill:none}.style-presentation .status-remove:not(.size-unknown) .plant-footprint,.style-presentation .status-relocate:not(.size-unknown) .plant-footprint{stroke:var(--stroke-plant)}.plant-symbol .sym-body{stroke:var(--stroke-plant);stroke-width:1.2px}.sym-rim{fill:var(--sym-rim)}.sym-tree{fill:var(--sym-tree);stroke:var(--sym-tree-ink)!important;stroke-width:1.5px!important}.sym-tree-hi{fill:var(--sym-tree-hi)}.sym-shrub{fill:var(--sym-shrub)}.sym-shrub-hi{fill:var(--sym-shrub-hi)}.sym-grass{fill:var(--sym-grass);stroke:none!important}.sym-leaf{fill:var(--sym-leaf);stroke-width:.8px!important}.sym-petal{fill:var(--sym-petal);stroke:var(--stroke-plant);stroke-width:.6px}.sym-ink{fill:none;stroke:var(--sym-tree-ink);stroke-width:1px;stroke-linecap:round;opacity:.75}.sym-blades{stroke:var(--sym-grass-ink);opacity:1}.sym-fronds{stroke:var(--stroke-plant);stroke-width:.7px;opacity:.7}.sym-fern{stroke-width:.6px!important}.sym-dot{fill:var(--stroke-plant)}.sym-trunk{fill:var(--sym-trunk)}.status-existing .plant-symbol{opacity:.75}.season-flower .sym-petal{fill:var(--color-bloom)}.season-flower .sym-body,.season-foliage .sym-body,.season-evergreen .sym-body{fill:color-mix(in srgb, currentColor 55%, transparent)}.season-flower .plant-symbol{color:var(--color-bloom)}.season-foliage .plant-symbol{color:var(--color-foliage)}.season-evergreen .plant-symbol{color:var(--color-evergreen)}.season-unknown .sym-body{fill:url(#hatch-unknown)}.season-unknown .sym-hi,.season-flower .sym-hi,.season-foliage .sym-hi,.season-evergreen .sym-hi{fill:none}.callout-line{fill:none;stroke:var(--color-text);stroke-width:1px;opacity:.8}.callout-dot{fill:var(--color-text)}.callout-text{font-family:var(--font-display);fill:var(--color-text);paint-order:stroke;stroke:var(--color-canvas);stroke-width:3.5px;stroke-linejoin:round;font-size:12px;font-weight:600}p:has(+.info-tip){display:inline}.info-tip{display:inline}.info-tip+*{margin-top:var(--space-3)}.info-tip>summary{box-sizing:border-box;vertical-align:middle;min-width:24px;min-height:24px;color:var(--color-text-muted);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;margin-left:2px;list-style:none;display:inline-flex}.info-tip>summary::-webkit-details-marker{display:none}.info-tip>summary:hover,.info-tip[open]>summary{color:var(--color-action)}.info-tip>summary:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.info-tip-body{background:var(--color-surface-2);color:var(--color-text-muted);font-size:var(--fs-sm);overflow-wrap:anywhere;border-radius:8px;margin-top:6px;padding:8px 10px;display:block}.info-tip-body>p{margin:0}.info-tip-body>p+p{margin-top:6px}.line-with-info{flex-wrap:wrap;align-items:center;gap:6px;display:flex}@media (max-width:767px){.info-tip>summary{min-width:var(--touch);min-height:var(--touch)}}
