.sensor-hub{display:grid;gap:18px;padding:24px;border:1px solid #d5e6f2;border-radius:26px;background:linear-gradient(145deg,#f5fbff,#f9f7ff)}.sensor-hub-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.sensor-hub-head h2{margin:.25rem 0 .45rem}.sensor-hub-head p{margin:0;max-width:780px;color:#5d7484}.sensor-source-key{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.sensor-source-key span{font-size:.72rem;border-radius:999px;padding:5px 8px;background:#fff;border:1px solid #d7e5ef;white-space:nowrap}.sensor-hub-status{padding:10px 13px;border-radius:12px;background:#eef7ff;border:1px solid #cee3f1}.sensor-hub-status[data-kind="warn"]{background:#fff5e8;border-color:#efd4a1}.sensor-hub-status[data-kind="ok"]{background:#edf9f2;border-color:#b9e4ca}.sensor-launch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.sensor-launch-card{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;text-align:left;padding:18px;border:1px solid #d9e6ef;border-radius:18px;background:#fff;cursor:pointer}.sensor-launch-card:hover{box-shadow:0 12px 28px rgba(20,53,80,.09);transform:translateY(-1px)}.sensor-launch-card>span:nth-child(2){display:grid;gap:3px}.sensor-launch-card small{color:#6c7d89}.sensor-launch-card b{font-size:.8rem;color:#315f7d}.sensor-launch-icon{display:grid;place-items:center;min-width:56px;height:46px;padding:0 8px;border-radius:13px;background:#0f3552;color:#fff;font-weight:800;letter-spacing:.04em}.sensor-current-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.sensor-current-grid>article{display:grid;gap:7px;background:#fff;border:1px solid #dfe9f0;border-radius:14px;padding:13px}.sensor-current-grid>article>span{font-size:.75rem;font-weight:700;color:#597084}.sensor-value{display:grid;grid-template-columns:1fr auto;gap:5px 9px;align-items:center;padding:12px;border-radius:13px;background:#f5f9fc}.sensor-value.compact{padding:8px 10px}.sensor-value strong{font-size:1.35rem}.sensor-value strong small{font-size:.72rem}.sensor-value-source{grid-column:1/-1;color:#71818c}.sensor-state{font-size:.72rem;padding:4px 7px;border-radius:999px;background:#edf1f4}.sensor-state.good{background:#e6f7ed;color:#176a42}.sensor-state.medium{background:#fff3d8;color:#8a5a00}.sensor-state.poor{background:#ffe6e0;color:#9a3828}.sensor-history{background:#fff;border:1px solid #d9e6ef;border-radius:18px;padding:18px}.sensor-history-head h3{margin:.2rem 0 12px}.sensor-history-row{display:grid;grid-template-columns:1fr 1fr 1.7fr auto;gap:10px;align-items:center;padding:9px 0;border-top:1px solid #edf2f5}.sensor-history-row:first-child{border-top:0}.sensor-history-type{font-weight:700}.sensor-history-row time,.sensor-history-row>span:nth-child(3){color:#6c7c88;font-size:.82rem}.sensor-empty{color:#687b89;margin:0}.sensor-learning-note{padding:12px 14px;border-radius:12px;background:#edf7ff;color:#294d66}.sensor-dialog{width:min(920px,calc(100vw - 28px));max-height:86vh;border:0;border-radius:24px;padding:0;box-shadow:0 26px 70px rgba(5,28,44,.28);overflow:auto}.sensor-dialog::backdrop{background:rgba(4,22,35,.62);backdrop-filter:blur(3px)}.sensor-dialog-top{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:20px 22px;background:#fff;border-bottom:1px solid #e4edf3}.sensor-dialog-top h2{margin:.2rem 0 0}.sensor-dialog-close{border:0;background:#edf4f8;width:38px;height:38px;border-radius:50%;font-size:1.5rem;cursor:pointer}.sensor-source-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:20px 22px}.sensor-source-options section{display:flex;flex-direction:column;gap:10px;border:1px solid #dce7ee;border-radius:16px;padding:16px;background:#fff}.sensor-source-options h3{margin:0}.sensor-source-options p{margin:0;color:#617582}.sensor-source-options label{font-size:.8rem;font-weight:700;color:#425d70}.source-pill{align-self:flex-start;font-size:.7rem;font-weight:800;border-radius:999px;padding:5px 8px;background:#edf3f7}.source-pill.phone{background:#e7f4ff}.source-pill.external{background:#eef0ff}.source-pill.online{background:#e8f9f0}.source-pill.simulated{background:#fff3dc}.sensor-input-row,.sensor-button-row{display:flex;gap:8px;flex-wrap:wrap}.sensor-input-row input,.sensor-source-options select{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #c7d8e4;border-radius:10px;font:inherit;background:#fff}.sensor-input-row input{flex:1;min-width:120px}.sensor-source-options section>button,.sensor-source-options section .sensor-input-row,.sensor-source-options section .sensor-button-row{margin-top:auto}.sensor-source-options small{color:#6d7d88}.sensor-meter{height:9px;border-radius:999px;background:#e7eef3;overflow:hidden}.sensor-meter i{display:block;height:100%;width:0;background:currentColor;transition:width .15s linear}.sensor-dialog-actions{display:flex;justify-content:flex-end;padding:0 22px 22px}.sensor-dialog-actions .primary{min-width:180px}@media(max-width:900px){.sensor-launch-grid,.sensor-current-grid,.sensor-source-options{grid-template-columns:1fr}.sensor-hub-head{display:grid}.sensor-source-key{justify-content:flex-start}.sensor-dialog{width:min(700px,calc(100vw - 22px))}}@media(max-width:620px){.sensor-hub{padding:16px}.sensor-launch-card{grid-template-columns:auto 1fr}.sensor-launch-card b{grid-column:2}.sensor-history-row{grid-template-columns:1fr 1fr}.sensor-history-row>span:nth-child(3),.sensor-history-row time{grid-column:1/-1}.sensor-dialog-top,.sensor-source-options{padding-left:15px;padding-right:15px}.sensor-dialog-actions{padding:0 15px 15px}.sensor-dialog-actions .primary{width:100%}}
/* HUB Senzori 2.0 — green/blue workbook palette */
.sensor-hub{background:linear-gradient(135deg,#eaf8ef 0%,#f2fbf9 55%,#e6f3fc 100%);border-color:#b8ddcf;margin:22px 0}
.sensor-launch-grid,.sensor-current-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.sensor-launch-card{border-color:#b9ddcf;min-height:105px;background:linear-gradient(135deg,#ffffff,#f1fbf5)}
.sensor-launch-card:focus-visible{outline:3px solid #168c72;outline-offset:3px}
.sensor-launch-icon{background:linear-gradient(145deg,#087d69,#176ba2)}
.sensor-orin-insight{margin:0 22px 22px;padding:20px;border-radius:20px;background:linear-gradient(145deg,#e9f8ef,#eef8ff);border:1px solid #b8ddcf}
.sensor-orin-heading{display:flex;gap:12px;align-items:center}.sensor-orin-heading img{height:64px;width:64px;object-fit:contain}.sensor-orin-heading h3{margin:2px 0}
.sensor-orin-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}
.sensor-orin-steps article{background:#fff;padding:12px;border-radius:12px;display:grid;gap:7px}
.sensor-orin-steps article>span,.sensor-orin-mission>strong{font-size:.75rem;font-weight:800;color:#176b75}
.sensor-orin-steps article p{margin:0;line-height:1.45}
.sensor-orin-mission{display:grid;gap:8px;background:#fff;border-radius:14px;padding:14px}
.sensor-orin-mission p{margin:0}.sensor-orin-mission textarea{font:inherit;box-sizing:border-box;width:100%;padding:12px;border:1px solid #b8d7d1;border-radius:10px}
.sensor-orin-mission button{justify-self:start}
@media(max-width:900px){.sensor-launch-grid,.sensor-current-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.sensor-launch-grid,.sensor-current-grid,.sensor-orin-steps{grid-template-columns:1fr}.sensor-orin-insight{margin:0 12px 12px;padding:12px}}
