.page-tabs[data-v-6152e376]{display:flex;min-height:56px;padding:0 24px;background:#fff;border-bottom:1px solid #e5eaf0;box-shadow:0 3px 10px #1f344f0f;overflow:hidden;-webkit-user-select:none;user-select:none}.page-tabs.page-tabs-inline[data-v-6152e376]{min-height:0;flex:1 1 auto;width:auto;min-width:0;padding:0;border:0;box-shadow:none;background:transparent}.page-tabs-inline .page-tabs-list[data-v-6152e376]{width:auto;flex:1 1 auto}.page-tabs-list[data-v-6152e376]{display:flex;align-items:center;gap:12px;width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;white-space:nowrap;scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}.page-tabs-list[data-v-6152e376]::-webkit-scrollbar{height:5px}.page-tabs-list[data-v-6152e376]::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:8px}.page-tab[data-v-6152e376]{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;height:32px;padding:0 12px;color:#7d8998;font-size:13px;font-weight:500;line-height:1;cursor:pointer;background:#edf4fc;border:1px solid #b8d1ef;border-radius:6px;box-shadow:0 1px 3px #1f344f14;transition:background .18s,color .18s,border-color .18s,box-shadow .18s}.page-tab[data-v-6152e376]:hover{color:#4f647a;background:#e5effb;border-color:#8eb9e8}.page-tab.active[data-v-6152e376]{color:#fff;font-weight:600;background:#2f75c5;border-color:#2f75c5;box-shadow:0 3px 6px #1965b84d}.page-tab-title[data-v-6152e376]{white-space:nowrap}.page-tab-close[data-v-6152e376]{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;color:currentColor;font-size:15px;font-weight:300;line-height:1;border-radius:50%;opacity:.8}.page-tab-close[data-v-6152e376]:hover{background:#ffffff3d;opacity:1}.page-tab:not(.active) .page-tab-close[data-v-6152e376]:hover{background:#d5e5f7}@media(max-width:768px){.page-tabs[data-v-6152e376]{min-height:52px;padding:0 14px}.page-tabs-list[data-v-6152e376]{gap:8px}.page-tab[data-v-6152e376]{height:34px;padding:0 10px;font-size:13px;border-radius:6px}}.login-full-layout{min-height:100vh;width:100%}.app-layout{display:flex;align-items:stretch;min-height:100vh;width:100%;min-width:0;background-color:var(--bg-page);overflow-x:hidden}#app{width:100%;min-width:0;overflow-x:hidden}.app-sidebar{width:230px;display:flex;flex-direction:column;flex-shrink:0;transition:width .25s cubic-bezier(.4,0,.2,1),transform .25s cubic-bezier(.4,0,.2,1),background-color .25s,border-color .25s;position:fixed;top:0;left:0;bottom:0;height:100vh;height:100dvh;min-height:100vh;min-height:100dvh;overflow:hidden;z-index:99}.app-sidebar.collapsed{width:64px}.app-sidebar.collapsed .sidebar-brand{padding:0;justify-content:center}.sidebar-brand{height:60px;display:flex;align-items:center;gap:12px;padding:0 18px;cursor:pointer;white-space:nowrap;overflow:hidden;transition:all .2s ease}.brand-icon{font-size:22px;min-width:28px;text-align:center}.brand-logo-img{width:28px;height:28px;min-width:28px;object-fit:contain;display:block;border-radius:6px;transition:transform .2s cubic-bezier(.4,0,.2,1)}.sidebar-brand:hover .brand-logo-img{transform:scale(1.08)}.brand-title{font-size:15px;font-weight:700;letter-spacing:.3px}.sidebar-nav{flex:1;min-height:0;padding:16px 10px;display:flex;flex-direction:column;gap:6px;overflow-y:auto}.nav-link{display:flex;align-items:center;gap:12px;height:42px;padding:0 14px;border-radius:8px;text-decoration:none;font-size:14px;font-weight:500;position:relative;border-left:3.5px solid transparent;transition:background-color .12s ease,color .12s ease,border-color .12s ease;white-space:nowrap;overflow:hidden;-webkit-user-select:none;user-select:none;transform:translateZ(0)}.nav-icon{font-size:18px;min-width:22px;text-align:center}.nav-text{flex:1}.nav-badge{margin-left:auto;background-color:#eff6ff;color:#2563eb;font-size:11px;font-weight:700;padding:1px 7px;border-radius:10px;border:1px solid #bfdbfe;line-height:1.4;display:inline-flex;align-items:center;justify-content:center;min-width:18px;box-sizing:border-box}.nav-link.active .nav-badge{background-color:#2563eb;color:#fff;border-color:#2563eb}.nav-dot-badge{position:absolute;top:8px;right:12px;width:7px;height:7px;border-radius:50%;background-color:#2563eb;box-shadow:0 0 0 2px #fff}.sidebar-navy .nav-badge{background-color:#3b82f633;color:#93c5fd;border-color:#3b82f666}.sidebar-navy .nav-link.active .nav-badge{background-color:#38bdf8;color:#0b1320;border-color:#38bdf8}.sidebar-navy .nav-dot-badge{background-color:#38bdf8;box-shadow:0 0 0 2px #111c2d}.nav-group{display:flex;flex-direction:column}.nav-group-header{justify-content:space-between;cursor:pointer}.arrow-icon{font-size:13px;color:#94a3b8;transition:transform .2s cubic-bezier(.4,0,.2,1);margin-left:auto;-webkit-user-select:none;user-select:none;display:inline-block;line-height:1}.arrow-icon.rotated{transform:rotate(180deg)}.sub-nav-list{display:flex;flex-direction:column;gap:3px;padding:4px 0 6px 14px;margin-left:12px;margin-right:4px;border-left:1.5px dashed #cbd5e1;animation:navFadeIn .18s ease-out}@keyframes navFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.sub-nav-link{display:flex;align-items:center;gap:10px;height:36px;padding:0 10px;border-radius:6px;text-decoration:none;font-size:13px;font-weight:500;color:#64748b;border-left:3px solid transparent;transition:background-color .12s ease,color .12s ease,border-color .12s ease;white-space:nowrap;overflow:hidden;-webkit-user-select:none;user-select:none}.sub-nav-dot{width:6px;height:6px;border-radius:50%;background-color:#94a3b8;transition:background-color .15s ease,transform .15s ease;flex-shrink:0}.sub-nav-text{flex:1}.sub-nav-link:hover{color:#0f172a;background-color:#f1f5f9}.sub-nav-link:hover .sub-nav-dot{background-color:#3b82f6;transform:scale(1.2)}.sub-nav-link.active{color:#1d4ed8;background-color:#eff6ff;font-weight:600;border-left-color:#2563eb}.sub-nav-link.active .sub-nav-dot{background-color:#2563eb;transform:scale(1.3);box-shadow:0 0 0 2px #2563eb33}.sidebar-toggle{flex:0 0 48px;margin-top:auto;height:48px;display:flex;align-items:center;gap:12px;padding:0 20px;cursor:pointer;font-size:13px;transition:background-color .15s,color .15s;white-space:nowrap;overflow:hidden}.toggle-icon{font-size:14px;min-width:22px;text-align:center}.sidebar-light{background-color:#f8fafc;border-right:1px solid #e2e8f0}.sidebar-light .sidebar-brand{background-color:#fff;border-bottom:1px solid #f1f5f9}.sidebar-light .brand-title{color:#0f172a}.sidebar-light .nav-link{color:#475569}.sidebar-light .nav-link:hover{background-color:#fff;color:#0f172a}.sidebar-light .nav-link.active{background-color:#fff;color:#1d4ed8;font-weight:600;border-left-color:#2563eb;box-shadow:0 1px 3px #0000000d}.sidebar-light .sidebar-toggle{background-color:#f8fafc;color:#64748b;border-top:1px solid #e2e8f0}.sidebar-light .sidebar-toggle:hover{background-color:#f1f5f9;color:#0f172a}.sidebar-navy{background-color:#111c2d;border-right:1px solid #1e2d45}.sidebar-navy .sidebar-brand{background-color:#0b1320;border-bottom:1px solid #1e2d45}.sidebar-navy .brand-title{color:#f8fafc}.sidebar-navy .nav-link{color:#94a3b8}.sidebar-navy .nav-link:hover{background-color:#ffffff0f;color:#fff}.sidebar-navy .nav-link.active{background-color:#1e3a66;color:#fff;font-weight:600;border-left-color:#38bdf8}.sidebar-navy .sidebar-toggle{background-color:#0b1320;color:#64748b;border-top:1px solid #1e2d45}.sidebar-navy .sidebar-toggle:hover{background-color:#16243a;color:#38bdf8}.sidebar-white{background-color:#fff;border-right:1px solid #e2e8f0}.sidebar-white .sidebar-brand{background-color:#fff;border-bottom:1px solid #f1f5f9}.sidebar-white .brand-title{color:#0f172a}.sidebar-white .nav-link{color:#475569}.sidebar-white .nav-link:hover{background-color:#f1f5f9;color:#0f172a}.sidebar-white .nav-link.active{background-color:#eff6ff;color:#2563eb;font-weight:600;border-left-color:#2563eb}.sidebar-white .sidebar-toggle{background-color:#fff;color:#64748b;border-top:1px solid #f1f5f9}.sidebar-white .sidebar-toggle:hover{background-color:#f8fafc;color:#0f172a}.app-main-area{flex:1;margin-left:230px;width:calc(100% - 230px);display:flex;flex-direction:column;min-width:0;overflow-x:hidden;transition:margin-left .25s cubic-bezier(.4,0,.2,1),width .25s cubic-bezier(.4,0,.2,1)}.app-sidebar.collapsed+.app-main-area{margin-left:64px;width:calc(100% - 64px)}.app-topbar{height:60px;background-color:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:90;box-shadow:var(--shadow-sm)}.topbar-left{display:flex;align-items:center;gap:14px;flex:1 1 auto;min-width:0}.menu-btn{background:none;border:1px solid var(--border);border-radius:6px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#475569;font-size:16px;flex:0 0 34px;transition:background .2s,color .2s}.menu-btn:hover{background-color:#f1f5f9;color:var(--primary)}.current-title{font-size:16px;font-weight:600;color:#1e293b;margin:0}.topbar-right{display:flex;align-items:center;gap:16px;flex:0 0 auto}.user-profile{display:flex;align-items:center;gap:8px}.username{font-size:13px;font-weight:600;color:#334155}.btn-sm{height:32px;padding:0 12px;font-size:13px}.page-content{flex:1;padding:24px}.content-wrapper{max-width:1440px;margin:0 auto}@media(max-width:768px){.app-sidebar{width:230px;transform:translate(-100%);box-shadow:8px 0 24px #0f172a29}.app-sidebar:not(.collapsed){transform:translate(0)}.app-sidebar.collapsed{width:0}.app-main-area,.app-sidebar.collapsed+.app-main-area{width:100%;margin-left:0}.app-topbar{height:56px;padding:0 12px}.topbar-right{gap:6px}.user-profile .username,.user-profile .badge,.btn-change-pwd{display:none}.topbar-right>.btn:last-child{height:30px;padding:0 8px;font-size:12px}.page-content{padding:12px}.content-wrapper{width:100%;max-width:none}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0f172a8c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:16px}.modal-dialog{background-color:#fff;border-radius:12px;width:100%;box-shadow:0 20px 25px -5px #0003,0 10px 10px -5px #00000014;overflow:hidden;animation:modalFadeIn .2s cubic-bezier(.16,1,.3,1)}.pwd-modal-dialog{max-width:440px}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(-16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-bottom:1px solid #f1f5f9}.modal-title{font-size:16px;font-weight:600;color:#0f172a;margin:0}.modal-close{background:none;border:none;font-size:18px;color:#94a3b8;cursor:pointer;padding:4px;line-height:1;border-radius:4px;transition:all .15s}.modal-close:hover{color:#0f172a;background-color:#f1f5f9}.modal-body{padding:22px}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px}.form-label{display:block;font-size:13px;font-weight:600;color:#334155;margin-bottom:6px}.required:after{content:" *";color:#ef4444}.pwd-input-wrap{position:relative;display:flex;align-items:center}.verification-code-row{display:flex;align-items:center;gap:8px}.verification-code-row .input{flex:1;min-width:0}.verification-code-button{flex:0 0 112px;height:40px;padding:0 10px;white-space:nowrap}.verification-phone-hint{margin-left:8px;color:#64748b;font-size:12px;font-weight:400}.pwd-input{width:100%;padding-right:40px!important;box-sizing:border-box}.pwd-toggle-btn{position:absolute;right:10px;background:none;border:none;cursor:pointer;padding:4px;font-size:14px;opacity:.7;transition:opacity .15s}.pwd-toggle-btn:hover{opacity:1}.pwd-strength-hints{margin-top:8px;padding:8px 12px;background:#f8fafc;border:1px solid #f1f5f9;border-radius:6px;display:flex;flex-direction:column;gap:4px}.hint-item{display:flex;align-items:center;gap:6px;font-size:12px;color:#94a3b8;transition:color .15s}.hint-item .hint-icon{font-size:12px;width:14px;text-align:center;font-weight:700}.hint-item.ok{color:#16a34a;font-weight:500}.pwd-match-hint{margin-top:6px;font-size:12px}.pwd-match-hint.ok{color:#16a34a;font-weight:500}.pwd-match-hint.fail{color:#ef4444}.alert-success{display:flex;align-items:center;gap:8px;padding:10px 14px;background-color:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;color:#166534;font-size:13px;margin-bottom:16px}.alert-error{display:flex;align-items:center;gap:8px;padding:10px 14px;background-color:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;font-size:13px;margin-bottom:16px}.btn-change-pwd{display:inline-flex;align-items:center;gap:4px}.settings-page{display:flex;flex-direction:column;gap:16px;max-width:1000px;margin:0 auto}.notification-task-body{gap:12px}.notification-task-header-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.notification-task-title-row .notification-task-collection-summary{flex:1 1 auto;min-width:220px;margin-left:0;justify-content:flex-start}.notification-task-collection-summary{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.notification-task-auto-refresh{display:inline-flex;align-items:center;gap:6px;color:#475569;font-size:13px;cursor:pointer;-webkit-user-select:none;user-select:none}.notification-task-auto-refresh input{width:15px;height:15px;margin:0;accent-color:#2563eb;cursor:pointer}.task-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.task-filter-group{display:flex;gap:6px}.task-toolbar-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.task-filter.active{color:#1d4ed8;border-color:#93c5fd;background:#eff6ff;font-weight:600}.task-total,.task-empty{color:#64748b;font-size:13px}.task-page-size{display:inline-flex;align-items:center;gap:6px;color:#64748b;font-size:13px}.task-page-size-select{min-height:30px;padding:4px 28px 4px 8px;border:1px solid #cbd5e1;border-radius:6px;color:#334155;background:#fff}.task-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 8px 0;color:#64748b;font-size:13px}.task-pagination-buttons{display:flex;gap:8px}.task-table-wrap,.task-detail-table-wrap{overflow-x:auto}.task-table{width:100%;border-collapse:collapse;font-size:13px;white-space:nowrap}.task-table th{text-align:left;color:#64748b;font-weight:600;background:#f8fafc}.task-table th,.task-table td{padding:10px 8px;border-bottom:1px solid #e2e8f0}.mono{font-family:monospace}.task-status{display:inline-block;padding:3px 8px;border-radius:999px;font-size:11px;font-weight:600}.task-status.sent{color:#047857;background:#ecfdf5}.task-status.reset,.task-status.pending{color:#b45309;background:#fffbeb}.task-status.failed{color:#b91c1c;background:#fef2f2}.task-actions{display:flex;gap:8px;align-items:center}.task-summary{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:16px;color:#475569;font-size:13px}.notification-task-card{width:100%}.task-list-table{min-width:1100px;table-layout:fixed;font-size:13px}.task-list-table th,.task-list-table td{padding:10px 9px}.task-list-table .task-status{padding:3px 8px;font-size:12px}.task-list-table .btn.btn-sm{min-height:30px;padding:5px 9px;font-size:13px}.task-list-table .col-task-id{width:9%}.task-list-table .col-notice-id{width:11%}.task-list-table .col-count{width:8%}.task-list-table .col-time{width:23%}.task-list-table .col-status{width:12%}.task-list-table .col-actions{width:21%}.task-list-table th:nth-child(3),.task-list-table th:nth-child(4),.task-list-table th:nth-child(5),.task-list-table td:nth-child(3),.task-list-table td:nth-child(4),.task-list-table td:nth-child(5),.task-list-table th:nth-child(7),.task-list-table td:nth-child(7){text-align:center}.task-list-table .task-actions{justify-content:center}.task-list-table td:first-child{overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.task-list-table .task-note{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;color:#64748b;font:11px/1.35 ui-sans-serif,system-ui,sans-serif}.task-list-table .quiet-task-tag{color:#7c3aed;background:#f5f3ff}.modal-card.notification-task-detail-modal{width:min(1500px,calc(100vw - 80px));max-width:none;max-height:86vh;display:flex;flex-direction:column;position:relative;--notification-task-header-height: 52px}.notification-task-detail-modal>.modal-header{height:var(--notification-task-header-height);flex:0 0 var(--notification-task-header-height);box-sizing:border-box}.notification-task-detail-body{min-height:0;padding:0 20px 16px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.notification-task-detail-modal .task-summary{padding-top:12px;gap:8px;margin-bottom:14px}.notification-task-detail-modal .task-summary span{padding:5px 9px;color:#475569;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px}.notification-task-detail-modal .task-summary .summary-new{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.notification-task-detail-modal .task-summary .summary-update{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.notification-task-detail-modal .task-summary .summary-total{color:#7c3aed;background:#f5f3ff;border-color:#ddd6fe}.notification-task-detail-modal .task-summary .summary-notice{color:#475569;background:#f8fafc;border-color:#cbd5e1}.notification-task-detail-modal .task-summary .summary-sent{color:#047857;background:#dcfce7;border-color:#86efac}.notification-task-detail-modal .task-detail-table-wrap{max-height:none;overflow:visible;border:1px solid #e2e8f0;border-radius:8px}.notification-task-detail-modal .task-detail-table{width:100%;table-layout:fixed;white-space:normal}.notification-task-detail-modal .task-change-table{width:100%;min-width:100%}.notification-task-detail-modal .task-change-table .col-change-id,.notification-task-detail-modal .task-change-table .col-change-type{width:9%}.notification-task-detail-modal .task-change-table .col-record{width:20%}.notification-task-detail-modal .task-change-table .col-diff{width:35%}.notification-task-detail-modal .task-change-table .col-created-at{width:17%}.notification-task-detail-modal .task-change-table .col-push-status{width:10%}.notification-task-detail-modal .task-detail-table th,.notification-task-detail-modal .task-detail-table td{overflow:hidden;text-overflow:ellipsis}.notification-task-detail-modal .task-detail-table th:nth-child(5),.notification-task-detail-modal .task-detail-table td:nth-child(5){white-space:nowrap}.notification-task-detail-modal .task-detail-table td{vertical-align:top}.change-diff-list{display:flex;flex-direction:column;gap:3px;line-height:1.4}.change-diff-line{white-space:normal;overflow-wrap:anywhere}.change-diff-field{color:#475569;font-weight:600}.change-diff-old{color:#b45309}.change-diff-new{color:#047857;font-weight:600}.notification-task-detail-modal .task-table th,.notification-task-detail-modal .task-table td{padding:9px 10px}.notification-task-detail-modal .task-change-inline-header,.notification-task-detail-modal .task-change-fixed-header{display:grid;grid-template-columns:9% 9% 20% 35% 17% 10%;background:#f8fafc;border-bottom:1px solid #e2e8f0}.notification-task-detail-modal .task-change-inline-header>div,.notification-task-detail-modal .task-change-fixed-header>div{min-width:0;padding:9px 10px;box-sizing:border-box;color:#64748b;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification-task-detail-modal .task-change-fixed-header{position:absolute;top:var(--notification-task-header-height);right:20px;left:20px;z-index:5;box-shadow:0 1px 3px #0f172a1f}.notification-task-detail-modal>.modal-header,.notification-task-detail-modal>.modal-footer{flex:0 0 auto}.notification-task-detail-modal .legacy-notice-content{margin:10px 0;border:1px solid #dbe5f1;border-radius:10px;overflow:hidden;background:#fff}.notification-task-detail-modal .legacy-notice-content summary{cursor:pointer;padding:12px 16px;color:#334155;font-weight:600;background:#f8fafc;list-style:none}.notification-task-detail-modal .legacy-notice-content summary::-webkit-details-marker{display:none}.notification-task-detail-modal .legacy-notice-content summary:before{content:"▶";display:inline-block;margin-right:8px;color:#2563eb;font-size:11px;transition:transform .15s}.notification-task-detail-modal .legacy-notice-content[open] summary{border-bottom:1px solid #dbe5f1;background:#eff6ff}.notification-task-detail-modal .legacy-notice-content[open] summary:before{transform:rotate(90deg)}.notification-task-detail-modal .legacy-notice-content pre{margin:0;padding:14px 16px;white-space:pre-wrap;word-break:break-word;font:13px/1.7 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;color:#334155;background:#fff}.task-change-type,.task-push-status{display:inline-flex;align-items:center;padding:3px 8px;font-size:12px;font-weight:600;border:1px solid transparent;border-radius:999px;white-space:nowrap}.task-change-type.is-new{color:#047857;background:#ecfdf5;border-color:#a7f3d0}.task-change-type.is-update{color:#1d4ed8;background:#eff6ff;border-color:#bfdbfe}.task-push-status.is-sent{color:#047857;background:#dcfce7;border-color:#86efac}.task-push-status.is-pending{color:#b45309;background:#fffbeb;border-color:#fde68a}.header-card{padding:18px 24px;background:#fff;border-radius:12px;border:1px solid #e2e8f0;box-shadow:0 2px 6px #00000008}.header-content{display:flex;justify-content:space-between;align-items:center}.settings-title{margin:0 0 6px;font-size:18px;font-weight:700;color:#1e293b}.settings-subtitle{margin:0;font-size:13px;color:#64748b;line-height:1.4}.loading-card{padding:40px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;color:#64748b;font-size:14px}.settings-grid{display:flex;flex-direction:column;gap:16px}.param-card{background:#fff;border-radius:12px;border:1px solid #e2e8f0;box-shadow:0 2px 6px #00000008;overflow:hidden}.param-card-header{display:flex;align-items:flex-start;gap:16px;padding:20px 24px;border-bottom:1px solid #f1f5f9;background:#f8fafc}.param-icon-box{width:44px;height:44px;border-radius:10px;background:#eff6ff;border:1px solid #dbeafe;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}.param-meta{flex:1}.param-title-row{display:flex;align-items:center;gap:10px;margin-bottom:4px;flex-wrap:wrap}.param-name{margin:0;font-size:16px;font-weight:700;color:#0f172a}.param-key-tag{font-family:monospace;font-size:12px;color:#475569;background:#e2e8f0;padding:2px 8px;border-radius:4px}.param-status-tag{font-size:11px;color:#059669;background:#ecfdf5;border:1px solid #a7f3d0;padding:2px 8px;border-radius:999px;font-weight:600}.param-desc{margin:0;font-size:13px;color:#64748b;line-height:1.4}.notification-task-next-collection{display:inline-block;margin-left:0;color:#1d4ed8;white-space:nowrap}.notification-task-next-collection b{color:#1e3a8a}.notification-task-next-collection.is-running{color:#b45309}.notification-task-next-collection.is-running b{color:#92400e}.notification-task-collection-progress{display:inline-block;color:#64748b;white-space:nowrap}.param-card-body{padding:24px;display:flex;flex-direction:column;gap:18px}.settings-page .form-row,.modal-card .form-row{display:flex;flex-direction:column;gap:8px;max-width:320px}.form-label{font-size:13.5px;font-weight:600;color:#334155}span.required{color:#ef4444}.input-unit-group{display:flex;align-items:center;border:1px solid #cbd5e1;border-radius:8px;overflow:hidden;background:#fff;transition:all .2s}.input-unit-group:focus-within{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.param-input{border:none!important;border-radius:0!important;box-shadow:none!important;font-size:15px;font-weight:600;color:#1e293b;padding:8px 12px;flex:1}.input-unit{padding:0 14px;color:#64748b;font-size:13.5px;font-weight:600;background:#f8fafc;border-left:1px solid #e2e8f0;height:38px;line-height:38px;-webkit-user-select:none;user-select:none}.preset-group{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.schedule-toggle{display:inline-flex;align-items:center;gap:8px;width:fit-content;color:#1e293b;font-size:14px;font-weight:600;cursor:pointer}.schedule-toggle input{width:17px;height:17px}.schedule-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.schedule-grid.disabled{opacity:.55}.schedule-field{display:flex;flex-direction:column;gap:8px}.interval-group{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:8px}.interval-unit{min-width:0}@media(max-width:700px){.settings-page{gap:12px}.header-card{padding:14px}.header-content{align-items:flex-start;gap:10px}.settings-title{font-size:16px}.settings-subtitle{font-size:12px}.param-card-header{padding:14px;gap:10px;flex-wrap:wrap}.param-meta{min-width:0}.param-name{font-size:15px}.param-desc{font-size:12px;overflow-wrap:anywhere}.notification-task-title-row .notification-task-collection-summary{width:100%;justify-content:flex-start;margin-left:0}.notification-task-next-collection,.notification-task-collection-progress{display:block;margin:4px 0 0}.param-card-body{padding:14px}.notification-task-header-actions{width:100%;justify-content:flex-end;flex-wrap:wrap}.task-toolbar{align-items:flex-start}.task-filter-group{flex-wrap:wrap}.schedule-grid{grid-template-columns:1fr}}.preset-label{font-size:13px;color:#64748b;font-weight:500}.preset-pills{display:flex;gap:8px;flex-wrap:wrap}.preset-pill{padding:5px 12px;font-size:12.5px;background:#f1f5f9;color:#334155;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;transition:all .2s}.preset-pill:hover{background:#e2e8f0;color:#0f172a}.preset-pill.active{background:#eff6ff;color:#2563eb;border-color:#93c5fd;font-weight:600}.alert-info-box{display:flex;gap:12px;background:#f8fafc;border:1px solid #e2e8f0;border-left:4px solid #2563eb;padding:14px 16px;border-radius:6px;margin-top:6px}.alert-icon{font-size:18px}.alert-text{font-size:12.5px;color:#475569;line-height:1.5}.next-collection-time{margin-top:8px;color:#1e3a8a;font-size:13px}.alert-text b{color:#1e293b}.alert-text ul{margin:6px 0 0;padding-left:18px}.alert-text li{margin-bottom:4px}.param-card-footer{padding:14px 24px;background:#f8fafc;border-top:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center}.update-info{font-size:12px;color:#94a3b8}.footer-actions{display:flex;gap:10px}.badge-modified{margin-left:12px;font-size:11.5px;color:#ea580c;background-color:#fff7ed;border:1px solid #ffedd5;padding:2px 8px;border-radius:4px;font-weight:600;display:inline-block}.badge-unchanged{margin-left:12px;font-size:11.5px;color:#059669;background-color:#ecfdf5;border:1px solid #d1fae5;padding:2px 8px;border-radius:4px;display:inline-block}.tag-enabled{color:#059669!important;background:#ecfdf5!important;border-color:#a7f3d0!important}.tag-disabled{color:#64748b!important;background:#f1f5f9!important;border-color:#cbd5e1!important}.tag-warning{color:#d97706!important;background:#fffbeb!important;border-color:#fde68a!important}.sms-toggle-row{display:flex;flex-direction:column;gap:6px;padding-bottom:14px;border-bottom:1px dashed #e2e8f0}.toggle-title{font-weight:600;color:#1e293b;font-size:14px}.toggle-hint{font-size:12.5px;color:#64748b;margin-left:28px}.sms-config-area{transition:opacity .2s ease}.sms-config-area.disabled{opacity:.55;pointer-events:none}.provider-selector{display:flex;gap:12px;flex-wrap:nowrap}.settings-page .form-row.sms-provider-row{max-width:none}.provider-radio{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:8px;border:1.5px solid #e2e8f0;background:#f8fafc;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s ease}.provider-radio:hover{border-color:#cbd5e1;background:#f1f5f9}.provider-radio.active{border-color:#3b82f6;background:#eff6ff;color:#1d4ed8;font-weight:600}@media(max-width:900px){.provider-selector{flex-wrap:wrap}}.sms-fields-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:14px}.sms-field{display:flex;flex-direction:column}.sms-verify-settings-row{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.sms-template-params-field{grid-column:1 / -1}.sms-field .form-label{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px;white-space:normal;min-height:22px;height:auto;line-height:22px;margin-bottom:6px}.sms-field .hint{font-size:11.5px;color:#94a3b8;font-weight:400;margin-left:4px;white-space:nowrap}.sms-verify-setting .form-label{align-content:flex-start;min-height:50px}.sms-verify-setting .hint{flex-basis:100%;margin-left:0}@media(max-width:900px){.sms-verify-settings-row{grid-template-columns:1fr}}.password-input-wrap{position:relative;display:flex;align-items:center}.password-input-wrap .input{width:100%;padding-right:36px}.btn-toggle-eye{position:absolute;right:8px;background:none;border:none;cursor:pointer;font-size:14px;opacity:.7;padding:4px}.btn-toggle-eye:hover{opacity:1}.sms-custom-box{margin-top:14px;padding:16px;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.settings-page .form-row-flex,.modal-card .form-row-flex{display:flex;gap:12px}.textarea{resize:vertical;min-height:56px;font-family:inherit}.modal-mask{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172a73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;animation:fadeIn .15s ease-out}.modal-card{background:#fff;border-radius:12px;width:100%;max-width:480px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;overflow:hidden;animation:scaleIn .2s ease-out}.modal-card-lg{max-width:860px}.sms-log-card{width:min(1280px,calc(100vw - 48px));max-width:none}.sms-log-table{min-width:1020px;table-layout:fixed}.sms-log-col-time{width:150px}.sms-log-col-phone{width:120px}.sms-log-col-provider{width:90px}.sms-log-col-sign{width:140px}.sms-log-col-template{width:105px}.sms-log-col-status{width:90px}.sms-log-col-action{width:100px}.sms-log-time,.sms-log-phone,.sms-log-table .status-badge,.sms-log-detail-button{white-space:nowrap}.sms-log-detail-button{min-width:76px}.sms-log-detail-mask{z-index:1010}.sms-log-detail-card{max-width:760px}.sms-log-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.sms-log-detail-grid>div{border:1px solid #e2e8f0;border-radius:8px;padding:9px 10px}.sms-log-detail-grid span,.sms-log-detail-section label{display:block;color:#64748b;font-size:12px;margin-bottom:4px}.sms-log-detail-grid b{color:#1e293b;font-size:13px;overflow-wrap:anywhere}.sms-log-detail-section{margin-top:12px}.sms-log-detail-section pre{margin:0;padding:10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;color:#334155;font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;overflow-wrap:anywhere;max-height:180px;overflow:auto}@media(max-width:700px){.sms-log-detail-grid{grid-template-columns:1fr}.sms-log-card{width:calc(100vw - 24px)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e2e8f0}.modal-header h3{margin:0;font-size:16px;font-weight:600;color:#1e293b}.modal-close{background:none;border:none;font-size:22px;line-height:1;color:#94a3b8;cursor:pointer;padding:0 4px}.modal-close:hover{color:#475569}.modal-body{padding:20px}.modal-tip{margin:0 0 14px;font-size:13px;color:#64748b;line-height:1.5}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:12px 20px;background:#f8fafc;border-top:1px solid #e2e8f0}.test-result-box{margin-top:16px;padding:12px 14px;border-radius:8px;font-size:13px}.test-result-box.res-success{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46}.test-result-box.res-error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.res-title{font-weight:600;margin-bottom:4px}.res-desc{font-size:12px;opacity:.9;word-break:break-all}.log-filter-bar{display:flex;gap:8px;margin-bottom:14px}.input-sm{padding:4px 8px;font-size:12px}.table-wrap{overflow-x:auto;border:1px solid #e2e8f0;border-radius:8px}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table th,.data-table td{padding:10px 12px;text-align:left;border-bottom:1px solid #f1f5f9}.data-table th{background:#f8fafc;font-weight:600;color:#475569}.status-badge{display:inline-block;padding:2px 6px;border-radius:4px;font-size:11px;font-weight:600}.badge-success{background:#ecfdf5;color:#059669}.badge-danger{background:#fef2f2;color:#dc2626}.ellipsis-td{max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-xs{padding:4px 8px;font-size:11.5px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}.scope-scene-list{display:flex;flex-direction:column;gap:12px}.scope-scene-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;transition:all .2s}.scope-scene-item:hover{background:#fff;border-color:#cbd5e1;box-shadow:0 2px 8px #0000000a}.scope-scene-info{flex:1;display:flex;flex-direction:column;gap:4px}.scope-scene-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.scene-icon{font-size:18px}.scene-name{font-size:14.5px;font-weight:700;color:#1e293b}.scene-key-tag{font-family:monospace;font-size:11.5px;color:#64748b;background:#e2e8f0;padding:2px 6px;border-radius:4px}.scope-badge{font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:999px}.scope-badge-admin{background:#ede9fe;color:#6d28d9;border:1px solid #ddd6fe}.scope-badge-user{background:#ecfdf5;color:#059669;border:1px solid #a7f3d0}.scope-scene-desc{font-size:12.5px;color:#64748b;line-height:1.4}.scope-toggle-group{display:inline-flex;background:#e2e8f0;padding:3px;border-radius:8px;gap:2px;flex-shrink:0}.scope-toggle-btn{border:none;background:transparent;padding:6px 14px;font-size:13px;font-weight:600;color:#475569;border-radius:6px;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:4px}.scope-toggle-btn:hover{color:#1e293b}.scope-toggle-btn.active{background:#fff;color:#2563eb;box-shadow:0 1px 3px #0000001a}.auto-load-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}@media(max-width:720px){.auto-load-grid{grid-template-columns:1fr}}.auto-load-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease}.auto-load-item:hover{border-color:#93c5fd;background:#f0f7ff;box-shadow:0 1px 3px #2563eb14}.auto-load-label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#1e293b;cursor:pointer;-webkit-user-select:none;user-select:none}.auto-load-label input[type=checkbox]{width:16px;height:16px;accent-color:#2563eb;cursor:pointer}.auto-load-icon{font-size:15px}.auto-load-name{white-space:nowrap}.auto-load-state{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;white-space:nowrap}.auto-load-state.on{background:#dcfce7;color:#16a34a;border:1px solid #bbf7d0}.auto-load-state.off{background:#f1f5f9;color:#64748b;border:1px solid #e2e8f0}:root{--primary: #2563eb;--primary-hover: #1d4ed8;--primary-light: #eff6ff;--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--text-main: #1e293b;--text-muted: #64748b;--border: #e2e8f0;--bg-page: #f8fafc;--bg-card: #ffffff;--radius: 8px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow: 0 4px 6px -1px rgb(0 0 0 / .07), 0 2px 4px -2px rgb(0 0 0 / .07);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .08), 0 4px 6px -4px rgb(0 0 0 / .08)}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;max-width:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background-color:var(--bg-page);color:var(--text-main);line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden;overscroll-behavior-x:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}input,textarea,select,[contenteditable=true]{user-select:auto;-webkit-user-select:auto;-moz-user-select:auto;-ms-user-select:auto}table td.empty-state,table td.loading-state,table td.state-cell,table td[colspan]{display:table-cell!important;text-align:center;vertical-align:middle}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:38px;padding:0 16px;font-size:14px;font-weight:500;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;transition:all .2s ease;-webkit-user-select:none;user-select:none}.btn-primary{background-color:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background-color:var(--primary-hover);box-shadow:var(--shadow-sm)}.btn-secondary{background-color:#fff;color:var(--text-main);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background-color:#f1f5f9;border-color:#cbd5e1}.btn-danger{background-color:#fee2e2;color:#b91c1c}.btn-danger:hover:not(:disabled){background-color:#fecaca}.btn:disabled{opacity:.5;cursor:not-allowed}.input,.select{width:100%;height:38px;padding:0 12px;font-size:14px;color:var(--text-main);background-color:#fff;border:1px solid var(--border);border-radius:var(--radius);outline:none;transition:border-color .2s,box-shadow .2s}.input:focus,.select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb26}.card{background-color:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);padding:20px;margin-bottom:20px}.badge{display:inline-flex;align-items:center;padding:2px 8px;font-size:12px;font-weight:500;border-radius:4px}.badge-green{background-color:#d1fae5;color:#065f46}.badge-gray{background-color:#f1f5f9;color:#475569}.badge-blue{background-color:#dbeafe;color:#1e40af}.badge-red{background-color:#fef2f2;color:#dc2626;border:1px solid #fecaca}.table-responsive{width:100%;overflow-x:auto;border-radius:var(--radius);border:1px solid var(--border);overscroll-behavior-x:none}table.custom-table{width:100%;border-collapse:collapse;text-align:left;font-size:13px;white-space:nowrap}table.custom-table th{background-color:#f8fafc;color:var(--text-muted);font-weight:600;padding:12px 14px;border-bottom:1px solid var(--border)}table.custom-table td{padding:12px 14px;border-bottom:1px solid var(--border);color:var(--text-main)}table.custom-table tbody tr:hover{background-color:#f8fafc}.alert-error{padding:12px 16px;background-color:#fef2f2;border:1px solid #fecaca;color:#dc2626;border-radius:var(--radius);font-size:14px;margin-bottom:16px}.app-toast-container{position:fixed;top:24px;left:50%;transform:translate(-50%);z-index:999999;display:flex;flex-direction:column;align-items:center;gap:12px;pointer-events:none}.app-toast-item{pointer-events:auto;display:inline-flex;align-items:center;gap:10px;background:#fff;border-radius:12px;padding:10px 22px 10px 16px;box-shadow:0 12px 30px -4px #00000014,0 4px 12px -2px #0000000a;font-size:15px;font-weight:600;line-height:1.4;white-space:pre-line;word-break:break-word;max-width:90vw;cursor:pointer;opacity:0;transform:translateY(-20px) scale(.96);transition:all .28s cubic-bezier(.16,1,.3,1);-webkit-user-select:none;user-select:none}.app-toast-item.is-visible{opacity:1;transform:translateY(0) scale(1)}.app-toast-item.is-leaving{opacity:0;transform:translateY(-16px) scale(.96)}.app-toast-icon-wrap{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.app-toast-content{letter-spacing:.2px}.app-toast-success{border:1.5px solid #86efac;color:#15803d}.app-toast-error{border:1.5px solid #fca5a5;color:#b91c1c}.app-toast-warning{border:1.5px solid #fde047;color:#b45309}.app-toast-info{border:1.5px solid #93c5fd;color:#1d4ed8}.form-label,.form-label.required{color:#334155}.form-label.required:after,span.required{color:#ef4444}
