*{box-sizing:border-box}body{margin:0;background:#061822;color:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}body:before{content:"";position:fixed;inset:0;background:radial-gradient(circle at top,#12394a 0,#061822 45%,#02070a 100%);z-index:-2}.app{max-width:980px;margin:0 auto;padding:16px 14px calc(160px + env(safe-area-inset-bottom,0px))}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;padding:12px 0;background:linear-gradient(#061822,#061822dd);backdrop-filter:blur(10px);z-index:10}.brand{display:flex;align-items:center;gap:12px}.logo{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;overflow:hidden;background:#061822;border:1px solid #1f5368}.logo img{width:100%;height:100%;display:block}.brand h1{font-size:20px;margin:0}.brand small{color:#9bd4df}.pill{padding:8px 12px;border-radius:999px;background:#0f2b38;border:1px solid #1f5368;color:#a9f3ff;font-size:13px}.tabs{position:fixed;left:0;right:0;bottom:env(safe-area-inset-bottom,0px);background:linear-gradient(180deg,#082532f6,#041018fb);border-top:1px solid #1f5368;display:flex;flex-wrap:wrap;gap:7px;padding:9px 9px calc(10px + env(safe-area-inset-bottom,0px));z-index:20;box-shadow:0 -12px 32px #0009}.tab{flex:1 1 calc(25% - 7px);min-width:0;min-height:46px;padding:13px 5px;color:#9bd4df;text-align:center;font-weight:800;font-size:11px;border-radius:13px;background:#0a2b38;border:1px solid #1f5368}.tab.active{color:#03151c;background:linear-gradient(135deg,#1576ff,#00e9ff)}.screen{display:none}.screen.active{display:block}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.grid.one{grid-template-columns:1fr}.card{background:linear-gradient(180deg,#0f2b38cc,#071d27cc);border:1px solid #1f5368;border-radius:20px;padding:16px;box-shadow:0 10px 30px #0005}.card h2,.card h3{margin:0 0 12px}.big{font-size:48px;font-weight:900;letter-spacing:-2px}.label{color:#9bd4df;font-size:13px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.value{font-size:26px;font-weight:900}.row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid #1f536855}.row:last-child{border-bottom:0}.muted{color:#9bd4df}.ok{color:#38ffbf}.warn{color:#ffd166}.alarm,.error{color:#ff5f7a}.hidden{display:none!important}.btn{border:0;border-radius:16px;padding:14px 16px;background:#00e9ff;color:#061822;font-weight:900;font-size:15px}.btn.secondary{background:#103544;color:#fff;border:1px solid #1f5368}.btn.full{width:100%;margin-top:10px}.field{display:grid;gap:6px;margin:12px 0}.field label{font-weight:800;color:#a9f3ff}.field input,.field select{width:100%;font-size:18px;padding:14px;border-radius:14px;border:1px solid #1f5368;background:#071820;color:#fff}.statusline{margin:10px 0;color:#a9f3ff}.notice{padding:12px;border-radius:14px;background:#12394a;border:1px solid #1f5368;color:#c9f7ff;margin-bottom:12px}.install{display:none}.install.show{display:block}.install-head{display:flex;align-items:center;gap:12px}.install-head img{width:56px;height:56px;border-radius:16px;box-shadow:0 8px 20px #0006}.hero-logo{margin:0 0 14px;border-radius:22px;overflow:hidden;border:1px solid #1f5368;background:#061822;box-shadow:0 14px 36px #0008}.hero-logo img{display:block;width:100%;height:auto;max-height:260px;object-fit:cover}.account-gate{position:fixed;inset:0;z-index:100;background:radial-gradient(circle at top,#12394a 0,#061822 45%,#02070a 100%);display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:26px 14px}.account-card{width:min(560px,100%);background:linear-gradient(180deg,#0f2b38ee,#071d27f4);border:1px solid #1f5368;border-radius:26px;padding:22px;box-shadow:0 20px 70px #0009}.account-logo{width:92px;height:92px;margin:0 auto 14px;border-radius:24px;overflow:hidden;box-shadow:0 14px 38px #0008}.account-logo img{width:100%;height:100%;display:block}.account-card h1{text-align:center;margin:0 0 8px;font-size:28px}.account-card p{text-align:center}.account-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}.account-tab{border:1px solid #1f5368;background:#0a2b38;color:#9bd4df;border-radius:14px;padding:13px;font-weight:900}.account-tab.active{background:linear-gradient(135deg,#1576ff,#00e9ff);color:#03151c}.account-panel{display:none}.account-panel.active{display:block}.app-hidden,.account-hidden{display:none!important}.pro-list{font-size:19px;line-height:1.65;color:#e8fbff}@media(min-width:760px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}.app{padding-bottom:90px}.big{font-size:60px}}@media(max-width:520px){.app{padding-left:12px;padding-right:12px;padding-bottom:calc(170px + env(safe-area-inset-bottom,0px))}.tabs{gap:6px;padding:8px 8px calc(10px + env(safe-area-inset-bottom,0px))}.tab{flex-basis:calc(25% - 6px);font-size:10.5px;min-height:48px;padding:12px 3px}.hero-logo img{max-height:170px}.brand h1{font-size:17px}.big{font-size:42px}.row{align-items:flex-start;flex-direction:column}.value{font-size:24px}}

.check{display:flex;gap:10px;align-items:flex-start;margin:12px 0;color:#d9fbff;line-height:1.35}.check input{width:20px;height:20px;margin-top:1px}.check a{color:#00e9ff;font-weight:800}.legal-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.legal-grid .btn{text-align:center;text-decoration:none;display:block}.legal-page{max-width:900px;margin:0 auto;padding:22px 16px 70px}.legal-page h1{font-size:30px}.legal-page h2{margin-top:26px}.legal-page p,.legal-page li{color:#d9fbff;line-height:1.55}.legal-page a{color:#00e9ff}.legal-page .card{margin:14px 0}@media(max-width:520px){.legal-grid{grid-template-columns:1fr}}


.hidden-policy-check{display:none}
.policy-note{border:1px solid rgba(78,219,255,.22);background:rgba(78,219,255,.08);border-radius:14px;padding:12px;margin:10px 0;color:#bfefff;font-size:14px;line-height:1.45}
.policy-modal{position:fixed;inset:0;background:rgba(0,5,10,.78);backdrop-filter:blur(10px);display:none;align-items:center;justify-content:center;z-index:9999;padding:18px}
.policy-modal.show{display:flex}
.policy-card{width:min(920px,96vw);max-height:92vh;background:linear-gradient(180deg,#062d38,#041a24);border:1px solid rgba(43,220,255,.32);border-radius:24px;box-shadow:0 22px 70px rgba(0,0,0,.55);padding:18px;display:flex;flex-direction:column;gap:12px}
.policy-head{display:flex;justify-content:space-between;align-items:center;gap:12px}
.policy-head h2{margin:4px 0 0 0}
.policy-progress{color:#7ee7ff;font-weight:800;letter-spacing:.08em;text-transform:uppercase;font-size:12px}
.policy-body{background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:16px;overflow:auto;min-height:240px;max-height:50vh;line-height:1.55;color:#e9fbff}
.policy-body h1,.policy-body h2,.policy-body h3{color:#fff}
.policy-body a{color:#62e7ff}
.policy-confirm{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.10);border-radius:14px;padding:12px}
.policy-actions{display:flex;gap:10px;justify-content:flex-end}
.policy-actions .btn{width:auto;min-width:180px}
@media(max-width:700px){.policy-card{max-height:96vh;padding:14px;border-radius:18px}.policy-body{max-height:48vh}.policy-actions{flex-direction:column}.policy-actions .btn{width:100%}}

.setup-wizard{margin-top:12px;padding:14px;border:1px solid rgba(0,233,255,.25);border-radius:14px;background:rgba(0,18,28,.65)}.setup-progress{font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:#79eaff;margin-bottom:8px}.setup-step h3{margin:4px 0 8px}.setup-code,.setup-address{margin:12px 0;padding:14px;text-align:center;border-radius:12px;background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.12)}.setup-code span{display:block;font-size:.8rem;color:#a9bcc8}.setup-code b{display:block;font-size:1.8rem;letter-spacing:.18em;color:#fff}.setup-address{font-family:monospace;font-size:1.05rem;color:#fff}.spinner-line{padding:16px;text-align:center;color:#a9f3ff}.hidden{display:none!important}

.connection-checks{display:grid;gap:10px;margin:16px 0;padding:14px;border-radius:14px;background:rgba(0,0,0,.18)}.connection-checks>div{padding:8px 4px}.setup-check-ok{color:#72f5bc;font-weight:700}details{margin:12px 0}summary{cursor:pointer;color:#9fdfea}
.update-progress{height:12px;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.08);border:1px solid rgba(80,220,240,.18);margin:12px 0}.update-progress-bar{height:100%;background:linear-gradient(90deg,#18d8e8,#2c8fff);transition:width .45s ease}.field select{width:100%;padding:12px;border-radius:12px;background:#061d27;color:#fff;border:1px solid rgba(61,214,231,.3)}


/* Aquarium-centric UI v1.0.0 */
.dashboard-head,.section-head,.settings-title{display:flex;justify-content:space-between;align-items:center;margin:6px 0 14px}.eyebrow,.modal-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:#70dcea;font-weight:900}.dashboard-head h2,.section-head h2,.settings-title h2{margin:3px 0 0;font-size:28px}.icon-btn{width:46px;height:46px;border-radius:15px;border:1px solid #27657b;background:#0b3443;color:#8df2ff;font-size:28px}.summary-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}.summary-strip>div{background:linear-gradient(180deg,#0f2f3dcc,#081d27cc);border:1px solid #1f5368;border-radius:16px;padding:12px;text-align:center}.summary-strip b{display:block;font-size:24px}.summary-strip span{display:block;color:#9bd4df;font-size:11px;margin-top:3px}.aquarium-switcher{display:flex;gap:8px;overflow-x:auto;padding:2px 0 12px;scrollbar-width:none}.aquarium-chip{white-space:nowrap;border:1px solid #1f5368;background:#092936;color:#bdeff6;border-radius:999px;padding:10px 14px;font-weight:800}.aquarium-chip.active{background:linear-gradient(135deg,#1576ff,#00e9ff);color:#03151c;border-color:transparent}.sensor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sensor-tile{aspect-ratio:1/1;border:1px solid #1f5368;border-radius:22px;background:linear-gradient(160deg,#113746e8,#071a23ee);color:white;padding:14px;text-align:left;display:flex;flex-direction:column;box-shadow:0 12px 28px #0005;overflow:hidden}.sensor-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.sensor-icon{font-weight:950;font-size:20px;color:#8af4ff}.state-badge{font-size:10px;text-transform:uppercase;letter-spacing:.05em;border-radius:999px;padding:5px 7px;background:#153b48;color:#c6f7ff}.sensor-name{margin-top:auto;color:#c7edf3;font-weight:800;font-size:14px}.sensor-value{font-size:31px;font-weight:950;line-height:1.05;margin:6px 0;word-break:break-word}.sensor-value.text-state{font-size:21px}.sensor-meta{font-size:11px;color:#8abdc7}.state-warning{border-color:#b78a24!important}.state-alarm{border-color:#d84d66!important;box-shadow:0 0 0 1px #d84d6655,0 12px 28px #0005}.state-disconnected,.state-maintenance,.state-waiting{filter:saturate(.35);opacity:.82}.state-alarm .state-badge{background:#7b2637}.state-warning .state-badge{background:#6d531d}.state-healthy .state-badge{background:#15543f}.state-disconnected .state-badge{background:#3b454a}.empty-state,.empty-inline{padding:28px;text-align:center;color:#a8d4dc}.empty-state h3{color:#fff}.modal{position:fixed;inset:0;background:#000b;backdrop-filter:blur(9px);z-index:1000;display:flex;align-items:flex-end;justify-content:center;padding:12px}.modal-card{position:relative;width:min(680px,100%);max-height:92vh;overflow:auto;background:linear-gradient(180deg,#0b303f,#061922);border:1px solid #2c6b80;border-radius:26px;padding:22px;box-shadow:0 24px 80px #000c}.modal-close{position:absolute;right:14px;top:12px;width:38px;height:38px;border-radius:50%;border:1px solid #2b6173;background:#0b2935;color:#fff;font-size:26px}.modal-card h2{font-size:27px;margin:4px 48px 15px 0}.detail-reading{border-radius:20px;border:1px solid #24586a;background:#06151dcc;padding:18px;margin:10px 0 14px}.detail-reading span,.detail-reading small{display:block;color:#9bd4df}.detail-reading b{display:block;font-size:46px;margin:8px 0}.last-reading{padding:12px;border-radius:14px;background:#102e38;margin-bottom:12px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.detail-grid>div{background:#09232e;border:1px solid #1f5368;border-radius:15px;padding:12px}.detail-grid span{display:block;color:#87bbc5;font-size:11px}.detail-grid b{display:block;margin-top:5px}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.modal-actions .btn:first-child{grid-column:1/-1}.back-link{border:0;background:none;color:#7cecff;font-weight:800;padding:0 0 12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tiny{font-size:12px}.technical-list{display:grid;gap:8px;padding:12px;background:#061820;border-radius:13px;margin-top:8px}.technical-list div{display:flex;justify-content:space-between;gap:12px}.history-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.history-card{border:1px solid #1f5368;background:#092733;color:#fff;border-radius:17px;padding:14px;text-align:left}.history-card span,.history-card small{display:block;color:#9bd4df}.history-card b{display:block;font-size:24px;margin:7px 0}.alert-row{width:100%;border:0;border-bottom:1px solid #1f536866;background:none;color:#fff;padding:14px 0;display:grid;grid-template-columns:12px 1fr auto;gap:12px;align-items:center;text-align:left}.alert-row small{display:block;color:#9bd4df;margin-top:3px}.alert-dot{width:10px;height:10px;border-radius:50%;background:#93a4aa}.alert-dot.state-alarm{background:#ff5f7a}.alert-dot.state-warning{background:#ffd166}.alert-dot.state-disconnected{background:#91a2a8}.settings-group{margin-bottom:16px}.settings-group>h3{font-size:14px;color:#9bd4df;text-transform:uppercase;letter-spacing:.09em;margin:0 0 8px}.btn.danger{background:#6e2635;color:#fff}.tab{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px}.tab span{font-size:18px}.tabs{flex-wrap:nowrap}.tab{flex:1 1 25%}.empty-inline{display:flex;flex-direction:column;gap:5px}.btn:disabled{opacity:.45}
@media(min-width:760px){.sensor-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.history-grid{grid-template-columns:repeat(3,1fr)}.modal{align-items:center}.sensor-value{font-size:34px}}
@media(max-width:520px){.summary-strip{grid-template-columns:repeat(2,1fr)}.sensor-grid{gap:10px}.sensor-tile{padding:12px;border-radius:18px}.sensor-value{font-size:27px}.sensor-value.text-state{font-size:18px}.detail-grid,.form-grid{grid-template-columns:1fr}.modal-actions{grid-template-columns:1fr}.modal-actions .btn:first-child{grid-column:auto}.history-grid{grid-template-columns:1fr 1fr}.modal{padding:0}.modal-card{border-radius:24px 24px 0 0;max-height:94vh}}


/* TerraAqua dashboard and sensor history update v1.1.0 */

#onlinePill{
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  min-height:74px;
  transition:
    background-color .2s ease,
    border-color .2s ease,
    color .2s ease;
}

#onlinePill.cloud-online{
  color:#d8ffe9;
  border-color:#21a968;
  background:rgba(18,121,72,.34);
}

#onlinePill.cloud-offline{
  color:#ffe2e2;
  border-color:#d44c4c;
  background:rgba(145,32,32,.34);
}

.aquarium-dashboard-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-top:16px;
}

.aquarium-dashboard-card{
  appearance:none;
  width:100%;
  min-height:220px;
  padding:20px;
  color:inherit;
  text-align:left;
  border:1px solid rgba(62,189,228,.38);
  border-radius:24px;
  background:
    linear-gradient(
      145deg,
      rgba(14,73,91,.84),
      rgba(5,32,43,.94)
    );
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.04);
}

.aquarium-dashboard-card:active{
  transform:scale(.985);
}

.aquarium-card-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.aquarium-card-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  color:#75e9ff;
  font-size:28px;
  border-radius:15px;
  background:rgba(22,167,205,.14);
}

.aquarium-card-open{
  color:#79dff5;
  font-size:38px;
  line-height:1;
}

.aquarium-dashboard-card h3{
  margin:20px 0 4px;
  font-size:27px;
}

.aquarium-card-type{
  color:var(--muted,#a9d4de);
  font-size:15px;
}

.aquarium-card-stats{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
  margin-top:20px;
}

.aquarium-card-stats div{
  text-align:center;
  padding:10px 4px;
  border-radius:13px;
  background:rgba(0,0,0,.18);
}

.aquarium-card-stats b{
  display:block;
  font-size:20px;
}

.aquarium-card-stats span{
  display:block;
  margin-top:3px;
  color:var(--muted,#a9d4de);
  font-size:11px;
}

.history-card-action{
  margin-top:12px;
  color:#61dff6;
  font-size:13px;
  font-weight:700;
}

.empty-history,
.history-no-data{
  padding:38px 18px;
  text-align:center;
  color:var(--muted,#a9d4de);
}

.history-current{
  display:flex;
  flex-direction:column;
  gap:5px;
  margin:16px 0;
  padding:18px;
  border:1px solid rgba(72,190,224,.3);
  border-radius:18px;
  background:rgba(5,44,56,.6);
}

.history-current span,
.history-current small{
  color:var(--muted,#a9d4de);
}

.history-current b{
  font-size:32px;
}

.history-range-row{
  display:flex;
  gap:8px;
  overflow-x:auto;
  padding:4px 0 12px;
  scrollbar-width:none;
}

.history-range-row::-webkit-scrollbar{
  display:none;
}

.history-range{
  flex:0 0 auto;
  padding:10px 14px;
  color:#b8e6ee;
  font-weight:700;
  border:1px solid rgba(66,190,224,.35);
  border-radius:999px;
  background:rgba(5,45,57,.7);
}

.history-range.active{
  color:#001b23;
  border-color:#0ee2ff;
  background:linear-gradient(135deg,#1399ff,#10e3ed);
}

.history-custom-dates{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-bottom:16px;
}

.history-custom-dates .btn{
  grid-column:1/-1;
}

.history-stat-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:10px;
  margin:12px 0 16px;
}

.history-stat-grid div{
  padding:14px;
  border:1px solid rgba(66,190,224,.25);
  border-radius:16px;
  background:rgba(6,45,57,.55);
}

.history-stat-grid span{
  display:block;
  color:var(--muted,#a9d4de);
  font-size:12px;
}

.history-stat-grid b{
  display:block;
  margin-top:5px;
  font-size:19px;
}

.history-graph-card{
  padding:8px;
  border:1px solid rgba(66,190,224,.28);
  border-radius:18px;
  background:rgba(2,28,37,.75);
}

.history-chart-scroll{
  overflow-x:auto;
}

.history-chart{
  display:block;
  width:100%;
  min-width:720px;
  height:auto;
}

.history-grid-line{
  stroke:rgba(130,210,225,.16);
  stroke-width:1;
}

.history-line{
  fill:none;
  stroke:#24d8f2;
  stroke-width:4;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.history-axis-text{
  fill:#9acbd5;
  font-size:14px;
}

.history-gap-note{
  margin-top:12px;
  text-align:center;
}

.history-loading{
  width:42px;
  height:42px;
  margin:30px auto;
  border:4px solid rgba(83,205,229,.18);
  border-top-color:#36dff7;
  border-radius:50%;
  animation:history-spin .8s linear infinite;
}

@keyframes history-spin{
  to{transform:rotate(360deg)}
}

@media(max-width:620px){
  .aquarium-dashboard-grid{
    grid-template-columns:1fr;
  }

  .aquarium-dashboard-card{
    min-height:190px;
  }
}



/* TerraAqua public demo login */

.demo-entry{
  margin-top:18px;
}

.demo-divider{
  display:flex;
  align-items:center;
  gap:12px;
  margin:15px 0;
  color:var(--muted,#9fcbd3);
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.demo-divider::before,
.demo-divider::after{
  content:"";
  flex:1;
  height:1px;
  background:rgba(100,205,225,.22);
}

.demo-button{
  border-color:rgba(46,221,240,.62);
  background:
    linear-gradient(
      135deg,
      rgba(12,112,154,.44),
      rgba(9,70,91,.7)
    );
}

.demo-button:disabled{
  opacity:.65;
}

.demo-note{
  margin:10px 8px 0;
  text-align:center;
  line-height:1.45;
}



/* TerraAqua Web Push settings */

.notification-settings-card{
  border-color:rgba(43,205,225,.34);
}

.notification-master-switch{
  margin:18px 0;
  padding:15px;
  border:1px solid rgba(54,205,225,.26);
  border-radius:16px;
  background:rgba(7,60,74,.4);
}

.notification-support-message{
  margin:12px 0;
}

.notification-enabled-message{
  padding:12px 14px;
  color:#d7ffe7;
  border:1px solid rgba(48,205,118,.48);
  border-radius:14px;
  background:rgba(23,125,68,.26);
}

#pushPreferenceControls{
  transition:opacity .2s ease;
}

#pushPreferenceControls
.btn + .btn{
  margin-top:9px;
}

.notification-controls-disabled{
  opacity:.5;
}

.notification-controls-disabled
button{
  pointer-events:none;
}



/* TerraAqua Alert History */

.alert-history-section{
  margin-top:22px;
  padding-top:20px;
  border-top:1px solid rgba(113,220,233,.18);
}

.alert-history-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}

.alert-history-header h2{
  margin:0 0 4px;
}

.alert-history-list{
  display:grid;
  gap:12px;
}

.alert-history-entry{
  padding:16px;
  border:1px solid rgba(119,215,228,.18);
  border-radius:16px;
  background:rgba(5,39,49,.58);
}

.alert-history-entry.state-alarm{
  border-color:rgba(255,83,83,.52);
}

.alert-history-entry.state-warning{
  border-color:rgba(255,190,66,.48);
}

.alert-history-entry.state-disconnected,
.alert-history-entry.state-offline{
  border-color:rgba(255,117,117,.34);
}

.alert-history-entry.state-normal,
.alert-history-entry.state-online{
  border-color:rgba(56,210,129,.38);
}

.alert-history-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}

.alert-history-top time{
  color:var(--muted);
  font-size:.82rem;
}

.alert-history-badge{
  display:inline-flex;
  padding:5px 9px;
  border-radius:999px;
  font-size:.76rem;
  font-weight:700;
  background:rgba(80,179,196,.18);
}

.alert-history-badge.state-alarm{
  color:#ffd8d8;
  background:rgba(185,41,41,.32);
}

.alert-history-badge.state-warning{
  color:#fff0bd;
  background:rgba(168,111,12,.3);
}

.alert-history-badge.state-disconnected,
.alert-history-badge.state-offline{
  color:#ffd7d7;
  background:rgba(141,46,46,.28);
}

.alert-history-badge.state-normal,
.alert-history-badge.state-online{
  color:#d6ffe8;
  background:rgba(28,139,81,.3);
}

.alert-history-entry h3{
  margin:0 0 4px;
  font-size:1rem;
}

.alert-history-entry p{
  margin:9px 0 0;
  line-height:1.45;
}

.alert-history-aquarium{
  color:var(--muted);
  font-size:.84rem;
}

@media(max-width:600px){
  .alert-history-header{
    display:block;
  }

  .alert-history-header .btn{
    margin-top:12px;
    width:100%;
  }
}


/* OTA live progress */
.update-live{margin-top:12px;padding:12px;border:1px solid rgba(117,239,255,.22);border-radius:12px;background:rgba(5,24,34,.45)}
.update-live-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:5px}.update-details{margin-top:10px}.update-details summary{cursor:pointer;color:#75efff}.update-details pre{white-space:pre-wrap;word-break:break-word;max-height:180px;overflow:auto;padding:10px;border-radius:8px;background:#04131b;color:#c7dbe2;font-size:12px}.update-stale{margin-top:8px;color:#ffd27a;font-size:13px}


/* TerraAqua OTA activity animation 1.2.3 */
.update-activity-title{display:flex;align-items:center;gap:9px;min-width:0}.update-spinner,.inline-spinner{display:inline-block;width:18px;height:18px;flex:0 0 18px;border:2px solid rgba(117,239,255,.24);border-top-color:#75efff;border-right-color:#39bdd3;border-radius:50%;animation:ta-spin .85s linear infinite}.update-spinner.reconnect{animation-duration:1.15s;box-shadow:0 0 0 4px rgba(117,239,255,.08)}.inline-spinner{width:14px;height:14px;vertical-align:-2px;margin-right:5px}.update-running-dots,.text-running-dots{display:inline-flex;align-items:flex-end;gap:3px;height:14px;margin-left:1px}.update-running-dots i,.text-running-dots i{display:block;width:4px;height:4px;border-radius:50%;background:#75efff;animation:ta-dot 1.15s ease-in-out infinite}.update-running-dots i:nth-child(2),.text-running-dots i:nth-child(2){animation-delay:.16s}.update-running-dots i:nth-child(3),.text-running-dots i:nth-child(3){animation-delay:.32s}.update-working-note{margin-top:9px;color:#b8d8df;font-size:13px;line-height:1.4}.update-live.is-active{position:relative;overflow:hidden}.update-live.is-active::after{content:"";position:absolute;left:-45%;bottom:0;width:38%;height:2px;background:linear-gradient(90deg,transparent,#75efff,transparent);animation:ta-sweep 1.8s ease-in-out infinite}.update-progress-bar{position:relative;overflow:hidden}.update-progress:not(.hidden) .update-progress-bar::after{content:"";position:absolute;inset:0;width:45%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);transform:translateX(-130%);animation:ta-bar-shine 1.6s linear infinite}@keyframes ta-spin{to{transform:rotate(360deg)}}@keyframes ta-dot{0%,70%,100%{transform:translateY(0);opacity:.35}35%{transform:translateY(-5px);opacity:1}}@keyframes ta-sweep{0%{left:-45%}100%{left:110%}}@keyframes ta-bar-shine{to{transform:translateX(270%)}}@media(prefers-reduced-motion:reduce){.update-spinner,.inline-spinner,.update-running-dots i,.text-running-dots i,.update-live.is-active::after,.update-progress-bar::after{animation:none!important}.update-spinner,.inline-spinner{border-color:#75efff}.update-running-dots i,.text-running-dots i{opacity:1}}


/* TerraAqua push account/device state v1.1 */
.push-state-grid{display:grid;gap:8px;padding:12px 14px;border:1px solid rgba(54,205,225,.24);border-radius:14px;background:rgba(4,43,55,.48)}
.push-state-row{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:.9rem}
.push-state-row span{color:var(--muted)}
.push-state-row b{text-align:right}
.push-warning{margin-top:10px}
.push-reconnect-btn{margin-top:10px}
@media(max-width:520px){.push-state-row{align-items:flex-start}.push-state-row b{max-width:55%}}
