.pd-page{--pd-bg-primary:var(--rvx-surface,#131313);--pd-bg-secondary:var(--rvx-surface-low,#1c1b1b);--pd-bg-tertiary:var(--rvx-surface-high,#2a2a2a);--pd-bg-glass:color-mix(in srgb, var(--rvx-surface-low,#1c1b1b) 85%, transparent);--pd-border:var(--ut-component-border-color,#e5e2e11a);--pd-border-hover:var(--ut-component-inner-border-color,#e5e2e133);--pd-text-primary:var(--rvx-on-surface,#e5e2e1);--pd-text-secondary:var(--rvx-on-surface-muted,#9e9c9b);--pd-text-muted:var(--ut-component-text-muted-color,#6e6c6b);--pd-safe:var(--ut-palette-success,#10b981);--pd-safe-bg:var(--ut-palette-success-shade,#10b9811f);--pd-warning:var(--ut-palette-warning,#f59e0b);--pd-warning-bg:var(--ut-palette-warning-shade,#f59e0b1f);--pd-danger:var(--ut-palette-danger,#ef4444);--pd-danger-bg:var(--ut-palette-danger-shade,#ef44441f);--pd-accent:var(--rvx-primary,#e74e3b);--pd-accent-dim:var(--ut-palette-primary-alt,#e74e3b1f);--pd-radius:var(--rvx-radius-max,8px);--pd-radius-sm:var(--rvx-radius-sm,6px);--pd-radius-xs:var(--rvx-radius,4px);--pd-shadow:var(--ut-shadow-md,0 4px 16px #0000004d);--pd-shadow-sm:var(--ut-shadow-sm,0 2px 8px #0003);background:var(--pd-bg-primary);border-radius:var(--pd-radius);width:100%;height:calc(100vh - 50px);min-height:600px;font-size:16px;font-family:var(--rvx-font,"Pretendard", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);color:var(--pd-text-primary);box-sizing:border-box;border:1px solid var(--pd-border);flex-direction:column;display:flex;position:relative;overflow:hidden}.pd-page *,.pd-page :before,.pd-page :after{box-sizing:border-box}.pd-page .pd-header{background:var(--pd-bg-primary);border-bottom:1px solid var(--pd-border);z-index:50;flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.pd-page .pd-header-left{align-items:center;gap:10px;display:flex}.pd-page .pd-header-title{color:var(--pd-text-primary);align-items:center;gap:6px;font-size:1.1rem;font-weight:700;display:flex}.pd-page .pd-header-title i{color:var(--pd-accent);font-size:1.1rem}.pd-page .pd-live-badge{background:var(--pd-danger-bg);border:1px solid color-mix(in srgb, var(--pd-danger) 20%, transparent);text-transform:uppercase;letter-spacing:.04em;color:var(--pd-danger);border-radius:999px;align-items:center;gap:5px;padding:3px 8px;font-size:.85rem;font-weight:700;display:inline-flex}.pd-page .pd-live-dot{background:var(--pd-danger);border-radius:50%;width:6px;height:6px;animation:1.5s ease-in-out infinite pd-pulse}@keyframes pd-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.pd-page .pd-header-right{align-items:center;gap:8px;display:flex}.pd-page .pd-floor-select-wrap{align-items:center;gap:6px;display:flex}.pd-page .pd-floor-select-icon{color:var(--pd-text-muted);flex-shrink:0;font-size:1rem}.pd-page .pd-floor-select{appearance:none;color:var(--pd-text-primary);background:var(--pd-bg-tertiary);border:1px solid var(--pd-border);border-radius:var(--pd-radius-xs);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%239E9C9B' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;min-width:120px;max-width:220px;padding:5px 28px 5px 10px;font-family:inherit;font-size:.85rem;font-weight:600;transition:border-color .2s,box-shadow .2s,background-color .15s;overflow:hidden}.pd-page .pd-floor-select:hover{background-color:color-mix(in srgb, var(--pd-bg-tertiary) 80%, transparent);border-color:var(--pd-border-hover)}.pd-page .pd-floor-select:focus{border-color:var(--pd-accent);box-shadow:0 0 0 2px var(--pd-accent-dim);outline:none}.pd-page .pd-toggle-log-btn,.pd-page .pd-toggle-btn{border:1px solid var(--pd-border);border-radius:var(--pd-radius-xs);background:var(--pd-bg-primary);color:var(--pd-text-secondary);cursor:pointer;align-items:center;gap:5px;padding:5px 12px;font-size:.9rem;font-weight:600;transition:all .2s;display:flex}.pd-page .pd-toggle-log-btn:hover,.pd-page .pd-toggle-btn:hover{color:var(--pd-text-primary);border-color:var(--pd-accent);background:var(--pd-accent-dim)}.pd-page .pd-toggle-log-btn.active,.pd-page .pd-toggle-btn.active{color:var(--pd-accent);border-color:var(--pd-accent);background:var(--pd-accent-dim)}.pd-page .pd-panel-header,.pd-page .pd-log-header{border-bottom:1px solid var(--pd-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.pd-page .pd-panel-title,.pd-page .pd-log-title{color:var(--pd-text-primary);align-items:center;gap:6px;font-size:.9rem;font-weight:700;display:flex}.pd-page .pd-panel-title i,.pd-page .pd-log-title i{color:var(--pd-accent)}.pd-page .pd-panel-count,.pd-page .pd-log-count{background:var(--pd-accent-dim);color:var(--pd-accent);border-radius:999px;padding:1px 6px;font-size:.75rem;font-weight:700}.pd-page .pd-panel-close,.pd-page .pd-log-close{width:28px;height:28px;color:var(--pd-text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:all .2s;display:flex}.pd-page .pd-panel-close:hover,.pd-page .pd-log-close:hover{background:var(--pd-accent-dim);color:var(--pd-accent)}.pd-page .pd-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.pd-page .pd-main-content{flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.pd-page .pd-map-area{background:var(--pd-bg-secondary);cursor:grab;-webkit-user-select:none;user-select:none;flex:1;justify-content:center;align-items:center;padding:16px;display:flex;position:relative;overflow:hidden}.pd-page .pd-map-area.pd-grabbing{cursor:grabbing}.pd-page .pd-map-container{border-radius:var(--pd-radius-sm);border:1px solid var(--pd-border);--pd-counter-scale:1;width:fit-content;margin:0 auto;position:relative}.pd-page .pd-map-img{border-radius:var(--pd-radius-sm);width:auto;max-width:100%;height:auto;max-height:100%;margin:0 auto;display:block}.pd-page .pd-markers-layer{pointer-events:none;position:absolute;inset:0}.pd-page .pd-markers-layer>*{pointer-events:auto}.pd-page .pd-zone-marker{transform:translate(-50%, -50%) scale(var(--pd-counter-scale,1));z-index:10;cursor:default;background:var(--pd-bg-glass);-webkit-backdrop-filter:blur(4px);border:1px solid var(--pd-border);color:var(--pd-text-primary);white-space:nowrap;border-radius:4px;align-items:center;gap:3px;padding:3px 8px;font-size:.95rem;font-weight:700;transition:transform .2s,box-shadow .2s;display:flex;position:absolute;box-shadow:0 1px 4px #00000014}.pd-page .pd-zone-marker:hover{transform:translate(-50%, -50%) scale(calc(var(--pd-counter-scale,1) * 1.05));border-color:var(--pd-accent);color:var(--pd-accent);box-shadow:0 2px 8px #0000001f}.pd-page .pd-zone-marker i{color:var(--pd-accent);font-size:1rem}.pd-page .pd-point-marker{transform:translate(-50%, -50%) scale(var(--pd-counter-scale,1));z-index:9;cursor:default;width:12px;height:12px;position:absolute}.pd-page .pd-point-dot{background:var(--pd-accent);border:2px solid var(--pd-bg-primary);border-radius:50%;width:12px;height:12px;transition:transform .2s;box-shadow:0 1px 4px #0003}.pd-page .pd-point-marker:hover .pd-point-dot{transform:scale(1.3)}.pd-page .pd-point-name{color:var(--pd-text-secondary);background:var(--pd-bg-glass);white-space:nowrap;box-shadow:var(--pd-shadow-sm);border:1px solid var(--pd-border);pointer-events:none;border-radius:3px;margin-top:3px;padding:1px 5px;font-size:.77rem;font-weight:600;position:absolute;top:100%;left:50%;transform:translate(-50%)}.pd-page .pd-robot-marker{transform:translate(-50%, calc(-100% - 4px)) scale(var(--pd-counter-scale,1));transform-origin:50% calc(100% + 4px);z-index:20;cursor:pointer;flex-direction:column;align-items:center;transition:left 1s ease-in-out,top 1s ease-in-out;display:flex;position:absolute}.pd-page .pd-robot-marker:hover{transform:translate(-50%, calc(-100% - 4px)) scale(calc(var(--pd-counter-scale,1) * 1.1));z-index:30}.pd-page .pd-marker-label{background-color:var(--pd-bg-primary);border:2px solid var(--pd-marker-color);color:var(--pd-text-primary);white-space:nowrap;border-radius:10px;flex-direction:column;align-items:flex-start;gap:3px;min-width:118px;padding:6px 10px;display:flex;box-shadow:0 4px 6px #0000001a}.pd-page .pd-marker-head{align-items:center;gap:6px;width:100%;font-size:.85rem;font-weight:700;display:flex}.pd-page .pd-marker-head>i{color:var(--pd-marker-color)!important;font-size:1.1rem!important}.pd-page .pd-marker-name{margin-right:auto}.pd-page .pd-marker-battery{align-items:center;gap:3px;font-size:.78rem;font-weight:700;display:inline-flex}.pd-page .pd-marker-battery.low{color:var(--pd-danger)}.pd-page .pd-marker-row{align-items:center;gap:5px;font-size:.72rem;font-weight:600;line-height:1.25;display:flex}.pd-page .pd-marker-row>i{flex-shrink:0;color:var(--pd-text-muted)!important;font-size:.85rem!important}.pd-page .pd-marker-pos,.pd-page .pd-marker-dest{color:var(--pd-text-muted)}.pd-page .pd-marker-coord{opacity:.85;font-weight:500}.pd-page .pd-marker-status{color:var(--pd-text-primary);font-weight:700}.pd-page .pd-marker-status .pd-status-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.pd-page .pd-marker-pin{background-color:var(--pd-marker-color);width:2px;height:24px;box-shadow:1px 0 0 var(--pd-bg-primary), -1px 0 0 var(--pd-bg-primary);position:relative}.pd-page .pd-marker-dot{background-color:var(--pd-marker-color);width:8px;height:8px;box-shadow:0 0 0 2px var(--pd-bg-primary), 0 0 0 4px var(--pd-marker-color);border-radius:50%;position:absolute;bottom:0;left:50%;transform:translate(-50%,50%)}.pd-page .pd-marker-dot:after{content:"";border:1.5px solid var(--pd-marker-color);opacity:0;border-radius:50%;animation:2.5s ease-out infinite pd-dot-ping;position:absolute;inset:-4px}@keyframes pd-dot-ping{0%{opacity:.6;transform:scale(1)}70%{opacity:0;transform:scale(2.2)}to{opacity:0;transform:scale(2.2)}}.pd-page .pd-robot-marker.status-SAFE{--pd-marker-color:var(--pd-safe)}.pd-page .pd-robot-marker.status-WARNING{--pd-marker-color:var(--pd-warning)}.pd-page .pd-robot-marker.status-DANGER{--pd-marker-color:var(--pd-danger)}.pd-page .pd-robot-marker.status-OFFLINE{--pd-marker-color:var(--pd-text-muted)}.pd-page .pd-robot-marker.pd-gp-active .pd-marker-dot{animation:1.2s ease-in-out infinite pd-gp-pulse}.pd-page .pd-robot-marker.pd-gp-active .pd-marker-dot:after{animation:none}@keyframes pd-gp-pulse{0%,to{box-shadow:0 0 0 2px var(--pd-bg-primary), 0 0 6px var(--pd-marker-color)}50%{box-shadow:0 0 0 2px var(--pd-bg-primary), 0 0 14px var(--pd-marker-color), 0 0 24px color-mix(in srgb, var(--pd-marker-color) 30%, transparent)}}.pd-page .pd-robot-info{z-index:40;background:var(--pd-bg-glass);-webkit-backdrop-filter:blur(12px);border:1px solid var(--pd-border);border-radius:var(--pd-radius);min-width:200px;max-width:300px;padding:12px 16px;position:absolute;bottom:16px;left:16px;box-shadow:0 8px 24px #00000014}.pd-page .pd-robot-info-title{text-transform:uppercase;letter-spacing:.05em;color:var(--pd-text-muted);align-items:center;gap:5px;margin-bottom:8px;font-size:.8rem;font-weight:700;display:flex}.pd-page .pd-robot-info-title i{color:var(--pd-accent)}.pd-page .pd-robot-info-list{flex-direction:column;gap:8px;display:flex}.pd-page .pd-robot-info-item{justify-content:space-between;align-items:center;gap:10px;display:flex}.pd-page .pd-robot-info-name{color:var(--pd-text-primary);align-items:center;gap:6px;font-size:.85rem;font-weight:700;display:flex}.pd-page .pd-robot-info-name .pd-status-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.pd-page .pd-status-dot.safe{background:var(--pd-safe);box-shadow:0 0 4px var(--pd-safe)}.pd-page .pd-status-dot.warning{background:var(--pd-warning);box-shadow:0 0 4px var(--pd-warning)}.pd-page .pd-status-dot.danger{background:var(--pd-danger);box-shadow:0 0 4px var(--pd-danger)}.pd-page .pd-status-dot.offline{background:var(--pd-text-muted)}.pd-page .pd-robot-info-meta{color:var(--pd-text-muted);align-items:center;gap:8px;font-size:.85rem;display:flex}.pd-page .pd-robot-info-zone{color:var(--pd-text-secondary);background:var(--pd-bg-secondary);border-radius:3px;padding:1px 6px;font-size:.8rem;font-weight:500}.pd-page .pd-battery-bar{align-items:center;gap:3px;display:flex}.pd-page .pd-battery-icon{border:1.5px solid var(--pd-text-muted);border-radius:2px;width:18px;height:10px;position:relative;overflow:hidden}.pd-page .pd-battery-icon:after{content:"";background:var(--pd-text-muted);border-radius:0 1px 1px 0;width:2px;height:4px;position:absolute;top:2px;right:-4px}.pd-page .pd-battery-fill{border-radius:1px;height:100%;transition:width .5s}.pd-page .pd-battery-fill.high{background:var(--pd-safe)}.pd-page .pd-battery-fill.mid{background:var(--pd-warning)}.pd-page .pd-battery-fill.low{background:var(--pd-danger)}.pd-page .pd-battery-text{color:var(--pd-text-muted);font-size:.66rem;font-weight:600}.pd-page .pd-status-bar{z-index:40;gap:6px;display:flex;position:absolute;top:12px;right:12px}.pd-page .pd-status-chip{background:var(--pd-bg-glass);-webkit-backdrop-filter:blur(6px);border:1px solid var(--pd-border);color:var(--pd-text-secondary);box-shadow:var(--pd-shadow-sm);border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:.8rem;font-weight:600;display:flex}.pd-page .pd-status-chip .pd-chip-count{color:var(--pd-text-primary);font-weight:800}.pd-page .pd-status-chip .pd-chip-dot{border-radius:50%;width:6px;height:6px}.pd-page .pd-chip-dot.safe{background:var(--pd-safe)}.pd-page .pd-chip-dot.warning{background:var(--pd-warning)}.pd-page .pd-chip-dot.danger{background:var(--pd-danger)}.pd-page .pd-map-controls{z-index:40;background:var(--pd-bg-glass);-webkit-backdrop-filter:blur(8px);border:1px solid var(--pd-border);border-radius:var(--pd-radius-sm);box-shadow:var(--pd-shadow-sm);flex-direction:column;gap:0;display:flex;position:absolute;bottom:16px;right:16px;overflow:hidden}.pd-page .pd-zoom-btn{width:34px;height:34px;color:var(--pd-text-secondary);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:1rem;transition:all .2s;display:flex}.pd-page .pd-zoom-btn:hover{background:var(--pd-accent-dim);color:var(--pd-accent)}.pd-page .pd-zoom-btn+.pd-zoom-btn{border-top:1px solid var(--pd-border)}.pd-page .pd-view-toggle-pos{z-index:40;box-shadow:var(--pd-shadow-sm);position:absolute;bottom:16px;right:58px}.pd-page .pd-events-panel{z-index:46;background:var(--pd-bg-primary);border-right:1px solid var(--pd-border);flex-direction:column;width:300px;max-width:85%;transition:transform .35s cubic-bezier(.25,1,.5,1);display:flex;position:absolute;top:0;bottom:0;left:0;overflow:hidden;transform:translate(-100%)}.pd-page .pd-events-panel.open{transform:translate(0);box-shadow:6px 0 24px #00000047}.pd-page .pd-events-list{flex-direction:column;flex:1;gap:6px;padding:10px;display:flex;overflow-y:auto}.pd-page .pd-events-list::-webkit-scrollbar{width:5px}.pd-page .pd-events-list::-webkit-scrollbar-track{background:0 0}.pd-page .pd-events-list::-webkit-scrollbar-thumb{background:var(--rvx-surface-bright,#393939);border-radius:10px}.pd-page .pd-event-card{border-radius:var(--pd-radius-xs);background:var(--pd-bg-secondary);border:1px solid var(--pd-border);cursor:pointer;flex-direction:column;gap:6px;padding:10px 12px;transition:all .2s;display:flex}.pd-page .pd-event-card:hover{border-color:var(--pd-accent);background:var(--pd-accent-dim)}.pd-page .pd-event-card.selected{border-color:var(--pd-accent);background:var(--pd-accent-dim);box-shadow:inset 3px 0 0 var(--pd-accent)}.pd-page .pd-event-top{justify-content:space-between;align-items:center;display:flex}.pd-page .pd-event-time{color:var(--pd-text-primary);align-items:center;gap:4px;font-size:.9rem;font-weight:700;display:flex}.pd-page .pd-event-time i{color:var(--pd-text-muted);font-size:.85rem}.pd-page .pd-event-status{text-transform:uppercase;letter-spacing:.03em;border-radius:999px;padding:2px 7px;font-size:.66rem;font-weight:700}.pd-page .pd-event-status.scheduled{background:var(--ut-palette-info-shade,#38bdf81a);color:var(--ut-palette-info,#0ea5e9)}.pd-page .pd-event-status.in-progress{background:var(--pd-warning-bg);color:var(--pd-warning)}.pd-page .pd-event-status.success{background:var(--pd-safe-bg);color:var(--pd-safe)}.pd-page .pd-event-status.fail{background:var(--pd-danger-bg);color:var(--pd-danger)}.pd-page .pd-event-detail{justify-content:space-between;align-items:center;display:flex}.pd-page .pd-event-task{color:var(--pd-text-primary);font-size:.9rem;font-weight:600}.pd-page .pd-event-robot{color:var(--pd-text-secondary);align-items:center;gap:3px;font-size:.73rem;display:flex}.pd-page .pd-event-robot i{color:var(--pd-accent);font-size:.77rem}.pd-page .pd-event-map{color:var(--pd-text-muted);background:color-mix(in srgb, var(--pd-bg-tertiary) 40%, transparent);border-radius:3px;margin-left:2px;padding:1px 5px;font-size:.66rem}.pd-page .pd-events-badge{background:var(--pd-accent);color:var(--ut-palette-primary-contrast,#fff);border-radius:999px;margin-left:2px;padding:1px 6px;font-size:.66rem;font-weight:700}.pd-page .pd-route-svg{pointer-events:none;z-index:8;width:100%;height:100%;position:absolute;inset:0}.pd-page .pd-wall-canvas{pointer-events:none;z-index:15;width:100%;height:100%;position:absolute;inset:0}.pd-page .pd-route-path{fill:none;stroke:var(--pd-accent);stroke-width:2.5px;stroke-dasharray:8 4;stroke-linecap:round;stroke-linejoin:round;opacity:.7;animation:15s linear infinite pd-route-dash}@keyframes pd-route-dash{0%{stroke-dashoffset:0}to{stroke-dashoffset:-120px}}.pd-page .pd-waypoint{transform:translate(-50%, -50%) scale(var(--pd-counter-scale,1));z-index:11;background:var(--pd-bg-primary);border:2px solid var(--pd-accent);width:22px;height:22px;color:var(--pd-accent);border-radius:50%;justify-content:center;align-items:center;font-size:.66rem;font-weight:800;transition:transform .2s;display:flex;position:absolute;box-shadow:0 2px 6px #0000001f}.pd-page .pd-waypoint:hover{transform:translate(-50%, -50%) scale(calc(var(--pd-counter-scale,1) * 1.15))}.pd-page .pd-waypoint.visited{background:var(--pd-safe);border-color:var(--pd-safe);color:var(--ut-palette-success-contrast,#fff)}.pd-page .pd-waypoint.failed{background:var(--pd-danger);border-color:var(--pd-danger);color:var(--ut-palette-danger-contrast,#fff)}.pd-page .pd-waypoint.skipped{background:var(--pd-warning);border-color:var(--pd-warning);color:var(--ut-palette-warning-contrast,#fff)}.pd-page .pd-waypoint.current{background:var(--pd-accent);border-color:var(--pd-accent);color:#fff}.pd-page .pd-waypoint--dest{z-index:12;animation:1.6s ease-in-out infinite pd-dest-pulse}@keyframes pd-dest-pulse{0%,to{box-shadow:0 0 0 2px var(--pd-accent), 0 2px 6px #0003}50%{box-shadow:0 0 0 2px var(--pd-accent), 0 0 0 9px color-mix(in srgb, var(--pd-accent) 18%, transparent), 0 2px 6px #0003}}.pd-page .pd-route-clear{z-index:40;border-radius:var(--pd-radius-xs);background:var(--pd-bg-glass);border:1px solid var(--pd-border);color:var(--pd-text-secondary);cursor:pointer;box-shadow:var(--pd-shadow-sm);align-items:center;gap:5px;padding:5px 12px;font-size:.77rem;font-weight:600;transition:all .2s;display:flex;position:absolute;top:12px;left:12px}.pd-page .pd-route-clear:hover{border-color:var(--pd-danger);color:var(--pd-danger)}.pd-page .pd-log-panel{z-index:46;background:var(--pd-bg-primary);border-left:1px solid var(--pd-border);flex-direction:column;width:360px;max-width:85%;transition:transform .35s cubic-bezier(.25,1,.5,1);display:flex;position:absolute;top:0;bottom:0;right:0;overflow:hidden;transform:translate(100%)}.pd-page .pd-log-panel.open{transform:translate(0);box-shadow:-6px 0 24px #00000047}.pd-page .pd-log-header{border-bottom:1px solid var(--pd-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.pd-page .pd-log-title{color:var(--pd-text-primary);align-items:center;gap:6px;font-size:.9rem;font-weight:700;display:flex}.pd-page .pd-log-title i{color:var(--pd-accent)}.pd-page .pd-log-count{background:var(--pd-accent-dim);color:var(--pd-accent);border-radius:999px;padding:2px 7px;font-size:.85rem;font-weight:700}.pd-page .pd-log-close{color:var(--pd-text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:4px;font-size:1.1rem;transition:all .2s;display:flex}.pd-page .pd-log-close:hover{color:var(--pd-text-primary);background:var(--pd-bg-secondary)}.pd-page .pd-log-list{flex-direction:column;flex:1;gap:8px;padding:12px;display:flex;overflow-y:auto}.pd-page .pd-log-list::-webkit-scrollbar{width:5px}.pd-page .pd-log-list::-webkit-scrollbar-track{background:0 0}.pd-page .pd-log-list::-webkit-scrollbar-thumb{background:var(--rvx-surface-bright,#393939);border-radius:10px}.pd-page .pd-log-list::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--rvx-surface-bright,#393939), #fff 12%)}.pd-page .pd-log-item{border-radius:var(--pd-radius-xs);background-color:var(--pd-bg-secondary);border:1px solid var(--pd-border);border-left:4px solid var(--pd-safe);padding:10px 12px;transition:background .2s;animation:.3s ease-out pd-log-slide-in}@keyframes pd-log-slide-in{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}.pd-page .pd-log-item:hover{background:var(--pd-bg-tertiary)}.pd-page .pd-log-item.warn{border-left-color:var(--pd-warning);background-color:var(--pd-warning-bg)}.pd-page .pd-log-item.danger{border-left-color:var(--pd-danger);background-color:var(--pd-danger-bg)}.pd-page .pd-log-time{color:var(--pd-text-muted);align-items:center;gap:4px;margin-bottom:4px;font-size:.85rem;display:flex}.pd-page .pd-log-time i{font-size:.66rem}.pd-page .pd-log-location{color:var(--pd-accent);margin-left:auto;font-size:.85rem;font-weight:600}.pd-page .pd-log-desc{color:var(--pd-text-primary);font-size:.9rem;font-weight:500;line-height:1.45}.pd-page .pd-log-robot{color:var(--pd-accent);font-weight:700}.pd-page .pd-log-attachment{color:var(--pd-accent);cursor:pointer;align-items:center;gap:4px;margin-top:6px;font-size:.85rem;text-decoration:none;transition:opacity .2s;display:inline-flex}.pd-page .pd-log-attachment:hover{opacity:.7;text-decoration:underline}.pd-page .pd-log-attachment i{font-size:.85rem}.pd-page .pd-loading{background:var(--pd-bg-primary);z-index:100;flex-direction:column;justify-content:center;align-items:center;transition:opacity .4s;display:flex;position:absolute;inset:0}.pd-page .pd-loading.hide{opacity:0;pointer-events:none}.pd-page .pd-loading-spinner{border:3px solid var(--pd-border);border-top-color:var(--pd-accent);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite pd-spin}@keyframes pd-spin{to{transform:rotate(360deg)}}.pd-page .pd-loading-text{color:var(--pd-text-muted);margin-top:12px;font-size:.85rem;font-weight:500}.pd-page .pd-empty-state{flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:40px;display:flex;position:relative;overflow:hidden}.pd-page .pd-empty-state:before{content:"";pointer-events:none;background:radial-gradient(circle,#e74e3b0f 0%,#0000 70%);border-radius:50%;width:160px;height:160px;animation:4s ease-in-out infinite pd-empty-glow;position:absolute}@keyframes pd-empty-glow{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}@keyframes pd-empty-float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.pd-page .pd-empty-state i{width:48px;height:48px;color:var(--pd-text-muted);z-index:1;background:linear-gradient(135deg,#e74e3b14 0%,#4ecdc40f 100%);border:1px solid #e5e2e114;border-radius:50%;justify-content:center;align-items:center;font-size:1.25rem;animation:3s ease-in-out infinite pd-empty-float;display:flex;position:relative}.pd-page .pd-empty-state span{color:var(--pd-text-secondary);z-index:1;font-size:.85rem;font-weight:600;position:relative}@media (width<=900px){.pd-page .pd-events-panel{width:280px}.pd-page .pd-log-panel{width:320px}.pd-page .pd-robot-info{min-width:170px;padding:10px 12px}}@media (width<=600px){.pd-page .pd-events-panel,.pd-page .pd-log-panel{width:100%;max-width:100%}.pd-page .pd-header{flex-wrap:wrap;gap:8px}.pd-page .pd-robot-info{min-width:150px;bottom:8px;left:8px}}.pd-page.pd-coord-active .pd-map-area{cursor:crosshair!important}.pd-page.pd-coord-active .pd-map-area.pd-grabbing{cursor:grabbing!important}.pd-page .pd-coord-crosshair{pointer-events:none;z-index:25;width:20px;height:20px;position:absolute;transform:translate(-50%,-50%)}.pd-page .pd-coord-crosshair:before,.pd-page .pd-coord-crosshair:after{content:"";background:var(--pd-accent);box-shadow:0 0 6px var(--pd-accent);position:absolute}.pd-page .pd-coord-crosshair:before{height:2px;top:50%;left:0;right:0;transform:translateY(-50%)}.pd-page .pd-coord-crosshair:after{width:2px;top:0;bottom:0;left:50%;transform:translate(-50%)}.pd-page .pd-coord-panel{z-index:45;background:var(--pd-bg-glass);-webkit-backdrop-filter:blur(12px);border:1px solid var(--pd-border);border-radius:var(--pd-radius);min-width:280px;font-size:.85rem;animation:.2s ease-out pd-coord-fadeIn;position:absolute;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000026}@keyframes pd-coord-fadeIn{0%{opacity:0;transform:translate(-50%)translateY(8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.pd-page .pd-coord-panel-header{border-bottom:1px solid var(--pd-border);text-transform:uppercase;letter-spacing:.04em;color:var(--pd-text-muted);align-items:center;gap:6px;padding:8px 12px;font-size:.8rem;font-weight:700;display:flex}.pd-page .pd-coord-panel-header i{color:var(--pd-accent);font-size:1rem}.pd-page .pd-coord-panel-body{flex-direction:column;gap:6px;padding:10px 12px;display:flex}.pd-page .pd-coord-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.pd-page .pd-coord-label{color:var(--pd-text-secondary);white-space:nowrap;font-size:.8rem}.pd-page .pd-coord-value{color:var(--pd-text-primary);text-align:right;font-family:JetBrains Mono,Fira Code,Cascadia Code,monospace;font-size:.85rem;font-weight:700}.pd-page .pd-coord-panel-footer{border-top:1px solid var(--pd-border);color:var(--pd-text-muted);text-align:center;padding:6px 12px;font-size:.72rem}.pd-page .pd-trail-svg{pointer-events:none;z-index:7;width:100%;height:100%;position:absolute;inset:0}.pd-page .pd-trail-head{fill:#22d3ee;stroke:#06363d;stroke-width:1.5px}.pd-page .pd-trail-lead{stroke:#22d3ee;stroke-width:2px;stroke-linecap:round;stroke-dasharray:6 5;opacity:.8;animation:.9s linear infinite pd-trail-lead-flow}@keyframes pd-trail-lead-flow{0%{stroke-dashoffset:11px}to{stroke-dashoffset:0}}.pd-page .pd-robot-marker{cursor:pointer}.pd-page .pd-robot-card{z-index:47;background:var(--pd-bg-glass);-webkit-backdrop-filter:blur(12px);border:1px solid var(--pd-border);border-radius:var(--pd-radius);flex-direction:column;width:340px;max-width:calc(100% - 32px);max-height:calc(100% - 32px);animation:.22s cubic-bezier(.25,1,.5,1) pd-rd-card-in;display:flex;position:absolute;top:16px;left:16px;overflow:hidden;box-shadow:0 8px 24px #00000047}@keyframes pd-rd-card-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.pd-page .pd-robot-card-header{border-bottom:1px solid var(--pd-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.pd-page .pd-robot-card-title{min-width:0;color:var(--pd-text-primary);align-items:center;gap:6px;font-size:.9rem;font-weight:700;display:flex}.pd-page .pd-robot-card-title i{color:var(--pd-accent);flex-shrink:0}.pd-page .pd-robot-card-title span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pd-page .pd-robot-card-close{width:26px;height:26px;color:var(--pd-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.pd-page .pd-robot-card-close:hover{background:var(--pd-bg-secondary);color:var(--pd-text-primary)}.pd-page .pd-robot-card-body{flex:1;padding:12px;overflow-y:auto}.pd-page .pd-robot-card-body::-webkit-scrollbar{width:5px}.pd-page .pd-robot-card-body::-webkit-scrollbar-track{background:0 0}.pd-page .pd-robot-card-body::-webkit-scrollbar-thumb{background:var(--rvx-surface-bright,#393939);border-radius:10px}.pd-page .pd-rd-cur{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:4px;display:flex}.pd-page .pd-rd-status{color:var(--pd-text-primary);align-items:center;gap:7px;font-size:.95rem;font-weight:700;display:inline-flex}.pd-page .pd-rd-bat{color:var(--pd-text-secondary);font-variant-numeric:tabular-nums;align-items:center;gap:4px;display:inline-flex}.pd-page .pd-rd-bat i{color:var(--pd-safe)}.pd-page .pd-rd-temp{color:var(--pd-text-secondary);font-variant-numeric:tabular-nums;align-items:center;gap:4px;display:inline-flex}.pd-page .pd-rd-temp i{color:var(--pd-warning)}.pd-page .pd-rd-temp--empty,.pd-page .pd-rd-temp--empty i{color:var(--pd-text-muted)}.pd-page .pd-rd-section{color:var(--pd-text-secondary);align-items:center;gap:6px;margin:18px 0 8px;font-size:.82rem;font-weight:700;display:flex}.pd-page .pd-rd-section .pd-rd-sub{color:var(--pd-text-muted);font-size:.72rem;font-weight:400}.pd-page .pd-rd-empty{color:var(--pd-text-muted);text-align:center;padding:16px 0;font-size:.85rem}.pd-page .pd-rd-empty--sm{text-align:left;padding:10px 2px}.pd-page .pd-bat-wrap{background:var(--pd-bg-primary);border:1px solid var(--pd-border);border-radius:6px;padding:8px 10px}.pd-page .pd-bat-chart{width:100%;height:96px;color:var(--pd-safe);display:block}.pd-page .pd-bat-chart--mid{color:var(--pd-warning)}.pd-page .pd-bat-chart--low{color:var(--pd-danger)}.pd-page .pd-bat-line{fill:none;stroke:currentColor;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.pd-page .pd-bat-area{fill:currentColor;opacity:.13;stroke:none}.pd-page .pd-bat-grid{stroke:var(--pd-border);stroke-width:1px;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.pd-page .pd-bat-axis{color:var(--pd-text-muted);font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:4px;font-size:.7rem;display:flex}.pd-page .pd-tl{flex-direction:column;max-height:240px;display:flex;overflow-y:auto}.pd-page .pd-tl-row{border-bottom:1px solid var(--pd-border);grid-template-columns:96px 14px 1fr;align-items:center;gap:8px;padding:7px 2px;display:grid}.pd-page .pd-tl-row:last-child{border-bottom:none}.pd-page .pd-tl-time{color:var(--pd-text-muted);font-variant-numeric:tabular-nums;font-size:.72rem}.pd-page .pd-tl-dot{border-radius:50%;justify-self:center;width:9px;height:9px}.pd-page .pd-tl-dot--idle,.pd-page .pd-tl-dot--busy,.pd-page .pd-tl-dot--patrol{background:var(--pd-safe);box-shadow:0 0 4px var(--pd-safe)}.pd-page .pd-tl-dot--charging{background:var(--pd-warning);box-shadow:0 0 4px var(--pd-warning)}.pd-page .pd-tl-dot--error{background:var(--pd-danger);box-shadow:0 0 4px var(--pd-danger)}.pd-page .pd-tl-dot--offline{background:var(--pd-text-muted)}.pd-page .pd-tl-label{color:var(--pd-text-primary);font-size:.85rem}.pd-page .pd-rd-estop-btn{background:var(--pd-danger);color:#fff;cursor:pointer;border:none;border-radius:6px;flex-shrink:0;align-items:center;gap:4px;margin-left:auto;padding:4px 10px;font-size:.75rem;font-weight:700;transition:filter .15s,opacity .15s;display:inline-flex}.pd-page .pd-rd-estop-btn:hover:not([disabled]){filter:brightness(.9)}.pd-page .pd-rd-estop-btn[disabled]{opacity:.45;cursor:not-allowed}.pd-page .pd-estop-banner{border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;margin:8px 12px 0;padding:8px 10px;font-size:.75rem;display:flex}.pd-page .pd-estop-banner>i{flex-shrink:0;font-size:1.1rem}.pd-page .pd-estop-banner__body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.pd-page .pd-estop-banner__detail{color:var(--pd-text-muted);word-break:break-word;font-size:.6875rem}.pd-page .pd-estop-banner--latched{background:var(--pd-danger-bg);border-color:var(--pd-danger);color:var(--pd-danger)}.pd-page .pd-estop-banner--pending{background:var(--pd-warning-bg);border-color:var(--pd-warning);color:var(--pd-warning)}.pd-page .pd-estop-banner--danger{background:var(--pd-danger-bg);border-color:var(--pd-danger);color:var(--pd-danger)}.pd-page .pd-estop-banner__release{border:1px solid var(--pd-border);background:var(--pd-bg-secondary);color:var(--pd-text-primary);cursor:pointer;border-radius:6px;flex-shrink:0;align-items:center;gap:4px;padding:4px 8px;font-size:.6875rem;display:inline-flex}.pd-page .pd-estop-banner__release:hover:not([disabled]){filter:brightness(1.1)}.pd-page .pd-estop-banner__release[disabled]{opacity:.5;cursor:not-allowed}.pd-rd-camera{aspect-ratio:16/9;border:1px solid var(--pd-border);border-radius:var(--pd-radius-sm);background:#000;width:100%;margin:0 0 10px;position:relative;overflow:hidden}.pd-rd-video{object-fit:contain;background:#000;width:100%;height:100%;display:block}.pd-rd-cam-status{text-align:center;color:var(--pd-text-secondary);pointer-events:none;justify-content:center;align-items:center;padding:8px 12px;font-size:12px;display:flex;position:absolute;inset:0}.pd-rd-cam-status:empty{display:none}.pd-robot-info-item{cursor:pointer}.pd-robot-info-item:hover{background:var(--pd-bg-tertiary)}.pd-robot-info-item:focus-visible{outline:2px solid var(--pd-accent);outline-offset:-2px}.pd-robot-info-cam{color:var(--pd-text-muted);margin-left:6px;font-size:13px}.pd-robot-info-item:hover .pd-robot-info-cam{color:var(--pd-accent)}
