:root{--bg: #0e0f10;--surface: #161719;--surface2: #1e2022;--border: rgba(255,255,255,.07);--border2: rgba(255,255,255,.13);--text: #e8e8e3;--muted: #737069;--accent: #b5e48c;--accent2: #52b788;--font-sans: "DM Sans", sans-serif;--font-mono: "DM Mono", monospace;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--c-received: #7c9bbf;--c-manufacturing: #e0a347;--c-shipped: #9b8cf5;--c-delivered: #52b788;--c-installed: #b5e48c;--c-reviewed: #8ecae6}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:15px;-webkit-font-smoothing:antialiased}a{color:var(--accent2);text-decoration:none}button{font-family:var(--font-sans);cursor:pointer}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}app-lazypots .connection-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px}app-lazypots .connection-actions .open-detail{margin-top:0}app-lazypots .device-admin-actions{display:flex;align-items:center;gap:8px}app-lazypots .send-notification,app-lazypots .send-no-battery-email,app-lazypots .remove-connection,app-lazypots .cancel-remove,app-lazypots .confirm-remove,app-lazypots .modal-cancel,app-lazypots .modal-send{border-radius:var(--r-sm);padding:7px 12px;font-size:12px}app-lazypots .send-notification:disabled,app-lazypots .send-no-battery-email:disabled,app-lazypots .remove-connection:disabled,app-lazypots .cancel-remove:disabled,app-lazypots .confirm-remove:disabled,app-lazypots .modal-cancel:disabled,app-lazypots .modal-send:disabled{cursor:not-allowed;opacity:.55}app-lazypots .remove-connection{background:transparent;border:1px solid rgba(224,82,82,.45);color:#e05252}app-lazypots .remove-connection:hover:not(:disabled){background:#e052521a}app-lazypots .send-notification,app-lazypots .send-no-battery-email{background:transparent;border:1px solid rgba(82,183,136,.45);color:var(--accent2)}app-lazypots .send-notification:hover:not(:disabled),app-lazypots .send-no-battery-email:hover:not(:disabled){background:#52b7881a}app-lazypots .remove-confirmation{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:14px;padding:14px;border:1px solid rgba(224,82,82,.35);border-radius:var(--r-sm);background:#e0525214}app-lazypots .remove-confirmation strong{color:#e05252;font-size:13px}app-lazypots .remove-confirmation p{margin:4px 0 0;color:var(--muted);font-size:12px}app-lazypots .confirmation-actions{display:flex;gap:8px;flex:none}app-lazypots .cancel-remove{background:transparent;border:1px solid var(--border2);color:var(--text)}app-lazypots .confirm-remove{background:#c94444;border:1px solid #c94444;color:#fff}app-lazypots .notification-modal-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:#000000b3;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}app-lazypots .notification-modal{width:min(520px,100%);border:1px solid var(--border2);border-radius:var(--r-md);padding:22px;background:var(--surface);box-shadow:0 24px 80px #00000073}app-lazypots .notification-modal label{display:block;margin:16px 0 7px;color:var(--text);font-size:13px;font-weight:600}app-lazypots .notification-modal input,app-lazypots .notification-modal textarea{width:100%;border:1px solid var(--border2);border-radius:var(--r-sm);padding:10px 12px;background:var(--surface2);color:var(--text);font:inherit}app-lazypots .notification-modal input:focus,app-lazypots .notification-modal textarea:focus{outline:2px solid rgba(82,183,136,.35);border-color:var(--accent2)}app-lazypots .notification-modal input:disabled,app-lazypots .notification-modal textarea:disabled{opacity:.65}app-lazypots .notification-modal textarea{resize:vertical;min-height:110px}app-lazypots .notification-modal-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}app-lazypots .notification-modal-heading span{color:var(--accent2);font-size:11px;text-transform:uppercase;letter-spacing:.08em}app-lazypots .notification-modal-heading h2{margin-top:3px;font-size:20px}app-lazypots .notification-modal-heading p{margin-top:4px;color:var(--muted);font-size:12px}app-lazypots .modal-close{border:0;background:transparent;color:var(--muted);font-size:24px;line-height:1}app-lazypots .field-count{margin-top:4px;color:var(--muted);font-size:11px;text-align:right}app-lazypots .notification-note{margin-top:14px;color:var(--muted);font-size:12px;line-height:1.45}app-lazypots .modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}app-lazypots .modal-cancel{background:transparent;border:1px solid var(--border2);color:var(--text)}app-lazypots .modal-send{background:var(--accent2);border:1px solid var(--accent2);color:#08130e;font-weight:600}@media(max-width:900px){app-lazypots .connection-actions,app-lazypots .remove-confirmation{align-items:stretch;flex-direction:column}app-lazypots .device-admin-actions{align-items:stretch;flex-direction:column}app-lazypots .confirmation-actions{justify-content:flex-end}}app-reviews .tone-ok{color:var(--accent2)}app-reviews .tone-info{color:#7c9bbf}app-reviews .tone-warn{color:#e0a347}app-reviews .tone-fail{color:#e05252}app-reviews .tone-muted,app-reviews .tone-pending{color:var(--muted)}app-reviews .switch{display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;color:var(--muted);font-size:12px}app-reviews .switch:disabled{cursor:not-allowed;opacity:.45}app-reviews .switch.on{color:var(--text)}app-reviews .switch.on .switch-track{border-color:var(--accent2);background:#52b7883d}app-reviews .switch.on .switch-track span{transform:translate(17px);background:var(--accent2)}app-reviews .switch-track{width:39px;height:22px;padding:2px;border:1px solid var(--border2);border-radius:999px;background:var(--surface2)}app-reviews .switch-track span{display:block;width:16px;height:16px;border-radius:50%;background:var(--muted);transition:transform .15s,background .15s}app-reviews .warning-panel{margin-bottom:16px;padding:12px 14px;border:1px solid rgba(224,163,71,.32);border-radius:var(--r-sm);background:#e0a34714;color:#e0a347;font-size:12px}app-reviews .warning-panel ul{margin:6px 0 0 18px;color:var(--text);line-height:1.5}app-reviews .timeline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}app-reviews .timeline div{padding:11px 12px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface2)}app-reviews .timeline dt{margin-bottom:5px;color:var(--muted);font-size:10px;letter-spacing:.04em;text-transform:uppercase}app-reviews .timeline dd{font-size:12px;font-variant-numeric:tabular-nums}app-reviews .counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}app-reviews .counts div{padding:10px 12px;border-left:2px solid var(--border2)}app-reviews .counts span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase}app-reviews .counts strong{display:block;margin-top:3px;font-size:18px;font-variant-numeric:tabular-nums}app-reviews .latest-error{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-top:15px;padding:12px 14px;border:1px solid rgba(224,82,82,.32);border-radius:var(--r-sm);background:#e0525212;font-size:12px}app-reviews .latest-error strong{color:#e05252}app-reviews .latest-error p{margin-top:4px;line-height:1.45}app-reviews .latest-error>span{flex:none;color:var(--muted);font-size:11px}app-reviews .failure-list{display:grid;gap:8px;margin-top:12px}app-reviews .failure-list article{display:grid;grid-template-columns:100px minmax(0,1fr) 170px;align-items:start;gap:14px;padding:13px 15px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);font-size:12px}app-reviews .failure-list p{margin-top:3px;color:var(--muted);line-height:1.4}app-reviews .failure-time{color:var(--muted);text-align:right;font-size:11px}@media(max-width:800px){app-reviews .timeline{grid-template-columns:1fr}app-reviews .failure-list article{grid-template-columns:1fr}app-reviews .failure-time{text-align:left}}@media(max-width:520px){app-reviews .switch{align-self:flex-start}app-reviews .counts{grid-template-columns:repeat(2,minmax(0,1fr))}app-reviews .latest-error{flex-direction:column}}@media(prefers-reduced-motion:reduce){app-reviews .switch-track span{transition:none}}
