:root{color-scheme:light;font-family:Segoe UI,Aptos,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;background:radial-gradient(circle at top left,rgba(217,238,229,.8),transparent 28%),linear-gradient(180deg,#eff5ef,#e5ece4);color:#112118;--panel: rgba(255, 255, 255, .74);--panel-strong: rgba(255, 255, 255, .92);--border: rgba(17, 33, 24, .1);--text-muted: #536357;--accent: #145c44;--accent-soft: #d2eadf;--danger: #a4332f;--warn: #8d6518;--good: #1f6b4d;--shadow: 0 18px 40px rgba(20, 48, 33, .12)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{min-height:100vh}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,input,select,textarea{border:1px solid var(--border);border-radius:14px}input,select,textarea{width:100%;padding:.85rem 1rem;background:#ffffffe0}textarea{resize:vertical;min-height:10rem}.app-shell{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100vh}.sidebar{display:flex;flex-direction:column;gap:2rem;padding:2rem;background:linear-gradient(180deg,#123327,#0d251c);color:#f4f8f4}.sidebar-top{display:grid;gap:1.5rem}.sidebar-title,.page-header h2,.hero-card h2,.auth-card h1,.title-row h2,.section-heading h3,.device-card h3{font-family:Georgia,Times New Roman,serif;letter-spacing:-.02em;margin:0}.sidebar-copy,.lead,.muted-text,.page-header-note,.stat-hint,.session-meta{color:var(--text-muted)}.sidebar .sidebar-copy,.sidebar .session-meta{color:#f4f8f4b3}.page-header-meta,.backend-pill{display:grid;gap:.5rem;justify-items:end}.google-button-wrap{display:grid;gap:.75rem;justify-items:start}.auth-state-grid,.fleet-strip,.nav-list,.sidebar-footer,.page-stack,.content-column,.sidebar-column,.stack-list,.event-list,.search-field,.test-filter-grid,.command-form,.command-form label{display:grid;gap:1rem}.file-picker-row{display:flex;align-items:center;gap:.75rem;min-width:0}.file-picker-name{min-width:0;color:var(--text-muted);overflow-wrap:anywhere}.visually-hidden-file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.content-column,.sidebar-column,.panel,.command-form,.command-card,.instruction-card,.stack-list,.detail-list{min-width:0}.sidebar-column .panel{overflow:hidden}.compact{gap:.55rem}.sidebar-footer{margin-top:auto}.nav-link{padding:.9rem 1rem;border:1px solid rgba(255,255,255,.1);border-radius:16px;color:#f4f8f4d6}.nav-link.is-active{background:#d2eadf24;color:#fff;border-color:#d2eadf38}.session-card{display:flex;align-items:flex-start;gap:.9rem;padding:1rem;border-radius:16px;background:#ffffff0f}.session-name{font-weight:600}.session-avatar{width:2.75rem;height:2.75rem;border-radius:999px;object-fit:cover;flex:0 0 auto}.session-avatar-fallback{display:grid;place-items:center;color:#f4f8f4;background:#d2eadf2e;border:1px solid rgba(210,234,223,.24);font-weight:700}.main-panel{padding:2rem}.page-header,.hero-card,.panel,.device-card,.auth-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow)}.page-header,.hero-card,.panel,.auth-card{border:1px solid var(--border);background:var(--panel);border-radius:24px}.page-header,.hero-card,.section-heading,.title-row,.device-card-top,.command-card-top,.event-topline,.metric-list div,.detail-row,.command-preview-line{display:flex;justify-content:space-between;gap:1rem;align-items:start}.command-card-top>div,.device-card-top>div,.title-row>div,.section-heading>div{min-width:0}.page-header,.hero-card{align-items:end}.page-header{padding:1.5rem 1.75rem;margin-bottom:1.5rem}.operator-brief{display:grid;gap:.15rem;justify-items:end;padding:.8rem 1rem;min-width:220px;border-radius:18px;border:1px solid rgba(17,33,24,.08);background:#ffffffb3}.operator-brief-label{font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.operator-brief-value{font-weight:700}.hero-card,.panel,.auth-card{padding:1.75rem}.devices-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.device-header-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:.9rem;align-items:stretch}.device-command-button{align-self:stretch;width:100%;justify-content:center}.device-card{padding:1.3rem;border-radius:22px;border:1px solid var(--border);background:var(--panel-strong);display:grid;gap:1rem;transition:transform .18s ease,border-color .18s ease}.device-card:hover{transform:translateY(-2px);border-color:#145c4447}.metric-list,.detail-list{display:grid;gap:.8rem}.metric-list dt,.detail-row span,.stat-label,.eyebrow{color:var(--text-muted)}.eyebrow{margin:0 0 .35rem;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:700}.badge{display:inline-flex;align-items:center;padding:.4rem .7rem;border-radius:999px;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.badge-good{background:#1f6b4d24;color:var(--good)}.badge-warn{background:#8d651824;color:var(--warn)}.badge-danger{background:#a4332f1f;color:var(--danger)}.badge-muted{background:#5363571f;color:#415045}.status-dot{width:.8rem;height:.8rem;border-radius:999px;margin-top:.2rem}.status-dot.good{background:linear-gradient(180deg,#60c78f,#1f6b4d)}.content-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(320px,.95fr);gap:1.5rem;align-items:start}.tests-cta-panel{display:grid;gap:1rem;width:100%;padding:1rem 1.1rem;border-radius:20px;border:1px solid rgba(17,33,24,.08);background:#145c4414}.create-device-cta{display:grid}.create-device-toggle{width:100%;justify-content:center}.checkbox-row{display:flex;gap:.75rem;align-items:center}.checkbox-row input{width:auto;margin:0;flex:0 0 auto}.checkbox-label{display:inline;width:auto;border:0;padding:0;line-height:1.35}.tests-cta-button{width:100%;justify-content:center}.test-filter-grid{grid-template-columns:minmax(240px,1.8fr) repeat(3,minmax(0,1fr));width:100%;align-items:end}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.9rem}.test-stat-grid{grid-template-columns:repeat(5,minmax(0,1fr));width:100%}.fleet-strip{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.fleet-card{padding:1rem 1.1rem;border-radius:20px;border:1px solid rgba(17,33,24,.08);background:#ffffffb8;box-shadow:var(--shadow)}.fleet-card-emphasis{background:linear-gradient(180deg,#145c4414,#ffffffd1)}.fleet-value{font-family:Georgia,Times New Roman,serif;font-size:2rem;line-height:1.05;letter-spacing:-.03em;margin:.35rem 0}.fleet-value-small{font-size:1.15rem;line-height:1.35}.stat-card{padding:1rem;border-radius:18px;background:#ffffffa8;border:1px solid rgba(17,33,24,.08)}.stat-value{font-size:1.1rem;font-weight:700}.detail-grid{margin-top:1rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.table-shell,.json-block{overflow:auto}.signal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1rem}.signal-card{border:1px solid rgba(17,33,24,.08);border-radius:18px;padding:1rem;background:#ffffffad}.chart-legend{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}.chart-legend-item{display:inline-flex;gap:.55rem;align-items:center;font-weight:600}.chart-legend-dot{width:.7rem;height:.7rem;border-radius:999px;display:inline-block}.chart-legend-dot-out{background:#df2727}.chart-legend-dot-in{background:#1c2fe4}.historic-chart-frame{display:grid;gap:.75rem}.historic-chart-ytitle{color:#132116;font-size:.95rem;font-weight:700}.historic-chart-shell{display:grid;grid-template-columns:minmax(0,1fr) 3.2rem;gap:.75rem;align-items:stretch}.historic-chart-shell-tooltip{position:relative}.historic-chart{width:100%;height:360px;display:block;border-radius:10px;background:#dbe4f2}.historic-chart-grid{stroke:#ffffffe0;stroke-width:1}.historic-chart-point{opacity:.95}.historic-chart-hitbox{fill:transparent;cursor:crosshair}.historic-chart-point-out{fill:#ff1f1f}.historic-chart-point-in{fill:#1f2fff}.historic-chart-yaxis,.historic-chart-xaxis{display:grid}.historic-chart-yaxis{grid-template-rows:repeat(6,1fr);align-items:space-between}.historic-chart-xaxis{grid-template-columns:repeat(7,minmax(0,1fr));gap:.75rem}.historic-chart-axis-label{color:#1e2f22;font-size:.84rem}.historic-chart-yaxis .historic-chart-axis-label{display:flex;align-items:center;justify-content:flex-start}.historic-chart-tooltip{position:absolute;display:grid;gap:.15rem;min-width:110px;padding:.55rem .65rem;border-radius:12px;background:#112118f0;color:#f4f8f4;font-size:.78rem;box-shadow:0 10px 24px #11211833;pointer-events:none;transform:translateY(-100%);z-index:2}.signal-topline,.signal-bar-row{display:grid;grid-template-columns:auto 1fr auto;gap:.75rem;align-items:center}.signal-topline{grid-template-columns:1fr auto;margin-bottom:.75rem}.signal-bars{display:grid;gap:.55rem}.signal-label,.signal-value{font-size:.83rem}.signal-track{height:.7rem;border-radius:999px;background:#145c441a;overflow:hidden}.signal-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#2e8b65,#145c44)}table{width:100%;border-collapse:collapse}th,td{padding:.85rem .7rem;border-bottom:1px solid rgba(17,33,24,.08);text-align:left;vertical-align:top}th{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.event-card,.command-card{border:1px solid rgba(17,33,24,.08);border-radius:18px;padding:1rem;background:#ffffffad}.command-card strong,.event-card strong{overflow-wrap:anywhere}.command-card-top{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:start}.detail-row strong{min-width:0;text-align:right;overflow-wrap:anywhere}.instruction-list{display:grid;gap:.9rem}.instruction-card{display:grid;gap:.45rem;padding:1rem;border-radius:18px;border:1px solid rgba(17,33,24,.08);background:#ffffffad}.instruction-card p{margin:0}.event-card h4,.event-card p{margin:.35rem 0}.event-title-stack{display:grid;gap:.45rem}.json-block{margin:.8rem 0 0;padding:.85rem;border-radius:14px;background:#163428;color:#d7f1e4;font-size:.82rem}.result-message,.empty-state,.subtle{color:var(--text-muted)}.empty-state{padding:2rem;text-align:center}.empty-state.subtle{padding:1rem 0;text-align:left}.command-form-wide{grid-column:1 / -1}.command-template,.info-callout,.auth-warning,.auth-note-card{padding:.9rem 1rem;border-radius:16px}.info-callout{background:var(--accent-soft);color:#153b2d}.auth-note-card{display:flex;gap:.8rem;align-items:start;background:#ffffffb8;border:1px solid rgba(17,33,24,.08)}.device-api-key{display:inline-block;max-width:100%;overflow-wrap:anywhere;padding:.65rem .8rem;border-radius:12px;background:#163428;color:#d7f1e4;font-size:.82rem}.firmware-artifact-list{display:grid;gap:.75rem}.firmware-artifact-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.85rem .95rem;border-radius:14px;border:1px solid rgba(17,33,24,.08);background:#ffffffad}.firmware-artifact-meta{display:grid;gap:.15rem}.auth-warning{background:#a4332f1a;color:var(--danger)}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:1.5rem;background:#08140e73;z-index:30}.dialog-card{width:min(100%,820px);display:grid;gap:1rem;padding:1.5rem;border-radius:24px;border:1px solid var(--border);background:#dff6fcf5;box-shadow:var(--shadow)}.command-dialog-grid,.command-dialog-stack{display:grid;gap:1rem}.command-dialog-row{display:grid;grid-template-columns:130px minmax(0,1fr);gap:1rem;align-items:center}.command-dialog-label{font-weight:700}.command-dialog-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}.command-choice-button,.command-wide-button{padding:.95rem 1rem;border-radius:0;border:3px solid #121212;background:#d2d2d2;color:#121212;font-weight:700;cursor:pointer}.command-choice-button.is-active{border-color:#e61c23}.command-wide-button{width:100%;text-align:center}.command-preview-card{padding:1rem;border-radius:18px;border:1px solid rgba(17,33,24,.08);background:#145c440f;display:grid;gap:.8rem}.button{padding:.85rem 1.1rem;border-radius:999px;cursor:pointer;font-weight:700}.button-primary{background:var(--accent);color:#f5fbf7;border-color:transparent}.button-secondary{background:transparent;color:#f5fbf7;border-color:#fff3}.button-secondary-light{background:#ffffffb8;color:#153b2d;border-color:#1121181f}.button-secondary-danger{background:#a4332f14;color:var(--danger);border-color:#a4332f2e}.command-actions{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}.success-text{color:var(--good);font-weight:600}.error-text{color:var(--danger);font-weight:600}.firmware-build-live-card{display:grid;gap:.75rem;margin-top:1rem;padding:1rem 1.15rem;border:1px solid rgba(17,33,24,.08);background:linear-gradient(135deg,#145c441f,#ffffffb8);box-shadow:inset 0 1px #ffffff80}.firmware-build-live-topline,.firmware-build-live-status,.firmware-build-progress-note{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.firmware-build-live-topline{justify-content:space-between}.firmware-build-live-dot{width:.75rem;height:.75rem;border-radius:999px;background:var(--accent);box-shadow:0 0 #145c4473;animation:firmware-build-pulse 1.4s ease-out infinite}.firmware-build-progress-note{color:var(--ink-soft);font-size:.95rem}.firmware-build-history{display:grid;gap:1rem;padding:.9rem 1rem;border:1px solid rgba(17,33,24,.08);background:#ffffff94}.firmware-build-history summary{cursor:pointer;font-weight:700;color:var(--ink)}@keyframes firmware-build-pulse{0%{transform:scale(.95);box-shadow:0 0 #145c4459}70%{transform:scale(1);box-shadow:0 0 0 10px #145c4400}to{transform:scale(.95);box-shadow:0 0 #145c4400}}.back-link{display:inline-block;margin-bottom:.9rem;color:var(--accent);font-weight:600}.auth-screen{display:grid;place-items:center;min-height:100vh;padding:2rem}.auth-card{max-width:560px;display:grid;gap:1rem;background:var(--panel-strong)}.operator-screen{min-height:100vh;padding:1rem}.operator-shell{width:min(100%,980px);margin:0 auto;display:grid;gap:1rem}.operator-topbar,.operator-topbar-actions,.operator-hero-topline{display:flex;gap:.75rem;align-items:center}.operator-topbar{justify-content:space-between;align-items:start}.operator-topbar-actions{flex-wrap:wrap;justify-content:end}.operator-subtitle{margin:.35rem 0 0;color:var(--text-muted)}.operator-login-card,.operator-panel,.operator-hero-card,.operator-actions-card{border:1px solid var(--border);background:var(--panel-strong);border-radius:24px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.operator-login-card,.operator-panel,.operator-hero-card,.operator-actions-card{padding:1.25rem}.operator-hero-card,.operator-grid,.operator-hero-grid,.operator-live-grid{display:grid;gap:1rem}.operator-hero-copy{display:grid;gap:.75rem}.operator-hero-copy h2{margin:0;font-family:Georgia,Times New Roman,serif;letter-spacing:-.03em;font-size:clamp(2rem,5vw,3rem);line-height:.95}.operator-hero-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.operator-live-card,.operator-mini-stat{border-radius:20px;border:1px solid rgba(17,33,24,.08);background:#fffc;padding:1rem}.operator-live-card-strong{background:linear-gradient(180deg,#145c441f,#ffffffeb)}.operator-live-label,.operator-mini-label{font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.operator-live-value{margin:.45rem 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.55rem,4vw,2.35rem);line-height:1;letter-spacing:-.04em}.operator-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}.operator-column,.operator-reading-list{display:grid;gap:1rem}.operator-live-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.operator-mini-stat strong{display:block;margin-top:.35rem;font-size:1.25rem}@media(max-width:1100px){.app-shell,.content-grid{grid-template-columns:1fr}.operator-brief{justify-items:start}.operator-grid{grid-template-columns:1fr}.test-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.test-filter-grid,.device-header-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.main-panel,.sidebar,.auth-screen{padding:1rem}.page-header,.hero-card,.section-heading,.title-row{align-items:start;flex-direction:column}.detail-grid,.test-stat-grid,.test-filter-grid,.signal-grid,.device-header-strip,.command-dialog-row,.command-dialog-actions{grid-template-columns:1fr}.file-picker-row{flex-direction:column;align-items:stretch}.page-header-meta,.backend-pill{justify-items:start}.operator-brief{min-width:0;width:100%}.operator-screen{padding:.75rem}.operator-topbar,.operator-topbar-actions,.operator-hero-topline{align-items:start;flex-direction:column}.operator-topbar-actions{width:100%}.operator-topbar-actions .button,.operator-actions-card .button{width:100%;justify-content:center}.operator-hero-grid,.operator-live-grid{grid-template-columns:1fr}}
