:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#f5f7f8;background:#0b0d0f;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at top,#1b2025 0,#0b0d0f 45%)}button,input,select{font:inherit}button{border:0;border-radius:10px;padding:.72rem 1rem;cursor:pointer;font-weight:700;background:#f0a11a;color:#18120a}button:hover{filter:brightness(1.07)}button:disabled{opacity:.45;cursor:not-allowed}button.secondary{background:#2a3138;color:#f5f7f8}button.ghost{background:transparent;color:#dce3e8;border:1px solid #3a434b}button.danger{color:#ff8f8f;border-color:#704040}button.full{width:100%;margin-top:.8rem}.hidden{display:none!important}.shell{width:min(1280px,calc(100% - 28px));margin:0 auto;padding:24px 0 44px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:18px}.eyebrow{color:#f0a11a;letter-spacing:.18em;font-size:.75rem;font-weight:800}h1{margin:.2rem 0 0;font-size:clamp(1.5rem,4vw,2.4rem)}h2,h3{margin-top:0}.top-actions,.button-row,.mode-buttons,.profile-flags{display:flex;gap:.65rem;flex-wrap:wrap;align-items:center}.pill{display:inline-flex;align-items:center;padding:.42rem .7rem;border-radius:999px;font-size:.78rem;font-weight:800;background:#252c31;color:#cbd5db}.pill.good{background:#123d2b;color:#76e3ad}.pill.bad{background:#4a2020;color:#ff9a9a}.pill.warn{background:#4a3818;color:#ffd37d}.notice{margin:0 0 14px;border-radius:12px;padding:12px 14px;display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.notice.error{background:#4a2020}.notice.alarm{background:#51270f;border:1px solid #9a521e}.notice.alarm button{margin-left:auto}.device-tabs{display:flex;gap:.6rem;overflow-x:auto;padding-bottom:12px}.device-tabs button{white-space:nowrap;background:#181d21;color:#d9e1e6;border:1px solid #2a3138}.device-tabs button.active{background:#f0a11a;color:#18120a;border-color:#f0a11a}.card{background:rgba(24,29,33,.92);border:1px solid #2a3138;border-radius:16px;padding:18px;box-shadow:0 14px 32px rgba(0,0,0,.22)}.hero-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:14px;margin-bottom:14px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.status-dot{font-size:.75rem;font-weight:900;letter-spacing:.08em}.status-dot.online{color:#76e3ad}.status-dot.offline{color:#ff9a9a}.temperature{font-size:clamp(3.7rem,10vw,7.2rem);font-weight:800;line-height:1;letter-spacing:-.05em;margin:20px 0 8px}.setpoint{color:#aebbc4;font-size:1.1rem}.actuator-row{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center;margin-top:24px;color:#b8c3ca}.actuator{border:1px solid #3b444b;border-radius:999px;padding:.35rem .6rem}.actuator.on{background:#f0a11a;color:#18120a;border-color:#f0a11a;font-weight:800}.stats-card{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stats-card div{padding:14px;background:#111518;border-radius:12px}.stats-card span{display:block;color:#8fa0aa;font-size:.8rem;margin-bottom:5px}.stats-card strong{font-size:1.2rem}.content-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:14px;margin-bottom:14px}.controls-grid{grid-template-columns:1fr 1fr}.chart{width:100%;height:auto;min-height:220px;background:#101417;border-radius:12px;margin-top:12px}.axis{stroke:#3a434b;stroke-width:1}.temperature-line{fill:none;stroke:#f0a11a;stroke-width:3}.setpoint-line{fill:none;stroke:#7aa7ff;stroke-width:2;stroke-dasharray:8 6}.chart-label{fill:#71808a;font-size:13px}.chart-empty{fill:#71808a;font-size:16px}.legend{display:flex;gap:.8rem;color:#9aa9b2;font-size:.8rem}.temp-key:before,.sp-key:before{content:"";width:18px;height:3px;display:inline-block;margin-right:5px;vertical-align:middle}.temp-key:before{background:#f0a11a}.sp-key:before{background:#7aa7ff}.profile-name{font-size:1.55rem;font-weight:800;margin-bottom:10px}.profile-progress{display:flex;justify-content:space-between;color:#aebbc4;margin-bottom:14px}label{display:grid;gap:6px;color:#aebbc4;font-size:.88rem;margin-bottom:11px}input,select{width:100%;border:1px solid #3a434b;background:#0e1215;color:#f5f7f8;border-radius:9px;padding:.72rem .8rem;outline:none}input:focus,select:focus{border-color:#f0a11a}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.align-end{display:flex;align-items:end;padding-bottom:11px}.mode-buttons button{flex:1}.details{margin:0}.details div{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:8px 0;border-bottom:1px solid #293037}.details dt{color:#81919b}.details dd{margin:0;overflow-wrap:anywhere}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.75rem;color:#b9c6cd}.hint{color:#778791;font-size:.78rem}footer{color:#65747e;text-align:center;padding-top:14px;font-size:.8rem}.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.72);display:grid;place-items:center;z-index:10;padding:16px;overflow:auto}.modal{width:min(760px,100%);max-height:94vh;overflow:auto;background:#171c20;border:1px solid #353d44;border-radius:16px;padding:20px}.modal-head{display:flex;justify-content:space-between;align-items:center}.icon-button{background:transparent;color:#cdd6dc;font-size:1.7rem;padding:.2rem .6rem}.device-editor{border:1px solid #303940;border-radius:12px;padding:14px;margin-bottom:12px}.modal-actions{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:18px}@media(max-width:820px){.hero-grid,.content-grid,.controls-grid{grid-template-columns:1fr}.topbar{align-items:flex-start;flex-direction:column}.stats-card{grid-template-columns:1fr 1fr}.top-actions{width:100%;justify-content:space-between}.temperature{font-size:4.3rem}}@media(max-width:520px){.shell{width:min(100% - 18px,1280px);padding-top:14px}.card{padding:14px}.form-grid{grid-template-columns:1fr}.stats-card{grid-template-columns:1fr 1fr}.details div{grid-template-columns:90px 1fr}.notice.alarm button{margin-left:0;width:100%}}

