*{box-sizing:border-box} :root{--ink:#20231c;--muted:#71736b;--lime:#f3f52c;--orange:#ff9451;--line:rgba(255,255,255,.7)}body{margin:0;color:var(--ink);font-family:Inter,'Segoe UI',Arial,sans-serif;font-size:14px;background:radial-gradient(ellipse at 0 0,#e5e8b5 0,transparent 45%),radial-gradient(ellipse at 60% 0,#eacfbf 0,transparent 48%),#dedfdb;min-height:100vh}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,.primary{cursor:pointer;border:1px solid var(--line);border-radius:14px;padding:12px 18px;background:rgba(255,255,255,.4);color:var(--ink);display:inline-block}button:hover,a.primary:hover{filter:brightness(.96)}.primary{background:var(--lime);border-color:var(--lime);font-weight:600}.sidebar{position:fixed;inset:0 auto 0 0;width:224px;border-right:1px solid rgba(255,255,255,.35);padding:33px 19px;background:rgba(240,241,229,.15);display:flex;flex-direction:column}.brand{font-size:30px;letter-spacing:4px;font-weight:650;padding-left:12px}.brand>span:first-child{display:inline-block}.brand-sub{font-size:8px;letter-spacing:1.4px;display:block;padding-top:7px;font-weight:500}.workspace{font-size:10px;letter-spacing:1px;margin:35px 10px 28px;color:#66695c}.workspace b{float:right}.nav-label{font-size:9px;letter-spacing:1.5px;color:#787a6b;padding:20px 12px 12px}nav a{display:flex;align-items:center;gap:12px;padding:14px 13px;border-radius:17px;margin:3px 0;font-size:17px}nav a span{font-size:12px}nav a:hover{background:#ffffff45}nav .active{background:#fff9;box-shadow:0 5px 18px #6e6f5610}nav .live-dot{margin-left:auto}.sidebar-bottom{margin-top:auto;display:flex;align-items:center;gap:10px;font-size:12px;padding:15px 8px 0}.sidebar-bottom small{display:block;color:var(--muted);font-size:10px;padding-top:4px}.avatar{display:grid;place-items:center;background:#fff9;width:36px;height:36px;border-radius:13px;font-weight:600}.sidebar-bottom form{margin-left:auto}.logout{padding:8px;border:0;background:none;font-size:23px}main{margin-left:224px;min-height:100vh;display:flex;flex-direction:column}.topbar{height:80px;display:flex;justify-content:space-between;align-items:center;padding:0 38px;font-size:10px;letter-spacing:1.8px}.slash{padding:0 12px;color:#929482}.env{border:1px solid #ffffff60;padding:10px 15px;border-radius:13px;font-size:9px}.content{padding:17px 38px 36px;flex:1}.eyebrow{font-size:9px;letter-spacing:2px;color:#717365;margin-bottom:14px}h1{font-weight:400;font-size:38px;letter-spacing:-1.6px;margin:0 0 12px}h2{font-size:15px;font-weight:500;margin:0}h3{font-weight:500}p{line-height:1.65}.muted,.tiny{color:var(--muted)}.tiny{font-size:11px;line-height:1.7}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.badge{display:inline-block;font-size:9px;letter-spacing:.7px;padding:9px 12px;border:1px solid #ffffff70;border-radius:25px;white-space:nowrap;background:#ffffff35}.badge.amber{background:#ffbc8266;border-color:#ffc599}.badge.good{background:var(--lime);color:#1d2017}.badge.stale{background:#ffc8b0;color:#63321b}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:25px 0}.stats article{background:#ffffff4a;border:1px solid var(--line);border-radius:25px;padding:22px;min-height:140px}.stats article:first-child{background:var(--lime);border-color:var(--lime)}.stats article:nth-child(2){background:var(--orange);border-color:var(--orange)}.stats article>span{display:block;font-size:9px;letter-spacing:1px}.stats strong{display:block;font-size:44px;font-weight:400;margin:18px 0 6px;letter-spacing:-1px}.stats .small-stat{font-size:24px;margin-top:24px}.stats small{color:#55594d;font-size:10px;display:block}.panel{background:rgba(255,255,255,.28);border:1px solid var(--line);border-radius:27px;overflow:hidden;min-width:0}.panel-head{padding:22px;display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-body{padding:0 24px 24px}.room-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:18px}.floorplan{min-height:350px;padding:30px;background-image:radial-gradient(#656b4822 1px,transparent 1px);background-size:18px 18px}.room-outline{position:relative;min-height:290px;border:3px solid #727661;border-radius:5px;padding:20px}.room-caption{font-size:9px;letter-spacing:2px;color:#6f745e}.room-state{text-align:center;padding:20px}.room-state p{font-size:11px;color:#747865}.target{font-size:42px;color:#7d8562}.door{position:absolute;bottom:-8px;left:30px;background:#e5e5d6;padding:0 15px;font-size:9px;letter-spacing:1px}.readiness{list-style:none;counter-reset:step;padding:0 24px}.readiness li{counter-increment:step;position:relative;padding:0 0 16px 33px}.readiness li:before{content:'0' counter(step);position:absolute;left:0;top:0;font-size:10px;padding-top:2px;color:#7b806a}.readiness b{font-size:12px;font-weight:500}.readiness p{font-size:11px;color:#707562;margin:6px 0 0}.text-link{display:block;padding:0 24px 24px;font-size:12px}.notice{border:1px solid #ffffff80;background:#ffffff40;border-radius:17px;padding:17px 20px;margin:20px 0;font-size:12px;line-height:1.7}.filter{display:flex;gap:12px;align-items:end;margin:20px 0 24px;flex-wrap:wrap}.filter label{min-width:150px;margin:0}.filter select{margin-bottom:0}.filter button{height:43px}label{display:block;font-size:11px;margin:18px 0;color:#555b4d}input,select{display:block;margin-top:8px;width:100%;padding:12px 13px;border:1px solid #ffffffb0;border-radius:13px;background:#ffffff55;color:var(--ink);outline:none}input:focus,select:focus{border-color:#858b4e;box-shadow:0 0 0 3px #f1f32b50}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{font-weight:400;color:#73766b;font-size:10px;padding:18px 20px;border-bottom:1px solid #ffffff50}td{padding:17px 20px;border-bottom:1px solid #ffffff35}td small{display:block;font-size:9px;color:#787d6d;margin-top:5px}td a{font-size:11px}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#ffffff25}.pagination{display:flex;justify-content:center;gap:28px;padding:20px;font-size:11px;margin-bottom:20px}.pagination+h2{margin:20px 0}.live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#889a35;vertical-align:middle}h1 .live-dot{margin-left:5px;width:9px;height:9px}.live-panels{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:18px}.live-panels>.panel:last-child{background:#121411;color:#f6f7eb;border-color:#121411}.live-panels>.panel:last-child .panel-note{color:#adaf9f}.live-panels>.panel:last-child .badge{border-color:#ffffff20;background:#ffffff10}.matrix-scroll{overflow:auto;padding:0 14px 10px;max-height:530px}.pixel-matrix{font:9px 'Consolas',monospace;table-layout:fixed;min-width:750px;text-align:center}.pixel-matrix td{padding:6px 1px;border:1px solid #ffffff3a;font-size:9px}.pixel-matrix tr:hover{background:transparent}.pixel-matrix th{padding:3px 0;font-size:8px}.heat-wrap{padding:0 22px}.heat-wrap canvas{display:block;width:100%;height:auto;aspect-ratio:4/3;border-radius:13px;background:#23261f;image-rendering:pixelated}.panel-note{font-size:10px;line-height:1.7;color:#74796a;padding:0 22px}.heat-legend{display:flex;gap:12px;align-items:center;padding:18px 24px;font:11px Consolas,monospace}.heat-legend div{flex:1;height:9px;border-radius:10px;background:linear-gradient(90deg,#1b154f,#345ad9,#29b9a0,#efe94a,#ff6935,#fff0c5)}.compact{margin-top:10px}.compact article{min-height:120px;padding:18px}.compact strong.small-stat{font-size:23px;margin-top:15px}.experiment{margin-top:20px}.auth{display:grid;place-items:center;padding:30px}.auth-card{padding:44px;border:1px solid var(--line);border-radius:30px;background:#ffffff40;max-width:470px;width:100%}.auth-card h1{font-size:32px;line-height:1.2}.auth-card .primary{width:100%;margin-top:10px}.error,.errorlist{color:#aa3928;font-size:12px;line-height:1.6}.helptext{display:block;font-size:10px;line-height:1.6;color:#6b705f}footer{padding:22px 38px;display:flex;justify-content:space-between;color:#7b806f;font-size:9px;border-top:1px solid #ffffff40;letter-spacing:.3px}body:has(#live-sensor) .content{max-width:1800px}button:disabled{opacity:.5}a:focus-visible,button:focus-visible{outline:3px solid #69702e;outline-offset:3px}@media(min-width:1600px){.pixel-matrix{font-size:11px;min-width:850px}.pixel-matrix td{font-size:11px;padding:7px 1px}}@media(max-width:1100px){.sidebar{width:190px;padding:25px 10px}main{margin-left:190px}.content{padding:15px 22px}.topbar{padding:0 22px}.stats{grid-template-columns:repeat(2,1fr)}.live-panels,.room-layout{grid-template-columns:1fr}.page-head{align-items:start}.brand{font-size:25px}h1{font-size:32px}}@media(max-width:650px){.sidebar{position:static;width:auto;padding:15px;display:block}.brand{font-size:22px}.brand-sub,.workspace,.nav-label,.sidebar-bottom{display:none}.sidebar nav{display:flex;flex-wrap:wrap}.sidebar nav a{padding:10px;font-size:13px}.sidebar nav a span{font-size:11px}main{margin-left:0}.topbar{height:45px}.content{padding:15px}h1{font-size:29px}.page-head{display:block}.page-head>.badge{margin-top:8px}.stats article{padding:15px}.stats .small-stat{font-size:19px}.stats strong{font-size:34px}footer{padding:15px;gap:15px}.filter label{flex:1}.floorplan{padding:15px}.panel{overflow-x:auto}.panel-head{padding:18px}.auth-card{padding:25px}}
.backlog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}.backlog-body{padding:0 15px 15px}.task{padding:17px;background:#ffffff50;border:1px solid #ffffff80;border-radius:18px;margin-bottom:12px}.task-head{display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#747965;gap:6px}.task h3{font-size:14px;line-height:1.5}.task p{font-size:11px;color:#686f5c;white-space:normal}.task form{display:flex;gap:6px;align-items:center}.task select{margin:0;font-size:11px;padding:9px;min-width:0}.task button{padding:9px;font-size:10px}.owner-forms{margin-top:24px;grid-template-columns:1fr 1fr}.check{display:flex;gap:10px;align-items:center}.check input{width:auto;margin:0}.section-title{margin:28px 0 16px}.report{margin:16px 0}.report-text{font-size:12px;line-height:1.9}textarea{font:inherit;width:100%;padding:12px;border:1px solid #ffffffb0;border-radius:13px;background:#ffffff55;color:var(--ink);resize:vertical;margin-top:8px}.report .panel-head{flex-wrap:wrap}@media(max-width:1200px){.backlog-grid{grid-template-columns:1fr}.owner-forms{grid-template-columns:1fr}}
/* Consistent section rhythm; isolated from sidebar navigation styles. */
.section-title{font-size:18px;line-height:1.4;margin:38px 0 18px;font-weight:500}.panel+.section-title{margin-top:40px}nav.pagination{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap;padding:18px 4px;margin:8px 0 28px;font-size:11px}nav.pagination a{display:inline-block;font-size:11px;padding:9px 12px;margin:0;border:1px solid #ffffff80;background:#ffffff40;border-radius:12px}nav.pagination span{color:#6b725f}.backlog-body nav.pagination{gap:6px;font-size:10px;padding:12px 0;margin:0}.backlog-body nav.pagination a{font-size:10px;padding:8px}.backlog-body .task:last-of-type{margin-bottom:0}
.sensor-state-card{display:flex;align-items:center;justify-content:space-between;gap:24px;border-radius:23px;border:1px solid #ffffff90;background:#ffffff45;padding:22px 24px;margin:24px 0}.sensor-state-card strong{font-size:19px;font-weight:500}.sensor-state-card p{margin:9px 0 0;font-size:12px;max-width:580px;color:#65705e}.sensor-indicator{display:inline-block;width:10px;height:10px;border-radius:50%;background:#939888;margin-right:11px}.sensor-state-card.online{background:#e4efbb9c;border-color:#bbcf83}.sensor-state-card.online .sensor-indicator{background:#598426}.sensor-state-card.offline{background:#ffd6c3b3;border-color:#ef9774}.sensor-state-card.offline .sensor-indicator{background:#c54c24}.sensor-state-card.offline strong{color:#9a391a}.heartbeat-meta{max-width:330px;flex-shrink:0}.heartbeat-meta span,.heartbeat-meta b,.heartbeat-meta small{display:block}.heartbeat-meta span{font-size:10px;color:#69725f}.heartbeat-meta b{font-size:12px;margin:6px 0;font-weight:500}.heartbeat-meta small{font-size:10px;line-height:1.6;color:#737b68}@media(max-width:850px){.sensor-state-card{display:block}.heartbeat-meta{margin-top:16px;max-width:none;flex-shrink:1}}
