*{box-sizing:border-box}:root{--google-blue: #1A73E8;--google-blue-dark: #1967D2;--google-blue-deep: #185ABC;--google-blue-light: #E8F0FE;--google-blue-soft: #D2E3FC;--google-red: #EA4335;--google-red-dark: #D93025;--google-red-light: #FCE8E6;--google-yellow: #FBBC04;--google-yellow-dark: #F9AB00;--google-yellow-light: #FEF7E0;--google-green: #34A853;--google-green-dark: #1E8E3E;--google-green-light: #E6F4EA;--gray-50: #F8F9FA;--gray-100: #F1F3F4;--gray-200: #E8EAED;--gray-300: #DADCE0;--gray-400: #BDC1C6;--gray-500: #9AA0A6;--gray-600: #80868B;--gray-700: #5F6368;--gray-800: #3C4043;--gray-900: #202124;--c-brand: var(--google-blue);--c-brand-deep: var(--google-blue-dark);--c-brand-soft: var(--google-blue-light);--c-brand-ink: var(--google-blue-deep);--c-bg-page: var(--gray-50);--c-bg-tint: var(--gray-100);--c-surface: #FFFFFF;--c-border: var(--gray-300);--c-divider: var(--gray-200);--c-text: var(--gray-900);--c-text-muted: var(--gray-700);--c-text-soft: var(--gray-600);--c-success: #16A34A;--c-danger: #DC2626;--c-running: #1A73E8;--c-waiting: #94A3B8;--c-status-fault: var(--google-red);--c-status-wait: var(--google-yellow);--c-status-on: var(--google-green);--c-status-done: var(--google-blue);--c-sidebar-bg: #FFFFFF;--c-sidebar-active: var(--google-blue-light);--c-sidebar-text: var(--gray-800);--c-sidebar-ink: var(--google-blue-dark);--radius: 10px;--radius-lg: 16px;--radius-pill: 999px;--shadow-sm: 0 1px 3px rgba(60, 64, 67, .1), 0 1px 2px rgba(60, 64, 67, .06);--shadow-md: 0 2px 6px rgba(60, 64, 67, .14), 0 1px 2px rgba(60, 64, 67, .08);--shadow-lg: 0 8px 24px rgba(60, 64, 67, .18), 0 2px 8px rgba(60, 64, 67, .1);--shadow-card: 0 1px 2px rgba(60, 64, 67, .12), 0 2px 6px rgba(60, 64, 67, .1)}:root[data-theme=dark]{--gray-50: #202124;--gray-100: #292a2d;--gray-200: #35363a;--gray-300: #45474b;--gray-400: #5f6368;--gray-500: #80868b;--gray-600: #9aa0a6;--gray-700: #bdc1c6;--gray-800: #dadce0;--gray-900: #e8eaed;--c-bg-page: #17181a;--c-bg-tint: #202124;--c-surface: #26282b;--c-border: #3c4043;--c-divider: #33353a;--c-text: #ffffff;--c-text-muted: #bdc1c6;--c-text-soft: #9aa0a6;--c-brand-ink: #aecbfa;--c-brand-soft: #1f3350;--google-blue-light: #1f3350;--c-sidebar-bg: #202124;--c-sidebar-text: #dadce0;--c-sidebar-ink: #aecbfa;--shadow-sm: 0 1px 2px rgba(0,0,0,.55);--shadow-md: 0 2px 10px rgba(0,0,0,.6);--shadow-lg: 0 10px 34px rgba(0,0,0,.65);--shadow-card: 0 1px 2px rgba(0,0,0,.5), 0 2px 6px rgba(0,0,0,.45);color-scheme:dark}:root[data-theme=dark] .modal-close-button:hover{background:var(--c-bg-tint)}:root[data-theme=dark] .billing-stat-card{background:#1c2942;border-color:#2c4a77}:root[data-theme=dark] .billing-stat-card.green{background:#12261a;border-color:#1e5231}:root[data-theme=dark] .billing-stat-card.red{background:#2d1a1a;border-color:#5c2626}:root[data-theme=dark] .billing-stat-card.gold{background:#2b2312;border-color:#6b5312}:root[data-theme=dark] .stat-card-icon .icon-wrap.green{background:#1e5231;color:#86efac}:root[data-theme=dark] .stat-card-icon .icon-wrap.red{background:#5c2626;color:#fca5a5}:root[data-theme=dark] .stat-card-icon .icon-wrap.gold{background:#6b5312;color:#fcd34d}:root[data-theme=dark] .feedback-error{background:#2d1a1a;border-color:#5c2626;color:#fca5a5}:root[data-theme=dark] .feedback-warning{background:#2b2312;border-color:#6b5312;color:#fcd34d}:root[data-theme=dark] .feedback-success{background:#12261a;border-color:#1e5231;color:#86efac}:root[data-theme=dark] .feedback-info{background:#1a2536;border-color:#2c4a77}:root[data-theme=dark] .alert-inline{background:#2b2312;border-color:#6b5312;color:#fcd34d}:root[data-theme=dark] .recording-file-picker{background:var(--c-bg-tint);border-color:var(--c-border)}:root[data-theme=dark] .recording-studio{background:var(--c-bg-tint);border-color:var(--c-border)}:root[data-theme=dark] .recording-studio.is-recording{background:#2d1a1a;border-color:#5c2626}:root[data-theme=dark] .recording-studio.is-paused{background:#2b2312;border-color:#6b5312}:root[data-theme=dark] .recording-preview{background:#1a2536;border-color:#2c4a77}:root[data-theme=dark] .recording-studio-head small,:root[data-theme=dark] .recording-timer-row,:root[data-theme=dark] .recording-preview-head span,:root[data-theme=dark] .recording-preview-head small{color:var(--c-text-muted)}:root[data-theme=dark] .recording-status{background:#5c2626;color:#fca5a5}:root[data-theme=dark] .recording-status.paused{background:#6b5312;color:#fcd34d}:root.theme-switching,:root.theme-switching *,:root.theme-switching *:before,:root.theme-switching *:after{transition:none!important}html,body{margin:0;padding:0;background:var(--c-bg-page);color:var(--c-text);font-family:Noto Sans KR,Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5;word-break:keep-all;overflow-wrap:break-word}a{color:var(--c-brand);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{color:var(--c-brand-ink);margin:0 0 8px;font-weight:700}button,input,select,textarea{font-family:Noto Sans KR,Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;color:var(--c-text)}::placeholder{font-family:inherit;color:var(--c-text-soft)}button{font-family:inherit}[hidden]{display:none!important}.app-dialog{width:min(440px,calc(100vw - 32px))}.app-dialog-message{white-space:pre-wrap;line-height:1.65;color:var(--c-text);margin:4px 0 16px}.app-dialog-overlay{z-index:1000}.password-visibility{display:inline-flex;align-items:center;gap:6px;margin-top:6px;font-size:12px;color:var(--c-text-muted);cursor:pointer}.app-shell{display:flex;min-height:100vh;height:100vh;background:var(--c-bg-page)}@media (max-width: 1280px){.app-sidebar{width:90px}.broadcast-left-stack{width:248px!important}.right-dock{width:248px}.floating-panel[style*="left:296px"]{left:252px!important}.floating-panel[style*="right:312px"]{right:256px!important}.broadcast-bottom[style*="left:296px"]{left:252px!important}.broadcast-bottom[style*="right:312px"]{right:256px!important}}@media (max-width: 1024px){.app-sidebar{width:76px;font-size:14px}.app-sidebar .sidebar-brand{font-size:14px}.broadcast-left-stack{width:220px!important}.right-dock{width:220px}.floating-panel[style*="left:296px"]{left:220px!important}.floating-panel[style*="right:312px"]{right:224px!important}.broadcast-bottom[style*="left:296px"]{left:220px!important}.broadcast-bottom[style*="right:312px"]{right:224px!important}.data-panel{overflow-x:auto}.modal{max-width:calc(100vw - 32px)!important}}@media (max-width: 768px){.app-sidebar{position:fixed;top:0;left:0;height:100vh;z-index:99;transform:translate(-100%);transition:transform .25s ease;box-shadow:4px 0 20px #00000026;width:200px}body.menu-open .app-sidebar{transform:translate(0)}body.menu-open:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:98}.app-main{width:100%}.mobile-panel-controls{display:flex!important;position:fixed;right:10px;bottom:10px;z-index:110;gap:6px}.mobile-panel-btn{border:1px solid var(--c-brand);border-radius:999px;background:var(--c-surface);color:var(--c-brand-ink);font-weight:700;padding:8px 12px;box-shadow:var(--shadow-md)}.right-dock{position:fixed!important;top:0;right:0;bottom:0;height:100vh;max-height:100vh;width:260px;z-index:90;transform:translate(100%);transition:transform .25s ease;box-shadow:-4px 0 20px #00000026;background:var(--c-surface);padding:16px}body.dock-open .right-dock{transform:translate(0)}.floating-panel{position:static!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;margin:12px 12px 0}.broadcast-left-stack{position:static!important;width:100%!important;margin:12px}.broadcast-bottom{position:static!important;left:auto!important;right:auto!important;margin:12px;width:auto}.app-tabbar{overflow-x:auto}.app-tab{white-space:nowrap}.user-cluster .user-name,.user-cluster .user-badge{display:none}.settings-card,.modal{padding:16px!important}.modal{width:calc(100vw - 24px)!important;max-width:100%!important}.stat-grid{grid-template-columns:repeat(2,1fr)}.split-2{grid-template-columns:1fr;gap:12px}.config-table th,.config-table td,.dock-table th,.dock-table td{padding:7px 8px;font-size:12px}}@media (max-width: 480px){.app-sidebar{width:200px}.stat-grid{grid-template-columns:1fr}.user-cluster .logout-btn{font-size:12px;padding:4px 8px}.app-tab{padding:8px 10px;font-size:16px}.period-bar{padding:8px}.map-toggle{top:auto!important;bottom:12px;right:12px}}.mobile-panel-controls{display:none}.settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2021248c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:200;display:none;align-items:center;justify-content:center;padding:24px}.settings-modal{background:var(--c-surface);width:100%;max-width:1400px;height:calc(100vh - 48px);max-height:900px;border-radius:var(--radius-lg);box-shadow:0 20px 60px #0000004d;overflow:hidden;display:flex;flex-direction:column}.settings-modal-h{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--c-divider);flex-shrink:0}.settings-modal-title{font-size:18px;font-weight:700;color:var(--gray-900)}.settings-modal-close{background:transparent;border:none;font-size:28px;line-height:1;color:var(--gray-700);cursor:pointer;width:36px;height:36px;border-radius:50%;transition:all .15s}.settings-modal-close:hover{background:var(--gray-100);color:var(--gray-900)}.settings-tabs{display:flex;gap:4px;padding:8px 16px;background:var(--gray-50);border-bottom:1px solid var(--c-divider);overflow-x:auto;flex-shrink:0}.settings-tab{padding:8px 16px;background:transparent;border:none;border-radius:var(--radius-pill);font-size:13px;font-weight:600;color:var(--gray-700);cursor:pointer;white-space:nowrap;transition:all .15s}.settings-tab:hover{background:var(--gray-200);color:var(--gray-900)}.settings-tab.active{background:var(--google-blue);color:#fff;box-shadow:0 2px 6px #1a73e84d}.settings-frame{flex:1;width:100%;border:none;background:var(--c-surface)}@media (max-width: 768px){.settings-overlay{padding:0}.settings-modal{border-radius:0;max-height:100vh;height:100vh}}.app-sidebar{width:108px;background:var(--c-sidebar-bg);border-right:1px solid var(--c-divider);padding:16px 8px;display:flex;flex-direction:column;align-items:center;flex-shrink:0}.sidebar-logo{width:64px;height:64px;margin:0 auto}.sidebar-brand{text-align:center;margin:8px 0 4px;color:var(--c-brand-ink);font-size:12px;font-weight:700;line-height:1.3}.sidebar-label{font-size:12px;color:var(--c-text-muted);text-transform:uppercase;letter-spacing:1px;margin:16px 0 6px}.side-menu{list-style:none;margin:0;padding:0;width:100%}.side-menu li a{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 4px;color:var(--gray-700);border-radius:var(--radius);text-align:center;font-size:12px;font-weight:600;margin-bottom:4px;transition:all .15s;text-decoration:none}.side-menu li a:hover{background:var(--google-blue-light);text-decoration:none;color:var(--google-blue-dark)}.side-menu li.active a,.side-menu li a.active{background:var(--c-sidebar-active);color:var(--c-sidebar-ink);font-weight:700;position:relative;box-shadow:inset 3px 0 0 var(--google-blue)}.side-menu li.active a:before,.side-menu li a.active:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent 0%,rgba(26,115,232,.04) 100%);pointer-events:none;border-radius:var(--radius)}.side-menu .ico{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;color:var(--c-text-soft);transition:color .15s}.side-menu .ico svg{display:block}.side-menu li a:hover .ico{color:var(--c-brand)}.side-menu li.active .ico,.side-menu li a.active .ico{color:var(--c-brand-ink)}.app-main{flex:1;display:flex;flex-direction:column;min-width:0;position:relative}.app-tabbar{background:var(--c-surface);border-bottom:1px solid var(--c-divider);padding:12px 24px;display:flex;align-items:center;gap:8px;min-height:62px;z-index:10}.app-tabbar .user-cluster{margin-left:auto;display:flex;align-items:center;gap:12px}.app-tab{min-height:38px;padding:9px 18px;border-radius:var(--radius-pill);font-size:14px;font-weight:700;color:var(--gray-800);cursor:pointer;border:none;background:transparent;text-decoration:none;transition:all .15s}.app-tab:hover{background:var(--google-blue-light);color:var(--google-blue-dark);text-decoration:none}.app-tab.active{background:var(--google-blue);color:#fff;box-shadow:0 2px 6px #1a73e84d}.user-cluster .user-name{color:var(--c-text);font-weight:600;font-size:12px}.user-cluster .session-countdown{color:var(--c-text-muted);border:0;background:transparent;min-height:auto;padding:0;font-size:12px;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap;cursor:default}.user-cluster .session-countdown.urgent{color:#dc2626}.user-cluster .user-badge{display:inline-flex;align-items:center;background:var(--c-brand-soft);color:var(--c-brand-ink);min-height:34px;padding:6px 10px;border-radius:var(--radius-pill);font-size:11px;font-weight:700}.user-cluster .logout-btn{background:transparent;border:1px solid var(--c-border);color:var(--c-text-muted);min-height:34px;padding:6px 12px;border-radius:var(--radius-pill);font-size:12px;cursor:pointer}.user-cluster .logout-btn:hover{color:var(--c-brand);border-color:var(--c-brand)}.user-cluster .theme-toggle{background:transparent;border-color:var(--c-border);border-style:solid;border-width:1px;border-radius:var(--radius-pill);width:34px;height:34px;padding:0;font-size:14px;line-height:1;cursor:pointer;margin-left:2px}.user-cluster .theme-toggle:hover{border-color:var(--c-brand)}body.embed .app-header,body.embed .app-tabbar,body.embed .app-sidebar,body.embed .app-footer{display:none!important}body.embed .app-shell{min-height:auto}body.embed .app-main{width:100%}body.embed .app-content,body.embed .settings-page{padding:12px!important}body.embed{background:var(--c-surface)}.settings-page{padding:24px;background:var(--c-bg-page);min-height:100%}.settings-card{background:var(--c-surface);border:1.5px solid var(--c-brand-soft);border-radius:var(--radius-lg);padding:28px 32px;max-width:1000px;margin:0 auto}.settings-card h2{font-size:18px;color:var(--c-brand-ink);margin:0 0 4px}.settings-card-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--c-divider)}.settings-card-title-row h2{margin:0}.settings-card-title-copy{min-width:0}.settings-card .settings-card-title-copy .settings-desc{margin:7px 0 0;padding:0;border:0}.settings-card-title-row>.btn{flex:0 0 auto;min-width:72px}.settings-card .settings-desc{color:var(--c-text-muted);font-size:12px;margin:0 0 16px;padding-bottom:16px;border-bottom:1px solid var(--c-divider)}.settings-section{margin-bottom:22px}.settings-section-h{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--c-brand-ink);margin-bottom:10px}.settings-section-h .num{display:inline-flex;width:18px;height:18px;border-radius:50%;background:var(--c-brand);color:#fff;font-size:11px;font-weight:700;align-items:center;justify-content:center}.settings-block{background:var(--c-brand-soft);border-radius:10px;padding:24px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}.settings-block .label-strong{font-size:13px;color:var(--c-brand-ink);font-weight:700}.settings-inline-help{color:var(--c-text-muted);font-size:12px;line-height:1.55}.protocol-guide{margin:12px 14px;padding:12px 14px;border:1px solid var(--c-brand-soft);border-radius:8px;background:var(--c-brand-soft);color:var(--c-brand-ink);font-size:11px;line-height:1.6}.protocol-guide-detail{margin-top:4px;color:var(--c-text-muted)}.gis-settings-layout{display:grid;grid-template-columns:minmax(280px,1fr) 1.2fr;gap:20px;align-items:start}.gis-coordinate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:100%}.gis-coordinate-field{display:flex;flex-direction:column;align-items:stretch;gap:7px}.gis-coordinate-field .spinner-input{width:100%!important}.gis-preview-help{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;color:var(--c-text-muted);font-size:11px}@media (max-width: 720px){.gis-settings-layout,.gis-coordinate-grid{grid-template-columns:1fr}.gis-preview-help{align-items:flex-start;flex-direction:column}}.settings-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.spinner-input{min-width:80px;padding:9px 12px;border:1px solid var(--c-divider);border-radius:6px;text-align:center;background:var(--c-surface);color:var(--c-brand-ink);font-weight:700;font-size:13px;line-height:1.4;box-sizing:border-box}.spinner-input:focus{border-color:var(--c-brand);outline:none}.tts-number-input{width:96px;flex:0 0 96px}.spinner-input[aria-invalid=true]{border-color:#d92d20;box-shadow:0 0 0 3px #d92d201a}.spinner-input:disabled{opacity:1;cursor:not-allowed;background:var(--c-bg-tint);color:var(--c-text-muted)}select.spinner-input{padding-right:30px;text-align:left;text-align-last:left;cursor:pointer}select.spinner-input:disabled{cursor:not-allowed}select.input{min-height:40px;padding-right:34px;cursor:pointer}select.input:disabled{cursor:not-allowed}input[type=time].spinner-input,input[type=date].spinner-input,input[type=month].spinner-input{text-align:left;min-width:130px}.toggle-switch{position:relative;display:inline-block;width:60px;height:30px}.toggle-switch input{display:none}.toggle-switch .slider{position:absolute;top:0;right:0;bottom:0;left:0;background:#94a3b8;border-radius:30px;cursor:pointer;transition:.2s}.toggle-switch .slider:after{content:"OFF";position:absolute;right:8px;top:50%;transform:translateY(-50%);color:#fff;font-size:10px;font-weight:700}.toggle-switch .slider:before{content:"";position:absolute;left:3px;top:3px;width:24px;height:24px;background:var(--c-surface);border-radius:50%;transition:.2s}.toggle-switch input:checked+.slider{background:var(--c-brand)}.toggle-switch input:checked+.slider:after{content:"ON";right:auto;left:8px}.toggle-switch input:checked+.slider:before{transform:translate(30px)}.radio-card{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--c-surface);border-radius:8px}.radio-card input{accent-color:var(--c-brand)}.radio-card .voice-name{background:var(--c-surface);border:1px solid var(--c-divider);border-radius:6px;padding:6px 18px;font-weight:700;color:var(--c-brand-ink)}.tree-panel{background:var(--c-surface);border:1.5px solid var(--c-brand-soft);border-radius:var(--radius);padding:18px;height:100%;display:flex;flex-direction:column}.tree-panel-h{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:700;color:var(--c-brand-ink);margin-bottom:12px}.group-tree-actions{display:flex;flex:0 0 auto;gap:4px}.group-tree-actions .group-tree-action{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;min-width:36px;min-height:36px;padding:0;font-size:20px;line-height:1}.tree-search{display:flex;gap:6px;margin-bottom:12px;flex-wrap:nowrap;align-items:center}.tree-search input{flex:1 1 0;min-width:0;padding:7px 10px;border:1px solid var(--c-divider);border-radius:6px;font-size:12px}.tree-search button{flex-shrink:0;padding:7px 12px;background:var(--c-brand);color:#fff;border:none;border-radius:var(--radius-pill);font-weight:700;font-size:12px;cursor:pointer;white-space:nowrap}.tree-search.device-dock-search{flex-wrap:wrap}.tree-search select.dock-filter-select{height:34px;padding:6px 22px 6px 8px;font-size:12px;line-height:20px}.tree-list{list-style:none;margin:0;padding:0;flex:1;overflow-y:auto;font-size:13px;max-height:440px}.tree-list li{padding:6px 8px;cursor:pointer;color:var(--c-text);border-radius:4px}.tree-list li:hover{background:var(--c-bg-tint)}.tree-list li.active{background:var(--c-brand-soft);color:var(--c-brand-ink);font-weight:700}.tree-list ul{list-style:none;padding-left:18px;margin:4px 0 0}.tree-caret{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:20px;height:20px;font-size:0;color:transparent;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:4px;vertical-align:middle}.tree-caret:before{content:"";width:7px;height:7px;border-right:2.5px solid var(--c-brand);border-bottom:2.5px solid var(--c-brand);transform:translate(-1px) rotate(-45deg);transition:transform .15s ease}.tree-caret.open:before{transform:translateY(-2px) rotate(45deg)}.tree-caret:hover{background:var(--c-brand-soft)}.tree-caret:hover:before{border-color:var(--c-brand-ink)}.tree-caret-placeholder{display:inline-flex;width:20px;height:20px;flex:0 0 20px;vertical-align:middle}.tree-list li.folder:has(>.tree-caret):before{content:none}.tree-list .root-label{color:var(--c-brand);font-weight:700}.context-menu{position:absolute;background:var(--c-surface);border:1px solid var(--c-divider);border-radius:8px;box-shadow:var(--shadow-md);padding:4px 0;min-width:160px;z-index:100}.context-menu .item{display:block;width:100%;border:0;background:transparent;text-align:left;font:inherit;padding:8px 14px;font-size:12px;cursor:pointer;color:var(--c-text);white-space:nowrap}.context-menu .item:hover,.context-menu .item:focus-visible{background:var(--c-brand);color:#fff;outline:none}.context-menu .item.active{background:var(--c-brand);color:#fff}.context-menu .item.danger{color:#dc2626}.context-menu .item.danger:hover,.context-menu .item.danger:focus-visible{background:#dc2626;color:#fff}.context-menu .item:disabled{cursor:not-allowed;opacity:.5}.context-menu hr{border:none;border-top:1px solid var(--c-divider);margin:4px 0}.data-panel{background:var(--c-surface);border:1.5px solid var(--c-brand-soft);border-radius:var(--radius);padding:18px;height:100%;display:flex;flex-direction:column}.data-panel-h{font-size:13px;font-weight:700;color:var(--c-brand-ink);margin-bottom:12px}.data-toolbar{display:flex;gap:6px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.data-toolbar .grow{flex:1}.data-toolbar input.search{padding:7px 10px;border:1px solid var(--c-divider);border-radius:6px;font-size:12px;max-width:280px;min-width:180px}.pagination{display:flex;gap:5px;justify-content:center;align-items:center;padding:10px 0}.pagination-btn{min-width:30px;height:30px;padding:0 7px;border:1px solid var(--c-border);border-radius:6px;background:var(--c-surface);color:var(--c-text);font-size:12px;font-weight:600;cursor:pointer}.pagination-btn:hover:not(:disabled){border-color:var(--c-brand);color:var(--c-brand-ink);background:var(--c-brand-soft)}.pagination-btn.active{border-color:var(--c-brand);background:var(--c-brand);color:#fff;font-weight:700}.pagination-btn:disabled{color:var(--c-text-soft);background:var(--c-bg-tint);opacity:.58;cursor:default}.pagination-total{margin-left:7px;color:var(--c-text-muted);font-size:12px}.app-dialog.has-paged-list{width:min(640px,calc(100vw - 32px))}.app-dialog-paged-list-wrap{margin-top:14px;border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-bg-tint);overflow:hidden}.app-dialog-list-title{padding:10px 12px;border-bottom:1px solid var(--c-divider);color:var(--c-brand-ink);font-size:13px;font-weight:700}.app-dialog-paged-list{min-height:232px;margin:0;padding:4px 12px;list-style:none}.app-dialog-paged-list li{min-height:28px;padding:6px 2px;border-bottom:1px solid var(--c-divider);color:var(--c-text);font-size:13px;line-height:1.35;white-space:normal;word-break:keep-all}.app-dialog-paged-list li:last-child{border-bottom:0}.app-dialog-footer-message{margin-top:14px;color:var(--c-text);font-weight:700}.btn-toolbar,.data-toolbar .btn-toolbar{padding:7px 16px;background:var(--c-brand);color:#fff;border:none;border-radius:var(--radius-pill);font-weight:700;font-size:12px;cursor:pointer;text-decoration:none}.data-toolbar .btn-toolbar.danger{background:#dc2626}.data-toolbar .btn-toolbar.danger:hover:not(:disabled){background:#b91c1c}.data-toolbar .btn-toolbar.dark{background:var(--c-brand-deep)}.data-toolbar .btn-toolbar.dark:hover{background:var(--c-brand-ink)}.btn:disabled,.btn-mini:disabled,.btn-toolbar:disabled,.data-toolbar .btn-toolbar:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn-toolbar.muted,.data-toolbar .btn-toolbar.muted{background:var(--c-surface);color:var(--c-brand);border:1px solid var(--c-brand)}.btn-toolbar.muted:hover,.data-toolbar .btn-toolbar.muted:hover{background:var(--c-brand-soft)}.recording-category-storage-note{padding:8px 10px}.recording-category-storage-note .feedback-message{margin:0;line-height:1.45;align-items:center}.browser-only-badge{display:inline-flex;align-items:center;margin-left:6px;padding:1px 6px;border:1px solid var(--c-divider);border-radius:var(--radius-pill);background:var(--c-bg-tint);color:var(--c-text-muted);font-size:10px;font-weight:700;white-space:nowrap}.login-history-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px;margin:0 0 10px;padding:10px 12px;border:1px solid var(--c-divider);border-radius:8px;background:var(--c-bg-tint);color:var(--c-text-muted);font-size:12px;line-height:1.5}.login-history-summary b{margin-right:6px;color:var(--c-text)}.login-history-modal>.feedback-message{margin:0 0 10px}@media (max-width: 640px){.login-history-summary{grid-template-columns:1fr}}.btn-toolbar.icon,.data-toolbar .btn-toolbar.icon{padding:7px 10px;min-width:34px;display:inline-flex;align-items:center;justify-content:center}.btn-toolbar.icon svg,.data-toolbar .btn-toolbar.icon svg{display:block}.config-table{width:100%;border-collapse:collapse;font-size:12px;table-layout:fixed}.config-table thead th{background:var(--c-bg-tint);color:var(--c-brand-ink);padding:10px 12px;text-align:left;font-weight:700;border-bottom:2px solid var(--c-divider);font-size:12px;white-space:normal;overflow:visible;text-overflow:clip}.config-table tbody td{padding:10px 12px;border-bottom:1px solid var(--c-divider);white-space:normal;overflow:visible;text-overflow:clip}.config-table tbody tr.selected,.config-table tbody tr.selected td{background:var(--google-blue);color:#fff;font-weight:600}.config-table tbody tr.selected td a{color:#fff}.config-table tbody tr.multi-selected:not(.selected),.config-table tbody tr.multi-selected:not(.selected) td{background:var(--c-brand-soft);color:var(--c-brand-ink)}.config-table tbody tr.multi-selected:not(.selected) td:first-child{box-shadow:inset 3px 0 0 var(--c-brand)}.config-table tbody tr:hover:not(.selected){background:var(--google-blue-light)}.config-table tbody tr:hover:not(.selected) td{color:var(--gray-900)}.config-table tbody tr.group-assigned:not(.selected){background:var(--c-brand-soft)}.config-table tbody tr.group-assigned:not(.selected) td:first-child{box-shadow:inset 3px 0 0 var(--google-blue)}.split-2{display:grid;grid-template-columns:1fr 2.2fr;gap:16px;padding:16px;height:100%}.compact-config-group-layout{grid-template-columns:minmax(210px,.8fr) minmax(0,2.5fr)}.compact-config-group-layout>*{min-width:0}@media (max-width: 900px){.compact-config-group-layout{grid-template-columns:minmax(190px,.7fr) minmax(0,2.3fr);gap:10px;padding:10px}}.single-pane{padding:16px;height:100%}.single-pane>.data-panel{height:calc(100% + -0px)}.period-bar{background:var(--c-surface);border:1.5px solid var(--c-brand-soft);border-radius:var(--radius);padding:18px 22px;margin-bottom:16px}.period-row{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.period-row+.period-row{margin-top:12px}.period-row .period-label{font-size:13px;color:var(--c-brand-ink);font-weight:700;min-width:60px}.period-range{display:inline-flex;align-items:center;gap:8px;background:var(--c-bg-tint);border-radius:var(--radius);padding:6px 12px}.period-range input[type=month],.period-range input[type=date]{border:1px solid var(--c-brand-soft);background:var(--c-surface);padding:6px 10px;border-radius:6px;font-size:13px;color:var(--c-brand-ink);font-weight:600;font-family:inherit}.period-range input:focus{outline:none;border-color:var(--c-brand);box-shadow:0 0 0 3px #2147c01f}.period-range.is-disabled{background:var(--gray-100);border:1px dashed var(--gray-300)}.period-range input:disabled{background:var(--gray-100);border-color:var(--gray-300);color:var(--gray-500);cursor:not-allowed;opacity:1}.period-range .tilde{color:var(--c-text-muted);font-weight:700}.billing-filter-select{width:150px;min-width:150px;height:36px;padding-block:7px;text-align:left}.billing-range-exact{color:var(--c-text-muted);font-size:12px;font-weight:600;white-space:nowrap}.billing-search-help{color:var(--c-text-muted);font-size:11px;margin-left:4px}.period-search-btn{margin-left:auto;padding:10px 28px;background:var(--c-brand);color:#fff;border:none;border-radius:var(--radius-pill);font-size:12px;font-weight:700;cursor:pointer}.period-search-btn:hover{background:var(--c-brand-deep)}.stat-card-icon{display:flex;align-items:center;gap:16px}.stat-card-icon .icon-wrap{width:48px;height:48px;border-radius:12px;background:var(--c-brand-soft);color:var(--c-brand);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.stat-card-icon .icon-wrap.green{background:#dcfce7;color:#15803d}.stat-card-icon .icon-wrap.red{background:#fee2e2;color:#b91c1c}.stat-card-icon .icon-wrap.gold{background:#fef3c7;color:#b45309}.stat-card-icon .meta{flex:1;min-width:0}.stat-card-icon .meta .stat-label{margin-bottom:4px}.stat-card-icon .meta .stat-value{font-size:22px}.billing-stat-card{border-color:#bfdbfe;background:#eff6ff}.billing-stat-card.green{border-color:#bbf7d0;background:#f0fdf4}.billing-stat-card.red{border-color:#fecaca;background:#fef2f2}.billing-stat-card.gold{border-color:#fde68a;background:#fffbeb}.billing-stat-card .stat-number{display:flex;align-items:baseline;gap:5px}.billing-stat-card .stat-unit{margin-top:0;color:var(--c-text-muted);font-size:13px;font-weight:700}.message-edit-modal{background:var(--c-surface);border:1.5px solid var(--c-brand-soft);border-radius:var(--radius);padding:24px;margin-top:12px}.message-edit-modal .label-row{font-size:12px;color:var(--c-brand-ink);font-weight:700;margin-bottom:6px}.message-edit-modal textarea{background:var(--c-brand-soft);border-radius:8px;padding:12px 14px;width:100%;min-height:130px;border:none;font-size:13px;color:var(--c-text);resize:vertical;font-family:inherit}.modal-close-button{width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:#64748b;font:500 24px/1 inherit;cursor:pointer}.modal-close-button:hover{background:#f1f5f9;color:var(--c-text)}.recording-file-picker{display:flex;align-items:center;min-height:46px;padding:9px 12px;border:1px dashed #B8C6D9;border-radius:9px;background:#f8fafc}.recording-file-picker input{width:100%;min-width:0;font-size:12px}.recording-studio{margin-top:14px;padding:15px;border:1px solid #D7E1EE;border-radius:10px;background:#f8fafc}.recording-studio.is-recording{border-color:#fca5a5;background:#fff8f8}.recording-studio.is-paused{border-color:#fde68a;background:#fffbeb}.recording-studio-head,.recording-preview-head,.recording-timer-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.recording-studio-head>div,.recording-preview-head>div{min-width:0}.recording-studio-head strong,.recording-preview-head strong{display:block;font-size:13px;color:var(--c-brand-ink)}.recording-studio-head small{display:block;margin-top:3px;color:#64748b}.recording-status{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;color:#b42318;background:#fee2e2;font-size:11px;font-weight:700}.recording-status i{width:7px;height:7px;border-radius:50%;background:#dc2626}.recording-status.paused{color:#92400e;background:#fef3c7}.recording-status.paused i{background:#d97706}.recording-start-button{margin-top:12px;min-width:112px}.recording-timer-row{margin-top:14px;color:#64748b;font-size:11px}.recording-timer-row span:first-child{color:#b42318;font-size:18px;font-weight:800}.recording-progress{height:7px;margin-top:7px;overflow:hidden;border-radius:999px;background:#fecaca}.recording-progress>span{display:block;height:100%;border-radius:inherit;background:#dc2626;transition:width .18s linear}.recording-action-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:12px}.recording-preview{margin-top:12px;padding:14px;border:1px solid #BFDBFE;border-radius:10px;background:#f5f9ff}.recording-preview-head span{display:block;max-width:400px;margin-top:3px;overflow:visible;color:#475569;font-size:11px;text-overflow:clip;white-space:normal;word-break:keep-all;overflow-wrap:break-word}.recording-preview-head small{flex:0 0 auto;color:#64748b}.recording-preview audio{display:block;width:100%;height:38px;margin-top:11px}.recording-preview-tools{display:grid;grid-template-columns:150px minmax(180px,1fr);gap:14px;margin-top:12px}.recording-preview-tools label{display:flex;align-items:center;gap:8px;color:#475569;font-size:11px;font-weight:700}.recording-preview-tools .input{width:78px;height:32px;padding:4px 8px}.recording-volume-control input{flex:1;min-width:90px;accent-color:var(--c-brand)}.recording-form-message{margin-top:12px}@media (max-width: 560px){.recording-preview-tools{grid-template-columns:1fr}.recording-studio-head{align-items:flex-start}}.app-content{flex:1;position:relative;overflow:hidden}.map-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background:var(--c-bg-tint)}:root[data-theme=dark] .naver-map[data-maptype=NORMAL] img{filter:invert(1) hue-rotate(180deg) brightness(.92) contrast(.95) saturate(.85)}.map-toggle{position:absolute;bottom:16px;right:16px;z-index:5;display:inline-flex;background:var(--c-surface);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}.map-toggle button{border:none;padding:8px 18px;background:transparent;color:var(--c-text-muted);font-weight:700;font-size:12px;cursor:pointer}.map-toggle button.active{background:#1f2937;color:#fff}.floating-panel{background:var(--c-surface);border:1px solid var(--gray-300);border-radius:var(--radius);box-shadow:var(--shadow-lg);position:relative;overflow:hidden}.floating-panel>div:has(table){overflow-x:auto}.panel-card{background:var(--c-surface);border:1px solid var(--gray-300);border-radius:var(--radius);box-shadow:var(--shadow-card)}.panel-card-h{font-size:13px;font-weight:700;color:var(--c-brand-ink);padding:12px 14px 8px;border-bottom:1px solid var(--c-divider);display:flex;align-items:center;justify-content:space-between}.select-tree-panel-header:not(.is-collapsible){flex-direction:column;align-items:stretch;gap:8px;padding-bottom:10px}.select-tree-panel-title{display:flex;align-items:center;gap:4px;min-width:0}.select-tree-panel-title-text{min-width:0;word-break:keep-all}.select-tree-panel-actions{display:flex;align-items:center;gap:4px;width:100%}.select-tree-panel-actions .btn-mini{flex:1 1 0;min-width:0;padding-inline:5px;white-space:nowrap}.panel-card-h .btn-mini{background:var(--c-text-soft);color:#fff;padding:3px 10px;border-radius:var(--radius-pill);border:none;font-size:11px;cursor:pointer}.btn-mini.danger,.panel-card-h .btn-mini.danger{background:#dc2626;color:#fff;border:none}.btn-mini.danger:hover,.panel-card-h .btn-mini.danger:hover{background:#b91c1c}.btn-mini.muted,.panel-card-h .btn-mini.muted{background:var(--c-text-soft);color:#fff;border:none}.selection-detail-body{box-sizing:border-box;min-height:70px;padding:10px 12px 12px;font-size:14px;line-height:1.55;overflow-wrap:anywhere}.selection-detail-body.selection-detail-summary{line-height:1.8}.selection-detail-body.selection-detail-scroll{max-height:clamp(120px,30vh,360px);overflow-y:auto;overscroll-behavior:contain}.btn-mini,.panel-card-h .btn-mini{-moz-appearance:none;appearance:none;-webkit-appearance:none;min-width:30px;min-height:30px;padding:5px 9px;border:1px solid transparent;border-radius:6px;background:var(--c-brand);color:#fff;font-size:12px;font-weight:700;line-height:1;cursor:pointer;outline:none;box-shadow:none}.btn-mini:focus,.btn-mini:focus-visible,.btn-mini:active,.panel-card-h .btn-mini:focus,.panel-card-h .btn-mini:focus-visible,.panel-card-h .btn-mini:active{outline:none!important;box-shadow:none!important;border-color:transparent!important}.btn-toolbar,.data-toolbar .btn-toolbar{-moz-appearance:none;appearance:none;-webkit-appearance:none;border:1px solid transparent;outline:none}.btn-toolbar:focus,.btn-toolbar:focus-visible,.btn-toolbar:active,.data-toolbar .btn-toolbar:focus,.data-toolbar .btn-toolbar:focus-visible,.data-toolbar .btn-toolbar:active{outline:none!important;box-shadow:none!important}.btn-toolbar.muted,.data-toolbar .btn-toolbar.muted{border:1px solid var(--c-brand)}.right-dock{position:absolute;top:16px;right:16px;width:280px;display:flex;flex-direction:column;gap:12px;z-index:4;max-height:calc(100vh - 200px)}.right-dock.with-map-toggle{top:16px}.right-dock .dock-card{background:var(--c-surface);border:1px solid var(--gray-300);border-radius:var(--radius);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;min-height:0}.right-dock .dock-card+.dock-card{flex:1}.right-dock .dock-card .panel-card-h{flex-shrink:0;position:sticky;top:0;z-index:2;background:var(--c-surface);min-height:38px}.right-dock .dock-card{flex:1;overflow-y:auto}.right-dock .dock-card .dock-table thead th{position:sticky;top:38px;z-index:1;background:var(--c-bg-tint)}.dock-table{width:100%;border-collapse:collapse;font-size:12px;table-layout:fixed}.dock-table th,.dock-table td{padding:6px 10px;text-align:left;border-bottom:1px solid var(--c-divider);white-space:normal;overflow:visible;text-overflow:clip}.search-add-table .search-add-select-col{width:56px;min-width:56px;padding-inline:8px;text-align:center;white-space:nowrap!important;word-break:normal!important}.dock-table td:nth-child(2){min-width:0}.dock-table .col-phone{width:128px;min-width:128px;text-align:left;white-space:nowrap!important;font-variant-numeric:tabular-nums}.dock-table th{color:var(--c-brand-ink);font-weight:700;background:var(--c-bg-tint)}.dock-table tbody tr.dock-row:hover{background:var(--c-bg-tint)}.dock-status-icon{display:inline-flex;align-items:center;justify-content:center;margin-right:7px;vertical-align:-1px;font-style:normal;flex:0 0 auto}.dock-status-icon.dot{width:8px;height:8px;border-radius:50%;box-shadow:0 0 0 2px #ffffffe6}.dock-status-icon.complete{width:12px;height:12px;font-size:14px;line-height:1;font-weight:900}.dock-status-icon.blinking{animation:dock-status-dot-pulse 1.2s ease-in-out infinite}@keyframes dock-status-dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.25;transform:scale(.7)}}.dock-table tbody tr.dock-row.selected{background:var(--c-brand-soft)}.dock-table tbody tr.dock-row.selected td{color:var(--c-brand-ink);font-weight:700}.map-pin{display:block;line-height:0}@keyframes map-pin-blink{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.88)}}.map-pin.blink{animation:map-pin-blink 1s ease-in-out infinite;transform-origin:50% 100%}@media (prefers-reduced-motion: reduce){.map-pin.blink{animation:map-pin-blink 2.4s ease-in-out infinite}}.device-popup{position:absolute;background:var(--c-surface);border-left:4px solid var(--c-status-fault);border-radius:var(--radius);padding:10px 14px;box-shadow:var(--shadow-md);font-size:12px;z-index:4;min-width:200px}.device-popup b{color:var(--c-brand-ink)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 20px;border:1px solid transparent;border-radius:var(--radius-pill);font-size:13px;font-weight:700;cursor:pointer;background:var(--c-surface);color:var(--c-text);font-family:inherit;transition:.15s}.btn-primary{background:var(--c-brand);color:#fff}.btn-primary:hover{background:var(--c-brand-deep)}.btn-secondary{background:var(--c-brand-soft);color:var(--c-brand-ink)}.btn-secondary:hover{background:#c9d7f2}.btn-outline{background:var(--c-surface);border-color:var(--c-brand);color:var(--c-brand)}.btn-outline:hover{background:var(--c-brand-soft)}.btn-block{width:100%;padding:12px;font-size:14px}.btn-sm{padding:6px 14px;font-size:12px}button.btn-preview,.btn.btn-preview,.btn-mini.btn-preview,.panel-card-h .btn-mini.btn-preview,button.btn-download,.btn-toolbar.btn-download,.data-toolbar .btn-toolbar.btn-download{background:#022450!important;border-color:#022450!important;color:#fff!important}button.btn-preview:hover:not(:disabled),.btn.btn-preview:hover:not(:disabled),.btn-mini.btn-preview:hover:not(:disabled),.panel-card-h .btn-mini.btn-preview:hover:not(:disabled),button.btn-download:hover:not(:disabled),.btn-toolbar.btn-download:hover:not(:disabled),.data-toolbar .btn-toolbar.btn-download:hover:not(:disabled){background:#022450!important;border-color:#022450!important;color:#fff!important;box-shadow:0 2px 6px #02245047}button.btn-preview:disabled,button.btn-download:disabled{opacity:.55}.form-group{margin-bottom:18px}.form-group>label{display:block;font-size:12px;color:var(--c-brand-ink);font-weight:700;margin-bottom:6px}.input{width:100%;padding:11px 14px;border:1px solid var(--c-divider);border-radius:var(--radius);font-size:13px;background:var(--c-surface);color:var(--c-text);font-family:inherit}.input::placeholder{color:var(--c-text-soft)}.input:focus{outline:none;border-color:var(--c-brand);box-shadow:0 0 0 3px #2147c01f}.input-row{display:flex;gap:8px;align-items:stretch}.input-row .input{flex:1}.auth-shell{min-height:calc(100vh - 44px);display:flex;align-items:center;justify-content:center;padding:20px}.auth-card{background:var(--c-surface);border-radius:var(--radius-lg);padding:48px 48px 40px;width:100%;max-width:440px;box-shadow:var(--shadow-lg)}.auth-card.wide{max-width:520px;border:1px solid var(--c-brand-soft)}.auth-brand{text-align:center;margin-bottom:32px}.auth-brand-img{width:96px;height:96px;margin:0 auto 16px;display:block}.auth-brand-en{font-size:14px;color:var(--c-brand);font-weight:700;margin:0 0 4px}.auth-brand-ko{font-size:22px;color:var(--c-text);font-weight:700;margin:0}.auth-card-title{font-size:18px;color:var(--c-brand-ink);font-weight:700;padding-bottom:12px;border-bottom:1px solid var(--c-brand-soft);margin-bottom:24px}.auth-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:24px}.auth-actions .btn{padding:10px 26px}.feedback-message{display:flex;align-items:flex-start;gap:9px;margin-top:10px;padding:11px 12px;border:1px solid transparent;border-radius:8px;font-size:12px;line-height:1.55}.feedback-icon{flex:0 0 18px;width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;margin-top:1px}.feedback-text{flex:1;min-width:0}.feedback-error{color:#b42318;background:#fff7f6;border-color:#fecaca}.feedback-error .feedback-icon{color:#fff;background:#d92d20}.feedback-warning{color:#92400e;background:#fffbeb;border-color:#fde68a}.feedback-warning .feedback-icon{color:#fff;background:#d97706}.feedback-success{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.feedback-success .feedback-icon{color:#fff;background:#16a34a}.feedback-info{color:var(--c-brand-ink);background:#f5f8ff;border-color:#c7d7fe}.feedback-info .feedback-icon{color:#fff;background:var(--c-brand)}.feedback-compact{padding:0;border:0;background:transparent;margin-top:7px;font-size:11px}.feedback-compact .feedback-icon{flex-basis:16px;width:16px;height:16px;font-size:10px}.input[aria-invalid=true]{border-color:#d92d20;box-shadow:0 0 0 3px #d92d201a}.notice-center{position:fixed;top:18px;right:18px;z-index:10000;display:flex;flex-direction:column;gap:10px;width:min(390px,calc(100vw - 32px));pointer-events:none}.app-notice{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;padding:13px 12px 13px 14px;border:1px solid var(--c-divider);border-left-width:4px;border-radius:10px;background:var(--c-surface);color:var(--c-text);box-shadow:0 12px 32px #0f172a2e;animation:notice-in .18s ease-out}.app-notice.notice-error{border-left-color:#d92d20}.app-notice.notice-success{border-left-color:#16a34a}.app-notice.notice-warning{border-left-color:#d97706}.notice-icon{flex:0 0 20px;width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;background:#d97706;font-size:12px;font-weight:800}.notice-error .notice-icon{background:#d92d20}.notice-success .notice-icon{background:#16a34a}.notice-message{flex:1;white-space:pre-line;font-size:12px;line-height:1.55}.notice-close{border:0;background:transparent;color:var(--c-text-muted);font-size:20px;line-height:18px;padding:0 2px;cursor:pointer}.notice-close:hover{color:var(--c-text)}@keyframes notice-in{0%{opacity:0;transform:translateY(-6px) translate(8px)}to{opacity:1;transform:translateY(0) translate(0)}}@media (max-width: 600px){.notice-center{top:10px;right:10px;width:calc(100vw - 20px)}}.card{background:var(--c-surface);border:1px solid var(--c-divider);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow-sm);margin-bottom:14px}.card h3{font-size:14px;margin:0 0 12px;color:var(--c-brand-ink)}.dock-table td.empty,.config-table td.empty{text-align:center;color:var(--c-text-muted);padding:20px 12px}.badge{display:inline-block;background:var(--c-brand-soft);color:var(--c-brand-ink);padding:2px 8px;border-radius:var(--radius-pill);font-size:11px;font-weight:700}.badge-ok{background:#dcfce7;color:#16a34a}.badge-warn{background:#fef3c7;color:#d97706}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px}.stat-card{background:var(--c-surface);border:1px solid var(--c-divider);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow-sm)}.stat-label{color:var(--c-text-muted);font-size:12px;margin-bottom:6px}.stat-value{color:var(--c-brand-ink);font-size:26px;font-weight:700;line-height:1}.stat-unit{color:var(--c-text-muted);font-size:11px;margin-top:4px}.broadcast-left-stack{position:absolute;top:16px;left:16px;width:260px;display:flex;flex-direction:column;gap:12px;z-index:4}.send-type-group{display:flex;flex-wrap:nowrap;gap:6px;padding:12px 14px}.send-type-pill{flex:1 1 0;padding:8px 6px;border:1px solid var(--c-brand);border-radius:var(--radius-pill);background:var(--c-surface);color:var(--c-brand);font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap;text-align:center;min-width:0}.send-type-pill.active{background:var(--c-brand);color:#fff}.broadcast-type-group{flex-wrap:wrap}.broadcast-type-group .send-type-pill{flex:1 1 calc(50% - 3px)}.broadcast-type-group .send-type-pill:nth-child(3){flex-basis:100%}.tree{list-style:none;margin:0;padding:8px 12px;max-height:220px;overflow-y:auto;font-size:12px}.tree li{padding:4px 8px;cursor:pointer;color:var(--c-text)}.tree li:hover{color:var(--c-brand)}.tree li.active{background:var(--c-brand-ink);color:#fff;border-radius:6px}.tree ul{list-style:none;padding-left:16px;margin:0}.tree .group-folder:has(>.tree-caret):before{content:none}.tree.select-tree{padding:6px 8px}.tree.select-tree li{padding:0;color:var(--c-text)}.tree.select-tree li:hover{color:inherit}.select-tree-row{display:grid;grid-template-columns:18px 20px minmax(0,1fr);align-items:center;column-gap:6px;min-height:32px;padding:2px 6px;border-radius:6px;cursor:pointer}.select-tree-row:hover{background:var(--c-bg-tint)}.select-tree-check{width:15px;height:15px;margin:0;accent-color:var(--c-brand);cursor:pointer}.select-tree-row .tree-caret,.select-tree-caret-placeholder{width:20px;height:20px}.select-tree-label{min-width:0;overflow:visible;text-overflow:clip;white-space:normal;font-size:12px;font-weight:400;color:var(--c-text)}.select-tree-label.root{color:var(--c-brand-ink);font-weight:700}.select-tree-count{color:var(--c-text-soft);font-weight:400}.select-tree-children{list-style:none;margin:0 0 0 15px!important;padding:0 0 0 14px!important;border-left:1px solid var(--c-divider)}.select-tree-item .select-tree-label{color:var(--c-text)}.select-tree-item .select-tree-row{grid-template-columns:18px minmax(0,1fr);column-gap:6px}.select-tree-empty{min-height:28px;display:flex;align-items:center;padding-left:50px!important;color:var(--c-text-soft)!important;font-size:11px;cursor:default!important}.message-textarea{width:100%;min-height:120px;padding:10px;border:1px solid var(--c-border);border-radius:6px;font-size:12px;color:var(--c-text);background:var(--c-bg-tint);resize:vertical;font-family:inherit}.message-textarea:focus{outline:none;border-color:var(--c-brand);background:var(--c-surface)}.message-textarea[aria-invalid=true]{border-color:#d92d20;box-shadow:0 0 0 3px #d92d201a}.tts-message-list-popover{position:fixed;z-index:30;margin:0;max-height:min(360px,calc(100vh - 24px));display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg)}.tts-message-list-items{margin:0;padding:8px;overflow-y:auto}.tts-message-list-items .message-item{padding:7px 9px;border-radius:5px;cursor:pointer;overflow:visible;text-overflow:clip;white-space:normal;word-break:keep-all;overflow-wrap:break-word}.tts-message-list-items .message-item:hover{background:var(--c-bg-tint)}.tts-message-list-items .message-item.active{background:var(--c-brand-soft);color:var(--c-brand-ink);font-weight:700}.dock-table tbody tr.selected>td{background:#eaf2ff!important;color:var(--c-brand-ink)}.dock-table tbody tr.selected>td:first-child{box-shadow:inset 4px 0 0 var(--c-brand)}.dock-table tbody tr.selected:hover>td{background:#dfebff!important}.dock-table tbody tr.multi-selected:not(.selected)>td{background:#f4f7fd}.dock-table tbody tr.multi-selected:not(.selected)>td:first-child{box-shadow:inset 3px 0 #8ba9e8}:root[data-theme=dark] .dock-table tbody tr.selected>td{background:#173a63!important;color:#fff}:root[data-theme=dark] .dock-table tbody tr.selected:hover>td{background:#1d4777!important}:root[data-theme=dark] .dock-table tbody tr.multi-selected:not(.selected)>td{background:#24374f;color:#fff}:root[data-theme=dark] .config-table tbody tr.selected,:root[data-theme=dark] .config-table tbody tr.selected td{color:#fff}.schedule-repeat-rule{display:block;margin-top:2px;font-size:11px;color:var(--c-text-muted);white-space:nowrap}.header-filter{position:relative;display:flex;width:100%;min-width:0}.header-filter-button{display:flex;align-items:center;justify-content:space-between;gap:2px;width:100%;min-width:0;padding:3px 4px;border:1px solid var(--c-border);border-radius:4px;background:var(--c-surface);font:inherit;color:inherit;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.header-filter-button:hover{background:var(--c-bg-tint);border-color:var(--c-brand);color:var(--c-brand-ink)}.header-filter-button:focus-visible{outline:2px solid var(--c-brand);outline-offset:1px}.header-filter-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-filter-icon{font-size:9px;line-height:1;opacity:.75;flex:0 0 auto}.header-filter-button.active{background:var(--c-brand-soft);border-color:var(--c-brand);color:var(--c-brand-ink);font-weight:700}.header-filter-button.active .header-filter-icon{opacity:1}.header-filter-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:30;min-width:128px;max-height:260px;overflow-y:auto;margin:0;padding:4px;list-style:none;background:var(--c-surface);border:1px solid var(--c-divider);border-radius:6px;box-shadow:var(--shadow-md);font-weight:400}.header-filter-menu li{list-style:none}.header-filter-menu button{display:block;width:100%;padding:6px 8px;border:none;border-radius:4px;background:transparent;text-align:left;font-size:12px;color:var(--c-text);white-space:nowrap;cursor:pointer}.header-filter-menu button:hover{background:var(--c-bg-tint)}.header-filter-menu button.selected{background:var(--c-brand-soft);color:var(--c-brand-ink);font-weight:700}.header-filter-empty{padding:6px 8px;font-size:12px;color:var(--c-text-muted)}.dock-table td.broadcast-name-cell{cursor:pointer}.dock-table td.broadcast-name-cell .cell-text-body{text-decoration:underline;text-underline-offset:2px;text-decoration-color:currentColor}.result-count-link{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;padding:0;color:inherit;font:inherit;font-weight:700;line-height:inherit;text-decoration:underline;text-underline-offset:2px;cursor:pointer}.result-count-link.success{color:#16a34a}.result-count-link.failure{color:#dc2626}.result-count-link:hover{color:var(--c-brand-ink)}.result-count-link:focus-visible{outline:2px solid var(--c-brand);outline-offset:2px;border-radius:2px}.dock-table th.result-count-col,.dock-table td.result-count-col{text-align:center}.byte-counter{font-size:11px;color:var(--c-text-muted);text-align:right;padding:0 12px 4px}.sms-byte-counter{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;column-gap:8px;row-gap:2px}.sms-byte-counter>span,.sms-byte-counter>b{white-space:nowrap}.panel-actions{padding:10px 14px;display:flex;gap:8px}.broadcast-bottom{position:absolute;bottom:16px;left:50%;transform:translate(-50%);width:min(720px,80%);background:var(--c-surface);border:1.5px solid var(--c-brand);border-radius:var(--radius);padding:14px 18px;box-shadow:var(--shadow-md);z-index:4}.broadcast-bottom-title{font-size:13px;color:var(--c-brand-ink);font-weight:700;margin-bottom:8px;letter-spacing:.5em}.broadcast-bottom-row{display:flex;align-items:center;gap:12px}.broadcast-bottom-row .input{flex:1}.broadcast-bottom-row .btn{padding:8px 18px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;display:flex;align-items:center;justify-content:center;z-index:150}.modal-overlay.app-dialog-overlay{z-index:12000}.modal{background:var(--c-surface);border-radius:var(--radius-lg);border:1px solid var(--c-brand-soft);padding:24px 28px;width:520px;max-width:92vw;box-shadow:var(--shadow-lg)}.modal-title{font-size:16px;color:var(--c-brand-ink);font-weight:700;border-bottom:1px solid var(--c-divider);padding-bottom:10px;margin-bottom:16px}.modal-section{margin:14px 0;padding-bottom:14px;border-bottom:1px dashed var(--c-divider)}.modal-section:last-of-type{border-bottom:none}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.org-stat-number{display:flex;align-items:baseline;gap:5px}.org-stat-number .stat-unit{margin-top:0;font-size:12px;font-weight:700}.org-data-toolbar input.search,.org-data-toolbar .spinner-input,.org-data-toolbar .btn{height:36px;box-sizing:border-box}.org-data-toolbar input.search{min-width:220px}.org-data-toolbar select.org-filter-select{display:block;padding:7px 28px 7px 10px;line-height:20px;text-align:left;text-align-last:left;vertical-align:middle;cursor:pointer}.org-table-action{min-width:54px;padding:5px 12px}.org-action-stop{background:#fff;border-color:#dc2626;color:#dc2626}.org-action-stop:hover{background:#fef2f2}@media (max-width: 768px){.billing-range-exact,.billing-search-help{flex-basis:100%}}.settings-frame .modal-actions{position:sticky;bottom:0;background:var(--c-surface);padding:12px 0 2px;margin-top:12px;border-top:1px solid var(--c-divider);z-index:5}.radio-line{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:var(--c-brand-ink);margin-bottom:10px}.radio-line input{accent-color:var(--c-brand)}.time-picker{display:flex;gap:6px;align-items:center;font-size:13px}.time-picker .pill,.time-picker .pill-select{padding:6px 12px;border:1px solid var(--c-brand-soft);border-radius:6px;background:var(--c-brand-soft);color:var(--c-brand-ink);min-width:48px;text-align:center;font-weight:700}.time-picker .pill-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;font-size:13px;padding-right:22px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path fill='%23234' d='M5 6 0 0h10z'/></svg>");background-repeat:no-repeat;background-position:right 6px center}.time-picker .pill-select:hover{background-color:#c7dafc}.time-picker .pill-select:focus{outline:2px solid var(--c-brand);outline-offset:1px}.schedule-time-line{display:flex;align-items:center;gap:8px;white-space:nowrap}.schedule-time-line .time-picker{flex:0 0 auto}.weekday-row{display:flex;gap:8px;flex-wrap:wrap}.weekday-row label{display:flex;align-items:center;gap:4px;font-size:12px}.weekday-row input{accent-color:var(--c-brand)}.alert-inline{background:#fff5d9;border:1px solid #F3D88C;border-radius:6px;padding:12px 16px;font-size:12px;color:#8a6300;margin-top:12px;line-height:1.7;word-break:keep-all;overflow-wrap:break-word}.broadcast-left-stack{max-height:calc(100% - 32px);overflow-y:auto;overflow-x:hidden}.broadcast-left-stack .panel-card{flex-shrink:0}.floating-panel{max-height:calc(100% - 32px);overflow:auto}.floating-panel table{min-width:640px}.floating-panel .dock-table thead th{position:sticky;top:0;z-index:2;background:var(--c-bg-tint)}.right-dock{overflow-y:auto}.data-panel{overflow:auto}.settings-frame{overflow:auto!important}.data-panel .config-table{min-width:680px}.right-dock .dock-table th,.right-dock .dock-table td{white-space:normal;word-break:keep-all}.right-dock .dock-table th{word-break:keep-all;line-height:1.25;vertical-align:middle}.dock-name{vertical-align:top}.dock-name .dock-name-main,.dock-name .dock-fail{display:block;white-space:normal;overflow:visible;text-overflow:clip;word-break:keep-all;overflow-wrap:break-word}.dock-name .dock-fail{font-size:11px;color:#dc2626;margin-top:2px}.broadcast-left-stack::-webkit-scrollbar,.floating-panel::-webkit-scrollbar,.right-dock::-webkit-scrollbar,.data-panel::-webkit-scrollbar,.settings-frame::-webkit-scrollbar{width:8px;height:8px}.broadcast-left-stack::-webkit-scrollbar-thumb,.floating-panel::-webkit-scrollbar-thumb,.right-dock::-webkit-scrollbar-thumb,.data-panel::-webkit-scrollbar-thumb,.settings-frame::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}@media (max-width: 1280px){.broadcast-bottom{width:min(600px,70%)}}.config-table thead th,.config-table tbody td,.dock-table th,.dock-table td{white-space:normal;overflow:visible;text-overflow:clip;word-break:keep-all}.config-table tbody td,.dock-table td{vertical-align:middle;line-height:1.5}.floating-panel .dock-table th,.floating-panel .dock-table td{white-space:normal;overflow:visible;text-overflow:clip;word-break:keep-all}.config-table.cfg-list{table-layout:auto}.config-table.cfg-list td{white-space:nowrap;overflow:visible;word-break:normal}.user-config-page,.user-config-page .user-config-layout,.user-config-page .user-group-stack,.user-config-page .data-panel,.user-config-page .tree-panel{min-width:0}.user-config-page .user-config-layout{display:grid;grid-template-columns:minmax(0,2.35fr) minmax(260px,.85fr);gap:16px;padding:16px;height:100%;min-height:0}.user-config-page .user-group-stack{display:flex;flex-direction:column;align-self:start;gap:16px;min-height:0;max-height:100%;overflow-y:auto}.user-config-page .user-group-stack .tree-panel{flex:0 0 auto;height:auto;min-height:0;overflow:hidden}.user-config-page .user-group-stack .tree-list{flex:0 1 auto;max-height:300px;overflow-y:auto}.user-config-page .user-list-panel{overflow-x:auto}.user-config-page .user-config-table{min-width:0;width:100%;table-layout:fixed}.user-config-table .user-col-kind{width:18%}.user-config-table .user-col-id{width:16%}.user-config-table .user-col-name{width:14%}.user-config-table .user-col-agency{width:21%}.user-config-table .user-col-department{width:12%}.user-config-table .user-col-position{width:11%}.user-config-table .user-col-status{width:8%}.user-config-page .user-config-table th,.user-config-page .user-config-table td{padding-left:6px;padding-right:6px;white-space:normal;overflow:visible;text-overflow:clip;word-break:keep-all}.user-config-page .user-config-table .cell-text-body.open.wrap{width:min(360px,40vw);max-width:min(360px,40vw);white-space:pre-wrap;overflow-wrap:anywhere;word-break:keep-all}.user-config-page .data-toolbar{flex-wrap:wrap;row-gap:6px}@media (max-width: 768px){.user-config-page .user-config-layout{grid-template-columns:minmax(0,1fr);height:auto}.user-config-page .user-group-stack{max-height:none}.user-config-page .user-config-table{min-width:680px}}.cell-text{display:inline-flex;align-items:center;gap:3px;max-width:100%;vertical-align:middle}.cell-text-body{overflow:hidden;white-space:nowrap;word-break:normal}.cell-text-measure{position:fixed;top:0;left:-100000px;display:inline-block;visibility:hidden;pointer-events:none;max-width:none;overflow:visible;white-space:nowrap;font:inherit;letter-spacing:inherit}.cell-text.open{width:100%;min-width:0;align-items:flex-start}.cell-text-body.open{flex:1 1 auto;min-width:0;overflow:visible;white-space:pre-wrap;word-break:keep-all;overflow-wrap:anywhere;max-width:none}.cell-text-body.open.wrap{white-space:pre-wrap;word-break:keep-all;overflow-wrap:anywhere;max-width:none}.cell-more{flex:0 0 auto;border:none;background:none;padding:0 2px;color:var(--c-brand);font-size:13px;font-weight:700;letter-spacing:1px;line-height:1;cursor:pointer}.cell-more:hover{color:var(--c-brand-ink);text-decoration:underline}.config-table tbody tr.selected .cell-more{color:#fff}.live-badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;letter-spacing:-.2px;color:#16a34a;background:#16a34a1a;border:1px solid rgba(22,163,74,.28);border-radius:10px;padding:1px 7px 1px 5px}.live-badge .live-dot{width:6px;height:6px;border-radius:50%;background:#16a34a;animation:live-pulse 1.6s ease-in-out infinite}@keyframes live-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.25;transform:scale(.75)}}:root[data-theme=dark] .live-badge{color:#5dc967;background:#5dc9671f;border-color:#5dc9674d}:root[data-theme=dark] .live-badge .live-dot{background:#5dc967}.live-badge.idle{color:var(--c-text-muted);background:transparent;border-color:var(--c-border)}.live-badge.idle .live-dot{background:#94a3b8;animation:none}:root[data-theme=dark] .live-badge.idle{color:var(--c-text-muted);background:transparent;border-color:var(--c-border)}:root[data-theme=dark] .live-badge.idle .live-dot{background:#94a3b8}.status-lamp{display:inline-flex;align-items:center;gap:5px;font-size:11px;white-space:nowrap}.status-lamp-icon{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;font-style:normal}.status-lamp-icon.dot{width:8px;height:8px;border-radius:50%}.status-lamp-icon.complete{width:12px;height:12px;font-size:14px;line-height:1;font-weight:900}.status-lamp-icon.fail{width:12px;height:12px;font-size:16px;line-height:1;font-weight:900}.status-lamp-icon.on{animation:live-pulse 1.6s ease-in-out infinite}.live-list-header{gap:12px;padding:10px 16px 12px;border-bottom:1px solid var(--c-divider)}.live-list-body{overflow:hidden!important}.live-list-table-scroll{flex:1 1 auto;min-width:0;overflow-x:auto}body :is(button,a[href],input,select,textarea,[role=button],[tabindex]:not([tabindex="-1"])):focus-visible{outline:3px solid var(--c-brand, #1A73E8)!important;outline-offset:2px!important}.privacy-phone-field{display:flex;align-items:stretch;gap:6px}.privacy-phone-field .input{flex:1 1 auto;min-width:0}.privacy-phone-field .btn{flex:0 0 auto;white-space:nowrap}.privacy-phone-help{margin-top:4px;color:var(--c-text-muted);font-size:11px;line-height:1.45}.device-config-table tbody tr:focus-visible{outline:3px solid color-mix(in srgb,var(--c-brand) 65%,transparent);outline-offset:-3px}.app-primary-tabs{display:flex;align-items:center;gap:8px;flex:0 0 auto;min-width:max-content}.mobile-label,.mobile-panel-scrim{display:none}@media (min-width: 769px) and (max-width: 1280px){.right-dock{width:248px}.wide-list-panel{right:280px!important}.center-list-panel,.sms-send-bottom{left:284px!important;right:280px!important}.broadcast-bottom:not(.sms-send-bottom){width:min(560px,calc(100% - 564px))}.broadcast-bottom-row{flex-wrap:wrap}.broadcast-bottom-row .input{flex:1 1 140px;min-width:140px}}@media (min-width: 769px) and (max-width: 1100px){.app-tabbar{flex-wrap:wrap}.app-primary-tabs,.app-tabbar .user-cluster{flex:1 0 100%;width:100%;min-width:0}.app-primary-tabs{overflow-x:auto;overscroll-behavior-inline:contain}.app-tabbar .user-cluster{margin-left:0;justify-content:flex-end;overflow-x:auto;overscroll-behavior-inline:contain}}@media (min-width: 769px) and (max-width: 1024px){.right-dock{width:220px}.wide-list-panel{right:252px!important}.center-list-panel,.sms-send-bottom{left:256px!important;right:252px!important}.broadcast-bottom:not(.sms-send-bottom){width:min(440px,calc(100% - 508px))}.app-tabbar{flex-wrap:wrap}.live-list-header{align-items:flex-start!important;flex-wrap:wrap;row-gap:8px}.live-list-header>span{min-width:0;flex-wrap:wrap}}@media (min-width: 769px) and (max-width: 920px){.broadcast-left-stack{width:190px!important}.right-dock{width:190px}.wide-list-panel{right:214px!important}.center-list-panel,.sms-send-bottom{left:214px!important;right:214px!important}.broadcast-bottom:not(.sms-send-bottom){width:min(560px,calc(100% - 444px))}.send-type-group{flex-wrap:wrap}}@media (max-width: 768px){html,body,#root{width:100%;max-width:100%;min-height:100%;overflow-x:hidden}body.menu-open,body.dock-open{overflow:hidden}.app-shell{width:100%;height:100vh;height:100dvh;min-height:100vh;min-height:100dvh;overflow:hidden}.app-main{width:100%;height:100%;min-width:0;min-height:0}.app-sidebar{width:min(82vw,280px)!important;height:100vh;height:100dvh;padding:max(16px,env(safe-area-inset-top)) 12px max(18px,env(safe-area-inset-bottom));align-items:stretch;overflow-y:auto;overscroll-behavior:contain;z-index:100}.app-sidebar .sidebar-logo{flex:0 0 auto}.app-sidebar .side-menu li a{min-height:44px;padding:11px 16px;align-items:flex-start;justify-content:center;font-size:14px;text-align:left}body.menu-open:after{content:none}.mobile-panel-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:98;padding:0;border:0;background:#0000006b;cursor:default}.mobile-panel-controls{right:max(10px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));z-index:40;gap:6px}.mobile-panel-btn{min-height:44px;padding:9px 14px;border-color:var(--c-brand);background:var(--c-surface);color:var(--c-brand-ink)}.right-dock,.right-dock.with-map-toggle{position:fixed!important;top:0!important;right:0!important;bottom:0!important;left:auto!important;width:min(340px,calc(100vw - 24px))!important;height:100vh;height:100dvh;max-height:none;padding:max(14px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) calc(70px + env(safe-area-inset-bottom)) 12px;overflow-y:auto;overscroll-behavior:contain;background:var(--c-bg-page);transform:translate(105%);z-index:100}body.dock-open .right-dock{transform:translate(0)}.right-dock .dock-card{flex:1 0 min(280px,44dvh)}.app-tabbar{flex:0 0 auto;flex-wrap:wrap;align-items:stretch;gap:5px;min-height:0;padding:7px 10px;overflow:visible}.app-primary-tabs{order:1;width:100%;min-width:0;gap:4px;padding-bottom:2px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}.app-tab{flex:0 0 auto;min-height:40px;padding:8px 13px;font-size:14px;white-space:nowrap}.app-tabbar .user-cluster{order:2;width:100%;min-width:0;margin-left:0;padding-bottom:2px;justify-content:flex-end;gap:5px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin}.user-cluster .user-name,.user-cluster .user-badge{display:none}.user-cluster .session-countdown,.user-cluster .logout-btn,.user-cluster .theme-toggle{flex:0 0 auto;min-height:40px}.user-cluster .theme-toggle{width:40px;height:40px}.app-content{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;min-height:0;padding:0 0 calc(72px + env(safe-area-inset-bottom));overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;background:var(--c-bg-page)}.map-canvas{order:0;position:relative!important;inset:auto!important;width:calc(100% - 24px)!important;height:clamp(260px,42dvh,420px)!important;min-height:260px;margin:12px;border:1px solid var(--c-border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}.map-toggle{right:10px;bottom:10px}.map-toggle button{min-height:40px;padding-inline:13px}.device-popup{max-width:calc(100vw - 48px)}.map-coordinate-warning{top:10px;right:10px;bottom:auto!important;max-width:calc(100% - 20px);overflow-wrap:anywhere}.broadcast-left-stack,.floating-panel{position:relative!important;inset:auto!important;top:auto!important;right:auto!important;bottom:auto!important;left:auto!important;width:calc(100% - 24px)!important;max-width:calc(100% - 24px);height:auto!important;max-height:none;margin:12px 12px 0}.broadcast-left-stack{order:2;gap:10px;overflow:visible}.floating-panel{order:1;overflow:auto;-webkit-overflow-scrolling:touch}.floating-panel table{min-width:680px}.live-list-header{align-items:flex-start!important;flex-wrap:wrap;row-gap:8px}.live-list-header>span{min-width:0;flex-wrap:wrap}.live-list-body{display:block!important}.broadcast-bottom{order:3;position:relative!important;inset:auto!important;top:auto!important;right:auto!important;bottom:auto!important;left:auto!important;transform:none!important;width:calc(100% - 24px)!important;max-width:calc(100% - 24px);margin:12px;padding:14px}.broadcast-bottom-row{flex-wrap:wrap;align-items:stretch;gap:8px}.broadcast-bottom-row>label:not(.btn){flex:0 0 48px;align-self:center}.broadcast-bottom-row>.input{flex:1 1 calc(100% - 60px);min-width:0}.broadcast-bottom-row>.btn,.broadcast-bottom-row>label.btn{flex:1 1 140px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.settings-overlay{padding:0;align-items:stretch}.settings-modal{width:100%;height:100vh;height:100dvh;max-width:none;max-height:none;border-radius:0}.settings-modal-h{min-height:54px;padding:10px 14px}.settings-modal-close{width:44px;height:44px}.settings-tabs{padding:7px 10px;overscroll-behavior-inline:contain}.settings-tab{min-height:40px;padding:7px 13px}.settings-frame{min-width:0;min-height:0;overflow-x:hidden!important;overflow-y:auto!important}.settings-page{min-width:0;padding:12px!important}.settings-card{width:100%;max-width:none;padding:18px!important;margin:0}.settings-grid-2,.split-2,.device-config-page .device-config-layout,.resident-config-layout{grid-template-columns:minmax(0,1fr)!important}.split-2,.single-pane,.user-config-page .user-config-layout{height:auto;min-width:0;padding:0;gap:12px}.tree-panel,.data-panel{min-width:0;height:auto;padding:14px}.tree-list{flex:0 1 auto}.data-panel{overflow:auto;-webkit-overflow-scrolling:touch}.data-panel .config-table,.device-config-page .device-config-panel .device-config-table,.resident-config-page .resident-data-panel .resident-config-table,.user-config-page .user-config-table{min-width:680px}.config-table th,.config-table td,.dock-table th,.dock-table td{padding:7px 8px;font-size:12px}.data-toolbar{align-items:stretch}.data-toolbar .grow{display:none}.data-toolbar input.search{flex:1 1 180px;min-width:0;max-width:none}.org-data-toolbar select.org-filter-select{flex:1 1 120px;width:auto!important;min-width:0}.settings-block{padding:16px;align-items:stretch}.settings-block>*{max-width:100%}.data-panel-h{flex-wrap:wrap;gap:8px}.org-form-row{flex-direction:column}.org-form-row>*{width:100%;min-width:0}.device-editor-layout{flex-direction:column}.device-editor-side{flex:1 1 auto!important;width:100%;min-width:0}.gis-settings-layout,.gis-coordinate-grid{grid-template-columns:minmax(0,1fr)}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.period-bar{padding:13px}.period-row{align-items:stretch;gap:9px}.period-row .period-label{flex:1 0 100%}.period-range{flex:1 1 100%;min-width:0}.period-range input[type=month],.period-range input[type=date]{flex:1 1 0;width:0;min-width:0}.period-search-btn{flex:1 1 100%;margin-left:0;min-height:44px}.billing-filter-select{flex:1 1 140px;width:auto;min-width:0}.modal-overlay{padding:12px;overflow-y:auto}.modal{width:100%!important;max-width:100%!important;max-height:calc(100dvh - 24px)}.modal{overflow-y:auto}.modal-actions{flex-wrap:wrap}.modal input[type=date].input,.modal input[type=time].input{width:100%!important}.context-menu{max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto}.message-edit-modal[role=dialog]{width:calc(100vw - 20px)!important;max-width:calc(100vw - 20px)!important;max-height:calc(100dvh - 20px)!important;margin:0;padding:16px;overflow-y:auto}.group-editor-modal{width:calc(100vw - 24px)!important;max-width:360px}.pagination{flex-wrap:wrap;gap:4px}.pagination-total{flex:1 0 100%;margin-left:0;text-align:center}.tts-message-list-popover{max-width:calc(100vw - 24px);max-height:min(50dvh,360px)}.notice-center{top:10px;right:10px;width:calc(100vw - 20px)}}@media (max-width: 480px){.app-tabbar{padding-inline:8px}.app-tab{min-height:38px;padding:7px 11px;font-size:13px}.user-cluster .session-countdown{font-size:11px}.user-cluster .logout-btn{min-height:38px;padding:6px 9px;font-size:11px}.user-cluster .theme-toggle{width:38px;height:38px}.password-change-btn .desktop-label{display:none}.password-change-btn .mobile-label{display:inline}.app-content{padding-bottom:calc(68px + env(safe-area-inset-bottom))}.map-canvas{width:calc(100% - 16px)!important;height:clamp(240px,38dvh,340px)!important;min-height:240px;margin:8px}.broadcast-left-stack,.floating-panel,.broadcast-bottom{width:calc(100% - 16px)!important;max-width:calc(100% - 16px);margin-inline:8px}.panel-card-h{padding-inline:12px}.broadcast-bottom{padding:12px}.broadcast-bottom-row>.btn,.broadcast-bottom-row>label.btn{flex-basis:calc(50% - 4px);padding-inline:10px}.tts-message-list-popover{position:fixed!important;top:auto!important;right:8px!important;bottom:calc(66px + env(safe-area-inset-bottom))!important;left:8px!important;width:auto!important;max-width:none;max-height:min(52dvh,360px)!important}.settings-card{padding:15px!important}.settings-block{padding:14px;gap:12px}.settings-block .spinner-input,.settings-block .input{max-width:100%}.stat-grid{grid-template-columns:minmax(0,1fr)}.period-range{flex-wrap:wrap}.period-range .tilde{display:none}.period-range input[type=month],.period-range input[type=date]{flex-basis:100%;width:100%}.modal-actions>.btn{flex:1 1 120px;min-height:44px}.privacy-phone-field{flex-wrap:wrap}.privacy-phone-field .input{flex-basis:160px}.auth-shell{min-height:calc(100dvh - 44px);padding:12px;align-items:flex-start}.auth-card{max-width:100%;padding:28px 20px 24px}.auth-brand{margin-bottom:22px}.auth-brand-img{width:76px;height:76px}.auth-actions{flex-wrap:wrap}.auth-actions .btn{flex:1 1 120px;min-height:44px;padding-inline:14px}.input-row{flex-wrap:wrap}.input-row>.btn{flex:1 1 120px;min-height:44px}}@media (max-width: 360px){.mobile-panel-btn{padding-inline:11px;font-size:12px}.broadcast-bottom-row>.btn,.broadcast-bottom-row>label.btn{flex-basis:100%}.modal-actions>.btn{flex-basis:100%}}.floating-panel .live-broadcast-table{min-width:1080px}.floating-panel .live-broadcast-table thead th{height:34px;padding-top:6px;padding-bottom:6px;line-height:1.25;vertical-align:middle;white-space:nowrap!important;overflow-wrap:normal}.live-select-column{width:60px;min-width:60px;text-align:center!important;white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important}.live-expandable-cell .cell-text{width:100%;min-width:0;align-items:flex-start}.live-expandable-cell .cell-text-body{min-width:0;flex:1 1 auto}.live-expandable-cell .cell-text-body.open.wrap{max-width:none;white-space:pre-wrap;overflow:visible;word-break:keep-all;overflow-wrap:break-word}.live-fixed-text-column{white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important}.config-table thead th,.config-table tbody td,.floating-panel .dock-table th,.floating-panel .dock-table td,.user-config-page .user-config-table th,.user-config-page .user-config-table td{white-space:normal;overflow:visible;text-overflow:clip;word-break:keep-all}.select-tree-label,.tts-message-list-items .message-item,.recording-preview-head span,.dock-name .dock-name-main,.dock-name .dock-fail{white-space:normal;overflow:visible;text-overflow:clip;word-break:keep-all;overflow-wrap:break-word}.right-dock .dock-card .panel-card-h{min-width:0;gap:8px}.right-dock .dock-card .panel-card-h>span{flex:1 1 auto;min-width:0;white-space:normal;word-break:keep-all}.right-dock .dock-card .panel-card-h>.btn-mini{flex:0 0 auto}.dock-table:has(.device-name-column){width:100%;min-width:0;table-layout:fixed}.dock-table .device-name-column{width:auto;min-width:0}.dock-device-name-cell{white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important;word-break:normal!important}.dock-device-name-content{display:flex;align-items:center;gap:5px;width:100%;min-width:0}.dock-device-name-cell .cell-text{flex:1 1 auto;width:100%;min-width:0;align-items:center}.dock-device-name-cell .cell-text-body{flex:1 1 auto;min-width:0;white-space:nowrap}.dock-device-name-cell .cell-text-body.open{max-width:none;white-space:pre-wrap;word-break:keep-all;overflow-wrap:anywhere;overflow:visible}.dock-card:has(.dock-device-name-cell .cell-text-body.open){overflow-y:auto;overflow-x:hidden}.dock-table:has(.dock-device-name-cell .cell-text-body.open){width:100%;min-width:0;table-layout:fixed}[data-dock-card=resident]{overflow-y:auto;overflow-x:hidden}[data-dock-card=resident] .resident-dock-table{width:100%;min-width:0;table-layout:fixed}[data-dock-card=resident] .resident-dock-table.is-readonly{min-width:0}[data-dock-card=resident] .resident-select-col{width:18%;text-align:center;white-space:nowrap!important}[data-dock-card=resident] .resident-name-col{width:24%}[data-dock-card=resident] .resident-group-col,[data-dock-card=resident] .resident-village-col{width:29%!important;white-space:normal;word-break:keep-all;overflow-wrap:break-word;vertical-align:middle}[data-dock-card=resident] .resident-dock-table.is-readonly .resident-name-col{width:26%}[data-dock-card=resident] .resident-dock-table.is-readonly .resident-group-col,[data-dock-card=resident] .resident-dock-table.is-readonly .resident-village-col{width:37%!important}[data-dock-card=device] .device-select-col{width:40px;min-width:40px;text-align:center;white-space:nowrap!important;padding-inline:4px}[data-dock-card=device] .device-dock-table th.device-name-column,[data-dock-card=device] .device-dock-table td.device-name-column{padding-inline:6px}[data-dock-card=device] .device-name-column{text-align:left}[data-dock-card=device] .device-dock-table th.col-phone,[data-dock-card=device] .device-dock-table td.col-phone,.right-dock .dock-table:has(.device-name-column) th.col-phone,.right-dock .dock-table:has(.device-name-column) td.col-phone{width:96px;min-width:96px;text-align:left;white-space:nowrap!important;font-variant-numeric:tabular-nums}th.col-phone,td.col-phone{text-align:left!important}.config-table th.col-phone,.config-table td.col-phone{width:132px;min-width:132px;white-space:nowrap!important;word-break:normal;font-variant-numeric:tabular-nums}.cell-text.open .cell-text-body.open,.cell-text.open .cell-text-body.open.wrap,.user-config-page .user-config-table .cell-text.open .cell-text-body.open.wrap,.live-expandable-cell .cell-text.open .cell-text-body.open.wrap,.dock-device-name-cell .cell-text.open .cell-text-body.open{flex:1 1 auto;width:auto;min-width:0;max-width:none;overflow:visible;white-space:pre-wrap;word-break:keep-all;overflow-wrap:anywhere}.cell-text.open .cell-more{flex:0 0 auto;margin-top:2px}
