:root{font-family:Inter,Pretendard,"Noto Sans KR",sans-serif;background:#0b1220;color:#eaf1f8}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 55% -10%,#233d63,#0b1220 57%);min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}.shell{max-width:1800px;margin:auto;padding:0 24px 24px}header{height:68px;border-bottom:1px solid #26384d;display:flex;align-items:center;gap:20px}.brand{color:white;text-decoration:none;font-size:16px}.realtime{font-size:11px;color:#9bb0c6}.realtime:first-letter{color:#49df9c}nav{margin-left:auto;display:flex;gap:4px}nav a{color:#a8b8c9;text-decoration:none;padding:8px 10px;font-size:12px;border-radius:7px}nav a:first-child{background:#ffffff12;color:white}.connection{font-size:11px;color:#98afc4;border:1px solid #30455d;border-radius:16px;padding:7px 10px}.connection.connected{color:#75e4b1}.summary{display:flex;justify-content:space-between;align-items:end;gap:24px;padding:27px 0 21px}.summary small,.scene-top small,.panel-title small,.left-rail>p{color:#76bbff;letter-spacing:1px;font-size:10px}.summary h1{font-size:27px;letter-spacing:-1px;margin:7px 0}.summary p{font-size:13px;color:#93a6bb;margin:0}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.metrics div{min-width:93px;padding:10px 13px;border:1px solid #2d4056;background:#132033cc;border-radius:10px;font-size:10px;color:#91a6ba}.metrics strong{display:block;color:white;font-size:23px;margin-top:4px}.workspace{display:grid;grid-template-columns:172px minmax(500px,1fr) 350px;gap:14px;min-height:690px}.left-rail,.scene-card,.right-panel{border:1px solid #2b3e53;border-radius:15px;background:#111d2ddd;box-shadow:0 15px 45px #0003}.left-rail{padding:17px 12px;display:flex;flex-direction:column}.left-rail>p{margin:0 0 11px}.map-switch{display:grid;grid-template-columns:35px 1fr 35px;align-items:center;text-align:center;border:1px solid #36516c;border-radius:11px;background:#17263a}.map-switch b{font-size:21px;color:#76c4ff;display:block}.map-switch span{font-size:10px;color:#cedbe7}.arrow{height:55px;background:#233b57;color:#cae5ff;font-size:31px;line-height:1;border-radius:8px}.arrow:hover{background:#2e5278}.rail-help{font-size:10px;line-height:1.55;color:#8297ad;margin:12px 2px!important;letter-spacing:0!important}.floor-list{display:flex;flex-direction:column;gap:5px}.floor-list button{display:flex;justify-content:space-between;padding:10px;border:1px solid transparent;background:transparent;color:#bfd0df;border-radius:8px;text-align:left}.floor-list button span{font-size:10px;color:#8197ac}.floor-list button.active{border-color:#438fd2;background:#2086df20;color:#8ed1ff}.secondary{border:1px solid #3c536d;background:#17263a;color:#c3d3e1;border-radius:7px;padding:7px 9px;font-size:11px}.left-rail .secondary{margin-top:auto}.scene-card{position:relative;overflow:hidden;min-height:690px}.scene-top{position:absolute;z-index:2;top:0;left:0;right:0;height:71px;padding:15px 19px;display:flex;justify-content:space-between;align-items:center;pointer-events:none;background:linear-gradient(#101b2bd9,transparent)}.scene-top h2,.panel-title h2{font-size:16px;margin:3px 0 0}.scene-top span{font-size:11px;color:#a9bed0}#viewport{position:absolute;inset:0;background:linear-gradient(135deg,#15293f,#0e1826)}#viewport canvas{width:100%;height:100%;display:block}.model-status{position:absolute;z-index:2;left:16px;bottom:43px;margin:0;padding:8px 10px;border-radius:8px;background:#0f1b2add;color:#afc1d2;font-size:11px}.legend{position:absolute;bottom:0;left:0;right:0;height:34px;display:flex;gap:13px;align-items:center;padding:0 16px;background:#0e1725e8;color:#9db0c1;font-size:10px}.legend span:first-child{color:#5dbfff}.legend span:nth-child(2){color:#ffc368}.legend span:nth-child(3){color:#9aa8b5}.legend span:last-child{margin-left:auto;color:#708398}.right-panel{display:grid;grid-template-rows:minmax(385px,1fr) 265px;overflow:hidden}.terminal-panel{padding:16px;min-height:0;display:flex;flex-direction:column}.panel-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:11px}.panel-title>b{background:#2388e533;color:#85caff;border-radius:999px;padding:3px 8px;font-size:11px}#device-search{width:100%;background:#0c1521;border:1px solid #354a61;color:white;border-radius:7px;padding:9px;font-size:12px}.filters{display:flex;gap:5px;margin:9px 0}.filter{border:0;background:transparent;color:#90a4b9;font-size:10px;padding:5px 8px;border-radius:6px}.filter.active{background:#29425f;color:#c5e5ff}#empty-state{text-align:center;color:#8fa3b8;font-size:12px;padding:20px 0}#device-list{padding:0;margin:0;list-style:none;overflow:auto}.device-card{border-top:1px solid #283b50;padding:11px 0}.device-card.selected{background:#1e334b;margin:0 -7px;padding:11px 7px;border-radius:8px}.device-title{display:flex;justify-content:space-between;gap:7px}.device-name{border:0;background:none;color:white;padding:0;text-align:left;font-size:13px;font-weight:700}.status-pill{font-size:9px;padding:3px 6px;border-radius:5px;background:#1d4163;color:#7ecbff;white-space:nowrap}.status-pill.warning{background:#563e1e;color:#ffc66b}.status-pill.offline{background:#37424f;color:#bfccd6}.device-floor,.device-coordinates,.device-time{color:#8fa5b9;font-size:10px;line-height:1.55;margin-top:5px}.device-actions{display:flex;gap:5px;margin-top:8px}.device-actions button{border:0;background:#273b52;color:#c4d9eb;border-radius:5px;padding:5px 7px;font-size:10px}.naver-panel{position:relative;border-top:1px solid #2b3e53;padding:13px}.naver-panel .panel-title{margin-bottom:7px}.naver-panel #naver-map{height:192px;width:100%;border-radius:9px;overflow:hidden;background:#1d3044}.map-message{position:absolute;z-index:2;left:21px;right:21px;bottom:20px;margin:0;padding:7px;border-radius:6px;background:#101927e8;color:#b1c1d0;font-size:10px}.map-message[hidden]{display:none}.marker-label{position:absolute;transform:translate(-50%,-100%);pointer-events:none;white-space:nowrap;padding:5px 8px;background:#237fd2;color:white;border:1px solid #8ad1ff;border-radius:7px;box-shadow:0 3px 10px #0006;font-size:10px;font-weight:700}.marker-label.warning{background:#a96a11;border-color:#ffcf75}.marker-label.offline{background:#627080;border-color:#c2ccd6}.naver-terminal-marker{display:flex;flex-direction:column;align-items:center;width:150px}.naver-terminal-marker img{width:36px;height:36px}.naver-terminal-marker span{max-width:145px;padding:2px 5px;border-radius:5px;background:#237fd2;color:white;font-size:10px;text-align:center}.naver-terminal-marker.warning span{background:#a96a11}.naver-terminal-marker.offline span{background:#627080}dialog{border:1px solid #425a73;border-radius:13px;background:#142236;color:#e9f1f8;padding:20px;width:min(410px,calc(100vw - 30px))}dialog::backdrop{background:#000a}.dialog-title{display:flex;justify-content:space-between}.dialog-title h2{margin:0}.dialog-title button{background:#263b52;color:white;border:0;border-radius:6px;font-size:20px}dialog label{display:block;font-size:12px;margin:15px 0 6px}dialog input,dialog select{width:100%;margin-top:6px;background:#0e1725;color:white;border:1px solid #3b526a;border-radius:6px;padding:9px}#edit-id,#edit-error{font-size:11px;color:#96acc1;overflow-wrap:anywhere}.dialog-actions{display:flex;justify-content:space-between;margin-top:19px}.dialog-actions button{border:0;border-radius:7px;padding:9px 13px;background:#2688df;color:white}.dialog-actions #remove-device{background:#50303a;color:#ffb7bc}#toast{position:fixed;z-index:10;bottom:23px;left:50%;transform:translateX(-50%);padding:10px 14px;border-radius:8px;background:white;color:#142236;font-size:12px}@media(max-width:1100px){.workspace{grid-template-columns:155px 1fr}.right-panel{grid-column:1/-1;grid-template-columns:1fr 1fr;grid-template-rows:420px}.summary{align-items:start;flex-direction:column}.metrics{width:100%}}@media(max-width:680px){.shell{padding:0 11px 16px}header{height:auto;flex-wrap:wrap;padding:13px 0}.realtime,.connection{display:none}nav{margin-left:0;width:100%}.summary{padding:21px 0 16px}.summary h1{font-size:22px}.metrics{grid-template-columns:repeat(2,1fr)}.workspace{grid-template-columns:1fr}.left-rail{display:block}.left-rail>p,.rail-help{display:none}.map-switch{margin-bottom:8px}.floor-list{display:grid;grid-template-columns:repeat(4,1fr)}.floor-list button{display:block;text-align:center}.left-rail .secondary{display:none}.scene-card{min-height:520px}.right-panel{grid-column:auto;grid-template-columns:1fr;grid-template-rows:430px 260px}.legend span:last-child{display:none}}
 .scene-floor-switch{position:absolute;z-index:4;top:84px;left:18px;display:grid;grid-template-columns:37px minmax(75px,auto) 37px;align-items:center;text-align:center;border:1px solid #52728e;border-radius:11px;background:#0e1b2be8;box-shadow:0 8px 22px #0005;overflow:hidden}.scene-floor-switch button{height:43px;border:0;background:#233c58;color:#d4ebff;font-size:27px;line-height:1}.scene-floor-switch button:hover{background:#31577f}.scene-floor-switch div{padding:0 10px}.scene-floor-switch b{display:block;color:#79c6ff;font-size:15px}.scene-floor-switch span{display:block;color:#d1deeb;font-size:10px;margin-top:1px}
 .naver-map-open-area{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in}.naver-map-open-area #naver-map{pointer-events:none}.map-dialog{width:min(1120px,calc(100vw - 32px));height:min(82vh,780px);border:1px solid #425a73;border-radius:15px;background:#111d2d;color:#eaf1f8;padding:0;overflow:hidden;box-shadow:0 26px 90px #000a}.map-dialog::backdrop{background:#050b14bb}.map-dialog-header{height:66px;padding:13px 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #2d4259}.map-dialog-header small{color:#76bbff;letter-spacing:1px;font-size:10px}.map-dialog-header h2{font-size:18px;margin:3px 0 0}.map-dialog-header button{width:36px;height:36px;border:0;border-radius:8px;background:#263c55;color:#eaf1f8;font-size:25px;line-height:1}.map-dialog #expanded-naver-map{width:100%;height:calc(100% - 66px);background:#1d3044}
