.experiments-page{min-width:0}.experiments-page .button{min-height:44px;padding:9px 13px;border:1px solid var(--line);border-radius:7px;color:var(--ink);font-size:15px;font-weight:600;cursor:pointer}.experiments-page .button.secondary{background:var(--surface-2)}.experiments-page .button.primary{border-color:var(--green-deep);background:var(--green);color:#10200c}.experiments-page .button.danger{border-color:color-mix(in srgb,var(--danger) 62%,var(--line));background:color-mix(in srgb,var(--danger) 12%,var(--surface));color:color-mix(in srgb,var(--danger) 78%,var(--ink))}.experiments-page .button.danger:hover:not(:disabled){border-color:var(--danger);background:color-mix(in srgb,var(--danger) 18%,var(--surface))}.experiments-page .button:disabled{cursor:not-allowed;opacity:.62}.experiments-page .button:focus-visible{outline:3px solid var(--green);outline-offset:2px}.experiments-page :is(input:not([type=checkbox],[type=radio],[type=file]),select,textarea){width:100%;min-width:0;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--ink);caret-color:var(--green-deep);font-size:16px}.experiments-page :is(input:not([type=checkbox],[type=radio],[type=file]),select,textarea)::placeholder{color:var(--muted);opacity:1}.experiments-page :is(input:not([type=checkbox],[type=radio],[type=file]),select,textarea):hover:not(:disabled){border-color:color-mix(in srgb,var(--green) 55%,var(--line))}.experiments-page :is(input:not([type=checkbox],[type=radio],[type=file]),select,textarea):focus-visible{border-color:var(--green-deep);outline:3px solid color-mix(in srgb,var(--green) 28%,transparent);outline-offset:1px}.experiments-page :is(input:not([type=checkbox],[type=radio],[type=file]),select,textarea):disabled{cursor:not-allowed;opacity:.62}.experiments-page :is(input[type=checkbox],input[type=radio]){accent-color:var(--green-deep)}.experiments-page .button.secondary.archive-experiment-button{border-color:#eef1ef;background:#d9dedb;color:#1c211e}.experiments-page .button.secondary.archive-experiment-button:hover:not(:disabled){border-color:#fff;background:#cbd1cd}.experiments-page-hero{--page-hero-image: url(/assets/images/heroes/plant-history.jpg);--page-hero-position: center 48%}.experiment-create{display:grid;gap:18px;margin-top:24px;padding:clamp(16px,3vw,28px);border:1px solid var(--line);border-radius:12px;background:var(--surface)}.experiment-create .section-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;flex-wrap:wrap}.experiment-create .section-heading h2,.experiment-create .section-heading p{margin:0}.experiment-create .section-heading>p{max-width:520px;color:var(--muted);font-size:14px}.experiment-create form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.experiment-create .field,.experiment-create .cover-field{display:grid;align-content:start;gap:7px;min-width:0}.experiment-create .field-wide{grid-column:1/-1}.experiment-create label>span,.experiment-create legend,.experiment-create .cover-field>label{font-size:15px;font-weight:400}.experiment-create input,.experiment-create select,.experiment-create textarea{width:100%;min-width:0;min-height:44px;font-size:16px}.experiment-create textarea{resize:vertical}.experiment-create .cover-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.experiment-create .cover-input:focus-visible+.cover-picker-row .cover-picker-button{outline:3px solid var(--green);outline-offset:2px}.experiment-create .cover-picker-row{display:flex;align-items:center;gap:10px 14px;min-width:0;flex-wrap:wrap}.experiment-create .cover-picker-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 14px;border:1px solid color-mix(in srgb,var(--green) 65%,#17221c);border-radius:8px;background:#17221c;color:var(--green);font-size:15px;font-weight:600;cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}.experiment-create .cover-picker-button:hover:not(.disabled){border-color:var(--green);background:#101813;color:color-mix(in srgb,var(--green) 82%,white)}.experiment-create .cover-picker-button.disabled{cursor:not-allowed;opacity:.62}.experiment-create .cover-file-name{min-width:0;color:var(--muted);font-size:14px;overflow-wrap:anywhere}.experiment-create small,.experiment-create .create-actions p,.experiment-create .plant-options>p{margin:0;color:var(--muted);font-size:14px;line-height:1.45}.experiment-create .field-error{color:var(--danger, #b42318)}.experiment-create .plant-options{min-width:0;margin:0;padding:14px;border:1px solid var(--line);border-radius:9px}.experiment-create .plant-context-note{margin:10px 0 0;padding:10px 12px;border-left:3px solid var(--green);border-radius:4px;background:var(--green-soft);color:var(--ink)}.experiment-create .plant-search{display:grid;gap:6px;margin-top:12px}.experiment-create .plant-search span{font-size:14px}.experiment-create .selection-count{margin-top:8px}.experiment-create .plant-option-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:8px;margin-top:12px}.experiment-create .plant-option-grid label{display:flex;align-items:flex-start;gap:10px;min-width:0;padding:10px;border-radius:8px;background:var(--surface-2);cursor:pointer}.experiment-create .plant-option-grid input{flex:0 0 auto;width:18px;min-height:18px;margin-top:2px}.experiment-create .plant-option-grid span{display:grid;gap:3px;min-width:0}.experiment-create .plant-option-grid code{overflow-wrap:anywhere;color:var(--muted);font-size:14px}.experiment-create figure{display:grid;gap:10px;width:min(100%,560px);margin:6px 0 0}.experiment-create figure img{width:100%;max-height:260px;border-radius:9px;object-fit:cover}.experiment-create figure figcaption{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:14px;overflow-wrap:anywhere}.experiment-create .create-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.experiments-page .page-header p:last-child{max-width:720px;font-size:15px;line-height:1.6}.read-only-notice{padding:12px 14px;border-left:3px solid var(--green);background:var(--surface-2)}.experiment-overview{display:grid;gap:18px;margin-top:24px}.experiment-overview .overview-heading,.experiment-overview .experiment-card>header,.experiment-overview .fleet-coverage li,.experiment-overview .overview-plant-links li{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.experiment-overview .overview-heading{align-items:end}.experiment-overview .overview-heading h2,.experiment-overview .overview-heading p{margin:0}.experiment-overview .overview-heading>div>p:last-child{max-width:760px;color:var(--muted);font-size:15px}.fleet-coverage{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:8px;margin:0;padding:0;list-style:none}.fleet-coverage li{min-width:0;padding:10px 12px;border:1px solid var(--line);border-left:4px solid var(--muted);border-radius:8px;background:var(--surface)}.fleet-coverage li[data-status=live]{border-left-color:var(--green)}.fleet-coverage li[data-status=retained],.fleet-coverage li[data-status=loading]{border-left-color:var(--semantic-warning, #b7791f)}.fleet-coverage li[data-status=unavailable],.fleet-coverage li[data-status=forbidden]{border-left-color:var(--danger)}.fleet-coverage span{display:grid;gap:3px;min-width:0}.fleet-coverage strong{overflow-wrap:anywhere}.fleet-coverage small{color:var(--muted);font-size:14px}.fleet-partial{margin:10px 0 0;padding:11px 13px;border:1px solid var(--semantic-warning, #b7791f);border-radius:8px;color:var(--ink);background:color-mix(in srgb,var(--semantic-warning, #b7791f) 10%,var(--surface));font-size:14px}.overview-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:12px;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.overview-filters label{display:grid;gap:6px;min-width:0}.overview-filters span{color:var(--muted);font-size:14px;font-weight:400}.overview-filters select{width:100%;min-width:0;min-height:44px;font-size:15px}.overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:14px}.experiments-page :is(.status-badge,.status-value,select)[data-status=ongoing]{--experiment-status-color: var(--connection-water, #26b9d0)}.experiments-page :is(.status-badge,.status-value,select)[data-status=stopped]{--experiment-status-color: var(--connection-jumper, #768186)}.experiments-page :is(.status-badge,.status-value,select)[data-status=success]{--experiment-status-color: var(--semantic-success, #77cf36)}.experiments-page :is(.status-badge,.status-value,select)[data-status=failure]{--experiment-status-color: var(--status-critical, var(--danger, #cf2121))}.status-badge{display:inline-flex;align-items:center;gap:7px;width:fit-content;padding:4px 9px;border:1px solid color-mix(in srgb,var(--experiment-status-color) 58%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--experiment-status-color) 14%,var(--surface));color:color-mix(in srgb,var(--experiment-status-color) 58%,var(--ink));font-size:14px;font-weight:600}.status-badge svg{flex:0 0 auto;color:var(--experiment-status-color);stroke-width:2.5}select[data-status=ongoing],select[data-status=stopped],select[data-status=success],select[data-status=failure]{border-inline-start:4px solid var(--experiment-status-color)!important;background-color:color-mix(in srgb,var(--experiment-status-color) 9%,var(--surface-2))!important}.experiment-card{display:flex;flex-direction:column;gap:14px;min-width:0;padding:clamp(14px,3vw,20px);border:1px solid var(--line);border-radius:11px;background:var(--surface)}.experiment-card.retained{border-style:dashed}.experiment-card header>div{display:grid;gap:7px;min-width:0}.experiment-card h3,.experiment-card p,.experiment-card dl{margin:0}.experiment-card h3{overflow-wrap:anywhere}.experiment-card .experiment-summary{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:15px;line-height:1.55;white-space:pre-line;-webkit-box-orient:vertical;-webkit-line-clamp:3}.experiment-card .retained-note{padding:8px 10px;border-radius:6px;background:var(--green-soft);font-size:14px}.experiment-metadata{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(130px,100%),1fr));gap:10px}.experiment-metadata div{min-width:0}.experiment-metadata dt,.experiment-metadata dd{overflow-wrap:anywhere}.experiment-metadata dt{color:var(--muted);font-size:14px}.experiment-metadata dd{margin:3px 0 0;font-size:14px;font-weight:400}.overview-plant-links{display:grid;gap:8px;margin:0;padding:0;list-style:none}.overview-plant-links li{min-width:0;padding:9px 10px;border-radius:8px;background:var(--surface-2)}.overview-plant-links li>span{display:grid;gap:2px;min-width:0}.overview-plant-links strong,.overview-plant-links small{overflow-wrap:anywhere}.overview-plant-links small{color:var(--muted);font-size:14px}.overview-state{margin:0;padding:22px;border:1px dashed var(--line);border-radius:10px;background:var(--surface);font-size:15px}.overview-state p{margin:0 0 12px}.experiment-open-thread{align-self:start;margin-top:auto}.experiment-thread{display:grid;gap:18px;margin-top:24px;padding:clamp(16px,3vw,28px);border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-sm)}.experiment-thread h2,.experiment-thread h3,.experiment-thread p{margin:0}.thread-heading{display:flex;align-items:start;justify-content:space-between;gap:16px;flex-wrap:wrap}.thread-heading h2{overflow-wrap:anywhere}.thread-context{display:grid;gap:16px;padding:16px;border-radius:10px;background:var(--surface-2)}.thread-status{display:grid;gap:12px}.thread-status-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px}.thread-status-controls{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.thread-status-controls label{display:grid;gap:6px;min-width:min(210px,100%)}.thread-status-controls label>span{color:var(--muted);font-size:14px;font-weight:400}.thread-status-controls select{min-height:42px;padding:9px 36px 9px 11px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background-color:var(--surface);font:inherit;font-size:16px}.thread-goal,.thread-plants{display:grid;gap:8px;min-width:0}.thread-goal p,.thread-plants p{overflow-wrap:anywhere;white-space:pre-wrap}.thread-plants ul{display:flex;gap:8px;flex-wrap:wrap;margin:0;padding:0;list-style:none}.thread-plants li{display:grid;gap:2px;max-width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:8px;overflow-wrap:anywhere;background:var(--surface)}.thread-plants small{color:var(--muted);font-size:14px}.thread-timeline{position:relative;display:grid;gap:12px;margin:0;padding:0 0 0 22px;list-style:none}.thread-timeline:before{position:absolute;top:8px;bottom:8px;left:6px;width:2px;background:var(--line);content:""}.thread-timeline>li{position:relative;min-width:0}.thread-timeline>li:before{position:absolute;top:17px;left:-21px;width:10px;height:10px;border:2px solid var(--surface);border-radius:50%;background:var(--primary);content:""}.thread-entry{display:grid;gap:10px;min-width:0;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.thread-entry header{display:flex;gap:8px 12px;align-items:baseline;flex-wrap:wrap}.thread-entry header span,.thread-entry time{color:var(--muted);font-size:14px}.thread-entry p,.thread-entry strong{overflow-wrap:anywhere;white-space:pre-wrap}.thread-entry[data-local-entry=comment]{animation:experiment-comment-confirmed .42s ease-out both}.thread-entry[data-local-entry=status]{animation:experiment-status-confirmed .36s ease-out both}.comment-entry[data-reply-depth="1"]{margin-inline-start:16px}.comment-entry[data-reply-depth="2"]{margin-inline-start:28px}.comment-entry[data-reply-depth="3"]{margin-inline-start:40px}.comment-entry:focus-visible{outline:3px solid color-mix(in srgb,var(--green) 34%,transparent);outline-offset:2px}.reply-reference{display:grid;gap:4px;width:100%;min-width:0;padding:9px 11px;border:0;border-inline-start:3px solid var(--green);border-radius:6px;background:color-mix(in srgb,var(--green) 9%,var(--surface));color:var(--ink);text-align:start}.reply-reference span{color:var(--muted);font-size:14px;font-weight:400}.reply-reference q{display:-webkit-box;overflow:hidden;font-size:14px;line-height:1.45;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2}.reply-reference:hover{background:color-mix(in srgb,var(--green) 15%,var(--surface))}.reply-reference:focus-visible{outline:3px solid color-mix(in srgb,var(--green) 34%,transparent);outline-offset:2px}.edited-marker{display:inline-flex;gap:4px;align-items:baseline;color:var(--muted);font-size:14px;font-style:italic}.deleted-comment{color:var(--muted);font-style:italic}.content-edit-form{display:grid;gap:8px}.content-edit-form label{font-size:14px;font-weight:400}.content-edit-form textarea{width:100%;min-height:112px;padding:11px 12px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--surface);font:inherit;font-size:16px;resize:vertical}.content-actions,.content-mutation-message{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.content-mutation-message{margin:0;padding:12px 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);font-size:14px}.content-mutation-message.success{color:var(--success)}.original-post{border-left:4px solid var(--primary)}.status-entry{grid-template-columns:minmax(0,1fr) auto;align-items:center;background:color-mix(in srgb,var(--primary) 8%,var(--surface))}.status-event-message{display:inline-flex;align-items:baseline;gap:4px;flex-wrap:wrap;line-height:1.55}.status-value{display:inline-flex;align-items:center;gap:4px;padding:1px 6px;border:1px solid color-mix(in srgb,var(--experiment-status-color) 46%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--experiment-status-color) 12%,var(--surface));color:color-mix(in srgb,var(--experiment-status-color) 62%,var(--ink));font-size:14px;font-weight:400}.status-value svg{flex:0 0 auto;color:var(--experiment-status-color);stroke-width:2.5}.thread-composer{display:grid;gap:10px;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:var(--shadow-sm)}.thread-composer p{color:var(--muted);font-size:14px}.thread-composer textarea{width:100%;min-height:112px;padding:11px 12px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:var(--surface-2);font:inherit;font-size:16px;resize:vertical}.thread-composer-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.comment-picture-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.comment-picture-input:focus-visible+label{outline:3px solid var(--green);outline-offset:2px}.comment-picture-picker{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap}.comment-picture-picker label{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 14px;border:1px solid color-mix(in srgb,var(--green) 65%,#17221c);border-radius:8px;background:#17221c;color:var(--green);font-size:15px;font-weight:400;cursor:pointer}.comment-picture-picker span{color:var(--muted);font-size:14px}.comment-picture-drafts{display:grid;gap:10px;margin:0;padding:0;list-style:none}.comment-picture-drafts>li{display:grid;grid-template-columns:minmax(96px,150px) minmax(0,1fr);gap:12px;min-width:0;padding:12px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2)}.comment-picture-drafts>li.failed{border-color:color-mix(in srgb,var(--danger) 58%,var(--line))}.comment-picture-drafts img{width:100%;aspect-ratio:4/3;border-radius:7px;object-fit:cover}.comment-picture-details,.comment-picture-details label{display:grid;gap:6px;min-width:0}.comment-picture-details strong,.comment-picture-details>span,.comment-picture-details label strong,.comment-picture-details label>span{overflow-wrap:anywhere}.comment-picture-details>span,.comment-picture-details label>span,.comment-picture-details label label>span{color:var(--muted);font-size:14px}.comment-picture-actions{display:flex;gap:8px;flex-wrap:wrap}.comment-picture-actions .replacement-label{display:inline-flex;align-items:center;justify-content:center}.experiment-cover,.saved-picture-gallery figure,.experiment-picture-lightbox-panel{margin:0}.experiment-cover{width:min(100%,520px)}.experiment-cover.experiment-cover-compact{width:min(100%,300px)}.saved-picture-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:10px;min-width:0;margin:0;padding:0;list-style:none}.saved-picture-gallery li,.saved-picture-gallery figure{min-width:0}.saved-picture-gallery figcaption{padding-top:7px;overflow-wrap:anywhere;color:var(--muted);font-size:14px;line-height:1.45}.saved-picture-button{display:block;width:100%;min-width:0;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:9px;background:var(--surface);cursor:zoom-in}.saved-picture-button img{display:block;width:100%;max-width:100%;max-height:360px;aspect-ratio:4/3;object-fit:cover}.saved-picture-button:hover{border-color:color-mix(in srgb,var(--green) 62%,var(--line))}.saved-picture-button:focus-visible{outline:3px solid var(--green);outline-offset:3px}.saved-picture-unavailable{margin:0;padding:12px;border:1px dashed var(--line);border-radius:8px;background:var(--surface);color:var(--muted);font-size:14px;overflow-wrap:anywhere}.experiment-picture-lightbox{position:fixed;z-index:1200;inset:0;display:grid;place-items:center;padding:clamp(12px,4vw,36px);overflow:auto;overscroll-behavior:contain;background:#040b07e0;animation:experiment-picture-backdrop-in .16s ease-out both}.experiment-picture-lightbox .experiment-picture-lightbox-panel{animation:experiment-picture-panel-in .16s ease-out both}.experiment-picture-lightbox.closing{animation:experiment-picture-backdrop-out .16s ease-in both}.experiment-picture-lightbox.closing .experiment-picture-lightbox-panel{animation:experiment-picture-panel-out .16s ease-in both}.experiment-picture-lightbox-panel{display:grid;justify-items:end;gap:10px;width:min(100%,1100px);max-height:calc(100dvh - 24px);padding:12px;border:1px solid color-mix(in srgb,var(--green) 48%,var(--line));border-radius:12px;background:var(--surface);box-shadow:0 24px 70px #00000080}.experiment-picture-lightbox-panel img{display:block;width:100%;max-width:100%;min-height:0;max-height:calc(100dvh - 150px);border-radius:8px;object-fit:contain}.experiment-picture-lightbox-panel figcaption{width:100%;overflow-wrap:anywhere;color:var(--ink);font-size:14px;text-align:start}@keyframes experiment-comment-confirmed{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes experiment-status-confirmed{0%{background:color-mix(in srgb,var(--experiment-accent, #ef7b07) 20%,var(--surface))}to{background:color-mix(in srgb,var(--primary) 8%,var(--surface))}}@keyframes experiment-picture-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes experiment-picture-backdrop-out{0%{opacity:1}to{opacity:0}}@keyframes experiment-picture-panel-in{0%{transform:scale(.985)}to{transform:scale(1)}}@keyframes experiment-picture-panel-out{0%{transform:scale(1)}to{transform:scale(.985)}}@media(prefers-reduced-motion:reduce){.thread-entry[data-local-entry],.experiment-picture-lightbox,.experiment-picture-lightbox .experiment-picture-lightbox-panel,.experiment-picture-lightbox.closing,.experiment-picture-lightbox.closing .experiment-picture-lightbox-panel{animation:none!important;transition:none!important}}.composer-reply-target{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:10px 12px;border-inline-start:3px solid var(--green);border-radius:7px;background:var(--surface-2)}.composer-reply-target>span{display:grid;gap:4px;min-width:0}.composer-reply-target strong,.composer-reply-target q{overflow-wrap:anywhere;font-size:14px}.composer-reply-target q{display:-webkit-box;overflow:hidden;color:var(--muted);line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.owning-system{width:min(100%,620px);display:grid;gap:8px;margin:20px 0 0;padding:14px 16px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}.owning-system dt,.owning-system small{color:var(--muted);font-size:14px}.owning-system dd{margin:3px 0 0;color:var(--ink);overflow-wrap:anywhere;font-weight:400}.plant-link-history{display:grid;gap:16px;margin-top:24px}.plant-link-history article{min-width:0;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.plant-link-history h2,.plant-link-history h3{margin:0}.plant-link-history .experiment-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.plant-link-history ul{display:grid;gap:10px;margin:14px 0 0;padding:0;list-style:none}.plant-link-history li,.plant-link-history .plant-reference{display:flex;align-items:center;gap:10px;min-width:0}.plant-link-history li{justify-content:space-between;flex-wrap:wrap;padding:10px 12px;border-radius:8px;background:var(--surface-2)}.plant-link-history .plant-reference{flex-wrap:wrap;font-size:14px}.plant-link-history code{overflow-wrap:anywhere}.archive-view{display:grid;gap:14px;margin-top:24px;padding:16px;border:1px dashed var(--line);border-radius:10px}.archive-view h2,.archive-view p{margin:0}.archive-view p,.archive-view small{color:var(--muted);font-size:14px}.archive-view ul{display:grid;gap:10px;margin:0;padding:0;list-style:none}.archive-view li,.archive-view li>span,.archive-view small{display:flex;gap:8px}.archive-view li{align-items:center;justify-content:space-between;flex-wrap:wrap;padding:12px;border-radius:8px;background:var(--surface-2)}.archive-view li>span,.archive-view small{min-width:0;flex-direction:column}.archive-view .archive-record-actions{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:390px){.experiment-create form{grid-template-columns:minmax(0,1fr)}.experiment-create .cover-picker-row{display:grid}.experiment-create .cover-picker-button{width:100%}.comment-entry[data-reply-depth="1"]{margin-inline-start:8px}.comment-entry[data-reply-depth="2"]{margin-inline-start:14px}.comment-entry[data-reply-depth="3"]{margin-inline-start:20px}.composer-reply-target,.comment-picture-picker{align-items:stretch;flex-direction:column}.comment-picture-picker label{width:100%}.comment-picture-drafts>li{grid-template-columns:minmax(0,1fr)}.comment-picture-actions .button,.comment-picture-actions .replacement-label{width:100%;justify-content:center}.experiment-create .create-actions .button,.experiment-create figure .button{width:100%;justify-content:center}.plant-link-history li,.plant-link-history .button{width:100%}.plant-link-history .button{justify-content:center}.archive-view li .button{width:100%;justify-content:center}.archive-view .archive-record-actions{width:100%}.experiment-overview .overview-heading .button,.fleet-coverage .button,.experiment-card header .button,.overview-plant-links .button{width:100%;justify-content:center}.thread-heading .button,.thread-composer-actions .button,.thread-status-controls label,.thread-status-controls .button,.content-actions .button,.content-mutation-message .button,.experiment-open-thread{width:100%;justify-content:center}.status-entry{grid-template-columns:minmax(0,1fr)}}app-plants-page .treatment-fleet{margin:0 0 22px;padding:20px}app-plants-page .treatment-fleet-heading,app-plants-page .treatment-fleet-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}app-plants-page .treatment-fleet-heading h2{margin:3px 0 7px;font-size:clamp(20px,3vw,28px)}app-plants-page .treatment-fleet-heading p{max-width:720px;margin:0;color:var(--muted)}app-plants-page .treatment-fleet-count{flex:0 0 auto;padding:7px 11px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);font-size:14px;font-weight:400}app-plants-page .treatment-fleet-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,245px),1fr));gap:12px;margin-top:17px}app-plants-page .treatment-fleet-coverage{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:8px;margin:17px 0 0;padding:0;list-style:none}app-plants-page .treatment-fleet-coverage li{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:10px 12px;border:1px solid var(--line);border-left:4px solid var(--muted);border-radius:8px;background:var(--surface)}app-plants-page .treatment-fleet-coverage li[data-status=live]{border-left-color:var(--green)}app-plants-page .treatment-fleet-coverage li[data-status=retained],app-plants-page .treatment-fleet-coverage li[data-status=loading]{border-left-color:var(--semantic-warning, #b7791f)}app-plants-page .treatment-fleet-coverage li[data-status=unavailable],app-plants-page .treatment-fleet-coverage li[data-status=forbidden]{border-left-color:var(--danger)}app-plants-page .treatment-fleet-coverage span{display:grid;gap:3px;min-width:0}app-plants-page .treatment-fleet-coverage strong{overflow-wrap:anywhere}app-plants-page .treatment-fleet-coverage small{color:var(--muted);font-size:14px}app-plants-page .treatment-fleet-coverage .btn{flex:0 0 auto}app-plants-page .treatment-fleet-card{display:grid;align-content:start;gap:6px;min-width:0;padding:15px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2)}app-plants-page .treatment-fleet-card>span,app-plants-page .treatment-fleet-card>small,app-plants-page .treatment-fleet-card .treatment-fleet-card-heading small{min-width:0;color:var(--muted);overflow-wrap:anywhere}app-plants-page .treatment-fleet-card .btn{width:100%;margin-top:7px}app-plants-page .treatment-fleet-infected{color:#aa1bc7fc;font-size:14px;font-weight:400}app-plants-page .treatment-fleet-retained{margin:0 0 4px;padding:8px 10px;border:1px solid var(--semantic-warning, #b7791f);border-radius:6px;color:var(--ink);background:color-mix(in srgb,var(--semantic-warning, #b7791f) 10%,var(--surface));font-size:14px}app-plants-page .treatment-fleet-empty{margin:17px 0 0;padding:14px;border:1px dashed var(--line);border-radius:8px;color:var(--muted)}app-plants-page .treatment-fleet-partial{margin:10px 0 0;padding:11px 13px;border:1px solid var(--semantic-warning, #b7791f);border-radius:8px;color:var(--ink);background:color-mix(in srgb,var(--semantic-warning, #b7791f) 10%,var(--surface));font-size:14px}@media(max-width:560px){app-plants-page .treatment-fleet{padding:15px}app-plants-page .treatment-fleet-heading{align-items:stretch;flex-direction:column}app-plants-page .treatment-fleet-coverage li{align-items:stretch;flex-direction:column}app-plants-page .treatment-fleet-coverage li .btn{width:100%}app-plants-page .treatment-fleet-count{align-self:flex-start}}app-plants-page .plants-page .filter-action-row{grid-column:3/-1;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;position:relative}app-plants-page .plants-page .filter-action-row>.filter-disclosure{grid-column:auto;min-width:0}app-plants-page .plants-page .advanced-filter-toggle{width:100%}app-plants-page .plants-page .filter-action-row>.reset-filters{min-height:40px;align-self:start;white-space:nowrap}app-plants-page .plants-page .filter-action-row>.reset-filters:disabled{border-color:var(--line);background:var(--surface-2);color:var(--muted);opacity:.58;cursor:not-allowed;box-shadow:none}app-plants-page .plants-page .filter-action-row>.advanced-filters{grid-column:1/-1}app-plants-page .plants-page .plant-card.selection-mode .plant-info h2{min-height:40px;padding-inline-end:132px}app-plants-page .plants-page .plant-card-selection{top:323px;right:20px;min-height:36px;max-width:calc(100% - 40px);padding:6px 9px;border:1px solid color-mix(in srgb,var(--green) 38%,var(--line));background:var(--surface-2);box-shadow:none}app-plants-page .plants-page .plant-card-selection span{overflow:visible;text-overflow:clip;white-space:nowrap}app-plants-page .plants-page .generation-badge{background:#fafcf8f0;color:var(--green-deep)}app-plants-page .advanced-runtime-input input{min-height:42px;padding:10px 12px}:root[data-theme=dark] app-plants-page .plants-page .generation-badge{border:1px solid color-mix(in srgb,var(--green) 34%,transparent);background:#232a25f5;color:var(--green)}@media(max-width:900px){app-plants-page .plants-page .filter-action-row{grid-column:1/-1}}@media(max-width:600px){app-plants-page .plants-page .filter-action-row{grid-template-columns:repeat(2,minmax(0,1fr))}app-plants-page .plants-page .filter-action-row>.reset-filters{min-height:44px;white-space:normal}}@media(max-width:360px){app-plants-page .plants-page .plant-card-selection{top:278px}}app-documentation-page .chapter-nav-control{padding:18px clamp(22px,3vw,44px) 0}app-documentation-page .chapter-nav-toggle{min-height:44px;display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);color:var(--green-deep);font-size:14px;font-weight:600;cursor:pointer}app-documentation-page .chapter-nav-toggle svg{width:18px;transition:transform .22s ease;transform:rotate(180deg)}app-documentation-page .chapter-nav-toggle svg.collapsed{transform:rotate(0)}app-documentation-page .chapter-nav-toggle:hover,app-documentation-page .chapter-nav-toggle:focus-visible{border-color:var(--green);background:var(--green-soft)}app-documentation-page .chapter-nav{min-width:0;overflow:hidden;opacity:1;transform:translate(0);transition:opacity .18s ease,transform .24s ease}app-documentation-page .chapter-nav-hidden .chapter-nav{opacity:0;transform:translate(-12px);pointer-events:none}@media(max-width:750px){app-documentation-page .chapter-nav-hidden .mobile-chapter-nav{max-height:0;padding-block:0;border-width:0;opacity:0;pointer-events:none}}@media(min-width:501px)and (max-width:980px){app-documentation-page .deployment-path:last-child:nth-child(odd){grid-column:1/-1}}:root{--font-display: "Manrope", system-ui, sans-serif;--font-body: "DM Sans", system-ui, sans-serif;--bg: #f6f8f5;--surface: #fff;--surface-2: #eef3eb;--ink: #1d2a20;--muted: #617066;--line: #dce5d8;--green: #77cf36;--green-deep: #397d16;--green-soft: #e6f6dc;--accent-bright: #a9ed75;--accent-mid: #79b38a;--accent-on-deep: #c2d3c7;--accent-status: #77cf36;--accent-badge-ink: #285e42;--overlay-hero: rgba(10, 22, 12, .48);--overlay-soft: rgba(8, 21, 15, .42);--overlay-strong: rgba(8, 21, 15, .58);--overlay-image: rgba(12, 30, 20, .24);--sky: #dceef1;--brown: #9a7354;--danger: #cf2121;--danger-soft: #f8e9e7;--semantic-warning: #f8d718;--semantic-warning-ink: #292400;--hardware-power-node: #f1d21b;--hardware-plant-node: #7ed211;--hardware-treatment-node: #aa1bc7fc;--hardware-experiment-node: #ef7b07;--connection-api: #dd3947;--connection-water: #26b9d0;--connection-jumper: #768186;--connection-power: #f1d21b;--connection-controller-power: #d89716;--connection-controller: #67b849;--connection-context: #aeb8bc;--semantic-information: #177b92;--semantic-success: #77cf36;--semantic-success-ink: #17210f;--semantic-selected: #2587d9;--status-critical: var(--danger);--status-warning: var(--semantic-warning);--status-healthy: var(--semantic-success);--status-infected: #aa1bc7fc;--radius-card: 8px;--radius-control: 7px;--radius-pill: 999px;--shadow: 0 16px 40px rgba(42, 70, 55, .09);--app-header-height: 88px}.cure-outcome-modal{width:min(560px,100%);max-height:calc(100dvh - 40px);display:grid;gap:0;padding:0;overflow-y:auto;color:var(--ink)}.cure-outcome-header{display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;padding:24px 26px 20px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--green) 5%,var(--surface))}.cure-outcome-header h2,.cure-outcome-header p{margin:0}.cure-outcome-header h2{margin-top:4px;font-size:23px;line-height:1.2}.cure-outcome-header p{margin-top:8px;color:var(--muted);font-size:14px;line-height:1.5}.cure-outcome-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:var(--green-soft);color:var(--green-deep)}.cure-outcome-icon svg{width:22px;height:22px;stroke-width:2.5}.cure-result-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:20px 26px 0;border:0}.cure-result-options legend{grid-column:1/-1;margin-bottom:9px;padding:0;color:var(--muted);font-size:14px;font-weight:400}.cure-result-options label{min-width:0;min-height:48px;display:flex;align-items:center;gap:9px;padding:10px 11px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-2);color:var(--ink);font-size:14px;font-weight:400;cursor:pointer;transition:border-color .15s ease,transform .1s ease}.cure-result-options label:hover{border-color:var(--green);background:var(--green-soft)}.cure-result-options label:active{transform:translateY(1px)}.cure-result-options label:has(input:checked){border-color:var(--green);background:var(--green-soft);color:var(--green-deep);box-shadow:inset 0 0 0 1px var(--green)}.cure-result-options input{width:18px;height:18px;flex:0 0 auto;appearance:none;border:2px solid var(--muted);border-radius:50%;background:var(--surface);display:grid;place-items:center}.cure-result-options input:before{width:8px;height:8px;border-radius:50%;background:var(--green-deep);content:"";transform:scale(0);transition:transform .12s ease}.cure-result-options input:checked{border-color:var(--green-deep)}.cure-result-options input:checked:before{transform:scale(1)}.cure-result-options input:focus-visible{outline:3px solid color-mix(in srgb,var(--green) 28%,transparent);outline-offset:3px}.cure-note-field,.cure-photo-field{margin:18px 26px 0}.cure-note-field textarea{width:100%;min-height:110px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-control);outline:none;resize:vertical;background:var(--bg);color:var(--ink);font:inherit;font-size:14px;line-height:1.5}.cure-note-field textarea::placeholder{color:var(--muted);opacity:.9}.cure-note-field textarea:focus-visible{border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 18%,transparent)}.cure-photo-field{display:grid;gap:7px}.cure-photo-field small{color:var(--muted);font-size:14px;line-height:1.45}.cure-field-label{color:var(--muted);font-size:14px;font-weight:400}.cure-file-picker{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px}.cure-file-picker>label{position:relative;min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:9px 13px;border:1px solid var(--green);border-radius:var(--radius-control);background:var(--surface-2);color:var(--green-deep);font-size:14px;font-weight:400;cursor:pointer;overflow:hidden}.cure-file-picker>label:hover{background:var(--green-soft);box-shadow:0 6px 14px color-mix(in srgb,var(--green) 15%,transparent)}.cure-file-picker>label:active{transform:translateY(1px);box-shadow:none}.cure-file-picker>label:focus-within{outline:3px solid color-mix(in srgb,var(--green) 28%,transparent);outline-offset:2px}.cure-file-picker>label input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.cure-file-picker>span{min-width:0;color:var(--muted);font-size:14px;overflow-wrap:anywhere}.cure-outcome-modal .form-error{margin:16px 26px 0}.cure-outcome-modal .modal-actions{justify-content:flex-end;margin:22px 0 0;padding:16px 26px;border-top:1px solid var(--line);background:var(--surface)}.cure-outcome-modal .modal-actions .btn-secondary:hover{border-color:var(--green);background:var(--green-soft)}.cure-outcome-modal .modal-actions .btn:active{transform:translateY(1px) scale(.985);box-shadow:none}.cure-outcome-modal .modal-actions .btn:focus-visible{outline:3px solid color-mix(in srgb,var(--green) 28%,transparent);outline-offset:2px}.cure-photo-preview,.care-timeline img{width:min(100%,24rem);max-height:18rem;object-fit:contain}.cure-photo-preview{margin-top:5px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-2)}@media(max-width:520px){.cure-result-options{grid-template-columns:1fr}}@media(max-width:360px){.cure-outcome-modal{max-height:calc(100dvh - 20px)}.cure-outcome-header{grid-template-columns:36px minmax(0,1fr);padding:18px 16px 16px}.cure-outcome-icon{width:36px;height:36px}.cure-result-options{padding:16px 16px 0}.cure-note-field,.cure-photo-field{margin-inline:16px}.cure-file-picker{grid-template-columns:1fr}.cure-file-picker>label{width:100%}.cure-outcome-modal .form-error{margin-inline:16px}.cure-outcome-modal .modal-actions{align-items:stretch;flex-direction:column-reverse;padding:14px 16px}.cure-outcome-modal .modal-actions .btn{width:100%}}.care-timeline article{margin-top:1rem;overflow-wrap:anywhere}.treatment-template-tools,.treatment-template-review,.treatment-label-acknowledgement,.treatment-conflict-warning{display:grid;gap:.65rem;padding:.85rem;border:1px solid var(--line);border-radius:var(--radius-card)}.treatment-template-tools,.treatment-instruction-fields{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.treatment-template-tools>summary,.treatment-instruction-fields>summary{min-height:46px;padding:12px 14px;color:var(--ink);font-size:14px;font-weight:600;cursor:pointer}.treatment-disclosure-body{display:grid;gap:12px;padding:14px;border-top:1px solid var(--line)}.treatment-occurrence-evidence{display:grid;gap:.75rem;margin:.75rem 0;padding:.85rem;border:1px solid var(--line);border-radius:var(--radius-card)}.treatment-evidence-photos{display:flex;flex-wrap:wrap;gap:.75rem}.treatment-evidence-photos img{width:min(100%,15rem);max-height:12rem;object-fit:contain}.treatment-label-acknowledgement{border-color:color-mix(in srgb,var(--status-warning) 65%,var(--border));border-left:5px solid var(--status-warning);background:color-mix(in srgb,var(--status-warning) 9%,var(--surface))}.treatment-label-acknowledgement label{display:flex;align-items:flex-start;gap:.65rem;font-weight:400}.treatment-conflict-warning{border-color:color-mix(in srgb,var(--status-warning) 65%,var(--border));background:color-mix(in srgb,var(--status-warning) 7%,var(--surface))}.infected-badge{position:absolute;z-index:2;top:13px;right:13px;padding:7px 10px;border-radius:7px;background:var(--surface-2);color:var(--status-infected);font-size:14px;font-weight:600}.infected-badge svg{width:16px;height:16px;margin-right:5px;vertical-align:-3px;stroke-width:2.4}.treatment-panel{display:grid;gap:16px;margin-top:0}.treatment-panel p{margin:0;color:var(--muted);font-size:14px;line-height:1.5}.treatment-panel :is(input:not([type=checkbox],[type=radio]),select,textarea){border-color:var(--line);background:var(--bg);color:var(--ink)}.treatment-panel :is(input,select,textarea):focus-visible{border-color:var(--green);outline:3px solid color-mix(in srgb,var(--green) 24%,transparent);outline-offset:1px}.treatment-panel :is(input[type=checkbox],input[type=radio]){accent-color:var(--green-deep)}.treatment-panel button.btn:not(:disabled){cursor:pointer}.treatment-panel :is(button.btn-secondary,button.cured-action):hover:not(:disabled){border-color:var(--green);background:var(--green-soft);color:var(--ink);box-shadow:0 7px 16px color-mix(in srgb,var(--green) 16%,transparent)}.treatment-panel button.btn:active:not(:disabled){transform:translateY(1px) scale(.985);box-shadow:none}.treatment-panel button.btn:focus-visible{outline:3px solid color-mix(in srgb,var(--green) 28%,transparent);outline-offset:2px}.detail-drawer .plant-editor-panel.treatment-panel{border:0}.treatment-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.treatment-heading .eyebrow{margin-bottom:5px}.treatment-heading h3{margin:0;font-size:18px}.treatment-completion-mark{width:32px;height:32px;display:inline-grid;flex:0 0 auto;place-items:center;border-radius:50%;background:var(--green-soft);color:var(--green-deep);animation:treatment-check-reveal .22s ease-out 1}.treatment-completion-mark svg{width:19px;height:19px;stroke-width:2.6}.treatment-state{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;padding:6px 9px;border-radius:999px;background:var(--green-soft);color:var(--green-deep);font-size:14px;font-weight:400}.treatment-state svg{width:16px;height:16px;stroke-width:2.4}.infected .treatment-state{background:var(--surface-2);color:var(--status-infected)}.treatment-care-summary{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface-2)}.treatment-problem-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line)}.treatment-problem-summary div{min-width:0;padding:14px;background:var(--surface)}.treatment-problem-summary span,.treatment-problem-summary strong{display:block;overflow-wrap:anywhere}.treatment-problem-summary span{margin-bottom:4px;color:var(--muted);font-size:14px;font-weight:400}.treatment-problem-summary strong{color:var(--ink);font-size:16px;line-height:1.35}.treatment-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0;padding:4px 0}.treatment-facts div{min-width:0;padding:10px 14px}.treatment-facts dt,.treatment-facts dd{margin:0;font-size:14px;overflow-wrap:anywhere;white-space:pre-wrap}.treatment-facts dt{margin-bottom:4px;color:var(--muted);font-weight:400}.treatment-detail-disclosure{border-top:1px solid var(--line)}.treatment-detail-disclosure>summary{min-height:44px;padding:11px 2px;color:var(--ink);font-size:14px;font-weight:600;cursor:pointer}.treatment-detail-disclosure[open]>summary{margin-bottom:8px}.treatment-delivery-summary>div{display:grid;gap:10px;padding:0 2px 12px}.treatment-delivery-summary p,.treatment-delivery-summary ul,.treatment-delivery-summary dl{margin:0}.treatment-delivery-summary>div>.btn{justify-self:start}.treatment-recipient-list{display:flex;flex-wrap:wrap;gap:6px;padding:0;list-style:none}.treatment-recipient-list li{padding:6px 9px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);color:var(--ink);font-size:14px;font-weight:400;overflow-wrap:anywhere}.treatment-delivery-callout{padding:10px 12px;border:1px solid var(--line);border-left:3px solid var(--semantic-information);border-radius:8px;background:color-mix(in srgb,var(--semantic-information) 9%,var(--surface));color:var(--ink);font-size:14px}.treatment-delivery-callout.warning{border-left-color:var(--status-warning);background:color-mix(in srgb,var(--status-warning) 10%,var(--surface))}.treatment-delivery-callout.retained{display:grid;gap:9px;justify-items:start}.treatment-delivery-channels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.treatment-delivery-channels>div{display:grid;align-content:start;gap:4px;min-width:0;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2)}.treatment-delivery-channels>div[data-result=sent]{border-color:color-mix(in srgb,var(--status-healthy) 55%,var(--line))}.treatment-delivery-channels>div[data-result=partial],.treatment-delivery-channels>div[data-result=failed],.treatment-delivery-channels>div[data-result=exhausted]{border-color:color-mix(in srgb,var(--status-warning) 65%,var(--line))}.treatment-delivery-channels dt,.treatment-delivery-channels dd{margin:0;font-size:14px;overflow-wrap:anywhere}.treatment-delivery-channels dt{color:var(--muted);font-weight:400}.treatment-delivery-result{color:var(--ink);font-weight:400}.treatment-delivery-reason{color:var(--ink)}.treatment-delivery-technical,.treatment-delivery-time{color:var(--muted)}.treatment-delivery-feedback{color:var(--ink);font-size:14px;font-weight:400}@media(max-width:520px){.treatment-delivery-channels{grid-template-columns:minmax(0,1fr)}.treatment-delivery-summary>div>.btn,.treatment-delivery-callout .btn{width:100%}}.treatment-form{display:grid;gap:14px}.treatment-form textarea{resize:vertical}.treatment-core-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.treatment-form-notice,.treatment-household-note{padding:10px 12px;border-left:3px solid var(--line);background:var(--surface-2);color:var(--ink)!important}.treatment-schedule-fields{display:grid;grid-template-columns:1.2fr 1fr;gap:12px}.treatment-repeat-input{display:grid;grid-template-columns:minmax(72px,.7fr) minmax(110px,1fr);gap:7px}.treatment-actions{display:flex;flex-wrap:wrap;gap:8px}.treatment-panel.treatment-saved,.treatment-panel.treatment-completed,.treatment-panel.treatment-cured,.plant-card.treatment-saved,.plant-card.treatment-cured{animation:treatment-state-settle .18s ease-out 1}@keyframes treatment-state-settle{0%{opacity:.72;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes treatment-check-reveal{0%{opacity:0;transform:scale(.82)}to{opacity:1;transform:none}}.treatment-schedule-preview ol{display:grid;gap:5px;margin:0 0 10px;padding-left:24px}.treatment-schedule-preview li,.treatment-schedule-preview small{font-size:14px}.treatment-form .treatment-schedule-preview{padding:14px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface-2)}.cured-action{border:1px solid color-mix(in srgb,var(--green) 55%,var(--line));background:var(--surface);color:var(--ink)}@media(max-width:600px){.treatment-problem-summary,.treatment-core-fields,.treatment-schedule-fields{grid-template-columns:1fr}.treatment-form>.treatment-actions{position:sticky;z-index:4;bottom:8px;margin:8px -4px 0;padding:10px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);box-shadow:0 10px 28px color-mix(in srgb,var(--ink) 16%,transparent)}.treatment-form>.treatment-actions .btn{flex:1 1 150px}.detail-drawer:has(.treatment-form){scroll-padding-bottom:100px}.treatment-form :is(.field,fieldset,details){scroll-margin-bottom:110px}.treatment-form input,.treatment-form select,.treatment-form textarea,.treatment-form button{min-width:0;max-width:100%}}@media(prefers-reduced-motion:reduce){.treatment-panel.treatment-saved,.treatment-panel.treatment-completed,.treatment-panel.treatment-cured,.plant-card.treatment-saved,.plant-card.treatment-cured,.treatment-completion-mark{animation:none}}@media(max-width:360px){.treatment-facts{grid-template-columns:1fr}.treatment-heading,.treatment-actions{align-items:stretch;flex-direction:column}.treatment-form>.treatment-actions{bottom:6px}.treatment-form>.treatment-actions .btn{width:100%;flex:0 0 auto}}.plants-page .garden-bulk-bar{display:grid;gap:11px;margin:-6px 0 18px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--green) 38%,var(--line));border-left:4px solid var(--green);background:var(--surface)}.plants-page .garden-bulk-bar>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.plants-page .garden-bulk-bar strong,.plants-page .garden-bulk-bar span,.plants-page .garden-bulk-bar p,.plants-page .garden-bulk-bar button{font-size:14px}.plants-page .garden-bulk-bar span,.plants-page .garden-bulk-bar>p{color:var(--muted)}.plants-page .garden-bulk-bar>p{margin:0}.plants-page .garden-bulk-actions{display:flex;flex-wrap:wrap;gap:7px}.plants-page .garden-bulk-actions button{min-height:40px;padding:7px 11px;border:1px solid var(--line);border-radius:7px;background:var(--surface-2);color:var(--ink);font-weight:600}.plants-page .garden-bulk-actions button:disabled{opacity:.5;cursor:not-allowed}.plants-page .bulk-save-status{padding:9px 11px;border-radius:7px;background:var(--green-soft);color:var(--green-deep)!important}.plants-page .bulk-save-status.failed{background:var(--danger-soft);color:var(--danger)!important}.plants-page .bulk-save-status button{margin-left:8px;border:0;background:transparent;color:inherit;font-weight:600;text-decoration:underline}.plants-page .plant-card-selection{position:absolute;z-index:3;top:13px;right:13px;display:flex;align-items:center;gap:7px;max-width:calc(100% - 26px);min-height:40px;padding:7px 10px;border-radius:7px;background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:0 4px 14px color-mix(in srgb,black 16%,transparent);color:var(--ink);font-size:14px;font-weight:600;cursor:pointer}.plants-page .plant-card-selection input{width:18px;height:18px;accent-color:var(--green)}.plants-page .plant-card-selection span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plants-page .archived-badge{position:absolute;left:13px;bottom:13px;padding:6px 9px;border-radius:7px;background:color-mix(in srgb,var(--ink) 82%,transparent);color:var(--surface);font-size:14px;font-weight:600}.plants-page .plant-tags{display:flex;flex-wrap:wrap;gap:5px;margin:-8px 0 14px;padding:0;list-style:none}.plants-page .plant-tags li{padding:4px 7px;border-radius:999px;background:var(--green-soft);color:var(--green-deep);font-size:14px;font-weight:400;overflow-wrap:anywhere}.plants-page .garden-controls{position:sticky;top:calc(var(--app-header-height) + 8px);z-index:20;display:grid;grid-template-columns:minmax(260px,1fr) minmax(150px,.42fr) minmax(150px,.42fr) auto;gap:10px;align-items:end;margin:0 0 22px;padding:14px;border:1px solid var(--line);background:var(--surface);isolation:isolate}.plants-page .garden-controls label{min-width:0;display:grid;gap:5px}.plants-page .garden-controls label>span{color:var(--muted);font-size:14px;font-weight:400;text-transform:uppercase}.plants-page .garden-controls input,.plants-page .garden-controls select{width:100%;min-width:0;min-height:40px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);font-size:14px}.plants-page .filter-controls-body{display:contents}.plants-page .compact-filter-toggle{display:none}.plants-page .filter-disclosure{position:relative}.plants-page .advanced-filter-toggle{min-height:40px;padding:7px 11px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--green-deep);font-size:14px;font-weight:600;white-space:nowrap}.plants-page .advanced-filter-toggle strong{min-width:23px;height:23px;padding:0 6px;display:inline-grid;place-items:center;border-radius:999px;background:var(--green-soft);color:var(--green-deep);font-size:14px}.plants-page .advanced-filter-toggle i{width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .18s ease}.plants-page .advanced-filter-toggle i.open{transform:translateY(2px) rotate(225deg)}.plants-page .advanced-filters{position:absolute;top:calc(100% + 8px);right:0;z-index:2;width:min(720px,100vw - 48px);padding:16px;display:none;grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px;align-items:end;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:var(--shadow)}.plants-page .advanced-filters.open{display:grid}.plants-page .reset-filters{min-height:40px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--green);font-size:14px;font-weight:400}.plants-page .active-filter-chips{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:7px;padding-top:4px}.plants-page .active-filter-chips button{min-height:36px;padding:6px 9px 6px 11px;display:inline-flex;align-items:center;gap:8px;border:1px solid color-mix(in srgb,var(--green) 40%,var(--line));border-radius:18px;background:var(--green-soft);color:var(--green-deep);font-size:14px;font-weight:600}.plants-page .active-filter-chips button b{display:grid;place-items:center;line-height:1}.plants-page .active-filter-chips button b svg{width:15px;height:15px;stroke-width:2.4}.bulk-tag-dialog{width:min(560px,100%);padding:28px;display:grid;gap:12px}.bulk-tag-dialog h2,.bulk-tag-dialog p{margin:0}.bulk-tag-dialog p,.bulk-tag-dialog small{color:var(--muted);font-size:14px}.bulk-tag-dialog label{font-size:14px;font-weight:400}.bulk-tag-dialog input{width:100%;min-height:44px;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);font-size:16px}.bulk-tag-dialog .form-error{color:var(--danger)}.bulk-tag-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-top:6px}@media(max-width:900px){.plants-page .garden-controls{grid-template-columns:1fr 1fr}.plants-page .garden-controls .plant-search,.plants-page .garden-controls .filter-disclosure{grid-column:1/-1}.plants-page .advanced-filter-toggle{width:100%;min-height:44px}.plants-page .advanced-filters{position:static;width:100%;max-height:min(390px,58vh);margin-top:8px;padding:12px;grid-template-columns:1fr 1fr;overflow-y:auto}.plants-page .advanced-filters .reset-filters{grid-column:1/-1}}@media(max-width:600px),(max-height:650px){.plants-page .garden-bulk-bar>div:first-child{align-items:flex-start;flex-direction:column}.plants-page .garden-bulk-actions button{flex:1 1 145px}.plants-page .garden-controls{grid-template-columns:1fr;padding:8px}.plants-page .compact-filter-toggle{width:100%;min-height:44px;padding:7px 10px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-size:14px;text-align:left}.plants-page .compact-filter-toggle span{color:var(--green-deep);font-weight:400}.plants-page .compact-filter-toggle small{min-width:0;color:var(--muted);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plants-page .compact-filter-toggle i{width:8px;height:8px;border-right:2px solid var(--green-deep);border-bottom:2px solid var(--green-deep);transform:translateY(-2px) rotate(45deg);transition:transform .18s ease}.plants-page .compact-filter-toggle i.open{transform:translateY(2px) rotate(225deg)}.plants-page .filter-controls-body{grid-column:1/-1;display:none;grid-template-columns:1fr 1fr;gap:10px;max-height:min(310px,100dvh - var(--app-header-height) - 150px);padding:4px;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.plants-page .filter-controls-body.open{display:grid}.plants-page .filter-controls-body .plant-search,.plants-page .filter-controls-body .filter-disclosure,.plants-page .filter-controls-body .active-filter-chips{grid-column:1/-1}.plants-page .advanced-filters{position:static;width:100%;max-height:none;overflow:visible}}@media(max-width:360px){.plants-page .garden-controls{grid-template-columns:1fr}.plants-page .garden-controls .plant-search,.plants-page .garden-controls .primary-filter,.plants-page .garden-controls .filter-disclosure{grid-column:1}.plants-page .advanced-filters,.plants-page .filter-controls-body{grid-template-columns:1fr}.bulk-tag-dialog{padding:20px 14px}.bulk-tag-actions{align-items:stretch;flex-direction:column}.bulk-tag-actions .btn{width:100%;justify-content:center}}@media(prefers-reduced-motion:reduce){.plants-page .advanced-filter-toggle i,.plants-page .compact-filter-toggle i{transition:none}}app-hardware-map-page .hardware-map-page{width:80%;max-width:none}app-hardware-map-page .add-peripheral-detail{border-style:dashed;color:var(--semantic-success)}app-hardware-map-page .danger-action{border-color:var(--danger)!important;background:var(--danger)!important;color:#fff!important}app-hardware-map-page .danger-action:hover:not(:disabled){border-color:color-mix(in srgb,var(--danger) 82%,black)!important;background:color-mix(in srgb,var(--danger) 82%,black)!important;color:#fff!important}app-hardware-map-page app-raspberry-pi-details,app-hardware-map-page app-controller-details,app-hardware-map-page app-sensor-details,app-hardware-map-page app-pump-details,app-hardware-map-page app-reservoir-details,app-hardware-map-page app-power-source-details,app-hardware-map-page app-plant-relationship-details{display:contents}app-hardware-map-page .map-layout{display:grid;grid-template-columns:minmax(0,1fr)}app-hardware-map-page .controller-stack{align-self:center}app-hardware-map-page .network-overview{min-height:68px;margin-top:30px;display:flex;align-items:center;border-block:1px solid var(--line)}app-hardware-map-page .network-overview>div:not(.live-signal):not(.overview-transfer-actions){min-width:112px;padding:0 18px;display:flex;align-items:baseline;gap:8px;border-left:1px solid var(--line)}app-hardware-map-page .network-overview>div:not(.live-signal):not(.overview-transfer-actions):first-child{padding-left:0;border-left:0}app-hardware-map-page .network-overview>div:not(.live-signal):not(.overview-transfer-actions) span{color:var(--muted);font-size:14px}app-hardware-map-page .network-overview>div:not(.live-signal):not(.overview-transfer-actions) strong{font-size:21px}app-hardware-map-page .live-signal{margin-left:auto;display:flex;align-items:center;gap:8px;color:var(--green-deep);font-size:14px;font-weight:400}app-hardware-map-page .live-signal i{width:8px;height:8px;border-radius:50%;background:var(--green);animation:live-node 1.4s ease-in-out infinite}app-hardware-map-page .network-canvas{grid-area:1/1;position:relative;height:clamp(820px,100dvh - 110px,1120px);cursor:grab;touch-action:none}app-hardware-map-page .network-canvas.panning{cursor:grabbing;-webkit-user-select:none;user-select:none}app-hardware-map-page .automatic-map-stage{position:absolute;inset:0 auto auto 0;width:max(100%,1078px);min-height:100%;transform-origin:0 0;will-change:transform}app-hardware-map-page .network-canvas.automatic-server-navigating{transition:background-position .68s cubic-bezier(.22,1,.36,1)}app-hardware-map-page .network-canvas.automatic-server-navigating .automatic-map-stage{transition:transform .68s cubic-bezier(.22,1,.36,1)}app-hardware-map-page .api-link{z-index:0}app-hardware-map-page .server-node,app-hardware-map-page .pi-node{z-index:3}app-hardware-map-page .api-node-port{z-index:5}app-hardware-map-page .server-node.selected{border-color:#dd3947;box-shadow:0 0 0 3px color-mix(in srgb,#dd3947 18%,transparent)}app-hardware-map-page .server-node{border-color:color-mix(in srgb,#dd3947 58%,var(--line))}app-hardware-map-page .server-node .node-copy small{color:#c52735}app-hardware-map-page .server-node .node-copy em{color:var(--status-healthy)}app-hardware-map-page .server-node .state-light{background:#dd3947}app-hardware-map-page .server-node .server-illustration{border-color:color-mix(in srgb,#dd3947 38%,var(--line));background:color-mix(in srgb,#dd3947 15%,var(--surface));color:#c52735}app-hardware-map-page .automatic-tree-node.power-node{border-color:color-mix(in srgb,var(--hardware-power-node) 58%,var(--line))}app-hardware-map-page .automatic-tree-node .node-illustration.power-illustration{background:color-mix(in srgb,var(--hardware-power-node) 18%,var(--surface));color:color-mix(in srgb,var(--hardware-power-node) 72%,var(--ink))}app-hardware-map-page .api-link i{z-index:1;padding:1px 5px;background:var(--bg)}app-hardware-map-page .root-link,app-hardware-map-page .controller-trunk,app-hardware-map-page .controller-segment,app-hardware-map-page .branch-line,app-hardware-map-page .esp-pump-link,app-hardware-map-page .pump-trunk,app-hardware-map-page .pump-segment,app-hardware-map-page .pump-link,app-hardware-map-page .pi-sensor-trunk,app-hardware-map-page .primary-sensor-link{--connection-color: #67b849;transition:background-color .16s ease,box-shadow .16s ease,filter .16s ease}app-hardware-map-page .esp-pump-link,app-hardware-map-page .pump-trunk,app-hardware-map-page .pump-link{--connection-color: #768186}app-hardware-map-page .api-link{--connection-color: #ef3444}app-hardware-map-page .connection-highlighted{z-index:2;background:var(--connection-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--connection-color) 26%,transparent);filter:brightness(1.25) saturate(1.25)}app-hardware-map-page :is(.api-link,.root-link,.controller-trunk,.controller-segment,.branch-line,.esp-pump-link,.pump-trunk,.pump-segment,.pump-link,.pi-sensor-trunk,.primary-sensor-link):after{content:"";position:absolute;inset:-7px}app-hardware-map-page :is(.root-link,.controller-trunk,.controller-segment,.branch-line,.esp-pump-link,.pump-trunk,.pump-segment,.pump-link,.pi-sensor-trunk,.primary-sensor-link):hover{z-index:2;background:var(--connection-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--connection-color) 26%,transparent);filter:brightness(1.25) saturate(1.25)}app-hardware-map-page :is(.root-link,.controller-trunk,.controller-segment,.branch-line,.esp-pump-link,.pump-trunk,.pump-segment,.pump-link,.pi-sensor-trunk,.primary-sensor-link).connection-highlighted{background:var(--connection-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--connection-color) 26%,transparent);filter:brightness(1.25) saturate(1.25)}app-hardware-map-page .api-link.connection-highlighted{z-index:1;background:#ef3444;box-shadow:0 0 0 2px color-mix(in srgb,#ef3444 24%,transparent)}app-hardware-map-page .api-link:hover{z-index:1;background:#ef3444;box-shadow:0 0 0 2px color-mix(in srgb,#ef3444 24%,transparent)}app-hardware-map-page .automatic-selection-marquee{position:absolute;z-index:24;border:1px solid var(--semantic-selected);background:#2587d929;box-shadow:inset 0 0 0 1px #ffffff52;pointer-events:none}app-hardware-map-page .pump-branch:first-child .pump-segment{top:50%}app-hardware-map-page .pump-branch:last-child .pump-segment{bottom:50%}app-hardware-map-page .pump-segment{position:absolute;top:-4px;bottom:-4px;left:-24px;width:2px;background:transparent;pointer-events:none}app-hardware-map-page .node-details{position:absolute;grid-area:1/1;inset:18px 18px 18px auto;max-height:none;margin:0}app-hardware-map-page .details-close{position:sticky;z-index:3;top:0;float:right;width:36px;height:36px;display:grid;place-items:center;margin:-8px -8px 4px 10px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--ink);font-size:25px;line-height:1}app-hardware-map-page .details-close:hover{border-color:var(--green);background:var(--green-soft)}app-hardware-map-page .single-node-details.hidden{display:none}app-hardware-map-page .automatic-multi-selection h2{margin:6px 44px 16px 0;font-size:25px}app-hardware-map-page .automatic-multi-selection>div{display:grid;gap:8px}app-hardware-map-page .automatic-multi-selection button{min-width:0;min-height:48px;padding:8px 11px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink);text-align:left}app-hardware-map-page .automatic-multi-selection button:hover{border-color:var(--green);background:var(--green-soft)}app-hardware-map-page .automatic-multi-selection button strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}app-controller-details .esp-pump-row .child-delete-action{border-color:transparent!important;background:transparent!important;color:var(--danger)!important;box-shadow:none!important}app-controller-details .esp-pump-row .child-delete-action:hover:not(:disabled),app-controller-details .esp-pump-row .child-delete-action:focus-visible{border-color:transparent!important;background:transparent!important;color:var(--danger)!important;box-shadow:none!important;text-decoration:underline}app-hardware-map-page .automatic-tree-node.clipboard-cut{opacity:.48;border-style:dashed}.map-transfer-actions{display:flex;justify-content:flex-end;gap:8px}.map-transfer-actions button,.map-transfer-actions label{min-height:42px;padding:9px 12px;display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.34);border-radius:6px;background:#0a120d6b;color:#fff;font-size:14px;font-weight:400;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.map-transfer-actions svg{width:17px;height:17px}.map-transfer-actions input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0}.network-overview .overview-transfer-actions,.manual-network-overview .overview-transfer-actions{margin-left:12px;padding-left:16px}.network-overview .overview-transfer-actions button,.network-overview .overview-transfer-actions label,.manual-network-overview .overview-transfer-actions button,.manual-network-overview .overview-transfer-actions label{border-color:var(--line);background:var(--surface-2);color:var(--ink);-webkit-backdrop-filter:none;backdrop-filter:none}.network-overview .overview-transfer-actions button:hover,.network-overview .overview-transfer-actions label:hover,.manual-network-overview .overview-transfer-actions button:hover,.manual-network-overview .overview-transfer-actions label:hover{border-color:var(--green);background:var(--green-soft);color:var(--green-deep)}.network-overview>.statistics-mode-switch{min-height:42px;margin-left:auto;border-color:var(--line);background:var(--surface-2);color:var(--muted);-webkit-backdrop-filter:none;backdrop-filter:none}.network-overview>.statistics-mode-switch span.active{color:var(--ink)}.network-overview>.statistics-mode-switch i{background:color-mix(in srgb,var(--ink) 18%,transparent)}.manual-heading-actions{display:grid;justify-items:end;gap:10px}.map-transfer-error{margin:12px 0 0;padding:11px 14px;border:1px solid color-mix(in srgb,var(--danger) 42%,var(--line));border-radius:6px;background:var(--danger-soft);color:var(--danger);font-size:14px;font-weight:400}app-settings-page .settings-page{width:min(1320px,100% - 40px)}app-settings-page .settings-layout{display:grid;grid-template-columns:286px minmax(0,1fr);align-items:stretch;overflow:clip;border:1px solid var(--line);background:var(--surface)}app-settings-page .settings-nav{padding:22px 14px;position:sticky;top:100px;align-self:start;overflow:hidden;border-right:1px solid var(--line);background:color-mix(in srgb,var(--surface-2) 76%,var(--surface))}app-settings-page .settings-nav-heading{margin:0 7px 22px;padding-bottom:20px;display:grid;grid-template-columns:42px minmax(0,1fr);gap:11px;align-items:center;border-bottom:1px solid var(--line)}app-settings-page .settings-nav-heading>span{width:42px;height:42px;display:grid;place-items:center;background:var(--green-deep);color:#fff;font:400 14px var(--font-display)}app-settings-page .settings-nav-heading>div{min-width:0;display:grid;gap:2px}app-settings-page .settings-nav-heading small{color:var(--green-deep);font-size:14px;font-weight:400;text-transform:uppercase}app-settings-page .settings-nav-heading strong{overflow-wrap:anywhere;font-size:17px}app-settings-page .settings-nav a{width:100%;min-height:72px;margin:0 0 5px;padding:12px 11px;display:flex;align-items:center;gap:11px;border:0;border:1px solid transparent;border-left:3px solid transparent;background:transparent;color:var(--muted);text-align:left}app-settings-page .settings-nav a:hover,app-settings-page .settings-nav a.active{border-color:var(--line);background:color-mix(in srgb,var(--green-soft) 72%,var(--surface));color:var(--green-deep)}app-settings-page .settings-nav a.active{border-left-color:var(--green)}app-settings-page .settings-nav a>span{width:34px;height:34px;flex:0 0 auto;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:var(--surface)}app-settings-page .settings-nav a>span svg{width:19px;height:19px}app-settings-page .settings-nav a div{display:grid;gap:2px}app-settings-page .settings-nav a b{font-size:16px}app-settings-page .settings-nav a small{font-size:14px}app-settings-page .settings-content{min-width:0;display:grid;align-content:start;background:var(--surface)}app-settings-page .settings-context-header{min-height:112px;padding:26px 30px;display:grid;align-content:center;gap:5px;border-bottom:1px solid var(--line);background:linear-gradient(110deg,var(--surface),var(--surface-2))}app-settings-page .settings-context-header span{font:400 26px var(--font-display)}app-settings-page .settings-context-header p{max-width:720px;margin:0;color:var(--muted);font-size:15px;line-height:1.5}app-settings-page .setting-section{padding:30px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:var(--surface);box-shadow:none}app-settings-page .setting-section:last-child{border-bottom:0}app-settings-page .system-transfer{min-height:155px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center;border-left:5px solid var(--green);background:color-mix(in srgb,var(--green-soft) 48%,var(--surface));color:var(--ink)}app-settings-page .system-transfer h2{margin-top:7px;font-size:26px}app-settings-page .system-transfer p{max-width:660px;margin:8px 0 0;color:var(--muted);font-size:15px;line-height:1.6}app-settings-page .system-transfer .eyebrow{color:var(--green-deep)}app-settings-page .system-transfer>.form-error{grid-column:1/-1;margin:-12px 0 0;color:var(--danger)}app-settings-page .system-transfer-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}app-settings-page .system-transfer-actions .btn{min-height:46px;border-color:color-mix(in srgb,var(--green) 42%,var(--line));background:var(--surface);color:var(--green-deep);cursor:pointer}app-settings-page .system-transfer-actions svg{width:18px;height:18px}app-settings-page .system-transfer-actions input{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0}app-manual-hardware-map .manual-map-page{width:80%;max-width:none}app-manual-hardware-map .manual-editor-layout{position:relative;display:grid;grid-template-columns:minmax(0,1fr)}app-manual-hardware-map .manual-workspace,app-manual-hardware-map .manual-details{grid-area:1/1}app-manual-hardware-map .manual-details{position:absolute;inset:18px 18px 18px auto;max-height:none;margin:0}@media(max-width:1100px){app-hardware-map-page .node-details{inset:14px 14px 14px auto;margin:0}}@media(max-width:980px){app-manual-hardware-map .manual-details{inset:74px 12px 12px auto;margin:0}}@media(max-width:650px){app-manual-hardware-map .manual-editor-layout{display:block}app-manual-hardware-map .manual-workspace,app-manual-hardware-map .manual-details{grid-area:auto}app-manual-hardware-map .manual-details{position:relative;inset:auto;width:100%;max-height:none;margin:12px 0 0}app-hardware-map-page .hardware-map-page{width:calc(100% - 20px)}app-hardware-map-page .node-details{inset:74px 10px 10px auto;margin:0}app-hardware-map-page .automatic-map-stage{width:100%}app-hardware-map-page .network-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:12px 0}app-hardware-map-page .network-overview>div:not(.live-signal):not(.overview-transfer-actions){min-width:0;padding:6px 8px;display:grid;justify-items:center}app-hardware-map-page .live-signal{grid-column:1/-1;justify-self:center;margin:12px 0 0}app-hardware-map-page>.statistics-mode-switch{grid-column:1/-1;justify-self:center;margin:10px 0 0}app-hardware-map-page .overview-transfer-actions{grid-column:1/-1;justify-content:center;margin-left:0;padding:10px 0 0}app-manual-hardware-map .manual-map-page{width:calc(100% - 20px)}.map-transfer-actions{flex-wrap:wrap}}@media(max-height:560px)and (orientation:landscape){app-manual-hardware-map .manual-editor-layout{display:block}app-manual-hardware-map .manual-details{position:relative;inset:auto;width:100%;max-height:none;margin:12px 0 0}app-manual-hardware-map .manual-workspace-dock{max-width:min(320px,100% - 24px)}}@media(max-width:340px){app-hardware-map-page .network-overview{grid-template-columns:repeat(2,minmax(0,1fr))}}.add-modal .add-mode-choice{display:grid;grid-template-columns:1fr 1fr;gap:7px}.add-modal .add-mode-choice button{min-height:42px;padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface-2);color:var(--ink);font-size:14px;font-weight:600}.add-modal .add-mode-choice [aria-pressed=true]{border-color:var(--green);background:var(--green-soft);color:var(--green-deep)}.add-modal .catalog-profile-search{display:grid;gap:6px}.add-modal .catalog-profile-search span{color:var(--muted);font-size:14px;font-weight:400}.add-modal .catalog-profile-search input{width:100%;min-height:44px;padding:9px 11px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);font-size:14px}.add-modal .catalog-profile-results{display:grid;gap:7px;max-height:280px;overflow:auto}.add-modal .catalog-profile-results button{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);text-align:left}.add-modal .catalog-profile-results button:hover,.add-modal .catalog-profile-results button:focus-visible{border-color:var(--green);background:var(--green-soft)}.add-modal .catalog-profile-results strong,.add-modal .catalog-profile-results span,.add-modal .catalog-profile-results p{font-size:14px}.add-modal .catalog-profile-results span,.add-modal .catalog-profile-results p{color:var(--muted)}.add-modal .catalog-profile-results p{margin:0}.add-modal .selected-catalog-profile{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--green);border-radius:8px;background:var(--green-soft)}.add-modal .selected-catalog-profile div{min-width:0;display:grid;gap:3px}.add-modal .selected-catalog-profile span,.add-modal .selected-catalog-profile small,.add-modal .selected-catalog-profile button{font-size:14px}.add-modal .selected-catalog-profile span,.add-modal .selected-catalog-profile small{color:var(--muted)}.add-modal .selected-catalog-profile button{flex:0 0 auto;min-height:38px;padding:7px 9px;border:1px solid var(--green);border-radius:7px;background:var(--surface);color:var(--green-deep);font-weight:600}.add-modal .catalog-recommendation{padding:11px 12px;border-left:3px solid var(--green);background:var(--surface-2)}.add-modal .catalog-recommendation strong,.add-modal .catalog-recommendation p,.add-modal .catalog-recommendation small{font-size:14px}.add-modal .catalog-recommendation p{margin:4px 0;color:var(--ink)}.add-modal .catalog-recommendation small{color:var(--muted);line-height:1.4}.add-modal .catalog-loading{margin:0;color:var(--muted);font-size:14px}@media(max-width:360px){.add-modal .add-mode-choice{grid-template-columns:1fr}.add-modal .selected-catalog-profile{align-items:stretch;flex-direction:column}.add-modal .selected-catalog-profile button{width:100%}}.detail-drawer .plant-editor-tabs{position:sticky;top:0;z-index:4;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;padding:8px 0 12px;background:var(--bg)}.detail-drawer .plant-editor-tabs button{min-height:42px;padding:7px 8px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--muted);font-size:14px;font-weight:600}.detail-drawer .plant-editor-tabs [aria-selected=true]{border-color:var(--green);background:var(--green-soft);color:var(--green-deep)}.detail-drawer .plant-editor-panel{min-height:360px;padding:22px 0;border-top:1px solid var(--line)}.detail-drawer .plant-editor-panel>h3,.detail-drawer .plant-editor-panel .linked-pumps-section>h3,.detail-drawer .plant-editor-panel .linked-sensors-section>h3{margin-bottom:15px;font-size:17px}.detail-drawer .editor-overview>p{margin-top:-7px;color:var(--muted);font-size:14px}.detail-drawer .editor-overview-facts{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:18px 0}.detail-drawer .editor-overview-facts div{min-width:0;padding:12px;border:1px solid var(--line);border-radius:7px;background:var(--surface)}.detail-drawer .editor-overview-facts dt,.detail-drawer .editor-overview-facts dd{margin:0;font-size:14px;overflow-wrap:anywhere}.detail-drawer .editor-overview-facts dt{margin-bottom:5px;color:var(--muted);font-weight:400}.detail-drawer .editor-overview-facts dd{color:var(--ink)}.detail-drawer .editor-care-interruption{margin:0 0 16px;padding:10px 12px;border-left:3px solid var(--status-warning);background:color-mix(in srgb,var(--status-warning) 9%,transparent);font-size:14px}.detail-drawer .editor-overview-actions{display:flex;flex-wrap:wrap;gap:8px}.detail-drawer .editor-overview-actions button,.detail-drawer .editor-overview-actions .editor-section-empty button,.detail-drawer .editor-overview-actions .hardware-map-link{min-height:40px;padding:8px 11px;border:1px solid var(--green);border-radius:7px;background:var(--surface);color:var(--green-deep);font-size:14px;font-weight:600}.detail-drawer .editor-section-empty{min-height:300px;display:grid;place-content:center;justify-items:center;text-align:center}.detail-drawer .editor-section-empty p{max-width:420px;color:var(--muted);font-size:14px}.detail-drawer .editor-section-empty button{min-height:40px;padding:8px 11px;border:1px solid var(--green);border-radius:7px;background:var(--surface);color:var(--green-deep);font-size:14px;font-weight:600}.detail-drawer .linked-sensors-section{margin-top:24px;padding-top:22px;border-top:1px solid var(--line)}.detail-drawer .linked-sensor-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}.detail-drawer .linked-sensor-row>span:first-child{min-width:0;display:grid;gap:2px}.detail-drawer .linked-sensor-row small{color:var(--muted);font-size:14px;overflow-wrap:anywhere}.detail-drawer .hardware-empty{color:var(--muted);font-size:14px}.detail-drawer .hardware-map-link{width:fit-content;min-height:40px;display:inline-flex;align-items:center;margin-top:14px;padding:8px 11px;border:1px solid var(--green);border-radius:7px;color:var(--green-deep);font-size:14px;font-weight:600}@media(max-width:480px){.detail-drawer .plant-editor-tabs{grid-template-columns:1fr 1fr}.detail-drawer .editor-overview-facts{grid-template-columns:1fr}.detail-drawer .linked-sensor-row{align-items:flex-start;flex-direction:column}}.schedule-duration .control-heading{align-items:flex-start;flex-wrap:wrap}.schedule-duration .control-heading .metric-selector{flex:0 0 auto;max-width:100%}.schedule-duration .shared-pump-note,.schedule-duration .mixed-pump-notice{margin:9px 0 0;font-size:14px;line-height:1.45}.schedule-duration .shared-pump-note{color:var(--muted)}.schedule-duration .mixed-pump-notice{padding:8px 10px;border-radius:6px;background:color-mix(in srgb,var(--semantic-information) 10%,var(--surface));color:var(--ink);font-weight:400}.schedule-duration .pump-result-summary{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.schedule-duration .pump-result-summary h4{margin:0 0 9px;font:700 15px var(--font-display)}.schedule-duration .pump-result-list,.schedule-duration .per-pump-editor-list{display:grid;gap:8px}.schedule-duration .pump-result-list article,.schedule-duration .per-pump-editor-list article{min-width:0;padding:11px;border:1px solid var(--line);border-radius:7px;background:var(--surface)}.schedule-duration .pump-result-list article>b,.schedule-duration .per-pump-editor-list b{overflow-wrap:anywhere;font-size:14px}.schedule-duration .pump-result-list dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:8px 0 0}.schedule-duration .pump-result-list dl div{min-width:0}.schedule-duration .pump-result-list dl dt,.schedule-duration .pump-result-list dl dd{font-size:14px;overflow-wrap:anywhere}.schedule-duration .pump-result-list dl dt{color:var(--muted)}.schedule-duration .pump-result-list dl dd{margin:3px 0 0;color:var(--ink);font-weight:400}.schedule-duration .per-pump-advanced{margin-top:12px}.schedule-duration .per-pump-advanced>summary{width:fit-content;cursor:pointer;color:var(--green-deep);font-size:14px;font-weight:600}.schedule-duration .per-pump-advanced>p{margin:8px 0;color:var(--muted);font-size:14px;line-height:1.45}.schedule-duration .advanced-volume-notice{padding:8px 10px;border-radius:6px;background:var(--surface-2);color:var(--ink)}.schedule-duration .per-pump-editor-list article{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(125px,.7fr);align-items:center;gap:8px 12px}.schedule-duration .per-pump-editor-list article>div:first-child{display:grid;gap:3px}.schedule-duration .per-pump-editor-list article small,.schedule-duration .per-pump-editor-list article label,.schedule-duration .per-pump-editor-list article p,.schedule-duration .per-pump-editor-list article span,.schedule-duration .per-pump-editor-list article input{font-size:14px}.schedule-duration .per-pump-editor-list article small,.schedule-duration .per-pump-editor-list article p{color:var(--muted)}.schedule-duration .per-pump-editor-list article label{font-weight:400}.schedule-duration .per-pump-editor-list article p{grid-column:1/-1;margin:0}.schedule-duration .advanced-runtime-input{display:grid;grid-template-columns:minmax(0,1fr) auto;overflow:hidden;border:1px solid var(--line);border-radius:7px}.schedule-duration .advanced-runtime-input input{min-width:0;border:0;background:var(--surface);color:var(--ink)}.schedule-duration .advanced-runtime-input input:disabled{background:var(--surface-2);color:var(--muted)}.schedule-duration .advanced-runtime-input span{display:grid;place-items:center;padding:0 9px;border-left:1px solid var(--line);color:var(--muted)}.schedule-duration .calibration-settings-note a{color:var(--green-deep);font-weight:600}@media(max-width:480px){.schedule-duration .control-heading .metric-selector{width:100%}.schedule-duration .control-heading .metric-selector button{flex:1}.schedule-duration .pump-result-list dl{grid-template-columns:1fr}.schedule-duration .per-pump-editor-list article{grid-template-columns:1fr}.schedule-duration .per-pump-editor-list article p{grid-column:1}}.garden-data-menu{position:relative;z-index:24}.garden-data-menu>summary{display:inline-flex;align-items:center;gap:8px;cursor:pointer;list-style:none;font-size:14px}.garden-data-menu>summary::-webkit-details-marker{display:none}.garden-data-menu>summary span{color:var(--muted);letter-spacing:1px}.garden-data-menu[open]>summary{border-color:var(--green);background:var(--green-soft);color:var(--green-deep)}.garden-data-popover{position:absolute;top:calc(100% + 8px);right:0;width:min(390px,100vw - 34px);padding:18px;box-shadow:var(--shadow)}.garden-data-popover>strong{display:block;margin-top:5px;font:400 18px var(--font-display)}.garden-data-popover>p{margin:8px 0 0;color:var(--muted);font-size:14px;line-height:1.5}.garden-data-popover .garden-data-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.garden-data-popover .garden-data-actions .btn{margin:0}.garden-import-input{display:none}.garden-data-settings-link{display:inline-block;margin-top:12px;color:var(--green-deep);font-size:14px;font-weight:600}@media(max-width:480px){.plants-page .gallery-toolbar,.plants-page .gallery-toolbar-actions{align-items:flex-start;flex-direction:column;gap:8px}.garden-data-popover{right:auto;left:0}.garden-data-popover .garden-data-actions{grid-template-columns:1fr}}@keyframes details-out{to{opacity:0;transform:translate(18px)}}app-manual-hardware-map [data-type=api]{--connection-color: var(--manual-api)}app-manual-hardware-map .manual-node[data-node-type=server]{--node-accent: var(--manual-api)}app-manual-hardware-map .manual-node[data-node-type=server] .manual-node-icon{border-color:#dd39477a;background:#dd394729;color:#dc3443}app-manual-hardware-map .manual-node[data-node-type=server]:hover,app-manual-hardware-map .manual-node[data-node-type=server]:focus-visible{border-color:#f35b67;box-shadow:0 12px 28px #0d161161,inset 0 -2px 0 var(--manual-api)}app-manual-hardware-map .manual-node:is([data-node-type=power-source],[data-node-type=controller-power-source]){--node-accent: var(--hardware-power-node)}app-manual-hardware-map .manual-node:is([data-node-type=power-source],[data-node-type=controller-power-source]) .manual-node-icon{border-color:color-mix(in srgb,var(--hardware-power-node) 58%,var(--line));background:color-mix(in srgb,var(--hardware-power-node) 18%,var(--surface));color:color-mix(in srgb,var(--hardware-power-node) 72%,var(--ink))}app-manual-hardware-map .manual-node[data-node-type=plant]{--node-accent: var(--hardware-plant-node)}app-manual-hardware-map .manual-node[data-node-type=plant] .manual-node-icon{border-color:color-mix(in srgb,var(--hardware-plant-node) 58%,var(--line));background:color-mix(in srgb,var(--hardware-plant-node) 18%,var(--surface));color:color-mix(in srgb,var(--hardware-plant-node) 72%,var(--ink))}.manual-details .manual-automatic-settings{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.manual-details .manual-automatic-settings>h3{font-size:18px}.manual-details .manual-automatic-settings>dl{margin-top:12px}.manual-details .manual-section-title{margin:24px 0 12px;padding-top:20px;border-top:1px solid var(--line);font-size:18px}.manual-details .detail-settings{margin-top:12px;display:grid;gap:12px}.manual-details .detail-settings label{display:grid;gap:6px}.manual-details .detail-settings label>span:first-child{color:var(--muted);font-size:14px;font-weight:400}.manual-details .detail-settings input,.manual-details .detail-settings select{width:100%;min-width:0;height:42px;padding:0 10px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);font-size:16px}.manual-details .compact-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.manual-details .full-field{grid-column:1/-1}.unmapped-picker summary{border-color:color-mix(in srgb,var(--status-warning) 55%,var(--line))}.unmapped-picker .part-picker-icon{color:var(--status-warning);font-weight:400}.unmapped-picker .part-picker-menu button small{grid-column:2;color:var(--muted);font-size:12px}:root[data-theme=dark]{--bg: #171918;--surface: #222523;--surface-2: #2b2f2c;--ink: #f0f3ef;--muted: #aeb6ad;--line: #3a403b;--green: #77cf36;--green-deep: #5cab24;--green-soft: #293a22;--accent-bright: #a9ed75;--accent-mid: #79b38a;--accent-on-deep: #c2d3c7;--accent-status: #77cf36;--accent-badge-ink: #5cab24;--overlay-hero: rgba(5, 11, 6, .58);--overlay-soft: rgba(2, 8, 4, .55);--overlay-strong: rgba(2, 8, 4, .7);--overlay-image: rgba(4, 12, 7, .32);--sky: #26373a;--brown: #d0a57d;--danger: #cf2121;--danger-soft: #422b2a;--semantic-information: #43b8ca;--semantic-selected: #7db9ee;--status-critical: var(--danger);--status-warning: var(--semantic-warning);--status-healthy: var(--semantic-success);--shadow: 0 16px 45px rgba(0, 0, 0, .3)}.confirm-actions .btn.confirm-alternative-primary{border-color:#eef1ef;background:#d9dedb;color:#1c211e}.confirm-actions .btn.confirm-alternative-primary:hover:not(:disabled){border-color:#fff;background:#cbd1cd}:root[data-health-alert=true]{--bg: #faf6f5;--surface-2: #f8ecea;--muted: #756462;--line: #ead8d5;--accent-bright: #ffaaa5;--accent-mid: #e56c64;--accent-on-deep: #f7d4d1;--accent-status: var(--danger);--accent-badge-ink: var(--danger);--overlay-hero: rgba(43, 10, 8, .52);--overlay-soft: rgba(34, 8, 7, .44);--overlay-strong: rgba(34, 8, 7, .6);--overlay-image: rgba(48, 12, 10, .25);--shadow: 0 16px 40px rgba(111, 31, 26, .1)}:root[data-theme=dark][data-health-alert=true]{--bg: #1a1717;--surface: #272222;--surface-2: #332726;--muted: #bcaeac;--line: #503a38;--accent-bright: #ffaaa5;--accent-mid: #e56c64;--accent-on-deep: #f7d4d1;--accent-status: var(--danger);--accent-badge-ink: var(--danger);--overlay-hero: rgba(24, 4, 3, .62);--overlay-soft: rgba(18, 3, 3, .58);--overlay-strong: rgba(18, 3, 3, .72);--overlay-image: rgba(35, 6, 5, .34);--shadow: 0 16px 45px rgba(12, 0, 0, .36)}*{box-sizing:border-box}html{min-height:100%;scroll-behavior:smooth}body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:16px;transition:background .25s ease,color .25s ease}button,input,select,textarea{font:inherit;font-size:16px!important;color:inherit}small{font-size:14px}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}img{max-width:100%}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}app-documentation-page .copy-failure{margin-top:12px;padding:14px;border:1px solid var(--danger);border-left-width:4px;background:color-mix(in srgb,var(--danger) 10%,var(--surface));color:var(--ink);line-height:1.5}app-documentation-page .copy-failure p{margin:5px 0 12px}app-documentation-page .copy-failure label{display:block;margin-bottom:5px;font-weight:400}app-documentation-page .manual-copy-value{width:100%;min-height:104px;padding:10px;resize:vertical;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-family:Cascadia Code,SFMono-Regular,Consolas,monospace;line-height:1.5;white-space:pre;overflow:auto}app-documentation-page .mobile-chapter-nav select{min-width:0}.control-disabled-explanation{display:block;margin-top:6px;color:var(--muted);font-size:14px;line-height:1.45}[hidden]{display:none!important}.queue-strategy{margin-top:18px;padding-top:18px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px}.queue-strategy h3{margin:0 0 5px}.queue-strategy p{margin:0;color:var(--muted)}.strategy-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:8px;overflow:hidden}.strategy-buttons button{min-width:0;min-height:44px;padding:8px 13px;border:0;border-left:1px solid var(--line);background:var(--surface);color:var(--muted);font-weight:600}.strategy-buttons button:first-child{border-left:0}.strategy-buttons button.active{background:var(--green-soft);color:var(--green-deep)}@media(max-width:800px){.queue-strategy{align-items:stretch;flex-direction:column;gap:14px}}::view-transition-group(*){animation-duration:.32s;animation-timing-function:ease}html.garden-sort-transition::view-transition-group(*){animation-duration:.18s;animation-timing-function:cubic-bezier(.2,0,0,1)}html.garden-sort-transition::view-transition-group(root),html.garden-sort-transition::view-transition-old(root),html.garden-sort-transition::view-transition-new(root){animation:none}.pump-row,.sensor-row,.activity-feed article,.notification-list article{animation:list-item-enter .28s ease both}@starting-style{.pump-row,.sensor-row,.activity-feed article,.notification-list article{opacity:0;transform:translateY(10px)}}.reservoir-settling .reservoir-illustration,.reservoir-settling .reservoir-tank i,.reservoir-settling[data-node-type=water-reservoir] .manual-node-icon{animation:reservoir-material-settle .8s ease-out}.reservoir-settling strong,.reservoir-settling dd{animation:reservoir-material-number .45s ease-out}@keyframes reservoir-material-settle{0%{transform:translateY(0)}30%{transform:translateY(4px)}60%{transform:translateY(-2px)}to{transform:translateY(0)}}@keyframes reservoir-material-number{0%{opacity:.45;transform:translateY(5px)}}@keyframes list-item-enter{0%{opacity:0;transform:translateY(10px)}}.page{width:min(1180px,100% - 40px);margin:0 auto;padding:64px 0 90px;font-size:16px}.page-header{margin-bottom:36px}.page-header p{color:var(--muted);max-width:640px;font-size:16px}.image-page-hero{width:100vw;min-height:320px;margin-top:-64px;margin-left:calc(50% - 50vw);position:relative;isolation:isolate;overflow:hidden;padding:46px max(20px,(100vw - 1180px) / 2);align-content:end;background-image:var(--page-hero-image);background-position:var(--page-hero-position, center);background-size:cover;color:#fff}.image-page-hero:before{content:"";position:absolute;inset:0;z-index:-1;background:#050e0894}.image-page-hero>*{position:relative}.image-page-hero .eyebrow{color:var(--accent-bright)}.image-page-hero.image-page-hero p,.image-page-hero .map-legend span{color:#ffffffdb}.image-page-hero h1{text-shadow:0 2px 20px rgba(0,0,0,.28)}.image-page-hero.split-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.image-page-hero .operational-hero-status{min-height:44px;display:inline-flex;align-items:center;gap:9px;padding:9px 13px;border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-control);background:#08120b85;color:#fff;font-size:15px;font-weight:400;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.image-page-hero:not(.split-heading):not(.gallery-heading):not(.overview-header):not(.manual-heading){display:flex;flex-direction:column;justify-content:flex-end}.overview-page-hero{--page-hero-image: url(/assets/images/heroes/overview-greenhouse.jpg);--page-hero-position: center 55%}.garden-page-hero{--page-hero-image: url(/assets/images/heroes/garden-overgrown.jpg);--page-hero-position: center 46%}.activity-page-hero{--page-hero-image: url(/assets/images/heroes/activity-irrigation.jpg);--page-hero-position: center 50%}.hardware-page-hero{--page-hero-image: url(/assets/images/heroes/organised-plants.jpg);--page-hero-position: center 56%}.settings-page-hero{--page-hero-image: url(/assets/images/heroes/settings-tools.jpg);--page-hero-position: center 52%;min-height:224px}.maintenance-page-hero{--page-hero-image: url(/assets/images/heroes/maintenance-irrigation.jpg);--page-hero-position: center 48%}.commissioning-page-hero{--page-hero-image: url(/assets/images/heroes/maintenance-irrigation.jpg);--page-hero-position: center 48%}.comparison-page-hero{--page-hero-image: url(/assets/images/heroes/garden-overgrown.jpg);--page-hero-position: center 46%}.systems-page-hero{--page-hero-image: url(/assets/images/heroes/hardware-electronics.jpg);--page-hero-position: center 62%}.documentation-page-hero{--page-hero-image: url(/assets/images/heroes/documentation-ruins-v2.jpg);--page-hero-position: center 48%}.stats-page-hero{--page-hero-image: url(/assets/images/heroes/stats-jungle.jpg);--page-hero-position: center 54%}@media(max-width:600px){.image-page-hero{min-height:270px;padding:28px 22px}.settings-page-hero{min-height:176px}.image-page-hero.split-heading{align-items:flex-start;flex-direction:column;justify-content:flex-end}}@media(max-width:360px){.image-page-hero{min-height:245px;padding:24px 18px}.image-page-hero h1{font-size:34px}}.hardware-heading-actions{display:grid;justify-items:end;gap:20px}.hardware-page-mode-switch{flex:0 0 auto;min-height:46px;display:grid;grid-template-columns:auto 42px auto;align-items:center;gap:9px;padding:6px 11px;border:1px solid rgba(255,255,255,.55);border-radius:7px;background:#08120bb3;color:#ffffffb3;font-size:16px!important;font-weight:400;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.hardware-page-mode-switch span.active{color:#fff}.hardware-page-mode-switch i{width:42px;height:24px;position:relative;border-radius:12px;background:#ffffff42}.hardware-page-mode-switch i:after{content:"";width:18px;height:18px;position:absolute;top:3px;left:3px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000038;transition:transform .2s ease}.hardware-page-mode-switch.manual i{background:var(--green)}.hardware-page-mode-switch.manual i:after{transform:translate(18px)}@media(max-width:600px){.hardware-heading-actions{justify-items:start}}@media(prefers-reduced-motion:reduce){.hardware-page-mode-switch i:after{transition:none}}.eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--green);font-weight:400;text-transform:uppercase;letter-spacing:0;font-size:14px;margin-bottom:14px}.eyebrow:before{content:"";width:23px;height:2px;background:currentColor}h1,h2,h3{margin:0;font-family:var(--font-display);letter-spacing:0;line-height:1.12}h1{font-size:clamp(38px,5vw,64px)}h2{font-size:clamp(26px,3vw,38px)}h3{font-size:18px}p{line-height:1.7}.btn{min-height:44px;border:0;border-radius:var(--radius-control);padding:12px 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;transition:transform .18s ease,background .18s ease,box-shadow .18s ease}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--status-healthy);color:var(--semantic-success-ink);box-shadow:0 8px 18px color-mix(in srgb,var(--status-healthy) 20%,transparent)}.btn-primary:hover{background:color-mix(in srgb,var(--status-healthy) 82%,black)}app-hardware-map-page :is(.pi-settings-form button[type=submit],.pi-emergency.active button,.calibration-panel>button:not(.calibration-test-action),.calibration-panel-actions button:last-child){color:var(--semantic-success-ink)!important}.btn-secondary{background:var(--surface);border:1px solid var(--line);color:var(--ink)}app-settings-page .sync-error{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 30px!important;border-radius:0!important;background:#7f1d1d!important;color:#fff!important}app-settings-page .sync-error.sync-warning{background:#b45309!important}app-settings-page .sync-error .btn{flex:0 0 auto;border-color:#fff;background:transparent;color:#fff}app-settings-page .sync-error .btn:hover{background:color-mix(in srgb,#fff 14%,transparent)}@media(max-width:600px){app-settings-page .sync-error{align-items:stretch;flex-direction:column;padding:16px 20px!important}app-settings-page .sync-error .btn{width:100%;justify-content:center}}app-settings-page .number-setting>:first-child{margin-bottom:10px}app-settings-page .number-setting .number-setting-description{margin:14px 0 0}app-settings-page .lightswitch .sky{overflow:hidden}app-settings-page .lightswitch .star{position:absolute;opacity:0;color:#fff}app-settings-page .lightswitch .one{top:5px;left:13px}app-settings-page .lightswitch .two{bottom:2px;left:31px}app-settings-page .lightswitch.dark .star{opacity:1}app-settings-page .theme-preview{min-height:235px;border:1px solid var(--line);border-radius:8px;background:var(--bg);display:flex;overflow:hidden;padding:20px;gap:20px}app-settings-page .preview-sidebar{width:90px;border-radius:8px;background:var(--green-deep);padding:16px 14px;display:grid;align-content:start;gap:12px}app-settings-page .preview-sidebar b{width:34px;height:34px;margin-bottom:5px;border-radius:8px;background:#fff;color:var(--green-deep);display:grid;place-items:center}app-settings-page .preview-sidebar i{height:7px;border-radius:4px;background:#ffffff5c}app-settings-page .preview-sidebar i:first-of-type{width:65%;background:#fff}app-settings-page .preview-body{flex:1;min-width:0;display:grid;gap:18px;align-content:start}app-settings-page .preview-copy{display:grid;gap:3px}app-settings-page .preview-copy small{color:var(--green);font-size:14px;font-weight:400;text-transform:uppercase}app-settings-page .preview-copy strong{font:400 19px var(--font-display)}app-settings-page .preview-copy p{color:var(--muted);font-size:14px;margin:0;line-height:1.45}app-settings-page .preview-cards{display:flex;gap:10px}app-settings-page .preview-cards i{height:92px;flex:1;border:1px solid var(--line);border-radius:8px;background:var(--surface)}@media(max-width:600px){app-settings-page .theme-preview{padding:12px;gap:12px}app-settings-page .preview-sidebar{width:62px}}@media(max-width:360px){app-settings-page .theme-preview{display:grid;grid-template-columns:1fr}}.btn-danger{background:var(--danger);color:#fff;box-shadow:0 8px 18px color-mix(in srgb,var(--danger) 20%,transparent)}.btn-danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 82%,black)}.emergency-control{order:11;border:1px solid color-mix(in srgb,var(--danger) 45%,var(--line));border-radius:8px;padding:22px;display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:16px;background:var(--surface)}.emergency-control.active{border-color:var(--danger)}.emergency-control h2{font-size:18px}.emergency-control p{margin:4px 0 0;color:var(--muted);font-size:14px}.emergency-control-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:8px;background:var(--danger-soft);color:var(--danger);font:400 22px var(--font-display)}.emergency-stop-button{background:var(--danger);color:#fff}.emergency-stop-button:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 82%,black)}.emergency-stop-button:disabled{cursor:wait;opacity:.65}@media(max-width:600px){.emergency-control{grid-template-columns:46px 1fr}.emergency-stop-button{grid-column:1/-1;width:100%}}@media(max-width:360px){.page{width:calc(100% - 20px);padding-top:32px}h1{font-size:36px}.strategy-buttons{grid-template-columns:1fr}.strategy-buttons button{border-top:1px solid var(--line);border-left:0}.strategy-buttons button:first-child{border-top:0}}@media(prefers-reduced-motion:reduce){::view-transition-group(*),.pump-row,.sensor-row,.activity-feed article,.notification-list article{animation:none!important}}.icon-btn{border:1px solid var(--line);background:var(--surface);width:40px;height:40px;display:grid;place-items:center;border-radius:var(--radius-control)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow)}.health-accent-setting{margin:0 0 24px;cursor:pointer}.field{display:grid;gap:7px}.field label{font-size:14px;font-weight:400;color:var(--muted);letter-spacing:0}.field input,.field select{width:100%;min-height:44px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--bg);padding:12px 14px;outline:none;transition:border .2s,box-shadow .2s}.field input:focus,.field select:focus{border-color:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 14%,transparent)}.field input:disabled,.field select:disabled{opacity:.65;cursor:not-allowed}.helper{font-size:14px;color:var(--muted);margin:0}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid color-mix(in srgb,var(--green) 40%,transparent);outline-offset:2px}app-manual-hardware-map .manual-controller-role{grid-template-columns:minmax(0,1fr)!important}app-manual-hardware-map .manual-controller-role select{width:100%;min-width:0;min-height:42px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}@media(max-width:600px){.page{width:min(100% - 28px,1180px);padding-top:42px}}.automatic-map-stage{transform-origin:0 0}.topology-tree{position:relative}.topology-tree>.automatic-tree-world{position:relative;z-index:1;grid-column:1/-1;grid-row:1/-1;min-width:100%;min-height:640px}.automatic-tree-connections{position:absolute;inset:0;z-index:0;overflow:visible;pointer-events:none}.automatic-tree-connections path{fill:none;stroke:#67b849;stroke-width:3px;stroke-linecap:square;stroke-linejoin:round;vector-effect:non-scaling-stroke}.automatic-tree-connections path[data-connection-type=api]{stroke:#dd3947}.automatic-tree-connections path[data-connection-type=jumper]{stroke:#768186}.automatic-tree-connections path[data-connection-type=water]{stroke:#11d2ac}.automatic-tree-connections path[data-connection-type=context]{stroke:var(--connection-context);stroke-dasharray:7 5}.automatic-tree-connections path[data-connection-type=controller-power]{stroke:#d89716}.automatic-tree-connections path[data-connection-type=power]{stroke:#e0c300}.automatic-tree-connections path.connection-highlighted{stroke-width:5px;filter:drop-shadow(0 0 3px color-mix(in srgb,currentColor 45%,transparent))}.automatic-tree-connections path.automatic-connection-hit-area{stroke:transparent;stroke-width:24px;pointer-events:stroke}.automatic-tree-connections path.automatic-connection-traffic{stroke-width:7px;stroke-linecap:round;stroke-dasharray:.001 .999;pointer-events:none;animation:connection-traffic 2.4s linear infinite}.automatic-tree-connections text{fill:var(--connection-api);font-size:14px;font-weight:400;text-anchor:middle}.automatic-tree-connections text[data-connection-type=context]{fill:color-mix(in srgb,var(--connection-context) 52%,var(--ink));stroke:var(--surface);stroke-width:5px;paint-order:stroke fill;font-size:14px;text-anchor:start}.automatic-tree-connections text[data-connection-type=context].connection-highlighted{fill:var(--ink);font-weight:400}.network-canvas.panning .automatic-connection-traffic{animation-play-state:paused}.manual-connections .connection-traffic{fill:none;stroke:var(--connection-color);stroke-width:7px;stroke-linecap:round;stroke-dasharray:.001 .999;vector-effect:non-scaling-stroke;pointer-events:none;animation:connection-traffic 2.4s linear infinite}.manual-workspace.viewport-navigating .connection-traffic{animation-play-state:paused}@keyframes connection-traffic{to{stroke-dashoffset:-1}}@media(prefers-reduced-motion:reduce){.automatic-tree-connections path.automatic-connection-traffic,.manual-connections .connection-traffic{animation:none;stroke-dashoffset:-.25}}.topology-tree .automatic-tree-world>.automatic-tree-node{position:absolute;z-index:2;width:var(--automatic-node-width, 218px);min-width:var(--automatic-node-width, 218px);height:84px;min-height:84px;margin:0;animation:none;will-change:auto}.topology-tree .automatic-tree-world>.automatic-tree-node.server-node,.topology-tree .automatic-tree-world>.automatic-tree-node.pi-node{height:84px;min-height:84px}.topology-tree .automatic-tree-world>.automatic-tree-node.pump-node{width:var(--automatic-node-width, 218px)}.topology-tree .automatic-tree-world>.automatic-tree-node:hover{transform:translateY(-2px)}app-hardware-map-page .context-treatment-node{border-color:color-mix(in srgb,var(--hardware-treatment-node) 62%,var(--line))}app-hardware-map-page .context-treatment-node .treatment-illustration{background:color-mix(in srgb,var(--hardware-treatment-node) 15%,var(--surface));color:color-mix(in srgb,var(--hardware-treatment-node) 78%,var(--ink))}app-hardware-map-page .context-treatment-node:is(:hover,:focus-visible,.selected){border-color:var(--hardware-treatment-node);outline-color:var(--hardware-treatment-node);box-shadow:0 0 0 3px color-mix(in srgb,var(--hardware-treatment-node) 32%,transparent)}app-hardware-map-page .context-experiment-node{border-color:color-mix(in srgb,var(--hardware-experiment-node) 62%,var(--line))}app-hardware-map-page .context-experiment-node .experiment-illustration{background:color-mix(in srgb,var(--hardware-experiment-node) 15%,var(--surface));color:color-mix(in srgb,var(--hardware-experiment-node) 78%,var(--ink))}app-hardware-map-page .context-experiment-node:is(:hover,:focus-visible,.selected){border-color:var(--hardware-experiment-node);outline-color:var(--hardware-experiment-node);box-shadow:0 0 0 3px color-mix(in srgb,var(--hardware-experiment-node) 32%,transparent)}app-hardware-map-page .context-experiment-area-node{border-style:dashed;border-color:color-mix(in srgb,var(--hardware-experiment-node) 38%,var(--line))}app-hardware-map-page .context-experiment-area-node .experiment-area-illustration{background:color-mix(in srgb,var(--hardware-experiment-node) 9%,var(--surface));color:color-mix(in srgb,var(--hardware-experiment-node) 68%,var(--ink))}app-hardware-map-page .context-experiment-area-node:is(:hover,:focus-visible,.selected){border-color:var(--hardware-experiment-node);outline-color:var(--hardware-experiment-node);box-shadow:0 0 0 3px color-mix(in srgb,var(--hardware-experiment-node) 25%,transparent)}app-hardware-map-page .context-record-details h2,app-hardware-map-page .context-record-details p{overflow-wrap:anywhere}app-hardware-map-page .context-record-details[data-record-kind=treatment] .detail-type{color:color-mix(in srgb,var(--hardware-treatment-node) 80%,var(--ink))}app-hardware-map-page .context-record-details[data-record-kind=experiment] .detail-type,app-hardware-map-page .context-record-details[data-record-kind=experiment-area] .detail-type{color:color-mix(in srgb,var(--hardware-experiment-node) 80%,var(--ink))}app-hardware-map-page .context-record-boundary{margin-top:14px;padding:11px 12px;border:1px dashed var(--connection-context);border-radius:var(--radius-control);color:var(--muted);font-size:14px}app-hardware-map-page .context-record-read-state{margin:10px 0;color:var(--muted);font-size:14px;font-weight:400}app-hardware-map-page .context-record-open{width:100%;margin-top:12px}app-hardware-map-page .experiment-link-control{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}app-hardware-map-page .experiment-link-trigger{justify-content:flex-start;margin-top:0}app-hardware-map-page .experiment-link-trigger>span{min-width:0;flex:1;text-align:left}app-hardware-map-page .experiment-link-trigger>small{min-width:28px;min-height:28px;display:grid;place-items:center;border-radius:999px;background:color-mix(in srgb,var(--green) 16%,var(--surface));color:var(--green-deep);font-size:14px;font-weight:400}app-hardware-map-page .experiment-link-collapse{display:grid;grid-template-rows:0fr;opacity:0;transform:translateY(-6px);transition:grid-template-rows .22s ease,opacity .18s ease,transform .22s ease}app-hardware-map-page .experiment-link-collapse>div{min-height:0;overflow:hidden}app-hardware-map-page .experiment-link-collapse.open{grid-template-rows:1fr;opacity:1;transform:translateY(0)}app-hardware-map-page .experiment-link-panel{display:grid;gap:10px;margin-top:10px;padding:14px;border:1px solid color-mix(in srgb,var(--hardware-experiment-node) 38%,var(--line));border-radius:var(--radius-control);background:linear-gradient(145deg,color-mix(in srgb,var(--hardware-experiment-node) 7%,var(--surface)),var(--surface));box-shadow:0 10px 28px color-mix(in srgb,var(--ink) 8%,transparent)}app-hardware-map-page .experiment-link-panel>p,app-hardware-map-page .experiment-link-panel>label{margin:0;font-size:14px;line-height:1.45}app-hardware-map-page .experiment-link-panel>p,app-hardware-map-page .experiment-link-panel>label,app-hardware-map-page .experiment-link-panel .experiment-link-heading span{color:var(--muted)}app-hardware-map-page .experiment-link-panel>label{font-weight:400}app-hardware-map-page .experiment-link-panel>input{width:100%;min-width:0;min-height:44px;padding:9px 11px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);color:var(--ink);font:inherit;font-size:16px}app-hardware-map-page .experiment-link-panel>input:focus-visible{border-color:var(--green);outline:3px solid color-mix(in srgb,var(--green) 24%,transparent);outline-offset:1px}app-hardware-map-page .experiment-link-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}app-hardware-map-page .experiment-link-heading strong{min-width:0;color:var(--ink);font-size:16px;overflow-wrap:anywhere}app-hardware-map-page .experiment-link-heading span{flex:0 0 auto;font-size:14px;font-weight:400}app-hardware-map-page .experiment-link-results{max-height:260px;display:grid;gap:7px;margin:0;padding:0 3px 0 0;overflow-y:auto;list-style:none}app-hardware-map-page .experiment-link-results button{width:100%;min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-2);color:var(--ink);text-align:left;transition:transform .16s ease,border-color .16s ease,background .16s ease}app-hardware-map-page .experiment-link-results button:is(:hover,:focus-visible):not(:disabled){border-color:var(--hardware-experiment-node);background:color-mix(in srgb,var(--hardware-experiment-node) 9%,var(--surface));outline:none;transform:translateY(-1px)}app-hardware-map-page .experiment-link-results button:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--hardware-experiment-node) 25%,transparent)}app-hardware-map-page .experiment-link-results button:disabled{cursor:wait;opacity:.64}app-hardware-map-page .experiment-link-results button>span{min-width:0;display:grid;gap:3px}app-hardware-map-page .experiment-link-results button strong,app-hardware-map-page .experiment-link-results button small{overflow-wrap:anywhere}app-hardware-map-page .experiment-link-results button strong{font-size:15px}app-hardware-map-page .experiment-link-results button small{color:var(--muted);font-size:14px}app-hardware-map-page .experiment-link-results button svg{width:18px;height:18px;flex:0 0 auto;color:var(--hardware-experiment-node)}app-hardware-map-page .experiment-link-empty,app-hardware-map-page .experiment-link-disabled{margin:9px 0 0;color:var(--muted);font-size:14px;line-height:1.5}app-hardware-map-page .experiment-link-spinner{width:18px;height:18px;flex:0 0 auto;border:2px solid color-mix(in srgb,var(--hardware-experiment-node) 28%,transparent);border-top-color:var(--hardware-experiment-node);border-radius:50%;animation:experiment-link-spin .7s linear infinite}@keyframes experiment-link-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){app-hardware-map-page .experiment-link-collapse,app-hardware-map-page .experiment-link-results button{transition:none}app-hardware-map-page .experiment-link-spinner{animation:none}}.topology-tree>:not(.automatic-relation-layer){position:relative;z-index:1}.automatic-relation-layer{position:absolute;inset:0;z-index:0;width:100%;height:100%;overflow:visible;pointer-events:none}.automatic-relation-layer path{fill:none;stroke-width:3px;stroke-linecap:square;stroke-linejoin:round;vector-effect:non-scaling-stroke}.automatic-relation-layer path[data-relation-type=water]{stroke:#11d2ac}.automatic-relation-layer path[data-relation-type=context]{stroke:#98a39d;stroke-dasharray:7 5}.topology-tree:not(.show-water):not(.show-power)>.resource-layer{display:none}.topology-tree:is(.show-water,.show-power){grid-template-columns:minmax(0,1fr);grid-template-rows:auto}.topology-tree:is(.show-water,.show-power)>:is(.controller-stack,.automatic-plant-layer){display:none}.topology-tree:is(.show-water,.show-power) .root-link,.topology-tree:is(.show-water,.show-power) .primary-sensor-stack{display:none}.topology-tree.show-water .infrastructure-network,.topology-tree.show-power .reservoir-network{display:none}.root-zone>.server-node{grid-column:1;grid-row:1}.root-zone>.api-link{grid-column:2;grid-row:1}.root-zone>.pi-node{grid-column:3;grid-row:1}.additional-pi-fleet{position:relative;grid-column:3;grid-row:2;display:grid;gap:12px;margin-top:18px;padding-left:38px}.fleet-api-trunk{position:absolute;top:-18px;bottom:42px;left:0;width:3px;background:#dd3947}.fleet-pi-branch{position:relative;display:grid;grid-template-columns:38px max-content;align-items:center;margin-left:-38px}.fleet-api-link{position:relative;height:3px;background:#dd3947}.fleet-api-link i{position:absolute;top:-25px;left:50%;color:#c52735;font-size:14px;font-style:normal;font-weight:400;transform:translate(-50%)}.fleet-pi-node{grid-column:2}.automatic-workspace-tabs{position:absolute;top:14px;left:14px;z-index:30;display:inline-flex;overflow:hidden;border:1px solid var(--line);border-radius:7px;background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:0 8px 22px #0f231829}.automatic-workspace-tabs button{min-height:40px;padding:8px 14px;border:0;border-right:1px solid var(--line);background:transparent;color:var(--muted);font:inherit;font-size:15px;font-weight:600;cursor:pointer}.automatic-workspace-tabs button:last-child{border-right:0}.automatic-workspace-tabs button:hover,.automatic-workspace-tabs button:focus-visible{color:var(--green-deep);background:var(--green-soft)}.automatic-workspace-tabs button.active{color:#fff;background:var(--green-deep)}.automatic-workspace-action{position:absolute;top:66px;left:14px;z-index:30;min-height:40px;padding:8px 14px;border:1px solid var(--green);border-radius:7px;background:color-mix(in srgb,var(--surface) 94%,transparent);color:var(--green-deep);font:inherit;font-size:15px;font-weight:600;box-shadow:0 8px 22px #0f231829;cursor:pointer}.automatic-workspace-action:hover,.automatic-workspace-action:focus-visible{background:var(--green-soft)}.automatic-clipboard-controls{position:absolute;bottom:204px;left:16px;z-index:33;display:inline-flex;overflow:hidden;border:1px solid var(--line);border-radius:7px;background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:0 8px 22px #0f231829}.automatic-clipboard-controls button{width:42px;min-height:40px;padding:7px;border:0;border-right:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;cursor:pointer}.automatic-clipboard-controls button:last-child{border-right:0}.automatic-clipboard-controls button:hover:not(:disabled),.automatic-clipboard-controls button:focus-visible{background:var(--green-soft);color:var(--green-deep)}.automatic-clipboard-controls button[aria-pressed=true]{background:var(--green-deep);color:#fff}.automatic-clipboard-controls button:disabled{color:var(--muted);cursor:not-allowed;opacity:.62}.automatic-clipboard-controls button svg{width:20px;height:20px;stroke-width:2.2}.map-control-group{display:inline-flex;align-items:stretch;overflow:hidden;border:1px solid var(--line);border-radius:7px;background:color-mix(in srgb,var(--surface) 94%,transparent)}.map-control-group button,.map-control-group output{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 10px;border:0;border-right:1px solid var(--line);background:transparent;color:var(--ink);font-size:14px;font-weight:400}.map-control-group button{cursor:pointer}.map-control-group button:hover,.map-control-group button:focus-visible{background:var(--green-soft);color:var(--green-deep)}.map-control-group svg{width:17px;height:17px;flex:0 0 auto}.map-control-group>:last-child{border-right:0}.automatic-zoom-controls{position:absolute;top:14px;right:14px;z-index:30;display:inline-flex;align-items:center;overflow:hidden;border:1px solid var(--line);border-radius:7px;background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:0 8px 22px #0f231829}.automatic-zoom-controls button,.automatic-zoom-controls output{min-width:42px;min-height:38px;display:grid;place-items:center;padding:7px 10px;border:0;border-right:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;font-size:15px;font-weight:400}.automatic-zoom-controls button{cursor:pointer}.automatic-zoom-controls button:hover,.automatic-zoom-controls button:focus-visible{background:var(--green-soft);color:var(--green-deep)}.automatic-zoom-controls output{min-width:62px}.automatic-zoom-controls .fit-view{border-right:0}.automatic-minimap{position:absolute;right:14px;bottom:14px;z-index:29;width:clamp(150px,16vw,220px);height:130px;padding:5px;overflow:hidden;border:1px solid color-mix(in srgb,var(--ink) 28%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:0 8px 22px color-mix(in srgb,var(--ink) 14%,transparent);cursor:crosshair}.automatic-minimap:focus-visible{outline:3px solid color-mix(in srgb,var(--green) 45%,transparent);outline-offset:2px}.automatic-minimap svg{width:100%;height:100%}.automatic-minimap .minimap-edges{fill:none;stroke:var(--muted);stroke-width:7;vector-effect:non-scaling-stroke}.automatic-minimap .minimap-nodes{fill:color-mix(in srgb,var(--green) 72%,var(--surface));stroke:var(--green-deep);stroke-width:2}.automatic-minimap .minimap-viewport{fill:color-mix(in srgb,var(--green) 12%,transparent);stroke:var(--green-deep);stroke-width:7;vector-effect:non-scaling-stroke}.automatic-server-direction{position:absolute;z-index:31;width:36px;height:36px;display:grid;place-items:center;padding:0;border:1px solid color-mix(in srgb,var(--green) 65%,var(--line));border-radius:50%;background:var(--surface);color:var(--green-deep);box-shadow:0 4px 14px #1835262e;cursor:pointer;overflow:hidden}.automatic-server-direction:hover,.automatic-server-direction:focus-visible{border-color:var(--green);background:var(--green-soft);box-shadow:0 6px 18px #18352647}.automatic-server-direction svg{position:relative;z-index:1;width:20px;height:20px;stroke-width:2.5}@media(prefers-reduced-motion:reduce){app-hardware-map-page .network-canvas.automatic-server-navigating,app-hardware-map-page .network-canvas.automatic-server-navigating .automatic-map-stage{transition:none}}.connection-label-path{fill:none;stroke:none}.connection-label{fill:var(--manual-api);stroke:var(--surface);stroke-width:5px;paint-order:stroke fill;font-size:16px;font-weight:400;letter-spacing:.04em;text-anchor:middle;pointer-events:none}@media(max-width:650px){.automatic-minimap{right:10px;bottom:10px;width:140px;height:100px}.automatic-workspace-tabs{right:14px}.automatic-workspace-tabs button{flex:1}.automatic-clipboard-controls{bottom:173px;left:10px}.automatic-zoom-controls{top:68px}.root-zone>:is(.server-node,.api-link,.pi-node){grid-column:1}.root-zone>.server-node{grid-row:1}.root-zone>.api-link{grid-row:2}.root-zone>.pi-node{grid-row:3}.additional-pi-fleet{grid-column:1;grid-row:4;width:min(100%,298px);margin-top:24px}}@scope(app-manual-hardware-map){.manual-relationship-layers{margin-top:12px;padding:16px;display:grid;gap:14px;border:1px solid var(--line);border-radius:7px;background:var(--surface)}.manual-relationship-layers header{display:flex;align-items:start;justify-content:space-between;gap:16px}.manual-relationship-layers h2{margin:2px 0 0;font-size:20px}.manual-relationship-layers p,.manual-relationship-layers output{color:var(--muted);font-size:14px}.manual-relationship-layers p{max-width:760px;margin:5px 0 0}.manual-relationship-layers footer{min-height:22px;display:flex;align-items:center}.manual-relationship-legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(175px,100%),1fr));gap:8px}.manual-relationship-legend button{--layer-color: var(--manual-context);min-height:44px;padding:7px 10px;display:grid;grid-template-columns:15px minmax(0,1fr) auto;align-items:center;gap:8px;border:1px solid var(--line);border-radius:6px;background:var(--surface-2);color:var(--muted);font-size:14px;text-align:left}.manual-relationship-legend button i{width:15px;height:4px;border-radius:999px;background:var(--layer-color)}.manual-relationship-legend button strong{min-width:24px;padding:2px 6px;border-radius:999px;background:color-mix(in srgb,var(--layer-color) 16%,var(--surface));color:var(--ink);font-size:14px;text-align:center}.manual-relationship-legend button.active{border-color:color-mix(in srgb,var(--layer-color) 72%,var(--line));background:color-mix(in srgb,var(--layer-color) 10%,var(--surface));color:var(--ink)}.manual-relationship-legend button:focus-visible{outline:3px solid color-mix(in srgb,var(--layer-color) 38%,transparent);outline-offset:2px}.manual-relationship-legend [data-relationship-layer=api]{--layer-color: var(--manual-api)}.manual-relationship-legend [data-relationship-layer=water]{--layer-color: var(--manual-water)}.manual-relationship-legend [data-relationship-layer=jumper]{--layer-color: var(--manual-jumper)}.manual-relationship-legend [data-relationship-layer=power-general]{--layer-color: var(--manual-power)}.manual-relationship-legend [data-relationship-layer=power-controller]{--layer-color: var(--manual-controller-power)}.manual-relationship-legend [data-relationship-layer=controller]{--layer-color: var(--manual-controller)}.manual-workspace-dock{position:absolute;left:12px;bottom:12px;z-index:10;width:min(410px,100% - 24px);display:grid;gap:8px;pointer-events:none}.manual-workspace-dock .workspace-hint,.manual-workspace-dock .hardware-minimap{position:relative;inset:auto}.manual-workspace-dock .workspace-hint{width:100%;max-width:none}.manual-minimap-dock{width:210px;display:grid;gap:5px;pointer-events:auto}.manual-minimap-dock.collapsed{width:auto;justify-self:start}.manual-minimap-dock .hardware-minimap{width:210px}.manual-minimap-toggle{min-height:38px;padding:7px 11px;justify-self:start;border:1px solid color-mix(in srgb,var(--ink) 28%,var(--line));border-radius:6px;background:color-mix(in srgb,var(--surface) 94%,transparent);color:var(--ink);box-shadow:0 4px 14px #0f231821;font-size:14px;font-weight:600}@media(max-width:480px){.manual-relationship-layers{padding:12px}.manual-relationship-legend{grid-template-columns:1fr}.manual-workspace-dock{width:min(320px,100% - 24px)}}}
