@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@500;600;700&display=swap');

:root{
  color-scheme:dark;
  --bg:#02070b;--surface:#071118;--surface2:#0a161f;--border:rgba(135,199,219,.13);
  --border-strong:rgba(85,215,237,.28);--text:#dce8ec;--muted:#728891;
  --cyan:#55d7ed;--amber:#f3aa3b;--purple:#9d83f5;--danger:#f06c75;--success:#68d69d;
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;min-height:100vh;color:var(--text);background:
radial-gradient(circle at 50% -10%,rgba(85,215,237,.07),transparent 38rem),
linear-gradient(180deg,#02070b,#030a0f 65%,#02070b);
font-family:Inter,system-ui,sans-serif;font-size:14px}
button,input,select,textarea{font:inherit}
button,a{transition:.16s ease}
button{cursor:pointer}
button:disabled{opacity:.42;cursor:not-allowed}
a{color:inherit}
code{font-family:"JetBrains Mono",monospace;color:#b9dfe7}

.site-header{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 1rem;border-bottom:1px solid var(--border);background:rgba(2,8,12,.82);backdrop-filter:blur(14px);position:sticky;top:0;z-index:30}
.site-brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;font-family:"JetBrains Mono",monospace;letter-spacing:.12em}
.site-brand strong{font-size:.78rem;color:#d7e7ec}.site-brand small{font-size:.56rem;color:var(--cyan)}
.brand-orbit{width:24px;height:24px;border:1px solid rgba(85,215,237,.45);border-radius:50%;box-shadow:0 0 16px rgba(85,215,237,.18);position:relative}
.brand-orbit:before,.brand-orbit:after{content:"";position:absolute;border-radius:50%}
.brand-orbit:before{width:5px;height:5px;background:var(--cyan);left:9px;top:9px;box-shadow:0 0 10px var(--cyan)}
.brand-orbit:after{inset:4px;border:1px dashed rgba(85,215,237,.28)}
.site-header-actions{display:flex;align-items:center;gap:.55rem;color:var(--muted);font-size:.68rem}
.online-dot{width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 10px var(--success)}
.user-label{font-family:"JetBrains Mono",monospace}

.apiary-view{width:min(1780px,calc(100% - 2rem));margin:.75rem auto 1.2rem}.apiary-dashboard{display:grid;gap:.75rem}
.apiary-hero{display:flex;min-height:8.5rem;padding:1.25rem 1.4rem;align-items:center;justify-content:space-between;gap:1rem;border:1px solid rgba(135,199,219,.15);border-radius:1rem;background:radial-gradient(circle at 80% 50%,rgba(243,170,59,.09),transparent 18rem),rgba(5,14,20,.75)}
.apiary-hero h1{margin:.35rem 0 0;font-size:clamp(1.65rem,3.4vw,2.8rem);letter-spacing:-.035em}.apiary-lead{margin:.55rem 0 0;color:var(--muted)}
.panel-label{margin:0;color:#6f9ca8;font:700 .61rem/1.2 "JetBrains Mono",monospace;letter-spacing:.12em}
.apiary-primary-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.55rem}

.primary-button,.secondary-button,.ghost-button,.danger-button,.apiary-big-button,.mini-action-button{min-height:2.75rem;padding:0 .85rem;border-radius:.65rem;border:1px solid var(--border);background:#08131a;color:#b8cbd1;font-size:.73rem}
.primary-button{border-color:rgba(85,215,237,.38);background:rgba(85,215,237,.1);color:#baf4ff}
.secondary-button{border-color:rgba(135,199,219,.18);background:rgba(7,18,25,.7)}
.ghost-button{background:transparent}.danger-button{border-color:rgba(240,108,117,.36);background:rgba(240,108,117,.09);color:#ffc1c6}.danger-text-button{color:#dda0a6}
.primary-button:hover,.secondary-button:hover,.ghost-button:hover,.apiary-big-button:hover,.mini-action-button:hover{border-color:rgba(85,215,237,.52);transform:translateY(-1px)}
.button-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.apiary-big-button{border-color:rgba(243,170,59,.45);background:rgba(243,170,59,.13);color:#ffd48f;box-shadow:none}.apiary-big-button span{margin-right:.25rem;color:var(--amber);font-size:.9rem}
.full-button{width:100%}

.apiary-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.65rem}
.apiary-metrics>div{padding:.85rem 1rem;border:1px solid var(--border);border-radius:.85rem;background:rgba(4,12,18,.72)}
.apiary-metrics strong,.apiary-metrics span{display:block}.apiary-metrics strong{color:var(--amber);font:500 1.45rem/1 "JetBrains Mono",monospace}.apiary-metrics span{margin-top:.35rem;color:var(--muted);font-size:.67rem}

.apiary-layout{display:grid;grid-template-columns:minmax(14rem,.76fr) minmax(34rem,2.1fr) minmax(15rem,.83fr);align-items:start;gap:.75rem}
.apiary-left-column,.apiary-center-column,.apiary-right-column{display:grid;gap:.75rem}
.apiary-panel{min-width:0;padding:1rem;border:1px solid var(--border);border-radius:1rem;background:linear-gradient(145deg,rgba(10,22,31,.82),rgba(3,9,14,.72))}
.panel-heading,.hive-detail-header,.entity-panel-actions,.hive-header-actions,.export-actions{display:flex;align-items:center;justify-content:space-between;gap:.55rem}.entity-panel-actions,.hive-header-actions,.export-actions{flex-wrap:wrap}
.micro-badge{padding:.22rem .45rem;border:1px solid rgba(85,215,237,.17);border-radius:999px;color:#8ec3cf;background:rgba(85,215,237,.045);font:650 .56rem/1 "JetBrains Mono",monospace}
.mini-action-button{min-height:1.85rem;padding:0 .55rem;border-radius:.45rem;font-size:.61rem;background:rgba(85,215,237,.05);color:#a9dfe8}.danger-mini-button{border-color:rgba(240,108,117,.18);background:rgba(240,108,117,.035);color:#dda0a6}

label{display:grid;gap:.36rem;color:#8fa4ac;font-size:.67rem}
input,select,textarea{width:100%;min-height:2.5rem;padding:.55rem .65rem;border:1px solid var(--border);border-radius:.55rem;background:#050d12;color:#d6e5e9;outline:none}
textarea{resize:vertical;min-height:5rem}input:focus,select:focus,textarea:focus{border-color:rgba(85,215,237,.45);box-shadow:0 0 0 3px rgba(85,215,237,.05)}
.apiary-select-label{margin-top:.8rem}.apiary-meta,.apiary-detail-list{display:grid;gap:.45rem;margin-top:.8rem}.apiary-meta div,.apiary-detail-list div{display:grid;grid-template-columns:minmax(5rem,.45fr) minmax(0,1fr);gap:.5rem;padding-bottom:.35rem;border-bottom:1px solid rgba(135,199,219,.07)}dt{color:var(--muted);font-size:.65rem}dd{margin:0;color:#c7d5da;font-size:.69rem;overflow-wrap:anywhere}

.apiary-hive-list{display:grid;max-height:47rem;gap:.5rem;margin-top:.75rem;overflow-y:auto}
.apiary-hive-card{display:grid;width:100%;min-height:4.6rem;padding:.75rem;grid-template-columns:minmax(0,1fr) auto;gap:.25rem .65rem;border:1px solid rgba(135,199,219,.12);border-radius:.65rem;background:rgba(2,8,12,.5);text-align:left}
.apiary-hive-card strong,.apiary-hive-card span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.apiary-hive-card strong{color:#dbe7eb;font-size:.8rem}.apiary-hive-card span{grid-column:1/-1;color:var(--muted);font-size:.64rem}
.hive-status-dot{grid-column:2;grid-row:1;width:.65rem;height:.65rem;border-radius:50%;background:#71858d;box-shadow:0 0 8px rgba(113,133,141,.32);align-self:center}.hive-status-active{background:#63d5a2;box-shadow:0 0 10px rgba(99,213,162,.52)}.hive-status-empty{background:#65aee9;box-shadow:0 0 10px rgba(101,174,233,.48)}.hive-status-reserve{background:#dda34a;box-shadow:0 0 10px rgba(221,163,74,.48)}.hive-status-out-of-service{background:#d96872;box-shadow:0 0 10px rgba(217,104,114,.46)}.hive-status-unknown{background:#71858d;box-shadow:0 0 8px rgba(113,133,141,.32)}.apiary-hive-card.has-attention:not(.active){border-color:rgba(243,170,59,.22);box-shadow:inset 2px 0 0 rgba(243,170,59,.34)}.apiary-hive-card.active{border-color:var(--amber);background:rgba(243,170,59,.075)}

.hive-detail-header{align-items:flex-start}.hive-detail-header h2{margin:.25rem 0 0;font-size:1.55rem}.apiary-muted,.apiary-disclaimer,.weather-message,.export-panel p{color:var(--muted);font-size:.72rem;line-height:1.5}
.hive-status-grid{display:grid;margin:1rem 0;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem}.hive-status-grid>div{padding:.7rem;border:1px solid rgba(135,199,219,.1);border-radius:.7rem;background:rgba(1,7,11,.36)}.hive-status-grid span,.hive-status-grid strong{display:block}.hive-status-grid span{color:var(--muted);font-size:.61rem}.hive-status-grid strong{margin-top:.25rem;color:#dce8ec;font-size:.77rem}

.trend-panel,.subpanel{padding:.8rem;border:1px solid rgba(135,199,219,.1);border-radius:.8rem;background:rgba(1,6,10,.48)}
.trend-picker select{min-height:2rem;padding:.35rem 1.8rem .35rem .55rem;border-radius:999px;font:600 .61rem/1 "JetBrains Mono",monospace}
#apiary-trend-canvas{display:block;width:100%;height:14rem!important;margin-top:.5rem}
.trend-legend{display:flex;gap:.9rem;color:var(--muted);font-size:.65rem}.trend-legend span:before{display:inline-block;width:.5rem;height:.5rem;margin-right:.3rem;border-radius:50%;content:""}.legend-cyan:before{background:var(--cyan)}.legend-amber:before{background:var(--amber)}.legend-purple:before{background:var(--purple)}
.trend-events{display:flex;flex-wrap:wrap;gap:.35rem;min-height:1.55rem;margin-top:.55rem}.trend-event-chip{padding:.25rem .45rem;border:1px solid rgba(135,199,219,.12);border-radius:999px;color:#8ea4ad;background:rgba(6,17,24,.65);font-size:.58rem}

.hive-analysis-grid,.record-grid{display:grid;margin-top:.8rem;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.hive-analysis-grid>section{padding:.8rem;border:1px solid rgba(135,199,219,.1);border-radius:.8rem}
.swarm-score{margin-top:.65rem;color:var(--amber);font:500 2.25rem/1 "JetBrains Mono",monospace}
.apiary-fact-list,.biosecurity-list{display:grid;gap:.4rem;margin:.6rem 0 0;padding-left:1.1rem;color:#9fb1b8;font-size:.68rem;line-height:1.45}.biosecurity-list{padding-left:0;list-style:none}.biosecurity-list li:before{content:"◇";margin-right:.4rem;color:var(--cyan)}

.inspection-history,.compact-history,.apiary-signal-list,.task-list{display:grid;gap:.5rem;margin-top:.7rem}
.inspection-history-item{display:grid;padding:.65rem 0;grid-template-columns:8rem minmax(0,1fr);gap:.6rem;border-bottom:1px solid rgba(135,199,219,.07)}.inspection-history-item time{color:var(--cyan);font:650 .63rem/1.4 "JetBrains Mono",monospace}.inspection-history-body{display:grid;gap:.45rem}.inspection-history-actions{display:flex;flex-wrap:wrap;gap:.35rem}
.compact-record,.task-item{padding:.58rem;border:1px solid rgba(135,199,219,.08);border-radius:.6rem;background:rgba(2,8,12,.3)}.compact-record strong,.task-item strong{font-size:.68rem}.compact-record p,.task-item p{margin:.25rem 0 0;color:var(--muted);font-size:.62rem;line-height:1.4}.record-actions{display:flex;gap:.3rem;margin-top:.4rem}
.apiary-signal-card{padding:.7rem;border:1px solid rgba(243,170,59,.2);border-left:2px solid var(--amber);border-radius:.65rem;background:rgba(243,170,59,.04)}.apiary-signal-card strong{color:#edc07a;font-size:.73rem}.apiary-signal-card p{margin:.35rem 0 0;color:var(--muted);font-size:.65rem;line-height:1.4}
.season-panel>strong{display:block;margin-top:.75rem;color:var(--cyan)}.weather-message{padding-top:.65rem;border-top:1px solid rgba(135,199,219,.08)}
.inventory-list{display:grid;gap:.4rem;margin:.7rem 0}.inventory-item{display:flex;justify-content:space-between;gap:.6rem;padding:.35rem 0;border-bottom:1px solid rgba(135,199,219,.06);color:#afc0c6;font-size:.68rem}.inventory-item.low{color:var(--amber)}

.apiary-modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:1rem;background:rgba(0,4,7,.82);backdrop-filter:blur(10px)}.apiary-modal[hidden]{display:none}.apiary-modal-card{width:min(100%,46rem);max-height:92vh;overflow:auto;padding:1rem;border:1px solid rgba(85,215,237,.2);border-radius:1rem;background:linear-gradient(145deg,#0a1720,#040b10);box-shadow:0 24px 80px rgba(0,0,0,.55)}.inspection-modal-card{width:min(100%,58rem)}
.apiary-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.9rem}.apiary-modal-header h2{margin:.25rem 0 0}.modal-close{width:2.2rem;height:2.2rem;border:1px solid var(--border);border-radius:50%;background:transparent;color:#a4b5bb;font-size:1.3rem}.record-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.field-wide{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.apiary-warning{padding:.7rem;border-left:2px solid var(--amber);background:rgba(243,170,59,.05);color:#cdb27f;font-size:.68rem;line-height:1.5}.assistant-form-message{min-height:1.2rem;color:var(--muted);font-size:.68rem}
.acknowledgement,.check-row{display:flex;grid-template-columns:auto 1fr;align-items:flex-start;gap:.5rem;margin:.8rem 0;color:#9eb0b6}.acknowledgement input,.check-row input{width:auto;min-height:0;margin-top:.1rem}

.inspection-picker{display:flex;align-items:end;gap:.65rem}.inspection-picker label{flex:1}.inspection-progress{height:4px;margin:.4rem 0 1rem;border-radius:999px;background:#071118;overflow:hidden}.inspection-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--cyan),var(--amber));transition:width .2s ease}.previous-inspection{padding:.7rem;border:1px solid rgba(135,199,219,.08);border-radius:.7rem;background:rgba(2,8,12,.35);color:var(--muted);font-size:.67rem}.inspection-question-panel{padding:1rem 0}.inspection-question-panel h3{min-height:2.4rem;margin:.35rem 0 1rem}.inspection-answer-control{display:grid;gap:.5rem}.choice-grid{display:flex;flex-wrap:wrap;gap:.45rem}.choice-button{min-height:2.45rem;padding:0 .7rem;border:1px solid var(--border);border-radius:.55rem;background:#061016;color:#a8bac0}.choice-button.active{border-color:var(--amber);background:rgba(243,170,59,.08);color:#ffd48f}.inspection-navigation{display:flex;align-items:center;justify-content:space-between;gap:.7rem;margin-top:.8rem}.inspection-navigation p{flex:1;text-align:center;color:var(--muted);font-size:.65rem}.inspection-review-list{display:grid;grid-template-columns:11rem minmax(0,1fr);gap:.4rem .7rem}.inspection-review-list dt,.inspection-review-list dd{padding:.25rem 0;border-bottom:1px solid rgba(135,199,219,.06)}

.toast-stack{position:fixed;right:1rem;bottom:1rem;z-index:200;display:grid;gap:.5rem}.toast{min-width:18rem;max-width:28rem;padding:.75rem .85rem;border:1px solid var(--border);border-radius:.7rem;background:#07131a;color:#bfd0d6;box-shadow:0 16px 50px rgba(0,0,0,.45);font-size:.68rem}.toast.success{border-color:rgba(104,214,157,.35)}.toast.danger{border-color:rgba(240,108,117,.4);color:#ffc3c7}

.auth-page{display:grid;place-items:center;padding:1rem}.auth-card{width:min(100%,30rem);padding:1.4rem;border:1px solid var(--border);border-radius:1rem;background:rgba(5,14,20,.88);box-shadow:0 30px 90px rgba(0,0,0,.5)}.auth-card h1{margin:.35rem 0}.auth-lead{color:var(--muted);line-height:1.6}.stack-form{display:grid;gap:.75rem;margin-top:1rem}.notice{margin:.8rem 0;padding:.7rem;border-radius:.6rem;font-size:.7rem}.notice.success{border:1px solid rgba(104,214,157,.3);background:rgba(104,214,157,.05);color:#a8eac7}.notice.danger{border:1px solid rgba(240,108,117,.3);background:rgba(240,108,117,.05);color:#ffc1c5}.brand-mark{display:grid;place-items:center;width:46px;height:46px;margin-bottom:1rem;border:1px solid rgba(85,215,237,.35);border-radius:50%;color:var(--cyan);font-family:"JetBrains Mono",monospace}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@media(max-width:1200px){.apiary-layout{grid-template-columns:15rem minmax(0,1fr)}.apiary-right-column{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr))}.apiary-right-column>.apiary-panel:nth-child(n+4){grid-column:auto}.apiary-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:850px){.apiary-view{width:min(100% - 1rem,1780px)}.apiary-hero,.hive-detail-header{align-items:stretch;flex-direction:column}.apiary-primary-actions,.hive-header-actions{justify-content:stretch}.apiary-primary-actions>*,.hive-header-actions>*{flex:1 1 auto}.apiary-layout{grid-template-columns:1fr}.apiary-right-column{grid-column:auto;grid-template-columns:1fr}.apiary-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.hive-analysis-grid,.record-grid{grid-template-columns:1fr}.record-form-grid{grid-template-columns:1fr}.field-wide{grid-column:auto}}
@media(max-width:600px){.site-header{height:auto;min-height:58px;align-items:flex-start;gap:.7rem;padding:.7rem;flex-direction:column}.site-header-actions{width:100%;justify-content:space-between}.apiary-metrics{grid-template-columns:1fr}.hive-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.inspection-history-item{grid-template-columns:1fr}.inspection-review-list{grid-template-columns:1fr}.inspection-picker{align-items:stretch;flex-direction:column}}

.site-footer{padding:.8rem 1rem 1.4rem;text-align:center;color:#536870;font:600 .56rem/1.4 "JetBrains Mono",monospace;letter-spacing:.04em}.site-footer strong{color:#78939d}

/* v2.1.0 - multi-user + weather + multilingual UI */
.auth-switch{margin:.9rem 0 0;color:var(--muted);font-size:.7rem;text-align:center}.auth-switch a{color:var(--cyan)}
.location-helper{display:grid;gap:.3rem;align-content:end}.location-helper span{color:var(--muted);font-size:.58rem;line-height:1.35}
.weather-current{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.42rem;margin-top:.75rem}.weather-current>div{padding:.55rem;border:1px solid rgba(135,199,219,.09);border-radius:.6rem;background:rgba(2,8,12,.34)}.weather-current strong,.weather-current span{display:block}.weather-current strong{color:#d9e7eb;font:650 .76rem/1.2 "JetBrains Mono",monospace}.weather-current span{margin-top:.18rem;color:var(--muted);font-size:.56rem}.weather-forecast{display:grid;gap:.35rem;margin-top:.55rem}.weather-forecast article{display:grid;grid-template-columns:5.4rem 1fr auto;gap:.45rem;padding:.38rem 0;border-bottom:1px solid rgba(135,199,219,.06);align-items:center}.weather-forecast time{color:var(--cyan);font:600 .56rem/1 "JetBrains Mono",monospace}.weather-forecast strong{font-size:.62rem}.weather-forecast span{color:var(--muted);font-size:.56rem;text-align:right}.weather-attribution{display:inline-block;margin-top:.35rem;color:#789ba5;font-size:.55rem;text-decoration:underline;text-underline-offset:2px}
@media(max-width:600px){.weather-current{grid-template-columns:1fr 1fr}.weather-forecast article{grid-template-columns:1fr 1fr}.weather-forecast article span{grid-column:1/-1;text-align:left}}

/* v2.1.0 - NL/EN language selector */
.language-switcher{display:inline-flex;align-items:center;gap:.2rem;padding:.18rem;border:1px solid rgba(135,199,219,.12);border-radius:999px;background:rgba(3,10,15,.58)}
.language-option{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;min-height:1.65rem;padding:0 .42rem;border-radius:999px;color:#718b94;text-decoration:none;font:650 .55rem/1 "JetBrains Mono",monospace;letter-spacing:.06em}
.language-option:hover{color:#b8ebf3;background:rgba(85,215,237,.06)}
.language-option.active{color:#071118;background:var(--cyan);box-shadow:0 0 14px rgba(85,215,237,.18)}
.auth-card>.language-switcher{float:right;margin-bottom:.7rem}
@media(max-width:600px){.site-header-actions{flex-wrap:wrap}.language-switcher{order:3}}

/* v2.1.0 — optional MQTT / ThingsBoard smart-hive telemetry */
.sensor-panel{overflow:hidden}.sensor-panel-heading{align-items:flex-start}.sensor-heading-actions{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;justify-content:flex-end}.sensor-provider-line{margin:.28rem 0 0}.sensor-status-badge,.hive-iot-badge{display:inline-flex;align-items:center;gap:.32rem;padding:.28rem .5rem;border:1px solid var(--border);border-radius:999px;font:700 .56rem/1 "JetBrains Mono",monospace;letter-spacing:.05em}.sensor-status-badge:before,.hive-iot-badge:before{content:"";width:.45rem;height:.45rem;border-radius:50%;background:#58717a}.sensor-online,.hive-iot-online{border-color:rgba(104,214,157,.32);color:#a7e9c5;background:rgba(104,214,157,.055)}.sensor-online:before,.hive-iot-online:before{background:var(--success);box-shadow:0 0 9px rgba(104,214,157,.6)}.sensor-offline,.hive-iot-offline{border-color:rgba(240,108,117,.32);color:#ffc0c5;background:rgba(240,108,117,.055)}.sensor-offline:before,.hive-iot-offline:before{background:var(--danger)}.sensor-configured,.hive-iot-configured{border-color:rgba(243,170,59,.3);color:#ffd18a;background:rgba(243,170,59,.05)}.sensor-configured:before,.hive-iot-configured:before{background:var(--amber)}.sensor-disabled,.hive-iot-disabled{color:#82979f;background:rgba(135,199,219,.025)}.sensor-none{color:#6e8289;background:transparent}.sensor-empty-state{margin-top:.75rem;padding:1rem;border:1px dashed rgba(135,199,219,.14);border-radius:.75rem;background:rgba(2,8,12,.3);color:var(--muted);font-size:.7rem;line-height:1.5}.sensor-latest-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;margin-top:.8rem}.sensor-value-card{padding:.72rem;border:1px solid rgba(135,199,219,.1);border-radius:.7rem;background:rgba(1,7,11,.4)}.sensor-value-card span,.sensor-value-card strong,.sensor-value-card time{display:block}.sensor-value-card span{color:var(--muted);font-size:.6rem}.sensor-value-card strong{margin-top:.25rem;color:#dce8ec;font:600 1.05rem/1.15 "JetBrains Mono",monospace}.sensor-value-card time{margin-top:.3rem;color:#5f7780;font-size:.55rem}.sensor-alert-list{display:grid;gap:.4rem;margin-top:.65rem}.sensor-alert{padding:.55rem .65rem;border-left:2px solid var(--amber);border-radius:.45rem;background:rgba(243,170,59,.045);color:#c9b07d;font-size:.64rem}.sensor-alert.offline{border-left-color:var(--danger);background:rgba(240,108,117,.04);color:#d9a0a5}.sensor-chart-toolbar{display:flex;align-items:end;justify-content:space-between;gap:.7rem;margin-top:.8rem}.sensor-chart-toolbar>label{min-width:13rem}.sensor-period-buttons{display:flex;gap:.35rem;flex-wrap:wrap}.sensor-period.active{border-color:rgba(85,215,237,.45);color:#baf4ff;background:rgba(85,215,237,.08)}.sensor-chart-wrap{height:15rem;margin-top:.55rem;padding:.55rem;border:1px solid rgba(135,199,219,.08);border-radius:.7rem;background:rgba(1,6,10,.42)}#sensor-history-canvas{width:100%!important;height:100%!important}.sensor-worker-status{margin:.5rem 0 0}.hive-iot-badge{grid-column:1/-1;width:max-content;margin-top:.1rem}.iot-config-tabs{display:flex;gap:.45rem;margin-bottom:.8rem}.iot-provider-button.active{border-color:var(--cyan);color:#baf4ff;background:rgba(85,215,237,.08)}.iot-config-section{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.iot-config-section[hidden]{display:none}.iot-channel-table-wrap{margin-top:.9rem;overflow:auto;border:1px solid rgba(135,199,219,.1);border-radius:.7rem}.iot-channel-table{width:100%;border-collapse:collapse;min-width:880px}.iot-channel-table th,.iot-channel-table td{padding:.48rem;border-bottom:1px solid rgba(135,199,219,.07);text-align:left;font-size:.62rem;vertical-align:middle}.iot-channel-table th{color:#789ba5;background:rgba(5,15,21,.88);font:700 .56rem/1.2 "JetBrains Mono",monospace;letter-spacing:.05em}.iot-channel-table input[type="checkbox"]{width:auto;min-height:0}.iot-channel-table input{min-height:2rem;padding:.35rem .45rem;font-size:.62rem}.iot-help{margin:.55rem 0 0;color:var(--muted);font-size:.64rem;line-height:1.5}.iot-secret-note{color:#9fb1b8;font-size:.6rem}.iot-danger-zone{margin-top:.8rem;padding-top:.75rem;border-top:1px solid rgba(240,108,117,.14)}
@media(max-width:900px){.sensor-latest-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sensor-chart-toolbar{align-items:stretch;flex-direction:column}.sensor-chart-toolbar>label{min-width:0;width:100%}.iot-config-section{grid-template-columns:1fr}}
@media(max-width:520px){.sensor-latest-grid{grid-template-columns:1fr}.sensor-heading-actions{width:100%;justify-content:flex-start}}

.sensor-runtime-line{display:flex;justify-content:space-between;gap:.6rem;align-items:center;flex-wrap:wrap}.sensor-refresh-status{margin:.5rem 0 0;color:#5f7780}.sensor-refresh-status.is-refreshing:before{content:"";display:inline-block;width:.42rem;height:.42rem;margin-right:.35rem;border-radius:50%;background:var(--cyan);box-shadow:0 0 8px rgba(85,215,237,.65);animation:sensorRefreshPulse 1s ease-in-out infinite}@keyframes sensorRefreshPulse{0%,100%{opacity:.35}50%{opacity:1}}


/* v2.1.3 — compacte legenda voor kaststatus in de linker kastlijst */
.hive-status-legend{
  display:flex;
  flex-wrap:wrap;
  gap:.35rem .55rem;
  margin:.65rem 0 .15rem;
  padding:.5rem .55rem;
  border:1px solid rgba(135,199,219,.08);
  border-radius:.6rem;
  background:rgba(2,8,12,.34);
}
.hive-status-legend-item{
  display:inline-flex;
  align-items:center;
  gap:.32rem;
  color:#8da2aa;
  font:600 .56rem/1.2 "JetBrains Mono",monospace;
  white-space:nowrap;
}
.hive-status-legend-dot{
  display:inline-block;
  width:.48rem;
  height:.48rem;
  flex:0 0 .48rem;
  border-radius:50%;
  background:#71858d;
  box-shadow:0 0 7px rgba(113,133,141,.3);
}
.hive-status-legend-dot.hive-status-active{background:#63d5a2;box-shadow:0 0 8px rgba(99,213,162,.48)}
.hive-status-legend-dot.hive-status-empty{background:#65aee9;box-shadow:0 0 8px rgba(101,174,233,.45)}
.hive-status-legend-dot.hive-status-reserve{background:#dda34a;box-shadow:0 0 8px rgba(221,163,74,.45)}
.hive-status-legend-dot.hive-status-out-of-service{background:#d96872;box-shadow:0 0 8px rgba(217,104,114,.43)}


/* v2.1.6 — automatische / handmatige lotnummering */
.harvest-lot-selector{display:grid;gap:.45rem}
.harvest-lot-title{color:#a9bbc1;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.harvest-lot-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
.harvest-lot-choice{display:flex!important;align-items:flex-start;gap:.55rem;padding:.65rem;border:1px solid rgba(135,199,219,.12);border-radius:.65rem;background:rgba(2,8,12,.48);cursor:pointer}
.harvest-lot-choice:has(input:checked){border-color:rgba(85,215,237,.38);box-shadow:inset 2px 0 0 rgba(85,215,237,.52);background:rgba(85,215,237,.045)}
.harvest-lot-choice input{width:auto!important;margin:.15rem 0 0;accent-color:#55d7ed}
.harvest-lot-choice span{display:grid;gap:.2rem}
.harvest-lot-choice strong{color:#dbe7eb;font-size:.72rem}
.harvest-lot-choice small,.harvest-auto-lot small,.harvest-lot-explainer span{color:#81979f;font-size:.61rem;line-height:1.45}
.harvest-auto-lot,.harvest-lot-explainer{display:grid;gap:.32rem;padding:.62rem .7rem;border:1px solid rgba(221,163,74,.18);border-radius:.65rem;background:rgba(221,163,74,.045)}
.harvest-auto-lot>span,.harvest-lot-explainer strong{color:#b8c9cf;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.harvest-auto-lot code{color:#dda34a;font:700 .88rem/1.3 "JetBrains Mono",monospace;letter-spacing:.035em}
@media(max-width:700px){.harvest-lot-options{grid-template-columns:1fr}}
