:root{--ink:#1b3446;--muted:#687f8d;--blue:#1765aa;--sky:#e7f1f9;--line:#d8e3e9;--paper:#fff;--back:#f1f6f9;--green:#25806b;--amber:#a46525}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--back);font:15px/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif}header{background:#fff;border-bottom:1px solid var(--line);padding:20px max(24px,calc((100vw - 1360px)/2));display:flex;justify-content:space-between;align-items:center}.brand{display:flex;gap:12px;align-items:center;font-size:29px;color:var(--ink);text-decoration:none}.brand span{font-size:20px;font-weight:650}.brand small{display:block;font-size:11px;font-weight:400;color:var(--muted);letter-spacing:1px}main{max-width:1410px;padding:32px 25px;margin:auto}h1{font-size:38px;line-height:1.2;margin:9px 0 14px;font-weight:650;letter-spacing:-1px}h2{font-size:19px;margin:0 0 12px}h3{font-size:16px}p{margin:8px 0}.muted{color:var(--muted)}.small,small{font-size:12px}.eyebrow{letter-spacing:2.4px;color:var(--blue);font-size:11px;font-weight:700}.title-row,.section-title,.actions{display:flex;justify-content:space-between;align-items:center;gap:15px}.section-title{align-items:flex-start}.section-title h2{margin-bottom:0}.badge{padding:4px 9px;border-radius:5px;background:var(--sky);color:var(--blue);font-size:12px;white-space:nowrap}button,.upload{border:1px solid var(--line);border-radius:7px;background:white;padding:9px 15px;color:var(--ink);cursor:pointer;font:inherit;font-size:13px;white-space:nowrap}button:hover,.upload:hover{border-color:var(--blue);background:#f3f8fc}button:disabled{opacity:.5;cursor:wait}.primary{background:var(--blue);color:white;border-color:var(--blue)}.primary:hover{background:#12538e;color:white}input,select{border:1px solid var(--line);border-radius:6px;padding:10px;font:inherit;color:var(--ink);background:white;max-width:100%}input[type=checkbox]{accent-color:var(--blue)}input:focus,button:focus-visible,select:focus{outline:2px solid #76add5;outline-offset:2px}.network-strip{display:flex;gap:22px;margin:20px 0 26px;font-size:13px;flex-wrap:wrap}.network-strip b{font-family:ui-monospace,monospace}.network-strip span{padding-left:12px;border-left:3px solid var(--green)}.network-strip .down{border-color:var(--amber)}.main-grid{display:grid;grid-template-columns:minmax(0,2.25fr) minmax(280px,1fr);gap:22px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:24px}.map-panel{padding-bottom:14px}#floor-area{margin-top:18px;background-color:#f6fafc;background-image:radial-gradient(#cfdee8 1px,transparent 1px);background-size:18px 18px;min-height:330px;border-radius:7px;display:grid;place-items:center}#empty-floor{text-align:center;padding:20px;width:100%;color:var(--muted)}#empty-floor h3{color:var(--ink);font-size:23px;margin:8px}.house{font-size:64px;line-height:1.2;color:#8baabd}#network-map{display:flex;justify-content:center;gap:20px;margin:24px 0 0}#network-map div{background:#fff;border:1px solid var(--line);padding:10px 22px;border-radius:7px;font-family:ui-monospace,monospace;font-size:12px}.map-footer{display:flex;gap:15px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin-top:14px}.map-footer span:first-child{color:var(--green)}#placing{margin-left:auto}#floor-wrap{position:relative;width:100%;line-height:0}#floor-image{display:block;width:100%;height:auto;border-radius:7px}#pins{position:absolute;inset:0;pointer-events:none}.pin{position:absolute;transform:translate(-50%,-50%);border:2px solid white;border-radius:100%;width:27px;height:27px;padding:0;background:var(--green);color:white;pointer-events:auto;box-shadow:0 1px 7px #1234;line-height:22px;font-size:12px}.pin.off{background:#8395a1}.child-card{padding:13px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;cursor:pointer}.child-card strong{font-size:14px}.note{padding:14px;background:var(--sky);color:#476a83;font-size:12px;border-radius:7px;margin:20px 0}.metric-pair{display:flex;gap:30px;padding-top:8px}.metric-pair small,.metric-pair strong{display:block}.metric-pair strong{font-size:21px;margin-top:5px;color:var(--muted)}.inventory{margin-top:24px}.inventory .section-title input{width:300px}.filters{display:flex;gap:12px;align-items:center;margin:20px 0}.filters label{font-size:13px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:13px}th{font-weight:500;color:var(--muted);padding:10px 12px;background:#f6f9fb;white-space:nowrap}td{padding:15px 12px;border-bottom:1px solid #e7eef2;white-space:nowrap}td small{display:block;color:var(--muted);font-family:ui-monospace,monospace;font-size:11px}.device-link{padding:0;background:none;border:0;text-align:left;font-size:14px;font-weight:600;white-space:normal}.status{font-size:12px;color:var(--green)}.status.off{color:var(--muted)}.status.unknown{color:var(--amber)}.bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}.event,.mail-row{padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.event small,.mail-row small{display:block;color:var(--muted)}label{display:block}label input:not([type=checkbox]),label select{display:block;width:100%;margin:6px 0 16px}.actions{justify-content:flex-start;flex-wrap:wrap}.login{max-width:500px;margin:8vh auto;padding:42px;background:#fff;border:1px solid var(--line);border-radius:16px}.login h1{line-height:1.4}.login p{margin-bottom:24px}#login-form{margin-top:25px;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}#login-form input{margin-bottom:0}dialog{border:1px solid var(--line);border-radius:13px;padding:28px;width:min(560px,94vw);color:var(--ink)}dialog::backdrop{background:#17334566}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.check{margin:10px 0 20px}.history{display:flex;gap:2px;align-items:stretch;height:35px;overflow:hidden}.history span{min-width:2px;flex:1;background:#b7c8d4}.history span.yes{background:#4c9c89}.history span.unknown{background:#f1f5f8}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;padding:12px 24px;border-radius:9px;box-shadow:0 5px 30px #1233;display:none;max-width:90vw;z-index:10}footer{text-align:center;padding:20px;color:var(--muted);font-size:11px}[hidden]{display:none!important}@media(max-width:900px){.main-grid,.bottom-grid{grid-template-columns:1fr}.child-panel .metric-pair{display:none}.inventory .section-title{flex-wrap:wrap}}@media(max-width:560px){header{padding:14px 18px}main{padding:22px 12px}.panel{padding:18px}h1{font-size:31px}.filters{flex-wrap:wrap}.network-strip{gap:10px;font-size:11px}.login{padding:25px;margin:4vh 0}.section-title{gap:9px}.upload{font-size:11px;padding:8px}#network-map{gap:8px}#network-map div{padding:9px}.title-row button{font-size:11px}.map-footer{gap:8px}.inventory .section-title input{width:100%}.form-grid{grid-template-columns:1fr}.brand span{font-size:17px}}

.person-row{border-top:1px solid var(--line);padding:12px 0}.person-device{display:grid;gap:8px;margin:16px 0}.person-device .history{height:25px}.person-device small{font-size:11px}

#login-form{display:block}#passkey-login{width:100%}#login-message:empty,#passkey-message:empty{display:none}#login-message,#passkey-message{font-size:13px;color:var(--amber)}

.unplaced-section{margin-top:22px;border-top:1px solid var(--line);padding-top:16px}.map-device-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}.map-device{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:100%;padding:10px 12px;text-align:left;background:#f6fafc;border:1px solid var(--line);border-radius:7px;margin-bottom:6px}.map-device strong{font-size:13px}.map-device small{font-size:11px;color:var(--muted);overflow-wrap:anywhere}.map-device-group h4{font-size:12px;color:var(--muted);font-weight:500}.pin{min-width:27px;z-index:1}

/* Keep normalized room coordinates relative to the floor image only. */
#floor-wrap{background:#f5fafc;border:1px solid #cfdee8;border-radius:9px;overflow:hidden}#floor-surface{position:relative}#floor-wrap .unplaced-section{line-height:1.5;margin:0;padding:16px;border-top:2px dashed #b6cbd9;background:#edf5fa}#floor-wrap .unplaced-section h3{margin:0}#floor-wrap .map-device-grid{grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:12px}#floor-wrap .diagram-device{border-radius:18px;padding:9px 12px;background:white;white-space:normal;min-height:95px;position:relative;border-color:#adc4d4;box-shadow:0 2px 4px #1733450a}#floor-wrap .diagram-device::before{content:'';position:absolute;left:50%;top:-10px;height:9px;border-left:1px solid #adc4d4}#floor-wrap .map-device strong{overflow-wrap:anywhere}#floor-wrap .pin{width:auto;max-width:45%;height:auto;min-height:27px;border-radius:8px;padding:4px 8px;line-height:1.35;white-space:normal;font-size:12px}#map-placed-list{display:none}

#map-scroll{overflow:auto;max-height:1050px}#map-layout{position:relative;width:1300px;background:#f6fafc}#floor-surface{width:900px}#map-lines{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:visible}#map-lines path{fill:none;stroke:#92afc1;stroke-width:1.5;stroke-dasharray:4 4}#map-callouts{position:absolute;left:930px;top:0;width:350px;z-index:2}.room-callout{position:absolute;width:350px;border:1px solid #b8cedb;border-radius:8px;background:#fff;overflow:hidden;line-height:1.4}.room-callout h3{font-size:13px;padding:10px 12px;margin:0;background:#e8f1f6}.map-equipment{display:flex;width:100%;align-items:center;gap:8px;padding:5px 10px;height:49px;border:0;border-top:1px solid #e8eef2;border-radius:0;text-align:left;white-space:normal}.equipment-icon{font-size:22px;width:28px;text-align:center}.equipment-text{flex:1;min-width:0}.equipment-text strong{font-size:12px;display:block;overflow-wrap:anywhere}.equipment-text small{font-size:10px;color:#6d8090}.equipment-state{font-size:10px;white-space:nowrap}.map-equipment.online{color:#176b54;background:#f3fbf7}.map-equipment.offline{color:#647581;background:#f3f5f7}.map-equipment.unknown{color:#986322;background:#fffbef}#floor-wrap .room-anchor{font-size:10px;background:#fff;color:#36566d;border:1px solid #8eacbf;padding:2px 4px;min-height:18px;line-height:1.1}

/* Responsive room diagram: labels and devices share the same room boundary. */
#map-scroll{overflow:visible;max-height:none}#map-layout{width:100%;min-height:0!important;padding:14px}#map-lines{display:none}#map-callouts{position:static;width:100%}#original-floor{line-height:1.5;margin-bottom:14px}#original-floor summary{cursor:pointer;font-size:12px;color:#607c90}#floor-surface{width:100%}.floor-rooms{line-height:1.4;margin-bottom:24px}.floor-rooms>h3{font-size:18px;margin:10px 0}.room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.room-box{border:2px solid #9aafbd;background:white;min-width:0;border-radius:4px;overflow:hidden}.room-box h4{font-size:14px;margin:0;padding:10px 12px;background:#e8f0f6;color:#36566d;display:flex;flex-wrap:wrap;gap:4px;justify-content:space-between}.room-box h4 small{font-weight:400;color:#6b8190}.room-equipment{padding:6px}.room-empty{font-size:12px;color:#8a9ba7;margin:12px}.room-box .map-equipment{border:1px solid #dce7ed;border-radius:5px;margin:5px 0;height:auto;min-height:52px;flex-wrap:wrap}.room-box .equipment-state{margin-left:auto}.room-box .equipment-text{min-width:90px}.room-box .equipment-text strong{font-size:12px}.floor-rooms:last-child .room-box{grid-column:1/-1}@media(max-width:600px){.room-grid{grid-template-columns:minmax(0,1fr)}#map-layout{padding:10px}.room-box .equipment-text strong{font-size:13px}.room-box .map-equipment{flex-wrap:nowrap}.room-box h4{font-size:15px}}

/* Original floorplan with compact status counts and on-demand room detail. */
#map-layout{padding:0;width:100%;min-height:0!important}#map-callouts{display:none}#floor-surface{width:100%}#floor-wrap .room-count{font-size:11px;min-height:20px;min-width:32px;padding:2px 5px;white-space:nowrap;background:#fff;border:1px solid #a8c0cf;color:#687f8d;line-height:1.3;box-shadow:0 1px 4px #2342}.count-online{color:#177454;font-weight:700}.count-offline{color:#6b7782;font-weight:700}.count-unknown{color:#a46525;font-size:10px}#room-devices-list .map-equipment{height:auto;min-height:58px;flex-wrap:wrap}#room-devices-list .equipment-text{min-width:120px}#room-devices-list .equipment-text small{overflow-wrap:anywhere}#room-devices-list .equipment-state{margin-left:auto}#room-devices-dialog{max-height:85vh;overflow:auto}

.network-badge{display:inline-block;font-size:10px;line-height:1.5;padding:2px 6px;border-radius:4px;margin:3px 0;border:1px solid}.network-badge.telecom{color:#1759a0;background:#ecf4ff;border-color:#b7d1ef}.network-badge.huawei{color:#7550a4;background:#f6efff;border-color:#d8c5ed}#network-inventory-summary{margin-bottom:18px}

.printer-3d-icon{display:inline-block;position:relative;width:28px;height:28px;flex-shrink:0;border:2px solid currentColor;border-bottom-width:4px;border-radius:2px;background:transparent}.printer-3d-icon:before{content:'';position:absolute;top:2px;left:10px;width:4px;height:7px;background:currentColor;clip-path:polygon(0 0,100% 0,100% 65%,50% 100%,0 65%)}.printer-3d-icon:after{content:'';position:absolute;bottom:2px;left:6px;width:10px;height:10px;border:1.5px solid currentColor;transform:skewY(-12deg);background:transparent}

/* Task-based navigation: a quiet home overview, with maintenance kept in settings. */
:root{--ink:#20394b;--muted:#647b88;--blue:#246b80;--back:#f4f7f8;--line:#dce5e9;--sky:#eef5f7}
main{max-width:1120px}header{padding:16px max(24px,calc((100vw - 1070px)/2))}.brand small{letter-spacing:0}
.page-nav{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;border-bottom:1px solid var(--line);margin-bottom:32px;padding-bottom:10px}.page-nav button{border:0;background:transparent;font-size:15px;padding:12px 6px;color:var(--muted)}.page-nav [aria-current=page]{background:#e5f0f3;color:#20596b;font-weight:650;border-radius:8px}
.title-row{margin-bottom:24px}h1{font-size:30px;letter-spacing:0}.title-row p{font-size:14px}.panel{padding:22px;border-radius:10px}.page-view>.panel{margin-bottom:20px}.online-heading{display:flex;align-items:center;gap:20px;margin:14px 0 25px}.online-heading>strong{font:600 64px/1 ui-rounded,"SF Pro Rounded",-apple-system,sans-serif;color:var(--green)}.online-heading h2{margin:0;font-size:18px}.online-heading p{font-size:13px;margin:4px 0}.live-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:28px;margin-top:18px}.live-device{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:15px 0;background:transparent;display:flex;align-items:center;gap:12px;text-align:left;min-width:0}.live-name{flex:1;min-width:0}.live-name strong{font-size:14px;display:block;white-space:normal;overflow-wrap:anywhere}.live-name small{display:block;color:var(--muted);white-space:normal;font-weight:400}.equipment-icon{flex-shrink:0}.source-label{color:var(--muted);font-size:10px}.live-device .status{white-space:nowrap;font-size:11px}
.view-disclosure,.settings-group{border:1px solid var(--line);background:#fff;border-radius:10px;margin:16px 0}.view-disclosure>summary,.settings-group>summary{padding:18px 22px;cursor:pointer;font-weight:600;font-size:14px}.view-disclosure>.panel,.settings-group>.panel{border:0;margin:0}.settings-group>.upload{display:inline-block;margin:0 22px 22px}.settings-group .inventory{margin-top:0}.settings-group .filters{flex-wrap:wrap}.view-disclosure .map-panel{padding-top:5px}.view-disclosure .map-panel h2{font-size:16px}.reading-note{font-size:13px;color:var(--muted);margin:0 0 24px}.person-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.person-card{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.person-heading{padding:20px 22px;display:flex;align-items:center;justify-content:space-between;gap:10px}.person-heading h2{margin:0;font-size:22px}.person-count{font-size:12px;color:var(--muted)}details.person-card>summary{cursor:pointer}details.person-card>summary:after{content:'＋';color:var(--blue)}details.person-card[open]>summary:after{content:'−'}.person-content{padding:0 22px 20px}.person-metric{display:flex;flex-direction:column;padding:10px 0 18px;border-bottom:1px solid var(--line)}.person-metric strong{font-size:26px;font-weight:600}.person-metric small{color:var(--muted)}.person-content h3{font-size:14px;margin:22px 0 12px}.person-content .history{height:24px;gap:1px}.person-content .history span{min-width:0}.service-row{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13px;margin:12px 0}.service-row small{color:var(--muted)}.service-row i{height:4px;background:#7aa9ae;border-radius:2px;display:block}.service-row:after{content:'';flex-basis:100%;height:0}.person-devices{margin:20px 0;border-top:1px solid var(--line);padding-top:15px}.person-devices summary{cursor:pointer;font-size:13px}.person-device-link{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:12px 0;border:0;border-bottom:1px solid var(--line);border-radius:0;text-align:left;white-space:normal}.person-device-link .status{flex-shrink:0}.reminder-note{font-size:12px;color:var(--green)}.notice{padding:12px 16px;background:#fff4df;color:#815c25;border-radius:8px;font-size:13px}summary:focus-visible{outline:2px solid var(--blue);outline-offset:3px}#device-view-content{margin:18px 0}#page-online .section-title input{width:240px;font-size:13px}#page-settings .inventory input{max-width:100%}
@media(max-width:650px){main{padding:18px 14px}.page-nav{gap:2px;margin-bottom:24px}.page-nav button{font-size:13px;padding:12px 2px}.person-grid,.live-list{grid-template-columns:minmax(0,1fr)}.panel{padding:18px}.title-row{gap:8px}h1{font-size:26px}.title-row p{font-size:12px}.online-heading>strong{font-size:54px}#page-online .section-title{flex-wrap:wrap}#page-online .section-title input{width:100%}.person-content,.person-heading{padding-left:18px;padding-right:18px}.live-device{gap:9px}.source-label{font-size:10px}.brand small{font-size:10px}header{padding:14px}header>div .badge{display:none}.settings-group .table-wrap{max-width:100%}#floor-wrap .room-count{font-size:9px;min-width:24px;padding:1px 2px}.view-disclosure>.map-panel{padding:8px}.view-disclosure>summary,.settings-group>summary{padding:16px}.map-panel .section-title p{font-size:11px}}

.person-count{text-align:right;max-width:145px}.service-row i{flex-basis:auto;margin-right:auto}.service-bars{min-width:0}

/* Floorplan first; person-first activity views. */
.online-heading{gap:12px;margin:0 0 18px}.online-heading>strong{font-size:30px}.online-heading>div{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}.online-heading h2{font-size:15px}.floor-primary{margin-bottom:24px}.floor-primary #floor-area{background:#f6fafc}.floor-primary #floor-wrap{max-width:820px;margin:auto}.floor-primary .note{margin-bottom:0}.device-browser .device-filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) auto;align-items:end;gap:12px;margin-top:20px}.device-filters label{font-size:12px;color:var(--muted)}.device-filters label select{margin:5px 0 0;font-size:13px;padding:9px;width:100%;text-overflow:ellipsis}.device-filters button{height:40px}.person-selector{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 20px}.person-selector button{padding:10px 26px;font-size:15px}.person-selector [aria-pressed=true]{background:var(--blue);border-color:var(--blue);color:#fff;font-weight:600}.person-focus{background:#fff;border:1px solid var(--line);border-radius:12px;padding:26px}.person-focus-heading{display:flex;justify-content:space-between;gap:16px;align-items:baseline;margin-bottom:18px}.person-focus-heading h2{font-size:26px;margin:0}.person-current{padding:20px 22px;background:#edf5f5;border-left:4px solid #5a968e;border-radius:6px}.person-current>small{color:#487c77}.person-current h3{font-size:22px;margin:4px 0 10px}.person-current p{font-size:13px;overflow-wrap:anywhere}.person-focus-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:10px}.person-section{padding:18px 0}.person-section h3{margin:0 0 12px;font-size:16px}.person-section .activity-content{font-size:16px;font-weight:550}.person-section summary{cursor:pointer;font-size:13px;color:var(--blue);margin-top:18px}.person-change{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:13px}.person-change strong{font-weight:500;overflow-wrap:anywhere}.person-change small{grid-column:2}.person-history{border-top:1px solid var(--line)}.person-history .history{height:26px;gap:1px}.person-history .history span{min-width:0}.person-focus .person-devices{margin:0}.service-row{display:grid;grid-template-columns:1fr auto;gap:5px}.service-row i{grid-column:1/-1}.service-row:after{display:none}
@media(max-width:700px){.device-browser .device-filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.device-filters button{align-self:end}.person-focus-grid{grid-template-columns:minmax(0,1fr);gap:0}.person-focus{padding:18px}.person-current{padding:16px}.person-current h3{font-size:19px}.person-selector{gap:8px}.person-selector button{padding:9px 18px}.person-focus-heading h2{font-size:24px}.online-heading>strong{font-size:28px}.online-heading>div{gap:5px 12px}.floor-primary>.panel{padding:12px}.floor-primary .section-title p{font-size:12px}}

.monitor-policy{margin:0 0 22px;padding:18px 22px}.monitor-policy h2{font-size:16px}.monitor-policy p{font-size:13px}.monitor-policy summary{cursor:pointer;font-weight:600;color:var(--blue)}.person-timeline{margin-top:26px}.person-timeline>h3{font-size:19px}.timeline-controls{display:flex;gap:18px;max-width:550px}.timeline-controls label{flex:1;font-size:12px;color:var(--muted);min-width:0}.timeline-controls input,.timeline-controls select{font-size:14px}.timeline-event{display:grid;grid-template-columns:78px 1fr;gap:18px;padding:0 0 20px;position:relative}.timeline-event>time{font-size:12px;color:var(--muted);padding-top:2px;font-variant-numeric:tabular-nums}.timeline-event>div{border-left:2px solid #dce7e9;padding-left:20px;position:relative}.timeline-event>div:before{content:'';position:absolute;left:-5px;top:6px;width:8px;height:8px;background:#659c92;border-radius:50%}.timeline-event.not_seen>div:before{background:#99a9b0}.timeline-event.service>div:before{background:#6387b1}.timeline-event.discovered>div:before{background:#b28b46}.timeline-event strong{font-size:14px;font-weight:550}.timeline-event p{margin:3px 0;overflow-wrap:anywhere}.person-overview{border-top:1px solid var(--line);padding:18px 0;margin-top:22px}.person-overview>summary{font-size:14px;cursor:pointer;color:var(--blue)}.person-overview .person-focus-grid{grid-template-columns:1fr}.timeline-more{margin-bottom:16px}
@media(max-width:600px){.timeline-controls{gap:10px}.timeline-event{grid-template-columns:65px 1fr;gap:10px}.timeline-event>div{padding-left:14px}.monitor-policy{padding:16px}.timeline-controls input{min-width:0}}

/* Keep room details beside the original floorplan without a modal. */
.floor-detail-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);gap:24px;align-items:start}
.floor-detail-layout>#floor-area{min-width:0}.floor-primary .floor-detail-layout #floor-wrap{max-width:none}
#room-devices-panel{min-width:0;padding:20px;background:#fff;border:1px solid var(--line);border-radius:10px;position:sticky;top:20px}
#room-devices-title{margin:0 0 12px;font-size:18px;overflow-wrap:anywhere}
#room-devices-list .map-equipment{padding:12px 10px}#room-devices-list .equipment-text strong{font-size:13px}
#floor-wrap .room-count[aria-pressed="true"]{outline:2px solid #177454;outline-offset:2px;background:#edf7f2}
@media(max-width:700px){.floor-detail-layout{grid-template-columns:minmax(0,1fr);gap:16px}#room-devices-panel{position:static;padding:16px}}

/* Child event timeline: horizontal calendar axis; no inferred usage duration. */
.child-horizontal{min-width:0}.child-timeline-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.child-timeline-heading h3{margin:0;font-size:19px}.timeline-periods{display:inline-flex;padding:3px;background:var(--sky);border-radius:10px;gap:3px}.timeline-periods button{padding:6px 17px;border:0;border-radius:7px;background:transparent;color:var(--muted);font-size:14px;min-height:38px}.timeline-periods button[aria-pressed=true]{background:var(--paper);color:var(--blue);box-shadow:0 1px 4px #1b344618;font-weight:650}.child-horizontal .timeline-controls{margin-top:18px}.timeline-range-caption{font-size:14px;font-weight:600;margin:18px 0 12px;font-variant-numeric:tabular-nums}.timeline-legend{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:12px;color:var(--muted);margin-bottom:16px}.timeline-legend span:before{content:'';display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px;background:var(--event-color,#8b6ca6)}[data-kind=online]{--event-color:#25806b}[data-kind=not_seen]{--event-color:#91a0ac}[data-kind=service]{--event-color:#367cb9}[data-kind=discovered]{--event-color:#b18336}[data-kind=monitoring]{--event-color:#8b6ca6}.timeline-scroll{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;border:1px solid var(--line);border-radius:10px;background:#f9fcfe;scrollbar-color:#b5c8d5 transparent}.timeline-horizontal-grid{display:grid;grid-template-columns:repeat(var(--timeline-columns),minmax(50px,1fr));min-width:calc(var(--timeline-columns) * 50px);padding:14px 12px 8px}.timeline-bucket{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;min-width:0;margin:0;border:0;border-radius:6px;padding:5px 3px;background:transparent;color:var(--ink);box-shadow:none}.timeline-bucket:hover:not(:disabled){background:var(--sky)}.timeline-bucket[aria-pressed=true]{background:#dcecf8;box-shadow:inset 0 0 0 2px var(--blue)}.timeline-bucket:disabled{opacity:.45;cursor:default}.timeline-bucket-count{height:20px;font:12px/20px ui-monospace,SFMono-Regular,monospace;color:var(--muted)}.timeline-bar-well{height:78px;width:100%;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid #cadbe5}.timeline-bar-stack{width:20px;max-width:70%;display:flex;flex-direction:column-reverse;overflow:hidden;border-radius:3px 3px 0 0;min-height:0}.timeline-bar-part{display:block;min-height:1px;background:var(--event-color,#8b6ca6);width:100%}.timeline-tick{font-size:11px;white-space:nowrap;font-variant-numeric:tabular-nums}.child-timeline-details{margin-top:20px;border-top:1px solid var(--line)}.timeline-detail-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0}.timeline-detail-heading h4{font-size:14px;margin:0}.timeline-detail-heading button{font-size:12px;padding:5px 10px}.child-timeline-event{display:grid;grid-template-columns:118px 1fr;gap:16px;padding:10px 0;border-bottom:1px solid #edf2f5}.child-timeline-event time{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.child-timeline-event strong{font-size:13px;font-weight:550}.child-timeline-event strong:before{content:'';display:inline-block;width:7px;height:7px;background:var(--event-color,#91a0ac);border-radius:50%;margin-right:7px}.child-timeline-event p{margin:2px 0;overflow-wrap:anywhere}.timeline-empty{padding:14px 0;color:var(--muted);font-size:13px}.timeline-scroll:focus-visible,.timeline-periods button:focus-visible,.timeline-bucket:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
@media(max-width:600px){.child-timeline-heading{gap:12px}.timeline-periods{width:100%}.timeline-periods button{flex:1}.child-horizontal .timeline-controls{max-width:100%}.child-timeline-event{grid-template-columns:100px 1fr;gap:10px}.timeline-detail-heading{align-items:flex-start}.timeline-horizontal-grid{padding-left:8px;padding-right:8px}}

.mobile-pending-area{padding:14px;border-top:1px dashed #b8cedb}.mobile-pending-area h3{font-size:14px;margin:0 0 8px}#map-mobile-pending{display:flex;flex-wrap:wrap;gap:6px}.mobile-pending{font-size:12px;white-space:normal;text-align:left;padding:6px 8px}

.mobile-pending-area{line-height:1.5}.mobile-pending-area .mobile-pending{line-height:1.5}

.timeline-event.node_change>div::before,.timeline-bar-part[data-kind="node_change"]{background:#8a78ac}.timeline-legend [data-kind="node_change"]{color:#725b98}
