:root{--ink:#17243b;--muted:#64748b;--faint:#8994a6;--blue:#2667d9;--blue-deep:#1554bf;--line:rgba(113,139,175,.16);--glass:rgba(255,255,255,.77);--radius:24px;--shadow:0 14px 44px rgba(46,83,130,.055);--good:#157864;--warn:#956018;--bad:#b54343}
*{box-sizing:border-box}html{min-height:100%;background:#f3f7fc}body{margin:0;min-height:100vh;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;font-size:15px;line-height:1.5;background:radial-gradient(ellipse at 80% -10%,rgba(155,194,248,.29),transparent 50%),radial-gradient(ellipse at 5% 28%,rgba(210,228,254,.35),transparent 44%),linear-gradient(160deg,#f7faff 0%,#f1f5fa 75%);-webkit-font-smoothing:antialiased}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}a{color:inherit}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}[hidden]{display:none!important}.shell{max-width:1240px;margin:0 auto;padding:0 42px}.topbar{height:104px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;align-items:center;gap:11px;font-size:18px;font-weight:650;letter-spacing:.02em;text-decoration:none;white-space:nowrap}.brand-detail{font-weight:450;font-size:13px;color:var(--muted);margin-left:12px;padding-left:12px;border-left:1px solid #ced8e6}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;color:#fff;background:linear-gradient(145deg,#4a8be9,#2a68cc);box-shadow:0 6px 15px #2464d125}.brand-mark svg{width:28px;height:28px;stroke-width:1.65}.toolbar{display:flex;align-items:center;gap:10px}.button{min-height:42px;padding:10px 17px;border:1px solid transparent;border-radius:13px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:600;transition:background .15s,box-shadow .15s,transform .15s}.button-primary{background:var(--blue);color:#fff;box-shadow:0 4px 12px #2060cd18}.button-primary:hover:not(:disabled){background:var(--blue-deep)}.button-quiet{background:rgba(255,255,255,.64);border-color:var(--line);color:#51627c}.button-quiet:hover{background:#fff}.button[aria-pressed=true]{border-color:#a5bfe4;background:#e9f1fd;color:#1c56ad}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #80aef2;outline-offset:4px}.skip-link{position:absolute;left:20px;top:-80px;z-index:20;padding:10px;background:#fff}.skip-link:focus{top:12px}.intro{display:flex;justify-content:space-between;align-items:flex-end;padding:41px 0 31px;gap:20px}.eyebrow{margin:0 0 10px;color:var(--muted);font-size:12px;letter-spacing:.06em}h1{font-size:40px;letter-spacing:-.04em;font-weight:650;line-height:1.2;margin:0}.title-dot{color:var(--blue);padding-left:3px}.intro-note{color:var(--muted);margin:12px 0 0;font-size:14px}.connection-summary{text-align:right;flex-shrink:0;padding-bottom:2px}.connection-summary p{font-size:12px;color:var(--muted);margin:10px 0 0;font-variant-numeric:tabular-nums}.status-pill{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:550;padding:5px 9px;border-radius:20px;white-space:nowrap;background:#eef2f7;color:#56667d}.status-dot{width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}.status-fresh{color:var(--good);background:#e5f3ee}.status-stale{color:var(--warn);background:#f8efde}.status-suspected_offline,.status-error{color:var(--bad);background:#faecea}.status-unknown{color:#627187;background:#edf1f6}.text-button{border:0;background:transparent;padding:5px 0;color:var(--muted);font-size:12px;margin-top:3px}.text-button:hover{color:var(--ink);text-decoration:underline}.glass{background:var(--glass);border:1px solid rgba(255,255,255,.9);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.connection-panel{padding:38px 40px;display:grid;grid-template-columns:1fr 330px;gap:46px;align-items:center;min-height:268px}.section-kicker{font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--blue)}.connection-copy h2{font-size:24px;letter-spacing:-.02em;font-weight:600;margin:10px 0 12px}.connection-copy>p{color:var(--muted);font-size:13px;margin:0}.privacy-hint{font-size:11px;display:flex;align-items:center;gap:7px;color:var(--muted);margin-top:28px}.privacy-hint svg{width:15px;height:15px}.connection-form{display:grid;grid-template-columns:1fr;gap:10px}.connection-form label{font-size:12px;font-weight:600;color:#465775}.connection-form input{width:100%;height:45px;padding:11px 13px;border:1px solid #d7e0ed;border-radius:11px;min-width:0;background:rgba(255,255,255,.85);color:var(--ink);font-size:14px}.connection-form input::placeholder{color:#8692a4}.connection-form .button{margin-top:2px}.form-note{font-size:11px;margin:1px 0 0;color:var(--muted);text-align:center}.notice{padding:13px 17px;background:#fff5e7;border:1px solid #efdfc4;border-radius:14px;font-size:12px;color:#805b24;margin-bottom:20px;line-height:1.8}.dashboard{display:grid;grid-template-columns:minmax(0,1fr) 314px;gap:24px}.main-column,.side-column{min-width:0}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:17px}.section-heading h2{font-size:15px;letter-spacing:.01em;font-weight:600;margin:0}.section-meta{font-size:11px;color:var(--muted);white-space:nowrap}.device-list{display:grid;gap:20px}.device-card{padding:25px 26px}.device-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:25px}.device-title{display:flex;gap:11px;align-items:center;min-width:0}.device-icon{height:38px;width:38px;display:grid;place-items:center;background:#eef4fd;border:1px solid #e3edfa;border-radius:12px;color:#4277c6;flex-shrink:0}.device-title h3{font-size:14px;font-weight:600;margin:0;overflow-wrap:anywhere}.device-subtitle{font-size:10px;color:var(--muted);margin:4px 0 0;overflow-wrap:anywhere}.sensor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 18px}.sensor{min-width:0;padding-left:18px;border-left:1px solid #e5edf6}.sensor:nth-child(odd){padding-left:0;border-left:0}.sensor-name{display:flex;align-items:center;gap:6px;color:#60738c;font-size:12px;margin:0 0 9px}.sensor-name svg{width:15px;height:15px;color:#5384c6}.sensor-reading{font-size:40px;font-weight:580;line-height:1.1;letter-spacing:-.05em;display:flex;align-items:baseline;gap:5px;min-height:45px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.sensor-reading.empty{font-size:28px;color:#8491a4;letter-spacing:0}.sensor-unit{font-size:17px;font-weight:400;letter-spacing:0;color:#728097}.sensor-context{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:12px}.sensor-time{font-size:10px;color:var(--muted);font-variant-numeric:tabular-nums}.sensor-error{font-size:11px;color:var(--bad);margin:8px 0 0;overflow-wrap:anywhere}.sensor-details{font-size:10px;color:var(--muted);margin-top:12px}.sensor-details summary{cursor:pointer;display:inline-block;list-style:none;color:#6b7f9c}.sensor-details summary::after{content:" +"}.sensor-details[open] summary::after{content:" −"}.sensor-details dl{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;margin:8px 0 0}.sensor-details dt,.sensor-details dd{margin:0}.sensor-details dd{text-align:right;overflow-wrap:anywhere}.device-health{display:flex;flex-wrap:wrap;gap:8px 18px;padding-top:19px;margin-top:22px;border-top:1px solid #e8edf5;color:var(--muted);font-size:10px}.health-item{display:flex;align-items:center;gap:5px}.health-item svg{height:13px;width:13px}.health-item.muted{color:#705682}.health-item.uploading{color:#3268be}.health-item.listening{color:var(--good)}.device-empty{padding:8px 0 15px}.side-column{display:grid;gap:20px;align-content:start;padding-top:39px}.side-card{padding:24px 23px}.side-card .section-heading{margin-bottom:20px}.reminder-list{display:grid;gap:19px}.reminder{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px}.reminder-date{color:#5676a3;font-size:9px;text-align:center;line-height:1.2;padding:7px 4px;background:#eff4fb;border-radius:10px;align-self:start}.reminder-day{display:block;font-size:19px;font-weight:600;margin-bottom:2px;font-variant-numeric:tabular-nums}.reminder h3{font-weight:500;font-size:12px;margin:0 0 5px;overflow-wrap:anywhere}.reminder p{font-size:10px;color:var(--muted);margin:0}.reminder-status{font-size:10px;color:var(--muted);margin-top:3px;display:block}.section-icon{color:#6a89b4;width:19px;height:19px}.empty-state{padding:12px 0;color:var(--muted);font-size:12px;line-height:1.7}.empty-state p{margin:0}.empty-state .empty-title{color:#50657e;font-weight:500}.empty-state .empty-note{font-size:10px;margin-top:6px;color:#8190a4}.music-heading{font-size:14px;font-weight:550;margin:0 0 6px;overflow-wrap:anywhere}.music-meta{font-size:11px;color:var(--muted);margin:5px 0;overflow-wrap:anywhere}.music-status{margin-top:13px}.source-card{display:flex;align-items:flex-start;gap:9px;padding:0 5px;color:var(--muted)}.source-dot{height:5px;width:5px;border-radius:50%;background:#91a4bc;margin-top:6px;flex-shrink:0}.source-card p{margin:0 0 4px;font-size:10px}.source-card p+p{color:#8391a4}.history .device-card,.history .side-card{border-color:#ebdfca}.history .sensor-reading{color:#6d7580}.loading-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.skeleton-card{background:rgba(255,255,255,.7);border-radius:var(--radius);padding:27px;height:210px;display:grid;align-content:start;gap:20px}.skeleton-card span{display:block;height:12px;border-radius:6px;background:#e5edf7;animation:pulse 1.8s ease-in-out infinite}.skeleton-card span:nth-child(2){height:39px;width:55%;margin-top:7px}.skeleton-card span:nth-child(3){width:70%}@keyframes pulse{50%{opacity:.45}}footer{display:flex;justify-content:space-between;color:#8995a6;font-size:10px;gap:15px;padding:35px 0 26px;letter-spacing:.02em}.footer-dot{padding:0 7px}
@media(min-width:1450px){.shell{padding-top:15px}.intro{padding-top:55px;padding-bottom:38px}.dashboard{gap:28px}}
@media(max-width:1000px){.shell{padding:0 28px}.dashboard{grid-template-columns:minmax(0,1fr) 275px;gap:18px}.device-card{padding:22px}.side-card{padding:21px}.sensor-reading{font-size:35px}.connection-panel{padding:32px;grid-template-columns:1fr 285px;gap:25px}.connection-copy h2{font-size:21px}.device-heading{margin-bottom:22px}}
@media(max-width:760px){.shell{padding:0 22px}.topbar{height:85px}.brand-detail{display:none}.intro{padding:30px 0 26px}h1{font-size:34px}.dashboard{grid-template-columns:1fr;gap:24px}.side-column{grid-template-columns:1fr 1fr;padding-top:0;gap:16px}.source-card{grid-column:1/-1}.connection-panel{grid-template-columns:1fr;gap:25px;padding:28px;min-height:0}.privacy-hint{margin-top:17px}.connection-copy h2{font-size:23px}.connection-form{grid-template-columns:1fr auto;gap:9px 12px}.connection-form label,.form-note{grid-column:1/-1}.connection-form .button{margin:0;min-width:80px}.form-note{text-align:left}.loading-grid{grid-template-columns:1fr 1fr}.skeleton-card:last-child{display:none}.connection-summary{max-width:180px}.intro-note{font-size:12px}.eyebrow{font-size:10px;margin-bottom:9px}.button{min-height:40px;padding:9px 13px}.button svg{height:17px;width:17px}.toolbar{gap:8px}.device-title h3{font-size:15px}.sensor-reading{font-size:40px}.device-card{padding:24px}.device-health{font-size:11px}.sensor-time{font-size:11px}.sensor-details{font-size:11px}}
@media(max-width:480px){.shell{padding:0 18px}.topbar{height:78px}.brand{font-size:17px;gap:9px}.brand-mark{width:35px;height:35px;border-radius:12px}.brand-mark svg{width:24px;height:24px}.button{font-size:12px;padding:9px 11px;border-radius:11px}.toolbar{gap:7px}.button-quiet svg{display:none}.intro{align-items:flex-start;padding:28px 0 24px;gap:12px}h1{font-size:31px}.intro-note{max-width:200px;line-height:1.7}.connection-summary{padding-top:22px;max-width:145px}.connection-summary p{font-size:10px}.connection-panel{padding:25px 23px}.connection-copy h2{font-size:21px}.privacy-hint{font-size:10px}.connection-form{grid-template-columns:1fr}.connection-form label,.form-note{grid-column:auto}.connection-form .button{margin-top:2px}.form-note{text-align:center}.device-card{padding:22px 20px}.device-heading{margin-bottom:24px}.device-title{gap:9px}.device-icon{width:34px;height:34px;border-radius:11px}.device-title h3{font-size:13px}.device-subtitle{font-size:9px}.device-heading>.status-pill{font-size:10px;padding:4px 7px}.sensor-grid{gap:24px 13px}.sensor{padding-left:13px}.sensor-reading{font-size:37px;min-height:43px}.sensor-unit{font-size:15px}.sensor-context{gap:6px}.sensor-context .status-pill{font-size:10px;padding:4px 7px}.sensor-time{font-size:10px}.sensor-details{font-size:10px}.side-column{grid-template-columns:1fr}.side-card{padding:23px}.side-column .source-card{padding-top:3px}.reminder-list{gap:17px}.empty-state{padding:3px 0}.device-health{font-size:10px}.sensor-details dl{grid-template-columns:1fr;gap:2px}.sensor-details dd{text-align:left;margin-bottom:3px}.notice{padding:12px 14px;font-size:11px}footer{padding-top:28px;font-size:9px}.loading-grid{grid-template-columns:1fr}.skeleton-card:nth-child(2){display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
body.kindle{background:#fff;color:#000;font-family:Arial,"Microsoft YaHei",sans-serif;--ink:#000;--muted:#333;--faint:#444;--line:#999;--blue:#000;--blue-deep:#222;--glass:#fff;--shadow:none;--good:#000;--warn:#000;--bad:#000}
.kindle .glass,.kindle .device-card,.kindle .side-card{background:#fff;border:1px solid #888;border-radius:4px;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.kindle .brand-mark{background:#fff;color:#000;border:1px solid #000;box-shadow:none;border-radius:4px}.kindle .button{box-shadow:none;border:1px solid #000;border-radius:3px}.kindle .button-primary{background:#000;color:#fff}.kindle .button-quiet{background:#fff;color:#000}.kindle .status-pill{background:#fff;color:#000;border:1px solid #777;border-radius:3px}.kindle .status-suspected_offline,.kindle .status-error,.kindle .status-stale{border:2px solid #000;font-weight:700}.kindle .status-dot,.kindle .source-dot{display:none}.kindle .device-icon,.kindle .reminder-date{background:#fff;color:#000;border:1px solid #888;border-radius:3px}.kindle .sensor-reading,.kindle .sensor-name,.kindle .sensor-unit,.kindle .device-subtitle,.kindle .section-meta,.kindle .sensor-time,.kindle .sensor-error,.kindle .sensor-details summary,.kindle .device-health,.kindle .source-card p,.kindle footer{color:#111}.kindle .notice{background:#fff;border:2px solid #000;color:#000;border-radius:3px}.kindle .sensor-details{font-size:11px}.kindle .skeleton-card{border:1px solid #777;background:#fff;border-radius:4px}.kindle .skeleton-card span{animation:none;background:#ddd}.kindle .sensor-name svg,.kindle .section-icon{color:#000}.kindle .title-dot{display:none}.kindle .history .sensor-reading{color:#000}.kindle .history .device-card,.kindle .history .side-card{border:2px solid #000}
@media print{body{background:#fff}.shell{max-width:none;padding:0}.toolbar,#connection-panel,.text-button,footer{display:none!important}.glass{box-shadow:none;border:1px solid #aaa;background:#fff;backdrop-filter:none}.device-card,.side-card{break-inside:avoid}.dashboard{grid-template-columns:2fr 1fr}.topbar{height:65px}.intro{padding:25px 0}.device-card{padding:20px}.side-card{padding:18px}.sensor-details{display:block}.sensor-details dl{display:grid!important}.connection-summary{color:#000}}
