body {
  background: radial-gradient(circle at 78% 0, rgba(21,151,138,.055), transparent 34%), #f3f6f6;
  font-family:"Microsoft YaHei UI","PingFang SC","Segoe UI",sans-serif;
  font-size:15px;
  line-height:1.55;
  letter-spacing:.005em;
}

.hero-row {
  min-height: 138px;
  align-items: center;
  padding: 24px 28px;
  border-radius: 18px;
  color: #fff;
  background: linear-gradient(118deg, #102934 0%, #153b45 64%, #0d716b 145%);
  position: relative;
  overflow: hidden;
  box-shadow: 0 22px 48px rgba(17,45,54,.18);
}
.hero-row::before,.hero-row::after {content:"";position:absolute;border:1px solid rgba(121,225,210,.17);border-radius:50%;pointer-events:none}
.hero-row::before {width:310px;height:310px;right:-92px;top:-158px}
.hero-row::after {width:210px;height:210px;right:6px;top:-112px}
.hero-row .kicker {color:#78ded0}
.hero-row h1 {font-size:31px;margin-bottom:8px}
.hero-copy>p:last-child {color:#abc1c6;margin:0}
.hero-actions {display:flex;align-items:center;gap:12px;z-index:1}
.hero-signal {display:inline-flex;align-items:center;gap:8px;padding:10px 13px;border:1px solid rgba(255,255,255,.12);border-radius:9px;background:rgba(255,255,255,.07);font-size:12px;color:#d3e1e3}
.hero-signal i {width:8px;height:8px;border-radius:50%;background:#55dda7;box-shadow:0 0 0 5px rgba(85,221,167,.12)}
.btn.hero-button {background:#fff;color:#16333c;box-shadow:0 8px 20px rgba(0,0,0,.12)}
.btn.hero-button:disabled {cursor:wait;opacity:1}
.refresh-icon {display:inline-block;font-size:17px;line-height:1;transform-origin:center}
.hero-button.is-refreshing .refresh-icon {animation:dashboard-refresh-spin .7s linear infinite}
.hero-button.is-success {background:#e1f7ed;color:#087457}
.hero-button.is-error {background:#fae8e6;color:#a43b35}
@keyframes dashboard-refresh-spin {to {transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.hero-button.is-refreshing .refresh-icon{animation:none}}
.metric-grid {margin-top:0;position:relative;z-index:2;padding:0;gap:14px;margin-bottom:18px}
.metric-card {min-height:112px;border:0;border-radius:13px;padding:17px 19px;box-shadow:0 10px 26px rgba(21,44,52,.07)}
.metric-card.accent {background:linear-gradient(145deg,#0b8d84,#077169)}
.panel {border-color:#e1e8e9;border-radius:15px;box-shadow:0 10px 34px rgba(19,46,55,.055)}

.sensor-pair {display:flex;gap:7px;flex-wrap:wrap}
.sensor-indicator {display:inline-flex;align-items:center;gap:7px;padding:7px 9px;border-radius:8px;border:1px solid}
.sensor-indicator>i {width:8px;height:8px;border-radius:50%;flex:0 0 auto}
.sensor-indicator>span {font-size:10px;color:#63747a}
.sensor-indicator strong {display:block;font-size:11px;margin-top:1px}
.sensor-indicator.reached {background:#e7f6ef;border-color:#c4e8d9}
.sensor-indicator.reached>i {background:#1aa56f;box-shadow:0 0 0 4px rgba(26,165,111,.12)}
.sensor-indicator.reached strong {color:#167753}
.sensor-indicator.not-reached {background:#f4f6f6;border-color:#e1e6e7}
.sensor-indicator.not-reached>i {background:#9eaaae}
.sensor-indicator.not-reached strong {color:#66767c}
.sensor-pair.compact .sensor-indicator {min-width:88px}
.healthy-text {color:#16805b!important;font-weight:750}
.offline-state-copy {color:#849399!important;font-weight:650}
.fault-text {color:#bb433b!important}

.detail-summary {grid-template-columns:.9fr .9fr 1.25fr 1.25fr .9fr;gap:11px}
.detail-stat,.level-signal-card {min-height:91px;border-radius:12px;padding:16px;border:1px solid #e5eaeb;background:#f8fafa}
.detail-stat small,.detail-stat strong {display:block}
.detail-stat em {display:block;margin-top:7px;color:#8a989e;font-size:10px;font-style:normal}
.detail-stat.connection strong {display:flex;align-items:center;gap:8px}
.detail-stat.connection strong i {width:8px;height:8px;background:#22ad77;border-radius:50%;box-shadow:0 0 0 5px rgba(34,173,119,.11)}
.detail-stat.connection.offline strong {color:#8a979c}.detail-stat.connection.offline strong i {background:#a5afb2;box-shadow:0 0 0 5px rgba(165,175,178,.12)}
.level-signal-card {display:flex;align-items:center;gap:12px;position:relative;overflow:hidden}
.level-signal-card .level-icon {width:40px;height:40px;border-radius:11px;display:grid;place-items:center;font-weight:900}
.level-signal-card small,.level-signal-card strong {display:block}
.level-signal-card small {color:#718087;margin-bottom:5px}
.level-signal-card strong {font-size:16px}
.level-signal-card>i {position:absolute;width:9px;height:9px;border-radius:50%;right:14px;top:14px}
.level-signal-card.reached {background:linear-gradient(135deg,#edf9f4,#f7fcfa);border-color:#cbeadd}
.level-signal-card.reached .level-icon {background:#d4f0e5;color:#11815b}
.level-signal-card.reached strong {color:#117453}
.level-signal-card.reached>i {background:#1cb178;box-shadow:0 0 0 6px rgba(28,177,120,.1)}
.level-signal-card.not-reached {background:#f6f8f8;color:#68777d}
.level-signal-card.not-reached .level-icon {background:#e7ebec;color:#738188}
.level-signal-card.not-reached>i {background:#9eaaae}
.level-signal-card.unknown {background:#f3f5f5;border-color:#e1e6e7;color:#87959a}
.level-signal-card.unknown strong {color:#87959a}
.level-signal-card.unknown>i {background:#b5bec1;box-shadow:none}
.level-signal-card.high.reached {background:linear-gradient(135deg,#edf5fa,#f8fbfd);border-color:#cfdfeb}
.level-signal-card.high.reached .level-icon {background:#dcebf4;color:#276f9e}
.level-signal-card.high.reached strong {color:#245f86}
.level-signal-card.high.reached>i {background:#347da9;box-shadow:0 0 0 6px rgba(52,125,169,.1)}
.chart-legend {display:flex;gap:14px;font-size:11px;color:#708086}
.chart-legend span {display:flex;align-items:center;gap:6px}
.chart-legend i {display:block;width:18px;height:3px;border-radius:5px}
.low-line {background:#0d8f86}.high-line {background:#286f9d}
.safety-note {display:flex;gap:10px;align-items:center;margin:20px 0;padding:13px;border-radius:10px;background:#edf7f4;border:1px solid #d6ece5}
.safety-note>span {width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#1b9e70;color:#fff;font-weight:900}
.safety-note strong,.safety-note small {display:block}
.safety-note strong {font-size:12px}.safety-note small {font-size:10px;color:#71817f;margin-top:3px}
.controller-overview {display:grid;grid-template-columns:1.65fr .9fr;gap:18px;padding:18px 28px 0}
.state-panel {border:1px solid #e1e8e9;border-radius:13px;padding:20px;background:#fff}
.state-panel .panel-head {margin-bottom:15px}
.updated-chip {font-size:10px;padding:6px 9px;border-radius:20px;background:#edf4f3;color:#547079}
.controller-state-grid {display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.state-indicator {position:relative;min-height:72px;border-radius:10px;padding:13px;border:1px solid #e5eaeb;background:#f7f9f9}
.state-indicator span,.state-indicator strong {display:block}.state-indicator span {font-size:10px;color:#7a898e;margin-bottom:8px}.state-indicator strong {font-size:13px}
.state-indicator i {position:absolute;right:12px;top:12px;width:7px;height:7px;border-radius:50%;background:#aab4b7}
.state-indicator.active {background:#ebf8f3;border-color:#cdeade}.state-indicator.active strong {color:#117654}.state-indicator.active i {background:#1bad75;box-shadow:0 0 0 4px rgba(27,173,117,.1)}
.state-indicator.danger {background:#fff0ee;border-color:#f2d0cc}.state-indicator.danger strong {color:#b63d36}.state-indicator.danger i {background:#d24c43;box-shadow:0 0 0 4px rgba(210,76,67,.1)}
.state-indicator.information {background:#eef5f8;border-color:#d9e7ed}.state-indicator.information strong {color:#285f77}.state-indicator.information i {background:#4f8da8}
.device-health-grid {display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#e6ebec;border:1px solid #e6ebec;border-radius:10px;overflow:hidden}
.device-health-grid>div {background:#f8fafa;padding:12px}.device-health-grid span,.device-health-grid strong {display:block}.device-health-grid span {font-size:9px;color:#839196;margin-bottom:6px}.device-health-grid strong {font-size:11px;word-break:break-word}
.actuator-state-grid {display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0}
.actuator-state-grid .state-indicator {min-height:68px}
.command-buttons {grid-template-columns:1fr 1fr!important}
.command-buttons .btn {justify-content:flex-start;padding-left:16px}
.primary-commands {margin-bottom:13px}
.manual-controls {border-top:1px solid #e4eaeb;padding-top:13px}.manual-controls summary {cursor:pointer;font-size:11px;font-weight:750;color:#62767d}.manual-controls .command-buttons {margin:13px 0 0}
.action-btn {transition:.2s}.action-btn:hover {background:#e9f5f3;border-color:#bee2dc;transform:translateY(-1px)}

/* Global rhythm and typography */
button,input,select {font-family:inherit;font-size:14px}
.eyebrow,.kicker {font-size:12px;line-height:1.35;letter-spacing:.14em}
.nav-item {font-size:14px;line-height:1.35}
.topbar h2 {font-size:20px}
.topbar .eyebrow {font-size:10px}
.topbar-brand{display:flex;align-items:center;gap:13px;color:var(--ink);text-decoration:none;min-width:0}
.topbar-logo-frame{width:50px;height:50px;display:block;flex:0 0 50px;border-radius:50%;overflow:hidden;background:#fff}
.topbar-logo{width:100%;height:100%;display:block;object-fit:cover;transform:scale(1.18)}
.topbar-brand-copy{width:104px;display:flex;min-height:48px;flex-direction:column;justify-content:center}
.topbar-brand strong,.topbar-brand small{display:block;line-height:1.2;white-space:nowrap}
.topbar-brand strong{font-size:18px;font-weight:850}
.topbar-brand-cn{width:100%;display:flex!important;justify-content:space-between}
.topbar-brand small{margin-top:4px;color:var(--muted);font-size:10.5px;font-weight:650}
.topbar-brand-en{width:100%;display:flex!important;justify-content:space-between;letter-spacing:.01em}
.live-chip {font-size:12px}
.user-chip strong {font-size:14px}.user-chip small {font-size:12px}
.view {padding:32px 36px 64px}
.topbar h2,.section-head h1,.hero-row h1,.panel-head h3,.form-card h3,.dialog-head h2 {line-height:1.25}
.section-head {align-items:flex-end;margin-bottom:24px}
.section-head h1 {font-size:30px;font-weight:800;margin-bottom:9px}
.section-head p {line-height:1.7;margin-top:0}
#view-devices .device-overview {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 20px}
#view-devices .device-overview article {position:relative;min-height:82px;padding:15px 17px;border:1px solid #dfe8e8;border-radius:12px;background:rgba(255,255,255,.8);box-shadow:0 6px 20px rgba(20,42,50,.035)}
#view-devices .device-overview small {display:block;margin-bottom:7px;color:#71838a;font-size:12px;font-weight:650}
#view-devices .device-overview strong {color:#142a34;font-size:24px;line-height:1;font-weight:850}
#view-devices .device-overview span {margin-left:5px;color:#71838a;font-size:12px}
#view-devices .device-overview .usage {border-color:#cce5e1;background:#f4fbf9}
#view-devices .device-overview .usage strong {color:#08796f}
.hero-row {margin-bottom:20px}
.hero-copy {position:relative;z-index:1;max-width:680px}
.hero-row h1 {font-weight:850;line-height:1.18;letter-spacing:-.04em}
.hero-copy>p:last-child {font-size:14px;line-height:1.6}
.metric-card p {font-size:13px;line-height:1.35;margin:12px 0 5px}
.metric-card strong {font-size:29px}
.metric-card small {font-size:11px;line-height:1.4;margin-top:5px}
.metric-card .metric-icon {width:25px;height:25px;right:15px;top:14px;font-size:13px}
.dashboard-grid {grid-template-columns:minmax(280px,.8fr) minmax(0,1.5fr);gap:16px;align-items:start}
.dashboard-grid>.panel {min-height:174px;padding:18px 20px}
.dashboard-grid .fleet-panel .panel-head,.dashboard-grid .recent-panel .panel-head {margin-bottom:8px}
.dashboard-grid .fleet-panel .donut-wrap {padding:0}
.dashboard-grid .fleet-panel .donut {width:108px;height:108px}
.dashboard-grid .fleet-panel .donut::after {width:74px;height:74px}
.dashboard-grid .fleet-panel .donut strong {font-size:20px}
.dashboard-grid .fleet-panel .legend {min-width:96px}
.dashboard-grid .fleet-panel{min-height:0;padding:19px 20px 18px;background:linear-gradient(145deg,#fff 0%,#fbfdfd 100%)}
.dashboard-grid .fleet-panel .panel-head{align-items:flex-start;margin-bottom:13px}.dashboard-grid .fleet-panel .panel-head>span{border:1px solid #dfe9e8;border-radius:14px;background:#f3f8f7;padding:5px 9px;color:#49666c;font-size:10px;font-weight:800}
.dashboard-grid .fleet-panel .donut-wrap{display:grid;grid-template-columns:116px minmax(0,1fr);align-items:center;gap:15px;padding:2px 0 13px}
.dashboard-grid .fleet-panel .donut{width:112px;height:112px;background:conic-gradient(#15988c var(--online),#e7edee 0);box-shadow:inset 0 0 0 1px rgba(11,107,99,.03)}
.dashboard-grid .fleet-panel .donut::after{width:76px;height:76px;box-shadow:0 4px 14px rgba(20,56,62,.08)}
.dashboard-grid .fleet-panel .legend{display:grid;gap:8px;min-width:0}.dashboard-grid .fleet-panel .legend p{display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:7px;margin:0;padding:9px 10px;border:1px solid #e6ebec;border-radius:9px;background:#fff;color:#60747b;font-size:10px}.dashboard-grid .fleet-panel .legend p strong{color:#172f37;font-size:15px}.dashboard-grid .fleet-panel .legend p i{width:7px;height:7px}.dashboard-grid .fleet-panel .legend p span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fleet-health-note{display:flex;align-items:center;gap:8px;min-height:38px;padding:9px 11px;border:1px solid #e2e9ea;border-radius:9px;background:#f5f8f8;color:#61767d;font-size:10px;line-height:1.45}.fleet-health-note>i{width:8px;height:8px;flex:0 0 auto;border-radius:50%;background:#9caaae;box-shadow:0 0 0 4px rgba(156,170,174,.12)}.fleet-health-note.healthy{border-color:#cfe9df;background:#edf8f4;color:#237257}.fleet-health-note.healthy>i{background:#22ad77;box-shadow:0 0 0 4px rgba(34,173,119,.12)}.fleet-health-note.attention{border-color:#eadfc8;background:#fbf7ee;color:#82652f}.fleet-health-note.attention>i{background:#d49a3a;box-shadow:0 0 0 4px rgba(212,154,58,.12)}
.metric-grid {grid-template-columns:repeat(4,minmax(0,1fr))}
.device-status-head,.device-status-row {display:grid;grid-template-columns:minmax(190px,1.25fr) minmax(130px,.9fr) minmax(76px,.45fr);align-items:center;column-gap:16px}
.device-status-head {margin-bottom:7px;padding:0 14px;color:#83949a;font-size:10px;font-weight:800;letter-spacing:.08em}
.device-status-head span:last-child {text-align:right}
.device-status-list {display:grid;gap:7px;max-height:246px;overflow:auto;padding:4px 5px 4px 0;border-top:0;scrollbar-width:thin;scrollbar-color:#bfcfd1 transparent}
.device-status-list.empty-state {display:block;padding:34px;border-top:0}
.device-status-row {position:relative;width:100%;min-height:58px;padding:8px 13px;border:1px solid #e3e9ea;border-radius:10px;background:linear-gradient(105deg,#fff 0%,#fbfcfc 100%);box-shadow:0 3px 10px rgba(20,45,53,.035);color:#263b43;text-align:left;transition:border-color .18s,box-shadow .18s,transform .18s}
.device-status-row::before{content:"";position:absolute;left:-1px;top:11px;bottom:11px;width:3px;border-radius:0 4px 4px 0;background:#b8c3c6}
.device-status-row:hover {z-index:1;border-color:#b9dcd7;box-shadow:0 8px 20px rgba(18,67,69,.09);transform:translateY(-1px)}
.device-status-number{display:flex;align-items:center;gap:10px;min-width:0}.device-status-number>span:last-child{min-width:0}
.device-number-mark{width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;border-radius:10px;background:#edf2f3;color:#455d65;font-size:12px;font-weight:900;letter-spacing:.03em}
.device-status-number strong,.device-status-number small {display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.device-status-number strong {color:#1a3139;font-size:12px;font-weight:800}
.device-status-number small {margin-top:2px;color:#91a0a5;font-size:9px}
.device-status-customer {justify-self:start;max-width:100%;overflow:hidden;border:1px solid #dbe8e6;border-radius:15px;background:#f1f8f6;padding:5px 9px;color:#3d6763;font-size:10px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}
.device-status-customer.unassigned{border-color:#e4e8e9;background:#f3f5f5;color:#829095}
.device-status-value {display:flex;align-items:center;justify-content:flex-end;gap:7px;color:#73848a;font-size:10px}
.device-status-value strong{font-size:10px;font-weight:800}
.device-status-value i {width:8px;height:8px;border-radius:50%;background:#aeb9bd;box-shadow:0 0 0 4px #edf0f1}
.device-status-row.online::before{background:#20ad78}.device-status-row.online .device-number-mark{background:#e4f5ef;color:#137759}
.device-status-row.online .device-status-value {color:#13815f}.device-status-row.online .device-status-value i {background:#22ad77;box-shadow:0 0 0 4px #dff3eb}
.device-status-row.fault::before{background:#d4544c}.device-status-row.fault .device-number-mark{background:#fae9e7;color:#aa4039}
.device-status-row.fault .device-status-value {color:#b3423b}.device-status-row.fault .device-status-value i {background:#d4544c;box-shadow:0 0 0 4px #fae7e5}
.customer-name {font-size:12px;color:#31464d}.unassigned-customer {display:inline-flex;padding:4px 8px;border-radius:12px;background:#f0f3f4;color:#7a898e;font-size:10px;font-weight:750}
.panel-head {align-items:flex-start;margin-bottom:20px}
.panel-head .kicker {margin-bottom:8px}
.panel-head h3 {font-size:18px}
.text-btn {font-size:13px}
.stack-item {min-height:72px;padding:16px 2px;line-height:1.45}
.stack-item strong {font-size:15px}
.stack-item small {font-size:13px;line-height:1.55}
.legend p {font-size:13px}
.toolbar {gap:12px;padding:20px}
.toolbar input,.toolbar select,#alarm-filter {font-size:14px;line-height:1.4}
.search-box {min-height:44px}
.toolbar .search-box input,.toolbar .search-box input:focus {height:auto;border:0;box-shadow:none;background:transparent}
.toolbar .search-box:focus-within {border-color:var(--teal);box-shadow:0 0 0 3px rgba(13,143,134,.1)}
.table-wrap {scrollbar-width:thin;scrollbar-color:#cbd6d8 transparent}
table {line-height:1.45}
th {padding:15px 14px;font-size:12px;white-space:nowrap}
td {padding:19px 14px;font-size:14px;vertical-align:middle}
tbody tr {transition:background-color .18s ease}
tbody tr:hover {background:#f8fbfb}
.status-pill {display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:6px 11px;font-size:12px;line-height:1;white-space:nowrap;text-transform:none}
.action-btn {min-height:38px;padding:7px 12px;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;white-space:nowrap;line-height:1.2}
.pagination {min-height:68px;padding:16px 18px;font-size:13px}
.alarm-row {grid-template-columns:42px minmax(220px,1fr) auto auto minmax(145px,auto) auto;min-height:84px;padding:20px;line-height:1.45}
.alarm-row strong {font-size:15px}.alarm-row small {font-size:13px;line-height:1.5}
.alarm-resolve-btn {height:34px;padding:0 13px;border:1px solid #d7e3e3;border-radius:8px;background:#edf5f3;color:#08796f;font-size:12px;font-weight:750;white-space:nowrap}
.alarm-resolve-btn:hover {border-color:#9ed2ca;background:#def1ed}.alarm-resolve-btn:disabled {cursor:default;opacity:.6}
.alarm-handling{display:block!important;margin-top:5px;color:#35766f!important;font-weight:650}
.alarm-head-actions{display:flex;align-items:center;gap:10px}.alarm-clear-all{height:42px;padding:0 15px;border:1px solid #e4b7b3;border-radius:9px;background:#fff7f6;color:#a83e37;font-size:12px;font-weight:800;white-space:nowrap;transition:.16s}.alarm-clear-all:hover:not(:disabled){background:#fbe8e6;border-color:#ce7b74}.alarm-clear-all:disabled{cursor:not-allowed;opacity:.5}
.form-card {padding:26px}
.form-card h3 {font-size:20px;margin-bottom:26px}
.form-card label {font-size:14px;line-height:1.45}
.assignment-note {min-height:44px;margin:-13px 0 10px;color:#718096;font-size:12px;line-height:1.55}
.form-hint {display:block;margin-top:12px;text-align:center;color:#718096;font-size:12px}
.login-form,.login-form input,.login-btn {line-height:1.45}
.login-form h2 {font-size:38px}.login-form>p,.login-form>small {font-size:14px;line-height:1.65}

/* Device list: compact enough to fit the panel without horizontal scrolling. */
#view-devices .table-panel {width:100%;max-width:1180px;margin:10px 0 0;overflow:hidden}
#view-devices .table-wrap {width:100%;overflow-x:hidden}
#view-devices table {width:100%;min-width:0;table-layout:fixed}
#view-devices th,#view-devices td {padding-left:10px;padding-right:10px;text-align:center}
#view-devices thead tr {height:46px}
#view-devices tbody tr {height:58px}
#view-devices th {padding-top:0;padding-bottom:0;color:#72858d;font-size:11px;font-weight:700;line-height:1.3;letter-spacing:.02em;text-transform:none;vertical-align:middle}
#view-devices td {padding-top:10px;padding-bottom:10px;color:#53666d;font-size:13px;line-height:1.35;vertical-align:middle}
#view-devices th:nth-child(1),#view-devices td:nth-child(1) {width:18%}
#view-devices th:nth-child(2),#view-devices td:nth-child(2) {width:20%}
#view-devices th:nth-child(3),#view-devices td:nth-child(3) {width:16%}
#view-devices th:nth-child(4),#view-devices td:nth-child(4) {width:14%;line-height:1.35}
#view-devices th:nth-child(5),#view-devices td:nth-child(5) {width:18%;text-align:center}
#view-devices th:nth-child(6),#view-devices td:nth-child(6) {width:14%}
.device-cell {min-width:0;gap:10px;justify-content:center;align-items:center;text-align:left}
.device-cell>div {min-width:0}
.device-cell strong {display:block;color:#17272d;font-size:14px;font-weight:750;line-height:1.3;white-space:nowrap}
.device-cell small {display:-webkit-box;margin-top:4px;color:#7b8a90;font-size:11px;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.device-connection-dot {width:10px;height:10px;flex:0 0 10px;border-radius:50%;background:#aebbc0;box-shadow:0 0 0 4px #edf1f2}
.device-connection-dot.online {background:#25b784;box-shadow:0 0 0 4px #ddf4eb}
.device-connection-dot.offline {background:#aebbc0;box-shadow:0 0 0 4px #edf1f2}
.device-unavailable {color:#a3afb3;font-size:17px;line-height:1}
#view-devices .customer-name {display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
#view-devices .device-work-state {display:flex;min-height:34px;flex-direction:column;align-items:center;justify-content:center;gap:2px}
#view-devices .device-work-state strong {font-size:13px;line-height:1.25;white-space:nowrap}
#view-devices .device-work-state small {display:block;color:#7c8b91;font-size:11px;line-height:1.25;white-space:nowrap}
#view-devices .device-last-seen {display:inline-block;line-height:1.35;white-space:normal}
#view-devices .status-pill {min-height:27px;padding:5px 8px;font-size:11px}
#view-devices .action-btn {min-width:58px;min-height:32px;padding:5px 9px;font-size:12px}
#view-devices #search-devices {background:#0a7770;color:#fff;box-shadow:0 5px 12px rgba(10,119,112,.16)}
#view-devices #search-devices:hover {background:#075f5a}
#view-devices .device-filter-toolbar {display:grid;grid-template-columns:minmax(210px,1.45fr) minmax(160px,1.1fr) minmax(104px,.68fr) minmax(110px,.72fr) 72px;align-items:center;gap:10px;padding:18px 20px}
#view-devices .device-filter-toolbar>* {width:100%;min-width:0}
#view-devices .device-filter-toolbar .search-box {height:44px}
#view-devices .device-filter-toolbar select {height:44px;padding-left:13px;padding-right:32px;text-overflow:ellipsis}
#view-devices .device-filter-toolbar #search-devices {width:72px;min-width:72px;height:44px;padding:0 14px;white-space:nowrap;line-height:1}
.sensor-pair.compact {min-width:0;flex-wrap:nowrap;gap:5px;justify-content:center}
.sensor-indicator>span {font-size:12px}.sensor-indicator strong {font-size:13px}
.sensor-pair.compact .sensor-indicator {min-width:0;flex:1;padding:6px}
.sensor-pair.compact .sensor-indicator>span {white-space:nowrap}

/* Detail dialog spacing */
.device-dialog {line-height:1.5}
.dialog-head {height:88px}
.detail-summary {padding-top:24px;padding-bottom:10px}
.detail-stat,.level-signal-card {padding:17px}
.detail-stat small,.level-signal-card small {font-size:12px}
.detail-stat strong {font-size:15px}.detail-stat em {font-size:12px;line-height:1.45}
.controller-overview {gap:20px;padding-top:20px}
.state-panel {padding:22px}
.controller-state-grid {gap:10px}
.state-indicator {padding:14px;line-height:1.4}
.state-indicator span {font-size:12px}.state-indicator strong {font-size:14px}
.device-health-grid>div {padding:14px}
.device-health-grid span {font-size:11px}.device-health-grid strong {font-size:13px;line-height:1.45}
.safety-note strong {font-size:14px}.safety-note small {font-size:12px;line-height:1.5}
.command-box,.command-box label {font-size:14px}
.command-row {align-items:center;font-size:13px;line-height:1.45}

@media(max-width:1100px){.detail-summary{grid-template-columns:repeat(3,1fr)}.controller-overview{grid-template-columns:1fr}.controller-state-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:760px){.view{padding:24px 16px 52px}.hero-row{align-items:flex-start;padding:22px;min-height:170px;margin-bottom:18px}.hero-actions{align-items:flex-end;flex-direction:column}.hero-row h1{font-size:27px}.metric-grid{padding:0;margin-top:0;gap:12px}.metric-card{min-height:112px}.detail-summary{grid-template-columns:1fr 1fr}.sensor-pair.compact{min-width:160px}.controller-overview{padding:16px}.controller-state-grid{grid-template-columns:1fr 1fr}.toolbar{padding:16px}.section-head{margin-bottom:20px}.alarm-head-actions{width:100%;justify-content:flex-end;flex-wrap:wrap}.alarm-row{grid-template-columns:40px minmax(0,1fr) auto;gap:12px}.alarm-row>.alarm-time{grid-column:2}.alarm-resolve-btn{grid-column:3;grid-row:1/3}}
@media(max-width:900px){.dashboard-grid{grid-template-columns:1fr}.dashboard-grid>.panel{min-height:auto}}
@media(max-width:760px){.metric-grid{grid-template-columns:1fr 1fr}.metric-grid .metric-card:last-child{grid-column:auto}.device-status-head,.device-status-row{grid-template-columns:72px minmax(92px,1fr) 62px;column-gap:9px}}
@media(max-width:700px){#view-devices .device-overview{grid-template-columns:repeat(2,minmax(0,1fr))}#view-devices .device-overview article{min-height:74px;padding:13px 14px}}

/* Firmware OTA */
.ota-safety-banner{display:flex;align-items:flex-start;gap:13px;margin:-3px 0 18px;padding:14px 16px;border:1px solid #cce7df;border-radius:12px;background:#f0faf7;color:#24534d}
.ota-safety-banner>span{display:grid;place-items:center;flex:0 0 26px;width:26px;height:26px;border-radius:50%;background:#15977f;color:#fff;font-weight:800}
.ota-safety-banner strong{display:block;font-size:14px}.ota-safety-banner p{margin:3px 0 0;color:#607a76;font-size:12px;line-height:1.6}
.ota-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);gap:16px;margin-bottom:16px}
.ota-upload-card,.ota-release-card,.ota-history-card{padding:22px}
.ota-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}
.ota-form-grid label,.ota-release-select{display:flex;flex-direction:column;gap:7px;color:#263a43;font-size:13px;font-weight:700}
.ota-form-grid input,.ota-form-grid textarea,.ota-release-select select{width:100%;border:1px solid #dbe4e6;border-radius:9px;background:#fbfcfc;padding:11px 12px;color:#142a34;font:inherit;outline:none}
.ota-form-grid input:focus,.ota-form-grid textarea:focus,.ota-release-select select:focus{border-color:#15978a;box-shadow:0 0 0 3px rgba(21,151,138,.1)}
.ota-file-field,.ota-notes-field{grid-column:1/-1}.ota-form-grid label small{color:#7a8b91;font-size:11px;font-weight:500;line-height:1.45}
.ota-release-list{display:grid;gap:7px;max-height:116px;margin-top:16px;padding:14px 3px 0 0;overflow-y:auto;border-top:1px solid #e4eaeb;scrollbar-width:thin;scrollbar-color:#cbd6d8 transparent}
.ota-release-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 11px;border-radius:9px;background:#f5f8f8}
.ota-release-item strong,.ota-release-item small,.ota-release-item span,.ota-release-item code{display:block}.ota-release-item small,.ota-release-item span{color:#75878d;font-size:10px}.ota-release-item code{color:#39716b;font-size:10px}
.ota-release-actions{display:flex;align-items:center;gap:9px;text-align:right}.ota-release-actions button{height:27px;padding:0 8px;border:1px solid #ebc6c2;border-radius:7px;background:#fff8f7;color:#a4453e;font-size:10px;font-weight:800;white-space:nowrap}.ota-release-actions button:hover:not(:disabled){border-color:#d58780;background:#fbeae8}.ota-release-actions button:disabled{opacity:.5;cursor:not-allowed}
.ota-device-picker-head{display:flex;align-items:center;justify-content:space-between;margin:17px 0 10px}.ota-device-picker-head>div{display:flex;gap:12px}
.ota-device-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-height:244px;overflow:auto;padding:2px}
.ota-device-option{display:flex;align-items:center;gap:9px;min-width:0;padding:10px;border:1px solid #e0e7e8;border-radius:9px;background:#f8fafa;cursor:pointer}
.ota-device-option:has(input:checked){border-color:#83cbbd;background:#eaf8f4;box-shadow:0 0 0 2px rgba(21,151,138,.08)}
.ota-device-option input{position:absolute;opacity:0;pointer-events:none}.ota-device-option>i{flex:0 0 8px;width:8px;height:8px;border-radius:50%;background:#abb7ba;box-shadow:0 0 0 4px #eaeeee}.ota-device-option.online>i{background:#1eac77;box-shadow:0 0 0 4px #dff3eb}
.ota-device-option span{min-width:0}.ota-device-option strong,.ota-device-option small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ota-device-option strong{font-size:13px}.ota-device-option small{margin-top:2px;color:#71838a;font-size:10px}
.ota-deploy-footer{display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding-top:14px;border-top:1px solid #e4eaeb}.ota-deploy-footer small{color:#6f8187}
.ota-history-card table{width:100%;table-layout:fixed}.ota-history-card th,.ota-history-card td{padding:13px 12px}.ota-history-card th:nth-child(1){width:10%}.ota-history-card th:nth-child(2){width:14%}.ota-history-card th:nth-child(3){width:15%}.ota-history-card th:nth-child(4){width:17%}.ota-history-card th:nth-child(5){width:23%}.ota-history-card th:nth-child(6){width:21%}
.ota-status{display:inline-flex;align-items:center;min-height:27px;padding:5px 9px;border-radius:20px;background:#eef2f3;color:#617278;font-size:11px;font-weight:750}.ota-status.success{background:#e3f6ed;color:#117751}.ota-status.failed,.ota-status.rolled_back{background:#fbe8e6;color:#af3d36}.ota-status.downloading,.ota-status.installing{background:#e7f2f7;color:#286984}.ota-status.pending{background:#f3f0e7;color:#806c2a}.ota-status.cancelled{background:#eef0f1;color:#748288}
.ota-progress{display:inline-block;width:74%;height:7px;margin-right:7px;overflow:hidden;border-radius:8px;background:#e9eeee;vertical-align:middle}.ota-progress i{display:block;height:100%;border-radius:inherit;background:#15978a}.ota-history-card td>small{font-size:10px;color:#6f8187}
@media(max-width:1050px){.ota-layout{grid-template-columns:1fr}.ota-device-list{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){.ota-form-grid{grid-template-columns:1fr}.ota-form-grid>*{grid-column:1}.ota-device-list{grid-template-columns:repeat(2,minmax(0,1fr))}.ota-history-card{overflow:hidden}.ota-history-card .table-wrap{overflow:auto}.ota-history-card table{min-width:720px}}
@media(max-width:760px){#view-devices .table-panel{width:100%;margin-top:6px}}
@media(max-width:820px){
  #view-devices .device-filter-toolbar {grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) 72px}
  #view-devices .device-filter-toolbar .search-box {grid-column:1/3}
  #view-devices .device-filter-toolbar #device-customer-filter {grid-column:1/2}
  #view-devices .device-filter-toolbar #search-devices {grid-column:3;grid-row:1/3;height:98px}
  #view-devices .table-wrap {overflow-x:auto}
  #view-devices .device-list-table {min-width:780px}
}
@media(max-width:480px){.hero-row{display:block}.hero-actions{align-items:flex-start;margin-top:22px}.detail-summary{grid-template-columns:1fr}.sensor-pair.compact{min-width:180px}}

/* Simplified device detail: usage is primary, engineering data stays secondary. */
.device-dialog {width:min(760px,calc(100vw - 48px));max-height:calc(100vh - 110px)}
@media(min-width:1101px){.device-dialog{transform:translateX(120px)}}
.device-dialog .dialog-head {height:68px;padding-left:22px;padding-right:22px}
.device-dialog .dialog-head h2 {font-size:21px}
.device-dialog .dialog-head .eyebrow {font-size:10px;margin-bottom:5px}
.detail-summary {grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.detail-summary>.empty-state {grid-column:1/-1}
.device-dialog .detail-summary {padding:10px 22px 0}
.device-dialog .detail-stat,.device-dialog .level-signal-card {min-height:56px;padding:7px 9px}
.device-dialog .detail-stat {display:flex;flex-direction:column;justify-content:center;text-align:center}
.device-dialog .detail-stat small,.device-dialog .level-signal-card small {
  margin-bottom:4px;
  color:#5f747d;
  font-size:13px;
  font-weight:600;
  line-height:1.2;
}
.device-dialog .detail-stat.connection strong {justify-content:center}
.device-dialog .detail-stat.connection strong i {position:static;width:8px;height:8px;box-shadow:0 0 0 4px rgba(34,173,119,.11)}
.device-dialog .detail-stat em {margin-top:4px;font-size:10px}
.device-dialog .level-signal-card {justify-content:center;text-align:center}.device-dialog .level-signal-card>i {left:9px;right:auto;top:9px;width:7px;height:7px}.device-dialog .level-signal-card strong {font-size:13px}
.detail-stat.usage-total {background:linear-gradient(145deg,#edf8f5,#f8fcfb);border-color:#cfe9e1}
.detail-stat.usage-total strong {color:#08796f;font-size:16px}
.device-detail-layout {display:grid;grid-template-columns:minmax(0,1.3fr) minmax(270px,.8fr);gap:13px;align-items:stretch;padding:14px 22px 0}
.usage-panel,.simplified-control,.simple-device-info,.recent-actions,.runtime-logs {border:1px solid #e1e8e9;border-radius:13px;background:#fff}
.usage-panel,.simplified-control {padding:16px}
.usage-panel,.simplified-control {height:100%}
.usage-panel .panel-head {margin-bottom:10px}
.usage-panel-actions {display:flex;align-items:center;justify-content:flex-end;gap:7px}
.usage-reset-button {height:28px;padding:0 10px;border:1px solid #e5b9b5;border-radius:8px;background:#fff7f6;color:#a7433d;font-size:10px;font-weight:800;white-space:nowrap;transition:.16s}
.usage-reset-button:hover:not(:disabled) {border-color:#cc746d;background:#fce8e6;color:#91332d}
.usage-reset-button:disabled {cursor:not-allowed;opacity:.45}
.usage-section-title {margin:11px 0 7px;color:#60737a;font-size:12px;font-weight:750}
.usage-section-title.recent-title {margin-top:13px;padding-top:11px;border-top:1px solid #e8edef}
.usage-daily-list {display:grid;grid-template-columns:repeat(7,minmax(34px,1fr));gap:7px;align-items:end;height:122px;padding:3px 2px 0}
.usage-day {height:116px;display:grid;grid-template-rows:19px 1fr 22px;gap:3px;align-items:end;text-align:center;color:#73838a;font-size:10px}
.usage-day>div {width:18px;height:68px;justify-self:center;display:flex;align-items:flex-end;overflow:hidden;border-radius:7px 7px 3px 3px;background:#edf1f2}
.usage-day i {display:block;width:100%;border-radius:7px 7px 3px 3px;background:#cbd5d7;transition:height .25s ease}
.usage-day strong {align-self:start;text-align:center;color:#52666d;font-size:11px;white-space:nowrap}
.usage-day>span {align-self:end;white-space:nowrap}
.usage-day.has-usage {color:#20363d}.usage-day.has-usage i {background:linear-gradient(90deg,#0c9187,#35b6a6)}.usage-day.has-usage strong {color:#08796f}
.usage-history {display:grid;gap:6px;max-height:145px;overflow:auto;padding-right:3px;scrollbar-width:thin;scrollbar-color:#cbd6d8 transparent}
.usage-record {display:grid;grid-template-columns:28px 1fr auto;gap:9px;align-items:center;min-height:46px;padding:7px 10px;border-radius:9px;background:#f6f9f9}
.usage-record>span {width:27px;height:27px;display:grid;place-items:center;border-radius:50%;background:#dff3ec;color:#13825f;font-weight:900}
.usage-record strong,.usage-record small {display:block}.usage-record strong {font-size:14px}.usage-record small {margin-top:3px;color:#75868c;font-size:12px}.usage-record b {color:#08796f;font-size:13px}
.usage-empty {min-height:62px;display:grid;place-content:center;text-align:center;padding:10px;border-radius:10px;background:#f7f9f9}
.usage-empty strong,.usage-empty small {display:block}.usage-empty strong {font-size:14px}.usage-empty small {margin-top:6px;color:#7d8d92;font-size:12px}
.usage-tracking-note {margin:8px 0 0;color:#859399;font-size:10px;line-height:1.5}
.simplified-control>h3 {margin:0 0 10px;font-size:16px}
.current-state-grid {display:grid;grid-template-columns:1fr 1fr;gap:8px}
.current-state-grid .empty-state,.actuator-state-grid .empty-state {grid-column:1/-1}
.current-state-grid .state-indicator {min-height:57px;padding:10px}.current-state-grid .state-indicator span {margin-bottom:4px;font-size:10px}.current-state-grid .state-indicator strong {font-size:12px}
.simplified-control .safety-note {margin:10px 0;padding:9px}.simplified-control .safety-note>span {width:22px;height:22px}.simplified-control .safety-note strong {font-size:12px}.simplified-control .safety-note small {font-size:10px}
.simplified-control .command-buttons .btn {justify-content:center;padding:0 10px}
.simplified-control .primary-commands {margin:10px 0}.simplified-control .primary-commands .btn {height:36px;font-size:12px}
.simplified-control .primary-commands .btn.is-active {background:#dff3ec;color:#087457;border:1px solid #b9e2d5}
.simplified-control .primary-commands .btn:disabled {cursor:default;opacity:.68}
.persistent-lock-control {display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px;align-items:center;margin:10px 0;padding:9px;border:1px solid #eadfdd;border-radius:10px;background:#fffafa}
.persistent-lock-control>div {min-width:0}.persistent-lock-control strong,.persistent-lock-control small {display:block}.persistent-lock-control strong {font-size:12px;color:#923b35}.persistent-lock-control small {margin-top:3px;color:#8b7774;font-size:9px;line-height:1.35}
.persistent-lock-control .btn {height:32px;padding:0 10px;font-size:11px;white-space:nowrap}.persistent-lock-control .permanent-stop {background:#b8433b;color:#fff}.persistent-lock-control .resume-service {background:#e8eeee;color:#53666c}.persistent-lock-control.is-locked {border-color:#e3b7b2;background:#fff3f1}.persistent-lock-control.is-locked .resume-service:not(:disabled) {background:#0d8f86;color:#fff}.persistent-lock-control .btn:disabled {cursor:default;opacity:.45}
.status-pill.remote-locked {background:#f8e3df;color:#a13b34}
.output-toggle-grid {display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:9px}
.output-toggle {min-height:48px;padding:7px 5px;border:1px solid #dfe6e7;border-radius:9px;background:#f5f7f7;color:#52666d;text-align:center;transition:.18s}
.output-toggle span,.output-toggle strong {display:block}.output-toggle span {font-size:11px}.output-toggle strong {margin-top:3px;font-size:11px;color:#7b898e}
.output-toggle:hover {border-color:#aedbd4}.output-toggle.is-on {background:#e3f5ee;border-color:#a9dfce;color:#096f55;box-shadow:inset 0 0 0 1px rgba(18,147,105,.08)}.output-toggle.is-on strong {color:#09805e}.output-toggle.is-pending {background:#fff4df;border-color:#eed19a;color:#99671d}.output-toggle:disabled {cursor:default;opacity:.72}
.simple-device-info,.recent-actions,.runtime-logs {margin:12px 22px 0;padding:14px 16px}
.device-health-grid {grid-template-columns:repeat(4,1fr)}
.simple-device-info .panel-head,.recent-actions .panel-head,.runtime-logs .panel-head {margin-bottom:8px}
.recent-actions .command-list {padding-bottom:0}
.recent-actions .command-list {max-height:185px;overflow:auto;scrollbar-width:thin;scrollbar-color:#cbd6d8 transparent}
.command-row {grid-template-columns:minmax(120px,1fr) auto minmax(190px,1fr)}
.runtime-logs {margin-bottom:20px}
.runtime-log-list {display:grid;max-height:310px;overflow:auto;padding-right:4px;scrollbar-width:thin;scrollbar-color:#cbd6d8 transparent}
.runtime-log-row {display:grid;grid-template-columns:138px 10px minmax(0,1fr);gap:10px;align-items:start;padding:11px 5px;border-bottom:1px solid #edf1f2}
.runtime-log-row:last-child {border-bottom:0}
.runtime-log-row time {padding-top:2px;color:#687b82;font-size:11px;white-space:nowrap}
.runtime-log-row>i {width:8px;height:8px;margin-top:6px;border-radius:50%;background:#9dabb0;box-shadow:0 0 0 4px #eef2f3}
.runtime-log-row.running>i {background:#14998e;box-shadow:0 0 0 4px #def2ee}
.runtime-log-row.danger>i {background:#d4544c;box-shadow:0 0 0 4px #fae8e6}
.runtime-log-title {display:flex;align-items:center;gap:8px;min-width:0}
.runtime-log-title strong {min-width:0;color:#1d3037;font-size:12px;line-height:1.45}
.runtime-log-title span {flex:0 0 auto;padding:3px 7px;border-radius:12px;background:#edf4f3;color:#16796f;font-size:9px;font-weight:750}
.runtime-log-row.danger .runtime-log-title span {background:#fae8e6;color:#ae453e}
.runtime-log-row small {display:block;margin-top:4px;color:#708188;font-size:10px;line-height:1.5}

@media(max-width:800px){
  .detail-summary {grid-template-columns:repeat(3,1fr)}
  .device-detail-layout {grid-template-columns:1fr}
  .device-health-grid {grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  .device-dialog {width:calc(100vw - 20px)}
  .device-detail-layout {padding:16px 16px 0}
  .usage-panel,.simplified-control {padding:17px}
  .simple-device-info,.recent-actions,.runtime-logs {margin:16px 16px 0;padding:17px}
  .runtime-logs {margin-bottom:16px}
  .usage-daily-list {gap:4px}
  .output-toggle-grid {grid-template-columns:1fr 1fr}
  .command-row {grid-template-columns:1fr auto}.command-row>span:last-child {grid-column:1/-1}
  .runtime-log-row {grid-template-columns:1fr 10px minmax(0,2fr)}
  .runtime-log-row time {white-space:normal}
}
@media(max-width:480px){
  .detail-summary {grid-template-columns:1fr 1fr}
  .device-health-grid,.current-state-grid {grid-template-columns:1fr}
  .persistent-lock-control {grid-template-columns:1fr 1fr}.persistent-lock-control>div {grid-column:1/-1}
}

/* Audit records: compact, readable and visually grouped. */
#view-audit .section-head {margin-bottom:20px}
#view-audit .table-panel {overflow:hidden}
#view-audit .table-wrap {overflow-x:hidden}
#view-audit table {width:100%;min-width:0;table-layout:fixed}
#view-audit th {height:42px;padding:0 18px;background:#f8fafa;color:#7a8a90;font-size:10px;font-weight:800;letter-spacing:.08em}
#view-audit td {height:76px;padding:12px 18px;vertical-align:middle;color:#465960}
#view-audit th:nth-child(1),#view-audit td:nth-child(1) {width:17%}
#view-audit th:nth-child(2),#view-audit td:nth-child(2) {width:23%}
#view-audit th:nth-child(3),#view-audit td:nth-child(3) {width:20%}
#view-audit th:nth-child(4),#view-audit td:nth-child(4) {width:20%}
#view-audit th:nth-child(5),#view-audit td:nth-child(5) {width:20%}
.audit-panel {border-radius:14px}
.audit-toolbar {min-height:58px;padding:11px 16px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid #e7ecee;background:#fff}
.audit-category-filter {display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.audit-category-filter button {height:32px;padding:0 13px;border:1px solid #dce5e6;border-radius:17px;background:#fff;color:#63767d;font-size:11px;font-weight:750;transition:.16s}
.audit-category-filter button:hover {border-color:#9bcfc8;color:#08796f;background:#f5fbfa}
.audit-category-filter button.active {border-color:#0d8f86;background:#0d8f86;color:#fff;box-shadow:0 5px 12px rgba(13,143,134,.16)}
.audit-count {flex:0 0 auto;color:#87959a;font-size:11px;white-space:nowrap}
.audit-time span,.audit-time small,.audit-account strong,.audit-account small {display:block}
.audit-time span {color:#273c43;font-size:13px;font-weight:750;white-space:nowrap}
.audit-time small,.audit-account small {margin-top:4px;color:#86959a;font-size:11px;line-height:1.3}
.audit-action {display:flex;align-items:center;gap:8px;min-width:0}
.audit-action strong {min-width:0;color:#20343b;font-size:13px;font-weight:750;line-height:1.4;white-space:nowrap}
.audit-category {display:inline-flex;align-items:center;flex:0 0 auto;min-height:21px;padding:0 7px;border-radius:11px;font-size:9px;font-weight:800;white-space:nowrap}
.audit-category.login {background:#e9f1f8;color:#3f6f98}
.audit-category.control {background:#e3f5ef;color:#13785b}
.audit-category.config {background:#f0ecf8;color:#725a97}
.audit-category.alarm {background:#fae8e6;color:#ae453e}
.audit-row {transition:background .15s}
.audit-row:hover {background:#fafcfc}
.audit-target {overflow:hidden;color:#0b8177;font-size:13px;font-weight:750;line-height:1.45;text-overflow:ellipsis;white-space:nowrap}
.audit-account strong {color:#273c43;font-size:13px;font-weight:750}
.audit-result {font-size:12px;line-height:1.4}
.audit-result-badge {display:inline-flex;align-items:center;min-height:25px;padding:0 9px;border-radius:13px;font-size:11px;font-weight:750;white-space:nowrap}
.audit-result-badge.success {background:#e6f5ed;color:#247556}
.audit-result-badge.progress {background:#edf3f7;color:#4b7088}
.audit-result-badge.failed {background:#fae9e7;color:#ac423b}
@media(max-width:900px){
  #view-audit th,#view-audit td{padding-left:12px;padding-right:12px}
  #view-audit th:nth-child(1),#view-audit td:nth-child(1){width:18%}
  #view-audit th:nth-child(2),#view-audit td:nth-child(2){width:25%}
  #view-audit th:nth-child(3),#view-audit td:nth-child(3){width:18%}
  #view-audit th:nth-child(4),#view-audit td:nth-child(4){width:19%}
  #view-audit th:nth-child(5),#view-audit td:nth-child(5){width:20%}
  .audit-action{align-items:flex-start;flex-direction:column;gap:4px}
}
@media(max-width:620px){
  .audit-toolbar{align-items:flex-start;flex-direction:column}
  .audit-count{align-self:flex-end}
  #view-audit .table-wrap{overflow-x:auto}
  #view-audit table{min-width:720px}
}

/* Customer-visible account settings page. */
.settings-page-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.settings-profile-card,.settings-option-card,.settings-system-card {padding:21px 22px}
.settings-profile-card,.settings-system-card,.settings-preference-grid {grid-column:1/-1}
.settings-preference-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.settings-card-head {display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:17px}
.settings-card-head small {display:block;margin-bottom:4px;color:#0b8a80;font-size:10px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}
.settings-card-head h3 {margin:0;font-size:17px}
.settings-profile-main {display:flex;align-items:center;gap:13px;margin-bottom:17px}
.settings-profile-main>span {width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#d8f1eb;color:#08796f;font-size:16px;font-weight:850}
.settings-profile-main strong,.settings-profile-main small {display:block}.settings-profile-main strong {font-size:16px}.settings-profile-main small {margin-top:3px;color:#71838a;font-size:12px}
.settings-info-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid #e3e9ea;border-radius:11px;overflow:hidden}
.settings-info-grid>div {min-width:0;padding:13px 15px;background:#fafcfc;border-right:1px solid #e3e9ea}.settings-info-grid>div:last-child {border-right:0}
.settings-info-grid small,.settings-info-grid strong {display:block}.settings-info-grid small {margin-bottom:5px;color:#7a8a90;font-size:11px}.settings-info-grid strong {overflow:hidden;text-overflow:ellipsis;color:#23383f;font-size:13px;white-space:nowrap}
.settings-option-card {min-height:246px}
.settings-toggle {display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid #edf1f2;cursor:pointer}
.settings-toggle span strong,.settings-toggle span small {display:block}.settings-toggle span strong {font-size:13px}.settings-toggle span small {margin-top:4px;color:#809096;font-size:11px;line-height:1.4}
.settings-toggle input {position:absolute;opacity:0;pointer-events:none}
.settings-toggle>i {flex:0 0 auto;width:38px;height:22px;padding:3px;border-radius:12px;background:#cbd4d6;transition:.18s}
.settings-toggle>i::before {content:"";display:block;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(22,44,52,.22);transition:.18s}
.settings-toggle input:checked+i {background:#0d8f86}.settings-toggle input:checked+i::before {transform:translateX(16px)}
.settings-toggle.compact {padding:11px 0}
.settings-select-row {display:flex;align-items:center;justify-content:space-between;gap:16px;padding:9px 0;color:#42565d;font-size:12px}
.settings-select-row select {height:36px;min-width:126px;border:1px solid #dfe6e8;border-radius:8px;background:#fafcfc;padding:0 10px;outline:none}
.settings-save {width:100%;margin-top:10px}
.settings-system-card {padding-bottom:18px}
.settings-health {display:inline-flex;align-items:center;gap:7px;border-radius:18px;background:#e7f6ef;color:#287b59;padding:7px 10px;font-size:11px;font-weight:750}.settings-health i {width:7px;height:7px;border-radius:50%;background:#32b77f}
.settings-system-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.settings-system-grid>div {padding:12px 14px;border-radius:9px;background:#f6f9f9}.settings-system-grid small,.settings-system-grid strong {display:block}.settings-system-grid small {margin-bottom:5px;color:#7a8a90;font-size:11px}.settings-system-grid strong {font-size:13px}
@media(max-width:900px){.settings-page-grid,.settings-preference-grid{grid-template-columns:1fr}.settings-info-grid{grid-template-columns:1fr 1fr}.settings-info-grid>div:nth-child(2){border-right:0}.settings-info-grid>div{border-bottom:1px solid #e3e9ea}.settings-info-grid>div:nth-last-child(-n+2){border-bottom:0}}
@media(max-width:560px){.settings-profile-card,.settings-option-card,.settings-system-card{padding:17px}.settings-card-head{align-items:center}.settings-info-grid,.settings-system-grid{grid-template-columns:1fr}.settings-info-grid>div{border-right:0!important}.settings-info-grid>div:not(:last-child){border-bottom:1px solid #e3e9ea}.settings-system-grid{gap:7px}}

/* Account settings and self-service password change. */
.account-settings-dialog {width:min(440px,calc(100vw - 32px));border:0;border-radius:16px;padding:0;background:#fff;box-shadow:0 28px 80px rgba(10,28,36,.28)}
.account-settings-dialog::backdrop {background:rgba(7,25,33,.58);backdrop-filter:blur(3px)}
.settings-dialog-head {display:flex;align-items:center;padding:20px 22px 17px;border-bottom:1px solid #e4eaeb}
.settings-dialog-head h2 {margin:0;font-size:21px;line-height:1.25}
.settings-dialog-head .kicker {margin-bottom:4px;font-size:10px}
.settings-dialog-head .icon-btn {margin-left:auto}
.settings-account-summary {display:flex;align-items:center;gap:12px;margin:18px 22px 0;padding:13px 15px;border-radius:11px;background:#f2f8f6}
.settings-account-summary>span {width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#d8f1eb;color:#08796f;font-weight:850}
.settings-account-summary strong,.settings-account-summary small {display:block}
.settings-account-summary strong {font-size:14px}.settings-account-summary small {margin-top:3px;color:#74868d;font-size:12px}
.password-change-form {padding:18px 22px 22px}
.settings-section-title h3 {margin:0 0 5px;font-size:16px}.settings-section-title p {margin:0 0 15px;color:#71838a;font-size:12px;line-height:1.5}
.password-change-form label {display:grid;gap:7px;margin:12px 0;color:#34484f;font-size:13px;font-weight:700}
.password-change-form input {height:42px;border:1px solid #dfe6e8;border-radius:9px;background:#fbfcfc;padding:0 12px;outline:none}
.password-change-form input:focus {border-color:#0d8f86;box-shadow:0 0 0 3px rgba(13,143,134,.1)}
.settings-error {min-height:18px;margin:2px 0 8px;color:#c84e47;font-size:12px}
.settings-actions {display:grid;grid-template-columns:1fr 1.35fr;gap:9px}
.settings-actions .btn {width:100%}

/* Device ownership: customer-first bulk assignment and reclaim workflow. */
.ownership-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:16px;align-items:start}
.ownership-customer-panel,.ownership-device-panel{min-width:0;padding:18px}
.ownership-panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.ownership-panel-head small,.ownership-panel-head strong{display:block}.ownership-panel-head small{margin-bottom:3px;color:#76888f;font-size:11px}.ownership-panel-head strong{font-size:17px}
.ownership-search{height:40px;display:flex;align-items:center;gap:8px;margin-bottom:10px;padding:0 11px;border:1px solid #dfe6e8;border-radius:8px;background:#fafcfc;color:#8b999e}.ownership-search:focus-within{border-color:#0d8f86;box-shadow:0 0 0 3px rgba(13,143,134,.1)}.ownership-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;font-size:12px}
.ownership-customer-list{display:grid;gap:6px;max-height:520px;overflow:auto;scrollbar-width:thin;scrollbar-color:#cbd6d8 transparent}
.ownership-customer-item{width:100%;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;border:1px solid #e3e9ea;border-radius:9px;background:#fff;color:#263940;text-align:left}.ownership-customer-item:hover{border-color:#acd6d0;background:#f6fbfa}.ownership-customer-item.active{border-color:#75c6bb;background:#e9f7f4;box-shadow:inset 3px 0 #0d8f86}.ownership-customer-item span{min-width:0}.ownership-customer-item strong,.ownership-customer-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ownership-customer-item strong{font-size:13px}.ownership-customer-item small{margin-top:3px;color:#7b8d93;font-size:10px}.ownership-customer-item em{flex:0 0 auto;border-radius:12px;background:#eff3f4;padding:4px 7px;color:#667a81;font-size:10px;font-style:normal}.ownership-customer-item.active em{background:#d8efe9;color:#08756e}
.ownership-device-panel{overflow:hidden}.ownership-device-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:14px;border-bottom:1px solid #e6ebed}.ownership-device-head small{display:block;margin-bottom:3px;color:#788a90;font-size:10px}.ownership-device-head h3{margin:0 0 3px;font-size:18px}.ownership-device-head p{margin:0;color:#71838a;font-size:11px}.ownership-reclaim-all,.ownership-batch-bar button{height:34px;border:1px solid #e5b8b4;border-radius:8px;background:#fff6f5;color:#ad4039;padding:0 12px;font-size:11px;font-weight:800;white-space:nowrap}.ownership-reclaim-all:hover:not(:disabled),.ownership-batch-bar button:hover:not(:disabled){background:#fbe7e5}.ownership-reclaim-all:disabled,.ownership-batch-bar button:disabled{cursor:not-allowed;opacity:.45}
.ownership-batch-bar{min-height:48px;display:flex;align-items:center;gap:14px;padding:8px 4px}.ownership-batch-bar label{display:flex;align-items:center;gap:7px;color:#52676e;font-size:12px}.ownership-batch-bar input,.ownership-table input[type=checkbox]{width:15px;height:15px;accent-color:#0d8f86}.ownership-batch-bar span{margin-right:auto;color:#71838a;font-size:11px}
.ownership-table-wrap{width:100%;overflow-x:auto}.ownership-table{width:100%;min-width:650px;table-layout:fixed}.ownership-table th,.ownership-table td{padding:10px 9px;text-align:center;vertical-align:middle}.ownership-table th{height:42px;color:#75878e;font-size:10px;letter-spacing:.02em;text-transform:none}.ownership-table td{height:54px;font-size:12px}.ownership-table th:nth-child(1){width:6%}.ownership-table th:nth-child(2){width:17%}.ownership-table th:nth-child(3){width:36%}.ownership-table th:nth-child(4){width:15%}.ownership-table th:nth-child(5){width:26%}
.ownership-device-number{display:flex;align-items:center;justify-content:center;gap:9px}.ownership-device-number strong{font-size:13px}.ownership-name-editor{display:grid;grid-template-columns:minmax(0,1fr) 50px;gap:6px}.ownership-name-editor input{width:100%;min-width:0;height:32px;border:1px solid #dce4e6;border-radius:7px;background:#fff;padding:0 9px;outline:none;font-size:11px}.ownership-name-editor input:focus{border-color:#0d8f86;box-shadow:0 0 0 3px rgba(13,143,134,.1)}.ownership-name-editor button{height:32px;border:0;border-radius:7px;background:#e3f3f0;color:#08756e;font-size:11px;font-weight:750}.ownership-connection{display:inline-flex;align-items:center;justify-content:center;gap:7px;color:#667980;font-size:11px}.ownership-connection i{width:7px;height:7px;border-radius:50%}.ownership-connection i.online{background:#27b783;box-shadow:0 0 0 3px #def3eb}.ownership-connection i.offline{background:#aebbc0;box-shadow:0 0 0 3px #edf1f2}.ownership-table time{color:#64777e;font-size:11px;line-height:1.35}.ownership-pagination{min-height:56px;padding:11px 4px 0}
@media(max-width:1050px){.ownership-layout{grid-template-columns:210px minmax(0,1fr)}}
@media(max-width:880px){.ownership-layout{grid-template-columns:1fr}.ownership-customer-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:220px}.ownership-table-wrap{overflow-x:auto}}
@media(max-width:560px){.ownership-customer-list{grid-template-columns:1fr}.ownership-device-head{align-items:flex-start;flex-direction:column}.ownership-reclaim-all{width:100%}.ownership-batch-bar{flex-wrap:wrap}.ownership-batch-bar span{margin-right:0}.ownership-batch-bar button{margin-left:auto}}

/* System configuration: three balanced cards on one page without horizontal overflow. */
#view-admin {overflow-x:hidden}
#view-admin .admin-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
#view-admin .form-card {min-width:0;padding:20px}
#view-admin .form-card h3 {margin-bottom:20px;font-size:18px}
#view-admin .form-card label {gap:7px;margin:14px 0;font-size:13px}
#view-admin .form-card input,#view-admin .form-card select {width:100%;min-width:0;height:44px;font-size:13px}
#view-admin .form-card .btn {height:42px;margin-top:6px}
#view-admin .assignment-note {min-height:36px;margin:-8px 0 6px}
.assigned-device-card{grid-column:1/-1;padding:20px;min-width:0}
.assigned-device-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:14px;position:relative}
.assigned-device-head h3{margin:0 0 5px;font-size:18px}.assigned-device-head p{margin:0;color:#718096;font-size:12px}.assigned-device-head>span{padding:6px 10px;border-radius:999px;background:#edf5f3;color:#08756e;font-size:12px;font-weight:750}
.assigned-device-list{display:grid;gap:7px;max-height:300px;overflow:auto}
.assigned-device-row{display:grid;grid-template-columns:minmax(140px,.75fr) minmax(180px,1.4fr) 72px 72px;gap:8px;align-items:center;padding:9px 10px;border:1px solid #e4e8ed;border-radius:9px;background:#fbfcfc}
.assigned-device-identity{min-width:0}.assigned-device-identity strong,.assigned-device-identity small{display:block}.assigned-device-identity strong{font-size:14px}.assigned-device-identity small{margin-top:3px;color:#718096;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.assigned-device-row input{height:36px;min-width:0;border:1px solid #dce3e5;border-radius:7px;padding:0 10px;background:#fff;outline:none}.assigned-device-row input:focus{border-color:#0d8f86;box-shadow:0 0 0 3px rgba(13,143,134,.1)}
.assigned-device-row button{height:34px;border:0;border-radius:7px;font-size:12px;font-weight:750}.assigned-save-name{background:#e3f3f0;color:#08756e}.assigned-reclaim{background:#fae9e7;color:#aa362f}
.organization-management-card{grid-column:1/-1;padding:20px;min-width:0}
.organization-management-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.organization-management-grid>section{min-width:0;padding:13px;border:1px solid #e6ebed;border-radius:10px;background:#fbfcfc}
.management-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:13px}.management-section-head span{color:#718096;font-size:11px}
.management-list{display:grid;gap:7px;max-height:312px;overflow:auto;scrollbar-width:thin;scrollbar-color:#cbd6d8 transparent}
.managed-customer-row{display:grid;grid-template-columns:minmax(118px,.8fr) minmax(150px,1.25fr) 58px 58px;gap:7px;align-items:center;padding:8px;border:1px solid #e4e8ed;border-radius:9px;background:#fff}
.managed-account-row{display:grid;grid-template-columns:minmax(125px,1fr) minmax(125px,1fr) 58px 72px;gap:7px;align-items:center;padding:8px;border:1px solid #e4e8ed;border-radius:9px;background:#fff}
.managed-item-identity{min-width:0}.managed-item-identity strong,.managed-item-identity small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.managed-item-identity strong{font-size:12px}.managed-item-identity small{margin-top:3px;color:#7d8d93;font-size:10px}
.managed-customer-row input{height:34px;min-width:0;border:1px solid #dce3e5;border-radius:7px;padding:0 9px;background:#fff;outline:none}.managed-customer-row input:focus{border-color:#0d8f86;box-shadow:0 0 0 3px rgba(13,143,134,.1)}
.management-list button{height:32px;border:0;border-radius:7px;font-size:11px;font-weight:750}.management-save,.management-enable{background:#e3f3f0;color:#08756e}.management-disable{background:#fae9e7;color:#aa362f}.management-reset{background:#e9eff5;color:#386681}.management-list button:disabled{opacity:.45;cursor:not-allowed}
.management-force{background:#fff0d8;color:#8f5c10}
.managed-account-status{display:flex;align-items:center;gap:6px;color:#65777d;font-size:10px;font-weight:750}.managed-account-status i{width:7px;height:7px;border-radius:50%;background:#acb8bc}.managed-account-status.active{color:#16815f}.managed-account-status.active i{background:#2ab57f;box-shadow:0 0 0 3px #def3eb}
.control-availability{display:flex;align-items:center;gap:8px;margin:10px 0 -8px;padding:9px 10px;border:1px solid #efdad7;border-radius:8px;background:#fff7f6;color:#a74740;font-size:11px;font-weight:750}.control-availability i{width:8px;height:8px;border-radius:50%;background:#d4544c}
.live-chip.preview{background:#fff2dc;color:#8a5b18}.live-chip.preview i{background:#d79431}
@media(max-width:760px){.assigned-device-row{grid-template-columns:1fr 1fr}.assigned-device-identity{grid-column:1/-1}.assigned-device-row input{grid-column:1/-1}}
@media(max-width:900px){.organization-management-grid{grid-template-columns:1fr}.managed-customer-row,.managed-account-row{grid-template-columns:1fr 1fr}.managed-item-identity{grid-column:1/-1}}
.batch-picker-head {display:flex;align-items:center;justify-content:space-between;margin:12px 0 7px;font-size:13px}.batch-picker-head .text-btn {padding:3px 0}
.assignment-device-list {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;min-height:48px;max-height:112px;overflow:auto;padding:7px;border:1px solid #dfe6e8;border-radius:9px;background:#f8fafa;scrollbar-width:thin;scrollbar-color:#cbd6d8 transparent}
.assignment-device-option {display:flex!important;align-items:center;gap:7px!important;margin:0!important;min-width:0;padding:7px 8px;border:1px solid #e2e9ea;border-radius:7px;background:#fff;cursor:pointer}.assignment-device-option:hover {border-color:#a9d8d2}.assignment-device-option:has(input:checked) {border-color:#83ccc2;background:#eaf7f4;color:#08756e}.assignment-device-option input {width:15px!important;height:15px!important;margin:0;accent-color:#0d8f86}.assignment-device-option span {overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.assignment-empty {grid-column:1/-1;display:grid;place-items:center;min-height:32px;color:#87969b;font-size:12px}.batch-assignment-card .form-hint {margin-top:9px}
@media(max-width:900px){#view-admin .admin-grid{grid-template-columns:1fr}}

/* Simplified commercial account provisioning. */
.simple-admin-grid{display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:16px;align-items:start}
.simple-account-card,.simple-account-management{min-width:0;padding:20px}
.simple-card-head,.simple-management-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.simple-card-head h3,.simple-management-head h3{margin:0 0 5px;font-size:18px}.simple-card-head p,.simple-management-head p{margin:0;color:#73868d;font-size:11px;line-height:1.5}
.simple-card-head>span{color:#c5d0d3;font-size:12px;font-weight:850}
.simple-account-card label{display:grid;gap:7px;margin:13px 0;color:#293d44;font-size:12px;font-weight:750}
.simple-account-card input,.simple-account-card select,.simple-management-head input{width:100%;min-width:0;height:42px;border:1px solid #dce5e7;border-radius:9px;background:#fbfcfc;padding:0 11px;outline:none;color:#182c33;font-size:12px}
.simple-account-card input:focus,.simple-account-card select:focus,.simple-management-head input:focus{border-color:#0d8f86;box-shadow:0 0 0 3px rgba(13,143,134,.1)}
.simple-account-card>.btn{width:100%;margin-top:8px}.simple-account-hint{display:flex;align-items:flex-start;gap:8px;margin:12px 0;color:#71838a;font-size:10px;line-height:1.5}.simple-account-hint i{width:7px;height:7px;flex:0 0 auto;margin-top:4px;border-radius:50%;background:#20ae82}
.simple-management-head input{width:min(250px,45%)}
.simple-account-filters{display:flex;align-items:center;gap:7px;margin-bottom:11px}.simple-account-filters button{height:31px;border:1px solid #dce5e7;border-radius:16px;background:#fff;padding:0 12px;color:#587078;font-size:11px;font-weight:750}.simple-account-filters button.active{border-color:#0d8f86;background:#0d8f86;color:#fff}.simple-account-filters span{margin-left:auto;color:#75878e;font-size:11px}
.simple-account-list{display:grid;gap:7px;max-height:410px;overflow:auto;scrollbar-width:thin;scrollbar-color:#cbd6d8 transparent}
.simple-account-row{display:grid;grid-template-columns:minmax(140px,1.35fr) 64px 74px minmax(210px,auto);gap:10px;align-items:center;padding:10px 11px;border:1px solid #e2e9ea;border-radius:9px;background:#fbfcfc}
.simple-role-badge{justify-self:start;border-radius:12px;background:#eaf3f2;padding:4px 8px;color:#28766e;font-size:10px;font-weight:800}
.simple-account-actions{display:flex;justify-content:flex-end;gap:6px}.simple-account-actions button{height:31px;border:0;border-radius:7px;padding:0 9px;font-size:10px;font-weight:750}
.ownership-move-tip{grid-column:1/-1;display:flex;align-items:center;gap:12px;padding:13px 16px;border:1px solid #cde8e3;border-radius:11px;background:#f0faf7;color:#496168}.ownership-move-tip strong{color:#08776f;font-size:12px}.ownership-move-tip span{font-size:11px}.ownership-move-tip button{margin-left:auto;border:0;background:transparent;color:#087f76;font-size:11px;font-weight:800;cursor:pointer}
.settings-profile-name{display:grid;grid-template-columns:minmax(0,1fr) 110px;gap:10px;align-items:end;margin-top:14px;padding-top:14px;border-top:1px solid #e6ebed}.settings-profile-name label{display:grid;gap:6px;color:#40555c;font-size:11px;font-weight:750}.settings-profile-name input{height:40px;border:1px solid #dce5e7;border-radius:8px;padding:0 11px;outline:none}.settings-profile-name .btn{height:40px}

/* Device ownership summary and allocation pool. */
.ownership-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}.ownership-summary article{padding:13px 16px;border:1px solid #d7e8e5;border-radius:11px;background:#f5fbf9}.ownership-summary span,.ownership-summary strong{display:block}.ownership-summary span{margin-bottom:5px;color:#6d8188;font-size:11px}.ownership-summary strong{color:#087b72;font-size:19px}
.ownership-pool-panel{grid-column:1/-1;min-width:0;padding:18px}.ownership-pool-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:12px;border-bottom:1px solid #e6ebed}.ownership-pool-head small{display:block;margin-bottom:3px;color:#74878e;font-size:10px}.ownership-pool-head h3{margin:0 0 4px;font-size:17px}.ownership-pool-head p{margin:0;color:#71838a;font-size:11px}.ownership-pool-head .btn{height:36px}
.ownership-pool-toolbar{display:flex;align-items:center;gap:10px;padding:11px 2px}.ownership-pool-toolbar label{display:flex;align-items:center;gap:7px;color:#52676e;font-size:11px}.ownership-pool-toolbar input,.ownership-pool-option input{width:15px;height:15px;accent-color:#0d8f86}.ownership-pool-toolbar span{color:#71838a;font-size:11px}
.ownership-pool-list{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;max-height:190px;overflow:auto}.ownership-pool-option{display:flex;align-items:center;gap:9px;min-width:0;padding:10px;border:1px solid #e1e8e9;border-radius:9px;background:#fbfcfc;cursor:pointer}.ownership-pool-option:has(input:checked){border-color:#79c9be;background:#eaf7f4}.ownership-pool-option span{min-width:0}.ownership-pool-option strong,.ownership-pool-option small{display:block}.ownership-pool-option strong{overflow:hidden;text-overflow:ellipsis;font-size:12px;white-space:nowrap}.ownership-pool-option small{display:flex;align-items:center;gap:5px;margin-top:3px;color:#77898f;font-size:9px}.ownership-pool-option small i{width:6px;height:6px;border-radius:50%}.ownership-pool-option small i.online{background:#27b783}.ownership-pool-option small i.offline{background:#aebbc0}
@media(max-width:1050px){.simple-admin-grid{grid-template-columns:1fr}.ownership-pool-list{grid-template-columns:repeat(4,minmax(0,1fr))}.simple-account-row{grid-template-columns:minmax(140px,1fr) 64px 74px}.simple-account-actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:700px){.ownership-summary{grid-template-columns:1fr}.ownership-pool-list{grid-template-columns:repeat(2,minmax(0,1fr))}.simple-management-head{flex-direction:column}.simple-management-head input{width:100%}.simple-account-row{grid-template-columns:1fr auto}.managed-account-status{justify-self:end}.simple-account-actions{grid-column:1/-1}.ownership-move-tip{align-items:flex-start;flex-direction:column}.ownership-move-tip button{margin-left:0}.settings-profile-name{grid-template-columns:1fr}}

/* Commercial operations: staged OTA, maintenance records and compact task controls. */
.ota-batch-settings{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:11px 0}.ota-batch-settings label{display:grid;gap:5px;color:#52666d;font-size:11px;font-weight:750}.ota-batch-settings input{height:38px;border:1px solid #dce5e7;border-radius:8px;padding:0 10px;background:#fbfcfc}.ota-batch-settings small{color:#849399;font-size:9px;font-weight:500}
.ota-task-actions{display:flex;align-items:center;gap:5px}.ota-task-actions button{height:28px;border:1px solid #d7e4e4;border-radius:7px;background:#f3f8f7;padding:0 8px;color:#08766e;font-size:10px;font-weight:750;white-space:nowrap}.ota-task-actions button[data-ota-action="cancel"],.ota-task-actions button[data-ota-action="rollback"]{border-color:#ead2d0;background:#fff3f1;color:#a6423b}
.ota-status.paused{background:#fff0d8;color:#8f5c10}
.maintenance-card{margin-top:13px;padding:16px 20px;border:1px solid #dce6e7;border-radius:13px;background:#fff}.maintenance-card .panel-head{margin-bottom:12px}.maintenance-card form{display:grid;grid-template-columns:1.3fr 1fr .85fr .85fr auto;gap:9px;align-items:end}.maintenance-card label{display:grid;gap:5px;color:#60737a;font-size:10px;font-weight:750}.maintenance-card input,.maintenance-card textarea{width:100%;min-width:0;border:1px solid #dce5e7;border-radius:8px;background:#fafcfc;padding:0 9px;outline:none;color:#193038;font-size:11px}.maintenance-card input{height:36px}.maintenance-card textarea{min-height:60px;padding-top:8px;resize:vertical}.maintenance-card input:focus,.maintenance-card textarea:focus{border-color:#0d8f86;box-shadow:0 0 0 3px rgba(13,143,134,.1)}.maintenance-card .maintenance-note{grid-column:1/-2}.maintenance-card .btn{height:36px;grid-column:5;grid-row:2}
@media(max-width:900px){.maintenance-card form{grid-template-columns:1fr 1fr}.maintenance-card .maintenance-note{grid-column:1/-1}.maintenance-card .btn{grid-column:1/-1;grid-row:auto}.ota-batch-settings{grid-template-columns:1fr}}
