:root{--primary: #2563eb;--primary-hover: #1d4ed8;--primary-soft: #eff6ff;--success: #16a34a;--success-soft: #f0fdf4;--warning: #d97706;--warning-soft: #fffbeb;--danger: #dc2626;--danger-soft: #fef2f2;--gray: #64748b;--gray-soft: #f8fafc;--violet: #7c3aed;--violet-soft: #f5f3ff;--bg: #f1f5f9;--card: #ffffff;--border: #e2e8f0;--border-strong: #cbd5e1;--text-1: #0f172a;--text-2: #475569;--text-3: #94a3b8;--radius-xs: 6px;--radius-sm: 8px;--radius-md: 10px;--radius: 12px;--radius-xl: 14px;--radius-pill: 999px;--shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 2px 6px -1px rgba(15, 23, 42, .07);--shadow-card-hover: 0 10px 24px -12px rgba(15, 23, 42, .28);--shadow-lg: 0 12px 32px -8px rgba(15, 23, 42, .18), 0 4px 12px -4px rgba(15, 23, 42, .08);--border-soft: #eef2f7;--hover-bg: #f8fafc;--duration-fast: .15s;--ease-standard: cubic-bezier(.4, 0, .2, 1);--transition-fast: var(--duration-fast) var(--ease-standard);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;--bg-alt: var(--gray-soft);--text: var(--text-1);--text-muted: var(--text-2)}body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:#2563eb2e}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}*::-webkit-scrollbar-thumb:hover{background:#94a3b8}*::-webkit-scrollbar-track{background:transparent}:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}.muted{color:var(--text-3);font-size:12px}.strong{font-weight:600;color:var(--text-1)}.mr{margin-right:6px}.panel{background:var(--card);border:1px solid var(--border-soft, var(--border));border-radius:var(--radius);padding:20px 22px;box-shadow:var(--shadow);margin-bottom:18px;transition:box-shadow var(--transition-fast)}.panel:hover{box-shadow:0 2px 4px #0f172a0d,0 6px 16px -6px #0f172a17}.panel-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--border)}.panel-head h3{margin:0;font-size:16px;font-weight:700;color:var(--text-1);letter-spacing:.2px}.panel-head h4{margin:0 0 10px;font-size:13px;font-weight:600;color:var(--text-2)}.table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}.table th,.table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border-soft, var(--border));vertical-align:top;color:var(--text-2)}.table tbody tr{transition:background-color var(--transition-fast)}.table th{color:var(--text-3);font-weight:600;font-size:12px;background:var(--gray-soft);white-space:nowrap;border-top:1px solid var(--border)}.table thead th:first-child{border-top-left-radius:var(--radius-sm)}.table thead th:last-child{border-top-right-radius:var(--radius-sm)}.table thead tr th{border-bottom:1px solid var(--border-strong)}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:var(--primary-soft)}.table td.strong{font-weight:600;color:var(--text-1)}.table-scroll{width:100%;overflow-x:auto;overscroll-behavior-inline:contain;border-radius:var(--radius-sm)}.table-scroll>.table{min-width:720px}.btn:not(:disabled):active{transform:translateY(1px)}.btn,.tag{transition:all var(--transition-fast)}.tag.blue{background:#dbeafe;color:#2563eb}.tag.purple{background:#ede9fe;color:#7c3aed}.tag.yellow{background:#fef3c7;color:#b45309}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:14px}.stat-card{background:linear-gradient(180deg,#fff,#fbfcfe);border:1px solid var(--border);border-radius:10px;padding:14px 12px;text-align:center;transition:box-shadow var(--transition-fast),border-color var(--transition-fast)}.stat-card:hover{border-color:#d5deea;box-shadow:0 6px 18px -10px #0f172a2e}.stat-val{font-size:24px;font-weight:700;color:var(--text-1);line-height:1.2;font-variant-numeric:tabular-nums}.stat-label{font-size:12px;color:var(--text-3);margin-top:4px}.stat-card.danger .stat-val{color:var(--danger)}.stat-card.warn .stat-val{color:var(--warning)}.stat-card.ok .stat-val{color:var(--success)}.stat-card.gray .stat-val{color:var(--gray)}.ui-overview,.ui-overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-bottom:16px}.ui-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ui-overview-card{--ui-accent: var(--primary);--ui-soft: #eff6ff;--ui-border: #dbeafe;position:relative;min-width:0;padding:16px 18px;border:1px solid var(--ui-border);border-radius:var(--radius-xl);background:linear-gradient(135deg,var(--ui-soft) 0%,var(--card) 68%);color:var(--text-1);box-shadow:0 1px 2px #0f172a08;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.ui-overview-card.tone-primary,.ui-overview-card.is-blue{--ui-accent: #2563eb;--ui-soft: #f4f8ff;--ui-border: #dbeafe}.ui-overview-card.tone-success,.ui-overview-card.is-green{--ui-accent: #0f766e;--ui-soft: #f0fdfa;--ui-border: #ccfbf1}.ui-overview-card.tone-warning,.ui-overview-card.is-amber{--ui-accent: #d97706;--ui-soft: #fffbeb;--ui-border: #fde7c7}.ui-overview-card.tone-danger,.ui-overview-card.is-red{--ui-accent: #dc2626;--ui-soft: #fff7f7;--ui-border: #fecaca}.ui-overview-card.tone-violet,.ui-overview-card.is-purple{--ui-accent: #7c3aed;--ui-soft: #faf7ff;--ui-border: #e9d5ff}.ui-overview-card.is-interactive,button.ui-overview-card,.stage-card.ui-overview-card,.fl-card.ui-overview-card{cursor:pointer}.ui-overview-card.is-interactive:hover,button.ui-overview-card:hover:not(:disabled),.stage-card.ui-overview-card:hover,.fl-card.ui-overview-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--ui-accent) 34%,var(--ui-border));box-shadow:var(--shadow-card-hover)}.ui-overview-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.ui-overview-title{color:var(--text-1);font-size:15px;font-weight:700;line-height:1.3}.ui-overview-desc{margin-top:3px;color:var(--text-2);font-size:11.5px;line-height:1.45}.ui-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(84px,1fr));gap:10px;margin-top:16px}.ui-metric{display:flex;flex-direction:column;gap:5px;min-width:0;padding-left:12px;border-left:2px solid rgba(148,163,184,.24)}.ui-metric:first-child{padding-left:0;border-left:0}.ui-metric-value{color:var(--ui-accent);font-size:25px;font-weight:750;line-height:1.05;font-variant-numeric:tabular-nums}.ui-metric-value.is-danger{color:var(--danger)}.ui-metric-value.is-warning{color:var(--warning)}.ui-metric-value.is-success{color:var(--success)}.ui-metric-value.is-muted{color:var(--gray)}.ui-metric>span{color:var(--text-2);font-size:11.5px;line-height:1.4}.ui-metric small{display:block;margin-top:2px;color:var(--text-3);font-size:10.5px;font-weight:500}.ui-overview>.ui-overview-card{display:flex;align-items:center;gap:12px;padding:15px 16px}.ui-overview-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;flex:0 0 38px;border-radius:var(--radius-md);background:color-mix(in srgb,var(--ui-accent) 13%,white);color:var(--ui-accent);font-size:14px;font-weight:700}.ui-overview-icon svg{width:20px;height:20px;fill:none;stroke:currentColor}.ui-overview-body{display:flex;flex-direction:column;min-width:0}.ui-overview-label{color:var(--text-2);font-size:11.5px}.ui-overview-value{margin-top:2px;overflow:hidden;color:var(--ui-accent);font-size:21px;font-weight:750;line-height:1.25;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums}.ui-overview-meta{margin-top:2px;overflow:hidden;color:var(--text-3);font-size:10.5px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.ui-page-nav{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;min-height:72px;flex:0 0 auto;padding:16px 18px;border-color:#dbeafe;background:linear-gradient(135deg,#f8fbff 0%,var(--card) 68%)}.ui-page-nav-heading{display:flex;align-items:center;gap:12px;min-width:0}.ui-page-nav-heading h2{margin:0;color:var(--text-1);font-size:17px;line-height:1.3}.ui-page-nav-heading p{margin:4px 0 0;color:var(--text-3);font-size:12px;line-height:1.5}.ui-page-nav-icon{flex:0 0 38px;width:38px;height:38px;color:var(--primary);background:#dbeafe}.ui-page-nav-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.ui-page-nav-tabs{flex:0 0 auto;margin:0}.toolbar.ui-page-nav-actions{flex:0 0 auto;padding:0;border:0;background:transparent}.action-cards{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.action-card{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;overflow:hidden;padding:11px 14px 11px 17px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--gray-soft)}.action-card:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--gray)}.action-card.danger{border-color:#fecaca;background:linear-gradient(90deg,var(--danger-soft),var(--card))}.action-card.warn{border-color:#fde7c7;background:linear-gradient(90deg,var(--warning-soft),var(--card))}.action-card.ok{border-color:#bbf7d0;background:linear-gradient(90deg,var(--success-soft),var(--card))}.action-card.danger:before{background:var(--danger)}.action-card.warn:before{background:var(--warning)}.action-card.ok:before{background:var(--success)}.ac-main{display:flex;flex-direction:column;gap:3px;min-width:0}.ac-title{font-size:13px;color:var(--text-1)}.action-card.danger .ac-title{color:#b91c1c}.action-card.warn .ac-title{color:#b45309}.action-card.ok .ac-title{color:#047857}.ac-desc{font-size:12px;color:var(--text-2)}.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:500;line-height:20px;background:var(--primary-soft);color:var(--primary);white-space:nowrap}.tag.ok{background:var(--success-soft);color:var(--success)}.tag.danger{background:var(--danger-soft);color:var(--danger)}.tag.warn{background:var(--warning-soft);color:var(--warning)}.tag.gray{background:var(--gray-soft);color:var(--gray);border:1px solid var(--border)}.tag.admin{background:var(--primary-soft);color:var(--primary)}.tag.region_manager{background:var(--violet-soft);color:var(--violet)}.tag.reporter{background:var(--gray-soft);color:var(--gray)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 16px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--card);color:var(--text-2);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap}.btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 1px 2px #2563eb4d}.btn.primary:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:#fff}.btn.sm{height:26px;padding:0 10px;font-size:12px;border-radius:6px}.btn.danger{color:var(--danger);border-color:#fecaca;background:var(--card)}.btn.danger:hover{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:disabled:hover{border-color:var(--border-strong);color:var(--text-2);background:var(--card)}.btn.primary:disabled:hover{background:var(--primary);border-color:var(--primary);color:#fff}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>span{font-size:12px;font-weight:500;color:var(--text-2)}.field input,.field select,.field textarea,.inp{height:34px;padding:0 12px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--card);color:var(--text-1);font-size:13px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.field textarea{height:auto;padding:8px 12px;resize:vertical;line-height:1.6}.field input:focus,.field select:focus,.field textarea:focus,.inp:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1f}.field input::placeholder,.field textarea::placeholder,.inp::placeholder{color:var(--text-3)}.inp.sm{height:26px;padding:0 8px;font-size:12px}.check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-2);cursor:pointer}.check input{accent-color:var(--primary);width:15px;height:15px}.filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 12px}.toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 12px;padding:11px 12px;border:1px solid var(--border-soft);border-radius:var(--radius-md);background:linear-gradient(180deg,#fbfdff,var(--gray-soft))}.page-stack{display:flex;flex-direction:column;gap:16px;padding-bottom:24px}.page-stack>.panel,.page-stack>.ui-overview,.page-stack>.ui-overview-grid,.page-stack>.tabs,.page-stack>.alert{margin-bottom:0}.field-inline{display:inline-flex;flex-direction:row;align-items:center;gap:6px;white-space:nowrap}.field-inline>span{white-space:nowrap}.field-inline input,.field-inline select{min-width:130px}.filters.inline{align-items:center}.filters .field{flex-direction:row;align-items:center;gap:6px;white-space:nowrap}.filters .field>span{white-space:nowrap}.filters .field input,.filters .field select{min-width:130px}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px 18px}.form-grid .full{grid-column:1 / -1}.form-row{display:flex;flex-wrap:wrap;gap:14px}.form-row .field{flex:1;min-width:140px}.tabs{display:inline-flex;max-width:100%;gap:4px;padding:4px;background:var(--gray-soft);border:1px solid var(--border);border-radius:10px;margin-bottom:16px}.tab{padding:7px 16px;border:none;border-radius:7px;background:transparent;color:var(--text-2);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap}.tab:hover{color:var(--primary)}.tab.active{background:var(--card);color:var(--primary);font-weight:600;box-shadow:var(--shadow)}.bar{display:inline-block;width:72px;height:6px;border-radius:999px;background:var(--border);overflow:hidden;vertical-align:middle}.bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--primary),#60a5fa);transition:width .3s ease}.pct{font-size:12px;color:var(--text-2);margin-left:6px}.alert{padding:10px 14px;border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);font-size:13px;border-left:3px solid var(--danger);margin-bottom:14px}.msg-bar{padding:8px 12px;border-radius:var(--radius-sm);background:var(--primary-soft);color:var(--primary);font-size:13px;margin-bottom:12px}.msg-bar.err{background:var(--danger-soft);color:var(--danger)}.empty{padding:42px 20px;text-align:center;color:var(--text-3);font-size:13px;border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:var(--gray-soft)}.empty.sm{padding:18px;border:none;background:transparent}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:100;padding:24px}.modal{width:560px;max-width:100%;max-height:86vh;overflow-y:auto;background:var(--card);border-radius:14px;box-shadow:var(--shadow-lg)}.modal.wide{width:860px}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--card);z-index:1}.modal-head h3{margin:0;font-size:15px;font-weight:700;color:var(--text-1)}.modal-body{padding:20px 22px}.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 22px;border-top:1px solid var(--border);position:sticky;bottom:0;background:var(--card)}.detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px 16px;font-size:13px;color:var(--text-2);margin-bottom:6px}.lab{color:var(--text-3);font-size:12px;margin-right:6px}h4.sec{margin:18px 0 10px;font-size:13px;font-weight:600;color:var(--text-1);display:flex;align-items:center;gap:8px}h4.sec:before{content:"";width:3px;height:12px;border-radius:2px;background:var(--primary)}.group-card{border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:12px;background:var(--card)}.group-card .table{margin-top:8px}.group-card .group-head{display:flex;align-items:baseline;gap:10px}.group-card .group-head strong{font-size:13px;color:var(--text-1)}.pager{display:flex;align-items:center;gap:10px;margin-top:14px;justify-content:flex-end}.pager-info{font-size:12px;color:var(--text-3)}.advice-panel{border-color:#dbeafe;background:linear-gradient(135deg,#f8fbff 0%,var(--card) 42%)}.advice-panel .panel-head h3{flex:1}.gen-track{display:flex;align-items:center;gap:12px;margin-bottom:14px}.gen-bar{flex:1;height:6px;border-radius:999px;background:var(--border-strong);overflow:hidden}.gen-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--primary),#60a5fa);transition:width .8s ease}.gen-hint{font-size:12px;color:var(--text-3);white-space:nowrap}.err-text{color:var(--danger)}.advice-meta{font-size:12px;margin-bottom:10px}.md-rich{font-size:13px;line-height:1.8;color:var(--text-2)}.md-rich h5{font-size:13px;font-weight:700;color:var(--text-1);margin:14px 0 6px;padding-left:10px;position:relative}.md-rich h5:before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:3px;border-radius:2px;background:var(--primary)}.md-rich h5:first-child{margin-top:0}.md-rich p{margin:0 0 8px}.md-rich ul{margin:0 0 8px;padding-left:20px}.md-rich li{margin:4px 0}.md-rich code{background:var(--gray-soft);border-radius:4px;padding:1px 5px;font-size:12px}@media(max-width:900px){.ui-overview-grid{grid-template-columns:1fr}.ui-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.ui-page-nav{align-items:flex-start;flex-direction:column}.ui-page-nav-tabs{max-width:100%;overflow-x:auto}.ui-page-nav-actions{width:100%}}@media(max-width:640px){.panel{padding:16px}.panel-head{align-items:flex-start}.ui-overview{grid-template-columns:1fr}.ui-overview-card,.ui-page-nav{padding:14px}.ui-page-nav-heading p{max-width:300px}.ui-page-nav-tabs{display:flex;width:100%}.ui-page-nav-tabs .tab{flex:1 0 auto;padding-inline:12px}.ui-metrics{gap:6px}.ui-metric{padding-left:8px}.ui-metric-value{font-size:21px}.toolbar{align-items:stretch}.tabs{display:flex;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.ui-overview-card:hover,.stat-card:hover{transform:none!important}}.confirm-modal[data-v-622797b0]{width:420px}.confirm-msg[data-v-622797b0]{margin:0;font-size:13.5px;line-height:1.8;color:var(--text-2);white-space:pre-line}html,body,#app{margin:0;padding:0;height:100%;font-family:var(--font);background:var(--bg);color:var(--text-1)}*{box-sizing:border-box}
