/* 云端网站在 app.css 之上的补充 */
.store-select{background:rgba(255,255,255,.15);color:#fff;border-color:rgba(255,255,255,.35);padding:3px 6px;}
.store-select option{color:#2c3e50;}
.store-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:16px;}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;background:#aab4bf;vertical-align:middle;}
.dot.on{background:var(--success);}
.dot.off{background:var(--danger);}
.kv{display:grid;grid-template-columns:repeat(3,1fr);gap:8px 14px;margin:10px 0;}
.kv div{background:#f6f9fc;border-radius:6px;padding:8px 10px;}
.kv .k{font-size:12px;color:var(--text-light);}
.kv .v{font-size:17px;font-weight:600;font-variant-numeric:tabular-nums;margin-top:2px;}
.bar-cell{width:46%;}
.bar{height:10px;background:var(--primary);border-radius:3px;min-width:1px;}
.hours{display:grid;grid-template-columns:repeat(24,1fr);gap:2px;align-items:end;height:70px;margin-top:8px;}
.hours div{background:var(--primary);border-radius:2px 2px 0 0;min-height:2px;}
.hours div.none{background:#e3e8ee;}
.hour-labels{display:grid;grid-template-columns:repeat(24,1fr);gap:2px;font-size:10px;color:var(--text-light);text-align:center;}
.token-box{font-family:Consolas,monospace;background:#fff8e1;border:1px solid #f0d38a;padding:10px;border-radius:6px;word-break:break-all;}
.warn-box{background:#fff8e1;border:1px solid #f0d38a;border-radius:6px;padding:9px 12px;margin-bottom:12px;}
@media (max-width:700px){
  .store-cards{grid-template-columns:1fr;}
  .kv{grid-template-columns:repeat(2,1fr);}
  .topbar{overflow-x:auto;}
  .page{padding:0 10px;}
  table{font-size:13px;}
}
