:root{font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--pk-text,#1f2923);background:var(--pk-bg,#f4f7f3)}*{box-sizing:border-box}body{margin:0}.topbar{background:#173d2b;color:white;padding:28px max(24px,calc((100% - 1180px)/2));display:flex;justify-content:space-between;gap:24px;align-items:center}.topbar h1{margin:0;font-size:30px}.topbar p{margin:6px 0 0;color:#cfe0d6}.topbar button{border:0;border-radius:10px;padding:11px 16px;background:white;color:#173d2b;font-weight:700;cursor:pointer}main{max-width:1180px;margin:28px auto;padding:0 20px}.notice,.error{padding:12px 16px;border-radius:10px;margin-bottom:16px}.notice{background:var(--pk-attention-soft,#fff5c9)}.error{background:var(--pk-critical-soft,#ffd9d9);color:var(--pk-critical-fg,#791f1f)}.meta{font-size:13px;color:var(--pk-text-muted,#65716a);margin:12px 0 20px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:18px}.card{background:var(--pk-surface,white);border:1px solid var(--pk-border,#dfe6df);border-radius:16px;padding:18px;text-decoration:none;color:inherit;box-shadow:0 2px 9px rgba(30,60,40,.05);transition:.15s}.card:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(30,60,40,.1)}.card-head{display:flex;align-items:center;gap:12px}.avatar{width:52px;height:52px;border-radius:14px;background:var(--pk-surface-3,#e8f3e9);display:grid;place-items:center;font-size:25px}.card h2{font-size:19px;margin:0}.card p{font-size:13px;color:var(--pk-text-muted,#6a756e);margin:3px 0}.alarm{margin-left:auto;width:28px;height:28px;border-radius:50%;background:#d94841;color:white;display:grid;place-items:center;font-weight:800}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:17px}.metrics div,.metric-big{background:var(--pk-surface-2,#f6f8f6);border-radius:12px;padding:12px}.metrics span,.metric-big span{display:block;font-size:12px;color:var(--pk-text-muted,#6c776f)}.metrics strong{font-size:17px}.statusline{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;font-size:12px}.statusline span{background:var(--pk-attention-soft,#fff0dc);padding:5px 8px;border-radius:8px}.statusline .ok{background:var(--pk-success-soft,#e6f4ea);color:var(--pk-brand-text,#1c6840)}.empty,.panel{background:var(--pk-surface,white);border-radius:16px;padding:22px;border:1px solid var(--pk-border,#dfe6df)}.back{color:#dcebe1;text-decoration:none}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:18px}.metric-big strong{font-size:25px;display:block;margin-top:5px}.panel{margin-top:18px}.panel h2{margin-top:0}.panel canvas{width:100%;display:block}.legend{display:flex;gap:20px;font-size:12px;color:var(--pk-text-muted,#68736c)}.smalltext{font-size:14px}code{background:rgba(0,0,0,.06);padding:2px 5px;border-radius:4px}@media(max-width:650px){.topbar{align-items:flex-start;flex-direction:column}.topbar h1{font-size:25px}}
.view-tabs{display:flex;gap:8px;margin:0 0 18px}.view-tabs a{text-decoration:none;color:var(--pk-text-2,#355044);background:var(--pk-surface-3,#e8eee9);border-radius:10px;padding:9px 13px;font-weight:700}.view-tabs a.active{background:var(--pk-brand-strong,#173d2b);color:white}.view-tabs span{opacity:.7;margin-left:4px}.plant-thumb{width:72px;height:72px;object-fit:cover;border-radius:14px;flex:0 0 72px;background:var(--pk-surface-3,#e8f3e9)}.image-fallback{width:72px;height:72px;flex:0 0 72px}.card-title{min-width:0}.room-label{display:inline-block;margin-top:4px;font-size:11px;color:var(--pk-text-muted,#50645a);background:var(--pk-surface-3,#edf3ee);padding:3px 7px;border-radius:999px}.room-section{margin:0 0 34px}.room-heading{display:flex;align-items:baseline;gap:10px;border-bottom:1px solid var(--pk-border,#dfe6df);margin:0 0 14px;padding-bottom:8px}.room-heading h2{margin:0;font-size:22px}.room-heading span{font-size:13px;color:var(--pk-text-muted,#68736c)}
/* Plant identity image is context, not a desktop hero. Preserve its aspect ratio. */
.plant-head{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px;align-items:stretch;margin-top:18px}.plant-head-photo{background:var(--pk-surface-2,#f7faf8);border:1px solid var(--pk-border,#dfe6df);border-radius:16px;padding:10px;display:flex;align-items:center;justify-content:center;min-height:170px}.plant-photo{display:block;width:100%;height:100%;max-height:220px;object-fit:contain;border-radius:10px}.plant-head-status{min-width:0;display:flex}.plant-head-status .plant-overview{margin:0;width:100%;height:100%}
@media(max-width:760px){.plant-head{display:block}.plant-head-photo{padding:0;border:0;background:transparent;min-height:0;margin-bottom:14px}.plant-photo{width:100%;height:auto;max-width:100%;max-height:420px;object-fit:contain;border-radius:12px}.plant-head-status{display:block}.plant-head-status .plant-overview{height:auto}}
.history-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin:.8rem 0 1rem}.history-tabs button{border:1px solid var(--pk-border-strong,#cbd6cd);background:var(--pk-surface-2,#f7faf7);border-radius:999px;padding:.45rem .8rem;cursor:pointer}.history-tabs button.active{font-weight:700;border-color:#668b70}.history-tabs button:hover{filter:brightness(.97)}

.metrics-six{grid-template-columns:repeat(3,1fr)}.metric-cell strong small{font-size:10px;font-weight:600;color:var(--pk-text-muted,#68736c)}.metric-cell{min-width:0}.metric-cell strong{word-break:break-word}.sensor-state{font-size:11px;color:var(--pk-text-muted,#68736c)}@media(max-width:760px){.metrics-six{grid-template-columns:1fr 1fr}}
/* v0.7 per-metric FYTA status */
.metric-cell{border:1px solid transparent;position:relative}.metric-cell em{display:block;margin-top:4px;font-size:10px;font-style:normal;color:var(--pk-text-muted,#6b756f)}.state-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-left:4px;background:#9aa39d}.state-good .state-dot{background:#2f9e5b}.state-attention .state-dot{background:#e69b21}.state-critical .state-dot{background:#d64545}.state-unknown .state-dot{background:#a8afaa}.metric-cell.state-good{background:var(--pk-surface-2,#f1faf4);border-color:var(--pk-success-border,#d8efdf)}.metric-cell.state-attention{background:var(--pk-attention-soft,#fff8e9);border-color:var(--pk-attention-border,#f2d99f)}.metric-cell.state-critical{background:var(--pk-critical-soft,#fff0f0);border-color:var(--pk-critical-border,#f0bcbc)}.metric-cell.state-unknown{background:var(--pk-surface-2,#f6f8f6);border-color:var(--pk-border,#e3e7e4)}.alarm{background:#d64545}.flag{padding:5px 8px;border-radius:8px}.flag-attention{background:var(--pk-attention-soft,#fff0d5)!important;color:var(--pk-attention-fg,#8a5700)}.flag-critical{background:var(--pk-critical-soft,#ffe0e0)!important;color:var(--pk-critical-fg,#9b2525)}.card.needs-attention{border-color:var(--pk-attention-border,#e6c7a0)}.table-wrap{overflow-x:auto;background:var(--pk-surface,white);border:1px solid var(--pk-border,#dfe6df);border-radius:16px}.plant-table{width:100%;border-collapse:collapse;min-width:920px}.plant-table th,.plant-table td{padding:11px 10px;border-bottom:1px solid var(--pk-border,#edf0ed);text-align:center;vertical-align:middle}.plant-table th{position:sticky;top:0;background:var(--pk-surface-2,#f7f9f7);font-size:18px}.plant-table th span{display:block;font-size:10px;font-weight:700;color:var(--pk-text-muted,#68736c);margin-top:3px}.plant-table .plant-col{text-align:left;min-width:225px}.plant-col a{display:flex;align-items:center;gap:10px;color:inherit;text-decoration:none}.plant-col a>span:last-child{display:flex;flex-direction:column}.plant-col small{color:var(--pk-text-muted,#718078);margin-top:2px}.table-thumb,.table-avatar{width:48px;height:48px;border-radius:10px;object-fit:cover;flex:0 0 48px}.table-avatar{display:grid;place-items:center;background:var(--pk-surface-3,#e8f3e9);font-size:22px}.value-cell{border-left:3px solid transparent}.value-cell.state-good{background:var(--pk-surface-2,#f3fbf5);border-left-color:#2f9e5b}.value-cell.state-attention{background:var(--pk-attention-soft,#fff9ec);border-left-color:#e69b21}.value-cell.state-critical{background:var(--pk-critical-soft,#fff1f1);border-left-color:#d64545}.value-cell.state-unknown{background:var(--pk-surface-2,#fafbfa);border-left-color:#a8afaa}.value-cell strong{display:block;font-size:15px}.value-cell small{display:block;font-size:9px;color:var(--pk-text-muted,#6c756f)}.attention-col{min-width:140px}.attention-col .flag{display:inline-block;margin:2px;font-size:10px}.plant-row:hover td{filter:brightness(.985)}
/* v0.8 authenticated FYTA images + history import */
.history-import{display:flex;align-items:end;gap:10px;flex-wrap:wrap;background:var(--pk-surface-2,#f7faf7);border:1px solid var(--pk-border,#dfe6df);border-radius:12px;padding:12px;margin:12px 0 16px}.history-import label{display:flex;flex-direction:column;gap:2px;min-width:260px;flex:1}.history-import label span{font-size:11px;color:var(--pk-text-muted,#68736c)}.history-import input{max-width:320px}.history-import button{border:0;background:var(--pk-brand-strong,#173d2b);color:white;border-radius:9px;padding:9px 13px;font-weight:700;cursor:pointer}
/* v1.0 */
.version{font-size:12px;font-weight:700;opacity:.7}.metric-big{border:1px solid transparent}.metric-big em{display:block;font-size:11px;font-style:normal;color:var(--pk-text-muted,#6b756f);margin-top:5px}.metric-big.state-good{background:var(--pk-surface-2,#f1faf4);border-color:var(--pk-success-border,#d8efdf)}.metric-big.state-attention{background:var(--pk-attention-soft,#fff8e9);border-color:var(--pk-attention-border,#f2d99f)}.metric-big.state-critical{background:var(--pk-critical-soft,#fff0f0);border-color:var(--pk-critical-border,#f0bcbc)}.metric-big.state-unknown{background:var(--pk-surface-2,#f6f8f6);border-color:var(--pk-border,#e3e7e4)}.metric-big strong small{font-size:12px;color:var(--pk-text-muted,#68736c)}.photo-fallback{height:220px;display:grid;place-items:center;font-size:52px;background:var(--pk-surface-3,#eef4ef)}.photo-fallback span{font-size:13px;color:var(--pk-text-muted,#68736c)}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.info-grid>div{background:var(--pk-surface-2,#f7f9f7);border-radius:10px;padding:11px}.info-grid span{display:block;font-size:11px;color:var(--pk-text-muted,#6b756f)}.info-grid strong{display:block;margin-top:3px;font-size:14px;word-break:break-word}
/* v1.2 */
.history-badge{font-size:12px;font-weight:700;background:var(--pk-surface-3,#e8f1ea);color:var(--pk-brand-text,#315842);border-radius:999px;padding:4px 8px;vertical-align:middle;margin-left:6px}.range-table-wrap{overflow-x:auto}.range-table{width:100%;border-collapse:collapse;min-width:680px}.range-table th,.range-table td{padding:10px 12px;border-bottom:1px solid var(--pk-border,#e8ece8);text-align:left}.range-table thead th{font-size:12px;color:var(--pk-text-muted,#65716a);background:var(--pk-surface-2,#f7f9f7)}.range-table tbody th{font-size:13px}.range-table td{font-variant-numeric:tabular-nums;font-size:13px}
/* v1.3 – eigene Pflegeprofile */
.view-tabs-split{display:flex;justify-content:space-between;align-items:center;gap:14px}.view-tabs-main{display:flex;gap:8px;flex-wrap:wrap}.care-tab{margin-left:auto;background:var(--pk-surface-3,#e9efe9)!important;border:1px solid var(--pk-border-strong,#cfdacf)}.care-tab.active{background:var(--pk-brand-strong,#173d2b)!important;color:white}.topbar-link{background:white;color:#173d2b;text-decoration:none;border-radius:10px;padding:11px 16px;font-weight:700}.panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.panel-title-row h2{margin:0}.panel-title-row a,.detail-link{color:var(--pk-brand-text,#245e42);text-decoration:none;font-weight:700}.care-intro{margin-bottom:18px}.care-list{display:grid;gap:18px}.care-card{scroll-margin-top:16px}.care-head{display:flex;align-items:center;gap:14px;margin-bottom:18px}.care-head h2{margin:0}.care-head p{margin:4px 0 0;color:var(--pk-text-muted,#6a756e)}.care-head .detail-link{margin-left:auto}.care-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.care-form fieldset{margin:0;border:1px solid var(--pk-border,#dfe6df);border-radius:12px;padding:13px;background:var(--pk-surface-2,#f9fbf9)}.care-form legend{font-weight:800;padding:0 6px}.care-form label{display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--pk-text-muted,#56635b)}.care-form input,.care-form textarea,.care-form select{width:100%;border:1px solid var(--pk-border-strong,#cbd5cd);border-radius:8px;background:var(--pk-surface,white);padding:9px 10px;font:inherit;color:var(--pk-text,#1f2923)}.care-form small{display:block;margin-top:8px;color:var(--pk-text-muted,#77827b)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.care-notes{grid-column:1/-1}.care-actions{grid-column:1/-1;display:flex;justify-content:flex-end}.care-actions button{border:0;background:var(--pk-brand-strong,#173d2b);color:white;border-radius:9px;padding:10px 15px;font-weight:800;cursor:pointer}@media(max-width:760px){.view-tabs-split{align-items:stretch;flex-direction:column}.care-tab{margin-left:0;align-self:flex-start}.care-form{grid-template-columns:1fr}.care-head{align-items:flex-start;flex-wrap:wrap}.care-head .detail-link{margin-left:0}.field-row{grid-template-columns:1fr 1fr}}@media(max-width:480px){.field-row{grid-template-columns:1fr}}
/* v1.4 – intelligente Pflegeprofile */
.smart-intro{border-left:4px solid #2f7650}.research-status{display:flex;flex-direction:column;gap:3px;margin:14px 0;padding:12px 14px;border-radius:10px}.research-status.online{background:var(--pk-surface-3,#eef9f1);color:var(--pk-brand-text,#245b38)}.research-status.local{background:var(--pk-attention-soft,#fff8e9);color:var(--pk-attention-fg,#765312)}.research-status span{font-size:12px}.profile-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 10px}.profile-summary>div{background:var(--pk-surface-2,#f5f8f5);border:1px solid var(--pk-border,#e1e7e2);border-radius:10px;padding:9px}.profile-summary span{display:block;font-size:10px;color:var(--pk-text-muted,#748078)}.profile-summary strong{display:block;margin-top:3px;font-size:12px}.confidence-high{color:var(--pk-brand-text,#22713f)}.confidence-medium{color:var(--pk-attention-fg,#8b6514)}.confidence-low{color:var(--pk-critical-fg,#a24d2f)}.confidence-unknown{color:var(--pk-text-muted,#7b837e)}.profile-guidance{background:var(--pk-surface-2,#f7f8f3);border-radius:10px;padding:10px 12px;margin-bottom:10px}.profile-guidance p{margin:4px 0;font-size:12px}.profile-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-bottom:14px}.profile-actions>a{color:var(--pk-brand-text,#245e42);font-size:12px;font-weight:700;text-decoration:none}.secondary-button{border:1px solid var(--pk-border-strong,#bdcdc1);background:var(--pk-surface,white);color:var(--pk-brand-text,#234e36);border-radius:8px;padding:7px 10px;font-weight:700;cursor:pointer}.auto-value{font-size:11px;background:var(--pk-surface-3,#edf4ee);border-radius:7px;padding:6px 8px;margin-bottom:9px;color:var(--pk-text-muted,#53625a)}.auto-value strong{color:var(--pk-text,#223a2c)}@media(max-width:760px){.profile-summary{grid-template-columns:1fr 1fr}}@media(max-width:460px){.profile-summary{grid-template-columns:1fr}}
/* v1.5 severity-aware alerts and learned profiles */
.alarm.alarm-critical{background:#c9342f;color:#fff}.alarm.alarm-attention{background:#e58a1f;color:#fff}.alarm.alarm-good{display:grid;background:#2f9e5b;color:#fff;font-size:14px}
.learned-note{font-size:11px;line-height:1.35;background:var(--pk-info-soft,#eef6ff);color:var(--pk-info-fg,#35566f);border-radius:7px;padding:7px 8px;margin:-2px 0 9px}

.sync-meta strong{color:var(--pk-text-2,#38463d)}.profile-refresh-box{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--pk-border,#e4e9e5)}.profile-refresh-box form{margin:0}.profile-refresh-box button{border:0;border-radius:9px;padding:10px 14px;background:var(--pk-brand-strong,#173d2b);color:white;font-weight:700;cursor:pointer}.profile-refresh-box span{font-size:12px;color:var(--pk-text-muted,#68736c)}.research-status.online{border-left:4px solid #2f9e5b}.research-status.local{border-left:4px solid #9aa39d}


/* v1.76 Systemstatus */
.status-button { font: inherit; cursor: pointer; }
.status-modal[hidden] { display: none; }
.status-modal { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: 18px; }
.status-modal-backdrop { position: absolute; inset: 0; background: rgba(17, 31, 25, .58); backdrop-filter: blur(3px); }
.status-modal-card { position: relative; z-index: 1; width: min(860px, 96vw); max-height: 88vh; overflow: auto; background: var(--pk-surface,#fff); border: 1px solid var(--pk-border,#dce7df); border-radius: 22px; box-shadow: 0 24px 70px rgba(0,0,0,.22); padding: 22px; }
.status-modal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 16px; }
.status-modal-head h2 { margin: 0 0 4px; }
.status-modal-head p { margin: 0; color: var(--pk-text-muted,#64736a); }
.status-modal-close { border: 0; background: transparent; color: var(--pk-text-muted,#526158); font-size: 32px; line-height: 1; padding: 0 6px; cursor: pointer; }
.status-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.status-card { border: 1px solid var(--pk-border,#dfe8e2); border-radius: 16px; padding: 16px; background: var(--pk-surface,#fbfdfb); }
.status-card-title { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 14px; }
.status-card-title > span { font-size: 22px; }
.status-card h3 { margin: 0 0 5px; font-size: 17px; }
.status-pill { display: inline-block; border-radius: 999px; padding: 3px 9px; font-size: 12px; font-weight: 700; background: var(--pk-surface-3,#e8efea); }
.status-ok .status-pill, .status-ready .status-pill { background: var(--pk-success-soft,#e2f5e8); color: var(--pk-brand-text,#12632d); }
.status-warning .status-pill, .status-rate_limited .status-pill { background: var(--pk-attention-soft,#fff0cf); color: var(--pk-attention-fg,#805900); }
.status-not_configured .status-pill { background: var(--pk-surface-3,#edf0ee); color: var(--pk-text-muted,#59645e); }
.status-row { display: grid; grid-template-columns: 1fr; gap: 2px; padding: 8px 0; border-top: 1px solid var(--pk-border,#e8eeea); }
.status-row span { color: var(--pk-text-muted,#6a766f); font-size: 12px; }
.status-row strong { overflow-wrap: anywhere; font-size: 14px; }
.status-modal-actions { display: flex; gap: 9px; justify-content: flex-end; flex-wrap: wrap; margin-top: 18px; }
.status-loading { grid-column: 1 / -1; padding: 35px; text-align: center; color: var(--pk-text-muted,#6b786f); }
body.modal-open { overflow: hidden; }
.friendly-error { display: grid; gap: 3px; }
.friendly-error span { overflow-wrap: anywhere; }
@media (max-width: 760px) {
  .status-grid { grid-template-columns: 1fr; }
  .status-modal-card { padding: 16px; border-radius: 16px; }
}

/* v1.80 intelligence */
.smart-overview{margin:18px 0 22px;padding:18px;border:1px solid var(--pk-border,#dbe8df);border-radius:18px;background:var(--pk-surface,#fbfdfb)}
.smart-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:12px}.smart-head h2{margin:0}.smart-head p{margin:3px 0 0;color:var(--pk-text-muted,#69766e)}
.smart-count{display:grid;place-items:center;min-width:38px;height:38px;border-radius:50%;background:var(--pk-surface-3,#e7f3ea);font-weight:800}
.priority-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.priority-item{display:grid;gap:4px;padding:12px;border-radius:13px;text-decoration:none;color:inherit;border-left:5px solid #d5a11e;background:var(--pk-attention-soft,#fff8e7)}.priority-critical{border-left-color:#c94141;background:var(--pk-critical-soft,#fff0f0)}.priority-item span,.priority-item small{color:var(--pk-text-muted,#66736b)}.smart-ok{padding:11px;border-radius:12px;background:var(--pk-success-soft,#eaf7ee);color:var(--pk-brand-text,#176534)}
.health-score{margin-left:auto;display:grid;place-items:center;min-width:50px;height:44px;padding:0 6px;border-radius:12px;background:var(--pk-surface-3,#edf5ef);font-weight:800;font-size:16px}.health-score small{font-size:9px;font-weight:600;color:var(--pk-text-muted,#68756d)}
.smartline{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.smartline span{font-size:11px;padding:4px 7px;border-radius:999px;background:var(--pk-surface-3,#f1f4f2);color:var(--pk-text-muted,#536159)}.quality-good{background:var(--pk-success-soft,#e6f5ea)!important;color:var(--pk-brand-text,#176333)!important}.quality-attention{background:var(--pk-attention-soft,#fff2d5)!important;color:var(--pk-attention-fg,#795700)!important}.quality-poor{background:var(--pk-critical-soft,#ffe6e6)!important;color:var(--pk-critical-fg,#8c2929)!important}


/* v1.81 OpenPlantbook cooldown controls */
.opb-control-panel {
  margin-top: 18px; padding: 14px; border: 1px solid var(--pk-border,#e3e9e5); border-radius: 14px;
  background: var(--pk-surface-2,#f8faf8); display: flex; justify-content: space-between; gap: 16px; align-items: center;
}
.opb-control-panel p { margin: 4px 0 0; color: var(--pk-text-muted,#657168); font-size: 13px; max-width: 560px; }
.opb-control-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
@media (max-width: 760px) {
  .opb-control-panel { align-items: stretch; flex-direction: column; }
  .opb-control-actions { justify-content: stretch; }
  .opb-control-actions button { flex: 1 1 auto; }
}

/* v1.82 About + smarter profile cache */
.about-button{margin-left:8px}.about-modal[hidden]{display:none}.about-modal{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:18px}
.about-backdrop{position:absolute;inset:0;background:rgba(14,25,18,.56);backdrop-filter:blur(3px)}
.about-card{position:relative;width:min(980px,96vw);max-height:88vh;overflow:auto;background:var(--pk-surface,#fff);border-radius:20px;padding:22px;box-shadow:0 24px 80px rgba(0,0,0,.28)}
.about-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;border-bottom:1px solid var(--pk-border,#e4ebe6);padding-bottom:14px}.about-head h2{margin:0}.about-head p{margin:5px 0 0;color:var(--pk-text-muted,#6b786f)}.about-head small{font-size:.55em}
.about-close{font-size:26px;line-height:1;width:38px;height:38px;border-radius:50%}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:18px}.about-grid h3{margin-top:0}
.feature-list{margin:0;padding-left:20px}.feature-list li{margin:7px 0;line-height:1.35}.feature-list.done li::marker{content:"✓  "}.feature-list.planned li::marker{content:"○  "}
.about-foot{margin-top:18px;padding-top:13px;border-top:1px solid var(--pk-border,#e4ebe6);color:var(--pk-text-muted,#66736b);font-size:12px}
.profile-cache-summary{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.profile-cache-summary span{padding:7px 10px;border-radius:999px;background:var(--pk-surface-3,#edf4ef);font-size:12px}
@media(max-width:760px){.about-grid{grid-template-columns:1fr}.about-card{padding:16px}.about-button{margin-left:0}}


/* v1.83: product-oriented Remote Live integration */
.topbar-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.live-top-button{border:0;background:var(--pk-brand,#177b45);color:#fff;border-radius:10px;padding:11px 16px;font-weight:800;cursor:pointer}
.live-top-button:disabled{opacity:.65;cursor:wait}
.section-kicker{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--pk-text-muted,#68776e);margin:6px 0 8px}
.live-dashboard-panel{scroll-margin-top:16px;margin:18px 0 22px;padding:22px;border-radius:20px;background:linear-gradient(145deg,#174f35,#0b2f20);color:#fff;box-shadow:0 10px 30px rgba(11,47,32,.14)}
.live-dashboard-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.live-dashboard-head h2{font-size:29px;margin:14px 0 2px}.live-dashboard-head p{margin:0;color:#d2e2d7;font-style:italic}
.live-badge{display:inline-flex;background:#2fa763;border-radius:999px;padding:7px 11px;font-size:11px;font-weight:900;letter-spacing:.04em}
.live-head-state{text-align:right;display:grid;grid-template-columns:auto auto;align-items:center;gap:3px 7px}.live-head-state small{grid-column:1/-1;color:#c4d5ca;font-size:10px}
.live-dot{width:10px;height:10px;border-radius:50%;background:#b8c8bf}.live-dot.is-live,.live-dot.is-final{background:#5ce38d}.live-dot.is-waiting{background:#f3c261}.live-dot.is-error{background:#ff7d7d}
.live-message{margin:18px 0 14px;padding:11px 13px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);border-radius:10px;color:#dfeae3;font-size:12px}
.live-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.live-metric{min-width:0;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.055);border-radius:14px;padding:13px;overflow:hidden}
.live-metric-title{display:flex;align-items:center;gap:6px;font-size:12px}.live-metric-title strong{white-space:nowrap}.live-metric-title em{margin-left:auto;font-style:normal;font-size:9px;font-weight:900;padding:3px 6px;border-radius:999px;background:rgba(255,255,255,.11)}
.live-metric.is-good .live-metric-title em{background:rgba(70,205,123,.22);color:#baf2cf}.live-metric.is-low .live-metric-title em,.live-metric.is-high .live-metric-title em{background:rgba(230,165,58,.25);color:#ffe3a9}.live-metric.is-invalid .live-metric-title em{background:rgba(230,80,80,.25);color:#ffc0c0}
.live-reading{display:flex;align-items:baseline;gap:5px;flex-wrap:wrap;margin:15px 0 11px}.live-reading strong{font-size:23px;line-height:1}.live-reading span{font-size:11px;color:#d5e2da;font-weight:700;overflow-wrap:anywhere}
.live-range{display:flex;justify-content:space-between;gap:7px;font-size:10px;color:#bcd0c3}.live-range b{color:#dfe9e3;text-align:right;font-size:10px}
.live-bar{height:6px;border-radius:999px;background:linear-gradient(90deg,#b75b5b 0 27%,#4aa875 38% 68%,#d39a45 78% 100%);margin-top:9px;position:relative}.live-bar u{position:absolute;top:50%;width:12px;height:12px;border:2px solid #e9f2ec;background:#315b46;border-radius:50%;transform:translate(-50%,-50%);text-decoration:none}
.live-footer{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;border-top:1px solid rgba(255,255,255,.12);margin-top:15px;padding-top:13px}.live-footer span{font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:#9fb9aa}.live-footer strong{display:block;margin-top:3px;color:#fff;text-transform:none;letter-spacing:0;font-size:11px}
.live-actions{display:flex;gap:8px;margin-top:14px}.live-actions button{border:0;background:#2fa763;color:#fff;padding:9px 12px;border-radius:9px;font-weight:800;cursor:pointer}.live-actions .secondary-button{background:transparent;border:1px solid rgba(255,255,255,.25);color:#fff}
.live-last-saved{margin:10px 0 0;font-size:10px;color:var(--pk-text-faint,#a9c2b2)}
.collapsible-panel>summary,.history-import-details>summary{cursor:pointer;font-weight:800;color:var(--pk-brand-text,#275c40)}.collapsible-panel>summary{display:flex;justify-content:space-between;gap:10px;align-items:center}.collapsible-panel>summary span{font-size:11px;font-weight:600;color:var(--pk-text-muted,#738078)}
.collapsible-panel[open]>summary{margin-bottom:14px}.history-import-details{margin:12px 0}.history-import-details>summary{font-size:12px}.history-import-details[open] .history-import{margin-top:9px}
@media(max-width:900px){.live-metrics{grid-template-columns:1fr 1fr}.live-footer{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.topbar-actions{width:100%}.live-top-button{flex:1}.live-dashboard-panel{padding:16px}.live-dashboard-head h2{font-size:24px}.live-metrics{grid-template-columns:1fr 1fr}.live-reading strong{font-size:20px}.live-footer{grid-template-columns:1fr 1fr}}

.live-diagnostic-link{display:inline-flex;align-items:center;text-decoration:none}
/* v1.87 data-integrity / safe profile audit */
.profile-audit-results{margin-top:12px;padding:12px 14px;border:1px solid var(--pk-border,#d7e4da);border-radius:12px;background:var(--pk-surface-2,#f7faf7)}.profile-audit-results p{margin:.3rem 0 0;color:var(--pk-text-muted,#68736c);font-size:12px}.opb-safe-note{display:block;margin-top:5px;color:var(--pk-text-muted,#68736c);font-size:11px}.profile-actions form button:disabled{opacity:.55;cursor:not-allowed}
/* v1.87 usability cleanup */
.profile-audit-results>summary,.opb-safety-details>summary{cursor:pointer;font-weight:700;color:var(--pk-text,#173d2b)}
.profile-candidate-list{display:grid;gap:8px;margin-top:12px}.profile-candidate{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;border:1px solid var(--pk-border,#dce6df);border-radius:10px;background:var(--pk-surface,#fff)}.profile-candidate>div{display:grid;gap:2px}.profile-candidate span{font-style:italic;color:var(--pk-text-muted,#59665e);font-size:13px}.profile-candidate small{color:var(--pk-text-muted,#6b776f)}.profile-candidate form{margin:0;flex:0 0 auto}.opb-safety-details{margin-top:12px;color:var(--pk-text-muted,#657168);font-size:13px}.opb-safety-details p{margin:8px 0 0}.about-grid-product{grid-template-columns:1.35fr .9fr}
@media(max-width:760px){.profile-candidate{align-items:stretch;flex-direction:column}.profile-candidate form button{width:100%}.about-grid-product{grid-template-columns:1fr}}


/* v1.88 OpenPlantbook preflight safety */
.opb-preflight-modal[hidden]{display:none}.opb-preflight-modal{position:fixed;inset:0;z-index:1500;display:grid;place-items:center;padding:18px}.opb-preflight-backdrop{position:absolute;inset:0;background:rgba(14,25,18,.62);backdrop-filter:blur(3px)}
.opb-preflight-card{position:relative;width:min(780px,96vw);max-height:90vh;overflow:auto;background:var(--pk-surface,#fff);border-radius:20px;padding:22px;box-shadow:0 24px 80px rgba(0,0,0,.3)}.opb-preflight-head{display:flex;justify-content:space-between;gap:15px;border-bottom:1px solid var(--pk-border,#e1e9e3);padding-bottom:13px}.opb-preflight-head h2{margin:0}.opb-preflight-head p{margin:5px 0 0;color:var(--pk-text-muted,#68756d);font-size:13px}.opb-preflight-body{padding:15px 0}.opb-preflight-identity{display:grid;gap:2px;padding:13px;border-radius:12px;background:var(--pk-surface-3,#edf6ef);border-left:5px solid #2a7a4b}.opb-preflight-identity span,.opb-preflight-grid span{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--pk-text-muted,#6a766e)}.opb-preflight-identity strong{font-size:19px}.opb-preflight-identity em{font-size:13px}.opb-preflight-identity small{color:var(--pk-text-muted,#69756d)}.opb-preflight-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0}.opb-preflight-grid>div{display:grid;gap:3px;border:1px solid var(--pk-border,#dfe8e2);border-radius:11px;padding:11px}.opb-preflight-grid small{color:var(--pk-text-muted,#6a766e)}.opb-preflight-section,.opb-preflight-block{margin:10px 0;padding:11px 13px;border-radius:11px;background:var(--pk-surface-2,#f7faf8);border:1px solid var(--pk-border,#dfe8e2)}.opb-preflight-section ul,.opb-preflight-block ul{margin:7px 0 0;padding-left:19px}.opb-preflight-block{background:var(--pk-attention-soft,#fff4e5);border-color:var(--pk-attention-border,#e9cc91)}.opb-preflight-verdict{display:grid;gap:3px;margin-top:12px;padding:12px 13px;border-radius:11px}.opb-preflight-verdict.is-ready{background:var(--pk-success-soft,#e8f6ec);color:var(--pk-brand-text,#175e35)}.opb-preflight-verdict.is-blocked{background:var(--pk-critical-soft,#fff0e6);color:var(--pk-attention-fg,#7a3f12)}.opb-preflight-verdict span{font-size:12px}.opb-preflight-actions{display:flex;gap:9px;justify-content:flex-end;border-top:1px solid var(--pk-border,#e1e9e3);padding-top:14px;flex-wrap:wrap}.opb-preflight-actions form{margin:0}.opb-preflight-actions button:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:650px){.opb-preflight-grid{grid-template-columns:1fr}.opb-preflight-card{padding:16px}.opb-preflight-actions,.opb-preflight-actions form,.opb-preflight-actions button{width:100%}}

/* v1.92: historical OpenPlantbook errors are visually separated from current protection state */
.opb-historical-note{margin:10px 0;border:1px solid var(--pk-border,#d9e0dc);border-radius:11px;background:var(--pk-surface-2,#fafbf9);padding:10px 13px;color:var(--pk-text-muted,#4f5b54)}
.opb-historical-note>summary{cursor:pointer;font-weight:700}
.opb-historical-note div{margin-top:9px;padding-top:9px;border-top:1px solid var(--pk-border,#e4e9e6)}
.opb-historical-note p{margin:5px 0}
.opb-historical-note small{display:block;color:var(--pk-text-muted,#6b756f);line-height:1.4}

/* v1.92: consistent explicit OpenPlantbook approval action */
.opb-approve-button{border:1px solid var(--pk-brand,#215f3d);background:var(--pk-brand,#215f3d);color:#fff;border-radius:9px;padding:8px 13px;font-weight:800;cursor:pointer;box-shadow:none;font:inherit}
.opb-approve-button:hover:not(:disabled){background:var(--pk-brand-strong,#194c30);border-color:var(--pk-brand,#194c30)}
.opb-approve-button:focus-visible{outline:3px solid rgba(33,95,61,.22);outline-offset:2px}

/* v1.93 navigation + unambiguous EC/nutrient presentation */
.metrics-seven{grid-template-columns:repeat(7,minmax(0,1fr))}
.metric-cell.state-unknown[title^="Salzgehalt / EC"]{background:var(--pk-surface-2,#f5f7f5);border-color:var(--pk-border,#dfe5e1)}
.metric-cell.state-unknown[title^="Salzgehalt / EC"] .state-dot{background:#9aa39d}
.opb-preflight-actions button,.status-modal-actions button,.status-modal-actions a.secondary-button{
  display:inline-flex;align-items:center;justify-content:center;min-height:38px;
  border:1px solid var(--pk-border-strong,#b8c9bd);background:var(--pk-surface,#fff);color:var(--pk-text,#214d35);border-radius:9px;
  padding:8px 13px;font:inherit;font-weight:800;text-decoration:none;cursor:pointer;box-shadow:none
}
.opb-preflight-actions .opb-approve-button{background:var(--pk-brand,#215f3d);color:#fff;border-color:var(--pk-brand,#215f3d)}
.opb-preflight-actions .opb-approve-button:hover{background:var(--pk-brand-strong,#194c30);border-color:var(--pk-brand,#194c30)}
@media(max-width:1100px){.metrics-seven{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){.metrics-seven{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v1.94 — restore readable plant-card metrics and unify header actions */
.topbar{justify-content:space-between}
.topbar-actions{
  margin-left:auto;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:wrap;
}
.topbar-actions form{margin:0;display:flex}
.topbar .topbar-action{
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  height:42px;
  padding:0 16px;
  margin:0;
  border:1px solid rgba(255,255,255,.32);
  border-radius:10px;
  background:#fff;
  color:#173d2b;
  font:inherit;
  font-size:14px;
  line-height:1;
  font-weight:800;
  text-decoration:none;
  white-space:nowrap;
  cursor:pointer;
  box-shadow:none;
}
.topbar .topbar-action:hover{background:#f1f6f2}
.topbar .topbar-action-primary{background:#fff;color:#173d2b}
.topbar .topbar-action:focus-visible{outline:3px solid rgba(255,255,255,.34);outline-offset:2px}

/* Seven meanings do not imply seven tiny columns. Keep the established
   readable metric width and wrap the seventh metric to the next row. */
.metrics.metrics-seven{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.metrics.metrics-seven .metric-cell{
  min-width:0;
  padding:12px;
}
.metrics.metrics-seven .metric-cell span{
  font-size:12px;
  line-height:1.25;
  overflow-wrap:normal;
  word-break:normal;
}
.metrics.metrics-seven .metric-cell strong{
  display:block;
  margin-top:3px;
  font-size:17px;
  line-height:1.15;
  word-break:normal;
  overflow-wrap:normal;
}
.metrics.metrics-seven .metric-cell strong small{
  font-size:10px;
  line-height:1.15;
}
.metrics.metrics-seven .metric-cell em{
  line-height:1.25;
  word-break:normal;
  overflow-wrap:normal;
}

@media(max-width:760px){
  .metrics.metrics-seven{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
  .topbar-actions{margin-left:0;width:100%;justify-content:flex-start}
  .topbar .topbar-action{height:40px;min-height:40px;padding:0 13px}
}

/* v1.95 — coherent application shell, navigation, status and score semantics */

/* One navigation model across overview and care. */
.app-nav{
  display:flex;
  align-items:center;
  gap:6px;
  margin:0 0 16px;
  padding:5px;
  width:max-content;
  max-width:100%;
  border:1px solid var(--pk-border,#dfe7e1);
  border-radius:12px;
  background:var(--pk-surface-2,#f4f7f5);
  overflow-x:auto;
}
.app-nav a{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:36px;
  padding:0 12px;
  border-radius:8px;
  color:var(--pk-text-2,#405047);
  text-decoration:none;
  font-size:13px;
  font-weight:750;
  white-space:nowrap;
}
.app-nav a span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:22px;
  height:22px;
  padding:0 6px;
  border-radius:999px;
  background:var(--pk-surface-4,#e4ebe6);
  color:var(--pk-text-muted,#66736b);
  font-size:11px;
}
.app-nav a:hover{background:var(--pk-surface-3,#e9efeb);color:var(--pk-text,#173d2b)}
.app-nav a.active{background:var(--pk-brand-strong,#173d2b);color:#fff}
.app-nav a.active span{background:rgba(255,255,255,.18);color:#fff}

/* App-level actions are one compact control group, never distributed
   across the full header width. */
.topbar-actions{
  margin-left:auto;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
.topbar-actions form{margin:0;display:flex}
.topbar .topbar-action{
  min-width:auto;
  height:40px;
  min-height:40px;
  padding:0 14px;
  border-radius:9px;
  font-size:13px;
}

/* Overall health is a first-class, explained state instead of a detached
   number plus a separate alarm badge. */
.health-summary{
  margin-left:auto;
  min-width:118px;
  padding:8px 10px;
  border:1px solid var(--pk-border,#dce5df);
  border-radius:12px;
  background:var(--pk-surface-2,#f5f8f6);
}
.health-summary-label{
  display:block;
  margin-bottom:4px;
  color:var(--pk-text-muted,#6d7971);
  font-size:9px;
  line-height:1;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.health-summary-main{
  display:flex;
  align-items:baseline;
  gap:7px;
}
.health-summary-main strong{
  font-size:17px;
  line-height:1;
}
.health-summary-main strong small{
  margin-left:1px;
  color:var(--pk-text-muted,#728078);
  font-size:9px;
  font-weight:700;
}
.health-summary-main>span{
  font-size:11px;
  font-weight:800;
  line-height:1.15;
}
.health-good{border-color:var(--pk-success-border,#cfe7d6);background:var(--pk-surface-3,#edf8f0);color:var(--pk-brand-text,#176438)}
.health-attention{border-color:var(--pk-attention-border,#edd6a1);background:var(--pk-attention-soft,#fff7e7);color:var(--pk-attention-fg,#79560d)}
.health-critical{border-color:var(--pk-critical-border,#efc3c3);background:var(--pk-critical-soft,#fff0f0);color:var(--pk-critical-fg,#9a2d2d)}
.health-unknown{background:var(--pk-surface-3,#f2f4f3);color:var(--pk-text-muted,#66736b)}

/* Assessment cards communicate a categorical state; they do not pretend
   to contain a sensor number. */
.assessment-cell strong{
  font-size:16px!important;
  line-height:1.15!important;
}
.assessment-cell em{
  margin-top:6px!important;
  font-size:9px!important;
  font-weight:700;
  letter-spacing:.02em;
  text-transform:none;
}

/* Plant detail: explain the score before the raw metrics. */
.plant-overview{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px;
  align-items:end;
  margin:2px 0 18px;
  padding:16px 18px;
  border:1px solid var(--pk-border,#dfe7e2);
  border-radius:15px;
  background:var(--pk-surface,#fff);
}
.plant-health{
  display:flex;
  align-items:center;
  gap:13px;
  margin-top:6px;
}
.plant-health-score{
  display:flex;
  align-items:baseline;
  flex:0 0 auto;
  min-width:72px;
}
.plant-health-score strong{font-size:31px;line-height:1}
.plant-health-score small{font-size:11px;color:inherit;font-weight:700}
.plant-health>div:last-child>strong{font-size:16px}
.plant-health p{margin:3px 0 0;color:var(--pk-text-muted,#657269);font-size:12px;line-height:1.35}
.plant-overview-meta{
  min-width:110px;
  padding-left:16px;
  border-left:1px solid var(--pk-border,#e3e9e5);
}
.plant-overview-meta span{display:block;color:var(--pk-text-muted,#718078);font-size:10px;text-transform:uppercase;letter-spacing:.04em}
.plant-overview-meta strong{display:block;margin-top:4px;font-size:14px}

/* Keep card head readable when score/status is present. */
.card-head{align-items:flex-start}
.card-title{min-width:0;flex:1}
.card-title h2,.card-title p{overflow:hidden;text-overflow:ellipsis}
.card-title p{white-space:nowrap}

/* The old standalone alarm and old isolated score styles are no longer used. */
.card-head>.alarm,.card-head>.health-score{display:none}

/* Care page content starts close to navigation and local actions stay local. */
.app-nav + .care-intro{margin-top:0}
.profile-refresh-box{gap:10px}

@media(max-width:760px){
  .app-nav{width:100%;box-sizing:border-box}
  .topbar-actions{width:100%;margin-left:0;justify-content:flex-start}
  .plant-overview{grid-template-columns:1fr;align-items:start}
  .plant-overview-meta{padding:10px 0 0;border-left:0;border-top:1px solid var(--pk-border,#e3e9e5)}
}
@media(max-width:460px){
  .health-summary{min-width:105px}
  .health-summary-main{display:grid;gap:3px}
}

/* v1.96 — frozen FYTA Live Lab v0.72 card design, ported as a unit */
.lab-v072-host{margin:18px 0 22px}
.dashboard-plant-card{position:relative;overflow:hidden;margin:20px 0;border-radius:20px;padding:22px;background:linear-gradient(145deg,#173a29,#102a1e);color:#fff;box-shadow:0 14px 34px #173a2928;border:1px solid #ffffff18}
.dashboard-plant-card:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 88% 8%,#55a86f35,transparent 36%),radial-gradient(circle at 6% 92%,#2d7c5028,transparent 38%);pointer-events:none}
.dashboard-plant-card>*{position:relative;z-index:1}.dashboard-plant-card.waiting{background:linear-gradient(145deg,#445148,#303a33);box-shadow:none}.dashboard-plant-card.live{box-shadow:0 14px 40px #1e6a4338}.dashboard-plant-card.final{background:linear-gradient(145deg,#173a29,#0d2519)}
.plant-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.plant-identity h3{font-size:30px;line-height:1.05;margin:12px 0 5px}.plant-identity p{margin:0;color:#d8e5dc;font-size:15px;font-style:italic}.source-badge{display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;font-size:12px;font-weight:850;letter-spacing:.045em}.source-badge.waiting{background:#ffffff18;color:#eef3ef}.source-badge.verified{background:#2e9b5c;color:#fff;box-shadow:0 0 0 1px #ffffff16 inset}
.plant-live-state{display:grid;grid-template-columns:auto auto;align-items:center;column-gap:8px;text-align:right}.plant-live-state small{grid-column:1/-1;color:#d0ddd4;margin-top:4px}.live-pulse{width:10px;height:10px;border-radius:50%;background:#8b9890}.dashboard-plant-card.live .live-pulse{background:#67dc8c;box-shadow:0 0 0 0 #67dc8c88;animation:livepulse 1.7s infinite}.dashboard-plant-card.final .live-pulse{background:#67dc8c}.dashboard-plant-card.waiting .live-pulse{background:#c1cbc4}@keyframes livepulse{0%{box-shadow:0 0 0 0 #67dc8c88}70%{box-shadow:0 0 0 9px #67dc8c00}100%{box-shadow:0 0 0 0 #67dc8c00}}
.plant-card-message{margin:18px 0 15px;padding:10px 12px;background:#ffffff10;border:1px solid #ffffff13;border-radius:11px;color:#e3ece6;font-size:13px}
.dashboard-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.dashboard-metric{min-height:142px;padding:13px;overflow:hidden;border-radius:15px;background:#ffffff0d;border:1px solid #ffffff25;backdrop-filter:blur(3px)}
.metric-head{display:grid;grid-template-columns:auto 1fr auto;gap:6px;align-items:center;color:#eaf1ec;font-weight:700;font-size:12px}.metric-icon{font-size:16px}.metric-head em{font-size:9px;font-style:normal;text-transform:uppercase;letter-spacing:.05em;padding:3px 5px;border-radius:999px;background:#ffffff12}.dashboard-metric.good .metric-head em{background:#49a86a35;color:#a9edbc}.dashboard-metric.low .metric-head em,.dashboard-metric.high .metric-head em{background:#d9913e35;color:#ffd098}
.metric-reading{display:flex;align-items:baseline;gap:5px;min-width:0;margin:13px 0 11px;flex-wrap:wrap}.metric-value{display:block;font-size:25px;line-height:1.1;white-space:nowrap}.metric-unit{font-size:11px;color:#d8e5dc;font-weight:700}
.metric-range{display:flex;justify-content:space-between;gap:8px;color:#bac9bf;font-size:10px;align-items:flex-start}.metric-range b{color:#dce7df;font-weight:600;text-align:right;max-width:70%;overflow-wrap:anywhere}.metric-track{position:relative;height:7px;border-radius:99px;margin-top:12px;background:linear-gradient(90deg,#b65656 0 24%,#4e9d6b 35% 65%,#d09043 76% 100%);opacity:.85}.metric-track i{position:absolute;top:50%;width:13px;height:13px;border:2px solid #fff;border-radius:50%;background:#162f22;transform:translate(-50%,-50%);box-shadow:0 1px 5px #0008}
.metric-reason{margin-top:10px;font-size:10px;line-height:1.35;color:#ffd2d2}
.dashboard-plant-card.warning{box-shadow:0 14px 40px #a85d2638}.dashboard-metric.invalid{border-color:#ff8f8f;background:#6f242438}.dashboard-metric.invalid .metric-head em{background:#ff666638;color:#ffd1d1}.dashboard-metric.invalid .metric-value{color:#ffd0d0;text-decoration:line-through;text-decoration-thickness:1px}.dashboard-metric.missing{opacity:.7;background:#ffffff08;border-style:dashed}.dashboard-metric.missing .metric-value{color:#bcc7bf}
.source-badge.status-ready{background:#ffffff18;color:#eef3ef}.source-badge.status-waiting{background:#b89226;color:#fff}.source-badge.status-live{background:#2e9b5c;color:#fff}.source-badge.status-final{background:#2e9b5c;color:#fff}.source-badge.status-nodata{background:#c96818;color:#fff;font-weight:800}.source-badge.status-error{background:#c85353;color:#fff}
.live-pulse.status-ready{background:#9aa69f;animation:none;box-shadow:none}.live-pulse.status-waiting{background:#f0c54e;animation:statusPulseYellow 1.05s ease-in-out infinite}.live-pulse.status-live{background:#62dc8c;animation:statusPulseGreen 1.05s ease-in-out infinite}.live-pulse.status-final{background:#62dc8c;animation:none;box-shadow:none}.live-pulse.status-nodata{background:#e97820;animation:none;box-shadow:0 0 0 5px rgba(233,120,32,.18)}.live-pulse.status-error{background:#ef6e6e;animation:none;box-shadow:none}
@keyframes statusPulseYellow{0%{box-shadow:0 0 0 0 rgba(240,197,78,.60)}70%{box-shadow:0 0 0 9px rgba(240,197,78,0)}100%{box-shadow:0 0 0 0 rgba(240,197,78,0)}}@keyframes statusPulseGreen{0%{box-shadow:0 0 0 0 rgba(98,220,140,.60)}70%{box-shadow:0 0 0 9px rgba(98,220,140,0)}100%{box-shadow:0 0 0 0 rgba(98,220,140,0)}}
.live-integration-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}.live-integration-actions button{border:0;background:#2fa763;color:#fff;padding:9px 12px;border-radius:9px;font-weight:800;cursor:pointer}.live-integration-actions .secondary-button,.live-integration-actions a.secondary-button{background:var(--pk-surface,#fff);border:1px solid var(--pk-border-strong,#bdcdc1);color:var(--pk-brand-text,#234e36)}.live-last-saved{margin:10px 0 0;font-size:10px;color:var(--pk-text-muted,#68736c)}
@media(max-width:900px){.dashboard-metrics{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.plant-card-top{flex-direction:column}.plant-live-state{text-align:left}}
@media(max-width:520px){.dashboard-metrics{grid-template-columns:1fr}}

/* v1.97 — Project Memory / data trust foundation */
.memory-hero{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;margin:20px 0;padding:25px;border:1px solid var(--pk-border,#d8e3da);border-radius:18px;background:var(--pk-surface-2,#f7faf8)}.memory-hero h2{margin:4px 0 8px;font-size:28px}.memory-hero p{max-width:850px;color:var(--pk-text-muted,#58655d);line-height:1.55}.eyebrow{font-size:10px;font-weight:900;letter-spacing:.12em;color:var(--pk-brand-text,#47745a)}.memory-stats{display:grid;grid-template-columns:auto auto;gap:4px 10px;align-items:baseline}.memory-stats strong{font-size:27px;color:var(--pk-text,#163d29)}.memory-stats span{font-size:11px;color:var(--pk-text-muted,#66736b)}.memory-stats.inline{display:flex;gap:10px;align-items:baseline;margin-top:14px}.memory-principles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0 25px}.memory-principles div{padding:10px 12px;border-radius:10px;background:var(--pk-surface-3,#edf5ef);color:var(--pk-brand-text,#31523d);font-size:12px}.issue-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.issue-card{border:1px solid var(--pk-border,#d8e0da);border-radius:15px;padding:16px;background:var(--pk-surface,#fff);box-shadow:0 5px 16px #23402e0a}.issue-card.issue-critical{border-left:5px solid #b94c4c}.issue-card.issue-high{border-left:5px solid #cc7a2f}.issue-card.issue-medium{border-left:5px solid #c3a444}.issue-card.resolved{opacity:.78;border-left:5px solid #5b9a70}.issue-head{display:flex;justify-content:space-between;gap:10px}.issue-key,.issue-status{font-size:9px;font-weight:900;letter-spacing:.08em;padding:4px 7px;border-radius:99px;background:var(--pk-surface-3,#eef2ef);color:var(--pk-text-muted,#4c5f53)}.issue-card h3{margin:10px 0 6px;font-size:16px}.issue-card p{margin:0 0 11px;color:var(--pk-text-muted,#56635b);font-size:12px;line-height:1.5}.issue-evidence,.issue-next{display:grid;grid-template-columns:90px 1fr;gap:8px;padding:8px 0;border-top:1px solid var(--pk-border,#edf0ed);font-size:11px}.issue-evidence strong,.issue-next strong{color:var(--pk-brand-text,#365742)}.issue-card footer{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.issue-card footer span{font-size:9px;padding:4px 6px;border-radius:6px;background:var(--pk-surface-2,#f4f6f4);color:var(--pk-text-muted,#647168)}.resolved-issues{margin:22px 0}.resolved-issues>summary{cursor:pointer;font-weight:700;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;padding:8px 0;list-style:none}.resolved-issues>summary::-webkit-details-marker{display:none}.resolved-issues>summary::after{content:"›";font-size:22px;font-weight:500;transition:transform .15s}.resolved-issues[open]>summary::after{transform:rotate(90deg)}.resolved-issues>summary+*{margin-block-start:12px}.issue-grid.compact{margin-top:12px}.memory-foundation{margin:26px 0;padding:20px;border-radius:15px;background:#163d29;color:#fff}.memory-foundation p{color:#dce9e0;max-width:900px;line-height:1.55}.memory-foundation .memory-stats strong{color:#fff}.memory-foundation .memory-stats span{color:#cfddd3}.trust-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 15px}.trust-strip>div{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px solid var(--pk-border,#dbe4dd);border-radius:12px;background:var(--pk-surface-2,#f8faf9)}.trust-strip span{font-size:10px;color:var(--pk-text-muted,#68756d);text-transform:uppercase;font-weight:800;letter-spacing:.05em}.trust-strip strong{font-size:13px;color:var(--pk-brand-text,#294a35)}.trust-strip small{font-size:10px;color:var(--pk-text-muted,#748078)}.sensor-critical{color:var(--pk-critical-fg,#a53f3f)!important}.sensor-attention{color:var(--pk-attention-fg,#a86625)!important}
@media(max-width:760px){.memory-hero{grid-template-columns:1fr}.memory-principles,.issue-grid,.trust-strip{grid-template-columns:1fr}}

/* v1.98 — Projektwerkstatt und Pflegejournal */
.project-section{margin:24px 0}.project-form,.issue-edit{display:grid;gap:12px;padding:16px;border:1px solid var(--pk-border,#dbe4dd);border-radius:14px;background:var(--pk-surface,#fff)}.project-form label,.issue-edit label{display:grid;gap:6px;font-size:12px;font-weight:800;color:var(--pk-text-2,#43534a)}.project-form input,.project-form textarea,.project-form select,.issue-edit input,.issue-edit textarea,.issue-edit select{width:100%;box-sizing:border-box;padding:9px 10px;border:1px solid var(--pk-border-strong,#ccd8d0);border-radius:8px;background:var(--pk-surface,#fff);color:var(--pk-text,#26372e);font:inherit}.form-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.issue-edit{margin-top:12px;padding:12px;background:var(--pk-surface-2,#f8faf9)}.issue-edit .form-row{grid-template-columns:1fr 1fr}.project-tools{display:flex;gap:10px;flex-wrap:wrap}.journal-list{display:grid;gap:10px;margin-bottom:30px}.journal-list article{display:grid;grid-template-columns:minmax(130px,.5fr) minmax(180px,1fr) auto;gap:10px;padding:13px 15px;border:1px solid var(--pk-border,#dbe4dd);border-radius:12px;background:var(--pk-surface,#fff)}.journal-list article p{grid-column:1/-1;margin:0;color:var(--pk-text-muted,#5e6d64)}.journal-list article span{color:var(--pk-text-muted,#69776f);font-size:12px}@media(max-width:760px){.form-row,.issue-edit .form-row,.journal-list article{grid-template-columns:1fr}}
.requirement-create{margin-top:14px}.requirement-create>summary{cursor:pointer;font-weight:800;color:var(--pk-brand-text,#294a35);margin-bottom:10px}


/* v2.00 — kontextbezogene Pflanzenpflege und klare Pflege-Domänen */
.plant-care-section .panel-title-row{align-items:center}.primary-link{display:inline-flex;align-items:center;text-decoration:none;background:var(--pk-brand,#246b45);color:#fff!important;padding:9px 12px;border-radius:9px;font-weight:800}.context-links{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px;font-size:12px}.context-links a{font-weight:700;color:var(--pk-brand-text,#285c3d)}.compact-journal{margin:12px 0}.compact-journal article{grid-template-columns:minmax(120px,.55fr) minmax(150px,1fr) auto}.care-context-main{max-width:900px}.care-context-card{margin-top:20px}.care-context-card h2{margin:5px 0}.context-care-form{margin-top:16px}.context-actions{display:flex;gap:10px;align-items:center}.context-actions .secondary-button{display:inline-flex;text-decoration:none;padding:9px 12px}.journal-list a{color:var(--pk-brand-text,#285c3d);font-weight:700}.section-kicker{display:block;font-size:10px;font-weight:900;letter-spacing:.1em;color:var(--pk-brand-text,#47745a);text-transform:uppercase;margin-bottom:3px}
@media(max-width:760px){.compact-journal article{grid-template-columns:1fr}.context-actions{align-items:stretch;flex-direction:column}.context-actions a,.context-actions button{justify-content:center;text-align:center}}

/* v2.01: consistent care actions and quieter context navigation. */
.primary-button{border:0;background:var(--pk-brand,#246b45);color:#fff;border-radius:9px;padding:10px 15px;font:inherit;font-weight:800;cursor:pointer;box-shadow:none}
.primary-button:hover{background:var(--pk-brand,#1d5939)}.primary-button:focus-visible{outline:3px solid rgba(36,107,69,.22);outline-offset:2px}
.field-help{font-size:11px;font-weight:500;color:var(--pk-text-muted,#718078)}.watering-fields.context-care-form .form-row{grid-template-columns:1fr 1fr}.context-actions{margin-top:2px}
@media(max-width:760px){.context-care-form .form-row{grid-template-columns:1fr}.primary-button{width:100%}}

/* v2.03 — card-header regression fix + sortable measurement table */
/* Keep plant identity readable. Overall state belongs to the same context but
   must never squeeze the plant name into ellipses. */
.card-head{
  display:grid;
  grid-template-columns:72px minmax(0,1fr);
  column-gap:12px;
  row-gap:8px;
  align-items:start;
}
.card-head>.plant-thumb,.card-head>.avatar{grid-column:1;grid-row:1 / span 2}
.card-head>.card-title{grid-column:2;grid-row:1;min-width:0}
.card-title h2{
  overflow:visible;
  text-overflow:clip;
  white-space:normal;
  overflow-wrap:break-word;
  line-height:1.15;
}
.card-title p{max-width:100%}
.card-head>.health-summary{
  grid-column:2;
  grid-row:2;
  margin-left:0;
  min-width:0;
  width:fit-content;
  max-width:100%;
}
.health-summary-main{flex-wrap:wrap}

.plant-table th.sortable-th{padding:0}
.plant-table th.sortable-th>.table-sort-button{
  display:block;
  padding:11px 10px;
  color:inherit;
  text-decoration:none;
  cursor:pointer;
}
.plant-table th.sortable-th>.table-sort-button:hover{background:var(--pk-surface-3,#edf3ee)}
.plant-table th.sortable-th.is-sorted>.table-sort-button{background:var(--pk-surface-3,#e8f1ea);color:var(--pk-text,#173d2b)}
.plant-table th .sort-mark{
  display:inline;
  margin-left:3px;
  color:var(--pk-text-muted,#68736c);
  font-size:11px;
  font-weight:900;
}
.plant-table th.sortable-th.is-sorted .sort-mark{color:var(--pk-text,#173d2b)}

.table-sort-button{width:100%;border:0;background:transparent;font:inherit;font-weight:inherit;text-align:inherit;cursor:pointer;color:inherit}

/* v2.06: transparente Sensorhinweise und korrigierbare Pflegeereignisse */
.sensor-calibration-note{margin:12px 0;padding:12px 14px;border:1px solid #e2c879;border-radius:12px;background:var(--pk-attention-soft,#fff8df);display:grid;gap:4px}
.sensor-calibration-note strong{color:var(--pk-attention-fg,#72520c)}.sensor-calibration-note span{color:var(--pk-text-2,#4d4535)}.sensor-calibration-note small{color:var(--pk-text-muted,#756c5d)}
.care-event-edit{margin-top:10px;border-top:1px solid var(--pk-border,#e5e9e5);padding-top:8px}.care-event-edit>summary{cursor:pointer;font-weight:700;color:var(--pk-brand-text,#315d47)}
.compact-edit-form{margin-top:10px;padding:12px;background:var(--pk-surface-2,#f7faf7);border-radius:10px}.care-event-delete{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-top:8px;padding:10px 12px;border:1px solid var(--pk-critical-border,#f0d0d0);border-radius:10px;background:var(--pk-critical-soft,#fff8f8)}
.danger-button{background:var(--pk-surface,#fff);border:1px solid #c35b5b;color:var(--pk-critical-fg,#9a2e2e);border-radius:9px;padding:9px 12px;font-weight:700;cursor:pointer}.danger-button:hover{background:var(--pk-critical-soft,#fff0f0)}
.opb-running{padding:16px;border-radius:12px;background:var(--pk-surface-3,#eef7f1);border:1px solid var(--pk-success-border,#b9d8c5)}.opb-running strong{display:block;margin-bottom:6px}.opb-running p{margin:6px 0}

/* v2.07 administrator hardware + measurement provenance */
.measurement-provenance{display:flex;flex-wrap:wrap;gap:.45rem .8rem;align-items:center;margin:.55rem 0 .2rem;color:var(--pk-text-muted,#56675f);font-size:.78rem}
.measurement-provenance strong{color:var(--pk-text,#273d32);font-weight:700}
.admin-intro h2{margin:.25rem 0 .35rem}
.hardware-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;margin-top:1rem}
.hardware-summary>div{border:1px solid var(--pk-border,#dfe7df);border-radius:12px;padding:.8rem;background:var(--pk-surface-2,#f8faf8);display:flex;flex-direction:column;gap:.25rem}
.hardware-summary span,.hardware-id{font-size:.78rem;color:var(--pk-text-muted,#617168)}.hardware-summary strong{font-size:1.35rem;color:var(--pk-text,#173f2e)}
.hardware-hub{overflow:hidden}.hardware-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow-wrap:anywhere}
.hardware-plant-list{display:grid;gap:.65rem;margin-top:1rem}.hardware-device{border:1px solid var(--pk-border,#dbe4dc);border-radius:13px;background:var(--pk-surface,#fff);overflow:hidden}
.hardware-device>summary{cursor:pointer;display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.8rem 1rem;background:var(--pk-surface-2,#f8faf8);list-style:none}.hardware-device>summary::-webkit-details-marker{display:none}
.hardware-device>summary>span:first-child{display:flex;flex-direction:column;min-width:0}.hardware-device>summary small{color:var(--pk-text-muted,#65766d);font-weight:400;margin-top:.12rem}.hardware-summary-status{display:flex;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}
.hardware-device-body{padding:1rem}.hardware-subsection{border-top:1px solid var(--pk-border,#e3e9e4);margin-top:1rem;padding-top:1rem}.hardware-subsection h3{margin:0 0 .7rem;font-size:1rem}
.compact-info-grid{margin-top:.65rem}.info-grid>div small{display:block;color:var(--pk-text-muted,#718078);font-weight:400;margin-top:.2rem}.provider-details{margin-top:1rem;border-top:1px solid var(--pk-border,#e3e9e4);padding-top:.8rem}.provider-details>summary{cursor:pointer;font-weight:700;color:var(--pk-brand-text,#315b46)}
@media(max-width:900px){.hardware-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.hardware-device>summary{align-items:flex-start;flex-direction:column}.hardware-summary-status{justify-content:flex-start}}

/* v2.08 hardware overview: topology first, details on demand */
.hardware-hub-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.hardware-hub-head h2{margin-bottom:.15rem}.hub-tech{min-width:12rem}.hub-tech>summary{cursor:pointer;font-weight:700;color:var(--pk-brand-text,#28533f)}.hub-tech[open]{width:100%;max-width:46rem}.hardware-device-attention{border-left:5px solid #d8a632;background:var(--pk-attention-soft,#fffaf0)}.hardware-device-attention>summary{background:var(--pk-attention-soft,#fff7e3)}.hardware-device-focus{outline:3px solid rgba(40,83,63,.28);scroll-margin-top:1rem}.hardware-device-focus>summary{background:var(--pk-surface-3,#edf7f0)}.flag-ok{background:var(--pk-surface-3,#e8f2eb);color:var(--pk-brand-text,#315b45)}.hardware-plant-name strong{font-size:1rem}
@media(max-width:900px){.hardware-hub-head{flex-direction:column}.hub-tech{min-width:0;width:100%}}

/* v2.10 Statistik 2.0: provenance-first, compact administrator detail. */
.stats2-intro{margin-bottom:16px}.stats2-intro>p{max-width:1000px}.stats2-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px;margin-top:12px}.stats2-card{border:1px solid var(--border,#d9dfd7);border-radius:12px;padding:12px;background:var(--card,#fff)}.stats2-card h3{margin:0}.stats2-row{display:grid;gap:2px;padding:8px 0;border-top:1px solid var(--border,#e5e9e4)}.stats2-row>span{font-size:.82rem}.stats2-row>small{opacity:.72}.stats2-suppressed strong{font-weight:600}.stats2-suppressed{opacity:.82}

/* v2.11 — variable profile sources and first auditable Care Engine proposals */
.profile-source-box{margin:12px 0 16px;padding:12px 14px;border:1px solid var(--pk-border,#dfe8e2);border-radius:12px;background:var(--pk-surface-2,#f8faf8)}.profile-source-box>strong,.profile-source-box>span{display:block}.profile-source-box>span{margin-top:4px;font-size:12px;color:var(--pk-text-muted,#68736c)}.profile-source-box .profile-actions{justify-content:flex-start;margin:10px 0 6px}.profile-source-box .profile-actions form{margin:0}.profile-source-box button:disabled{opacity:.55;cursor:default}.care-advice{margin:10px 0 16px;padding:14px;border:1px solid var(--pk-border,#dfe8e2);border-radius:12px;background:var(--pk-surface-2,#f8faf8)}.care-advice h3{margin:4px 0 7px}.care-advice p{margin:5px 0}.care-advice ul{margin:8px 0 0;padding-left:20px}.care-advice-check{border-left:5px solid #c08b28;background:var(--pk-attention-soft,#fff9ed)}.care-advice-wait,.care-advice-observe,.care-advice-paused{border-left:5px solid #78857d}.care-advice-ok{border-left:5px solid #4f8b65}.care-response-list{display:grid;gap:5px;margin-top:8px;font-size:12px}

/* v2.12 transparent profile source catalogue */
.source-catalog-panel{margin:1rem 0;padding:1rem;border:1px solid var(--border,#d8ded8);border-radius:14px;background:var(--panel,#fff)}
.source-catalog-panel>summary{cursor:pointer}
.source-catalog-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.8rem;margin-top:.8rem}
.source-catalog-card,.plant-source-option{border:1px solid var(--border,#d8ded8);border-radius:12px;padding:.8rem;background:rgba(255,255,255,.45)}
.source-catalog-head,.plant-source-option>div:first-child{display:flex;justify-content:space-between;gap:.6rem;align-items:flex-start}
.source-catalog-head span{font-size:.78rem;opacity:.7}
.source-scores{display:flex;flex-wrap:wrap;gap:.35rem;margin:.55rem 0}
.source-scores span,.source-capabilities span{font-size:.75rem;padding:.2rem .4rem;border-radius:999px;background:rgba(120,140,120,.12)}
.source-capabilities{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;margin-top:.55rem}
.plant-source-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.65rem;margin-top:.7rem}
.plant-source-option.active{outline:2px solid currentColor;outline-offset:-2px}
.plant-source-option small{display:block;opacity:.75;margin-top:.25rem}
.active-source-details{margin:.55rem 0}.active-source-details>summary{cursor:pointer}.active-source-details ul{margin:.45rem 0 .2rem;padding-left:1.2rem}

/* v2.19 — Pflegejournal: Pflanze als oberste Hierarchie */
.journal-section-head{gap:16px;align-items:flex-end}.journal-view-switch{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--pk-border,#d7e1da);border-radius:10px;background:var(--pk-surface-2,#f7faf8)}.journal-view-switch a{padding:7px 10px;border-radius:7px;text-decoration:none;color:var(--pk-text-muted,#496057);font-size:12px;font-weight:800}.journal-view-switch a.active{background:var(--pk-surface,#fff);color:var(--pk-brand-text,#255b3d);box-shadow:0 1px 3px rgba(28,57,40,.12)}.journal-plant-groups{display:grid;gap:10px;margin-bottom:30px}.journal-plant-group{border:1px solid var(--pk-border,#dbe4dd);border-radius:14px;background:var(--pk-surface,#fff);overflow:hidden}.journal-plant-group>summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(180px,.8fr) minmax(260px,1.5fr);gap:18px;align-items:center;padding:14px 16px}.journal-plant-group>summary::-webkit-details-marker{display:none}.journal-plant-group>summary:before{content:'▸';font-size:14px;color:var(--pk-brand-text,#356348);margin-right:8px;grid-row:1;align-self:center}.journal-plant-group[open]>summary:before{content:'▾'}.journal-plant-group>summary{grid-template-columns:auto minmax(180px,.8fr) minmax(260px,1.5fr)}.journal-plant-main,.journal-plant-meta{display:grid;gap:3px}.journal-plant-main strong{font-size:16px}.journal-plant-main span,.journal-plant-meta span,.journal-plant-meta small{color:var(--pk-text-muted,#66756c);font-size:12px}.journal-plant-meta{grid-template-columns:auto auto;column-gap:12px}.journal-plant-meta small{grid-column:1/-1}.journal-plant-events{display:grid;gap:8px;padding:0 12px 12px 38px;border-top:1px solid var(--pk-border,#edf1ee);background:var(--pk-surface-2,#fafcfb)}.journal-plant-events .journal-event{margin-top:10px}.journal-event{display:grid;grid-template-columns:minmax(130px,.5fr) minmax(180px,1fr) auto;gap:10px;padding:13px 15px;border:1px solid var(--pk-border,#dbe4dd);border-radius:12px;background:var(--pk-surface,#fff)}.journal-event p{grid-column:1/-1;margin:0;color:var(--pk-text-muted,#5e6d64)}.journal-event span{color:var(--pk-text-muted,#69776f);font-size:12px}.journal-event .care-event-edit{grid-column:1/-1}.journal-event a{color:var(--pk-brand-text,#285c3d);font-weight:700}@media(max-width:760px){.journal-section-head{align-items:stretch}.journal-view-switch{width:100%;box-sizing:border-box}.journal-view-switch a{flex:1;text-align:center}.journal-plant-group>summary{grid-template-columns:auto 1fr}.journal-plant-meta{grid-column:2;grid-template-columns:1fr}.journal-plant-meta small{grid-column:auto}.journal-plant-events{padding-left:12px}.journal-event{grid-template-columns:1fr}}
.journal-events-placeholder{padding:16px 4px;color:var(--pk-text-muted,#718078);font-size:12px}.journal-plant-events>.error{margin-top:12px}


/* v2.20 — Chronologie skaliert über Jahr → Monat → Ereignis */
.journal-year-filter{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:0 0 12px}.journal-year-filter>span{font-size:12px;font-weight:800;color:var(--pk-text-muted,#5e7066);margin-right:4px}.journal-year-filter a{padding:6px 10px;border:1px solid var(--pk-border,#d7e1da);border-radius:8px;text-decoration:none;color:var(--pk-text-muted,#496057);font-size:12px;font-weight:800;background:var(--pk-surface,#fff)}.journal-year-filter a.active{background:var(--pk-surface-3,#eaf3ed);color:var(--pk-brand-text,#24593d);border-color:var(--pk-success-border,#b9d1c1)}.journal-month-groups{display:grid;gap:10px;margin-bottom:30px}.journal-month-group{border:1px solid var(--pk-border,#dbe4dd);border-radius:14px;background:var(--pk-surface,#fff);overflow:hidden}.journal-month-group>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 16px}.journal-month-group>summary::-webkit-details-marker{display:none}.journal-month-group>summary>div{display:grid;gap:3px}.journal-month-group>summary span,.journal-month-group>summary small{font-size:12px;color:var(--pk-text-muted,#68776e)}.journal-month-group>summary:before{content:'▸';color:var(--pk-brand-text,#356348)}.journal-month-group[open]>summary:before{content:'▾'}.journal-month-events{padding:0 12px 12px 38px;border-top:1px solid var(--pk-border,#edf1ee);background:var(--pk-surface-2,#fafcfb)}.journal-month-list{margin:0;padding-top:10px}.journal-month-list .journal-event{margin-bottom:8px}@media(max-width:760px){.journal-month-group>summary{display:grid;grid-template-columns:auto 1fr}.journal-month-group>summary small{grid-column:2}.journal-month-events{padding-left:12px}}

/* v2.21: bounded journal + sensor lifecycle */
.flag-critical{background:var(--pk-critical-soft,#fce9e7);color:var(--pk-critical-fg,#8a2f2a)}.sensor-defect-confirmed{display:grid;gap:.25rem;padding:.8rem 1rem;margin:.7rem 0;border:1px solid var(--pk-critical-border,#e7b6b0);border-radius:10px;background:var(--pk-critical-soft,#fff5f3);color:var(--pk-critical-fg,#67302c)}.sensor-defect-confirmed span{font-size:.86rem;color:var(--pk-critical-fg,#76544f)}.sensor-actions{margin-top:.75rem}.compact-sensor-form{margin-top:.75rem}.sensor-history-list{display:grid;gap:.45rem;margin-top:.65rem}.sensor-history-list>div{display:grid;grid-template-columns:minmax(170px,.7fr) minmax(220px,1fr) minmax(140px,.8fr);gap:.6rem;padding:.55rem .7rem;border:1px solid var(--pk-border,#e1e8e2);border-radius:9px;background:var(--pk-surface-2,#fafcfb)}.sensor-history-list span,.sensor-history-list small{font-size:.78rem;color:var(--pk-text-muted,#617168)}.journal-plant-focus{outline:2px solid rgba(40,83,63,.15)}
.journal-event{grid-template-columns:minmax(120px,.45fr) minmax(220px,1fr) auto;padding:8px 11px;border-radius:9px;align-items:center}.journal-event p{padding-top:2px;font-size:.9rem}.journal-event .care-event-edit{margin-top:0}.journal-event .care-event-edit>summary{font-size:.85rem}.journal-more-wrap{padding:8px 0 2px}.journal-more-button{border:1px solid var(--pk-border-strong,#cbd9cf);background:var(--pk-surface,#fff);border-radius:9px;padding:8px 12px;color:var(--pk-brand-text,#285c3d);font-weight:800;cursor:pointer}.journal-more-button:hover{background:var(--pk-surface-3,#f2f7f3)}
@media(max-width:760px){.sensor-history-list>div{grid-template-columns:1fr}.journal-event{grid-template-columns:1fr}}

/* v2.24: Düngeplanung ist Kontext unterhalb der echten Remote-Live-Sensorkanäle. */
.live-care-plan{grid-column:1/-1;display:grid;grid-template-columns:minmax(180px,.55fr) minmax(260px,1.45fr);gap:8px 18px;align-items:center;padding:12px 14px;border-radius:14px;background:#ffffff0d;border:1px solid #ffffff25;color:#eef5f0}
.live-care-plan-head{display:flex;gap:8px;align-items:center;font-size:12px;font-weight:800}.live-care-plan-head em{font-style:normal;font-size:9px;text-transform:uppercase;letter-spacing:.05em;padding:3px 6px;border-radius:999px;background:#ffffff12}.live-care-plan>strong{font-size:16px;line-height:1.25}.live-care-plan>small{grid-column:2;color:#cad7cf;line-height:1.35}.live-care-plan.attention{border-color:#e2a52e88;background:#8a60191f}.live-care-plan.good .live-care-plan-head em{background:#49a86a35;color:#a9edbc}
@media(max-width:700px){.live-care-plan{grid-template-columns:1fr}.live-care-plan>small{grid-column:1}}

/* v2.26: semantic care queues. Today is deliberately reserved for current action. */
.secondary-care-queues{display:grid;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--pk-border,#e7ece8)}
.care-queue{border:1px solid var(--pk-border,#e3e8e4);border-radius:13px;background:var(--pk-surface,#fbfcfb);padding:11px 12px}
.care-queue-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}
.care-queue-head h3{margin:0;font-size:16px}.care-queue-head p{margin:3px 0 0;color:var(--pk-text-muted,#6b756f);font-size:12px}
.care-queue-head>span{min-width:28px;height:28px;border-radius:999px;display:grid;place-items:center;background:var(--pk-surface-3,#eef3ef);font-weight:700}
.care-queue-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px}
.care-queue-item{display:grid;gap:3px;padding:9px 10px;border-radius:10px;text-decoration:none;color:inherit;background:var(--pk-surface,#fff);border:1px solid var(--pk-border,#e6ebe7)}
.care-queue-item:hover{border-color:var(--pk-border-strong,#cbd8cf);background:var(--pk-surface-2,#f8fbf8)}.care-queue-item span,.care-queue-item small{color:var(--pk-text-muted,#68746c)}.care-queue-item small{font-size:11px}
.care-queue-watch{border-left:4px solid #d7a62a}.care-queue-open{border-left:4px solid #8aa67f}.care-queue-data{border-left:4px solid #8d9ca7}
.priority-observe{border-left-color:#d7a62a;background:var(--pk-attention-soft,#fff8e7)}.priority-info{border-left-color:#8aa67f;background:var(--pk-surface-2,#f6faf4)}
@media (max-width:720px){.care-queue-list{grid-template-columns:1fr}}

/* v2.26.1 canonical care-history bundles */
.journal-bundled-groups{display:grid;gap:12px}.journal-bundle{border:1px solid var(--line,#d7dfd9);border-radius:14px;padding:0 14px;background:rgba(255,255,255,.5)}.journal-bundle>summary{cursor:pointer;display:flex;justify-content:space-between;gap:12px;padding:13px 0}.journal-bundle>.journal-list{padding-bottom:12px}.journal-bundle .journal-event{margin-top:8px}

/* v2.27.0 — systemweite Drill-down-Grammatik: Liste → Auswahl → Detail → Kontextaktion */
.compact-drilldown-list,.care-list{display:grid;gap:10px}.drilldown-item{background:var(--pk-surface,#fff);border:1px solid var(--pk-border,#dbe4dc);border-radius:14px;overflow:hidden}.drilldown-item[open]{box-shadow:0 5px 16px rgba(30,60,40,.06)}.drilldown-summary{font-weight:400;font-size:16px;line-height:1.4;color:#1f2923;list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;min-height:64px}.drilldown-summary::-webkit-details-marker{display:none}.drilldown-summary:hover{background:var(--pk-surface-2,#f8faf8)}.drilldown-primary{display:flex;align-items:center;gap:12px;min-width:0}.drilldown-primary>span{display:grid;gap:3px;min-width:0}.drilldown-primary strong{font-size:16px;font-weight:700}.drilldown-primary small{font-size:12px;font-weight:400;color:var(--pk-text-muted,#6d7971);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drilldown-meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;justify-content:flex-end;font-size:12px;color:var(--pk-text-muted,#647168)}.drilldown-meta>b{font-size:22px;line-height:1;transition:transform .15s}.drilldown-item[open]>.drilldown-summary .drilldown-meta>b{transform:rotate(90deg)}.drilldown-body{border-top:1px solid var(--pk-border,#e5ebe6);padding:16px}.context-actions-top{margin:0 0 14px}.compact-worklist-head{display:flex;justify-content:space-between;align-items:end;gap:18px}.compact-worklist-head h2{margin-bottom:4px}.worklist-search{display:grid;gap:5px;min-width:min(330px,100%);font-size:12px;color:var(--pk-text-muted,#637168)}.worklist-search input{padding:10px 12px;border:1px solid var(--pk-border-strong,#cad6cc);border-radius:10px;background:var(--pk-surface,white);font:inherit}.care-card{padding:0!important;margin-top:0!important}.care-list-summary .plant-thumb{width:48px;height:48px;border-radius:11px;object-fit:cover}.care-card>.drilldown-body .profile-summary{margin-top:0}.source-catalog-panel:not([open]){padding-bottom:0}.source-catalog-panel>summary,.admin-tools-panel>summary{cursor:pointer;display:flex;justify-content:space-between;gap:14px;align-items:center;padding:15px 16px}.admin-tools-panel{border:1px solid var(--pk-border,#dbe4dc);border-radius:14px;background:var(--pk-surface,white)}.admin-tools-panel>summary span{font-size:12px;color:var(--pk-text-muted,#6b776f)}.project-release-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.project-release-overview>div,.requirement-meta-grid>div{display:grid;gap:4px;background:var(--pk-surface-2,#f7f9f7);border-radius:10px;padding:10px}.project-release-overview span,.requirement-meta-grid span{font-size:11px;color:var(--pk-text-muted,#68756d)}.project-release-overview strong,.requirement-meta-grid strong{font-size:13px}.requirement-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:12px 0}.inline-status-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-top:14px}.inline-status-form label{display:grid;gap:4px;font-size:12px}.inline-status-form input,.inline-status-form select{padding:8px 10px;border:1px solid var(--pk-border-strong,#ccd7cf);border-radius:8px;background:var(--pk-surface,white)}.implementation-status{padding:4px 7px;border-radius:999px;background:var(--pk-surface-3,#eef2ef)}.implementation-verified{background:var(--pk-success-soft,#e7f4ea);color:var(--pk-brand-text,#226840)}.implementation-in_progress,.implementation-implemented{background:var(--pk-attention-soft,#fff2d9);color:var(--pk-attention-fg,#73540d)}.implementation-open{background:var(--pk-surface-3,#f1f2f1)}.implementation-deferred,.implementation-superseded{background:var(--pk-surface-3,#ececec);color:var(--pk-text-muted,#666)}.history-chart-wrap{position:relative}.chart-tooltip{position:absolute;z-index:4;display:grid;gap:4px;min-width:210px;padding:10px 12px;border:1px solid var(--pk-border-strong,#cad7cd);border-radius:10px;background:rgba(255,255,255,.96);box-shadow:0 5px 18px rgba(30,60,40,.13);pointer-events:none;font-size:12px}.chart-tooltip strong{margin-bottom:3px}.chart-tooltip span{display:flex;justify-content:space-between;gap:14px}.chart-tooltip b{font-variant-numeric:tabular-nums}.assessment-cell strong{font-size:15px;line-height:1.15;overflow-wrap:normal;word-break:normal}.metrics-six .assessment-cell{min-width:0}.journal-bundle:not([open]){background:var(--pk-surface,#fff)}.journal-bundle>summary{align-items:center}.journal-bundle>summary span{white-space:nowrap}
@media(max-width:760px){.compact-worklist-head{align-items:stretch;flex-direction:column}.worklist-search{min-width:0;width:100%}.drilldown-summary{align-items:flex-start}.drilldown-meta{justify-content:flex-start}.inline-status-form{align-items:stretch;flex-direction:column}.inline-status-form label{width:100%}}
.context-path{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px;padding:8px 10px;border:1px solid var(--pk-border,#dfe6df);border-radius:10px;background:var(--pk-surface,#fff);font-size:12px}.context-path a{color:var(--pk-brand-text,#275c40);text-decoration:none;font-weight:700}.context-path strong{font-size:12px}.context-path-spacer{flex:1}.journal-entry-panel{padding:0}.journal-entry-panel>summary{cursor:pointer;display:flex;justify-content:space-between;gap:12px;padding:15px 17px}.journal-entry-panel>.drilldown-body .project-form{margin:0}
@media(max-width:760px){.context-path-spacer{display:none}.context-path{align-items:flex-start}}

/* v2.27.1 — jederzeit erreichbarer Rücksprung ohne Navigationsballast */
.global-return-nav{position:fixed;right:18px;bottom:18px;z-index:90;display:flex;align-items:center;gap:4px;padding:5px;border:1px solid var(--pk-border-strong,#cfdad1);border-radius:12px;background:rgba(255,255,255,.96);box-shadow:0 5px 18px rgba(28,57,40,.14);backdrop-filter:blur(8px)}
.global-return-nav a,.global-return-nav button{appearance:none;border:0;background:transparent;color:var(--pk-brand-text,#285c3d);text-decoration:none;font:inherit;font-size:12px;font-weight:800;padding:8px 10px;border-radius:8px;cursor:pointer;white-space:nowrap}.global-return-nav a:hover,.global-return-nav button:hover{background:var(--pk-surface-3,#edf5ef)}.global-return-nav button[hidden]{display:none}.global-return-home{border-left:1px solid var(--pk-border,#e1e8e2)!important}.global-return-top{border-left:1px solid var(--pk-border,#e1e8e2)!important}
@media(max-width:620px){.global-return-nav{right:10px;bottom:10px}.global-return-nav a,.global-return-nav button{padding:8px}.global-return-nav span{display:none}}
@media print{.global-return-nav{display:none!important}}

/* v2.28.0 — administration IA and information hierarchy */
.admin-section-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}.admin-section{margin:0}.admin-section-head{display:flex;gap:12px;align-items:flex-start}.admin-section-head h2{margin:0 0 4px}.admin-section-head p{margin:0;color:var(--pk-text-muted,#657168)}.admin-icon{font-size:24px}.admin-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:16px}.admin-setting{display:grid;gap:4px;margin-top:14px;padding:12px;border-radius:10px;background:var(--pk-surface-2,#f7f9f7)}.admin-setting span,.admin-setting small{color:var(--pk-text-muted,#66736b)}.admin-status-summary{display:grid;gap:4px;align-content:center;min-width:150px}.about-overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}.about-overview-grid>section,.about-product-block,.about-technical{padding:14px;border:1px solid var(--pk-border,#e0e7e1);border-radius:12px;background:var(--pk-surface,#fbfcfb)}.about-overview-grid h3,.about-product-block h3{margin:4px 0 8px}.about-overview-grid dl{display:grid;grid-template-columns:max-content 1fr;gap:4px 10px;margin:8px 0 0}.about-overview-grid dt{color:var(--pk-text-muted,#68756d)}.about-overview-grid dd{margin:0;font-weight:600}.about-product-block{margin-top:12px}.about-technical{margin-top:12px}.about-technical>summary{cursor:pointer;font-weight:700}.about-tech-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}.about-tech-grid>div{display:grid;gap:3px;padding:9px;background:var(--pk-surface-3,#f3f6f3);border-radius:8px}.about-tech-grid span{font-size:11px;color:var(--pk-text-muted,#69766e)}.about-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:14px}@media(max-width:800px){.admin-section-grid,.about-overview-grid{grid-template-columns:1fr}.about-tech-grid{grid-template-columns:1fr 1fr}}


/* v2.29.0 — semantic visual hierarchy: equal meaning, equal treatment. */
:root{--ui-control-height:38px;--ui-control-radius:9px;--ui-control-font:13px}
.primary-button,.secondary-button,.danger-button,.topbar-action,.admin-actions button,.admin-actions a{min-height:var(--ui-control-height);border-radius:var(--ui-control-radius);font-size:var(--ui-control-font);line-height:1.15;display:inline-flex;align-items:center;justify-content:center;padding:9px 12px;font-weight:750;box-sizing:border-box}
.admin-actions .primary-button{font-weight:800}.admin-actions{align-items:center}
/* A care plan is not a sensor reading: keep date/status readable but visually quieter. */
.metric-cell.care-plan-cell strong,.assessment-cell .care-plan-value{font-size:14px;line-height:1.22;font-weight:750;white-space:normal;overflow-wrap:normal;word-break:normal}
.metric-cell.care-plan-cell em{font-size:10px;color:var(--pk-text-muted,#718078)}
/* Normality is quiet. Repeated all-clear messages must not compete with actionable states. */
.card .attention-ok{font-size:11px;font-weight:600;opacity:.82}
/* Administration is a utility workspace, not another oversized content hero. */
.admin-hero{padding:18px 20px;margin:16px 0}.admin-hero h2{font-size:24px;margin:.2rem 0 .25rem}.admin-hero p{margin:.2rem 0;line-height:1.45}.admin-section{padding:18px}.admin-section-head h2{font-size:20px}.admin-section-head p{font-size:13px;line-height:1.4}.admin-section .meta{line-height:1.35;margin-bottom:0}
/* About: fewer nested boxes; hierarchy comes from spacing and rules. */
.about-overview-grid>section{background:transparent;border:0;border-top:1px solid var(--pk-border,#e0e7e1);border-radius:0;padding:14px 0}.about-product-block{background:transparent;border:0;border-top:1px solid var(--pk-border,#e0e7e1);border-radius:0;padding:14px 0}.about-technical{background:transparent;border-radius:9px;padding:11px 12px}
@media(max-width:760px){.primary-button,.secondary-button,.danger-button,.topbar-action,.admin-actions button,.admin-actions a{min-height:40px}.admin-hero{padding:16px}}

/* v2.29.0 — source selection is a compact list/detail workspace, not a wall of provider cards. */
.source-catalog-list-panel>summary{display:flex;justify-content:space-between;gap:12px;align-items:center}.source-catalog-list-panel>summary>span{font-size:11px;color:var(--pk-text-muted,#6a776f);font-weight:500}.source-catalog-intro{padding:0 16px 10px}.source-catalog-intro p{margin:.45rem 0}.source-catalog-list{display:grid;border-top:1px solid var(--pk-border,#e1e8e2)}.source-catalog-row{border-bottom:1px solid var(--pk-border,#e5ebe6);background:var(--pk-surface,#fff)}.source-catalog-row>summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 14px;list-style:none}.source-catalog-row>summary::-webkit-details-marker{display:none}.source-catalog-row>summary>span:first-child{display:grid;gap:2px}.source-catalog-row>summary small,.source-row-meta{font-size:11px;color:var(--pk-text-muted,#6a776f)}.source-catalog-row[open]>summary{background:var(--pk-surface-2,#f7faf8)}.source-catalog-row-body{padding:0 14px 14px}.source-catalog-row-body p{margin:.45rem 0}.source-score-line{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0}.source-score-line span{font-size:11px;background:var(--pk-surface-3,#f1f5f2);border-radius:999px;padding:4px 7px}.tertiary-link{font-size:12px;font-weight:700;color:var(--pk-brand-text,#285c3d);text-decoration:none}.tertiary-link:hover{text-decoration:underline}
.profile-source-workspace{padding:12px 14px}.profile-source-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding-bottom:10px;border-bottom:1px solid var(--pk-border,#e1e8e2)}.profile-source-heading>div{display:grid;gap:3px}.profile-source-heading span{font-size:12px;color:var(--pk-text-muted,#68756d)}.source-group-heading{display:grid;gap:2px;margin:12px 0 7px}.source-group-heading small{font-size:11px;color:var(--pk-text-muted,#6d7971)}.plant-source-list{display:grid;border:1px solid var(--pk-border,#dce5de);border-radius:11px;overflow:hidden;background:var(--pk-surface,#fff)}.plant-source-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 11px;border-bottom:1px solid var(--pk-border,#e5ebe6)}.plant-source-row:last-child{border-bottom:0}.plant-source-row.active{background:var(--pk-surface-3,#f1f8f3)}.plant-source-main{display:grid;gap:2px;min-width:0}.plant-source-title{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.plant-source-main>span,.plant-source-main>small{font-size:11px;color:var(--pk-text-muted,#68756d)}.plant-source-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.plant-source-actions form{margin:0}.status-chip{display:inline-flex;align-items:center;border-radius:999px;padding:3px 6px;font-size:10px;font-weight:800}.status-chip-active{background:var(--pk-success-soft,#dff2e5);color:var(--pk-brand-text,#1e6a3e)}.tertiary-button{appearance:none;border:0;background:transparent;color:var(--pk-brand-text,#285c3d);text-decoration:none;font:inherit;font-size:12px;font-weight:750;padding:7px 5px;cursor:pointer;white-space:nowrap}.compact-provider-preview{position:relative}.compact-provider-preview>summary{list-style:none}.compact-provider-preview>summary::-webkit-details-marker{display:none}.provider-preview-body{position:static;width:min(520px,80vw);max-height:360px;overflow:auto;padding:12px;margin-top:6px;border:1px solid var(--pk-border,#d3dfd6);border-radius:10px;background:var(--pk-surface,#fff);box-shadow:none}.provider-preview-body dl{display:grid;grid-template-columns:minmax(100px,.4fr) 1fr;gap:5px 10px;margin:5px 0}.provider-preview-body dt{font-weight:700}.provider-preview-body dd{margin:0}.local-source-group{margin-top:9px;border:1px solid var(--pk-border,#dce5de);border-radius:10px;background:var(--pk-surface,#fbfcfb)}.local-source-group>summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px}.local-source-group>summary span{font-size:11px;color:var(--pk-text-muted,#6a776f)}.local-reference-list{border:0;border-top:1px solid var(--pk-border,#e4ebe5);border-radius:0}.profile-source-workspace .opb-safe-note{margin-top:9px}.profile-source-box .profile-actions{margin:0}
/* Normalize remaining form action buttons into the same control rhythm. */
.care-actions button,.profile-refresh-box button,.history-import button{min-height:var(--ui-control-height);border-radius:var(--ui-control-radius);font-size:var(--ui-control-font);line-height:1.15;padding:9px 12px;font-weight:800;box-sizing:border-box}.profile-refresh-box button,.care-actions button{background:var(--pk-brand,#246b45)}.profile-refresh-box button:hover,.care-actions button:hover{background:var(--pk-brand,#1d5939)}
@media(max-width:760px){.plant-source-row{grid-template-columns:1fr}.plant-source-actions{justify-content:flex-start}.provider-preview-body{width:100%;max-height:none;margin-top:6px}.source-catalog-row>summary{align-items:flex-start}.source-row-meta{white-space:nowrap}}

/* v2.29.1 — finish the v2.29 collection and control normalization contract. */
/* One control grammar: native buttons and links use the same typography, height and border model. */
button,.primary-button,.secondary-button,.danger-button,.topbar-action,.tertiary-button{font-family:inherit}
.secondary-button,.about-actions button,.admin-actions button,.admin-actions a,.status-modal-actions button,.status-modal-actions a.secondary-button{
  min-height:var(--ui-control-height);border:1px solid var(--pk-border-strong,#bfd0c3);border-radius:var(--ui-control-radius);background:var(--pk-surface,#fff);color:var(--pk-brand-text,#285c3d);
  padding:9px 12px;font-size:var(--ui-control-font);line-height:1.15;font-weight:700;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;cursor:pointer
}
.about-actions button{color:var(--pk-text,#27322b)}.topbar .topbar-action{font-size:var(--ui-control-font);font-weight:700;height:var(--ui-control-height);min-height:var(--ui-control-height);padding:0 13px}
.admin-actions .primary-button{font-size:var(--ui-control-font);font-weight:750}
/* Repeated domain objects are lists first. Detail lives on the selected object's page. */
.collection-workspace{margin-top:18px;background:var(--pk-surface,#fff);border:1px solid var(--pk-border,#dfe6df);border-radius:16px;padding:18px}
.collection-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:12px}.collection-heading h2{margin:2px 0 3px;font-size:22px}.collection-heading p{margin:0;color:var(--pk-text-muted,#68756d);font-size:13px}.collection-count{display:grid;place-items:center;min-width:34px;height:34px;padding:0 9px;border-radius:999px;background:var(--pk-surface-3,#edf4ef);font-weight:800;color:var(--pk-brand-text,#315d42)}
.plant-compact-list{display:grid;border:1px solid var(--pk-border,#dfe7e1);border-radius:12px;overflow:hidden}.plant-list-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 12px;background:var(--pk-surface,#fff);color:inherit;text-decoration:none;border-bottom:1px solid var(--pk-border,#e5ebe6)}.plant-list-row:last-child{border-bottom:0}.plant-list-row:hover{background:var(--pk-surface-2,#f7faf8)}.plant-list-identity{display:flex;align-items:center;gap:11px;min-width:0}.plant-list-identity>span:last-child{display:grid;gap:2px;min-width:0}.plant-list-identity strong{font-size:15px}.plant-list-identity small{font-size:11px;color:var(--pk-text-muted,#6a766f);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plant-list-thumb,.plant-list-avatar{width:40px;height:40px;border-radius:9px;object-fit:cover;flex:0 0 auto}.plant-list-avatar{display:grid;place-items:center;background:var(--pk-surface-3,#e8f3e9)}.plant-list-state{display:grid;grid-template-columns:auto auto;column-gap:10px;align-items:center;text-align:right;min-width:120px}.plant-list-state small{font-size:10px;color:var(--pk-text-muted,#718078)}.plant-list-state strong{font-size:13px}.plant-list-state b{grid-column:2;grid-row:1/3;font-size:21px;font-weight:500;color:var(--pk-text-muted,#758279)}
.room-drilldown-list{display:grid;border:1px solid var(--pk-border,#dfe7e1);border-radius:12px;overflow:hidden}.room-drilldown{background:var(--pk-surface,#fff);border-bottom:1px solid var(--pk-border,#e5ebe6)}.room-drilldown:last-child{border-bottom:0}.room-drilldown>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 14px}.room-drilldown>summary::-webkit-details-marker{display:none}.room-drilldown>summary:hover{background:var(--pk-surface-2,#f7faf8)}.room-drilldown>summary>span{display:grid;gap:2px}.room-drilldown>summary small{font-size:11px;color:var(--pk-text-muted,#6b776f)}.room-drilldown>summary>b{font-size:21px;font-weight:500;transition:transform .15s}.room-drilldown[open]>summary>b{transform:rotate(90deg)}.room-drilldown>.plant-compact-list{margin:0 12px 12px;border-radius:9px}
@media(max-width:650px){.collection-heading{align-items:flex-start}.plant-list-state{min-width:auto}.plant-list-state small{display:none}}

/* v2.33.1: sichtbarer Lifecycle für Verwaltungsaktionen */
.admin-action-result{display:grid;gap:4px;margin-top:14px;padding:12px 14px;border-radius:12px;border:1px solid var(--pk-border,#d8e1da);background:var(--pk-surface-2,#f7f9f7)}
.admin-action-result strong{font-size:14px}.admin-action-result span,.admin-action-result small{font-size:12px;color:var(--pk-text-muted,#5f6d65)}
.admin-action-result.success{border-color:var(--pk-success-border,#b9d8c3);background:var(--pk-surface-3,#edf7f0)}.admin-action-result.warning{border-color:var(--pk-attention-border,#e5d39a);background:var(--pk-attention-soft,#fff8de)}.admin-action-result.error{border-color:var(--pk-critical-border,#e0b4b4);background:var(--pk-critical-soft,#fff0f0)}
button[aria-busy="true"]{cursor:progress;opacity:.72}
.deployment-log{margin-top:6px}.deployment-log>summary{cursor:pointer;color:var(--pk-text-muted,#53665b)}.deployment-log pre{max-height:260px;overflow:auto;white-space:pre-wrap;font-size:11px;background:var(--pk-surface-3,#f3f5f3);padding:10px;border-radius:8px}.deployment-running strong{font-size:1.05rem}
/* v2.33.4 — role-aware product info */
.about-instance-block{margin:.85rem 0;padding:1rem;border:1px solid var(--pk-border,#dfe8e1);border-radius:12px;background:var(--pk-surface-2,#f7faf7)}.about-instance-block h3{margin:.2rem 0 .65rem}.about-runtime-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.55rem}.about-runtime-grid>div{padding:.65rem .75rem;border-radius:9px;background:var(--pk-surface,#fff)}.about-runtime-grid span{display:block;font-size:.75rem;color:var(--pk-text-muted,#6b756f)}.about-runtime-grid strong{display:block;margin-top:.15rem;font-size:.9rem}

/* v2.34.1 Offline-Pflege: explicit plan, separate from sensor care. */
.offline-care-intro p{max-width:900px}.offline-list{display:grid;gap:0;border:1px solid var(--pk-border,#dce5de);border-radius:11px;overflow:hidden}.offline-list .plant-list-row{border-radius:0;border:0;border-bottom:1px solid var(--pk-border,#e5ebe6)}.offline-list .plant-list-row:last-child{border-bottom:0}.offline-list-state{display:grid;grid-template-columns:auto auto;gap:2px 12px;align-items:center;text-align:right}.offline-list-state small,.offline-list-state span{font-size:11px;color:var(--pk-text-muted,#68756d)}.offline-list-state strong{font-size:13px}.offline-list-state b{grid-column:2;grid-row:1/4;align-self:center}.offline-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0}.offline-status-grid>div{display:grid;gap:3px;padding:10px;border:1px solid var(--pk-border,#dfe7e1);border-radius:9px;background:var(--pk-surface,#fbfcfb)}.offline-status-grid span{font-size:11px;color:var(--pk-text-muted,#68756d)}.offline-instruction{padding:10px 12px;border-left:3px solid #96b49f;background:var(--pk-surface-2,#f7faf7)}.offline-done-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0}.offline-done-form small{color:var(--pk-text-muted,#68756d)}.offline-config{margin-top:12px;border-top:1px solid var(--pk-border,#e0e7e1);padding-top:10px}.offline-config>summary{cursor:pointer;font-weight:750}.toggle-row{display:flex!important;align-items:flex-start;gap:9px}.toggle-row input{width:auto!important;margin-top:3px}.toggle-row span{display:grid;gap:2px}.toggle-row small{font-weight:400;color:var(--pk-text-muted,#68756d)}@media(max-width:760px){.offline-status-grid{grid-template-columns:1fr 1fr}.offline-list-state{text-align:left}.offline-list-state b{display:none}}

.offline-event-reference{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--pk-border,#dfe7e1);border-radius:9px;background:var(--pk-surface,#fbfcfb)}.offline-event-reference span,.offline-event-reference small{font-size:11px;color:var(--pk-text-muted,#68756d)}

/* v2.34.2 — Offline care: season and care phase are independent, visible dimensions. */
.offline-phase-form{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:10px 12px;margin:10px 0;border:1px solid var(--pk-border,#dfe7e1);border-radius:9px;background:var(--pk-surface,#fbfcfb)}.offline-phase-form>span{display:grid;gap:2px}.offline-phase-form small{color:var(--pk-text-muted,#68756d);font-weight:400}.segmented-actions{display:flex;border:1px solid var(--pk-border-strong,#cfdad2);border-radius:8px;overflow:hidden}.segmented-actions button{border:0;border-radius:0;background:var(--pk-surface,#fff);color:var(--pk-text-2,#415047);padding:7px 11px}.segmented-actions button+button{border-left:1px solid var(--pk-border-strong,#cfdad2)}.segmented-actions button.active{background:var(--pk-surface-3,#eaf2ec);color:var(--pk-brand-text,#245b38);font-weight:750}.offline-rule-matrix{display:grid;grid-template-columns:minmax(72px,.7fr) repeat(2,minmax(110px,1fr));gap:7px;align-items:center;margin:8px 0}.offline-rule-head,.offline-rule-label{font-size:12px;font-weight:750;color:var(--pk-text-muted,#536158)}.offline-rule-head{text-align:center}.offline-rule-matrix label{margin:0}.offline-rule-matrix input{width:100%}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:760px){.offline-phase-form{align-items:flex-start;flex-direction:column}.offline-rule-matrix{grid-template-columns:68px repeat(2,minmax(0,1fr))}}

/* v2.34.18 — readable restore-point cards; technical identifiers stay secondary */
.restore-point-list{display:grid;gap:10px;margin-top:12px}.restore-point{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 14px;padding:12px;border:1px solid var(--pk-border,#dde5df);border-radius:10px;background:var(--pk-surface,#fbfcfb)}.restore-point.is-selected{border-width:2px}.restore-point-main{min-width:0;display:grid;gap:5px}.restore-point-time{font-size:1.02rem}.restore-point-kind{margin-left:8px;color:var(--pk-text-muted,#68756d);font-size:.88rem}.restore-point-status{font-size:.9rem;color:var(--pk-text-muted,#536158)}.restore-point-action{display:flex;align-items:center}.restore-point-action form{margin:0}.selected-badge{font-weight:750;white-space:nowrap}.restore-point-details{grid-column:1/-1;margin-top:2px}.restore-point-details>summary{cursor:pointer;color:var(--pk-text-muted,#5e6b63);font-size:.9rem}.restore-point-details dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:5px 10px;margin:9px 0 0;font-size:.88rem}.restore-point-details dt{color:var(--pk-text-muted,#68756d)}.restore-point-details dd{margin:0;min-width:0;overflow-wrap:anywhere}.restore-point-details code{white-space:normal;overflow-wrap:anywhere}@media(max-width:620px){.restore-point{grid-template-columns:1fr}.restore-point-action{justify-content:flex-start}.restore-point-details{grid-column:1}.restore-point-details dl{grid-template-columns:1fr}.restore-point-kind{display:block;margin:2px 0 0}}

/* v2.34.20 — lokale Restore-Zeit als primäre Orientierung; Prüfdaten bleiben in den Details */
.selected-restore-details,.restore-target-identity{margin-top:8px}.selected-restore-details>summary,.restore-target-identity>summary{cursor:pointer;color:var(--pk-text-muted,#5e6b63);font-size:.88rem}.selected-restore-details dl,.restore-target-identity dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:5px 10px;margin:8px 0 0;font-size:.86rem}.selected-restore-details dd,.restore-target-identity dd{margin:0;min-width:0;overflow-wrap:anywhere}.selected-restore-details code,.restore-target-identity code{white-space:normal;overflow-wrap:anywhere}

/* v2.34.20 — compact administration rhythm */
#production-backup .admin-actions{margin-top:12px;margin-bottom:10px}
#production-backup .restore-points{margin-top:0}
#production-backup .restore-points+.admin-setting{margin-top:14px}
#production-backup .admin-setting+.admin-actions{margin-top:12px}
#production-backup .admin-actions+.compact-disclosure{margin-top:10px}
#production-backup .compact-disclosure+.compact-disclosure{margin-top:10px}
#production-backup .selected-restore-details{margin-top:6px}
#production-backup .restore-point-details{margin-top:4px}

/* v2.34.23 — local production access */
.login-page{padding:0;min-height:100vh;background:var(--pk-bg,#f4f7f4)}.login-shell{margin:0 auto;min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(420px,100%);background:var(--pk-surface,#fff);border:1px solid var(--pk-border,#dce5de);border-radius:16px;padding:28px;box-shadow:0 12px 34px rgba(28,57,40,.10)}.login-brand{font-size:32px}.login-card h1{margin:8px 0 4px}.login-card>p{margin:0 0 18px;color:var(--pk-text-muted,#68756d)}.login-form{display:grid;gap:9px;margin-top:16px}.login-form label{font-weight:750}.login-form input,.login-form select{width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid var(--pk-border-strong,#cbd7ce);border-radius:9px;background:var(--pk-surface,#fff);color:inherit;font:inherit;min-height:44px}.login-form .primary-button{margin-top:5px}.login-meta{font-size:12px;margin-top:14px!important}.access-form{display:grid;gap:10px;margin-top:12px}.access-form label{display:grid;gap:5px;font-weight:700}.access-form label small{font-weight:400;color:var(--pk-text-muted,#68756d)}.access-form input{width:100%;box-sizing:border-box;padding:9px 10px;border:1px solid var(--pk-border-strong,#cbd7ce);border-radius:8px;font:inherit}.logout-form{margin:0}

/* v2.34.28 · ehrlicher, phasenbasierter Deployment-Fortschritt */
.deployment-progress{height:10px;border-radius:999px;background:var(--pk-surface-4,#e7ece8);overflow:hidden;margin:9px 0 7px}.deployment-progress>span{display:block;height:100%;background:currentColor;transition:width .25s ease}.deployment-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px;margin:8px 0 12px}.deployment-step{display:flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid var(--pk-border,#dbe4dc);border-radius:9px;font-size:12px;color:var(--pk-text-muted,#6a756e);background:var(--pk-surface,#fff)}.deployment-step.done{color:var(--pk-brand-text,#315d40);background:var(--pk-surface-2,#f5f9f5)}.deployment-step.current{color:var(--pk-text,#263f2e);border-color:#9eb4a4;background:var(--pk-surface-2,#f8faf8);font-weight:600}.deployment-finish-times{display:grid;gap:2px;margin-top:7px;font-variant-numeric:tabular-nums}.deployment-finish-times span{display:block;font-size:12px;color:var(--pk-text-muted,#526159)}
.offline-source-setup{display:flex;gap:1rem;align-items:center;justify-content:space-between;padding:1rem;border:1px solid var(--line,#d8e2dc);border-radius:12px;margin:.75rem 0}.offline-source-setup div{display:grid;gap:.3rem}.offline-source-setup small{max-width:70ch}/* v2.34.34: due time-based care is a decision, not an implicit watering command. */
.offline-decision-actions{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap;margin:12px 0}.offline-decision-actions .offline-done-form{margin:0;display:grid;gap:5px;max-width:420px}.offline-decision-actions .offline-done-form small{max-width:52ch}

/* Shared product help uses the existing about-card/head/action grammar. */
dialog.help-dialog{border:0;margin:auto;max-height:88dvh;width:min(880px,94vw);box-sizing:border-box;color:inherit}
dialog.help-dialog:not([open]){display:none}
.help-dialog::backdrop{background:rgba(0,0,0,.45)}
.help-toolbar{position:sticky;top:0;background:var(--pk-surface,#fff);z-index:1;padding:8px 0}
.help-content{line-height:1.6}.help-content [hidden],[data-help-page] [hidden]{display:none}
.help-content h3{scroll-margin-top:120px}.help-content li{margin:.45em 0}
[data-help-root] :focus-visible{outline:3px solid var(--pk-focus,#246d48);outline-offset:3px}
[data-help-root] h2:focus,[data-help-root] h3:focus{outline:2px solid var(--pk-focus,#246d48);outline-offset:3px}
.help-context{font-size:.9rem;margin:.4rem 0;display:inline-block}
@media(max-width:760px){dialog.help-dialog{width:96vw;max-height:94dvh;padding:16px}.help-toolbar{top:0}.help-dialog .about-actions{display:flex;flex-wrap:wrap;gap:8px}}

[data-help-search]{display:block;width:100%;box-sizing:border-box;margin-top:6px;padding:10px 12px;border:1px solid #9baea2;border-radius:8px;font:inherit}
[data-help-root] a{color:var(--pk-brand-text,#245e40)}

dialog.help-dialog{padding:0}.help-dialog .help-toolbar{padding:16px 22px;background:var(--pk-surface,#fff)}.help-dialog .help-content{padding:0 22px 22px}
@media(max-width:760px){.help-dialog .help-toolbar{padding:12px 16px}.help-dialog .help-content{padding:0 16px 16px}}

/* Shared working-context grammar: navigation, then contextual help. */
.page-help{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:0 0 16px}
.help-context{display:inline-flex;align-items:center;min-height:32px;box-sizing:border-box;padding:4px 8px;margin:4px 8px 4px 0;border-radius:6px;color:var(--pk-brand-text,#245e40);text-decoration:underline;text-underline-offset:3px;font-size:.9rem;line-height:1.4}
.help-context:hover{background:var(--pk-surface-4,#e3eee7);color:var(--pk-text,#173d2b)}
.page-help .help-context{margin:0}
.workspace-guidance{margin:0 0 16px;padding:8px 12px;border:1px solid var(--pk-border-strong,#cfdad1);border-radius:8px;max-width:80ch}
.workspace-guidance>summary{cursor:pointer;min-height:32px;line-height:32px;font-weight:700;color:var(--pk-brand-text,#245e40)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--pk-focus,#246d48);outline-offset:3px}
.skip-link{position:fixed;top:8px;left:8px;z-index:10000;transform:translateY(-160%);padding:10px 16px;background:#fff;color:#173d2b;border:2px solid #246d48;border-radius:6px}
.skip-link:focus{transform:none}
main{scroll-margin-top:16px}
body{padding-bottom:72px}
@media(max-width:760px){.app-nav{width:100%;flex-wrap:wrap;overflow:visible}.app-nav a{min-height:40px;padding:0 10px}.help-context{min-height:40px}.topbar-actions{flex-wrap:wrap}.page-help{gap:4px 8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
.about-card,.status-modal-card{box-sizing:border-box;max-width:100%;max-height:calc(100dvh - 36px)}
html{scroll-padding-bottom:80px}
.password-field{position:relative;display:block}.password-field input{padding-right:44px}.password-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:34px;height:34px;padding:0;border:0;border-radius:7px;background:transparent;cursor:pointer;font:inherit;line-height:1}.password-toggle:hover{background:var(--pk-surface-3,#eef3ef)}.password-toggle:focus-visible{outline:2px solid currentColor;outline-offset:1px}

/* v2.35.14 sensor capability semantics */
.flag-muted{background:var(--pk-surface-3,#eef1ef)!important;color:var(--pk-text-muted,#66716a)}.capability-list{display:flex;flex-wrap:wrap;gap:.45rem;margin:.7rem 0}.sensor-model .project-form{max-width:42rem}.dashboard-metric.unknown .metric-reason{color:#66716a}

.form-checkbox,.fyta-sync-checkbox{display:flex!important;grid-template-columns:none!important;flex-direction:row!important;align-items:center;gap:8px!important}.care-form .form-checkbox input[type="checkbox"],.project-form .fyta-sync-checkbox input[type="checkbox"]{width:auto;flex:0 0 auto;margin:0;padding:0}.fyta-sync-checkbox span{display:inline}

/* v2.35.30 — readable structured project issues */
.issue-evidence span{white-space:pre-line}.issue-description{white-space:pre-line}.issue-edit textarea{resize:vertical;min-height:74px;line-height:1.45}

/* Plant-first detail hierarchy: current FYTA state and care stay primary. */
.cloud-data-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin:.8rem 0 .55rem}
.cloud-data-head form{margin:0;flex:0 0 auto}
.live-compare-panel{margin-top:1rem}
.hardware-entry .panel-title-row{align-items:center}
@media (max-width:720px){
  .cloud-data-head,.hardware-entry .panel-title-row{align-items:stretch;flex-direction:column}
  .cloud-data-head form button,.hardware-entry .secondary-button{width:100%;text-align:center}
}

/* v2.35.36: user-facing next-watering forecast in plant care context */
.care-next-watering{margin:14px 0 12px;padding:13px 15px;border:1px solid var(--pk-border,#d8e4da);border-left:5px solid #4f8b65;border-radius:11px;background:var(--pk-surface-2,#f3f8f4);display:grid;gap:3px}
.care-next-watering>strong{font-size:1rem}
.care-next-watering>b{font-size:1.35rem;line-height:1.2;color:var(--pk-brand-text,#245c3b)}
.care-next-watering small{color:var(--pk-text-muted,#52645a)}
.care-next-watering-wait{border-left-color:#8a918c;background:var(--pk-surface-2,#f7f8f7)}

/* v2.35.38 Pflegeübersicht */
.care-outlook-section{margin-top:14px}.care-outlook-list{display:grid;gap:8px}.care-outlook-row{display:grid;grid-template-columns:minmax(160px,.8fr) minmax(260px,2fr) auto;gap:18px;align-items:center;padding:12px 14px;border:1px solid var(--pk-border,#e2e8e3);border-radius:11px;text-decoration:none;color:inherit;background:var(--pk-surface,#fff)}.care-outlook-row:hover{background:var(--pk-surface-2,#f7faf7);border-color:var(--pk-border-strong,#cbd8cf)}.care-outlook-row>span{display:grid;gap:3px}.care-outlook-row small,.care-outlook-row em{font-size:12px;color:var(--pk-text-muted,#68746c);font-style:normal}.care-outlook-row>b{color:var(--pk-brand-text,#426b50)}.care-outlook-today{border-left:5px solid #d7a62a}.next-care-col{min-width:180px}.next-care-col a{display:grid;gap:2px;color:inherit;text-decoration:none}.next-care-col small{font-size:10px;color:var(--pk-text-muted,#68746c)}@media(max-width:720px){.care-outlook-row{grid-template-columns:1fr auto}.care-outlook-row>span:nth-child(2){grid-column:1/-1}}
.care-overview-entry{margin:12px 0}.care-overview-entry>a{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:13px 16px;border:1px solid var(--pk-border,#d7e4da);border-left:5px solid #397b52;border-radius:13px;background:var(--pk-surface-2,#f4f9f5);color:inherit;text-decoration:none}.care-overview-entry>a>span{display:grid;gap:2px}.care-overview-entry>a>span:last-child{grid-template-columns:auto auto;align-items:center;text-align:right}.care-overview-entry strong{font-size:18px}.care-overview-entry b{font-size:20px;color:var(--pk-brand-text,#245c3b)}.care-overview-entry small{color:var(--pk-text-muted,#68746c)}.care-overview-entry i{grid-row:1/3;grid-column:2;font-style:normal;font-size:22px}


/* v2.35.41 — administration is a role-aware utility workspace.
   Independent vertical stacks prevent a tall card from stretching its neighbour. */
.admin-section-grid{display:block;margin-top:16px}
.admin-section-grid.is-arranged{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(320px,.82fr);gap:16px;align-items:start}
.admin-column{display:flex;flex-direction:column;gap:16px;min-width:0}
.admin-column>.admin-section{align-self:stretch}
.admin-primary-card{border-color:var(--pk-border-strong,#cbdccf)}
.admin-primary-card>.admin-section-head h2{font-size:21px}
.admin-status-card .admin-setting{grid-template-columns:minmax(100px,.35fr) minmax(0,.65fr);align-items:start;column-gap:12px;padding:9px 10px;margin-top:9px}
.admin-status-card .admin-setting>span{grid-column:1}
.admin-status-card .admin-setting>strong{grid-column:2}
.admin-status-card .admin-setting>small{grid-column:2;line-height:1.35}
.admin-edit-disclosure{margin-top:14px}
.admin-edit-disclosure>summary{font-weight:750}
.admin-edit-disclosure .access-form{margin-top:12px}
.admin-status-summary small{color:var(--pk-text-muted,#68756d);font-size:12px}
@media(max-width:900px){
  .admin-section-grid.is-arranged{grid-template-columns:1fr}
  .admin-column{display:contents}
  .admin-section-grid.is-arranged>.admin-column-primary>.admin-section,
  .admin-section-grid.is-arranged>.admin-column-secondary>.admin-section{margin-bottom:16px}
}
@media(max-width:620px){
  .admin-status-card .admin-setting{grid-template-columns:1fr}
  .admin-status-card .admin-setting>span,
  .admin-status-card .admin-setting>strong,
  .admin-status-card .admin-setting>small{grid-column:1}
}

/* v2.35.42 — administration follows user tasks, not technical criticality. */
.admin-tool-disclosure{margin-top:10px;border-top:1px solid var(--pk-border,#e2e8e3);padding-top:8px}
.admin-tool-disclosure>summary{cursor:pointer;min-height:38px;display:flex;align-items:center;font-weight:750;color:var(--pk-brand-text,#245e40)}
.admin-tool-disclosure[open]>summary{margin-bottom:10px}
.admin-section[data-admin-collapsible="true"]{padding-bottom:14px}
.admin-section[data-admin-section="handoff"]{border-color:var(--pk-success-border,#bdd5c4)}
.admin-section[data-admin-section="handoff"] .primary-button{font-size:1rem}
.admin-section[data-admin-section="runtime"] .admin-section-head p,
.admin-section[data-admin-section="software"] .admin-section-head p,
.admin-section[data-admin-section="diagnostics"] .admin-section-head p{margin-bottom:0}

/* v2.35.45 — compact, sortable care/status columns in measurement table */
.plant-table .next-care-head{min-width:150px;width:170px}
.plant-table .attention-head{min-width:84px;width:96px}
.plant-table .next-care-col{min-width:150px;width:170px;padding-left:12px;padding-right:12px}
.plant-table .next-care-col a{display:flex;flex-direction:column;gap:2px;color:inherit;text-decoration:none;line-height:1.15}
.plant-table .next-care-col strong{font-size:14px}
.plant-table .next-care-col small{font-size:10px;color:var(--pk-text-muted,#718078);white-space:normal}
.plant-table .attention-col{min-width:84px;width:96px;padding-left:7px;padding-right:7px}
.plant-table .attention-col .flag{display:inline-block;margin:1px;font-size:9px;white-space:nowrap}
.plant-table .table-muted{color:var(--pk-text-muted,#9aa39d);font-size:13px}

/* v2.35.46 — one explicit visual contract for every sortable table header. */
.plant-table th.sortable-th>.table-sort-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;text-align:center;line-height:1.1}
.plant-table .table-head-icon{display:block;font-size:20px;line-height:1.15;min-height:23px}
.plant-table .table-head-label{display:block;font-size:11px;line-height:1.15;white-space:nowrap}
.about-component-list{display:grid;gap:7px;margin:8px 0 0;max-width:430px}.about-component-list>div{display:grid;grid-template-columns:minmax(180px,1fr) auto;align-items:baseline;gap:16px}.about-component-list strong{font-size:16px}.care-amount-learning{margin-top:12px}.care-learning-card{margin-top:10px;padding:14px;border:1px solid var(--pk-border,#dfe8e2);border-radius:12px;background:var(--pk-surface,#fbfcfb)}.care-learning-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.care-learning-head h4{margin:3px 0 4px;font-size:18px}.care-learning-head p{margin:0;color:var(--pk-text-muted,#5f6d64)}.care-learning-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px}.care-learning-summary>div{display:grid;gap:3px;padding:10px 12px;border-radius:9px;background:var(--pk-surface-3,#f1f5f2)}.care-learning-summary span{font-size:11px;color:var(--pk-text-muted,#68756d)}.care-learning-summary strong{font-size:16px}.care-learning-reason{margin:10px 0;color:var(--pk-text-muted,#5f6d64);font-size:12px}.care-learning-samples{border-top:1px solid var(--pk-border,#dfe8e2);margin-top:10px}.care-learning-table-head,.care-learning-sample{display:grid;grid-template-columns:minmax(145px,1.2fr) minmax(70px,.55fr) minmax(170px,1.35fr) minmax(105px,.8fr);gap:10px;align-items:center}.care-learning-table-head{padding:8px 6px 5px;color:var(--pk-text-muted,#68756d);font-size:11px;font-weight:700}.care-learning-sample{padding:10px 6px;border-top:1px solid var(--pk-border,#edf1ee);font-size:12px}.care-learning-sample>p{grid-column:1/-1;margin:0;color:var(--pk-text-muted,#68756d)}.care-learning-status{display:inline-block;padding:3px 7px;border-radius:999px;font-size:11px;font-weight:700;background:var(--pk-surface-3,#eef1ef)}.care-learning-status-used{background:var(--pk-success-soft,#e5f3e9);color:var(--pk-brand-text,#2f6943)}.care-learning-status-incomplete{background:var(--pk-attention-soft,#fff3d4);color:var(--pk-attention-fg,#765c16)}.care-learning-status-excluded{background:var(--pk-surface-3,#eef0ef);color:var(--pk-text-muted,#5f6963)}.care-learning-reactions{margin-top:10px}.care-learning-reactions>summary{font-size:12px;font-weight:700}@media(max-width:720px){.care-learning-head{display:grid}.care-learning-summary{grid-template-columns:1fr}.care-learning-table-head{display:none}.care-learning-sample{grid-template-columns:1fr 1fr}.care-learning-sample>p{grid-column:1/-1}.about-component-list>div{grid-template-columns:1fr auto}}
.care-sim-banner{display:grid;gap:3px;margin:12px 0;padding:12px 14px;border:2px solid var(--border,#d9e2dc);border-radius:12px;background:var(--surface-soft,#f4f7f5)}.care-sim-banner strong{font-size:15px}.care-sim-banner span,.care-sim-foot,.care-sim-manual .muted{font-size:12px;color:var(--pk-text-muted,#5f6d64)}.care-sim-controls{display:grid;grid-template-columns:2fr 2fr 1fr;gap:12px;align-items:end}.care-sim-manual{margin:12px 0}.care-sim-manual>summary{font-weight:700;cursor:pointer}.care-sim-manual .care-sim-controls{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:10px}.care-sim-result{margin-top:18px;padding-top:16px;border-top:2px solid var(--pk-border,#dfe8e2)}.care-sim-result-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.care-sim-result-head h3{margin:4px 0}.care-sim-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}.care-sim-summary>div{display:grid;gap:4px;padding:11px 12px;border-radius:10px;background:var(--pk-surface-3,#f1f5f2)}.care-sim-summary span{font-size:11px;color:var(--pk-text-muted,#68756d)}.care-sim-plan{margin:16px 0}.care-sim-plan h4{margin-bottom:8px}.care-sim-plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.care-sim-plan-grid>div{display:grid;gap:3px;padding:9px 10px;border:1px solid var(--pk-border,#e2e8e4);border-radius:9px}.care-sim-plan-grid span{font-size:12px;color:var(--pk-text-muted,#5f6d64)}.care-sim-table-wrap{overflow-x:auto;margin-top:12px}.care-sim-table{width:100%;border-collapse:collapse;min-width:900px;font-size:12px}.care-sim-table th{text-align:left;color:var(--pk-text-muted,#68756d);font-size:11px;padding:8px;border-bottom:2px solid var(--pk-border,#dfe8e2)}.care-sim-table td{vertical-align:top;padding:10px 8px;border-bottom:1px solid var(--pk-border,#e8eeea)}.care-sim-table td small{display:block;margin-top:4px;color:var(--pk-text-muted,#68756d);max-width:220px}.care-sim-assessment{display:inline-block;font-weight:700}.care-sim-raw{margin-top:14px}.care-sim-raw>summary{font-weight:700;cursor:pointer}.care-sim-raw pre{white-space:pre-wrap;overflow-wrap:anywhere;padding:12px;background:var(--pk-surface-2,#f5f7f6);border-radius:9px;font-size:11px}.care-sim-foot{margin-top:12px}@media(max-width:720px){.care-sim-controls,.care-sim-manual .care-sim-controls,.care-sim-summary,.care-sim-plan-grid{grid-template-columns:1fr}.care-sim-result-head{display:grid}}

/* v2.35.72 — simulator remains a clear primary DEV workflow after a run. */
.care-simulator .admin-tool-disclosure[open]{margin-top:14px}
.care-sim-complete{display:grid;gap:3px;margin:14px 0 4px;padding:12px 14px;border:1px solid var(--pk-success-border,#bdd5c4);border-radius:10px;background:var(--pk-surface-3,#f1f6f2)}
.care-sim-complete strong{font-size:15px;color:var(--pk-brand-text,#245e40)}.care-sim-complete span{font-size:12px;color:var(--pk-text-muted,#5f6d64);line-height:1.4}
@media(min-width:801px){.admin-column-primary .care-simulator .care-sim-controls{grid-template-columns:minmax(160px,1fr) minmax(220px,1.5fr) minmax(90px,.55fr)}}

/* v2.35.73 — local admin tools keep context; long simulator output lives in a modal workspace. */
.care-sim-dialog{width:min(1180px,calc(100vw - 40px));max-width:1180px;max-height:calc(100vh - 40px);padding:0;border:1px solid var(--pk-border-strong,#cbd8cf);border-radius:14px;background:var(--pk-surface,#fff);box-shadow:0 18px 60px rgba(26,45,34,.24);overflow:auto}
.care-sim-dialog::backdrop{background:rgba(31,43,36,.34)}
.care-sim-dialog-bar{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;border-bottom:1px solid var(--pk-border,#dfe8e2);background:var(--pk-surface-2,#f8faf8)}
.care-sim-dialog>.care-sim-complete,.care-sim-dialog>.care-sim-result{margin-left:18px;margin-right:18px}
.care-sim-dialog>.care-sim-result{margin-bottom:20px}
@media(max-width:720px){.care-sim-dialog{width:calc(100vw - 18px);max-height:calc(100vh - 18px)}.care-sim-dialog>.care-sim-complete,.care-sim-dialog>.care-sim-result{margin-left:10px;margin-right:10px}}

/* v2.35.74 — simulator controls stay inside the compact secondary card. */
.care-simulator .care-sim-controls{grid-template-columns:minmax(0,.9fr) minmax(0,1.55fr) minmax(64px,.45fr);gap:10px}
.care-simulator .care-sim-controls label,.care-simulator .care-sim-controls select,.care-simulator .care-sim-controls input{min-width:0;max-width:100%;width:100%}
@media(max-width:1100px){.care-simulator .care-sim-controls{grid-template-columns:1fr 1fr}.care-simulator .care-sim-controls label:last-child{grid-column:1/-1;max-width:120px}}
@media(max-width:720px){.care-simulator .care-sim-controls{grid-template-columns:1fr}.care-simulator .care-sim-controls label:last-child{grid-column:auto;max-width:none}}

/* v2.35.80 · DEV simulator result workspace */
.care-sim-history{margin-top:14px;padding-top:12px;border-top:1px solid var(--pk-border,#dfe8e2)}.care-sim-history-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap}.care-sim-history-head>div{display:grid;gap:3px}.care-sim-history-head small{color:var(--pk-text-muted,#68756d)}.care-sim-history-list{display:grid;gap:7px;margin-top:9px}.care-sim-history-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--pk-border,#e1e8e3);border-radius:9px;background:var(--pk-surface-2,#f8faf8)}.care-sim-history-item>div{display:grid;gap:2px;min-width:0}.care-sim-history-item small{color:var(--pk-text-muted,#68756d);overflow-wrap:anywhere}.care-sim-history-actions{display:flex;gap:6px;flex-wrap:wrap}.care-sim-timeline{margin:14px 0 18px;padding:12px;border:1px solid var(--pk-border,#dfe8e2);border-radius:12px;background:var(--pk-surface,#fbfcfb)}.care-sim-timeline-head h4{margin:0 0 3px}.care-sim-timeline-head p{margin:0}.care-sim-chart-wrap{margin-top:10px;overflow-x:auto}.care-sim-chart-wrap svg{display:block;width:100%;min-width:720px;height:auto}.care-sim-chart-grid{stroke:#e2e8e4;stroke-width:1}.care-sim-chart-line{fill:none;stroke:var(--pk-text-muted,#4d6f5c);stroke-width:2}.care-sim-chart-point{fill:#fff;stroke:var(--pk-text-muted,#4d6f5c);stroke-width:2;cursor:pointer}.care-sim-chart-point.is-event{fill:#dce9e1}.care-sim-chart-point.is-wet{fill:#d8e4ef;stroke:var(--pk-info-fg,#466985)}.care-sim-chart-point.is-under{fill:#f2e6c7;stroke:var(--pk-attention-fg,#8b6a25)}.care-sim-chart-axis{font-size:10px;fill:var(--pk-text-muted,#68756d)}.care-sim-chart-detail{margin-top:9px;padding:9px 10px;border-radius:9px;background:var(--pk-surface-3,#f1f5f2);font-size:12px;line-height:1.45}.care-sim-chart-detail strong{display:block;font-size:13px;margin-bottom:2px}@media(max-width:720px){.care-sim-history-item{align-items:flex-start;flex-direction:column}.care-sim-chart-wrap svg{min-width:620px}}
.care-sim-chart-wet-band{fill:#d8e4ef;opacity:.42}.care-sim-chart-memory-line{fill:none;stroke:var(--pk-attention-fg,#8b6f3d);stroke-width:2}.care-sim-chart-memory-point{fill:#fff;stroke:var(--pk-attention-fg,#8b6f3d);stroke-width:2;cursor:pointer}.care-sim-chart-engine-line{fill:none;stroke:var(--pk-text-muted,#6d557f);stroke-width:2}.care-sim-chart-engine-point{fill:#fff;stroke:var(--pk-text-muted,#6d557f);stroke-width:2;cursor:pointer}.care-sim-chart-label{font-size:11px;font-weight:700;fill:var(--pk-text-2,#445149)}
.care-sim-closed-loop{border-width:2px}.care-sim-closed-loop-watering{stroke:var(--pk-attention-fg,#8b6a25);stroke-width:2;stroke-dasharray:5 3;opacity:.8}.care-sim-chart-point.is-watering{fill:#f2e6c7;stroke:var(--pk-attention-fg,#8b6a25);stroke-width:2.5}
/* v2.35.92: linked Closed-Loop interaction across world, CE 2.3 and Evidence Memory. */
.care-sim-chart-point.is-selected,.care-sim-chart-engine-point.is-selected,.care-sim-chart-memory-point.is-selected{stroke-width:4;filter:drop-shadow(0 0 2px currentColor)}
.care-sim-chart-engine-point,.care-sim-chart-memory-point{cursor:pointer}
.care-sim-chart-engine-point:focus,.care-sim-chart-memory-point:focus,.care-sim-chart-point:focus{outline:none;stroke-width:4}
.care-sim-chart-memory-point.is-pressure,.care-sim-chart-memory-point.is-anchor-revised,.care-sim-chart-memory-point.is-safety{stroke-width:3}
.care-sim-chart-memory-point.is-interval-emerging,.care-sim-chart-memory-point.is-interval-confirmed{stroke-dasharray:2 1}
.care-sim-chart-engine-point.is-evidence-change{stroke-width:3}
.care-sim-compare-band{opacity:.10}.care-sim-compare-band.is-baseline{fill:var(--pk-text-muted,#6f7f76)}.care-sim-compare-band.is-challenge{fill:var(--pk-critical-fg,#b56d4d);opacity:.15}.care-sim-compare-band.is-recovery{fill:var(--pk-text-muted,#6c8b72);opacity:.14}.care-sim-compare-world{stroke-width:2.4}.care-sim-compare-dose{stroke-width:3.6}.care-sim-learning-compare .care-sim-chart-wrap{min-height:360px}

.fyta-refresh-status{align-self:center;font-size:.78rem;opacity:.82;white-space:nowrap}.topbar-actions [data-fyta-refresh][disabled]{cursor:wait;opacity:.72}
/* v2.38.5 — compact desktop plant head: portrait and status share one row. */
.plant-head-status .plant-overview{margin:0;width:100%;height:100%}
@media(max-width:760px){.plant-head-status .plant-overview{height:auto}}
/* v2.39.1: help follows the same readable control and navigation grammar as the application. */
[data-help-root] a.primary-button{color:#fff;text-decoration:none}
[data-help-root] a.primary-button:hover{color:#fff}
.help-welcome{background:var(--pk-surface-2,#f4f8f4);border:1px solid var(--pk-border,#d9e5dc);border-radius:12px;padding:14px 16px;margin:12px 0 18px}
.help-welcome p:first-child{margin-top:0}.help-welcome p:last-child{margin-bottom:0}
.help-nav-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:8px 0 12px}
.help-nav-actions .secondary-button{width:auto}
@media(max-width:760px){.help-nav-actions .secondary-button{width:auto;flex:1 1 auto}.help-welcome .primary-button{width:100%}}
/* v2.39.2 help window: desktop companion window, mobile sheet. */
@media (min-width:701px){.help-dialog .help-toolbar[data-help-drag-handle]{cursor:move;user-select:none}.help-dialog .help-toolbar[data-help-drag-handle] button{cursor:pointer}}
@media (max-width:700px){.help-dialog{max-width:100vw!important;width:100vw!important;max-height:100vh!important;height:100vh!important;margin:0!important;border-radius:0!important}}

/* Supplemental tooltips: concise, non-essential hints only. */
.ui-tooltip{position:fixed;z-index:10000;max-width:280px;padding:7px 9px;border-radius:6px;background:#1f2b24;color:#fff;font-size:.82rem;font-weight:500;line-height:1.3;box-shadow:0 3px 10px rgba(0,0,0,.2);pointer-events:none}
.ui-tooltip[hidden]{display:none}


/* v2.39.7 — consistent interactive control states */
button:disabled, input:disabled, select:disabled, textarea:disabled,
[role="button"][aria-disabled="true"], a[aria-disabled="true"] {
  opacity:1;
}
button:disabled, [role="button"][aria-disabled="true"], a[aria-disabled="true"] {
  cursor:not-allowed;
}
button:disabled, .primary-button:disabled, .secondary-button:disabled, .topbar-action:disabled,
.opb-preflight-actions button:disabled, .profile-actions form button:disabled,
.profile-source-box button:disabled, .topbar-actions [data-fyta-refresh][disabled],
a[aria-disabled="true"] {
  background:#e8ece9 !important;
  border-color:#b8c2bb !important;
  color:#46534b !important;
  box-shadow:none !important;
  text-shadow:none !important;
}
button[aria-busy="true"], [role="button"][aria-busy="true"], a[aria-busy="true"] { cursor:wait !important; }
input:disabled, select:disabled, textarea:disabled {
  color:var(--pk-text-muted,#4d5851); background:var(--pk-surface-3,#f0f3f1); -webkit-text-fill-color:var(--pk-text-muted,#4d5851);
}

/* v2.39.8 — global control-state contract. Local component styles may decorate,
   but must not erase readable text or the shared focus/busy semantics. */
:where(button, input[type="button"], input[type="submit"], [role="button"], .primary-button, .secondary-button, .danger-button, .topbar-action, summary):focus-visible {
  outline:3px solid #0b5f3b !important;
  outline-offset:3px !important;
  box-shadow:0 0 0 2px #fff, 0 0 0 5px rgba(11,95,59,.30) !important;
}
:where(.topbar button, .topbar .topbar-action):focus-visible {
  outline-color:#fff !important;
  box-shadow:0 0 0 2px #173d2b, 0 0 0 5px rgba(255,255,255,.78) !important;
}
:where(button, .primary-button, .secondary-button, .danger-button, .topbar-action)[aria-busy="true"] {
  opacity:1 !important;
  cursor:wait !important;
}
:where(.primary-button, button.primary-button)[aria-busy="true"], button.primary-button:disabled[aria-busy="true"] {
  background:var(--pk-brand,#315b46) !important;
  border-color:var(--pk-brand,#315b46) !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}
.help-drag-affordance{margin-left:auto;align-self:center;color:var(--pk-text-muted,#65716a);font-size:1rem;cursor:move;padding:6px;border-radius:6px}.help-drag-affordance+.about-close{margin-left:4px}

/* v2.39.9 — shared control state must win over broad container decoration. */
:where(.primary-button, button.primary-button, a.primary-button):not(:disabled):not([aria-disabled="true"]){
  background:var(--pk-brand,#246b45);color:#fff;-webkit-text-fill-color:#fff;border-color:var(--pk-brand,#246b45);
}
:where(.primary-button, button.primary-button, a.primary-button):not(:disabled):not([aria-disabled="true"]):hover{
  background:var(--pk-brand,#1d5939);color:#fff;-webkit-text-fill-color:#fff;border-color:var(--pk-brand,#1d5939);
}
@media (min-width:701px) and (pointer:fine){
  [data-modal-drag-handle]{cursor:move;user-select:none}
  [data-modal-drag-handle] button,[data-modal-drag-handle] a{cursor:pointer}
}


/* v2.39.10 — one global action-control grammar. Semantic variants differ by
   purpose, never by page. Local containers may arrange controls but must not
   redefine their interaction states. */
:root{
  --pk-action-h:38px;--pk-action-radius:9px;--pk-action-pad-y:9px;--pk-action-pad-x:12px;
  --pk-action-font:13px;--pk-action-focus:#2b7a50;
  --pk-primary-bg:#246b45;--pk-primary-hover:#1d5939;--pk-primary-fg:#fff;
  --pk-secondary-bg:#fff;--pk-secondary-hover:#edf5ef;--pk-secondary-fg:#285c3d;--pk-secondary-border:#bfd0c3;
  --pk-danger-bg:#fff;--pk-danger-hover:#fff0f0;--pk-danger-fg:#9a2e2e;--pk-danger-border:#c35b5b;
}
:where(.primary-button,.secondary-button,.danger-button){
  appearance:none;min-height:var(--pk-action-h);border-radius:var(--pk-action-radius);padding:var(--pk-action-pad-y) var(--pk-action-pad-x);
  font:inherit;font-size:var(--pk-action-font);font-weight:750;line-height:1.15;text-decoration:none;
  display:inline-flex;align-items:center;justify-content:center;gap:.35em;box-sizing:border-box;cursor:pointer;box-shadow:none;
  transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease;
}
:where(.primary-button){border:1px solid var(--pk-primary-bg);background:var(--pk-primary-bg);color:var(--pk-primary-fg);-webkit-text-fill-color:var(--pk-primary-fg)}
:where(.primary-button):not(:disabled):not([aria-disabled="true"]):hover{border-color:var(--pk-primary-hover);background:var(--pk-primary-hover);color:var(--pk-primary-fg);-webkit-text-fill-color:var(--pk-primary-fg)}
:where(.secondary-button){border:1px solid var(--pk-secondary-border);background:var(--pk-secondary-bg);color:var(--pk-secondary-fg);-webkit-text-fill-color:var(--pk-secondary-fg)}
:where(.secondary-button):not(:disabled):not([aria-disabled="true"]):hover{background:var(--pk-secondary-hover);border-color:#9fbaa7;color:var(--pk-brand-text,#1f5638);-webkit-text-fill-color:var(--pk-brand-text,#1f5638)}
:where(.danger-button){border:1px solid var(--pk-danger-border);background:var(--pk-danger-bg);color:var(--pk-danger-fg);-webkit-text-fill-color:var(--pk-danger-fg)}
:where(.danger-button):not(:disabled):not([aria-disabled="true"]):hover{background:var(--pk-danger-hover);border-color:#b44848;color:var(--pk-critical-fg,#852525);-webkit-text-fill-color:var(--pk-critical-fg,#852525)}
:where(.primary-button,.secondary-button,.danger-button):focus-visible{
  outline:3px solid var(--pk-action-focus)!important;outline-offset:3px!important;box-shadow:0 0 0 1px #fff!important;
}
:where(.primary-button,.secondary-button,.danger-button):active:not(:disabled):not([aria-disabled="true"]){transform:translateY(1px)}
:where(.primary-button,.secondary-button,.danger-button):disabled,
:where(.primary-button,.secondary-button,.danger-button)[aria-disabled="true"]{
  opacity:1!important;cursor:not-allowed!important;background:var(--pk-surface-3,#eef1ef)!important;border-color:var(--pk-border-strong,#c8d0ca)!important;color:var(--pk-text-muted,#59645d)!important;-webkit-text-fill-color:var(--pk-text-muted,#59645d)!important;box-shadow:none!important;transform:none!important;
}
:where(.primary-button,.secondary-button,.danger-button)[aria-busy="true"]{
  opacity:1!important;cursor:wait!important;transform:none!important;
}
:where(.primary-button)[aria-busy="true"]{background:var(--pk-brand,#246b45)!important;border-color:var(--pk-brand,#246b45)!important;color:#fff!important;-webkit-text-fill-color:#fff!important}
/* Native dialog/popover top-layer UA styles use auto margins/insets. Reset them
   so tooltip coordinates remain anchored to their owning control. */
.ui-tooltip[popover]{inset:auto;margin:0}


/* v2.39.11 — global control contract, final cascade authority.
   Historical page/container rules may arrange controls but may not redefine
   their visual interaction states. These selectors intentionally carry real
   specificity (not :where()) so the global contract wins the cascade. */
.primary-button, button.primary-button, a.primary-button {
  min-height:var(--pk-action-h)!important;border:1px solid var(--pk-primary-bg)!important;border-radius:var(--pk-action-radius)!important;
  padding:var(--pk-action-pad-y) var(--pk-action-pad-x)!important;background:var(--pk-primary-bg)!important;color:var(--pk-primary-fg)!important;
  -webkit-text-fill-color:var(--pk-primary-fg)!important;font:inherit!important;font-size:var(--pk-action-font)!important;font-weight:750!important;
  line-height:1.15!important;text-decoration:none!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;
  gap:.35em!important;box-sizing:border-box!important;cursor:pointer!important;box-shadow:none!important;
}
.primary-button:not(:disabled):not([aria-disabled="true"]):hover,
button.primary-button:not(:disabled):not([aria-disabled="true"]):hover,
a.primary-button:not([aria-disabled="true"]):hover {background:var(--pk-primary-hover)!important;border-color:var(--pk-primary-hover)!important;color:#fff!important;-webkit-text-fill-color:#fff!important}
.secondary-button, button.secondary-button, a.secondary-button {
  min-height:var(--pk-action-h)!important;border:1px solid var(--pk-secondary-border)!important;border-radius:var(--pk-action-radius)!important;
  padding:var(--pk-action-pad-y) var(--pk-action-pad-x)!important;background:var(--pk-secondary-bg)!important;color:var(--pk-secondary-fg)!important;
  -webkit-text-fill-color:var(--pk-secondary-fg)!important;font:inherit!important;font-size:var(--pk-action-font)!important;font-weight:750!important;
  line-height:1.15!important;text-decoration:none!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;
  gap:.35em!important;box-sizing:border-box!important;cursor:pointer!important;box-shadow:none!important;
}
.secondary-button:not(:disabled):not([aria-disabled="true"]):hover,
button.secondary-button:not(:disabled):not([aria-disabled="true"]):hover,
a.secondary-button:not([aria-disabled="true"]):hover {background:var(--pk-secondary-hover)!important;border-color:#9fbaa7!important;color:var(--pk-brand-text,#1f5638)!important;-webkit-text-fill-color:var(--pk-brand-text,#1f5638)!important}
.danger-button, button.danger-button, a.danger-button {
  min-height:var(--pk-action-h)!important;border:1px solid var(--pk-danger-border)!important;border-radius:var(--pk-action-radius)!important;
  padding:var(--pk-action-pad-y) var(--pk-action-pad-x)!important;background:var(--pk-danger-bg)!important;color:var(--pk-danger-fg)!important;
  -webkit-text-fill-color:var(--pk-danger-fg)!important;font:inherit!important;font-size:var(--pk-action-font)!important;font-weight:750!important;
  line-height:1.15!important;text-decoration:none!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;
  gap:.35em!important;box-sizing:border-box!important;cursor:pointer!important;box-shadow:none!important;
}
.danger-button:not(:disabled):not([aria-disabled="true"]):hover {background:var(--pk-danger-hover)!important;border-color:#b44848!important;color:var(--pk-critical-fg,#852525)!important;-webkit-text-fill-color:var(--pk-critical-fg,#852525)!important}
.primary-button:focus-visible,.secondary-button:focus-visible,.danger-button:focus-visible,
.table-sort-button:focus-visible,.password-toggle:focus-visible,.about-close:focus-visible,.status-modal-close:focus-visible,
.journal-more-button:focus-visible,.global-return-back:focus-visible,summary:focus-visible {
  outline:3px solid var(--pk-action-focus)!important;outline-offset:3px!important;box-shadow:0 0 0 1px #fff!important;
}
.primary-button:active:not(:disabled),.secondary-button:active:not(:disabled),.danger-button:active:not(:disabled){transform:translateY(1px)!important}
.primary-button:disabled,.secondary-button:disabled,.danger-button:disabled,
.primary-button[aria-disabled="true"],.secondary-button[aria-disabled="true"],.danger-button[aria-disabled="true"]{
  opacity:1!important;cursor:not-allowed!important;background:var(--pk-surface-3,#eef1ef)!important;border-color:var(--pk-border-strong,#c8d0ca)!important;color:var(--pk-text-muted,#59645d)!important;-webkit-text-fill-color:var(--pk-text-muted,#59645d)!important;box-shadow:none!important;transform:none!important;
}
.primary-button[aria-busy="true"],.secondary-button[aria-busy="true"],.danger-button[aria-busy="true"]{opacity:1!important;cursor:wait!important;transform:none!important}
.primary-button[aria-busy="true"]{background:var(--pk-brand,#246b45)!important;border-color:var(--pk-brand,#246b45)!important;color:#fff!important;-webkit-text-fill-color:#fff!important}
/* Repeated special controls use the same feedback grammar without pretending
   to be ordinary actions. */
.table-sort-button,.journal-more-button,.global-return-back,.password-toggle,.about-close,.status-modal-close{transition:background-color .12s ease,border-color .12s ease,color .12s ease,box-shadow .12s ease!important}
/* Disclosures are one semantic family: same pointer/focus feedback everywhere;
   their content layout may remain domain-specific. */
details>summary{cursor:pointer}
details>summary:hover{background-color:var(--pk-surface-2,#f3f7f4)}
details>summary:focus-visible{border-radius:7px}


/* v2.39.12 — one visible action language.
   Primary/secondary remain semantic metadata only; ordinary user actions deliberately
   render alike. Danger and true mode/toggle/disclosure controls remain distinct only
   when that distinction communicates useful state or risk. */
:root{
  --pk-action-bg:#246b45;
  --pk-action-hover:#1d5939;
  --pk-action-active:#174a30;
  --pk-action-fg:#fff;
  --pk-action-border:#246b45;
  --pk-action-focus:#8bc7a4;
}
.primary-button,.secondary-button,
button.primary-button,button.secondary-button,
a.primary-button,a.secondary-button,
.journal-more-button,
.opb-preflight-button,
.opb-approve-button{
  appearance:none!important;
  min-height:var(--ui-control-height)!important;
  border:1px solid var(--pk-action-border)!important;
  border-radius:var(--ui-control-radius)!important;
  background:var(--pk-action-bg)!important;
  color:var(--pk-action-fg)!important;
  -webkit-text-fill-color:var(--pk-action-fg)!important;
  padding:9px 12px!important;
  font:inherit!important;
  font-size:var(--ui-control-font)!important;
  font-weight:750!important;
  line-height:1.15!important;
  text-decoration:none!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  cursor:pointer!important;
  box-shadow:none!important;
  transition:background-color .12s ease,border-color .12s ease,box-shadow .12s ease,transform .06s ease!important;
}
.primary-button:not(:disabled):not([aria-disabled="true"]):hover,
.secondary-button:not(:disabled):not([aria-disabled="true"]):hover,
button.primary-button:not(:disabled):not([aria-disabled="true"]):hover,
button.secondary-button:not(:disabled):not([aria-disabled="true"]):hover,
a.primary-button:not([aria-disabled="true"]):hover,
a.secondary-button:not([aria-disabled="true"]):hover,
.journal-more-button:not(:disabled):hover,
.opb-preflight-button:not(:disabled):hover,
.opb-approve-button:not(:disabled):hover{
  background:var(--pk-action-hover)!important;border-color:var(--pk-action-hover)!important;
  color:var(--pk-action-fg)!important;-webkit-text-fill-color:var(--pk-action-fg)!important;
}
.primary-button:focus-visible,.secondary-button:focus-visible,
.journal-more-button:focus-visible,.opb-preflight-button:focus-visible,.opb-approve-button:focus-visible{
  outline:3px solid var(--pk-action-focus)!important;outline-offset:2px!important;
  box-shadow:0 0 0 1px #fff!important;
}
.primary-button:active:not(:disabled),.secondary-button:active:not(:disabled),
.journal-more-button:active:not(:disabled),.opb-preflight-button:active:not(:disabled),.opb-approve-button:active:not(:disabled){
  background:var(--pk-action-active)!important;border-color:var(--pk-action-active)!important;transform:translateY(1px)!important;
}
.primary-button:disabled,.secondary-button:disabled,
.primary-button[aria-disabled="true"],.secondary-button[aria-disabled="true"],
.journal-more-button:disabled,.opb-preflight-button:disabled,.opb-approve-button:disabled{
  opacity:1!important;background:var(--pk-surface-4,#dfe7e1)!important;border-color:var(--pk-border-strong,#b7c5bb)!important;
  color:var(--pk-text-2,#435249)!important;-webkit-text-fill-color:var(--pk-text-2,#435249)!important;cursor:not-allowed!important;transform:none!important;
}
.primary-button[aria-busy="true"],.secondary-button[aria-busy="true"],
.opb-preflight-button[aria-busy="true"],.opb-approve-button[aria-busy="true"]{
  opacity:1!important;background:var(--pk-action-bg)!important;border-color:var(--pk-action-bg)!important;
  color:#fff!important;-webkit-text-fill-color:#fff!important;cursor:wait!important;transform:none!important;
}
/* Compact disclosure action in the Hardware heading: visually an action control,
   semantically still a native disclosure. */
.hardware-hub-head .hub-tech>summary{
  list-style:none;appearance:none;min-height:var(--ui-control-height);border:1px solid var(--pk-action-border);
  border-radius:var(--ui-control-radius);background:var(--pk-action-bg);color:var(--pk-action-fg);
  padding:9px 12px;font:inherit;font-size:var(--ui-control-font);font-weight:750;line-height:1.15;
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;white-space:nowrap;
  transition:background-color .12s ease,border-color .12s ease,box-shadow .12s ease;
}
.hardware-hub-head .hub-tech>summary::-webkit-details-marker{display:none}
.hardware-hub-head .hub-tech>summary::before{content:'▸';margin-right:.42rem}
.hardware-hub-head .hub-tech[open]>summary::before{content:'▾'}
.hardware-hub-head .hub-tech>summary:hover{background:var(--pk-action-hover);border-color:var(--pk-action-hover)}
.hardware-hub-head .hub-tech>summary:focus-visible{outline:3px solid var(--pk-action-focus);outline-offset:2px;box-shadow:0 0 0 1px #fff}
/* Tabs/mode selectors remain visually distinct because they express selection, not an action hierarchy. */
.history-tabs button.active{background:var(--pk-surface-3,#e6f1e9);border-color:#668b70;color:var(--pk-text,#173d2b)}


/* v2.39.15 compact status scale: position + shape supplement colour. */
.state-scale{position:relative;display:inline-grid;grid-template-columns:repeat(3,8px);gap:2px;height:5px;margin:0 auto 5px;vertical-align:middle}.state-scale i{display:block;height:4px;border-radius:3px;background:#d7ddd9}.state-scale b{position:absolute;top:-2px;width:7px;height:7px;border:2px solid currentColor;background:#fff;border-radius:50%;box-sizing:border-box}.state-good .state-scale{color:#2f7f50}.state-good .state-scale i:nth-child(2){background:#6cad82}.state-good .state-scale b{left:10px}.state-attention .state-scale{color:#a86a14}.state-attention .state-scale i:nth-child(1),.state-attention .state-scale i:nth-child(2){background:#e0ad58}.state-attention .state-scale b{left:19px}.state-critical .state-scale{color:#a53f3f}.state-critical .state-scale i{background:#d67b7b}.state-critical .state-scale b{left:19px}.state-unknown .state-scale{color:#7d8781}.state-unknown .state-scale b{left:0}.value-cell>.state-dot{display:none}

/* v2.39.16: readable vertical value gauge. Position carries the value; colour bands carry the evaluated range. */
.value-with-gauge{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px}.value-reading{display:block;min-width:48px}.vertical-gauge{position:relative;display:inline-block;width:13px;height:44px;flex:0 0 13px}.gauge-bar{position:absolute;inset:0 3px;border-radius:7px;border:1px solid #cbd5ce;background:linear-gradient(to top,#c94d4d 0 13%,#e6a23c 13% 30%,#56a66f 30% 70%,#e6a23c 70% 87%,#c94d4d 87% 100%)}.gauge-marker{position:absolute;left:0;width:13px;height:8px;border-radius:5px;border:2px solid #173f2b;background:#fff;box-sizing:border-box;box-shadow:0 1px 2px #0003}.state-unknown .vertical-gauge{opacity:.35;filter:grayscale(1)}
.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px;margin-bottom:14px}.settings-grid fieldset{border:1px solid var(--pk-border,#d9e4dc);border-radius:12px;padding:14px;margin:0;background:var(--pk-surface,#fbfcfb)}.settings-grid legend{font-weight:800;padding:0 6px}.settings-grid label{display:grid;gap:6px}.settings-grid select,.settings-grid input{width:100%;box-sizing:border-box}.settings-coordinates{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.settings-form>button{width:auto;min-width:190px}@media(max-width:640px){.settings-coordinates{grid-template-columns:1fr}.value-with-gauge{gap:5px}}


/* v2.39.18: scalable settings list; compact by default, details on demand. */
.settings-section{max-width:1100px}.settings-toolbar{display:grid;grid-template-columns:auto minmax(220px,420px) 1fr;gap:10px;align-items:center;margin:12px 0}.settings-toolbar label{font-weight:700}.settings-toolbar input{width:100%}.settings-list{border-top:1px solid var(--pk-border,#d9e4dc)}.settings-group{border-bottom:1px solid var(--pk-border,#d9e4dc);margin:0}.settings-group>summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:12px 4px;cursor:pointer;list-style-position:outside}.settings-group>summary span:first-child{display:grid;gap:2px}.settings-group>summary small{font-weight:400;color:var(--pk-text-muted,#53665a)}.settings-current{font-size:.92rem;color:var(--pk-text-2,#41564a);text-align:right}.settings-group-body{display:grid;gap:12px;padding:4px 24px 16px 22px;max-width:760px}.settings-group-body label{display:grid;gap:5px;font-weight:700}.settings-group-body label small,.settings-group-body>small{font-weight:400;color:var(--pk-text-muted,#53665a)}.settings-group-body select,.settings-group-body input{max-width:420px;width:100%;box-sizing:border-box}.settings-group-body button{justify-self:start}.settings-inline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.settings-impact{display:grid;gap:2px;padding:10px 12px;border-left:3px solid #809889;background:var(--pk-surface-2,#f6f8f6)}.settings-empty{padding:16px 0}.settings-group[hidden]{display:none!important}@media(max-width:640px){.settings-toolbar{grid-template-columns:1fr}.settings-group>summary{grid-template-columns:1fr}.settings-current{text-align:left}.settings-inline{grid-template-columns:1fr}.settings-group-body{padding-left:8px;padding-right:8px}}
.settings-tier-note{display:flex;gap:12px;align-items:baseline;padding:18px 4px 7px;color:var(--pk-text-2,#41564a)}.settings-tier-note span{font-size:.9rem}.settings-tier-note span strong{position:absolute;clip:rect(0 0 0 0);clip-path:inset(50%);width:1px;height:1px;overflow:hidden}@media(max-width:640px){.settings-tier-note{display:grid;gap:3px}}

/* Settings use the existing form/disclosure grammar, including touch and focus. */
.settings-toolbar input,.settings-group-body input,.settings-group-body select{font:inherit;font-size:16px;min-height:44px;padding:10px 12px;border:1px solid var(--pk-border-strong,#cfdacf);border-radius:10px;background:var(--pk-surface,#fff);color:var(--pk-text,#173d2b);box-sizing:border-box;width:100%;min-width:0}
.settings-toolbar input:focus-visible,.settings-group-body input:focus-visible,.settings-group-body select:focus-visible{outline:3px solid var(--pk-focus,#246d48);outline-offset:2px}
.settings-group>summary{grid-template-columns:minmax(0,1fr) auto 16px;list-style:none}
.settings-group>summary::-webkit-details-marker{display:none}
.settings-group>summary::after{content:"›";font-size:24px;line-height:1;justify-self:center;transform:rotate(0deg)}
.settings-group[open]>summary::after{transform:rotate(90deg)}
@media(max-width:640px){.settings-group>summary{gap:8px}.settings-current{max-width:120px;overflow-wrap:anywhere}}

/* Administration chapters follow task frequency; details stay native. */
.admin-topic.admin-tool-disclosure{margin:0;padding:0;border:0}
.admin-topic>summary{display:flex;align-items:center;justify-content:space-between;min-height:44px;list-style:none;cursor:pointer;gap:12px}
.admin-topic>summary::-webkit-details-marker{display:none}
.admin-topic>summary h2{font-size:1.1rem;margin:0}
.admin-topic>summary::after{content:'›';font-size:1.5rem;flex:none;transition:transform .15s}
.admin-topic[open]>summary::after{transform:rotate(90deg)}
.admin-topic>summary:focus-visible{outline:3px solid var(--pk-focus,#245e40);outline-offset:4px;border-radius:4px}
.admin-topic-body{padding-top:12px}.admin-topic-body .admin-section-head{margin-bottom:10px}
.admin-section:has(>.admin-topic:not([open])){padding:10px 16px}
.admin-hero{padding:12px 16px;margin-bottom:12px}.admin-hero h2{font-size:1.05rem;margin:3px 0}.admin-hero p{margin:0}.admin-hero .eyebrow{display:none}
@media(max-width:800px){.admin-section[data-admin-section="settings"]{order:80}}
/* A segmented numerical scale, with a black pointer distinct from status colour. */
.vertical-gauge{width:26px;height:64px;flex:0 0 26px}
.gauge-bar{inset:0 6px 0 6px;border:0;border-radius:0;mask-image:repeating-linear-gradient(to top,#000 0 3px,transparent 3px 4px)}
.gauge-marker{left:-2px;width:0;height:0;border:5px solid transparent;border-left:7px solid #152a20;background:none;border-radius:0;box-shadow:none;transform:translateY(50%);box-sizing:content-box}
.gauge-tick{position:absolute;left:5px;right:4px;border-top:1px solid #152a20;pointer-events:none}

/* Shared administration form grammar also applies inside target chapters. */
.admin-topic .settings-group-body input:not([type="checkbox"]),.admin-topic .settings-group-body select{min-height:44px;font:inherit;font-size:16px;box-sizing:border-box;width:100%;min-width:0;padding:10px 12px;border:1px solid var(--pk-border-strong,#cbd8ce);border-radius:9px;background:var(--pk-surface,#fff);color:var(--pk-text,#173f2b)}
.admin-topic fieldset{min-width:0;border:1px solid var(--pk-border-strong,#cbd8ce);border-radius:9px;padding:12px}
.admin-topic input:focus-visible,.admin-topic select:focus-visible{outline:3px solid var(--pk-focus,#245e40);outline-offset:2px}
/* v2.39.34 — technical evidence stays subordinate and inside its admin context. */
.admin-action-result,.compact-disclosure,.target-preflight-result,.target-check-details{min-width:0;max-width:100%}
.target-preflight-result>span{overflow-wrap:anywhere}
.target-check-details{margin-top:8px}
.target-check-details>summary{cursor:pointer;font-weight:750;color:var(--pk-text-muted,#5a675f)}
.target-check-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:7px}
.target-check-list li{min-width:0;padding:9px 10px;border:1px solid var(--pk-border,#dde5df);border-radius:9px;background:var(--pk-surface,#fff)}
.target-check-list li>div{display:flex;justify-content:space-between;gap:12px;align-items:baseline;min-width:0}
.target-check-list li>div strong{min-width:0;overflow-wrap:anywhere}
.target-check-list li>div span{flex:none;font-size:12px;color:var(--pk-text-muted,#5e6b63)}
.target-check-list li>small{display:block;margin-top:5px;color:var(--pk-critical-fg,#6a403f);white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;max-width:100%}
.target-check-list li.is-failed{border-color:var(--pk-critical-border,#e2bcbc);background:var(--pk-critical-soft,#fff8f8)}
.target-check-list li.is-ok>small{display:none}
.target-save-evidence .admin-setting{margin-top:9px}
@media(max-width:620px){.target-check-list li>div{display:grid;gap:3px}.target-check-list li>div span{justify-self:start}}

/* v2.39.34 — target disclosure title stays a readable two-line status at narrow widths. */
.target-evaluation>summary>span{display:grid;gap:2px;min-width:0}
.target-evaluation>summary>span>strong,.target-evaluation>summary>span>small{display:block;min-width:0;overflow-wrap:anywhere}
.target-evaluation>summary>span>small{font-weight:400;color:var(--pk-text-muted,#5e6b63)}

/* Independent, infrequent test installation; one chapter, linear steps. */
#test-installation .admin-topic-body{max-width:900px}
#test-installation h3{margin:24px 0 10px;font-size:1rem}
#test-installation .probe-protocol{border-top:1px solid var(--pk-border,#dce5de);margin-top:24px;padding-top:4px}
.probe-event-list{padding-left:24px;overflow-wrap:anywhere}
.probe-event-list li{padding:12px 0;border-bottom:1px solid var(--pk-border,#e3e9e4)}
.probe-event-list li>*{display:block;margin:3px 0}
.probe-event-list time,.probe-event-list small{color:var(--pk-text-muted,#52665a);font-size:.85rem}
#test-installation input[type=file]{max-width:100%;min-width:0}

/* v2.39.37 — compact, state-led candidate probe flow. */
#test-installation .admin-topic-body{max-width:820px}
#test-installation .probe-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:12px}
#test-installation .probe-intro p{margin:0;max-width:620px}
#test-installation .probe-feedback:empty{display:none}
.probe-flow{display:grid;gap:8px;margin-top:12px}
.probe-step{min-width:0;border:1px solid var(--pk-border,#d9e4dc);border-radius:12px;background:var(--pk-surface,#fff);overflow:hidden}
.probe-step.is-current{padding:14px 15px;border-color:var(--pk-success-border,#a9c8b5);background:var(--pk-surface,#fbfdfb)}
.probe-step.is-error{border-color:var(--pk-critical-border,#e2b5b5);background:var(--pk-surface,#fffafa)}
.probe-step.is-locked{padding:10px 14px;background:var(--pk-surface-2,#f6f8f6);color:var(--pk-text-muted,#64736a)}
.probe-step.is-next{padding:10px 14px;background:var(--pk-surface-2,#f8faf8);color:var(--pk-text-muted,#53665a)}
.probe-step>summary{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:48px;padding:9px 12px;cursor:pointer;list-style:none}
.probe-step>summary::-webkit-details-marker{display:none}
.probe-step>summary>span:nth-child(2){display:grid;gap:2px;min-width:0}
.probe-step>summary strong,.probe-step>summary small{display:block;min-width:0;overflow-wrap:anywhere}
.probe-step>summary small{font-weight:400;color:var(--pk-text-muted,#596a60)}
.probe-step-more{font-size:.85rem;color:var(--pk-text-muted,#52665a)}
.probe-step-mark{display:grid;place-items:center;width:24px;height:24px;border-radius:999px;background:var(--pk-surface-3,#e5f1e9);color:var(--pk-brand-text,#1e6642);font-weight:800;line-height:1}
.probe-step.is-error .probe-step-mark{background:var(--pk-critical-soft,#f8dddd);color:var(--pk-critical-fg,#8a2e2e)}
.probe-step.is-locked .probe-step-mark,.probe-step.is-next .probe-step-mark{background:var(--pk-surface-3,#e9edeb);color:var(--pk-text-muted,#65746b)}
.probe-step-heading{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-items:start}
#test-installation .probe-step-heading h3{margin:1px 0 2px;font-size:1rem}
.probe-step-heading p{margin:0;color:var(--pk-text-muted,#53665a)}
.probe-step-body{padding:2px 14px 14px 50px;min-width:0}
.probe-step-body .target-evaluation>h3{display:none}
.probe-step-body .target-evaluation>.meta:first-of-type{margin-top:6px}
.probe-install-form{display:grid;gap:12px;margin-top:12px;padding-left:38px}
.probe-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.probe-install-form label,.probe-cleanup-form label{display:grid;gap:5px;font-weight:700;min-width:0}
.probe-install-form input,.probe-cleanup-form input{min-height:44px;font:inherit;font-size:16px;box-sizing:border-box;width:100%;min-width:0;padding:10px 12px;border:1px solid var(--pk-border-strong,#cbd8ce);border-radius:9px;background:var(--pk-surface,#fff);color:var(--pk-text,#173f2b)}
.probe-install-form input:focus-visible,.probe-cleanup-form input:focus-visible{outline:3px solid var(--pk-focus,#245e40);outline-offset:2px}
.probe-confirmation{max-width:430px}
.probe-inline-error{margin:10px 0 0 38px}
.probe-error-log,.probe-retry{margin:10px 0 0 38px}
.probe-error-log>summary,.probe-retry>summary{font-weight:750}
.probe-error-log .probe-event-list{margin-bottom:8px}
.probe-cleanup-form{display:grid;gap:10px;margin:12px 0 0 38px;max-width:520px}
.probe-history{margin-top:12px;border-top:1px solid var(--pk-border,#dce5de);padding-top:10px}
.probe-history>summary{font-weight:700;color:var(--pk-text-muted,#52665a)}
.probe-history-empty{margin:12px 0 0}
.probe-target-detail{margin-top:8px}
#test-installation .target-preflight-result{margin-top:10px}
#test-installation .target-edit,#test-installation .target-save-evidence{margin-top:8px}
@media(max-width:680px){.probe-form-grid{grid-template-columns:1fr}.probe-step>summary{grid-template-columns:28px minmax(0,1fr)}.probe-step-more{grid-column:2}.probe-step-body{padding-left:12px}.probe-install-form{padding-left:0}.probe-inline-error,.probe-error-log,.probe-retry,.probe-cleanup-form{margin-left:0}}

/* v2.39.38 — live probe observability and explicit file selection. */
#test-installation .admin-topic-body{max-width:760px}
.probe-running-status{display:flex;align-items:center;gap:10px;margin:10px 0 6px 38px;padding:10px 12px;border:1px solid var(--pk-border,#cfe0d4);border-radius:10px;background:var(--pk-surface-2,#f5faf6)}
.probe-running-status>span:last-child{display:grid;gap:2px;min-width:0}
.probe-running-status small{color:var(--pk-text-muted,#52665a)}
.probe-spinner{width:16px;height:16px;border:2px solid var(--pk-border-strong,#b8c9bd);border-top-color:var(--pk-brand,#246b45);border-radius:50%;animation:probe-spin .85s linear infinite;flex:0 0 auto}
@keyframes probe-spin{to{transform:rotate(360deg)}}
.probe-file-field{padding:10px;border:1px solid var(--pk-border,#dce5de);border-radius:10px;background:var(--pk-surface,#fbfcfb)}
.probe-file-field>span:first-child{display:block;line-height:1.25}
.probe-file-field>span:first-child small{font-weight:500;color:var(--pk-text-muted,#5e6b63)}
.probe-file-selection{display:block;min-height:1.25em;margin-top:3px;font-size:.85rem;font-weight:600;color:var(--pk-text-muted,#6a776f);overflow-wrap:anywhere}
.probe-file-selection.has-file{color:var(--pk-brand-text,#245e40)}
.probe-history{margin-top:8px;padding-top:8px}
.probe-history .admin-actions{margin-bottom:2px}
.probe-error-log[open]>.probe-event-list{max-height:330px;overflow:auto;padding-right:5px}
@media(max-width:680px){.probe-running-status{margin-left:0}.probe-file-field{padding:9px}}
@media(prefers-reduced-motion:reduce){.probe-spinner{animation:none}}



/* v2.39.39 — calm, single-column candidate workflow. */
#test-installation .admin-topic-body{max-width:680px}
#test-installation .probe-flow{gap:7px}
#test-installation .probe-step.is-current{padding:13px 14px}
#test-installation .probe-step.is-error{background:var(--pk-surface,#fff);border-color:var(--pk-critical-border,#e4bcbc)}
#test-installation .probe-step-heading{gap:8px}
#test-installation .probe-step-heading p{font-size:.92rem;line-height:1.35}
.probe-install-form{padding-left:32px;gap:12px;max-width:560px}
.probe-file-stack{display:grid;gap:8px}
.probe-form-grid{display:block}
.probe-file-field{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"copy picker" "selection selection";gap:6px 10px;align-items:center;padding:10px 11px;background:var(--pk-surface,#fff);border:1px solid var(--pk-border,#d7e1da);border-radius:10px;min-width:0}
.probe-file-copy{grid-area:copy;display:grid;gap:1px;min-width:0}
.probe-file-copy strong{font-size:.95rem;line-height:1.2}
.probe-file-copy small{font-size:.8rem;font-weight:500;color:var(--pk-text-muted,#617067);line-height:1.25}
.probe-file-picker{grid-area:picker;display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:6px 11px;border:1px solid #9fb4a6;border-radius:8px;background:var(--pk-surface-2,#f8faf8);color:var(--pk-text,#173f2b);font-size:.88rem;font-weight:700;cursor:pointer;white-space:nowrap}
.probe-file-picker:hover{background:var(--pk-surface-3,#eef5f0)}
.probe-file-field:has(.probe-file-native:focus-visible) .probe-file-picker{outline:3px solid var(--pk-focus,#245e40);outline-offset:2px}
.probe-file-native{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;padding:0!important;margin:-1px!important}
.probe-file-selection{grid-area:selection;display:block;min-height:1.15em;margin:0;font-size:.82rem;font-weight:600;color:var(--pk-text-muted,#69766e);overflow-wrap:anywhere}
.probe-file-selection.has-file{color:var(--pk-brand-text,#21613e)}
.probe-file-selection.has-file::before{content:"✓ ";font-weight:800}
.probe-confirmation-block{display:grid;gap:6px;max-width:420px}
.probe-confirmation{display:flex!important;align-items:baseline;gap:8px;flex-wrap:wrap}
.probe-confirmation>span{font-weight:750}
.probe-confirmation small{font-weight:500;color:var(--pk-text-muted,#5f6d64)}
.probe-confirmation-block>input{min-height:42px}
.probe-form-note{margin:0;line-height:1.35}
.probe-running-status{margin:10px 0 4px 32px;padding:9px 11px;background:var(--pk-surface-2,#f7faf8)}
.probe-error-summary{margin:10px 0 0 32px;padding:10px 12px;border-left:4px solid #b84b4b;background:var(--pk-critical-soft,#fff7f7);border-radius:0 8px 8px 0}
.probe-error-summary strong{display:block;color:var(--pk-critical-fg,#8a2e2e);margin-bottom:3px}
.probe-error-summary p{margin:0;color:var(--pk-text-2,#4f403f);line-height:1.35;overflow-wrap:anywhere}
.probe-operation-log{margin:8px 0 0 32px}
.probe-operation-log>summary{font-weight:700;color:var(--pk-text-muted,#44594c)}
.probe-operation-log .probe-event-list{max-height:260px;overflow:auto;margin-bottom:8px;padding-right:5px}
.probe-next-action{margin:10px 0 0 32px;padding:10px 12px;border:1px solid var(--pk-border,#d9e4dc);border-radius:9px;background:var(--pk-surface-2,#fafcfb)}
.probe-next-action>strong{display:block;margin-bottom:3px}
.probe-next-action>p{margin:0 0 9px;color:var(--pk-text-muted,#53665a);line-height:1.35}
.probe-next-action .admin-actions{margin-top:4px}
.probe-retry{margin:0}
.probe-retry>summary{font-weight:750}
.probe-retry .probe-install-form{padding-left:0;margin-top:10px}
.probe-history{font-size:.92rem}
@media(max-width:760px){
  .probe-install-form,.probe-running-status,.probe-error-summary,.probe-operation-log,.probe-next-action,.probe-cleanup-form{margin-left:0;padding-left:0}
  .probe-error-summary,.probe-next-action{padding:10px 11px}
}
@media(max-width:520px){
  #test-installation .probe-step.is-current{padding:11px}
  .probe-file-field{grid-template-columns:1fr;grid-template-areas:"copy" "picker" "selection";align-items:stretch}
  .probe-file-picker{justify-self:start}
  .probe-step>summary{padding:8px 9px}
  .probe-step-heading{grid-template-columns:25px minmax(0,1fr)}
  .probe-step-mark{width:22px;height:22px}
}

/* v2.39.42 — manageable, protected CANDIDATE instance and success acceptance. */
.probe-access-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.probe-access-fields label{padding:9px 10px;border:1px solid var(--pk-border,#dce5de);border-radius:10px;background:var(--pk-surface,#fff)}
.probe-access-fields label>span{font-size:.92rem}
.probe-access-fields label>small{font-size:.78rem;font-weight:500;color:var(--pk-text-muted,#617067)}
.probe-success-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin:11px 0 0 32px}
.probe-success-grid>div{display:grid;gap:2px;padding:9px 10px;border:1px solid var(--pk-border,#d8e6dc);border-radius:9px;background:var(--pk-surface-2,#f7fbf8)}
.probe-success-grid span{font-size:.76rem;color:var(--pk-text-muted,#64736a)}
.probe-success-grid strong{font-size:.9rem;color:var(--pk-brand-text,#1d5f3d)}
.probe-access-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;margin:10px 0 0 32px;padding:12px;border:1px solid var(--pk-success-border,#b9d6c2);border-radius:10px;background:var(--pk-surface-2,#f2faf5)}
.probe-access-card>div{display:grid;gap:2px;min-width:0}
.probe-access-card span{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9rem;overflow-wrap:anywhere;color:var(--pk-brand-text,#245e40)}
.probe-access-card small{color:var(--pk-text-muted,#52665a);line-height:1.35}
.candidate-instance-banner{display:flex;align-items:flex-start;gap:10px;margin:0 0 14px;padding:10px 13px;border:1px solid var(--pk-border-strong,#c7d9cd);border-radius:10px;background:var(--pk-surface-2,#f2f8f4);color:var(--pk-brand-text,#294c38)}
.candidate-instance-banner strong{font-size:.78rem;letter-spacing:.05em;color:var(--pk-brand-text,#1f6a42)}
.candidate-instance-banner span{line-height:1.35}
@media(max-width:680px){.probe-access-fields{grid-template-columns:1fr}.probe-success-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-left:0}.probe-access-card{grid-template-columns:1fr;margin-left:0}.probe-access-card .primary-button{justify-self:start}.candidate-instance-banner{display:grid;gap:3px}}
.candidate-workspace-strip{display:flex;gap:8px;align-items:center;margin:8px 0 12px;padding:7px 10px;border:1px solid var(--pk-border-strong,#cadbcf);border-radius:9px;background:var(--pk-surface-2,#f4f9f5);color:var(--pk-brand-text,#365744);font-size:.86rem}
.candidate-workspace-strip strong{font-size:.75rem;letter-spacing:.05em;color:var(--pk-brand-text,#1f6a42)}
@media(max-width:560px){.candidate-workspace-strip{display:grid;gap:2px}}

/* v2.39.47 — SECONDARY is state-led: status/manage first, setup only when absent. */
#test-installation .admin-topic-body{max-width:700px}
#test-installation .secondary-management>h3{margin-top:14px}
.secondary-manage-panel{margin-top:12px;padding:12px 13px;border:1px solid var(--pk-border,#d8e3db);border-radius:11px;background:var(--pk-surface,#fbfcfb)}
#test-installation .secondary-manage-panel>h3{margin:0 0 8px}
.secondary-manage-panel>.admin-actions{margin-top:0}
.secondary-manage-panel>.compact-disclosure{margin-top:9px;background:var(--pk-surface,#fff)}
.secondary-danger-zone>summary{font-weight:750}
.secondary-technical{margin-top:10px}
.secondary-technical .probe-success-grid{margin:10px 0 0}
.secondary-bound-target{margin-top:10px}
.secondary-bound-target>.target-evaluation{padding-top:4px}
.secondary-setup{margin-top:14px;padding-top:2px;border-top:1px solid var(--pk-border,#e0e7e2)}
#test-installation .secondary-setup>h3{margin:14px 0 8px}
.secondary-installation{margin-top:14px;padding-top:12px;border-top:1px solid var(--pk-border,#e0e7e2)}
#test-installation .secondary-installation>h3{margin:0 0 7px}
.secondary-install-locked{margin:12px 0 0}
.secondary-existing-discovery{margin-top:10px}
.secondary-discovery-inline{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}
.secondary-discovery-inline .admin-actions{margin:0}
.secondary-discovery-inline small{color:var(--pk-text-muted,#5e6b63);line-height:1.35}
.secondary-target-summary{margin-top:4px}
.secondary-target-edit{margin-top:8px}
.target-check-details{margin-top:8px}
.target-check-details>.admin-setting{margin-top:8px}
.target-check-failures{margin-top:8px}
.target-check-successes{margin-top:8px}
.target-check-successes>.target-check-list{margin-top:8px}
#test-installation .probe-operation-log{margin-left:0}
#test-installation .probe-access-card{margin-left:0}
#test-installation .probe-cleanup-form{margin-left:0}
@media(max-width:680px){.secondary-discovery-inline{display:grid}.secondary-manage-panel{padding:11px}}

/* v2.39.49 — SECONDARY control surface: one state, one next action, diagnostics behind disclosure. */
#test-installation .admin-topic-body{max-width:700px}
.secondary-state-card{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:12px 0;padding:14px 15px;border:1px solid var(--pk-border,#d7e2da);border-radius:12px;background:var(--pk-surface-2,#f8faf8)}
.secondary-state-card.is-ready{border-color:var(--pk-success-border,#b9d6c2);background:var(--pk-surface-2,#f2faf5)}
.secondary-state-card.is-warning{border-color:var(--pk-attention-border,#e5d2a8);background:var(--pk-attention-soft,#fffaf0)}
.secondary-state-card.is-running{border-color:var(--pk-border-strong,#c8d8cd);background:var(--pk-surface-2,#f5f9f6)}
.secondary-running-spinner{width:22px;height:22px;border-width:3px}
.secondary-state-copy{display:grid;gap:3px;min-width:0}
.secondary-state-kicker{font-size:.75rem;font-weight:750;letter-spacing:.05em;text-transform:uppercase;color:var(--pk-text-muted,#617067)}
.secondary-state-copy>strong{font-size:1.05rem;color:var(--pk-text,#203f2d)}
.secondary-state-copy>span:not(.secondary-state-kicker){line-height:1.38;color:var(--pk-text-muted,#46584d)}
.secondary-state-copy>small{color:var(--pk-text-muted,#65736b);line-height:1.35}
.secondary-section-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:0 0 8px}
.secondary-section-head>div{display:grid;gap:1px}
.secondary-section-head span{font-size:.75rem;font-weight:750;letter-spacing:.05em;text-transform:uppercase;color:var(--pk-text-muted,#65736b)}
.secondary-section-head strong{font-size:1rem;color:var(--pk-text,#243d2e)}
.secondary-setup{margin-top:16px;padding-top:14px;border-top:1px solid var(--pk-border,#e0e7e2)}
.secondary-target-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 13px;border:1px solid var(--pk-border,#dce5de);border-radius:11px;background:var(--pk-surface,#fbfcfb)}
.secondary-target-card>div{display:grid;gap:2px;min-width:0}
.secondary-target-card span{font-size:.76rem;color:var(--pk-text-muted,#69756e)}
.secondary-target-card strong{font-size:.96rem;color:var(--pk-text,#233d2e);overflow-wrap:anywhere}
.secondary-target-card small{color:var(--pk-text-muted,#68756d);overflow-wrap:anywhere}
.secondary-target-card form{margin:0;flex:0 0 auto}
.secondary-target-edit{margin-top:7px}
.secondary-target-status{display:grid;gap:2px;margin-top:10px;padding:10px 12px;border-radius:10px;border:1px solid var(--pk-border,#dbe4dd);background:var(--pk-surface-2,#f8faf8)}
.secondary-target-status.is-ready{border-color:var(--pk-success-border,#bdd7c5);background:var(--pk-surface-2,#f2faf5)}
.secondary-target-status.is-blocked{border-color:var(--pk-attention-border,#e7d8b8);background:var(--pk-attention-soft,#fffaf2)}
.secondary-target-status>span{font-size:.74rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase;color:var(--pk-text-muted,#67746c)}
.secondary-target-status>strong{font-size:.94rem;color:var(--pk-text-2,#2b4736)}
.secondary-target-status>small{color:var(--pk-text-muted,#58685f);line-height:1.35}
.secondary-inline-feedback{margin:0 0 8px;padding:8px 10px;border-radius:8px;background:var(--pk-surface-2,#f7faf8);color:var(--pk-text-muted,#45584c);font-size:.9rem}
.secondary-inline-feedback.is-error{background:var(--pk-critical-soft,#fff6f3);color:var(--pk-critical-fg,#714136)}
.secondary-manage-panel{margin-top:12px;padding:12px 13px;border:1px solid var(--pk-border,#d8e3db);border-radius:11px;background:var(--pk-surface,#fbfcfb)}
.secondary-management-actions{margin-top:9px}
.secondary-software-deployment{margin-top:12px;padding-top:11px;border-top:1px solid var(--pk-border,#e2e8e3)}
.secondary-software-deployment .admin-setting{margin-top:9px}
.secondary-remove-control{margin-top:10px;border-top:1px solid var(--pk-border,#e6e9e6);padding-top:9px}
.secondary-remove-control>summary{display:inline-flex;align-items:center;width:auto;cursor:pointer;font-weight:750;color:var(--pk-critical-fg,#8a3434);list-style:none}
.secondary-remove-control>summary::-webkit-details-marker{display:none}
.secondary-remove-control>summary::after{content:'›';margin-left:6px}
.secondary-remove-control[open]>summary::after{transform:rotate(90deg)}
.secondary-remove-body{margin-top:8px;padding:10px 11px;border:1px solid var(--pk-critical-border,#ead4d0);border-radius:9px;background:var(--pk-critical-soft,#fff8f6)}
.secondary-remove-body p{margin:0 0 9px;line-height:1.4;color:var(--pk-text-muted,#654a45)}
.secondary-install-note{margin:11px 0 0;color:var(--pk-text-muted,#5c6b62);line-height:1.4}
.secondary-install-note.is-blocked{padding:9px 10px;border-radius:8px;background:var(--pk-attention-soft,#fff8ef);color:var(--pk-attention-fg,#70583d)}
.secondary-existing-discovery{margin-top:10px}
#test-installation .probe-history{margin-top:14px;border-top:1px solid var(--pk-border,#e1e7e3);padding-top:8px}
#test-installation .target-check-details{margin-top:7px}
#test-installation .target-check-details>summary,#test-installation .probe-history>summary{color:var(--pk-text-muted,#53645a);font-weight:700}
#test-installation .probe-operation-log{margin-left:0}
#test-installation .probe-cleanup-form{margin:0;flex:0 0 auto}
@media(max-width:680px){
  .secondary-state-card,.secondary-target-card{display:grid;align-items:start}
  .secondary-state-card>.primary-button,.secondary-target-card form{justify-self:start}
  .secondary-manage-panel{padding:11px}
}

/* v2.39.59 daily watering window */
.daily-care-section{margin-top:14px}.daily-care-list{display:grid;gap:8px}.daily-care-row{display:grid;grid-template-columns:minmax(160px,.8fr) minmax(280px,2fr) minmax(95px,.55fr);gap:16px;align-items:center;padding:12px 14px;border:1px solid var(--pk-border,#e1e8e3);border-radius:11px;background:var(--pk-surface,#fff);color:inherit;text-decoration:none}.daily-care-row:hover{background:var(--pk-surface-2,#f7faf7);border-color:var(--pk-border-strong,#cbd8cf)}.daily-care-row>span{display:grid;gap:3px}.daily-care-row small,.daily-care-row em{font-size:12px;color:var(--pk-text-muted,#68746c);font-style:normal}.daily-care-amount{text-align:right}.daily-care-amount b{font-size:18px;color:var(--pk-brand-text,#2e6544)}.daily-care-optional{border-left:5px solid #4d8a61}.daily-care-due{border-left:5px solid #d7a62a}.daily-care-avoid,.daily-care-observe{border-left:5px solid #a8b3ab}.daily-care-unavailable{border-left:5px solid var(--pk-border-strong,#c3c9c5)}.daily-care-collapsible>summary{display:flex;justify-content:space-between;align-items:center;gap:16px;cursor:pointer}.daily-care-collapsible>summary>span{display:grid;gap:3px}.daily-care-collapsible>summary small{color:var(--pk-text-muted,#68746c);font-weight:400}.daily-care-collapsible>.daily-care-list{margin-top:12px}.care-outlook-heading{margin-top:30px}.daily-care-card{margin:10px 0 14px;padding:14px 15px;border:1px solid var(--pk-border,#dce6df);border-left:5px solid #a8b3ab;border-radius:12px;background:var(--pk-surface,#fbfcfb)}.daily-care-card.daily-care-optional{border-left-color:#4d8a61;background:var(--pk-surface-2,#f4f9f5)}.daily-care-card.daily-care-due{border-left-color:#d7a62a;background:var(--pk-attention-soft,#fffaf0)}.daily-care-card.daily-care-avoid{border-left-color:#8a9a8f}.daily-care-card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.daily-care-card h3{margin:2px 0 0}.daily-care-dose{font-size:24px;white-space:nowrap;color:var(--pk-brand-text,#2e6544)}.daily-care-facts{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.daily-care-facts>span{display:grid;gap:2px;min-width:112px;padding:8px 10px;border-radius:9px;background:var(--pk-surface-3,#eef3ef)}.daily-care-facts small{font-size:10px;color:var(--pk-text-muted,#68746c)}.daily-care-facts strong{font-size:15px}.daily-care-card>p{margin:8px 0;color:var(--pk-text-muted,#536158)}.daily-care-card .help-context{font-size:12px}@media(max-width:720px){.daily-care-row{grid-template-columns:1fr auto}.daily-care-row>span:nth-child(2){grid-column:1/-1}.daily-care-amount{grid-column:2;grid-row:1;text-align:right}.daily-care-card-head{display:grid}.daily-care-dose{font-size:21px}}

/* v2.39.13 — HTML hidden is a global availability invariant.
   No component/display rule may make a state-dependent control visible while
   its hidden attribute says the action is unavailable in the current state. */

/* Role-based read views keep information readable and actions unmistakable. */
fieldset[data-access-blocked] { border: 0; padding: 0; margin: 0; min-width: 0; }
fieldset[data-access-blocked] legend { color: var(--muted, #65756a); font-size: .85rem; margin-bottom: .5rem; }
fieldset[data-access-blocked] button[type="submit"], button[data-access-blocked] { display: none !important; }
a[aria-disabled="true"] { opacity: .6; cursor: default; }
.access-session { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; padding: 1rem; }
.access-session form { margin: 0; }


/* Role forms retain the shared form layout while unavailable targets are disabled. */
#access-content .project-form > fieldset{border:0;margin:0;padding:0;min-width:0;display:grid;gap:12px;width:100%}
#access-content .project-form > fieldset:disabled{opacity:.65}

/* Access overview stays compact; editors open only after role selection. */
.access-overview-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--border,#dce5df)}
.access-overview-row .admin-actions{margin:0;gap:8px}
.access-role>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none}
.access-role>summary::after{content:'›';font-size:1.3em}
.access-role[open]>summary::after{content:'⌄'}
.access-role>summary span{margin-left:auto;font-size:.9em;color:var(--muted,#657570)}
@media(max-width:480px){.access-overview-row{flex-wrap:wrap}.access-overview-row>strong{flex-basis:100%}.access-role>summary{flex-wrap:wrap}}
.admin-actions a[aria-current="page"]{outline:3px solid var(--pk-action-focus,#245e40);outline-offset:3px;text-decoration:underline;text-underline-offset:3px}


/* Shared spacing between action groups and adjacent content on every workspace. */
:root{--ui-action-gap:10px;--ui-section-gap:16px}
:where(.admin-actions,.context-actions,.project-tools,.about-actions,.status-modal-actions,.topbar-actions){gap:var(--ui-action-gap);flex-wrap:wrap}
:where(.admin-actions,.context-actions,.project-tools,form)+:where(details,.admin-setting,.notice,.error){margin-block-start:var(--ui-section-gap)}
:where(details)+:where(.admin-actions,.context-actions,.project-tools,form){margin-block-start:var(--ui-section-gap)}
.compact-disclosure>summary{min-height:32px;padding-block:6px;cursor:pointer}
.compact-disclosure>summary+*{margin-block-start:12px}
.project-form>fieldset[data-access-blocked]{display:grid;gap:12px;width:100%}
fieldset[data-access-blocked] button:not([type]){display:none!important}
.topbar-action-icon{display:inline-flex;align-items:center;justify-content:center;inline-size:1.1em;flex:0 0 1.1em;font-size:1.1em;line-height:1}
.topbar-action{gap:6px}
.access-session{display:flex;align-items:center;min-width:0}
.topbar-session-form{margin:0;display:flex}
.topbar .topbar-session-button{gap:8px;padding:0 12px;justify-content:flex-start;min-width:0}
.topbar-session-copy{display:flex;flex-direction:column;align-items:center;justify-content:center;row-gap:1px;line-height:1;min-width:0}
.topbar-session-role{display:block;font-size:10px;line-height:1;font-weight:500;color:#4d5f54;white-space:nowrap}
.topbar-session-label{display:block;font-size:var(--ui-control-font);line-height:1;font-weight:700;white-space:nowrap}
.topbar-session-host{margin-left:auto}
@media(max-width:760px){.topbar .topbar-session-button{padding-inline:10px}.topbar-session-role{font-size:9px}}

/* One icon vocabulary; page titles stay plain, chapter headings use icons, subheadings stay plain. */
.ui-icon{display:inline-block;inline-size:1.15em;block-size:1.15em;flex:0 0 1.15em;vertical-align:-.18em;pointer-events:none}
h2>.ui-icon{margin-inline-end:8px;color:var(--pk-brand-text,#286744)}
:where(main h2){line-height:1.3}
:where(main h3){line-height:1.35}

summary .ui-icon{margin-inline-end:8px}
[hidden]{display:none!important}

/* Journal activities: every disclosure spans the complete record, including
   optional cloud reconciliation. Compact contexts retain the mobile layout. */
.journal-event>details{grid-column:1/-1;min-width:0}
@media(max-width:760px){.compact-journal article{grid-template-columns:1fr}}
@media(max-width:480px){.panel-title-row{flex-direction:column;align-items:stretch}}

/* v2.42.4 — DEV-authoritativer Projektstand bleibt eine ruhige, explizite Projektion. */
.memory-hero-side{display:grid;justify-items:end;gap:10px}
.project-sync-form{margin:0}
.project-sync-summary{display:flex;justify-content:flex-end;gap:8px 14px;flex-wrap:wrap;margin:-8px 0 16px;color:var(--pk-text-muted,#627068);font-size:12px}
@media(max-width:760px){.memory-hero-side{justify-items:start}.project-sync-summary{justify-content:flex-start}}

.daily-care-entry{min-width:0}.care-review-controls{margin:6px 14px 10px}.care-review-controls>summary{cursor:pointer;font-size:13px;color:var(--pk-brand-text,#2e6544)}.care-review-controls .project-form{margin-top:10px;max-width:640px}.daily-care-deferred{border-left:5px solid #a8b3ab}

.care-decisions{margin-top:14px}.care-decisions details{margin:10px 0}.care-decisions>details>summary{cursor:pointer}.care-decisions .project-form{margin-top:12px;max-width:640px}

.care-decisions>details>summary{font-size:16px;font-weight:600;color:inherit}

/* Selection lists carry orientation; selected plant details carry explanation. */
.priority-strip,.care-queue-list{grid-template-columns:minmax(0,1fr)}
.priority-item,.care-queue-item{grid-template-columns:minmax(0,1fr) minmax(0,2fr) auto;align-items:center;min-width:0;gap:6px 12px;padding:10px 12px}
.priority-item>*,.care-queue-item>*{min-width:0;overflow-wrap:anywhere}
.care-assessment-details>summary,.care-background-details>summary{cursor:pointer;font-size:14px;font-weight:600}
.care-background-details{margin:16px 0}.care-background-details>.care-advice{margin-top:12px}
/* Shared containers must be shrinkable; actions wrap instead of escaping. */
fieldset,.form-row>*,.panel-title-row>*,.context-actions>*,.live-actions>*,.topbar-actions>*{min-width:0}
.context-actions,.live-actions{flex-wrap:wrap}
main :where(button,.primary-button,.secondary-button,.tertiary-button,.danger-button),.topbar-action{max-width:100%;overflow-wrap:anywhere;white-space:normal}
.settings-grid{grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr))}
@media(max-width:760px){
  .priority-item,.care-queue-item{grid-template-columns:minmax(0,1fr);gap:3px}
  .priority-item>small,.care-queue-item>small{font-size:12px}
  .topbar .topbar-action{height:auto;min-height:var(--ui-control-height);padding:9px 12px}
  .form-row>label,.project-form :where(input,select,textarea){min-width:0;max-width:100%;box-sizing:border-box}
  .daily-care-facts>span{min-width:0;max-width:100%;overflow-wrap:anywhere}
}

/* One rhythm for reading, decisions and continuation links across workspaces. */
.context-links{margin-block:var(--ui-section-gap);gap:var(--ui-action-gap) var(--ui-section-gap);font-size:inherit}
.context-links a{display:inline-flex;align-items:center;min-height:36px;max-width:100%;overflow-wrap:anywhere;text-underline-offset:3px}
.context-links a:visited{color:var(--pk-brand-text,#285c3d)}
.context-actions{margin-block-start:var(--ui-section-gap)}
:where(.care-assessment-details,.care-amount-learning,.care-history-details,.care-record-controls,.care-review-controls)>summary{padding-block:8px;cursor:pointer;line-height:1.4}
:where(.care-assessment-details,.care-amount-learning,.care-history-details,.care-record-controls,.care-review-controls)[open]>summary{margin-block-end:12px}
:where(.care-decisions,.care-amount-learning,.care-history-details){margin-block:var(--ui-section-gap)}
.care-next-step{margin-block:var(--ui-section-gap);padding-block:12px;border-block:1px solid var(--pk-border,#dce6df)}
.care-next-step p{margin-block:6px 0}.care-reading{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline}.care-reading span,.care-certainty,.care-last-action{color:var(--pk-text-muted,#52655a);font-size:.9rem}
.care-inspection{line-height:1.5}.care-last-action{margin-block:12px}
@media(max-width:760px){.context-links a{min-height:44px}.context-links{gap:8px 16px}.care-next-step{padding-block:12px}}
/* Shared history forms must also fit when nested inside plant disclosures. */
.care-event-delete>label,.history-import>label{min-width:0;max-width:100%;flex:1 1 160px}
.care-event-delete input,.history-import input{width:100%;max-width:100%;min-width:0;box-sizing:border-box}

/* Contextual care preferences and optional outdoor weather share spacing. */
.care-preferences-context,.care-weather{margin-block:16px}
.care-preferences>summary,.care-weather>summary{padding-block:8px;cursor:pointer;line-height:1.4;overflow-wrap:anywhere}
.care-preferences[open]>summary,.care-weather[open]>summary{margin-bottom:12px}
.care-preferences .project-form,.weather-settings .project-form{display:grid;gap:16px;min-width:0;margin-block:16px}
.care-preferences label,.weather-settings label{display:grid;gap:8px;min-width:0}
.care-preferences .form-checkbox{display:flex;align-items:flex-start;gap:8px}
.care-preferences :is(input,select),.weather-settings :is(input,select){max-width:100%;min-width:0;box-sizing:border-box}
.care-weather .context-actions form,.weather-settings .context-actions form{margin:0;max-width:100%;min-width:0}
.care-weather button,.weather-settings button{white-space:normal;overflow-wrap:anywhere;max-width:100%}

.care-preferences input[type="checkbox"]{width:18px;height:18px;flex:0 0 18px;margin:0;align-self:center}
.care-preferences label small,.weather-settings label small{font-size:13px;font-weight:400;line-height:1.45;color:var(--pk-text-muted,#52655a)}

/* Per-plant configuration is one identifiable destination, outside daily care. */
.plant-settings>summary{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 20px;list-style:revert}
.plant-settings>summary strong{font-size:18px}.plant-settings>summary span{font-size:14px;color:var(--pk-text-muted,#52655a);overflow-wrap:anywhere}
.plant-settings .care-preferences-context{margin-block:16px 0}
.plant-settings-values{display:grid;gap:12px;margin-block:16px}
.plant-settings-values div{min-width:0}.plant-settings-values dt{font-weight:600}.plant-settings-values dd{margin:4px 0 0;overflow-wrap:anywhere}
.plant-settings>summary::before{content:'▸';flex:0 0 auto}
.plant-settings[open]>summary::before{content:'▾'}

/* Weather shares the global dialog/action grammar; details stay plant-centred. */
.weather-card{width:min(1000px,calc(100vw - 36px));min-width:0}
.weather-card h2{display:flex;align-items:center;gap:10px}
.weather-icon{width:24px;height:24px;flex:none;vertical-align:middle}
.topbar-action .weather-icon{width:17px;height:17px}
.weather-location{display:flex;flex-direction:column;gap:6px;margin:0 0 20px}
.weather-days{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.weather-day{padding:16px 12px;border:1px solid var(--pk-border,#dce7df);border-radius:14px;background:var(--pk-surface-2,#f5f8f5);min-width:0}
.weather-day h3{margin:0 0 3px;font-size:1rem}
.weather-day>.weather-icon{display:block;width:36px;height:36px;margin:14px 0 10px;color:var(--pk-brand-text,#497f60)}
.weather-day>strong{display:block;min-height:1.4em}
.weather-day p{margin:12px 0 0}.weather-day .meta{font-size:.8rem}
.weather-today{background:var(--pk-surface-3,#edf5ef);border-color:#8cbaa0}
.weather-temperature{font-weight:700;font-size:1.1rem}
.weather-plants{margin-top:28px}.weather-plants>h3{margin-bottom:8px}
.weather-plant{border-top:1px solid var(--pk-border,#dce7df);padding:14px 0}
.weather-plant>summary{display:list-item;cursor:pointer;overflow-wrap:anywhere}
.weather-plant>summary strong{margin-right:12px}.weather-plant>summary span{color:var(--pk-text-muted,#5c6d63)}
.weather-plant-body{padding:4px 0 0 18px}.weather-plant-body p{margin:14px 0}
.weather-effect{display:flex;gap:12px;align-items:flex-start}
.weather-explanation{margin-top:22px}.weather-explanation p{margin:14px 0}
.weather-source{margin-top:22px;display:flex;flex-wrap:wrap;gap:6px}
.weather-footer{margin-top:24px;padding-top:18px;border-top:1px solid var(--pk-border,#dce7df)}
#weather-feedback:empty{display:none}
@media(max-width:700px){.weather-days{grid-template-columns:repeat(2,minmax(0,1fr))}.weather-today{grid-column:1/-1}.weather-plant>summary span{display:block;margin:8px 0 0 18px}.weather-card h2{font-size:1.2rem}.weather-plant-body{padding-left:0}}

@media(max-width:700px){.weather-day{display:grid;grid-template-columns:28px minmax(0,1fr);gap:6px 8px}.weather-day>h3,.weather-day>span,.weather-day>strong{grid-column:2}.weather-day>.weather-icon{grid-column:1;grid-row:1/4;width:26px;height:26px;margin:0}.weather-day p{grid-column:1/-1;margin:4px 0 0}.weather-day>strong{min-height:0;font-size:.9rem}}
#weather-modal [hidden]{display:none!important}
.weather-card .status-modal-head{position:sticky;top:-22px;background:var(--pk-surface,#fff);z-index:2;padding-block:8px}
.weather-card .status-modal-close{min-width:44px;min-height:44px;flex:none}
@media(max-width:760px){.weather-card .status-modal-head{top:-16px}}

/* Kontextbezogene Standort-/Rückkehr-Auswahl muss auch auf 320px umbrechen. */
#plant-context form label { min-width: 0; max-width: 100%; }
#plant-context form select,
#plant-context form input,
#plant-context form textarea { min-width: 0; max-width: 100%; box-sizing: border-box; }
#plant-context select[name="relocation_event_id"] { width: 100%; }

/* Per-plant conditions: part of the single settings disclosure, not a second panel. */
.plant-conditions-settings{border-top:1px solid var(--pk-border,#dce7df);margin-top:22px;padding-top:18px;min-width:0}
.plant-conditions-heading{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:start}
.plant-conditions-heading h3{margin:0 0 5px;font-size:1.05rem}
.plant-conditions-heading p{max-width:78ch;margin:0 0 14px}
.plant-conditions-overview h4,.plant-condition-editor h4{font-size:.96rem;margin:16px 0 8px}
.plant-condition-list{padding:0;margin:0;list-style:none;border-top:1px solid var(--pk-border,#e2e9e4)}
.plant-condition-list>li{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:11px 0;border-bottom:1px solid var(--pk-border,#e2e9e4);min-width:0}
.plant-condition-list>li>div{min-width:0;flex:1 1 240px;overflow-wrap:anywhere}
.plant-condition-list p{margin:4px 0}.plant-condition-list small{color:var(--pk-text-muted,#586b5e)}
.plant-condition-list a{white-space:normal;text-align:left}
.plant-condition-list ol{padding-left:20px;margin-top:8px}
.plant-condition-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:14px}
.plant-condition-editor{background:var(--pk-surface-2,#f7faf8);border:1px solid var(--pk-border,#dce7df);border-radius:10px;padding:15px;margin-top:16px;min-width:0}
.plant-condition-editor form{margin-block:12px}.plant-condition-editor textarea,.plant-condition-editor select,.plant-condition-editor input{max-width:100%}
@media(max-width:390px){.plant-condition-editor{padding:10px}.plant-condition-list>li{align-items:flex-start}.plant-condition-actions{align-items:flex-start}}

/* Context form: only actual relocation requires a journal selection. Other
   conditions stay a single simple factual entry. In browsers without :has(),
   the journal controls remain available (progressive enhancement). */
.project-form:has(select[name="aspect"] option:not([value="location"]):checked) .context-move-only { display: none; }

/* Native compact disclosure registers; no tile/navigation family. */
.plant-settings .settings-intro{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:center;margin:4px 0 12px}
.plant-settings .settings-intro h2{font-size:1.08rem;margin:0}
.plant-settings .settings-intro .meta{flex-basis:100%;margin:0;color:var(--muted,#586a5e)}
.plant-settings .settings-topic{border-top:1px solid var(--border,#dce5df);padding:4px 0;margin:0;min-width:0}
.plant-settings .settings-topic:last-child{border-bottom:1px solid var(--border,#dce5df)}
.plant-settings .settings-topic>summary{font-weight:650;line-height:1.4;padding:9px 6px;list-style:revert;overflow-wrap:anywhere}
.plant-settings .settings-topic>summary small{display:block;font-size:.82rem;font-weight:400;color:var(--muted,#596d60);padding-top:2px}
.plant-settings .settings-topic-body{padding:4px 10px 12px;min-width:0}
.plant-settings .settings-topic-body>.meta{margin:0 0 12px}
.plant-settings .settings-help{display:inline-flex;gap:6px;align-items:center;font-size:.84rem;margin:0 0 8px;text-decoration:none;color:var(--pk-brand-text,#236647);border-radius:5px}
.plant-settings .settings-help:hover,.plant-settings .settings-help:focus-visible{text-decoration:underline}
.plant-settings .settings-intro .settings-help{margin:0}
.plant-settings .settings-field-help{margin:8px 0}
.plant-settings .plant-conditions-settings{margin:0;padding:0;border:0;background:none}
@media(max-width:480px){.plant-settings .settings-topic-body{padding-inline:3px}}

/* v2.46.7: Only the conditions editor. Native settings disclosure is the single container. */
.plant-settings #plant-context .plant-condition-editor{background:transparent;border:0;border-radius:0;padding:0;margin-top:12px}
.plant-settings #plant-context .plant-condition-editor .project-form{border:0;border-radius:0;box-shadow:none;background:transparent;padding:0;margin:10px 0;gap:12px}
.plant-settings #plant-context .plant-condition-editor .context-actions{margin-top:8px}
.plant-settings #plant-context [data-plant-context-new][hidden]{display:none!important}
.plant-settings #plant-context .visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}

/* Project knowledge and existing Handoff workspace: one-column, touch-safe form. */
.handoff-text-editor{margin-top:16px;padding-top:14px;border-top:1px solid var(--border,#dce5df);min-width:0}
.handoff-text-editor h3{margin:0 0 8px;font-size:1.05rem}
.handoff-text-editor p{margin:6px 0 10px}
.handoff-text-editor textarea{display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box;min-height:160px;resize:vertical;font:inherit;line-height:1.5}
.handoff-inline-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0}
.handoff-inline-actions>button{max-width:100%;white-space:normal;min-height:44px}
#chat-knowledge{min-width:0;overflow-wrap:anywhere}
#chat-knowledge form{min-width:0;max-width:100%}
#chat-knowledge input[type="file"]{width:100%;max-width:100%;min-width:0}
#chat-knowledge .knowledge-entry{padding:11px 0;border-bottom:1px solid var(--border,#dce5df);min-width:0}
#chat-knowledge .knowledge-entry p{overflow-wrap:anywhere;margin:6px 0}
#chat-knowledge .knowledge-entry label{display:flex;align-items:flex-start;gap:9px;min-width:0;overflow-wrap:anywhere}
#chat-knowledge .knowledge-entry input[type="checkbox"]{flex-shrink:0;margin-top:3px}
@media(max-width:480px){.handoff-inline-actions>button{width:100%}.handoff-text-editor textarea{min-height:220px}}

/* Independent optional Handoff tools; existing compact disclosure UI. */
#handoff{min-width:0;overflow-wrap:anywhere}
#handoff .handoff-intro{margin:6px 0 10px}
#handoff .handoff-option{margin-top:12px;min-width:0}
#handoff .handoff-option-body{padding:4px 0 6px;min-width:0}
#handoff .handoff-option-body p{margin:6px 0 10px}
#handoff .handoff-command{display:flex;gap:10px;align-items:center;flex-wrap:wrap;min-width:0}
#handoff .handoff-command code{background:var(--bg-soft,#f1f5f2);padding:9px 12px;border-radius:6px;overflow-wrap:anywhere;min-width:0}
#handoff .handoff-command button,#handoff .handoff-option-body>button{min-height:44px}
#handoff .handoff-import-form{display:flex;flex-direction:column;align-items:stretch;gap:10px;margin:12px 0;min-width:0}
#handoff .handoff-import-form input[type=file]{min-width:0;max-width:100%;width:100%;box-sizing:border-box}
#handoff .handoff-import-form>button{align-self:flex-start}
#handoff .knowledge-entry{border-top:1px solid var(--border,#dce5df);padding:12px 0;min-width:0}
#handoff .knowledge-entry label{display:flex;align-items:flex-start;gap:10px;overflow-wrap:anywhere}
#handoff .knowledge-entry input[type=checkbox]{flex-shrink:0;margin-top:4px}
#handoff .handoff-knowledge-list{max-height:350px;overflow-y:auto;overflow-x:hidden}
#handoff .handoff-knowledge-saved,#handoff .handoff-text-details{margin:12px 0;min-width:0}
#handoff .handoff-knowledge-saved>summary,#handoff .handoff-text-details>summary{cursor:pointer;font-weight:600;padding:8px 0}
#handoff .handoff-review-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-top:8px}
#handoff .handoff-review-form label{flex-direction:column;gap:4px}
#handoff .handoff-text-editor{border:0;margin:0;padding:0}
@media(max-width:480px){#handoff .handoff-import-form>button,#handoff .handoff-command button,#handoff .handoff-option-body>button{width:100%}#handoff .handoff-command code{width:100%;box-sizing:border-box}}

/* Knowledge import and archive: compact native checkbox list, optional detail. */
#handoff .handoff-knowledge-all{display:flex;align-items:center;gap:9px;font-weight:600}
#handoff .handoff-knowledge-all input{flex-shrink:0}
#handoff .handoff-knowledge-detail{margin:3px 0 0 28px;min-width:0}
#handoff .handoff-knowledge-detail>summary{font-size:.9em;cursor:pointer;padding:4px 0}
#handoff .handoff-knowledge-detail p{margin:6px 0}
#handoff .handoff-knowledge-list{max-height:400px}
#handoff .handoff-knowledge-saved .knowledge-entry{padding:7px 0}

/* Species knowledge reuses the existing compact disclosure, without a new navigation. */
#species-knowledge{margin-top:10px} .species-knowledge-list{margin:0;padding-left:20px;display:grid;gap:10px} .species-knowledge-list li{line-height:1.5;overflow-wrap:anywhere} .species-knowledge-list small{display:block;font-size:12px;color:var(--pk-text-muted,#65716a);margin-top:2px}

/* Use the existing native disclosure: catalog evidence stays collapsed. */
#species-knowledge .species-catalog-disclosure{margin-top:12px;padding-top:8px;border-top:1px solid var(--border,#dde7df)}
#species-knowledge .species-catalog-disclosure>summary{min-height:32px}


/* A one-sided moisture gauge has no green care zone: show its known limit even for an unassessed value. */
.state-unknown .vertical-gauge[data-partial="true"]{opacity:1;filter:none}

/* Visibility is decided by the hidden attribute, including nested disclosures. */
[hidden]{display:none!important}