.auth-locked{overflow:hidden}.auth-locked .shell,.auth-locked .modal-backdrop{display:none!important}.auth-screen{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:18px;background:radial-gradient(circle at top,#1b2025 0,#0b0d0f 50%)}.auth-screen.hidden{display:none!important}.auth-card{width:min(430px,100%);background:rgba(24,29,33,.97);border:1px solid #343d44;border-radius:18px;padding:26px;box-shadow:0 24px 70px rgba(0,0,0,.45)}.auth-card h1{margin:.3rem 0 .6rem}.auth-copy{color:#aebbc4;margin:0 0 1.3rem}.auth-error{margin:.2rem 0 .8rem;padding:.7rem .8rem;border-radius:9px;background:#4a2020;color:#ffb2b2;font-size:.86rem}.auth-card button.full{margin-top:.25rem}.auth-card .hint{margin-bottom:0}.top-actions button.ghost{padding:.62rem .78rem}

.archive-stats{margin:16px 0;grid-template-columns:1fr 1fr}
.archive-list{display:grid;gap:10px;margin-top:14px}
.archive-item{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:12px 14px;border:1px solid #303940;border-radius:12px;background:#111518}
.archive-item strong{display:block}
.archive-item span{color:#8fa0aa;font-size:.82rem}
@media(max-width:620px){.archive-stats{grid-template-columns:1fr}.archive-item{grid-template-columns:1fr}}

.profile-progress-panel{margin:0 0 16px;padding:12px;border:1px solid #2d483b;border-radius:12px;background:rgba(18,61,43,.18)}
.profile-progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;color:#8fa0aa;font-size:.8rem}
.profile-progress-head strong{color:#76e3ad;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.95rem}
.profile-progress-track{height:10px;overflow:hidden;border-radius:999px;background:#2a3138}
.profile-progress-bar{height:100%;width:0;border-radius:999px;background:#76e3ad;transition:width .5s ease}
.profile-progress-note{margin-top:8px;color:#778791;font-size:.72rem;min-height:1em}
