.babies-workspace[data-v-c82c15d0]{display:grid;gap:14px}.filter-card[data-v-c82c15d0]{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:14px 16px;box-shadow:0 1px 2px #0f172a08}.filter-grid[data-v-c82c15d0]{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px 14px}.filter-field[data-v-c82c15d0]{display:grid;gap:4px;min-width:0}.filter-field>span[data-v-c82c15d0]{color:#64748b;font-size:12px;line-height:1}.filter-field input[data-v-c82c15d0],.filter-field select[data-v-c82c15d0]{border:1px solid #d0d7e2;border-radius:6px;font-size:13px;height:34px;padding:0 10px;width:100%;box-sizing:border-box;background:#fff;transition:border-color .15s,box-shadow .15s}.filter-field input[data-v-c82c15d0]:focus,.filter-field select[data-v-c82c15d0]:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f;outline:none}.filter-field.span-2[data-v-c82c15d0]{grid-column:span 2}.range[data-v-c82c15d0]{align-items:center;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:6px}.range input[data-v-c82c15d0]{min-width:0}.range em[data-v-c82c15d0]{color:#94a3b8;font-style:normal;font-size:12px}.filter-actions[data-v-c82c15d0]{align-items:center;border-top:1px dashed #eaeef4;display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:12px}.filter-actions button[data-v-c82c15d0]{border-radius:6px;cursor:pointer;font-size:13px;height:32px;padding:0 14px;transition:background .15s,border-color .15s}.filter-actions .primary[data-v-c82c15d0]{background:#2563eb;border:1px solid #2563eb;color:#fff}.filter-actions .primary[data-v-c82c15d0]:hover{background:#1d4ed8}.filter-actions .ghost[data-v-c82c15d0]{background:#fff;border:1px solid #d0d7e2;color:#334155}.filter-actions .ghost[data-v-c82c15d0]:hover{background:#f1f5f9}.filter-meta[data-v-c82c15d0]{color:#64748b;font-size:12px;margin-left:auto}.filter-meta strong[data-v-c82c15d0]{color:#0f172a;font-weight:600}.babies-table[data-v-c82c15d0]{overflow-x:auto}.babies-table table[data-v-c82c15d0]{border-collapse:separate;border-spacing:0;min-width:1100px;width:100%}.babies-table thead th[data-v-c82c15d0]{background:#f8fafc;border-bottom:1px solid #e2e8f0;color:#475569;font-size:12px;font-weight:600;letter-spacing:.02em;padding:10px 14px;text-align:left;white-space:nowrap}.babies-table tbody td[data-v-c82c15d0]{border-bottom:1px solid #eef2f7;color:#1e293b;font-size:13px;padding:12px 14px;vertical-align:middle}.babies-table tbody tr:last-child td[data-v-c82c15d0]{border-bottom:none}.babies-table tbody tr:hover td[data-v-c82c15d0]{background:#f8fbff}.babies-table tbody tr.selected td[data-v-c82c15d0]{background:#eef4ff}.col-check[data-v-c82c15d0]{width:40px;padding-left:14px!important;padding-right:0!important}.col-narrow[data-v-c82c15d0]{width:92px}.col-actions[data-v-c82c15d0]{width:180px}.cell-stack[data-v-c82c15d0]{line-height:1.35}.cell-title[data-v-c82c15d0]{color:#0f172a;display:block;font-size:13px;font-weight:600}.cell-sub[data-v-c82c15d0]{color:#64748b;display:block;font-size:12px;margin-top:2px}.cell-time[data-v-c82c15d0]{color:#475569;font-size:12px;white-space:nowrap}.ck[data-v-c82c15d0]{accent-color:#2563eb;cursor:pointer;height:16px;margin:0;vertical-align:middle;width:16px}.chip[data-v-c82c15d0]{align-items:center;background:#eef2f7;border-radius:999px;color:#475569;display:inline-flex;font-size:12px;line-height:1;padding:3px 10px;white-space:nowrap}.chip.ok[data-v-c82c15d0]{background:#dcfce7;color:#166534}.chip.off[data-v-c82c15d0]{background:#f1f5f9;color:#64748b}.chip.unbound[data-v-c82c15d0]{background:#fff7ed;color:#b45309}.chip.boy[data-v-c82c15d0]{background:#dbeafe;color:#1d4ed8}.chip.girl[data-v-c82c15d0]{background:#fce7f3;color:#be185d}.chip.disabled[data-v-c82c15d0]{background:#fee2e2;color:#b91c1c}.link[data-v-c82c15d0]{color:#2563eb;cursor:pointer;font-size:13px;font-weight:600;text-decoration:none}.link[data-v-c82c15d0]:hover{text-decoration:underline}.pager[data-v-c82c15d0]{align-items:center;gap:6px}.pager button[data-v-c82c15d0]{background:#fff;border:1px solid #d0d7e2;border-radius:6px;color:#334155;cursor:pointer;font-size:13px;height:30px;padding:0 12px}.pager button[data-v-c82c15d0]:hover:not([disabled]){background:#f1f5f9}.pager button[disabled][data-v-c82c15d0]{color:#94a3b8;cursor:not-allowed}.pager span[data-v-c82c15d0]{color:#64748b;font-size:13px}.pager span strong[data-v-c82c15d0]{color:#0f172a}.baby-detail-workspace[data-v-fb72d220]{display:grid;gap:12px}.hero[data-v-fb72d220]{background:linear-gradient(135deg,#fff,#f8fafc);border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 2px #0f172a0a;padding:14px 18px 18px}.hero-back[data-v-fb72d220]{margin-bottom:10px}.back-btn[data-v-fb72d220]{align-items:center;background:#fff;border:1px solid #d0d7e2;border-radius:6px;color:#334155;cursor:pointer;display:inline-flex;font-size:13px;gap:4px;padding:5px 12px;transition:background .15s}.back-btn[data-v-fb72d220]:hover{background:#f1f5f9}.hero-main[data-v-fb72d220]{align-items:center;display:grid;gap:16px;grid-template-columns:auto 1fr auto}.hero-avatar[data-v-fb72d220]{align-items:center;background:#eef2f7;border-radius:12px;display:inline-flex;height:72px;justify-content:center;overflow:hidden;width:72px}.hero-avatar img[data-v-fb72d220]{height:100%;object-fit:cover;width:100%}.hero-avatar-fallback[data-v-fb72d220]{color:#315f9f;font-size:28px;font-weight:700}.hero-info[data-v-fb72d220]{min-width:0}.hero-title-row[data-v-fb72d220]{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.hero-title[data-v-fb72d220]{color:#0f172a;font-size:20px;font-weight:700;margin:0}.hero-meta[data-v-fb72d220]{color:#475569;display:flex;flex-wrap:wrap;font-size:13px;gap:6px 20px;margin-top:8px}.hero-meta>span[data-v-fb72d220]{align-items:center;display:inline-flex;gap:6px}.hero-meta em[data-v-fb72d220]{color:#94a3b8;font-size:12px;font-style:normal}.hero-meta code.mono[data-v-fb72d220]{background:#f1f5f9;border-radius:4px;color:#0f172a;font-size:12px;padding:1px 6px}.hero-actions[data-v-fb72d220]{align-items:flex-start;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.btn[data-v-fb72d220]{background:#fff;border:1px solid #d0d7e2;border-radius:6px;color:#334155;cursor:pointer;font-size:13px;height:32px;padding:0 14px;transition:background .15s,border-color .15s}.btn[data-v-fb72d220]:hover{background:#f1f5f9}.btn.primary[data-v-fb72d220]{background:#2563eb;border-color:#2563eb;color:#fff}.btn.primary[data-v-fb72d220]:hover{background:#1d4ed8}.btn[disabled][data-v-fb72d220]{color:#94a3b8;cursor:not-allowed}.tiny-btn[data-v-fb72d220]{background:transparent;border:1px solid #d0d7e2;border-radius:4px;color:#334155;cursor:pointer;font-size:12px;padding:2px 8px}.tiny-btn[data-v-fb72d220]:hover{background:#f1f5f9}.tabbar[data-v-fb72d220]{background:#f1f5f9;border-radius:10px;display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;width:fit-content}.tabbar button[data-v-fb72d220]{background:transparent;border:none;border-radius:6px;color:#475569;cursor:pointer;font-size:13px;padding:6px 14px;transition:background .15s,color .15s}.tabbar button[data-v-fb72d220]:hover{background:#e2e8f0;color:#1e293b}.tabbar button.active[data-v-fb72d220]{background:#2563eb;color:#fff;font-weight:600}.chip[data-v-fb72d220]{align-items:center;background:#eef2f7;border-radius:999px;color:#475569;display:inline-flex;font-size:12px;line-height:1;padding:3px 10px;white-space:nowrap}.chip.ok[data-v-fb72d220]{background:#dcfce7;color:#166534}.chip.off[data-v-fb72d220]{background:#f1f5f9;color:#64748b}.chip.muted[data-v-fb72d220]{background:#eef2f7;color:#64748b}.chip.boy[data-v-fb72d220]{background:#dbeafe;color:#1d4ed8}.chip.girl[data-v-fb72d220]{background:#fce7f3;color:#be185d}.chip.disabled[data-v-fb72d220]{background:#fee2e2;color:#b91c1c}.chip.warning[data-v-fb72d220]{background:#fef3c7;color:#92400e}.chip.danger[data-v-fb72d220]{background:#fee2e2;color:#b91c1c}.metrics-grid[data-v-fb72d220]{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.metric-mini[data-v-fb72d220]{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:12px 14px}.metric-mini .metric-label[data-v-fb72d220]{color:#64748b;display:block;font-size:12px;margin-bottom:4px}.metric-mini strong[data-v-fb72d220]{color:#0f172a;display:block;font-size:20px;font-weight:700;line-height:1.2}.metric-mini small[data-v-fb72d220]{color:#94a3b8;display:block;font-size:11px;margin-top:2px}.section-card[data-v-fb72d220]{background:#fff;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.section-card>.section-title[data-v-fb72d220]{align-items:center;border-bottom:1px solid #eef2f7;color:#0f172a;display:flex;font-size:14px;font-weight:600;gap:8px;padding:10px 14px}.section-card>.section-title small[data-v-fb72d220]{color:#94a3b8;font-size:12px;font-weight:400}.section-card>.table-wrap[data-v-fb72d220]{border:none;border-radius:0;overflow-x:auto}.section-card>.mini-toolbar[data-v-fb72d220],.section-card>.pager[data-v-fb72d220],.section-card>.message[data-v-fb72d220]{margin:10px 14px}.section-card>.table-wrap+.pager[data-v-fb72d220]{margin-top:0;border-top:1px solid #eef2f7;padding:10px 14px}.section-card table[data-v-fb72d220]{border-collapse:separate;border-spacing:0;width:100%}.section-card thead th[data-v-fb72d220]{background:#f8fafc;border-bottom:1px solid #eef2f7;color:#475569;font-size:12px;font-weight:600;padding:8px 12px;text-align:left;white-space:nowrap}.section-card tbody td[data-v-fb72d220]{border-bottom:1px solid #f1f5f9;color:#1e293b;font-size:13px;padding:10px 12px;vertical-align:middle}.section-card tbody tr:last-child td[data-v-fb72d220]{border-bottom:none}.section-card tbody tr:hover td[data-v-fb72d220]{background:#f8fbff}.cell-clip[data-v-fb72d220]{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-toolbar[data-v-fb72d220]{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.mini-toolbar label[data-v-fb72d220]{align-items:center;color:#64748b;display:inline-flex;font-size:12px;gap:4px}.mini-toolbar label span[data-v-fb72d220]{color:#64748b}.mini-toolbar input[data-v-fb72d220],.mini-toolbar select[data-v-fb72d220]{border:1px solid #d0d7e2;border-radius:6px;font-size:13px;height:30px;padding:0 8px}.mini-toolbar input[data-v-fb72d220]:focus,.mini-toolbar select[data-v-fb72d220]:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f;outline:none}.toolbar-meta[data-v-fb72d220]{color:#64748b;font-size:12px;margin-left:auto}.compact-filterbar[data-v-fb72d220]{align-items:center;display:flex;flex-wrap:wrap;gap:8px 12px}.compact-filterbar .toolbar-group[data-v-fb72d220]{align-items:center;display:flex;flex-wrap:wrap;gap:8px;min-width:0}.compact-filterbar .toolbar-group--filters[data-v-fb72d220]{flex:1 1 520px}.compact-filterbar .toolbar-group--action[data-v-fb72d220]{margin-left:auto;justify-content:flex-end}.compact-filterbar input[data-v-fb72d220],.compact-filterbar select[data-v-fb72d220]{flex:0 0 auto;min-width:0}.compact-filterbar input[type=datetime-local][data-v-fb72d220]{width:176px}.compact-filterbar select[data-v-fb72d220]{width:140px}.compact-filterbar .toolbar-keyword[data-v-fb72d220]{flex:0 0 auto;width:210px}.compact-filterbar .toolbar-submit[data-v-fb72d220]{min-width:64px}.compact-filterbar .toolbar-meta[data-v-fb72d220]{margin-left:0;white-space:nowrap}@media(max-width:1280px){.compact-filterbar[data-v-fb72d220]{align-items:center}.compact-filterbar .toolbar-group--action[data-v-fb72d220]{margin-left:0;justify-content:flex-start}}.support-grid[data-v-fb72d220]{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}.pager[data-v-fb72d220]{align-items:center;display:flex;gap:6px;justify-content:flex-end}.pager span[data-v-fb72d220]{color:#64748b;font-size:13px}.pager span strong[data-v-fb72d220]{color:#0f172a}.message.error[data-v-fb72d220]{background:#fff1f2;border-radius:6px;color:#be123c;padding:8px 12px}.link-btn[data-v-75ca32f7]{background:transparent;border:none;color:var(--color-primary-strong);font-size:12.5px;font-weight:500;min-height:26px;padding:0 4px}.link-btn[data-v-75ca32f7]:hover{color:var(--color-primary);text-decoration:underline}.device-list-page[data-v-ef5ae1fe]{display:grid;gap:12px}.toolbar[data-v-ef5ae1fe]{align-items:center;background:#fff;border:1px solid #dfe5ef;border-radius:10px;display:flex;flex-wrap:wrap;gap:8px;padding:10px 14px}.toolbar input[data-v-ef5ae1fe],.toolbar select[data-v-ef5ae1fe]{max-width:180px}.toolbar-stats[data-v-ef5ae1fe]{align-items:center;display:flex;gap:12px;margin-left:auto}.mini-stat[data-v-ef5ae1fe]{align-items:center;display:inline-flex;font-size:12px;font-weight:600;gap:4px}.mini-stat i[data-v-ef5ae1fe]{border-radius:50%;display:inline-block;height:8px;width:8px}.mini-stat.online i[data-v-ef5ae1fe]{background:#22c55e}.mini-stat.offline i[data-v-ef5ae1fe]{background:#94a3b8}.mini-stat.total[data-v-ef5ae1fe]{color:#64748b}.device-row[data-v-ef5ae1fe]{cursor:pointer;transition:background .1s}.device-row[data-v-ef5ae1fe]:hover{background:#f8fbff}.device-row td[data-v-ef5ae1fe]{line-height:1.4}.online-dot[data-v-ef5ae1fe]{background:#94a3b8;border-radius:50%;display:inline-block;height:8px;margin-right:4px;vertical-align:middle;width:8px}.online-dot.on[data-v-ef5ae1fe]{animation:pulse-dot-ef5ae1fe 2s infinite;background:#22c55e}@keyframes pulse-dot-ef5ae1fe{0%,to{box-shadow:0 0 #22c55e66}50%{box-shadow:0 0 0 4px #22c55e00}}.sub[data-v-ef5ae1fe]{color:#94a3b8;display:block;font-size:11px}.actions-cell[data-v-ef5ae1fe]{white-space:nowrap}.pager[data-v-ef5ae1fe]{align-items:center;background:#fff;border:1px solid #dfe5ef;border-radius:8px;display:flex;font-size:12px;gap:10px;justify-content:center;padding:10px 14px}.pager select[data-v-ef5ae1fe]{max-width:100px;width:auto}.device-detail-modal[data-v-ef5ae1fe]{max-height:calc(100vh - 40px);overflow-y:auto;width:min(1400px,calc(100vw - 40px))}.device-detail-body[data-v-ef5ae1fe]{display:grid;gap:14px}.device-detail-summary[data-v-ef5ae1fe]{background:#f8fafc;border:1px solid #e5eaf3;border-radius:8px;display:grid;gap:10px;grid-template-columns:repeat(5,1fr);padding:12px 14px}.device-detail-summary>div[data-v-ef5ae1fe]{display:grid;gap:2px}.detail-label[data-v-ef5ae1fe]{color:#64748b;font-size:11px}.device-detail-tabs[data-v-ef5ae1fe]{display:grid;gap:4px;grid-template-columns:repeat(5,1fr)}.detail-grid[data-v-ef5ae1fe]{display:grid;gap:8px;grid-template-columns:repeat(3,1fr)}.detail-field[data-v-ef5ae1fe]{display:grid;gap:2px;padding:8px}.device-config-panel[data-v-ef5ae1fe]{display:grid;gap:14px}.config-status-banner[data-v-ef5ae1fe]{border-radius:8px;display:flex;gap:12px;justify-content:space-between;padding:12px 14px}.config-status-banner.success[data-v-ef5ae1fe]{background:#ecfdf5;border:1px solid #a7f3d0}.config-status-banner.error[data-v-ef5ae1fe]{background:#fef2f2;border:1px solid #fecaca}.config-status-banner.warning[data-v-ef5ae1fe]{background:#fffbeb;border:1px solid #fde68a}.config-status-banner.pending[data-v-ef5ae1fe]{background:#f8fafc;border:1px solid #e2e8f0}.config-status-banner strong[data-v-ef5ae1fe]{font-size:14px}.config-status-banner p[data-v-ef5ae1fe]{color:#64748b;font-size:12px;margin:4px 0 0}.config-status-times[data-v-ef5ae1fe]{color:#94a3b8;display:grid;font-size:11px;gap:2px;text-align:right}.config-section[data-v-ef5ae1fe]{border:1px solid #e5eaf3;border-radius:8px;display:grid;gap:10px;padding:14px}.config-section h4[data-v-ef5ae1fe]{color:#0f172a;font-size:14px;margin:0}.stream-policy-grid[data-v-ef5ae1fe]{display:grid;gap:8px;grid-template-columns:repeat(3,1fr)}.stream-policy-card[data-v-ef5ae1fe]{border:2px solid #e5eaf3;border-radius:8px;cursor:pointer;display:grid;gap:4px;padding:12px;text-align:left;transition:border-color .15s;white-space:normal;width:100%}.stream-policy-card[data-v-ef5ae1fe]:hover{border-color:#93c5fd}.stream-policy-card.active[data-v-ef5ae1fe]{background:#eff6ff;border-color:#2563eb}.stream-policy-card strong[data-v-ef5ae1fe]{font-size:13px}.stream-policy-card span[data-v-ef5ae1fe]{color:#64748b;font-size:11px}.config-details-block[data-v-ef5ae1fe]{border:1px solid #e5eaf3;border-radius:8px;padding:12px 14px}.config-details-block summary[data-v-ef5ae1fe]{color:#475569;cursor:pointer;font-weight:600}.config-detail-inner[data-v-ef5ae1fe]{display:grid;gap:12px;margin-top:12px}.config-meta[data-v-ef5ae1fe]{color:#64748b;display:flex;flex-wrap:wrap;font-size:11px;gap:8px 16px;padding:8px 0}.slot-status-grid[data-v-ef5ae1fe]{display:grid;gap:8px;grid-template-columns:1fr 1fr;margin-top:8px}.slot-status-card[data-v-ef5ae1fe]{background:#f8fafc;border:1px solid #e5eaf3;border-radius:6px;display:grid;gap:4px;padding:10px}.slot-status-card strong[data-v-ef5ae1fe]{font-size:12px}.slot-status-card span[data-v-ef5ae1fe]{color:#64748b;font-size:11px}.form-grid[data-v-ef5ae1fe]{display:grid;gap:8px;grid-template-columns:repeat(2,1fr)}.form-grid label[data-v-ef5ae1fe]{display:grid;font-size:12px;gap:4px}.form-grid .full-width[data-v-ef5ae1fe]{grid-column:1 / -1}.device-data-center[data-v-ef5ae1fe]{display:grid;gap:10px}.toolbar.compact[data-v-ef5ae1fe]{background:transparent;border:none;padding:0}.device-data-filterbar[data-v-ef5ae1fe]{align-items:center;display:flex;flex-wrap:wrap;gap:8px 12px;min-height:36px}.device-data-filterbar .filterbar-group[data-v-ef5ae1fe]{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.device-data-filterbar .filterbar-date-group[data-v-ef5ae1fe]{flex:0 1 auto}.device-data-filterbar label[data-v-ef5ae1fe]{align-items:center;color:#64748b;display:inline-flex;font-size:12px;gap:6px}.device-data-filterbar label span[data-v-ef5ae1fe]{white-space:nowrap}.device-data-filterbar input[type=datetime-local][data-v-ef5ae1fe]{height:32px;width:190px}.device-data-filterbar .filterbar-actions[data-v-ef5ae1fe]{margin-left:0}.device-data-filterbar .toolbar-meta[data-v-ef5ae1fe]{color:#64748b;font-size:12px;margin-left:6px;white-space:nowrap}@media(max-width:960px){.device-data-filterbar .filterbar-actions[data-v-ef5ae1fe]{margin-left:0}}.device-ops-panel[data-v-ef5ae1fe]{display:grid;gap:10px}.ops-subtabs[data-v-ef5ae1fe]{display:flex;flex-wrap:wrap;gap:4px}.support-grid[data-v-ef5ae1fe]{display:grid;gap:10px}.subtabs[data-v-ef5ae1fe]{background:#f8fafc;border:1px solid #dfe5ef;border-radius:8px;display:flex;gap:4px;padding:4px}.subtabs button[data-v-ef5ae1fe]{border-color:transparent;flex:1;font-size:12px;min-width:0}.subtabs button.active[data-v-ef5ae1fe]{background:#2563eb;border-color:#2563eb;color:#fff;font-weight:600}.button-row[data-v-ef5ae1fe]{align-items:center;display:flex;gap:10px}.muted[data-v-ef5ae1fe]{color:#94a3b8;font-size:12px}.empty-cell[data-v-ef5ae1fe]{color:#94a3b8;font-size:13px;padding:20px;text-align:center}.notice.error[data-v-ef5ae1fe]{background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#b91c1c;font-size:12px;padding:8px 12px}.cell-ellipsis[data-v-ef5ae1fe]{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.checkbox[data-v-ef5ae1fe]{align-items:center;cursor:pointer;display:flex;font-size:13px;gap:6px}.baby-tags[data-v-ef5ae1fe]{align-items:center;display:flex;flex-wrap:wrap;gap:4px}.baby-tag[data-v-ef5ae1fe]{align-items:center;background:#eff6ff;border:1px solid #dbeafe;border-radius:999px;color:#1d4ed8;display:inline-flex;font-size:12px;gap:4px;padding:2px 8px}.baby-avatar[data-v-ef5ae1fe]{border-radius:50%;height:16px;object-fit:cover;width:16px}.text-muted[data-v-ef5ae1fe]{color:#94a3b8;font-size:12px}.bound-babies-section[data-v-ef5ae1fe]{border-top:1px solid #e5e7eb;margin-top:16px;padding-top:16px}.section-title[data-v-ef5ae1fe]{color:#1f2937;font-size:14px;font-weight:600;margin:0 0 12px}.baby-card-grid[data-v-ef5ae1fe]{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.baby-card[data-v-ef5ae1fe]{align-items:flex-start;background:#fafafa;border:1px solid #e5e7eb;border-radius:8px;display:flex;gap:12px;padding:12px}.baby-card-avatar[data-v-ef5ae1fe]{border-radius:50%;flex-shrink:0;height:48px;object-fit:cover;width:48px}.baby-card-avatar.placeholder[data-v-ef5ae1fe]{align-items:center;background:#e0e7ff;color:#4338ca;display:flex;font-size:20px;font-weight:600;justify-content:center}.baby-card-info[data-v-ef5ae1fe]{flex:1;min-width:0}.baby-card-name[data-v-ef5ae1fe]{align-items:center;display:flex;gap:8px;margin-bottom:4px}.baby-card-gender[data-v-ef5ae1fe]{background:#f1f5f9;border-radius:4px;color:#64748b;font-size:11px;padding:1px 6px}@media(max-width:1024px){.device-detail-summary[data-v-ef5ae1fe]{grid-template-columns:repeat(3,1fr)}.detail-grid[data-v-ef5ae1fe]{grid-template-columns:repeat(2,1fr)}.stream-policy-grid[data-v-ef5ae1fe]{grid-template-columns:1fr}}@media(max-width:768px){.device-detail-summary[data-v-ef5ae1fe],.detail-grid[data-v-ef5ae1fe],.slot-status-grid[data-v-ef5ae1fe],.form-grid[data-v-ef5ae1fe]{grid-template-columns:1fr}.device-detail-tabs[data-v-ef5ae1fe]{grid-template-columns:repeat(3,1fr)}}.gray-form[data-v-9826df95]{display:flex;flex-direction:column;gap:1rem}.gray-row[data-v-9826df95]{display:flex;flex-direction:column;gap:.4rem;font-size:.85rem;color:#555}.slider-row[data-v-9826df95]{display:flex;align-items:center;gap:.6rem}.slider[data-v-9826df95]{flex:1}.pct-input[data-v-9826df95]{width:4rem}.pct-unit[data-v-9826df95]{color:#888}.preview-box[data-v-9826df95]{background:#e6f6ef;color:#0e7a52;border:1px solid #bfe6d6;border-radius:8px;padding:.7rem .9rem;font-size:.9rem}.preview-box strong[data-v-9826df95]{font-size:1.05rem}.file-label[data-v-9826df95]{display:flex;flex-direction:column;gap:.3rem;font-size:.82rem;color:#555}.sign-block[data-v-9826df95]{border:1px dashed #cbd5e1;border-radius:8px;padding:.5rem .7rem}.sign-block summary[data-v-9826df95]{cursor:pointer;font-size:.85rem;color:#0e7a52;font-weight:600}.sign-block .file-label[data-v-9826df95]{margin-top:.5rem}.sign-hint[data-v-9826df95]{font-size:.78rem;color:#888;line-height:1.5;margin:.4rem 0}.sign-hint code[data-v-9826df95]{background:#f1f5f9;padding:0 .25rem;border-radius:4px}.badge.signed[data-v-9826df95]{background:#e6f0ff;color:#1d4ed8;border:1px solid #bfd4ff;margin-left:.3rem}.ota-center[data-v-4a8d7b95]{display:grid;gap:12px;height:calc(100vh - 110px);grid-template-rows:auto 1fr;overflow:hidden}.ota-toolbar[data-v-4a8d7b95]{align-items:center;background:#fff;border:1px solid #dfe5ef;border-radius:10px;display:flex;flex-wrap:wrap;gap:12px;padding:10px 16px}.toolbar-left[data-v-4a8d7b95]{align-items:center;display:flex;flex:1;gap:8px}.toolbar-left input[data-v-4a8d7b95]{max-width:180px}.toolbar-stats[data-v-4a8d7b95]{align-items:center;display:flex;gap:14px}.mini-stat[data-v-4a8d7b95]{align-items:center;border-radius:6px;display:inline-flex;font-size:12px;font-weight:600;gap:4px;padding:4px 10px}.mini-stat i[data-v-4a8d7b95]{font-style:normal}.active-stat[data-v-4a8d7b95]{background:#eff6ff;color:#1d4ed8}.fail-stat[data-v-4a8d7b95]{background:#fef2f2;color:#b91c1c}.rollout-stat[data-v-4a8d7b95]{background:#f0fdf4;color:#15803d}.pulse[data-v-4a8d7b95]{animation:pulse-anim-4a8d7b95 2s infinite}.blink[data-v-4a8d7b95]{animation:blink-anim-4a8d7b95 1.5s infinite}@keyframes pulse-anim-4a8d7b95{0%,to{opacity:1}50%{opacity:.6}}@keyframes blink-anim-4a8d7b95{0%,to{opacity:1}50%{opacity:.4}}.ota-workbench[data-v-4a8d7b95]{display:grid;gap:12px;grid-template-columns:320px minmax(0,1fr);min-height:0;overflow:hidden}.panel[data-v-4a8d7b95]{background:#fff;border:1px solid #dfe5ef;border-radius:10px;display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:16px}.firmware-list .panel-head[data-v-4a8d7b95]{border-bottom:1px solid #e5eaf3;display:flex;flex-direction:column;gap:10px;margin:-16px -16px 12px;padding:14px 16px}.firmware-list .panel-head h2[data-v-4a8d7b95]{align-items:center;color:#0f172a;display:flex;font-size:15px;gap:8px;margin:0}.local-search[data-v-4a8d7b95]{min-height:30px;font-size:12px}.firmware-scroll[data-v-4a8d7b95]{display:grid;gap:6px;overflow-y:auto;padding-right:4px}.firmware-card[data-v-4a8d7b95]{background:#fff;border:1px solid #e5eaf3;border-radius:8px;color:#172033;cursor:pointer;display:grid;gap:6px;padding:10px 12px;text-align:left;white-space:normal;width:100%}.firmware-card[data-v-4a8d7b95]:hover,.firmware-card.active[data-v-4a8d7b95]{background:#f8fbff;border-color:#2563eb}.firmware-card.active[data-v-4a8d7b95]{box-shadow:inset 3px 0 #2563eb}.fw-row-1[data-v-4a8d7b95]{align-items:center;display:flex;justify-content:space-between}.fw-row-1 strong[data-v-4a8d7b95]{color:#0f172a;font-size:15px}.fw-row-2[data-v-4a8d7b95]{align-items:center;color:#607089;display:flex;font-size:11px;gap:8px;justify-content:space-between}.scope-tag[data-v-4a8d7b95]{background:#f1f5f9;border-radius:4px;font-size:10px;padding:2px 6px}.fw-progress-row[data-v-4a8d7b95]{align-items:center;display:flex;gap:8px}.fw-progress-track[data-v-4a8d7b95]{background:#e5eaf3;border-radius:3px;flex:1;height:4px;overflow:hidden}.fw-progress-bar[data-v-4a8d7b95]{background:linear-gradient(90deg,#22c55e,#16a34a);border-radius:3px;height:100%;transition:width .3s}.fw-progress-label[data-v-4a8d7b95]{color:#607089;font-size:10px;min-width:28px;text-align:right}.release-console[data-v-4a8d7b95]{overflow-y:auto}.console-head[data-v-4a8d7b95]{align-items:flex-start;border-bottom:1px solid #e5eaf3;display:flex;gap:12px;justify-content:space-between;margin:-16px -16px 12px;padding:14px 16px}.head-info h2[data-v-4a8d7b95]{color:#0f172a;font-size:20px;margin:0}.console-meta[data-v-4a8d7b95]{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.meta-text[data-v-4a8d7b95]{color:#607089;font-size:12px}.head-actions[data-v-4a8d7b95]{display:flex;gap:6px}.stats-strip[data-v-4a8d7b95]{background:#f8fafc;border:1px solid #e5eaf3;border-radius:8px;display:grid;gap:1px;grid-template-columns:repeat(5,1fr);margin-bottom:10px;overflow:hidden}.stat-item[data-v-4a8d7b95]{background:#fff;display:grid;gap:2px;padding:10px 12px;text-align:center}.stat-item span[data-v-4a8d7b95]{color:#607089;font-size:11px}.stat-item strong[data-v-4a8d7b95]{color:#0f172a;font-size:18px}.stat-item.ok strong[data-v-4a8d7b95]{color:#15803d}.stat-item.danger strong[data-v-4a8d7b95]{color:#b91c1c}.console-tabs[data-v-4a8d7b95]{background:#f8fafc;border:1px solid #dfe5ef;border-radius:8px;display:grid;gap:4px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:12px;padding:4px}.console-tabs button[data-v-4a8d7b95]{border-color:transparent;font-size:13px;min-width:0}.console-tabs button.active[data-v-4a8d7b95]{background:#2563eb;border-color:#2563eb;color:#fff;font-weight:600}.console-body[data-v-4a8d7b95]{display:grid;gap:14px}.active-rollout-banner[data-v-4a8d7b95]{background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;display:grid;gap:12px;padding:14px}.rollout-header[data-v-4a8d7b95]{align-items:center;display:flex;gap:8px}.rollout-header strong[data-v-4a8d7b95]{color:#0f172a;font-size:14px}.wave-timeline[data-v-4a8d7b95]{align-items:center;display:flex;gap:0;position:relative}.wave-node[data-v-4a8d7b95]{align-items:center;display:flex;flex:1;flex-direction:column;gap:4px;position:relative}.wave-node[data-v-4a8d7b95]:before{background:#cbd5e1;content:"";height:2px;left:0;position:absolute;right:0;top:8px;z-index:0}.wave-node[data-v-4a8d7b95]:first-child:before{left:50%}.wave-node[data-v-4a8d7b95]:last-child:before{right:50%}.wave-dot[data-v-4a8d7b95]{background:#cbd5e1;border:2px solid #fff;border-radius:50%;height:16px;position:relative;width:16px;z-index:1}.wave-node.done .wave-dot[data-v-4a8d7b95]{background:#22c55e}.wave-node.done[data-v-4a8d7b95]:before{background:#22c55e}.wave-node.current .wave-dot[data-v-4a8d7b95]{background:#2563eb;box-shadow:0 0 0 4px #2563eb33}.wave-label[data-v-4a8d7b95]{color:#607089;font-size:10px}.wave-node.current .wave-label[data-v-4a8d7b95]{color:#1d4ed8;font-weight:700}.rollout-info[data-v-4a8d7b95]{color:#607089;font-size:12px}.strategy-section[data-v-4a8d7b95]{border:1px solid #dfe5ef;border-radius:10px;display:grid;gap:14px;padding:14px}.strategy-selector[data-v-4a8d7b95]{display:grid;gap:8px;grid-template-columns:repeat(3,1fr)}.strategy-option[data-v-4a8d7b95]{border:2px solid #e5eaf3;border-radius:8px;cursor:pointer;display:grid;gap:2px;padding:12px;transition:border-color .15s,background .15s}.strategy-option[data-v-4a8d7b95]:hover{border-color:#93c5fd}.strategy-option.selected[data-v-4a8d7b95]{background:#eff6ff;border-color:#2563eb}.strategy-option input[type=radio][data-v-4a8d7b95]{display:none}.strategy-content strong[data-v-4a8d7b95]{color:#0f172a;font-size:13px}.strategy-content span[data-v-4a8d7b95]{color:#607089;font-size:11px}.strategy-form[data-v-4a8d7b95]{display:grid;gap:12px}.form-hint[data-v-4a8d7b95]{color:#607089;font-size:12px;margin:0}.preview-box[data-v-4a8d7b95]{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;padding:12px}.preview-visual[data-v-4a8d7b95]{align-items:center;display:flex;gap:14px}.preview-ring[data-v-4a8d7b95]{position:relative;height:56px;width:56px}.ring-svg[data-v-4a8d7b95]{height:100%;transform:rotate(-90deg);width:100%}.ring-text[data-v-4a8d7b95]{color:#166534;font-size:12px;font-weight:700;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.preview-detail[data-v-4a8d7b95]{color:#166534;font-size:13px}.task-toolbar[data-v-4a8d7b95]{align-items:center;display:flex;gap:8px;justify-content:space-between}.dispatch-row[data-v-4a8d7b95]{align-items:center;display:flex;flex:1;gap:8px}.dispatch-row input[data-v-4a8d7b95]{max-width:200px}.compact-table[data-v-4a8d7b95]{border:1px solid #e5eaf3;border-radius:8px;overflow-x:auto}.compact-table table[data-v-4a8d7b95]{min-width:640px}.cell-device[data-v-4a8d7b95]{display:grid;gap:2px}.progress-cell[data-v-4a8d7b95]{align-items:center;display:flex;gap:8px}.progress-track[data-v-4a8d7b95]{background:#e5eaf3;border-radius:4px;flex:1;height:6px;min-width:60px;overflow:hidden}.progress-bar[data-v-4a8d7b95]{border-radius:4px;height:100%;transition:width .3s}.bar-status-1[data-v-4a8d7b95]{background:linear-gradient(90deg,#3b82f6,#60a5fa)}.bar-status-2[data-v-4a8d7b95]{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.bar-status-3[data-v-4a8d7b95]{background:linear-gradient(90deg,#22c55e,#4ade80)}.bar-status-4[data-v-4a8d7b95]{background:#ef4444}.bar-status-0[data-v-4a8d7b95],.bar-status-5[data-v-4a8d7b95]{background:#94a3b8}.row-actions[data-v-4a8d7b95]{display:flex;gap:4px}.row-actions button[data-v-4a8d7b95]{font-size:14px;min-height:28px;min-width:28px;padding:0 6px}.events-row td[data-v-4a8d7b95]{padding:0}.events-cell[data-v-4a8d7b95]{background:#f8fafc;padding:10px 14px!important}.event-line[data-v-4a8d7b95]{align-items:center;color:#475569;display:flex;font-size:12px;gap:8px;padding:4px 0}.event-time[data-v-4a8d7b95]{color:#94a3b8;min-width:120px}.diagnostic-section[data-v-4a8d7b95]{display:grid;gap:14px}.diag-context[data-v-4a8d7b95]{display:flex;flex-wrap:wrap;gap:6px}.context-tag[data-v-4a8d7b95]{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;color:#475569;font-size:12px;padding:4px 10px}.context-tag.tag-ok[data-v-4a8d7b95]{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}.context-tag.tag-muted[data-v-4a8d7b95]{background:#f8fafc;color:#94a3b8}.diag-inputs[data-v-4a8d7b95]{display:grid;gap:10px;grid-template-columns:1fr 1fr}.diag-inputs em[data-v-4a8d7b95]{color:#94a3b8;font-style:normal}.diag-report[data-v-4a8d7b95]{border-radius:10px;display:grid;gap:12px;padding:16px}.diag-ok[data-v-4a8d7b95]{background:#ecfdf5;border:1px solid #a7f3d0}.diag-no[data-v-4a8d7b95]{background:#f8fafc;border:1px solid #e2e8f0}.diag-error[data-v-4a8d7b95]{background:#fef2f2;border:1px solid #fecaca}.diag-header[data-v-4a8d7b95]{align-items:center;display:flex;gap:10px}.diag-header strong[data-v-4a8d7b95]{color:#0f172a;font-size:15px}.diag-icon[data-v-4a8d7b95]{align-items:center;border-radius:50%;display:inline-flex;font-size:14px;font-weight:700;height:28px;justify-content:center;width:28px}.diag-icon.ok[data-v-4a8d7b95]{background:#d1fae5;color:#065f46}.diag-icon.no[data-v-4a8d7b95]{background:#e2e8f0;color:#64748b}.diag-icon.error[data-v-4a8d7b95]{background:#fee2e2;color:#b91c1c}.diag-details[data-v-4a8d7b95]{display:grid;gap:6px}.diag-row[data-v-4a8d7b95]{align-items:center;display:flex;font-size:13px;gap:12px;padding:6px 0}.diag-row span[data-v-4a8d7b95]{color:#64748b;min-width:80px}.diag-row strong[data-v-4a8d7b95]{color:#0f172a}.diag-reasons[data-v-4a8d7b95]{font-size:13px}.diag-reasons p[data-v-4a8d7b95]{color:#64748b;margin:0 0 6px}.diag-reasons ul[data-v-4a8d7b95]{color:#334155;list-style:disc;margin:0;padding-left:20px}.diag-reasons li[data-v-4a8d7b95]{padding:2px 0}.diag-error-msg[data-v-4a8d7b95]{color:#b91c1c;font-size:13px;margin:0}.link-btn[data-v-4a8d7b95]{background:none;border:none;color:#2563eb;cursor:pointer;font-size:13px;font-weight:600;justify-content:flex-start;min-height:auto;padding:0}.link-btn[data-v-4a8d7b95]:hover{color:#1d4ed8;text-decoration:underline}.diag-raw[data-v-4a8d7b95]{border-top:1px solid #e2e8f0;margin-top:4px;padding-top:8px}.diag-raw summary[data-v-4a8d7b95]{color:#64748b;cursor:pointer;font-size:12px}.diag-raw pre[data-v-4a8d7b95]{background:#0f172a;border-radius:8px;color:#bbf7d0;font-size:11px;line-height:1.5;margin:8px 0 0;max-height:200px;overflow:auto;padding:12px}.field[data-v-4a8d7b95],.file-label[data-v-4a8d7b95]{color:#334155;display:grid;font-size:12px;gap:6px}.slider-row[data-v-4a8d7b95]{align-items:center;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) 70px auto}.pct-input[data-v-4a8d7b95]{min-width:0}.two-col[data-v-4a8d7b95]{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.button-row[data-v-4a8d7b95]{align-items:center;display:flex;gap:8px}.pager[data-v-4a8d7b95]{align-items:center;display:flex;font-size:12px;gap:10px;justify-content:center;padding-top:8px}.badge[data-v-4a8d7b95]{border-radius:4px;font-size:11px;font-weight:600;padding:2px 8px}.badge.sm[data-v-4a8d7b95]{font-size:10px;padding:1px 6px}.badge.success[data-v-4a8d7b95]{background:#dcfce7;color:#15803d}.badge.danger[data-v-4a8d7b95]{background:#fee2e2;color:#b91c1c}.badge.warning[data-v-4a8d7b95]{background:#fef3c7;color:#92400e}.badge.info[data-v-4a8d7b95]{background:#dbeafe;color:#1d4ed8}.badge.muted[data-v-4a8d7b95]{background:#f1f5f9;color:#64748b}.mono[data-v-4a8d7b95]{font-family:SF Mono,Fira Code,monospace;font-size:11px}.sub[data-v-4a8d7b95]{color:#94a3b8;font-size:11px}.text-ok[data-v-4a8d7b95]{color:#15803d}.text-danger[data-v-4a8d7b95],.task-error[data-v-4a8d7b95],.danger-btn[data-v-4a8d7b95]{color:#b91c1c}.task-error[data-v-4a8d7b95]{display:block;font-size:11px;margin-top:2px}.danger-btn[data-v-4a8d7b95]:hover{background:#fef2f2;border-color:#fca5a5}.empty-state[data-v-4a8d7b95]{align-items:center;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px;color:#607089;display:flex;justify-content:center;min-height:80px;padding:16px;text-align:center}.console-empty[data-v-4a8d7b95]{min-height:300px}.empty-cell[data-v-4a8d7b95]{color:#94a3b8;font-size:13px;padding:20px;text-align:center}.checkbox[data-v-4a8d7b95]{align-items:center;cursor:pointer;display:flex;font-size:13px;gap:6px}.confirm-overlay[data-v-4a8d7b95]{align-items:center;background:#0f172a66;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;position:fixed;z-index:9999}.confirm-popover[data-v-4a8d7b95]{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000002e;max-width:400px;padding:24px}.confirm-popover p[data-v-4a8d7b95]{color:#0f172a;font-size:14px;line-height:1.6;margin:0 0 16px}.modal-mask[data-v-4a8d7b95]{align-items:center;background:#0f172a66;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;position:fixed;z-index:9000}.modal-container[data-v-4a8d7b95]{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000002e;max-height:calc(100vh - 40px);overflow-y:auto}.modal-container.wide[data-v-4a8d7b95]{width:min(900px,calc(100vw - 40px))}.upload-modal[data-v-4a8d7b95]{width:min(680px,calc(100vw - 40px))}.modal-header[data-v-4a8d7b95]{align-items:center;border-bottom:1px solid #e5eaf3;display:flex;font-weight:600;justify-content:space-between;padding:16px 20px}.close-btn[data-v-4a8d7b95]{background:none;border:none;cursor:pointer;font-size:22px;min-height:auto;padding:0 4px}.modal-body[data-v-4a8d7b95]{padding:20px}.upload-form[data-v-4a8d7b95]{display:grid;gap:12px}.drop-zone[data-v-4a8d7b95]{align-items:center;border:2px dashed #cbd5e1;border-radius:10px;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;min-height:80px;padding:16px;text-align:center;transition:border-color .2s,background .2s}.drop-zone.dragging[data-v-4a8d7b95]{background:#eff6ff;border-color:#2563eb}.drop-zone.has-file[data-v-4a8d7b95]{background:#f0fdf4;border-color:#86efac}.file-name[data-v-4a8d7b95]{color:#0f172a;font-weight:600}.file-size[data-v-4a8d7b95]{color:#607089;font-size:12px}.file-pick[data-v-4a8d7b95]{color:#2563eb;cursor:pointer;font-weight:600;text-decoration:underline}.file-pick input[data-v-4a8d7b95]{display:none}.sign-block[data-v-4a8d7b95]{border:1px dashed #cbd5e1;border-radius:8px;padding:10px 12px}.sign-block summary[data-v-4a8d7b95]{color:#0f766e;cursor:pointer;font-weight:600}.sign-block p[data-v-4a8d7b95]{color:#607089;font-size:12px;line-height:1.6}.sign-block code[data-v-4a8d7b95]{background:#f1f5f9;border-radius:4px;padding:1px 4px}.modal-table table[data-v-4a8d7b95]{min-width:500px}.spinner[data-v-4a8d7b95]{animation:spin-4a8d7b95 .6s linear infinite;border:2px solid #e5eaf3;border-radius:50%;border-top-color:#2563eb;display:inline-block;height:14px;width:14px}@keyframes spin-4a8d7b95{to{transform:rotate(360deg)}}@media(max-width:1024px){.ota-center[data-v-4a8d7b95]{height:auto;overflow:visible}.ota-workbench[data-v-4a8d7b95]{grid-template-columns:1fr}.firmware-scroll[data-v-4a8d7b95]{display:grid;grid-template-columns:repeat(2,1fr);max-height:280px}.stats-strip[data-v-4a8d7b95]{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.toolbar-stats[data-v-4a8d7b95]{display:none}.strategy-selector[data-v-4a8d7b95],.diag-inputs[data-v-4a8d7b95],.firmware-scroll[data-v-4a8d7b95]{grid-template-columns:1fr}.stats-strip[data-v-4a8d7b95]{grid-template-columns:repeat(2,1fr)}.two-col[data-v-4a8d7b95]{grid-template-columns:1fr}}.hint[data-v-92bf48b9]{color:var(--muted, #888);font-size:.82rem;margin:0 0 .4rem;line-height:1.5}.field[data-v-92bf48b9]{display:flex;flex-direction:column;gap:.25rem;font-size:.82rem;color:#555}.notice-inline[data-v-92bf48b9]{background:#e6f6ef;color:#0e7a52;padding:.5rem .8rem;border-radius:8px;margin-bottom:.8rem}.error-inline[data-v-92bf48b9]{background:#fbe6e2;color:#b5372a;padding:.5rem .8rem;border-radius:8px;margin-bottom:.8rem}.waves[data-v-92bf48b9]{display:flex;gap:.25rem;flex-wrap:wrap}.wave-chip[data-v-92bf48b9]{font-size:.7rem;padding:.1rem .4rem;border-radius:10px;border:1px solid #d5d5d5;color:#888}.wave-chip.done[data-v-92bf48b9]{background:#d9efe8;color:#0e7a52;border-color:#0e7a52}.wave-chip.current[data-v-92bf48b9]{background:#fff2d6;color:#b5790f;border-color:#b5790f;font-weight:700}.mono-sm[data-v-92bf48b9]{font-size:.72rem;color:#777;line-height:1.4}.badge.warn[data-v-92bf48b9]{background:#f4e9d0;color:#b5790f}.danger-btn[data-v-92bf48b9]{color:#b5372a}.op-log-page[data-v-d81d6627]{display:grid;gap:12px}.page-header[data-v-d81d6627]{align-items:flex-end;background:#fff;border:1px solid #dfe5ef;border-radius:10px;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:12px 16px}.title-block h2[data-v-d81d6627]{font-size:18px;margin:0}.title-block .sub[data-v-d81d6627]{color:#64748b;font-size:12px;margin:4px 0 0}.mini-stats[data-v-d81d6627]{display:flex;gap:8px}.mini-stat[data-v-d81d6627]{align-items:center;background:#f1f5ff;border-radius:20px;color:#1d4ed8;display:inline-flex;font-size:12px;gap:6px;padding:6px 12px}.mini-stat em[data-v-d81d6627]{color:#64748b;font-style:normal}.mini-stat strong[data-v-d81d6627]{font-size:14px}.tab-bar[data-v-d81d6627]{background:#fff;border:1px solid #dfe5ef;border-radius:10px;display:flex;gap:4px;padding:6px}.tab-bar button[data-v-d81d6627]{align-items:center;background:transparent;border:none;border-radius:6px;color:#475569;cursor:pointer;display:flex;flex:1;font-size:13px;font-weight:500;gap:8px;justify-content:center;padding:8px 12px;transition:background .15s,color .15s}.tab-bar button[data-v-d81d6627]:hover{background:#f1f5f9}.tab-bar button.active[data-v-d81d6627]{background:#2563eb;color:#fff;font-weight:600}.tab-count[data-v-d81d6627]{background:#ffffff59;border-radius:10px;color:inherit;font-size:11px;padding:0 6px}.tab-bar button:not(.active) .tab-count[data-v-d81d6627]{background:#eef2f7;color:#64748b}.panel[data-v-d81d6627]{background:#fff;border:1px solid #dfe5ef;border-radius:10px;display:grid;gap:12px;padding:14px 16px}.filter-grid[data-v-d81d6627]{display:grid;gap:10px 12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.field[data-v-d81d6627]{display:grid;font-size:12px;gap:4px}.field>span[data-v-d81d6627]{color:#64748b;font-weight:500}.field input[data-v-d81d6627],.field select[data-v-d81d6627]{height:32px}.field-range[data-v-d81d6627]{grid-column:span 2}.range[data-v-d81d6627]{align-items:center;display:flex;gap:6px}.range input[data-v-d81d6627]{flex:1;min-width:0}.range-sep[data-v-d81d6627]{color:#94a3b8}.field-actions .actions[data-v-d81d6627]{display:flex;gap:6px}.primary-btn[data-v-d81d6627]{background:#2563eb;border-color:#2563eb;color:#fff}.primary-btn[data-v-d81d6627]:hover{background:#1d4ed8}.primary-btn[data-v-d81d6627]:disabled{opacity:.6}.preset-chips[data-v-d81d6627]{display:flex;flex-wrap:wrap;gap:6px}.preset-chips button[data-v-d81d6627]{background:#f8fafc;border:1px solid #dfe5ef;border-radius:16px;color:#475569;cursor:pointer;font-size:12px;height:26px;padding:0 12px}.preset-chips button.active[data-v-d81d6627]{background:#dbeafe;border-color:#93c5fd;color:#1d4ed8;font-weight:600}.table-wrap[data-v-d81d6627]{border:1px solid #eef2f7;border-radius:8px;overflow-x:auto}.table-wrap table[data-v-d81d6627]{border-collapse:collapse;min-width:780px;width:100%}.table-wrap th[data-v-d81d6627],.table-wrap td[data-v-d81d6627]{border-bottom:1px solid #f1f5f9;font-size:12px;padding:10px 12px;text-align:left;vertical-align:middle}.table-wrap th[data-v-d81d6627]{background:#f8fafc;color:#475569;font-weight:600}.table-wrap tr:hover td[data-v-d81d6627]{background:#f8fbff}.empty-cell[data-v-d81d6627]{color:#94a3b8;font-size:13px;padding:28px;text-align:center}.nowrap[data-v-d81d6627]{white-space:nowrap}.mono[data-v-d81d6627]{font-family:SF Mono,Fira Code,Consolas,monospace;font-size:11px}.muted-text[data-v-d81d6627]{color:#94a3b8}.sub[data-v-d81d6627]{color:#94a3b8;display:inline-block;font-size:11px}.copy-cell[data-v-d81d6627]{cursor:pointer;transition:color .15s}.copy-cell[data-v-d81d6627]:hover{color:#2563eb;text-decoration:underline}.target-cell[data-v-d81d6627]{align-items:center;display:flex;gap:6px}.target-type[data-v-d81d6627]{background:#eef2f7;border-radius:4px;color:#475569;font-size:11px;padding:2px 8px}.admin-cell[data-v-d81d6627]{display:grid;gap:2px}.actions-cell[data-v-d81d6627]{white-space:nowrap}.link-btn[data-v-d81d6627]{background:transparent;border:none;color:#2563eb;cursor:pointer;font-size:12px;padding:4px 8px}.link-btn[data-v-d81d6627]:hover{background:#eff6ff;border-radius:4px}.badge[data-v-d81d6627]{border-radius:4px;display:inline-block;font-size:11px;font-weight:600;padding:2px 8px}.badge.success[data-v-d81d6627]{background:#dcfce7;color:#15803d}.badge.danger[data-v-d81d6627]{background:#fee2e2;color:#b91c1c}.badge.warning[data-v-d81d6627]{background:#fef3c7;color:#92400e}.badge.info[data-v-d81d6627]{background:#dbeafe;color:#1d4ed8}.badge.muted[data-v-d81d6627]{background:#f1f5f9;color:#64748b}.pager[data-v-d81d6627]{align-items:center;background:#f8fafc;border-radius:8px;display:flex;font-size:12px;gap:10px;justify-content:center;padding:10px 14px}.pager select[data-v-d81d6627]{max-width:110px}.drawer-overlay[data-v-d81d6627]{align-items:stretch;background:#0f172a73;bottom:0;display:flex;justify-content:flex-end;left:0;position:fixed;right:0;top:0;z-index:1000}.drawer[data-v-d81d6627]{animation:drawer-in-d81d6627 .2s ease-out;background:#fff;display:flex;flex-direction:column;height:100vh;max-width:100vw;width:480px}@keyframes drawer-in-d81d6627{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header[data-v-d81d6627]{align-items:flex-start;border-bottom:1px solid #e5eaf3;display:flex;gap:8px;justify-content:space-between;padding:14px 16px}.drawer-header h3[data-v-d81d6627]{font-size:15px;margin:0}.drawer-header .sub[data-v-d81d6627]{color:#64748b;font-size:12px;margin:4px 0 0}.close-btn[data-v-d81d6627]{background:transparent;border:none;color:#64748b;cursor:pointer;font-size:20px;line-height:1;padding:0 6px}.drawer-body[data-v-d81d6627]{display:grid;gap:14px;overflow-y:auto;padding:14px 16px}.meta-grid[data-v-d81d6627]{display:grid;gap:10px;grid-template-columns:repeat(2,1fr)}.meta-grid>div[data-v-d81d6627]{display:grid;gap:4px}.detail-label[data-v-d81d6627]{color:#64748b;font-size:11px}.section[data-v-d81d6627]{display:grid;gap:6px}.section-title[data-v-d81d6627]{align-items:center;color:#475569;display:flex;font-size:12px;font-weight:600;gap:6px;justify-content:space-between}.json-pre[data-v-d81d6627]{background:#0f172a;border-radius:6px;color:#e2e8f0;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:11px;line-height:1.5;margin:0;max-height:320px;overflow:auto;padding:10px 12px;white-space:pre-wrap;word-break:break-all}.json-pre.error[data-v-d81d6627]{background:#fef2f2;color:#b91c1c}.error-section .section-title span[data-v-d81d6627]{color:#b91c1c}@media(max-width:1024px){.filter-grid[data-v-d81d6627]{grid-template-columns:repeat(2,1fr)}.field-range[data-v-d81d6627]{grid-column:span 2}.drawer[data-v-d81d6627]{width:100%}}.sleep-manage-page{gap:16px}.sm-header{align-items:center;background:#fff;border:1px solid var(--color-border-soft);border-radius:14px;box-shadow:var(--elevation-1);display:flex;flex-wrap:wrap;gap:16px 24px;justify-content:space-between;padding:14px 20px}.sm-header-left{align-items:center;display:flex;flex:1 1 auto;gap:14px;min-width:0}.sm-back{align-items:center;background:#f1f5f9;border:1px solid transparent;border-radius:10px;color:#475569;cursor:pointer;display:inline-flex;flex:0 0 auto;font-size:16px;height:36px;justify-content:center;min-height:36px;padding:0;transition:background .2s,color .2s;width:36px}.sm-back:hover{background:var(--color-primary-soft);border-color:transparent;color:var(--color-primary-strong)}.sm-title{align-items:baseline;display:flex;flex-wrap:wrap;gap:8px 12px;min-width:0}.sm-crumb{align-items:center;background:var(--color-primary-soft);border-radius:999px;color:var(--color-primary-strong);display:inline-flex;font-size:12px;font-weight:600;height:22px;padding:0 10px}.sm-title h2{color:var(--color-text);font-size:18px;font-weight:700;letter-spacing:.2px;margin:0}.sm-realtime-badge{align-items:center;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:999px;color:#047857;display:inline-flex;font-size:11px;font-weight:600;padding:3px 9px}.sm-summary{align-items:center;display:flex;flex:0 1 auto;flex-wrap:wrap;gap:0}.sm-summary-item{align-items:baseline;display:flex;gap:6px;padding:0 14px}.sm-summary-sep{background:var(--color-border-soft);height:22px;width:1px}.sm-summary-label{color:var(--color-muted);font-size:12px}.sm-summary-item strong{color:var(--color-text);font-size:18px;font-variant-numeric:tabular-nums;font-weight:700;line-height:1}.sm-summary-item em{color:var(--color-muted);font-size:11px;font-style:normal;font-weight:500;margin-left:2px}.sm-controls{align-items:center;background:#fff;border:1px solid var(--color-border-soft);border-radius:14px;box-shadow:var(--elevation-1);display:flex;flex-wrap:wrap;gap:12px 20px;justify-content:space-between;padding:12px 20px}.sm-toolbar{align-items:flex-end;background:transparent;border:0;display:flex;flex-wrap:wrap;gap:12px;padding:0}.sm-field{display:flex;flex-direction:column;gap:4px;min-width:130px}.sm-field>span{color:var(--color-muted);font-size:11px;font-weight:500;letter-spacing:.2px}.sm-field input,.sm-field select{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;min-height:36px;transition:border-color .2s,box-shadow .2s,background .2s}.sm-field input:hover,.sm-field select:hover{border-color:#cbd5e1}.sm-field input:focus,.sm-field select:focus{background:#fff;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}.sm-btn{align-items:center;align-self:flex-end;border:1px solid transparent;border-radius:8px;cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;gap:6px;justify-content:center;min-height:36px;padding:0 22px;transition:transform .15s,box-shadow .2s,background .2s}.sm-btn-primary{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-strong));border-color:transparent;box-shadow:0 6px 14px #6366f138;color:#fff}.sm-btn-primary:hover:not(:disabled){border-color:transparent;color:#fff;transform:translateY(-1px)}.sm-btn-primary:disabled{background:#cbd5e1;box-shadow:none;color:#f8fafc}.sm-legend{display:flex;flex-wrap:wrap;gap:6px 8px}.sm-legend-item{align-items:center;background:#f8fafc;border-radius:999px;color:var(--color-text-soft);display:inline-flex;font-size:12px;gap:6px;padding:4px 10px}.sm-legend-dot{border-radius:4px;display:inline-block;height:10px;width:10px}.sm-legend-dot.deep{background:#4f46e5}.sm-legend-dot.light{background:#38bdf8}.sm-legend-dot.awake{background:#fb7185}.sm-legend-dot.unknown{background:#cbd5e1}.sm-empty{align-items:center;background:#fff;border:1px dashed #e2e8f0;border-radius:14px;color:var(--color-muted);display:flex;flex-direction:column;gap:10px;justify-content:center;padding:48px 20px}.sm-empty-illust{font-size:32px;opacity:.7}.sm-loader{animation:sm-spin .9s linear infinite;border:3px solid rgba(99,102,241,.2);border-radius:50%;border-top-color:var(--color-primary);height:26px;width:26px}@keyframes sm-spin{to{transform:rotate(360deg)}}.sleep-cards{display:flex;flex-direction:column;gap:14px}.sleep-day-card{align-items:stretch;background:#fff;border:1px solid var(--color-border-soft);border-radius:16px;box-shadow:var(--elevation-1);display:flex;gap:20px;padding:18px 20px;transition:box-shadow .2s,transform .2s,border-color .2s}.sleep-day-card:hover{border-color:#6366f159;box-shadow:0 14px 30px #4f46e51a;transform:translateY(-1px)}.day-label{align-items:center;background:linear-gradient(160deg,#eef2ff,#e0e7ff);border-radius:12px;color:#3730a3;display:flex;flex-direction:column;gap:2px;justify-content:center;min-width:72px;padding:12px 10px}.day-label strong{color:#4338ca;font-size:18px;font-weight:700}.day-label span{color:#6366f1;font-size:12px;font-weight:500}.day-content{display:flex;flex:1;flex-direction:column;gap:6px;min-width:0}.sleep-period-grid{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(320px,1fr))}.sleep-period-panel{background:#fafbff;border:1px solid #eef2f7;border-radius:14px;display:grid;gap:10px;min-width:0;padding:14px 16px;position:relative;transition:border-color .2s,background .2s}.sleep-period-panel.period-day{background:linear-gradient(180deg,#fffbeb,#fefce8);border-color:#fef3c7}.sleep-period-panel.period-night{background:linear-gradient(180deg,#eef2ff,#ede9fe);border-color:#ddd6fe}.sleep-period-header{align-items:center;display:flex;gap:8px;justify-content:space-between}.period-badge{align-items:center;background:#fff;border-radius:999px;box-shadow:0 2px 6px #0f172a0f;color:#1e293b;display:inline-flex;font-size:13px;font-weight:600;gap:6px;padding:4px 12px}.period-icon{border-radius:50%;display:inline-block;height:10px;width:10px}.period-icon.day{background:radial-gradient(circle at 30% 30%,#fde68a,#f59e0b);box-shadow:0 0 6px #f59e0b80}.period-icon.night{background:radial-gradient(circle at 30% 30%,#a5b4fc,#4f46e5);box-shadow:0 0 6px #4f46e580}.period-range{background:#0f172a0f;border-radius:999px;color:#475569;font-size:11px;padding:3px 10px}.time-axis{color:#94a3b8;display:flex;font-size:11px;font-variant-numeric:tabular-nums;justify-content:space-between;padding:0 2px}.sleep-track{background:#e5e7eb;border-radius:999px;box-shadow:inset 0 1px 2px #0f172a14;display:flex;height:26px;overflow:hidden}.sleep-segment{flex-basis:0;min-width:1px;transition:filter .15s}.sleep-segment:hover{filter:brightness(1.15) saturate(1.1)}.sleep-segment.deep{background:linear-gradient(180deg,#6366f1,#4338ca)}.sleep-segment.light{background:linear-gradient(180deg,#38bdf8,#0284c7)}.sleep-segment.awake{background:linear-gradient(180deg,#fb7185,#e11d48)}.sleep-segment.unknown{background:#d1d5db}.sleep-segment.start{border-bottom-left-radius:999px;border-top-left-radius:999px}.sleep-segment.end{border-bottom-right-radius:999px;border-top-right-radius:999px}.day-metrics{display:grid;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr))}.day-metrics .metric{align-items:center;background:#fff;border:1px solid rgba(226,232,240,.9);border-radius:10px;display:flex;gap:6px;min-width:0;padding:8px 10px;transition:border-color .2s,transform .15s}.day-metrics .metric:hover{transform:translateY(-1px)}.day-metrics .metric-deep:hover{border-color:#4f46e559}.day-metrics .metric-light:hover{border-color:#0284c759}.day-metrics .metric-awake:hover{border-color:#e11d4859}.day-metrics .metric-unknown:hover{border-color:#94a3b880}.metric-name{color:#64748b;font-size:12px;white-space:nowrap}.day-metrics .metric strong{color:#0f172a;font-size:16px;font-weight:700;margin-left:auto;overflow-wrap:anywhere}.day-metrics .metric strong em{color:#94a3b8;font-size:11px;font-style:normal;font-weight:500;margin-left:2px}.metric-icon{font-size:10px;line-height:1}.metric-icon.deep{color:#4f46e5}.metric-icon.light{color:#0284c7}.metric-icon.awake{color:#e11d48}.metric-icon.unknown{color:#94a3b8}@media(max-width:1080px){.sm-header{align-items:flex-start}.sm-summary{flex:1 1 100%;justify-content:flex-start}}@media(max-width:900px){.sleep-period-grid{grid-template-columns:1fr}.sm-summary-item{padding:0 10px}.sm-summary-item strong{font-size:16px}}@media(max-width:720px){.sm-header,.sm-controls{padding:14px}.sm-summary{gap:4px 0}.sm-summary-sep{display:none}.sm-summary-item{background:#f8fafc;border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px}.sleep-day-card{flex-direction:column;padding:16px}.day-label{align-items:flex-start;flex-direction:row;gap:10px;min-width:0;padding:8px 14px}.day-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}.users-page[data-v-de4b51e0]{display:grid;gap:12px}.toolbar[data-v-de4b51e0]{align-items:center;background:#fff;border:1px solid #dfe5ef;border-radius:10px;display:flex;flex-wrap:wrap;gap:8px;padding:10px 14px}.toolbar input[data-v-de4b51e0],.toolbar select[data-v-de4b51e0]{max-width:160px}.toolbar-stats[data-v-de4b51e0]{align-items:center;display:flex;gap:12px;margin-left:auto}.mini-stat[data-v-de4b51e0]{font-size:12px;font-weight:600}.mini-stat.ok[data-v-de4b51e0]{color:#15803d}.mini-stat.disabled[data-v-de4b51e0]{color:#b91c1c}.mini-stat.total[data-v-de4b51e0]{color:#64748b}.user-row[data-v-de4b51e0]{cursor:pointer;transition:background .1s}.user-row[data-v-de4b51e0]:hover{background:#f8fbff}.sub[data-v-de4b51e0]{color:#94a3b8;display:block;font-size:11px}.actions-cell[data-v-de4b51e0]{display:flex;gap:4px;white-space:nowrap}.danger-btn[data-v-de4b51e0]{color:#b91c1c}.danger-btn[data-v-de4b51e0]:hover{background:#fef2f2;border-color:#fca5a5}.pager[data-v-de4b51e0]{align-items:center;background:#fff;border:1px solid #dfe5ef;border-radius:8px;display:flex;font-size:12px;gap:10px;justify-content:center;padding:10px 14px}.pager select[data-v-de4b51e0]{max-width:100px;width:auto}.user-detail-modal[data-v-de4b51e0]{max-height:calc(100vh - 40px);min-height:600px;overflow-y:auto;width:min(1200px,calc(100vw - 40px))}.user-detail-modal[data-v-de4b51e0] .modal-table{max-height:none}.user-detail-body[data-v-de4b51e0]{display:grid;gap:14px}.user-summary[data-v-de4b51e0]{background:#f8fafc;border:1px solid #e5eaf3;border-radius:8px;display:grid;gap:10px;grid-template-columns:repeat(5,1fr);padding:12px 14px}.user-summary>div[data-v-de4b51e0]{display:grid;gap:2px}.detail-label[data-v-de4b51e0]{color:#64748b;font-size:11px}.subtabs[data-v-de4b51e0],.user-tabs[data-v-de4b51e0]{background:#f8fafc;border:1px solid #dfe5ef;border-radius:8px;display:flex;gap:4px;padding:4px}.subtabs button[data-v-de4b51e0],.user-tabs button[data-v-de4b51e0]{border-color:transparent;flex:1;font-size:12px;min-width:0}.subtabs button.active[data-v-de4b51e0],.user-tabs button.active[data-v-de4b51e0]{background:#2563eb;border-color:#2563eb;color:#fff;font-weight:600}.compact-tabs[data-v-de4b51e0]{margin-bottom:10px}.compact-tabs button[data-v-de4b51e0]{flex:none;padding:0 14px}.overview-panel[data-v-de4b51e0]{display:grid;gap:14px}.detail-grid[data-v-de4b51e0]{display:grid;gap:8px;grid-template-columns:repeat(3,1fr)}.detail-field[data-v-de4b51e0]{display:grid;gap:2px;padding:8px}.stats-cards[data-v-de4b51e0]{display:grid;gap:8px;grid-template-columns:repeat(5,1fr)}.stat-card[data-v-de4b51e0]{background:#f8fafc;border:1px solid #e5eaf3;border-radius:8px;display:grid;gap:4px;padding:12px;text-align:center}.stat-card span[data-v-de4b51e0]{color:#64748b;font-size:11px}.stat-card strong[data-v-de4b51e0]{color:#0f172a;font-size:20px}.online-dot[data-v-de4b51e0]{background:#94a3b8;border-radius:50%;display:inline-block;height:8px;margin-right:4px;vertical-align:middle;width:8px}.online-dot.on[data-v-de4b51e0]{background:#22c55e}.support-grid[data-v-de4b51e0]{display:grid;gap:10px}.empty-cell[data-v-de4b51e0]{color:#94a3b8;font-size:13px;padding:20px;text-align:center}.detail-pre[data-v-de4b51e0]{background:#f8fafc;border:1px solid #e5eaf3;border-radius:8px;font-size:12px;line-height:1.6;max-height:400px;overflow:auto;padding:14px;white-space:pre-wrap}@media(max-width:1024px){.user-summary[data-v-de4b51e0]{grid-template-columns:repeat(3,1fr)}.detail-grid[data-v-de4b51e0]{grid-template-columns:repeat(2,1fr)}.stats-cards[data-v-de4b51e0]{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.user-summary[data-v-de4b51e0],.detail-grid[data-v-de4b51e0],.stats-cards[data-v-de4b51e0]{grid-template-columns:1fr}}.admin-page[data-v-838e8eda]{padding:12px}.panel[data-v-838e8eda]{background:#fff;border:1px solid #dde4f0;border-radius:8px;padding:16px 18px}.toolbar[data-v-838e8eda]{display:flex;align-items:end;gap:12px;margin-bottom:12px;flex-wrap:wrap}.filter[data-v-838e8eda]{display:flex;flex-direction:column;gap:4px;font-size:13px}.filter input[data-v-838e8eda],.filter select[data-v-838e8eda]{min-width:180px;height:32px;padding:0 8px;border:1px solid #cfd8e6;border-radius:4px}.table[data-v-838e8eda]{width:100%;border-collapse:collapse;font-size:13px}.table th[data-v-838e8eda],.table td[data-v-838e8eda]{padding:8px 10px;border-bottom:1px solid #eef1f6;text-align:left;vertical-align:middle}.table th[data-v-838e8eda]{background:#f7f9fc;font-weight:600}.ops[data-v-838e8eda]{display:flex;gap:8px}.role-tag[data-v-838e8eda]{display:inline-block;padding:1px 8px;margin-right:4px;font-size:12px;border-radius:10px;background:#e6f0fc;color:#1c63ba}.tag[data-v-838e8eda]{font-size:11px;padding:1px 6px;border-radius:8px;background:#eef1f6;color:#566277;margin-left:4px}.muted[data-v-838e8eda]{color:#7b8495}.small[data-v-838e8eda]{font-size:12px}.center[data-v-838e8eda]{text-align:center}.pager[data-v-838e8eda]{display:flex;align-items:center;gap:10px;justify-content:flex-end;margin-top:12px}button.link[data-v-838e8eda]{background:transparent;border:0;color:#2374d8;cursor:pointer;padding:0}button.link.danger[data-v-838e8eda]{color:#a8071a}button.primary[data-v-838e8eda]{background:#2374d8;color:#fff;border:0}button.secondary[data-v-838e8eda]{background:#fff;border:1px solid #cfd8e6;color:#3c4658}button[data-v-838e8eda]{height:32px;padding:0 12px;border-radius:4px;cursor:pointer}button.small[data-v-838e8eda]{height:26px;padding:0 10px;font-size:12px}.modal-mask[data-v-838e8eda]{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c2b4c66;display:grid;place-items:center;z-index:100}.modal[data-v-838e8eda]{width:420px;background:#fff;border-radius:8px;padding:20px;max-height:80vh;overflow:auto}.modal h3[data-v-838e8eda]{margin:0 0 14px}.modal label[data-v-838e8eda]{display:flex;flex-direction:column;gap:4px;font-size:13px;margin-bottom:10px}.modal input[data-v-838e8eda]{height:32px;padding:0 8px;border:1px solid #cfd8e6;border-radius:4px}.modal-actions[data-v-838e8eda]{display:flex;gap:10px;justify-content:flex-end;margin-top:12px}.roles[data-v-838e8eda]{border:1px solid #e6ebf4;border-radius:6px;padding:10px;margin-bottom:10px}.roles legend[data-v-838e8eda]{font-size:12px;color:#566277;padding:0 6px}.role-check[data-v-838e8eda]{display:flex;align-items:center;gap:8px;font-size:13px;margin:4px 0}.role-check code[data-v-838e8eda]{background:#f0f3f8;padding:1px 6px;border-radius:3px;font-family:Consolas,monospace}.message.error[data-v-838e8eda]{color:#a8071a}.message.notice[data-v-838e8eda]{color:#095c1e}.role-page[data-v-7fb2eae7]{padding:12px}.role-layout[data-v-7fb2eae7]{align-items:start;display:grid;gap:14px;grid-template-columns:276px minmax(0,1fr)}.panel[data-v-7fb2eae7]{background:#fff;border:1px solid #dbe3ef;border-radius:8px;box-shadow:0 1px 2px #0f172a0a}.role-list[data-v-7fb2eae7]{align-self:start;max-height:calc(100vh - 132px);overflow:auto;padding:14px;position:sticky;top:12px}.role-detail[data-v-7fb2eae7]{min-width:0;padding:16px}.list-head[data-v-7fb2eae7]{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.list-head>div[data-v-7fb2eae7]{display:grid;gap:2px}.role-search[data-v-7fb2eae7],.detail-form input[data-v-7fb2eae7],.detail-form select[data-v-7fb2eae7],.modal input[data-v-7fb2eae7],.modal select[data-v-7fb2eae7],.advanced-search[data-v-7fb2eae7]{border:1px solid #cfd8e6;border-radius:6px;height:34px;padding:0 9px}.role-search[data-v-7fb2eae7]{margin-bottom:10px;width:100%}.role-list ul[data-v-7fb2eae7]{list-style:none;margin:0;padding:0}.role-list li[data-v-7fb2eae7]{border:1px solid transparent;border-radius:7px;cursor:pointer;margin-bottom:6px;padding:9px 10px}.role-list li[data-v-7fb2eae7]:hover{background:#f0f4fa}.role-list li.active[data-v-7fb2eae7]{background:#eff6ff;border-color:#bfdbfe}.row1[data-v-7fb2eae7]{align-items:center;display:flex;gap:8px}.rname[data-v-7fb2eae7]{font-weight:700}.row2[data-v-7fb2eae7]{margin-top:3px}.role-count[data-v-7fb2eae7]{color:#64748b;font-size:12px;margin-top:6px}.tag[data-v-7fb2eae7]{background:#eef2f7;border-radius:999px;color:#52637a;font-size:11px;padding:2px 7px}.tag.danger[data-v-7fb2eae7]{background:#fff1f0;color:#a8071a}.detail-head[data-v-7fb2eae7]{align-items:flex-start;border-bottom:1px solid #eef2f7;display:flex;gap:16px;justify-content:space-between;margin-bottom:14px;padding-bottom:12px}.detail-head h2[data-v-7fb2eae7]{font-size:20px;margin:0 0 4px}.actions[data-v-7fb2eae7]{align-items:center;display:flex;gap:8px}.summary-grid[data-v-7fb2eae7]{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(120px,1fr));margin-bottom:14px}.summary-card[data-v-7fb2eae7]{background:#f8fafc;border:1px solid #e2e8f0;border-radius:7px;display:grid;gap:4px;padding:11px 12px}.summary-card span[data-v-7fb2eae7]{color:#64748b;font-size:12px}.summary-card strong[data-v-7fb2eae7]{color:#0f172a;font-size:18px}.info-strip[data-v-7fb2eae7]{background:#eff6ff;border:1px solid #bfdbfe;border-radius:7px;color:#1d4ed8;font-size:13px;margin-bottom:12px;padding:10px 12px}.detail-form[data-v-7fb2eae7]{background:#fbfdff;border:1px solid #eef2f7;border-radius:8px;display:grid;gap:12px;grid-template-columns:1fr 1.5fr 160px;margin-bottom:14px;padding:12px}.detail-form label[data-v-7fb2eae7],.modal label[data-v-7fb2eae7]{display:grid;font-size:13px;gap:5px}.matrix-card[data-v-7fb2eae7],.advanced-card[data-v-7fb2eae7]{border:1px solid #e2e8f0;border-radius:8px;margin-top:12px;overflow:hidden}.matrix-head[data-v-7fb2eae7]{background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:12px}.matrix-head>div[data-v-7fb2eae7]{display:grid;gap:3px}.matrix-table[data-v-7fb2eae7]{display:grid}.matrix-row[data-v-7fb2eae7]{align-items:center;border-bottom:1px solid #eef2f7;display:grid;gap:10px;grid-template-columns:minmax(260px,1fr) 74px 74px 74px 74px 180px;min-height:58px;padding:9px 12px}.matrix-row[data-v-7fb2eae7]:last-child{border-bottom:none}.matrix-row--head[data-v-7fb2eae7]{background:#fbfdff;color:#475569;font-size:12px;font-weight:600;min-height:38px}.module-cell[data-v-7fb2eae7]{display:grid;gap:3px;min-width:0}.module-cell strong[data-v-7fb2eae7]{color:#0f172a}.module-cell span[data-v-7fb2eae7]{color:#64748b;font-size:12px}.module-cell em[data-v-7fb2eae7]{color:#c2410c;font-size:12px;font-style:normal}.switch-cell[data-v-7fb2eae7]{align-items:center;display:flex;justify-content:center}.switch-cell input[data-v-7fb2eae7],.advanced-row input[data-v-7fb2eae7]{height:16px;width:16px}.row-actions[data-v-7fb2eae7]{align-items:center;display:flex;gap:6px}.row-actions span[data-v-7fb2eae7]{color:#64748b;font-size:12px;margin-left:2px;white-space:nowrap}.advanced-card[data-v-7fb2eae7]{padding:12px}.advanced-toggle[data-v-7fb2eae7]{background:transparent;color:#2563eb;height:auto;padding:0}.advanced-body[data-v-7fb2eae7]{display:grid;gap:10px;margin-top:12px}.advanced-search[data-v-7fb2eae7]{max-width:320px}.advanced-list[data-v-7fb2eae7]{border:1px solid #eef2f7;border-radius:8px;max-height:360px;overflow:auto}.advanced-row[data-v-7fb2eae7]{align-items:center;border-bottom:1px solid #eef2f7;display:grid;gap:8px;grid-template-columns:24px minmax(160px,1fr) minmax(260px,1.4fr) 58px;padding:8px 10px}.advanced-row[data-v-7fb2eae7]:last-child{border-bottom:none}.advanced-row code[data-v-7fb2eae7]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.advanced-row em[data-v-7fb2eae7]{color:#64748b;font-size:12px;font-style:normal}.small[data-v-7fb2eae7]{font-size:12px}.muted[data-v-7fb2eae7]{color:#7b8495}.empty[data-v-7fb2eae7]{padding:40px;text-align:center}.message[data-v-7fb2eae7]{border-radius:7px;margin:0 0 10px;padding:9px 12px}.message.error[data-v-7fb2eae7]{background:#fef2f2;color:#a8071a}.message.notice[data-v-7fb2eae7]{background:#ecfdf5;color:#047857}button[data-v-7fb2eae7]{border:0;border-radius:6px;cursor:pointer;height:32px;padding:0 12px}button[data-v-7fb2eae7]:disabled{cursor:not-allowed;opacity:.55}button.primary[data-v-7fb2eae7]{background:#2563eb;color:#fff}button.secondary[data-v-7fb2eae7]{background:#fff;border:1px solid #cfd8e6;color:#334155}button.danger[data-v-7fb2eae7]{background:#fff;border:1px solid #fecaca;color:#b91c1c}button.ghost[data-v-7fb2eae7]{background:#f8fafc;border:1px solid #e2e8f0;color:#475569;font-size:12px;height:28px;padding:0 9px}button.small[data-v-7fb2eae7]{height:28px;padding:0 10px}code[data-v-7fb2eae7]{background:#f1f5f9;border-radius:4px;font-family:Consolas,monospace;padding:1px 5px}.modal-mask[data-v-7fb2eae7]{background:#0f172a61;display:grid;top:0;right:0;bottom:0;left:0;place-items:center;position:fixed;z-index:100}.modal[data-v-7fb2eae7]{background:#fff;border-radius:10px;padding:20px;width:420px}.modal h3[data-v-7fb2eae7]{margin:0 0 14px}.modal label[data-v-7fb2eae7]{margin-bottom:10px}.modal-actions[data-v-7fb2eae7]{display:flex;gap:10px;justify-content:flex-end;margin-top:14px}@media(max-width:1120px){.matrix-row[data-v-7fb2eae7]{grid-template-columns:minmax(220px,1fr) repeat(4,62px) 150px}}@media(max-width:960px){.role-layout[data-v-7fb2eae7]{grid-template-columns:1fr}.role-list[data-v-7fb2eae7]{max-height:none;position:static}.summary-grid[data-v-7fb2eae7]{grid-template-columns:repeat(2,minmax(120px,1fr))}.detail-form[data-v-7fb2eae7]{grid-template-columns:1fr}.matrix-table[data-v-7fb2eae7]{overflow-x:auto}.matrix-row[data-v-7fb2eae7]{min-width:820px}}.permission-page[data-v-40cb09b5]{display:grid;gap:12px;padding:12px}.page-card[data-v-40cb09b5]{background:#fff;border:1px solid #dbe3ef;border-radius:8px;box-shadow:0 1px 2px #0f172a0a;padding:14px 16px}.intro[data-v-40cb09b5]{align-items:center;display:flex;justify-content:space-between;gap:16px}.intro h2[data-v-40cb09b5]{font-size:18px;margin:0 0 4px}.intro p[data-v-40cb09b5]{color:#64748b;font-size:13px;margin:0}.stats-grid[data-v-40cb09b5]{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}.stat-card[data-v-40cb09b5]{background:#fff;border:1px solid #dbe3ef;border-radius:8px;box-shadow:0 1px 2px #0f172a0a;display:grid;gap:4px;padding:12px 14px}.stat-card span[data-v-40cb09b5]{color:#64748b;font-size:12px}.stat-card strong[data-v-40cb09b5]{color:#0f172a;font-size:22px}.filters[data-v-40cb09b5]{align-items:end;display:flex;flex-wrap:wrap;gap:10px}.filters label[data-v-40cb09b5]{display:grid;font-size:13px;gap:5px}.filters select[data-v-40cb09b5],.filters input[data-v-40cb09b5]{border:1px solid #cfd8e6;border-radius:6px;height:34px;padding:0 9px}.filters select[data-v-40cb09b5]{width:180px}.filters .keyword[data-v-40cb09b5]{flex:1 1 300px}.result-count[data-v-40cb09b5]{color:#64748b;font-size:12px;margin-left:auto;padding-bottom:8px}.table-card[data-v-40cb09b5]{padding:0;overflow:hidden}table[data-v-40cb09b5]{border-collapse:collapse;font-size:13px;width:100%}th[data-v-40cb09b5],td[data-v-40cb09b5]{border-bottom:1px solid #eef2f7;padding:10px 12px;text-align:left;vertical-align:middle}th[data-v-40cb09b5]{background:#f8fafc;color:#475569;font-weight:600}tbody tr:hover td[data-v-40cb09b5]{background:#f8fbff}tr.deprecated[data-v-40cb09b5]{opacity:.55}code[data-v-40cb09b5]{background:#f1f5f9;border-radius:4px;font-family:Consolas,monospace;padding:2px 6px}.kind-chip[data-v-40cb09b5]{border-radius:999px;font-size:12px;padding:2px 8px}.kind-chip.menu[data-v-40cb09b5]{background:#eef2ff;color:#3730a3}.kind-chip.api[data-v-40cb09b5]{background:#ecfdf5;color:#047857}.kind-chip.neutral[data-v-40cb09b5]{background:#f1f5f9;color:#475569}.path-cell[data-v-40cb09b5]{color:#334155;font-family:Consolas,monospace;max-width:480px}.method[data-v-40cb09b5]{background:#e2e8f0;border-radius:4px;color:#475569;display:inline-block;font-size:11px;margin-right:6px;padding:1px 5px}.desc-cell[data-v-40cb09b5]{color:#64748b;max-width:360px}.empty-cell[data-v-40cb09b5]{color:#94a3b8;padding:28px;text-align:center}.message[data-v-40cb09b5]{border-radius:7px;margin:0;padding:9px 12px}.message.error[data-v-40cb09b5]{background:#fef2f2;color:#a8071a}button[data-v-40cb09b5]{border:0;border-radius:6px;cursor:pointer;height:32px;padding:0 12px}button.secondary[data-v-40cb09b5]{background:#fff;border:1px solid #cfd8e6;color:#334155}button[data-v-40cb09b5]:disabled{cursor:not-allowed;opacity:.55}@media(max-width:1180px){.stats-grid[data-v-40cb09b5]{grid-template-columns:repeat(2,minmax(140px,1fr))}.intro[data-v-40cb09b5]{align-items:flex-start;flex-direction:column}.result-count[data-v-40cb09b5]{margin-left:0}}.forbidden-panel[data-v-11bcb6d7]{padding:60px 40px;display:flex;align-items:center;justify-content:center}.forbidden-body[data-v-11bcb6d7]{text-align:center}.forbidden-body h1[data-v-11bcb6d7]{font-size:64px;margin:0 0 12px;color:#b0454f}.forbidden-body p[data-v-11bcb6d7]{margin:4px 0}.muted[data-v-11bcb6d7]{color:#8a91a2;font-size:13px}:root{color:#0f172a;background:#f5f7fb;font-family:Inter var,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;letter-spacing:0;font-feature-settings:"cv02","cv11","tnum";--color-primary: #6366f1;--color-primary-strong: #4f46e5;--color-primary-soft: rgba(99, 102, 241, .12);--color-primary-line: rgba(99, 102, 241, .24);--color-accent: #0ea5e9;--color-accent-soft: rgba(14, 165, 233, .12);--color-success: #10b981;--color-success-soft: rgba(16, 185, 129, .12);--color-warning: #f59e0b;--color-warning-soft: rgba(245, 158, 11, .14);--color-danger: #ef4444;--color-danger-soft: rgba(239, 68, 68, .12);--color-purple: #8b5cf6;--color-purple-soft: rgba(139, 92, 246, .12);--color-teal: #14b8a6;--color-teal-soft: rgba(20, 184, 166, .12);--color-muted: #64748b;--color-muted-strong: #475569;--color-text: #0f172a;--color-text-soft: #334155;--color-border: #e2e8f0;--color-border-soft: #eef2f7;--color-surface: #ffffff;--color-surface-alt: #f8fafc;--color-surface-hover: #f1f5f9;--elevation-1: 0 1px 2px rgba(15, 23, 42, .04), 0 1px 1px rgba(15, 23, 42, .02);--elevation-2: 0 4px 12px rgba(15, 23, 42, .06), 0 2px 4px rgba(15, 23, 42, .03);--elevation-3: 0 12px 32px rgba(15, 23, 42, .1), 0 4px 8px rgba(15, 23, 42, .04);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-pill: 999px}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button,a{align-items:center;border:1px solid #cfd7e6;border-radius:6px;color:#1f2a3d;cursor:pointer;display:inline-flex;gap:6px;justify-content:center;min-height:34px;padding:0 12px;text-decoration:none;white-space:nowrap}button{background:#fff}button:hover,a:hover{border-color:#4377d8;color:#1b5fc4}button:disabled{cursor:not-allowed;opacity:.6}input:not([type=checkbox]):not([type=radio]),select,textarea{background:#fff;border:1px solid #cfd7e6;border-radius:6px;color:#172033;min-height:36px;outline:none;padding:0 10px;width:100%}textarea{min-height:74px;padding-top:8px;resize:vertical}input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{border-color:#4377d8;box-shadow:0 0 0 3px #4377d824}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid #e5eaf3;padding:12px;text-align:left;vertical-align:middle}th{background:#f7f9fc;color:#607089;font-size:12px;font-weight:600}td span{color:#6b778c;font-size:12px}.login-shell{align-items:center;background:linear-gradient(120deg,#f5f7fbeb,#e8eef7e6),url("data:image/svg+xml,%3Csvg width='1200' height='800' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='%23c4ccda' stroke-width='1'%3E%3Cpath d='M0 130h1200M0 280h1200M0 430h1200M0 580h1200M160 0v800M360 0v800M560 0v800M760 0v800M960 0v800'/%3E%3C/g%3E%3Cg fill='%234377d8' opacity='.14'%3E%3Ccircle cx='260' cy='170' r='7'/%3E%3Ccircle cx='760' cy='430' r='7'/%3E%3Ccircle cx='960' cy='280' r='7'/%3E%3C/g%3E%3C/svg%3E");display:flex;min-height:100vh;padding:24px}.login-panel{background:#fff;border:1px solid #d8dfeb;border-radius:8px;box-shadow:0 24px 60px #202c441f;margin:auto;max-width:420px;padding:32px;width:100%}.login-panel h1,.topbar h1{font-size:26px;line-height:1.2;margin:4px 0 0}.eyebrow{color:#607089;font-size:12px;font-weight:700;margin:0;text-transform:uppercase}.form-stack,.form-grid{display:grid;gap:12px}.form-stack{margin-top:28px}label span{color:#607089;display:block;font-size:12px;margin-bottom:6px}.primary{background:#2563eb;border-color:#2563eb;color:#fff;font-weight:600}.primary:hover{background:#1d4ed8;color:#fff}.ghost{background:#f8fafc}.app-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,#0f172a,#131c33);border-right:1px solid rgba(255,255,255,.06);color:#cbd5e1;display:flex;flex-direction:column;padding:20px 12px;overflow-y:auto;position:relative}.sidebar:before{content:"";background:radial-gradient(600px 200px at 100% 0%,rgba(99,102,241,.14),transparent 60%),radial-gradient(400px 200px at 0% 100%,rgba(14,165,233,.1),transparent 60%);top:0;right:0;bottom:0;left:0;pointer-events:none;position:absolute}.sidebar>*{position:relative;z-index:1}.brand{align-items:center;border-bottom:1px solid rgba(255,255,255,.08);display:flex;gap:12px;padding:4px 10px 20px;margin-bottom:8px}.brand__logo{align-items:center;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:10px;box-shadow:0 4px 12px #6366f159;color:#fff;display:inline-flex;height:38px;justify-content:center;width:38px}.brand__text{display:grid;gap:2px}.brand__text strong{color:#fff;font-size:16px;font-weight:600;letter-spacing:-.01em}.brand__text span{color:#94a3b8;font-size:11px}.sidebar nav{display:grid;gap:16px}.nav-section{display:grid;gap:2px}.nav-section__label{color:#64748b;font-size:10.5px;font-weight:600;letter-spacing:.08em;padding:8px 12px 4px;text-transform:uppercase}.sidebar .nav-item{align-items:center;background:transparent;border:1px solid transparent;border-radius:8px;color:#cbd5e1;display:flex;font-size:13.5px;font-weight:500;gap:10px;justify-content:flex-start;min-height:36px;padding:0 12px;transition:background .15s ease,color .15s ease}.sidebar .nav-item svg{opacity:.75;transition:opacity .15s ease}.sidebar .nav-item:hover{background:#94a3b814;border-color:transparent;color:#f8fafc}.sidebar .nav-item:hover svg{opacity:1}.sidebar .nav-item.active{background:linear-gradient(135deg,#6366f133,#8b5cf629);border-color:#6366f152;box-shadow:inset 3px 0 #818cf8;color:#fff;font-weight:600}.sidebar .nav-item.active svg{color:#a5b4fc;opacity:1}.sidebar button:not(.nav-item){background:transparent;border-color:transparent;color:#cbd5e1;justify-content:flex-start}.sidebar button:not(.nav-item).active,.sidebar button:not(.nav-item):hover{background:#94a3b814;border-color:transparent;color:#fff}.menu-group{display:grid;gap:4px}.menu-parent{width:100%}.menu-parent .chevron{color:inherit;font-size:14px;margin-left:auto}.submenu{display:grid;gap:4px;padding-left:14px}.submenu button{color:#aab4c5;min-height:30px;padding-left:18px}.submenu button.active{background:#1f3658;color:#fff}.content{min-width:0;padding:22px 24px}.topbar{align-items:center;background:transparent;border:none;border-radius:0;display:flex;justify-content:space-between;margin-bottom:18px;padding:6px 2px 0}.topbar__left{align-items:center;display:flex;gap:14px;min-width:0}.topbar__nav{align-items:center;display:inline-flex;gap:4px}.topbar__navbtn{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--elevation-1);color:var(--color-text-soft);cursor:pointer;display:inline-flex;height:32px;justify-content:center;min-height:32px;padding:0;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .05s ease;width:32px}.topbar__navbtn:hover:not(:disabled){background:var(--color-primary-soft);border-color:var(--color-primary-line);color:var(--color-primary-strong)}.topbar__navbtn:active:not(:disabled){transform:translateY(1px)}.topbar__navbtn:disabled{background:var(--color-surface-alt);border-color:var(--color-border-soft);box-shadow:none;color:#cbd5e1;cursor:not-allowed}.topbar__title{display:grid;gap:4px}.topbar h1{color:var(--color-text);font-size:20px;font-weight:700;letter-spacing:-.015em;line-height:1.2;margin:0}.topbar__crumb{color:var(--color-muted);font-size:15px;font-weight:500;margin-right:6px}.topbar__crumb-sep{color:var(--color-border);font-size:15px;font-weight:400;margin-right:6px}.topbar__meta{align-items:center;display:inline-flex;gap:12px}.topbar__health{align-items:center;color:var(--color-muted);display:inline-flex;font-size:12px;gap:6px}.topbar__dot{border-radius:var(--radius-pill);display:inline-block;height:6px;width:6px}.topbar__dot.ok{background:var(--color-success);box-shadow:0 0 0 3px var(--color-success-soft)}.topbar__dot.warn{background:var(--color-warning);box-shadow:0 0 0 3px var(--color-warning-soft)}.topbar__dot.error{background:var(--color-danger);box-shadow:0 0 0 3px var(--color-danger-soft)}.topbar__actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.topbar__actions .ghost{background:var(--color-surface);border-color:var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-soft);font-weight:500}.topbar__actions .ghost:hover{background:var(--color-surface-hover);border-color:#94a3b866;color:var(--color-text)}.top-actions,.button-row,.row-actions,.toolbar{display:flex;flex-wrap:wrap;gap:8px}.message{border-radius:6px;margin:10px 0;padding:10px 12px}.message.ok{background:#e9f8ef;color:#167647}.message.error{background:#fff1f2;color:#be123c}.muted{color:#607089;margin-bottom:0}.dashboard-grid{display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr))}.analytics-workspace{min-width:0}.analytics-toolbar{align-items:end;display:flex;flex-wrap:wrap;gap:10px}.analytics-toolbar label{color:#607089;display:grid;font-size:12px;gap:5px}.analytics-metrics{display:grid;gap:12px;grid-template-columns:repeat(6,minmax(0,1fr))}.analytics-metrics .metric{min-height:122px;padding:14px}.analytics-metrics .metric strong{font-size:25px}.analytics-metrics small{color:#607089}.analytics-tabs{display:flex;max-width:100%;overflow-x:auto}.empty-cell{color:#607089;padding:28px!important;text-align:center}.live-monitor{display:grid;gap:12px;min-width:0}.live-monitor-stage{aspect-ratio:16 / 9;background:#080b10;border:1px solid #293445;border-radius:8px;max-height:62vh;overflow:hidden;position:relative;width:100%}.live-monitor-stage video{display:block;height:100%;object-fit:contain;width:100%}.live-monitor-overlay{align-items:center;background:#080b10c2;color:#fff;display:flex;flex-direction:column;gap:12px;top:0;right:0;bottom:0;left:0;justify-content:center;padding:24px;position:absolute;text-align:center}.live-monitor-overlay span{color:#cbd5e1;max-width:640px}.live-monitor-toolbar{background:#f7f9fc;border:1px solid #dfe5ef;border-radius:8px;display:grid;gap:10px;grid-template-columns:repeat(7,minmax(100px,1fr)) auto;padding:12px}.live-monitor-toolbar div{display:grid;gap:4px;min-width:0}.live-monitor-toolbar span{color:#607089;font-size:12px}.live-monitor-toolbar strong{overflow-wrap:anywhere}.sleep-raw-json{max-height:220px;min-width:420px}.baby-sleep-raw-toolbar{align-items:end;display:flex;margin:10px 0}.baby-sleep-raw-toolbar label{color:#607089;display:grid;font-size:12px;gap:4px}@media(max-width:1280px){.live-monitor-toolbar{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1280px){.analytics-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}.metric,.panel,.table-wrap,.result{background:#fff;border:1px solid #dfe5ef;border-radius:8px}.metric{display:grid;gap:10px;padding:18px}.metric span{color:#607089}.metric strong{font-size:30px}.workspace{display:grid;gap:14px}.workspace.narrow{max-width:860px}.toolbar{background:#fff;border:1px solid #dfe5ef;border-radius:8px;padding:12px}.toolbar input{max-width:220px}.toolbar select{max-width:150px}.toolbar .wide-select{max-width:280px}.toolbar-meta{align-items:center;color:#607089;display:inline-flex;font-size:12px;margin-left:auto}.subtabs{background:#fff;border:1px solid #dfe5ef;border-radius:8px;display:inline-flex;gap:4px;padding:4px;width:fit-content}.subtabs button{border-color:transparent;min-height:30px}.subtabs button.active{background:#2563eb;border-color:#2563eb;color:#fff;font-weight:600}.pager{align-items:center;background:#fff;border:1px solid #dfe5ef;border-radius:8px;color:#607089;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;padding:10px 12px}.pager-jump{align-items:center;display:inline-flex;gap:6px}.pager-jump span{color:#607089;font-size:12px;margin:0;white-space:nowrap}.pager-jump input{max-width:86px}.date-range{align-items:center;display:inline-flex;gap:6px}.date-range span{color:#607089;font-size:12px;margin:0;white-space:nowrap}.date-range input{max-width:146px}.split{align-items:start;display:grid;gap:14px;grid-template-columns:360px minmax(0,1fr)}.panel{padding:16px}.panel h2{font-size:16px;margin:0}.ota-task-create{align-items:end;display:grid;gap:10px;grid-template-columns:minmax(160px,220px) minmax(160px,220px) auto 1fr}.ota-task-create h2{align-self:center}.checkbox{align-items:center;color:#334155;display:flex;gap:8px}.checkbox input{min-height:auto;width:auto}.table-wrap{overflow:auto}.badge{background:#edf4ff;border:1px solid #cadcf8;border-radius:999px;color:#1d4ed8;display:inline-flex;font-size:12px;padding:3px 8px}.badge.success{background:#ecfdf3;border-color:#bbf7d0;color:#15803d}.badge.info{background:#e0f2fe;border-color:#bae6fd;color:#0369a1}.badge.warning{background:#fef9c3;border-color:#fde68a;color:#a16207}.badge.danger{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.badge.muted{background:#f1f5f9;border-color:#dbe3ee;color:#64748b}.user-cell{align-items:center;display:grid;gap:10px;grid-template-columns:34px minmax(120px,1fr);min-width:190px}.user-cell img,.avatar-fallback{border-radius:50%;height:34px;width:34px}.user-cell img{object-fit:cover}.table-avatar{border-radius:50%;display:block;height:34px;object-fit:cover;width:34px}.avatar-fallback{align-items:center;background:#e6edf8;color:#315f9f;display:inline-flex;font-weight:700;justify-content:center}.user-cell strong{display:block;font-size:14px;font-weight:600}.cell-ellipsis{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mono{color:#334155;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;max-width:280px;overflow-wrap:anywhere}.empty-cell{color:#607089;padding:28px 12px;text-align:center}.row-actions{min-width:250px}.row-actions.compact{min-width:180px}.actions-cell{min-width:180px;width:180px}.row-actions-unified{align-items:center;flex-wrap:nowrap;min-width:0;position:relative}.row-actions-unified button{white-space:nowrap}.row-action-primary{font-weight:600}.row-action-secondary{color:#1d4ed8}.row-action-more{position:relative}.row-action-trigger{min-width:54px}.row-action-menu{background:#fff;border:1px solid #cbd5e1;border-radius:8px;box-shadow:0 12px 30px #0f172a24;display:grid;gap:4px;min-width:112px;padding:6px;position:absolute;right:0;top:calc(100% + 6px);z-index:20}.row-action-menu button{background:transparent;border-color:transparent;justify-content:flex-start;text-align:left;width:100%}.row-action-menu button:hover{background:#eff6ff;border-color:#dbeafe}.row-action-divider{background:#e2e8f0;height:1px;margin:3px 0}.row-action-menu .action-danger{color:#b91c1c}.row-action-menu .action-danger:hover{background:#fff1f2;border-color:#fecdd3}.row-actions button,.row-actions a{min-height:30px;padding:0 9px}.result{color:#0f172a;overflow:auto;padding:16px}.progress-cell{display:grid;gap:5px;min-width:110px}.progress-track{background:#e5eaf3;border-radius:999px;height:7px;overflow:hidden}.progress-bar{background:#2563eb;height:100%}.modal-container.device-detail-modal{max-height:calc(100vh - 48px);max-width:calc(100vw - 48px);min-height:min(600px,70vh);width:min(2240px,calc(100vw - 248px))}.device-detail-modal .modal-body{max-height:calc(100vh - 120px);white-space:normal}.baby-detail-modal{width:min(760px,calc(100vw - 48px))}.device-detail-body{display:grid;gap:14px}.baby-detail-body{display:grid;gap:16px;white-space:normal}.device-detail-summary{display:grid;gap:10px;grid-template-columns:repeat(6,minmax(0,1fr))}.device-detail-summary>div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:grid;gap:6px;min-width:0;padding:12px}.device-detail-summary strong{color:#172033;font-size:14px;min-width:0;overflow-wrap:anywhere}.baby-detail-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.device-detail-tabs{width:100%}.device-detail-tabs button{flex:1 1 auto}.device-data-center{display:grid;gap:12px}.device-data-summary{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}.device-data-summary>div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:grid;gap:6px;min-width:0;padding:12px}.device-data-summary strong{min-width:0;overflow-wrap:anywhere}.device-data-tabs{width:100%}.device-data-tabs button{flex:1 1 0}.device-data-toolbar{align-items:end;display:flex;gap:10px}.device-data-toolbar label{display:grid;gap:4px}.device-data-toolbar label span{color:#607089;font-size:12px;font-weight:600}.device-data-table{max-height:clamp(260px,calc(100vh - 520px),56vh)}.device-data-table table{min-width:1320px}.device-data-pager{border-radius:8px}.device-record-panel{display:grid;gap:12px}.device-record-header{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;display:flex;flex-wrap:wrap;gap:10px;padding:10px 12px}.device-record-header span{color:#607089;font-size:12px;margin-right:auto}.device-data-center .notice.error{margin:0}.device-data-toolbar button,.device-record-header button{white-space:nowrap}.device-config-panel{background:#fff;border:1px solid #dfe5ef;border-radius:8px;display:grid;gap:16px;padding:14px}.config-status-banner{align-items:center;background:#f8fafc;border:1px solid #dfe5ef;border-left-width:4px;border-radius:8px;display:grid;gap:12px;grid-template-columns:minmax(0,1fr) auto;padding:14px 16px}.config-status-banner.success{background:#f0fdf4;border-color:#86efac;border-left-color:#16a34a}.config-status-banner.warning,.config-status-banner.pending{background:#fffbeb;border-color:#fde68a;border-left-color:#f59e0b}.config-status-banner.error{background:#fef2f2;border-color:#fecaca;border-left-color:#dc2626}.config-status-banner strong{color:#0f172a;display:block;font-size:18px;margin-top:2px}.config-status-banner p{color:#52637a;font-size:13px;margin:4px 0 0}.config-status-times{color:#52637a;display:grid;font-size:12px;gap:5px;min-width:210px}.config-summary-cards{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.config-summary-cards>div{background:#f8fafc;border:1px solid #dfe5ef;border-radius:8px;display:grid;gap:6px;padding:12px}.config-summary-cards span,.config-section-eyebrow{color:#607089;font-size:12px}.config-summary-cards strong{color:#0f172a;font-size:15px}.config-section{border:1px solid #dfe5ef;border-radius:8px;display:grid;gap:12px;padding:14px}.config-section-header{align-items:start;display:flex;gap:12px;justify-content:space-between}.config-section-header h4{color:#0f172a;font-size:15px;margin:2px 0 0}.config-section-header p{color:#607089;font-size:12px;margin:2px 0 0;max-width:360px;text-align:right}.stream-policy-grid{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}.stream-policy-card{background:#f8fafc;border:1px solid #d7e0ed;border-radius:8px;color:#0f172a;cursor:pointer;display:grid;gap:6px;min-height:92px;padding:12px;text-align:left}.stream-policy-card:hover,.stream-policy-card.active{background:#eef4ff;border-color:#2f6fed}.stream-policy-card.active{box-shadow:inset 0 0 0 1px #2f6fed}.stream-policy-card strong{font-size:14px}.stream-policy-card span{color:#607089;font-size:12px;line-height:1.5}.config-section-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.semantic-config-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.semantic-config-grid.compact{grid-template-columns:repeat(2,minmax(220px,320px))}.config-diagnostics{background:#f8fafc;border:1px solid #dfe5ef;border-radius:8px;padding:12px}.config-diagnostics summary{color:#0f172a;cursor:pointer;font-weight:700}.config-diagnostics[open]{display:grid;gap:12px}.config-meta{color:#607089;display:flex;flex-wrap:wrap;font-size:12px;gap:12px}.text-success{color:#0f9f4d}.text-warning{color:#b7791f}.config-apply-error{background:#fff7ed;border:1px solid #fed7aa;border-radius:6px;color:#9a3412;font-size:12px;padding:10px 12px}.slot-status-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.slot-status-card{background:#f8fafc;border:1px solid #dfe5ef;border-radius:8px;display:grid;gap:8px;min-width:0;padding:12px}.slot-status-title{color:#0f172a;font-weight:700}.slot-status-row{align-items:center;color:#607089;display:grid;font-size:12px;gap:8px;grid-template-columns:72px minmax(0,1fr)}.slot-status-row strong{color:#0f172a;font-weight:600;min-width:0;overflow-wrap:anywhere}.slot-status-error{color:#b45309;font-size:12px;overflow-wrap:anywhere}.config-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.full-width{grid-column:1 / -1}@media(max-width:980px){.slot-status-grid,.config-status-banner,.config-summary-cards,.stream-policy-grid,.config-section-grid,.semantic-config-grid,.semantic-config-grid.compact{grid-template-columns:1fr}.config-section-header{display:grid}.config-section-header p{max-width:none;text-align:left}.app-shell{grid-template-columns:1fr}.sidebar{position:static}.sidebar nav{grid-template-columns:repeat(4,minmax(0,1fr))}.split,.dashboard-grid,.device-detail-summary,.ota-task-create,.config-grid{grid-template-columns:1fr}.topbar{align-items:flex-start;flex-direction:column;gap:12px}}.link-cell{color:#2563eb;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.link-cell:hover{color:#1d4ed8}.modal-mask{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-container{background:#fff;border:1px solid #dfe5ef;border-radius:8px;box-shadow:0 24px 60px #202c4433;max-height:80vh;max-width:90vw;overflow:hidden;width:700px}.modal-container.wide{width:900px}.modal-container.baby-metadata-modal{max-height:calc(100vh - 48px);max-width:calc(100vw - 48px);min-height:min(600px,70vh);width:min(2260px,calc(100vw - 248px))}.modal-header{align-items:center;border-bottom:1px solid #e5eaf3;display:flex;font-weight:600;justify-content:space-between;padding:16px 20px}.close-modal{cursor:pointer;font-size:24px;line-height:1;opacity:.6}.close-modal:hover{opacity:1}.modal-body{overflow-y:auto;padding:20px;white-space:pre-wrap;word-break:break-word;max-height:calc(80vh - 120px)}.baby-metadata-modal .modal-body{max-height:calc(100vh - 120px);padding:20px 22px;white-space:normal}.baby-metadata-modal .device-detail-summary{grid-template-columns:repeat(6,minmax(110px,1fr))}.baby-metadata-modal .modal-table{max-height:none}.baby-metadata-modal .device-detail-tabs+.modal-table{max-height:clamp(180px,calc(100vh - 520px),52vh);min-height:180px}.baby-overview-grid{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.baby-overview-grid .metric{padding:14px}.baby-overview-grid .metric strong{font-size:22px;overflow-wrap:anywhere}.user-workbench-profile{background:#fff;border:1px solid #e5eaf3;border-radius:8px;padding:14px}.user-workbench-profile .button-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.user-detail-modal .mono{overflow-wrap:anywhere}.device-basic-detail-modal{width:min(820px,calc(100vw - 48px))}.device-basic-detail-modal .device-detail-summary{margin-bottom:18px}.device-basic-detail-modal .mono,.device-basic-detail-grid span{overflow-wrap:anywhere}.user-data-center-actions{margin-top:12px}.support-grid{display:grid;gap:14px}.detail-grid{display:grid;gap:16px;grid-template-columns:1fr 1fr}.detail-field{display:grid;gap:4px;min-width:0}.detail-field strong{min-width:0;overflow-wrap:anywhere}.detail-field.full-width{grid-column:1 / -1}.detail-label{color:#607089;font-size:12px;font-weight:600}.detail-pre{background:#f7f9fc;border:1px solid #e5eaf3;border-radius:6px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.5;max-height:300px;overflow:auto;padding:12px;white-space:pre-wrap;word-break:break-word}.modal-footer{align-items:center;border-top:1px solid #e5eaf3;display:flex;gap:10px;justify-content:flex-end;padding:14px 20px}.form-field{margin-bottom:16px}.form-field label{color:#607089;display:block;font-size:13px;font-weight:600;margin-bottom:6px}.form-field textarea{min-height:90px;width:100%}.form-field select{width:100%}.form-field .badge{vertical-align:middle}.form-field .detail-pre{margin-top:4px}.btn-primary{background:var(--color-primary, #4377d8);border-color:var(--color-primary, #4377d8);color:#fff;font-weight:500;min-height:36px;padding:0 18px}.btn-primary:hover{background:var(--color-primary-strong, #1b5fc4);border-color:var(--color-primary-strong, #1b5fc4);color:#fff}.btn-primary:disabled{opacity:.6}.btn-secondary{background:#fff;border-color:#cfd7e6;color:#607089;font-weight:500;min-height:36px;padding:0 18px}.btn-secondary:hover{border-color:#a0aec0;color:#172033}.text-muted{color:#a0aec0;font-size:12px}.relation-modal{display:grid;gap:16px;white-space:normal}.relation-summary{background:#f7f9fc;border:1px solid #e5eaf3;border-radius:8px;display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr));padding:14px}.modal-table{border:1px solid #e5eaf3;border-radius:8px;max-height:52vh}.modal-table th,.modal-table td{white-space:nowrap}.modal-table table{min-width:760px}@media(max-width:640px){.content{padding:12px}.sidebar nav{grid-template-columns:1fr 1fr}.toolbar input{max-width:none}.toolbar select{max-width:none;width:100%}.toolbar-meta{margin-left:0}.detail-grid,.relation-summary,.baby-detail-summary,.device-data-summary,.baby-metadata-modal .device-detail-summary,.baby-overview-grid{grid-template-columns:1fr}}.metric-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--elevation-1);display:flex;flex-direction:column;gap:10px;padding:16px 18px;min-height:116px;position:relative;transition:box-shadow .2s ease,border-color .2s ease}.metric-card:hover{border-color:#94a3b866;box-shadow:var(--elevation-2)}.metric-card__head{align-items:center;display:flex;gap:8px;justify-content:space-between}.metric-card__label{color:var(--color-muted);font-size:12.5px;font-weight:500;letter-spacing:.01em}.metric-card__icon{align-items:center;background:var(--metric-tone, var(--color-primary-soft));border-radius:8px;color:var(--metric-icon-color, var(--color-primary-strong));display:inline-flex;height:28px;justify-content:center;width:28px}.metric-card__icon svg{height:14px;width:14px}.metric-card__row{align-items:baseline;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;min-height:36px}.metric-card__value{align-items:baseline;color:var(--color-text);display:inline-flex;gap:4px;min-width:0}.metric-card__value strong{font-size:26px;font-weight:700;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}.metric-card__unit{color:var(--color-muted);font-size:13px;font-weight:500}.metric-card__foot{align-items:center;color:var(--color-muted);display:flex;font-size:12px;gap:8px}.metric-card__hint{color:var(--color-muted);font-size:11.5px}.metric-card__skeleton{background:linear-gradient(90deg,#f1f5f9,#f8fafc,#f1f5f9);background-size:200% 100%;border-radius:6px;display:inline-block;height:26px;width:55%;animation:metric-skeleton 1.4s ease-in-out infinite}@keyframes metric-skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}.metric-card--tone-primary{--metric-tone: var(--color-primary-soft);--metric-icon-color: var(--color-primary-strong)}.metric-card--tone-success{--metric-tone: var(--color-success-soft);--metric-icon-color: var(--color-success)}.metric-card--tone-warning{--metric-tone: var(--color-warning-soft);--metric-icon-color: var(--color-warning)}.metric-card--tone-danger{--metric-tone: var(--color-danger-soft);--metric-icon-color: var(--color-danger)}.metric-card--tone-accent{--metric-tone: var(--color-accent-soft);--metric-icon-color: var(--color-accent)}.metric-card--tone-purple{--metric-tone: var(--color-purple-soft);--metric-icon-color: var(--color-purple)}.metric-delta{align-items:center;border-radius:var(--radius-pill);display:inline-flex;font-size:11.5px;font-weight:600;gap:3px;letter-spacing:.01em;line-height:1;padding:3px 8px;white-space:nowrap;flex-shrink:0}.metric-delta--positive{background:var(--color-success-soft);color:var(--color-success)}.metric-delta--negative{background:var(--color-danger-soft);color:var(--color-danger)}.metric-delta--flat{background:#64748b1a;color:var(--color-muted)}.metric-delta__arrow{font-size:12px;font-weight:700;line-height:1}.chart-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--elevation-1);display:flex;flex-direction:column;min-width:0;overflow:hidden;transition:box-shadow .2s ease,border-color .2s ease}.chart-card:hover{border-color:#94a3b859}.chart-card__head{align-items:center;display:flex;gap:10px;justify-content:space-between;padding:16px 20px 4px}.chart-card__title{color:var(--color-text);font-size:14px;font-weight:600;letter-spacing:-.005em;margin:0}.chart-card__actions{align-items:center;color:var(--color-muted);display:flex;font-size:12px;gap:8px}.chart-card__body{padding:4px 8px 12px;position:relative}.chart-card__canvas{height:100%;width:100%}.chart-card__empty{align-items:center;color:var(--color-muted);display:flex;font-size:13px;top:0;right:0;bottom:0;left:0;justify-content:center;position:absolute;pointer-events:none}.date-range-quick{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.date-range-quick.is-disabled{opacity:.6;pointer-events:none}.date-range-quick__presets{align-items:center;background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-pill);display:inline-flex;flex-wrap:wrap;gap:2px;height:34px;padding:3px}.date-range-quick__presets button{background:transparent;border:1px solid transparent;border-radius:var(--radius-pill);color:var(--color-muted);font-size:12px;font-weight:500;height:26px;min-height:0;padding:0 12px;transition:background .15s ease,color .15s ease}.date-range-quick__presets button:hover:not(:disabled){color:var(--color-text)}.date-range-quick__presets button.active{background:var(--color-surface);border-color:transparent;box-shadow:0 1px 3px #0f172a1a,0 1px 2px #0f172a0f;color:var(--color-primary-strong)}.date-range-quick__inputs{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);display:inline-flex;gap:6px;height:34px;padding:0 8px}.date-range-quick__inputs input[type=date],.date-range-quick__inputs input[type=datetime-local]{background:transparent;border:none;color:var(--color-text);font-size:12.5px;height:30px;min-height:0;min-width:118px;padding:0;width:auto}.date-range-quick__inputs input[type=datetime-local]{min-width:170px}.date-range-quick__inputs input:focus{box-shadow:none;border-color:transparent}.date-range-quick__sep{color:var(--color-muted);font-size:13px;-webkit-user-select:none;user-select:none}.date-range-quick.is-compact .date-range-quick__presets{height:30px}.date-range-quick.is-compact .date-range-quick__presets button{height:22px;padding:0 10px;font-size:11.5px}.date-range-quick.is-compact .date-range-quick__inputs{height:30px}.dashboard-workspace{display:grid;gap:18px;min-width:0}.dashboard-hero{align-items:center;background:radial-gradient(600px 200px at 100% 0%,rgba(139,92,246,.14),transparent 60%),radial-gradient(500px 200px at 0% 100%,rgba(14,165,233,.1),transparent 60%),linear-gradient(135deg,#312e81,#4338ca 55%,#5b21b6);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);box-shadow:0 8px 20px #4338ca24;color:#fff;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;padding:20px 24px;position:relative;overflow:hidden}.dashboard-hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(255,255,255,.1) 1px,transparent 1px);background-size:20px 20px;opacity:.3;pointer-events:none}.dashboard-hero>*{position:relative;z-index:1}.dashboard-hero__title{font-size:17px;font-weight:600;letter-spacing:-.005em;margin:0 0 4px}.dashboard-hero__subtitle{color:#ffffffb8;font-size:12.5px}.dashboard-hero__actions{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.dashboard-hero__toggle{align-items:center;color:#ffffffeb;cursor:pointer;display:inline-flex;font-size:12.5px;gap:8px;-webkit-user-select:none;user-select:none;white-space:nowrap}.dashboard-hero__toggle input[type=checkbox]{accent-color:#a5b4fc;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#ffffff24;border:1px solid rgba(255,255,255,.32);border-radius:4px;cursor:pointer;height:16px;margin:0;min-height:0;min-width:0;padding:0;position:relative;transition:background .15s ease,border-color .15s ease;width:16px}.dashboard-hero__toggle input[type=checkbox]:checked{background:#6366f1;border-color:#6366f1}.dashboard-hero__toggle input[type=checkbox]:checked:after{content:"";position:absolute;left:4px;top:1px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}.dashboard-hero button{align-items:center;background:#ffffff1f;border-color:#ffffff47;border-radius:var(--radius-sm);color:#fff;display:inline-flex;font-weight:500;gap:6px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dashboard-hero button:hover{background:#fff3;border-color:#ffffff73;color:#fff}.dashboard-metrics{display:grid;gap:14px;grid-template-columns:repeat(6,minmax(0,1fr))}.todo-counts{display:grid;gap:14px;grid-template-columns:repeat(4,minmax(0,1fr))}.todo-count-card{align-items:stretch;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--elevation-1);color:var(--color-text);cursor:pointer;display:flex;flex-direction:column;gap:10px;min-height:108px;padding:14px 16px;text-align:left;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.todo-count-card:hover{border-color:var(--todo-line, var(--color-primary-line));box-shadow:var(--elevation-2);transform:translateY(-1px)}.todo-count-card__head{align-items:center;display:flex;gap:8px;justify-content:space-between}.todo-count-card__label{color:var(--color-muted);font-size:12.5px;font-weight:500;letter-spacing:.01em}.todo-count-card__icon{align-items:center;background:var(--todo-tone, var(--color-primary-soft));border-radius:8px;color:var(--todo-icon, var(--color-primary-strong));display:inline-flex;height:26px;justify-content:center;width:26px}.todo-count-card__icon svg{height:14px;width:14px}.todo-count-card__row{align-items:baseline;display:flex;gap:12px;justify-content:space-between}.todo-count-card__value{color:var(--color-text);font-size:28px;font-weight:700;letter-spacing:-.02em;line-height:1.05;font-variant-numeric:tabular-nums}.todo-count-card__cta{align-items:center;color:var(--todo-icon, var(--color-primary-strong));display:inline-flex;font-size:12px;font-weight:600;gap:4px;opacity:.9;transition:opacity .15s ease;white-space:nowrap}.todo-count-card__arrow{transition:transform .18s ease}.todo-count-card:hover .todo-count-card__cta{opacity:1}.todo-count-card:hover .todo-count-card__arrow{transform:translate(3px)}.todo-count-card--danger{--todo-tone: var(--color-danger-soft);--todo-icon: var(--color-danger);--todo-line: rgba(239, 68, 68, .36)}.todo-count-card--warning{--todo-tone: var(--color-warning-soft);--todo-icon: var(--color-warning);--todo-line: rgba(245, 158, 11, .36)}.todo-count-card--info{--todo-tone: var(--color-primary-soft);--todo-icon: var(--color-primary-strong);--todo-line: var(--color-primary-line)}.todo-count-card--muted{--todo-tone: rgba(100, 116, 139, .1);--todo-icon: var(--color-muted-strong);--todo-line: rgba(100, 116, 139, .32)}.todo-count-card.is-zero{--todo-tone: rgba(100, 116, 139, .08);--todo-icon: var(--color-muted);--todo-line: rgba(148, 163, 184, .35)}.todo-count-card.is-zero .todo-count-card__value{color:var(--color-muted-strong)}.todo-count-card.is-zero .todo-count-card__cta{color:var(--color-muted)}.dashboard-split{display:grid;gap:16px;grid-template-columns:minmax(0,5fr) minmax(0,4fr)}.dashboard-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--elevation-1);display:flex;flex-direction:column;min-height:220px;min-width:0;overflow:hidden;transition:box-shadow .2s ease}.dashboard-panel:hover{box-shadow:var(--elevation-2)}.dashboard-panel__head{align-items:center;display:flex;gap:8px;justify-content:space-between;padding:14px 18px 8px}.dashboard-panel__title{align-items:center;color:var(--color-text);display:inline-flex;font-size:14px;font-weight:600;gap:8px;letter-spacing:-.005em;margin:0}.dashboard-panel__title-badge{align-items:center;background:var(--color-danger-soft);border-radius:var(--radius-pill);color:var(--color-danger);display:inline-flex;font-size:11px;font-weight:600;height:20px;padding:0 8px}.dashboard-panel__body{flex:1;min-width:0;padding:4px 6px 6px}.dashboard-panel__foot{padding:4px 12px 12px;text-align:right}.dashboard-panel__foot button{background:transparent;border:none;color:var(--color-primary-strong);font-size:12.5px;font-weight:500;min-height:26px;padding:0 4px}.dashboard-panel__foot button:hover{color:var(--color-primary);text-decoration:underline}.dashboard-todo{display:grid;gap:14px;grid-template-rows:repeat(3,minmax(0,1fr))}.dashboard-todo .dashboard-panel__body{padding:0 6px}.dashboard-todo ul{list-style:none;margin:0;padding:0}.dashboard-todo li{align-items:center;border-radius:var(--radius-sm);cursor:pointer;display:grid;gap:10px;grid-template-columns:auto 1fr auto;margin:2px 6px;padding:8px 10px;transition:background .15s ease}.dashboard-todo li:hover{background:var(--color-surface-hover)}.dashboard-todo li .todo-pill{border-radius:var(--radius-pill);font-size:11px;font-weight:600;padding:3px 9px}.dashboard-todo li .todo-pill.danger{background:var(--color-danger-soft);color:var(--color-danger)}.dashboard-todo li .todo-pill.warning{background:var(--color-warning-soft);color:var(--color-warning)}.dashboard-todo li .todo-pill.muted{background:#64748b1f;color:var(--color-muted)}.dashboard-todo li .todo-text{color:var(--color-text);font-size:13px;font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-todo li .todo-meta{color:var(--color-muted);font-size:12px;white-space:nowrap}.dashboard-todo .empty{align-items:center;color:var(--color-muted);display:flex;flex-direction:column;font-size:13px;gap:8px;padding:32px 14px;text-align:center}.dashboard-todo .empty svg{color:var(--color-success);opacity:.6}.activity-panel{min-height:340px}.activity-panel .dashboard-panel__head{flex-wrap:wrap;align-items:baseline}.dashboard-panel__subtitle{color:var(--color-muted);font-size:12px}.activity-body{padding:4px 6px 8px}.activity-list{list-style:none;margin:0;padding:0}.activity-item{align-items:flex-start;border-radius:var(--radius-sm);cursor:pointer;display:grid;gap:10px;grid-template-columns:auto 1fr auto;margin:2px 6px;padding:8px 10px;transition:background .15s ease}.activity-item:hover{background:var(--color-surface-hover)}.activity-item__dot{align-items:center;background:var(--activity-tone, rgba(100, 116, 139, .12));border-radius:999px;color:var(--activity-icon, var(--color-muted));display:inline-flex;height:24px;justify-content:center;margin-top:2px;width:24px}.activity-item__body{min-width:0;display:grid;gap:2px}.activity-item__title{color:var(--color-text);font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-item__meta{color:var(--color-muted);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-item__time{color:var(--color-muted);font-size:11.5px;margin-top:2px;white-space:nowrap}.activity-item--danger{--activity-tone: var(--color-danger-soft);--activity-icon: var(--color-danger)}.activity-item--warning{--activity-tone: var(--color-warning-soft);--activity-icon: var(--color-warning)}.activity-item--info{--activity-tone: var(--color-primary-soft);--activity-icon: var(--color-primary-strong)}.activity-item--muted{--activity-tone: rgba(100, 116, 139, .12);--activity-icon: var(--color-muted)}.dashboard-trends{display:grid;gap:14px;grid-template-rows:repeat(3,minmax(0,1fr))}.dashboard-trends .chart-card{min-height:220px}.dashboard-tiles{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-tile{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--elevation-1);color:var(--color-text);cursor:pointer;display:grid;gap:12px;grid-template-columns:auto 1fr;padding:14px 16px;text-align:left;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.dashboard-tile:hover{border-color:var(--color-primary-line);box-shadow:var(--elevation-2);transform:translateY(-2px)}.dashboard-tile__icon{align-items:center;background:var(--tile-tone, var(--color-primary-soft));border-radius:10px;color:var(--tile-icon, var(--color-primary-strong));display:inline-flex;height:40px;justify-content:center;width:40px;flex-shrink:0}.dashboard-tile__icon svg{height:20px;width:20px}.dashboard-tile__label{color:var(--color-text);font-size:13.5px;font-weight:600;letter-spacing:-.005em}.dashboard-tile__desc{color:var(--color-muted);font-size:11.5px;margin-top:2px}.dashboard-tile--primary{--tile-tone: var(--color-primary-soft);--tile-icon: var(--color-primary-strong)}.dashboard-tile--accent{--tile-tone: var(--color-accent-soft);--tile-icon: var(--color-accent)}.dashboard-tile--success{--tile-tone: var(--color-success-soft);--tile-icon: var(--color-success)}.dashboard-tile--warning{--tile-tone: var(--color-warning-soft);--tile-icon: var(--color-warning)}.dashboard-tile--danger{--tile-tone: var(--color-danger-soft);--tile-icon: var(--color-danger)}.dashboard-tile--purple{--tile-tone: var(--color-purple-soft);--tile-icon: var(--color-purple)}.dashboard-tile--teal{--tile-tone: var(--color-teal-soft);--tile-icon: var(--color-teal)}.dashboard-healthbar{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--elevation-1);color:var(--color-muted);display:flex;flex-wrap:wrap;font-size:12px;gap:16px;justify-content:space-between;padding:12px 18px}.dashboard-healthbar__status{align-items:center;color:var(--color-text-soft);display:inline-flex;font-weight:500;gap:8px}.dashboard-healthbar__dot{border-radius:var(--radius-pill);display:inline-block;height:8px;width:8px}.dashboard-healthbar__dot.ok{background:var(--color-success);box-shadow:0 0 0 4px var(--color-success-soft);animation:dot-pulse 2.4s ease-in-out infinite}.dashboard-healthbar__dot.warn{background:var(--color-warning);box-shadow:0 0 0 4px var(--color-warning-soft)}.dashboard-healthbar__dot.error{background:var(--color-danger);box-shadow:0 0 0 4px var(--color-danger-soft)}@keyframes dot-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(.85);opacity:.8}}.analytics-workspace.analytics-workspace-v2{display:grid;gap:16px;min-width:0}.analytics-toolbar-v2{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--elevation-1);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:12px 16px}.analytics-toolbar-v2 .tools-left,.analytics-toolbar-v2 .tools-right{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.analytics-toolbar-v2 select{border-radius:var(--radius-sm);font-size:12.5px;height:34px;min-height:0;padding:0 10px;width:auto}.analytics-toolbar-v2 .tools-right button{align-items:center;border-radius:var(--radius-sm);display:inline-flex;font-size:12.5px;font-weight:500;gap:6px;height:34px;min-height:0;padding:0 14px}.analytics-toolbar-v2 .tools-right .btn-refresh{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.analytics-toolbar-v2 .tools-right .btn-refresh:hover{background:var(--color-primary-strong);border-color:var(--color-primary-strong);color:#fff}.analytics-metrics-v2{display:grid;gap:14px;grid-template-columns:repeat(6,minmax(0,1fr))}.analytics-tabs-v2{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--elevation-1);display:flex;flex-wrap:wrap;gap:4px;overflow-x:auto;padding:6px}.analytics-tabs-v2 button{background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-muted);font-weight:500;min-height:34px;padding:0 16px;transition:background .15s ease,color .15s ease}.analytics-tabs-v2 button:hover{color:var(--color-text)}.analytics-tabs-v2 button.active{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-strong));border-color:transparent;box-shadow:0 4px 10px #6366f147;color:#fff}.analytics-tabs-v2 button.active:hover{color:#fff}.analytics-charts{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-charts .chart-card{min-height:320px}.analytics-charts .chart-card--full{grid-column:1 / -1}.analytics-filters{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--elevation-1);display:flex;flex-wrap:wrap;gap:10px;padding:14px 16px}.analytics-filters input,.analytics-filters select{border-radius:var(--radius-sm);min-height:34px;width:auto;min-width:160px}.analytics-table-collapse{align-items:center;color:var(--color-muted);cursor:pointer;display:inline-flex;font-size:12.5px;gap:4px;padding:2px 8px;-webkit-user-select:none;user-select:none}.analytics-table-collapse:hover{color:var(--color-text)}.status-pill{align-items:center;display:inline-flex;font-size:11.5px;font-weight:600;gap:4px;letter-spacing:.01em;padding:3px 9px;border-radius:var(--radius-pill)}.status-pill.info{background:var(--color-primary-soft);color:var(--color-primary-strong)}.status-pill.success{background:var(--color-success-soft);color:var(--color-success)}.status-pill.warning{background:var(--color-warning-soft);color:var(--color-warning)}.status-pill.danger{background:var(--color-danger-soft);color:var(--color-danger)}.detail-drawer{background:#0f172a73;top:0;right:0;bottom:0;left:0;position:fixed;z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.detail-drawer__panel{background:var(--color-surface);border-left:1px solid var(--color-border);bottom:0;box-shadow:-18px 0 40px #0f172a24;display:flex;flex-direction:column;max-width:500px;position:absolute;right:0;top:0;width:100%;animation:drawer-slide-in .24s cubic-bezier(.2,.8,.2,1)}@keyframes drawer-slide-in{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}.detail-drawer__head{align-items:center;border-bottom:1px solid var(--color-border);display:flex;gap:10px;justify-content:space-between;padding:14px 18px}.detail-drawer__body{display:grid;flex:1;gap:14px;overflow-y:auto;padding:16px 18px}.detail-drawer__foot{border-top:1px solid var(--color-border);display:flex;gap:8px;justify-content:flex-end;padding:12px 18px}.detail-drawer__row{display:grid;gap:4px}.detail-drawer__row span{color:var(--color-muted);font-size:12px}.detail-drawer__row strong{color:var(--color-text);font-size:14px;overflow-wrap:anywhere}@media(max-width:1280px){.dashboard-metrics,.analytics-metrics-v2{grid-template-columns:repeat(3,minmax(0,1fr))}.todo-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-split{grid-template-columns:1fr}.dashboard-todo,.dashboard-trends{grid-template-rows:none}.dashboard-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}.analytics-charts{grid-template-columns:1fr}}@media(max-width:900px){.dashboard-metrics,.analytics-metrics-v2,.todo-counts,.dashboard-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.dashboard-metrics,.analytics-metrics-v2,.todo-counts,.dashboard-tiles{grid-template-columns:1fr}.analytics-toolbar-v2{flex-direction:column;align-items:stretch}.date-range-quick__inputs input[type=date]{min-width:0;width:100%}}
