@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap";.mask-backdrop[data-v-757376f2]{position:fixed;top:0;right:0;bottom:0;left:0;background:#1414148c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.mask[data-v-757376f2]{background:var(--paper);border-radius:var(--radius);padding:28px 30px;max-width:560px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 12px 40px #00000040}.eyebrow[data-v-757376f2]{text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:700;color:#a1332b;margin:0 0 6px}.mask-header h2[data-v-757376f2]{font-size:19px;font-weight:800;margin:0 0 18px}.field-block[data-v-757376f2]{margin-bottom:16px}.field-label[data-v-757376f2]{display:block;font-size:12px;font-weight:700;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.field-value[data-v-757376f2]{font-size:14px;background:var(--panel);padding:4px 8px;border-radius:6px;display:inline-block}.field-note[data-v-757376f2]{font-size:12px;color:#a1332b;margin:6px 0 0}.diff-block[data-v-757376f2]{display:flex;gap:12px;align-items:stretch;margin-bottom:16px}.diff-col[data-v-757376f2]{flex:1;min-width:0}.diff-arrow[data-v-757376f2]{display:flex;align-items:center;font-size:20px;color:var(--ink-soft)}.diff-value[data-v-757376f2]{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:8px;font-size:12px;overflow-x:auto;margin:0}.rationale[data-v-757376f2]{font-size:14px;color:var(--ink-soft);margin:0}.status-badge[data-v-757376f2]{display:inline-block;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;margin-bottom:14px}.status-pending[data-v-757376f2]{background:#fdf1dc;color:#7a5210}.status-confirmed[data-v-757376f2]{background:#e3f5ea;color:#00643e}.status-rejected[data-v-757376f2]{background:#fbe7e6;color:#a1332b}.status-expired[data-v-757376f2]{background:#eee;color:#666}.error[data-v-757376f2]{color:#a1332b;font-size:13px}.mask-actions[data-v-757376f2]{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}.reject-form[data-v-757376f2]{display:flex;flex-direction:column;gap:8px;margin-top:10px}.reject-form textarea[data-v-757376f2]{font-family:var(--font);border:1px solid var(--border);border-radius:8px;padding:8px}.expired-note[data-v-757376f2]{font-size:13px;color:var(--ink-soft)}.assistant-root[data-v-5ac78ea3]{display:flex;align-items:stretch;flex-shrink:0}.toggle-btn[data-v-5ac78ea3]{flex-shrink:0;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;background:var(--brand-green);color:#fff;border:none;border-radius:8px 0 0 8px;padding:12px 8px;font-family:var(--font);font-weight:700;font-size:13px;cursor:pointer;writing-mode:vertical-rl;text-orientation:mixed}.sidebar[data-v-5ac78ea3]{flex-shrink:0;width:340px;max-width:90vw;background:var(--paper);border-left:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}@media(max-width:768px){.assistant-root[data-v-5ac78ea3]{flex-direction:column;width:100%}.toggle-btn[data-v-5ac78ea3]{width:100%;min-height:40px;writing-mode:horizontal-tb;text-orientation:initial;border-radius:0}.sidebar[data-v-5ac78ea3]{width:100%;max-width:100%;border-left:none;border-top:1px solid var(--border)}}.sidebar-header[data-v-5ac78ea3]{padding:14px 16px;border-bottom:1px solid var(--border)}.eyebrow[data-v-5ac78ea3]{text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:700;color:var(--brand-green);margin:0 0 2px}.context-line[data-v-5ac78ea3]{font-size:12px;color:var(--ink-soft);margin:0}.messages[data-v-5ac78ea3]{flex:1;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;gap:8px}.hint[data-v-5ac78ea3]{font-size:13px;color:var(--ink-soft)}.msg[data-v-5ac78ea3]{font-size:13px;padding:8px 10px;border-radius:8px;white-space:pre-wrap}.msg-user[data-v-5ac78ea3]{background:var(--brand-green);color:#fff;align-self:flex-end}.msg-assistant[data-v-5ac78ea3]{background:var(--panel);color:var(--ink);align-self:flex-start}.msg-system[data-v-5ac78ea3]{background:#fdf1dc;color:#7a5210;align-self:center;font-size:12px}.composer[data-v-5ac78ea3]{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--border)}.composer textarea[data-v-5ac78ea3]{flex:1;font-family:var(--font);border:1px solid var(--border);border-radius:8px;padding:8px;resize:none}.btn-sm[data-v-5ac78ea3]{padding:8px 14px;font-size:13px;align-self:flex-end}.shell[data-v-cdb1ebff]{min-height:100%;display:flex;flex-direction:column}.topbar[data-v-cdb1ebff]{display:flex;align-items:center;justify-content:space-between;padding:18px 32px;border-bottom:1px solid var(--border);position:relative}.brand[data-v-cdb1ebff]{display:flex;align-items:center;gap:10px;color:var(--ink)}.brand[data-v-cdb1ebff]:hover{text-decoration:none}.mark[data-v-cdb1ebff]{width:34px;height:34px;flex-shrink:0}.wordmark[data-v-cdb1ebff]{font-size:18px;font-weight:500;letter-spacing:-.01em}.wordmark strong[data-v-cdb1ebff]{font-weight:800;color:var(--brand-green)}.nav-toggle[data-v-cdb1ebff]{display:none;flex-direction:column;justify-content:center;gap:4px;width:36px;height:36px;padding:6px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);cursor:pointer}.nav-toggle-bar[data-v-cdb1ebff]{display:block;width:100%;height:2px;background:var(--ink);border-radius:1px}.nav-actions[data-v-cdb1ebff]{display:flex;align-items:center;gap:14px}.nav-primary[data-v-cdb1ebff]{font-weight:700}.user-chip[data-v-cdb1ebff]{font-size:14px;color:var(--ink-soft)}.btn-sm[data-v-cdb1ebff]{padding:8px 16px;font-size:14px}.body-row[data-v-cdb1ebff]{display:flex;flex:1;min-height:0}@media(max-width:768px){.body-row[data-v-cdb1ebff]{flex-direction:column}}.content[data-v-cdb1ebff]{flex:1;min-width:0;width:100%;max-width:760px;margin:0 auto;padding:56px 24px}@media(min-width:1024px){.content[data-v-cdb1ebff]{max-width:1040px}}.footer[data-v-cdb1ebff]{border-top:1px solid var(--border);padding:20px 32px;display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--ink-soft)}.footer nav a[data-v-cdb1ebff]{color:var(--ink-soft)}.footer .dot[data-v-cdb1ebff]{margin:0 8px}@media(max-width:640px){.footer[data-v-cdb1ebff]{flex-direction:column;gap:8px;text-align:center}}@media(max-width:768px){.nav-toggle[data-v-cdb1ebff]{display:flex}.nav-actions[data-v-cdb1ebff]{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:8px;padding:16px 24px 20px;background:var(--panel);border-bottom:1px solid var(--border);box-shadow:0 8px 16px #00000014;z-index:20}.nav-actions--open[data-v-cdb1ebff]{display:flex}.nav-actions .btn[data-v-cdb1ebff],.nav-actions .user-chip[data-v-cdb1ebff]{width:100%;text-align:center}.nav-actions .user-chip[data-v-cdb1ebff]{padding:8px 0}}.kpi-card[data-v-3e2c7693]{display:block;border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;background:var(--panel);text-decoration:none;color:inherit}.kpi-card--linked[data-v-3e2c7693]{cursor:pointer;transition:box-shadow .15s ease}.kpi-card--linked[data-v-3e2c7693]:hover{box-shadow:0 4px 14px #0000001a}.kpi-top[data-v-3e2c7693]{display:flex;align-items:center;gap:8px;margin-bottom:6px}.kpi-icon[data-v-3e2c7693]{font-size:16px}.kpi-label[data-v-3e2c7693]{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-soft)}.kpi-value[data-v-3e2c7693]{font-size:28px;font-weight:800;letter-spacing:-.01em}.kpi-trend[data-v-3e2c7693]{font-size:12px;font-weight:600;margin-top:4px;display:flex;align-items:center;gap:4px}.kpi-trend--up[data-v-3e2c7693]{color:#00643e}.kpi-trend--down[data-v-3e2c7693]{color:#a1332b}.kpi-trend--flat[data-v-3e2c7693]{color:var(--ink-soft)}.kpi-card--success[data-v-3e2c7693]{border-color:#bfe4cf}.kpi-card--warning[data-v-3e2c7693]{border-color:#f2ddaa}.kpi-card--danger[data-v-3e2c7693]{border-color:#f1c9c6}.kpi-card--info[data-v-3e2c7693]{border-color:#c9daf5}.eyebrow[data-v-225275ea]{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700;color:var(--brand-green);margin:0 0 6px}h1[data-v-225275ea]{font-size:40px;font-weight:800;letter-spacing:-.02em;margin:0 0 20px}.lead[data-v-225275ea]{font-size:17px;line-height:1.65;color:var(--ink-soft);margin:0 0 32px}.lead strong[data-v-225275ea]{color:var(--ink)}.home-grid[data-v-225275ea]{display:block}@media(min-width:1024px){.home-grid[data-v-225275ea]{display:grid;grid-template-columns:1fr 1fr;column-gap:32px;align-items:start}.home-grid .features[data-v-225275ea]{grid-row:1;grid-column:1}.home-grid .cta[data-v-225275ea]{grid-row:1;grid-column:2}.home-grid .kpi-overview[data-v-225275ea]{grid-row:2;grid-column:1 / -1}}.features[data-v-225275ea]{list-style:none;padding:0;margin:0 0 40px;display:grid;gap:12px}.features li[data-v-225275ea]{position:relative;padding-left:24px;font-size:15px;color:var(--ink-soft)}.features li[data-v-225275ea]:before{content:"";position:absolute;left:0;top:8px;width:8px;height:8px;border-radius:2px;background:var(--brand-green)}.kpi-overview[data-v-225275ea]{margin:0 0 40px}.kpi-overview-title[data-v-225275ea]{font-size:16px;margin:0 0 12px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}.kpi-grid[data-v-225275ea]{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.muted[data-v-225275ea]{color:var(--ink-soft);font-size:14px}.notice[data-v-225275ea]{padding:16px 20px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius)}.cta[data-v-225275ea]{padding:24px;background:var(--panel);border-radius:var(--radius);border:1px solid var(--border)}.signed-in p[data-v-225275ea]{margin:0}.signed-out p[data-v-225275ea]{margin:0 0 16px;color:var(--ink-soft);font-size:15px}h1[data-v-be2e55ff]{font-size:32px;font-weight:800;margin:0 0 16px}.lead[data-v-be2e55ff]{font-size:16px;line-height:1.6;color:var(--ink-soft);margin:0 0 28px;max-width:480px}.google-btn[data-v-be2e55ff]{display:inline-flex;align-items:center;gap:12px;background:#fff;color:#3c4043;border:1px solid #dadce0;border-radius:4px;padding:11px 20px;font-family:var(--font);font-weight:600;font-size:15px;cursor:pointer;transition:box-shadow .15s ease,background .15s ease}.google-btn[data-v-be2e55ff]:hover{background:#f8f9fa;box-shadow:0 1px 2px #0000001f}h1[data-v-5be253e3]{font-size:32px;font-weight:800;margin:0 0 16px}.lead[data-v-5be253e3]{font-size:16px;line-height:1.6;color:var(--ink-soft)}.eyebrow[data-v-c21dab46]{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700;color:var(--brand-green);margin:0 0 6px}h1[data-v-c21dab46]{font-size:32px;font-weight:800;margin:0 0 28px}h2[data-v-c21dab46]{font-size:18px;font-weight:700;margin:32px 0 8px}p[data-v-c21dab46]{font-size:15px;line-height:1.65;color:var(--ink-soft);margin:0 0 4px}.updated[data-v-c21dab46]{margin-top:36px;font-size:13px;font-style:italic}.eyebrow[data-v-1fa22029]{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700;color:var(--brand-green);margin:0 0 6px}h1[data-v-1fa22029]{font-size:32px;font-weight:800;margin:0 0 28px}h2[data-v-1fa22029]{font-size:18px;font-weight:700;margin:32px 0 8px}p[data-v-1fa22029]{font-size:15px;line-height:1.65;color:var(--ink-soft);margin:0 0 4px}.updated[data-v-1fa22029]{margin-top:36px;font-size:13px;font-style:italic}.eyebrow[data-v-af079c2b]{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700;color:var(--brand-green);margin:0 0 6px}h1[data-v-af079c2b]{font-size:32px;font-weight:800;letter-spacing:-.02em;margin:0 0 24px}.grafana-links[data-v-af079c2b]{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0 0}.grafana-link--disabled[data-v-af079c2b]{background:#f0f0f0;color:#999;border-color:#ddd;cursor:not-allowed;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;border:1px solid;font-size:.85rem}.grafana-link[data-v-af079c2b]{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;padding:6px 14px;border-radius:999px;text-decoration:none;border:1px solid transparent}.grafana-link-icon[data-v-af079c2b]{flex-shrink:0}.grafana-link--stats[data-v-af079c2b]{background:#e3f0ff;color:#0b5cab;border-color:#b9d9ff}.grafana-link--stats[data-v-af079c2b]:hover{background:#d0e6ff}.grafana-link--machine[data-v-af079c2b]{background:#fdeee0;color:#a8530a;border-color:#f6cfa8}.grafana-link--machine[data-v-af079c2b]:hover{background:#fbe1c9}.muted[data-v-af079c2b]{color:var(--ink-soft);font-size:14px}.notice[data-v-af079c2b]{padding:16px 20px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px}.logger-card[data-v-af079c2b]{border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:16px;background:var(--panel)}.logger-head[data-v-af079c2b]{display:flex;align-items:center;justify-content:space-between;gap:12px}.logger-head h2[data-v-af079c2b]{font-size:18px;margin:0}.logger-title[data-v-af079c2b]{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.device-id-secondary[data-v-af079c2b]{font-size:12px;color:var(--ink-soft);font-variant-numeric:tabular-nums}.label-edit-btn[data-v-af079c2b]{font-size:12px;font-weight:600;color:var(--brand-green);background:none;border:1px solid var(--border);border-radius:999px;padding:3px 10px;cursor:pointer}.label-edit-btn[data-v-af079c2b]:hover{background:var(--surface, #f4f4f4)}.modal-backdrop[data-v-af079c2b]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.modal[data-v-af079c2b]{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:24px;width:360px;max-width:calc(100vw - 32px)}.modal h3[data-v-af079c2b]{margin:0 0 4px;font-size:18px}.modal-device-id[data-v-af079c2b]{margin:0 0 16px}.label-input[data-v-af079c2b]{width:100%;box-sizing:border-box;padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:14px}.char-count[data-v-af079c2b]{margin:4px 0 0;font-size:12px;text-align:right}.modal-error[data-v-af079c2b]{margin:12px 0 0;padding:8px 12px;font-size:13px}.modal-actions[data-v-af079c2b]{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.btn-secondary[data-v-af079c2b],.btn-primary[data-v-af079c2b]{padding:8px 16px;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;border:1px solid var(--border)}.btn-secondary[data-v-af079c2b]{background:none}.btn-primary[data-v-af079c2b]{background:var(--brand-green);color:#fff;border-color:var(--brand-green)}.btn-secondary[data-v-af079c2b]:disabled,.btn-primary[data-v-af079c2b]:disabled{opacity:.6;cursor:not-allowed}.badge[data-v-af079c2b]{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;text-transform:uppercase;letter-spacing:.03em}.status-online[data-v-af079c2b]{background:#d5f5e3;color:#0b7a3c}.status-degraded[data-v-af079c2b]{background:#fdf1cf;color:#9a6a00}.status-offline[data-v-af079c2b]{background:#fbdada;color:#b3261e}.rssi-value[data-v-af079c2b]{display:inline-flex;align-items:center;gap:8px;font-variant-numeric:tabular-nums}.rssi-bars[data-v-af079c2b]{font-family:monospace;letter-spacing:1px}.rssi-ottimo .rssi-bars[data-v-af079c2b]{color:#0b7a3c}.rssi-buono .rssi-bars[data-v-af079c2b]{color:#9a6a00}.rssi-scarso .rssi-bars[data-v-af079c2b]{color:#b3261e}.meta[data-v-af079c2b]{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px;margin:14px 0;font-size:14px}.meta dt[data-v-af079c2b]{color:var(--ink-soft)}.meta dd[data-v-af079c2b]{margin:0}.channels[data-v-af079c2b]{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.chip[data-v-af079c2b]{font-size:13px;background:var(--surface, #f4f4f4);border:1px solid var(--border);border-radius:999px;padding:4px 12px}.events summary[data-v-af079c2b]{cursor:pointer;font-size:13px;color:var(--ink-soft)}.events ul[data-v-af079c2b]{list-style:none;padding:0;margin:8px 0 0;font-size:13px}.events li[data-v-af079c2b]{display:flex;gap:12px;padding:4px 0;border-bottom:1px solid var(--border)}.events .ts[data-v-af079c2b]{color:var(--ink-soft);min-width:150px}.ev-ip[data-v-af079c2b]{color:var(--ink-soft)}.chip-link[data-v-af079c2b]{margin-left:6px;font-size:12px}.eyebrow[data-v-fe4cf791]{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700;color:var(--brand-green);margin:0 0 6px}h1[data-v-fe4cf791]{font-size:32px;font-weight:800;letter-spacing:-.02em;margin:0 0 24px}.muted[data-v-fe4cf791]{color:var(--ink-soft);font-size:14px}.notice[data-v-fe4cf791]{padding:16px 20px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px}.filters-bar[data-v-fe4cf791]{display:flex;flex-wrap:wrap;align-items:end;gap:12px;border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;background:var(--panel);margin-bottom:16px}.filters-bar label[data-v-fe4cf791]{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--ink-soft)}.filters-bar select[data-v-fe4cf791]{font:inherit;padding:6px 8px;border:1px solid var(--border);border-radius:6px;min-width:160px}.new-plan-toggle[data-v-fe4cf791]{margin:16px 0}.new-plan-form[data-v-fe4cf791]{display:flex;flex-direction:column;gap:10px;border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;background:var(--panel);margin-bottom:20px;max-width:420px}.new-plan-form label[data-v-fe4cf791]{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--ink-soft)}.new-plan-form input[data-v-fe4cf791],.new-plan-form select[data-v-fe4cf791]{font:inherit;padding:6px 8px;border:1px solid var(--border);border-radius:6px}.field-error[data-v-fe4cf791]{color:#b3261e;font-size:13px;margin:4px 0}.plan-card[data-v-fe4cf791]{border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:16px;background:var(--panel)}.plan-head[data-v-fe4cf791]{display:flex;align-items:center;justify-content:space-between;gap:12px}.plan-head h2[data-v-fe4cf791]{font-size:18px;margin:0}.badge[data-v-fe4cf791]{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;text-transform:uppercase;letter-spacing:.03em}.status-active[data-v-fe4cf791]{background:#d5f5e3;color:#0b7a3c}.status-paused[data-v-fe4cf791]{background:#fdf1cf;color:#9a6a00}.status-completed[data-v-fe4cf791]{background:#e5e7eb;color:#4b5563}.meta[data-v-fe4cf791]{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px;margin:14px 0;font-size:14px}.meta dt[data-v-fe4cf791]{color:var(--ink-soft)}.meta dd[data-v-fe4cf791]{margin:0}.notes[data-v-fe4cf791]{font-size:13px;color:var(--ink-soft);margin:8px 0 0;border-top:1px solid var(--border);padding-top:10px}.actions[data-v-fe4cf791]{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.edit-panel[data-v-fe4cf791]{display:flex;flex-direction:column;gap:8px;margin-top:12px;max-width:360px}.edit-panel label[data-v-fe4cf791]{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--ink-soft)}.edit-panel input[data-v-fe4cf791]{font:inherit;padding:6px 8px;border:1px solid var(--border);border-radius:6px}.btn[data-v-fe4cf791]{font:inherit;padding:6px 14px;border-radius:999px;border:1px solid var(--border);background:var(--panel);cursor:pointer}.btn[data-v-fe4cf791]:disabled{opacity:.5;cursor:not-allowed}.btn.primary[data-v-fe4cf791]{background:var(--brand-green);border-color:var(--brand-green);color:#fff}.btn.danger[data-v-fe4cf791]{border-color:#b3261e;color:#b3261e}.page-header[data-v-231e26a7]{margin-bottom:20px}.breadcrumb[data-v-231e26a7]{font-size:12px;color:var(--ink-soft);margin:0 0 8px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.crumb-link[data-v-231e26a7]{color:var(--ink-soft);text-decoration:none}.crumb-link[data-v-231e26a7]:hover{text-decoration:underline}.crumb-current[data-v-231e26a7]{color:var(--ink);font-weight:600}.crumb-sep[data-v-231e26a7]{color:var(--border)}.eyebrow[data-v-231e26a7]{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700;color:var(--brand-green);margin:0 0 6px}.title-row[data-v-231e26a7]{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}h1[data-v-231e26a7]{font-size:32px;font-weight:800;letter-spacing:-.02em;margin:0}.actions[data-v-231e26a7]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.lead[data-v-231e26a7]{font-size:15px;color:var(--ink-soft);margin:8px 0 0}.status-badge[data-v-fbf37a8c]{display:inline-flex;align-items:center;font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:3px 9px;border-radius:4px;border:1px solid transparent;background:var(--panel);color:var(--ink-soft);-webkit-user-select:text;user-select:text}.status-badge--success[data-v-fbf37a8c]{background:#e3f5ea;color:#00643e;border-color:#bfe4cf}.status-badge--warning[data-v-fbf37a8c]{background:#fdf1cf;color:#9a6a00;border-color:#f2ddaa}.status-badge--danger[data-v-fbf37a8c]{background:#fbe7e6;color:#a1332b;border-color:#f1c9c6}.status-badge--info[data-v-fbf37a8c]{background:#e6eefb;color:#1d4ed8;border-color:#c9daf5}.status-badge--neutral[data-v-fbf37a8c]{background:var(--panel);color:var(--ink-soft);border-color:var(--border)}.action-button[data-v-e1c0c94e]{display:inline-flex;align-items:center;gap:6px;font:inherit;font-weight:600;font-size:14px;padding:8px 18px;border-radius:999px;border:none;cursor:pointer;transition:box-shadow .15s ease,transform .05s ease,opacity .15s ease}.action-button[data-v-e1c0c94e]:hover:not(:disabled){box-shadow:0 4px 14px #00000026}.action-button[data-v-e1c0c94e]:active:not(:disabled){transform:translateY(1px)}.action-button[data-v-e1c0c94e]:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.action-button--primary[data-v-e1c0c94e]{background:var(--brand-green);color:#fff}.action-button--outline[data-v-e1c0c94e]{background:transparent;color:var(--ink);border:1px solid var(--border)}.action-button--danger[data-v-e1c0c94e]{background:#a1332b;color:#fff}h2[data-v-c12ff831]{font-size:18px;margin:0 0 12px}.error[data-v-c12ff831]{color:#b3261e}.notice[data-v-c12ff831]{padding:16px 20px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px}.notice .muted-line[data-v-c12ff831]{color:var(--ink-soft);font-size:13px;margin:4px 0 14px}.lock-badge-wrap[data-v-c12ff831]{margin-bottom:16px}.active-script[data-v-c12ff831]{font-size:14px;color:var(--ink-soft);margin-bottom:16px}.active-script p[data-v-c12ff831]{margin:4px 0}.edit-warning[data-v-c12ff831]{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px;font-size:14px}.edit-warning .note[data-v-c12ff831]{color:var(--ink-soft);font-size:13px;margin-top:8px}.commands-panel[data-v-c12ff831]{margin-top:24px}.command-filter-row[data-v-c12ff831]{display:flex;align-items:center;gap:8px;margin-bottom:14px}.command-filter-input[data-v-c12ff831]{flex:1 1 260px;max-width:360px;padding:7px 10px;border:1px solid var(--border);border-radius:6px;font-size:14px}.installer-section[data-v-c12ff831]{margin-top:16px;border:1px dashed var(--border);border-radius:var(--radius);padding:10px 14px}.installer-section summary[data-v-c12ff831]{cursor:pointer;font-weight:600;font-size:13px;color:var(--ink-soft)}.installer-section .commands-list[data-v-c12ff831]{margin-top:12px}.commands-list[data-v-c12ff831]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.command-row[data-v-c12ff831]{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap}.command-label[data-v-c12ff831]{flex:1 1 220px;font-size:14px;display:flex;align-items:center;gap:8px}.command-current-value[data-v-c12ff831]{font-size:12px;color:var(--ink-soft);font-weight:400}.command-current-value.value-never[data-v-c12ff831]{font-style:italic}.badge-commanded[data-v-c12ff831]{padding:2px 8px;border-radius:999px;background:var(--panel)}.badge-live[data-v-c12ff831]{font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px}.badge-live-loading[data-v-c12ff831]{background:#eef1f5;color:var(--ink-soft)}.badge-live-ok[data-v-c12ff831]{background:#e0f0ff;color:#0b5fa5}.badge-live-error[data-v-c12ff831]{background:#fbe7e6;color:#a1332b;font-weight:500}.cmd-input[data-v-c12ff831]{width:120px;padding:6px 8px;border:1px solid var(--border);border-radius:6px}.raw-hint[data-v-c12ff831]{font-size:11px;color:var(--ink-soft);font-style:italic;white-space:nowrap}.command-result[data-v-c12ff831]{font-size:12px}.result-ok[data-v-c12ff831]{color:#00643e}.result-error[data-v-c12ff831]{color:#b3261e}.note[data-v-c12ff831]{color:var(--ink-soft);font-size:13px}.confirm-overlay[data-v-c12ff831]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.confirm-modal[data-v-c12ff831]{background:var(--panel, #fff);border-radius:var(--radius);padding:24px;max-width:420px;width:90%;box-shadow:0 8px 32px #0000004d}.confirm-modal h3[data-v-c12ff831]{margin:0 0 12px}.warning-strong[data-v-c12ff831]{color:#a1332b;font-weight:700;font-size:13px}.raw-hint-inline[data-v-c12ff831]{color:var(--ink-soft);font-size:12px;font-style:italic;margin:4px 0 0}.installer-checkbox[data-v-c12ff831]{display:flex;gap:8px;align-items:flex-start;font-size:13px;margin:14px 0}.confirm-actions[data-v-c12ff831]{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.eyebrow[data-v-08c3809f]{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700;color:var(--brand-green);margin:0 0 6px}h1[data-v-08c3809f]{font-size:32px;font-weight:800;letter-spacing:-.02em;margin:0 0 24px}h2[data-v-08c3809f]{font-size:16px;margin:24px 0 12px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}.muted[data-v-08c3809f]{color:var(--ink-soft);font-size:14px}.muted-line[data-v-08c3809f]{color:var(--ink-soft);font-size:13px;margin:0 0 10px}.notice[data-v-08c3809f]{padding:16px 20px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px}.machine-card[data-v-08c3809f]{border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;margin-bottom:12px;background:var(--panel)}.muted-card[data-v-08c3809f]{opacity:.75}.machine-head[data-v-08c3809f]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.machine-head h3[data-v-08c3809f]{font-size:16px;margin:0}.badge[data-v-08c3809f]{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.status-connected[data-v-08c3809f]{background:#d5f5e3;color:#0b7a3c}.status-connected_stale[data-v-08c3809f]{background:#fdf1cf;color:#9a6a00}.status-disconnected[data-v-08c3809f]{background:#ececec;color:#5a5a5a}.status-unknown[data-v-08c3809f]{background:#fbdada;color:#b3261e}.status-linked_to_catalog[data-v-08c3809f]{background:#d5f5e3;color:#0b7a3c}.status-identified_not_catalogued[data-v-08c3809f]{background:#fdf1cf;color:#9a6a00}.status-unidentified[data-v-08c3809f]{background:#ececec;color:#5a5a5a}.test-active[data-v-08c3809f]{font-size:13px;color:#9a6a00;margin:0 0 10px;font-weight:600}.btn-sm[data-v-08c3809f]{padding:7px 14px;font-size:13px}.other-machines[data-v-08c3809f]{margin-top:28px}.other-machines summary[data-v-08c3809f]{cursor:pointer;font-size:13px;color:var(--ink-soft);margin-bottom:12px}h2[data-v-730d1522]{font-size:18px;margin:0 0 10px}.muted[data-v-730d1522]{color:var(--ink-soft);font-size:14px}.small[data-v-730d1522]{font-size:12px}.note[data-v-730d1522]{margin-bottom:12px}.error[data-v-730d1522]{color:#b3261e;font-size:13px;margin-top:6px}.notice[data-v-730d1522]{padding:16px 20px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px}.panel[data-v-730d1522]{border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:20px;background:var(--panel)}.field[data-v-730d1522]{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--ink-soft)}.field select[data-v-730d1522],.field input[data-v-730d1522]{padding:6px 8px;border-radius:6px;border:1px solid var(--border)}.row[data-v-730d1522]{display:flex;align-items:center;gap:12px;margin-top:10px}.upload-field[data-v-730d1522]{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--ink-soft)}.dictation-row[data-v-730d1522]{margin-top:8px}.recording-indicator[data-v-730d1522]{color:#b3261e;font-size:13px;font-weight:600}textarea[data-v-730d1522]{width:100%;border-radius:8px;border:1px solid var(--border);padding:10px;font:inherit;resize:vertical}.filters[data-v-730d1522]{display:flex;flex-wrap:wrap;gap:14px;align-items:end;margin-bottom:16px}.entry-card[data-v-730d1522]{border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px}.entry-head[data-v-730d1522]{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}.entry-meta[data-v-730d1522]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.entry-text[data-v-730d1522]{margin:8px 0 0;font-size:14px}.entry-detail[data-v-730d1522]{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.media-grid[data-v-730d1522]{display:flex;flex-wrap:wrap;gap:12px;margin:8px 0}.media-item[data-v-730d1522]{display:flex;flex-direction:column;gap:4px;max-width:220px}.media-item img[data-v-730d1522]{max-width:220px;border-radius:6px}.pagination[data-v-730d1522]{display:flex;align-items:center;gap:12px;margin-top:16px}.eyebrow[data-v-628b434b]{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700;color:var(--brand-green);margin:0 0 6px}h1[data-v-628b434b]{font-size:32px;font-weight:800;letter-spacing:-.02em;margin:0 0 12px}.lead[data-v-628b434b]{font-size:15px;line-height:1.6;color:var(--ink-soft);margin:0 0 24px}.general-link[data-v-628b434b]{font-weight:600;margin-left:4px}.muted[data-v-628b434b]{color:var(--ink-soft);font-size:14px}.notice[data-v-628b434b]{padding:16px 20px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px}.table-wrap[data-v-628b434b]{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}.tests-table[data-v-628b434b]{width:100%;border-collapse:collapse;font-size:14px}.tests-table th[data-v-628b434b]{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft);padding:12px 16px;border-bottom:1px solid var(--border);white-space:nowrap}.tests-table td[data-v-628b434b]{padding:12px 16px;border-bottom:1px solid var(--border);vertical-align:middle}.tests-table tbody tr.test-row:last-of-type td[data-v-628b434b]{border-bottom:none}.test-row.clickable[data-v-628b434b]{cursor:pointer}.test-row h3[data-v-628b434b]{font-size:15px;margin:0}.badge-open[data-v-628b434b]{margin-left:0;display:block;color:#9a6a00;font-weight:600;font-size:12px}.col-actions[data-v-628b434b]{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.log-link[data-v-628b434b]{flex-shrink:0}.badge[data-v-628b434b]{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;white-space:nowrap;cursor:default}.badge-available[data-v-628b434b]{background:#d5f5e3;color:#0b7a3c;cursor:pointer}.badge-unavailable[data-v-628b434b]{background:#ececec;color:#5a5a5a;cursor:help}.esito-anomaly[data-v-628b434b]{background:#fbd8d5;color:#b21917}.esito-confirmed[data-v-628b434b]{background:#d5f5e3;color:#0b7a3c}.esito-none[data-v-628b434b]{background:#ececec;color:#5a5a5a}.embed-panel[data-v-628b434b]{border-top:1px solid var(--border);padding:16px 20px;background:var(--paper)}.grafana-embed[data-v-628b434b]{width:100%;height:480px;border:1px solid var(--border);border-radius:var(--radius);background:#fff}.embed-link[data-v-628b434b]{margin-top:10px}.btn-sm[data-v-628b434b]{padding:7px 14px;font-size:13px}.eyebrow[data-v-6eb1e6d7]{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700;color:var(--brand-green);margin:0 0 6px}h1[data-v-6eb1e6d7]{font-size:32px;font-weight:800;letter-spacing:-.02em;margin:0 0 12px}.muted[data-v-6eb1e6d7]{color:var(--ink-soft);font-size:14px}.notice[data-v-6eb1e6d7]{padding:16px 20px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px}.cond-table[data-v-6eb1e6d7]{width:100%;border-collapse:collapse;margin-top:16px}.cond-table th[data-v-6eb1e6d7],.cond-table td[data-v-6eb1e6d7]{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);font-size:14px}.badge[data-v-6eb1e6d7]{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.status-active[data-v-6eb1e6d7]{background:#d5f5e3;color:#0b7a3c}.status-revoked[data-v-6eb1e6d7]{background:#ececec;color:#5a5a5a}.status-revoked-explicit[data-v-6eb1e6d7]{background:#fdecea;color:#a33a2f}.status-expired[data-v-6eb1e6d7]{background:#fdf1e0;color:#9a6a13}.btn-sm[data-v-6eb1e6d7]{padding:6px 12px;font-size:13px}.cond-actions[data-v-6eb1e6d7]{margin-top:8px}.cond-form[data-v-6eb1e6d7]{display:flex;flex-direction:column;gap:10px}.field-label[data-v-6eb1e6d7]{font-size:13px;font-weight:600;color:var(--ink-soft)}.cond-form select[data-v-6eb1e6d7],.cond-form input[data-v-6eb1e6d7]{padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);font-size:14px;background:var(--bg);color:inherit}.cond-form-buttons[data-v-6eb1e6d7]{display:flex;gap:8px;margin-top:4px}.error-notice[data-v-6eb1e6d7]{background:#fdecea;color:#a33a2f;border-color:#f3c6c0;padding:8px 12px;margin:0}.cond-created[data-v-6eb1e6d7]{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.cond-created-url[data-v-6eb1e6d7]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cond-created-url code[data-v-6eb1e6d7]{background:var(--bg);padding:6px 10px;border-radius:var(--radius);font-size:13px;word-break:break-all}.eyebrow[data-v-7b93de01]{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700;color:var(--brand-green);margin:0 0 6px}h1[data-v-7b93de01]{font-size:32px;font-weight:800;letter-spacing:-.02em;margin:0 0 12px}.muted[data-v-7b93de01]{color:var(--ink-soft);font-size:14px}.notice[data-v-7b93de01]{padding:16px 20px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px}.roles-table[data-v-7b93de01]{width:100%;border-collapse:collapse;margin-top:16px}.roles-table th[data-v-7b93de01],.roles-table td[data-v-7b93de01]{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);font-size:14px}.roles-table select[data-v-7b93de01]{padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;background:var(--bg);color:inherit}.btn-sm[data-v-7b93de01]{padding:6px 12px;font-size:13px}.roles-actions[data-v-7b93de01]{margin-top:8px}.roles-form[data-v-7b93de01]{display:flex;flex-direction:column;gap:10px}.field-label[data-v-7b93de01]{font-size:13px;font-weight:600;color:var(--ink-soft)}.roles-form select[data-v-7b93de01],.roles-form input[data-v-7b93de01]{padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);font-size:14px;background:var(--bg);color:inherit}.roles-form-buttons[data-v-7b93de01]{display:flex;gap:8px;margin-top:4px}.error-notice[data-v-7b93de01]{background:#fdecea;color:#a33a2f;border-color:#f3c6c0;padding:8px 12px;margin:0}.eyebrow[data-v-36d4fdb3]{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700;color:var(--brand-green);margin:0 0 6px}h1[data-v-36d4fdb3]{font-size:32px;font-weight:800;letter-spacing:-.02em;margin:0 0 8px}.notice[data-v-36d4fdb3]{padding:16px 20px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px}.notice .muted-line[data-v-36d4fdb3]{color:var(--ink-soft);font-size:13px;margin:4px 0 14px}:root{--brand-green: #00643e;--brand-green-dark: #004a2d;--ink: #141414;--ink-soft: #4a4a4a;--paper: #ffffff;--panel: #f4f6f5;--border: #e2e6e4;--radius: 10px;--font: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;font-family:var(--font);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}a{color:var(--brand-green);text-decoration:none}a:hover{text-decoration:underline}.btn{display:inline-flex;align-items:center;gap:10px;background:var(--brand-green);color:#fff;border:none;padding:12px 22px;border-radius:var(--radius);font-family:var(--font);font-weight:600;font-size:15px;cursor:pointer;transition:background .15s ease}.btn:hover{background:var(--brand-green-dark);text-decoration:none}.btn-outline{background:transparent;color:var(--brand-green);border:1.5px solid var(--brand-green)}.btn-outline:hover{background:var(--brand-green);color:#fff}
