.t-icon[data-v-63c8657c]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:#00000014;font-size:11px;font-weight:700;flex-shrink:0}.toast-leave-active[data-v-63c8657c]{transition:all .2s ease}.toast-leave-to[data-v-63c8657c]{opacity:0;transform:translateY(-8px)}:root{--c-primary: #2563eb;--c-primary-dark: #1d4ed8;--c-primary-light: #eff6ff;--c-primary-ring: rgba(37, 99, 235, .18);--c-ok: #16a34a;--c-ok-bg: #f0fdf4;--c-warn: #d97706;--c-warn-bg: #fffbeb;--c-danger: #dc2626;--c-danger-bg: #fef2f4;--c-info: #0891b2;--c-info-bg: #ecfeff;--c-muted: #64748b;--c-muted-bg: #f1f5f9;--c-text: #0f172a;--c-text-2: #475569;--c-text-3: #94a3b8;--c-border: #e2e8f0;--c-border-strong: #cbd5e1;--c-bg: #f5f7fa;--c-surface: #ffffff;--c-hover: #f8fafc;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-full: 999px;--sh-1: 0 1px 2px rgba(15, 23, 42, .06);--sh-2: 0 4px 12px rgba(15, 23, 42, .08);--sh-3: 0 12px 32px rgba(15, 23, 42, .14);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sidebar-w: 232px;--header-h: 56px;--tabbar-h: 58px;--safe-b: env(safe-area-inset-bottom, 0px);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{font-family:var(--font);font-size:14px;line-height:1.6;color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}#app{min-height:100%}h1,h2,h3,h4,h5,h6,p,figure{margin:0}a{color:var(--c-primary);text-decoration:none}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:14px}ul,ol{margin:0;padding:0;list-style:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--c-border-strong);border-radius:var(--r-full)}::-webkit-scrollbar-track{background:transparent}.page{padding:var(--sp-5);max-width:1400px;margin:0 auto;min-width:0;width:100%;overflow-x:clip}.card,.card-body,.filter-bar,.form-grid,.mobile-cards,.pager,.tabs{min-width:0}.page-head>*,.card-head>*{min-width:0}.page>*,.card>*{max-width:100%}.page-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-5)}.page-title{font-size:20px;font-weight:650;letter-spacing:-.01em}.page-desc{font-size:13px;color:var(--c-text-3);margin-top:2px}@keyframes cardEnter{0%{opacity:0;transform:translateY(14px) scale(.975)}to{opacity:1;transform:none}}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--sh-1);animation:cardEnter .38s cubic-bezier(.22,1,.36,1) both}.card:nth-of-type(2){animation-delay:.05s}.card:nth-of-type(3){animation-delay:.1s}.card:nth-of-type(4){animation-delay:.15s}.card:nth-of-type(5){animation-delay:.2s}.card:nth-of-type(6){animation-delay:.25s}@media(prefers-reduced-motion:reduce){.card{animation:none}}.card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--c-border)}.card-title{font-size:15px;font-weight:620}.card-body{padding:var(--sp-5)}.card-body.tight{padding:0}.grid{display:grid;gap:var(--sp-4)}.row{display:flex;align-items:center;gap:var(--sp-3)}.row.wrap{flex-wrap:wrap}.spacer{flex:1}.muted{color:var(--c-text-3)}.small{font-size:12px}.strong{font-weight:620}.name-link{display:inline;padding:0;margin:0;border:0;background:none;font:inherit;font-weight:620;color:var(--c-primary);cursor:pointer;text-align:left;border-bottom:1px dashed transparent;transition:border-color .15s}.name-link:hover{border-bottom-color:var(--c-primary)}.name-link:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px;border-radius:3px}.nowrap{white-space:nowrap}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mt-2{margin-top:var(--sp-2)}.mt-3{margin-top:var(--sp-3)}.mt-4{margin-top:var(--sp-4)}.mt-5{margin-top:var(--sp-5)}.mb-3{margin-bottom:var(--sp-3)}.mb-4{margin-bottom:var(--sp-4)}.mb-5{margin-bottom:var(--sp-5)}.text-c{text-align:center}.text-r{text-align:right}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 16px;border:1px solid var(--c-border-strong);border-radius:var(--r-md);background:var(--c-surface);color:var(--c-text);font-size:14px;font-weight:500;white-space:nowrap;transition:background .15s,border-color .15s,box-shadow .15s,transform .06s}.btn:hover:not(:disabled){background:var(--c-hover);border-color:var(--c-muted)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--c-primary);border-color:var(--c-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--c-primary-dark);border-color:var(--c-primary-dark)}.btn-danger{background:var(--c-danger);border-color:var(--c-danger);color:#fff}.btn-danger:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.btn-ghost{border-color:transparent;background:transparent;color:var(--c-text-2)}.btn-ghost:hover:not(:disabled){background:var(--c-muted-bg);border-color:transparent}.btn-sm{height:30px;padding:0 12px;font-size:13px}.btn-lg{height:44px;padding:0 24px;font-size:15px}.btn-block{width:100%}.btn-link{border:none;background:none;color:var(--c-primary);padding:0 4px;height:auto;font-size:13px}.btn-link:hover{background:none;text-decoration:underline}.field{margin-bottom:var(--sp-4)}.field-label{display:block;font-size:13px;font-weight:560;color:var(--c-text-2);margin-bottom:6px}.field-label .req{color:var(--c-danger);margin-left:2px}.field-hint{font-size:12px;color:var(--c-text-3);margin-top:5px}.field-error{font-size:12px;color:var(--c-danger);margin-top:5px}.input,.select,.textarea{width:100%;height:38px;padding:0 12px;border:1px solid var(--c-border-strong);border-radius:var(--r-md);background:var(--c-surface);color:var(--c-text);outline:none;transition:border-color .15s,box-shadow .15s}.textarea{height:auto;min-height:96px;padding:10px 12px;resize:vertical;line-height:1.6}.input:focus,.select:focus,.textarea:focus{border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-primary-ring)}.input:disabled,.select:disabled,.textarea:disabled{background:var(--c-muted-bg);color:var(--c-text-3);cursor:not-allowed}.input::placeholder,.textarea::placeholder{color:var(--c-text-3)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2364748b' d='M6 8.5 1.5 4h9z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.checkbox,.radio{display:inline-flex;align-items:center;gap:7px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:14px}.checkbox input,.radio input{width:16px;height:16px;accent-color:var(--c-primary);cursor:pointer;margin:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--sp-4)}.form-grid .span-2{grid-column:span 2}.filter-bar{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-4)}.filter-bar .input,.filter-bar .select{width:auto;min-width:150px;height:36px}.tag{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:var(--r-full);font-size:12px;font-weight:550;line-height:1;white-space:nowrap}.tag-ok{background:var(--c-ok-bg);color:var(--c-ok)}.tag-warn{background:var(--c-warn-bg);color:var(--c-warn)}.tag-danger{background:var(--c-danger-bg);color:var(--c-danger)}.tag-info{background:var(--c-info-bg);color:var(--c-info)}.tag-muted{background:var(--c-muted-bg);color:var(--c-muted)}.tag-primary{background:var(--c-primary-light);color:var(--c-primary)}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px;vertical-align:middle}.dot-ok{background:var(--c-ok)}.dot-warn{background:var(--c-warn)}.dot-danger{background:var(--c-danger)}.dot-info{background:var(--c-info)}.dot-muted{background:var(--c-muted)}.table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table{width:100%;border-collapse:collapse;font-size:13.5px}.table th{text-align:left;font-weight:600;color:var(--c-text-2);background:var(--c-hover);padding:11px 14px;white-space:nowrap;border-bottom:1px solid var(--c-border)}.table td{padding:12px 14px;border-bottom:1px solid var(--c-border);vertical-align:middle}.table tbody tr:hover{background:var(--c-hover)}.table tbody tr:last-child td{border-bottom:none}.table .actions{display:flex;gap:var(--sp-2);flex-wrap:wrap}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:var(--r-full);background:var(--c-danger);color:#fff;font-size:11px;font-weight:600;line-height:1}.pager{display:flex;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-4);font-size:13px;color:var(--c-text-2)}.empty{padding:56px 20px;text-align:center;color:var(--c-text-3)}.empty-icon{font-size:40px;margin-bottom:var(--sp-3);opacity:.5}.spinner{width:22px;height:22px;border:2.5px solid var(--c-border);border-top-color:var(--c-primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-box{display:flex;align-items:center;justify-content:center;gap:var(--sp-3);padding:48px;color:var(--c-text-3);font-size:13px}.skeleton{background:linear-gradient(90deg,#eef2f7 25%,#f8fafc,#eef2f7 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--r-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:var(--sp-4);z-index:1000;animation:fade .18s ease}@keyframes fade{0%{opacity:0}to{opacity:1}}.modal{width:100%;max-width:560px;max-height:88vh;display:flex;flex-direction:column;background:var(--c-surface);border-radius:var(--r-lg);box-shadow:var(--sh-3);animation:pop .2s cubic-bezier(.16,1,.3,1)}@keyframes pop{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--c-border);font-size:15px;font-weight:620;flex-shrink:0}.modal-body{padding:var(--sp-5);overflow-y:auto;flex:1}.modal-foot{display:flex;justify-content:flex-end;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-top:1px solid var(--c-border);flex-shrink:0}.modal-close{border:none;background:none;font-size:20px;line-height:1;color:var(--c-text-3);padding:2px 6px;border-radius:var(--r-sm)}.modal-close:hover{background:var(--c-muted-bg);color:var(--c-text)}.toast-wrap{position:fixed;top:18px;left:50%;transform:translate(-50%);z-index:2000;display:flex;flex-direction:column;gap:var(--sp-2);pointer-events:none;width:max-content;max-width:calc(100vw - 32px)}.toast{display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:var(--r-md);background:var(--c-surface);border:1px solid var(--c-border);box-shadow:var(--sh-2);font-size:13.5px;color:var(--c-text);animation:toastIn .24s cubic-bezier(.16,1,.3,1)}@keyframes toastIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.toast-success{border-color:#bbf7d0;background:var(--c-ok-bg);color:#14532d}.toast-error{border-color:#fecaca;background:var(--c-danger-bg);color:#7f1d1d}.toast-warning{border-color:#fde68a;background:var(--c-warn-bg);color:#78350f}.toast-info{border-color:#bae6fd;background:var(--c-info-bg);color:#164e63}.desc{display:grid;grid-template-columns:116px 1fr;gap:0}.desc dt{color:var(--c-text-3);font-size:13px;padding:9px 0;border-bottom:1px dashed var(--c-border)}.desc dd{margin:0;padding:9px 0;border-bottom:1px dashed var(--c-border);font-size:13.5px;word-break:break-word}.desc dt:last-of-type,.desc dd:last-of-type{border-bottom:none}.timeline{position:relative;padding-left:22px}.timeline:before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:var(--c-border)}.timeline-item{position:relative;padding-bottom:var(--sp-4)}.timeline-item:last-child{padding-bottom:0}.timeline-item:before{content:"";position:absolute;left:-21px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--c-surface);border:2px solid var(--c-border-strong)}.timeline-item.is-ok:before{border-color:var(--c-ok)}.timeline-item.is-danger:before{border-color:var(--c-danger)}.timeline-item.is-primary:before{border-color:var(--c-primary)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--sp-4)}.stat{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-5);box-shadow:var(--sh-1)}.stat-label{font-size:12.5px;color:var(--c-text-3);margin-bottom:6px}.stat-value{font-size:24px;font-weight:680;letter-spacing:-.02em;line-height:1.2}.stat-unit{font-size:13px;font-weight:500;color:var(--c-text-3);margin-left:3px}.stat-primary .stat-value{color:var(--c-primary)}.stat-ok .stat-value{color:var(--c-ok)}.stat-warn .stat-value{color:var(--c-warn)}.stat-danger .stat-value{color:var(--c-danger)}@media(max-width:768px){.page{padding:var(--sp-3);padding-bottom:calc(var(--sp-3) + var(--tabbar-h) + var(--safe-b))}.page-head{margin-bottom:var(--sp-3)}.page-title{font-size:18px}.card{border-radius:var(--r-md)}.card-head{padding:var(--sp-3) var(--sp-4);flex-wrap:wrap;gap:var(--sp-2)}.card-head .tabs{flex:1 1 auto;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.card-head .tabs::-webkit-scrollbar{display:none}.card-body{padding:var(--sp-4)}.grid{gap:var(--sp-3)}.form-grid{grid-template-columns:1fr;gap:0}.form-grid .span-2{grid-column:span 1}.filter-bar{gap:var(--sp-2)}.filter-bar .input,.filter-bar .select{flex:1;min-width:0;width:100%}.btn{height:38px}.btn-sm{height:32px}.input,.select,.textarea{height:40px;font-size:16px}.textarea{height:auto;font-size:15px}.modal-mask{align-items:flex-end;padding:0}.modal{max-width:100%;max-height:90vh;border-radius:var(--r-lg) var(--r-lg) 0 0;animation:sheetUp .26s cubic-bezier(.16,1,.3,1)}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:none}}.modal-foot{padding-bottom:calc(var(--sp-4) + var(--safe-b))}.modal-foot .btn{flex:1}.desc{grid-template-columns:92px 1fr}.stat-grid{grid-template-columns:repeat(2,1fr);gap:var(--sp-3)}.stat{padding:var(--sp-3) var(--sp-4)}.stat-value{font-size:20px}.stat-label{font-size:12px}.mobile-hide{display:none!important}.card-head.toolbar .filters{flex-wrap:wrap;width:100%;gap:var(--sp-2)}.card-head.toolbar .filters .search-box{min-width:0!important;flex:1 1 100%;width:100%}.card-head.toolbar .filters>.select,.card-head.toolbar .filters>.input,.card-head.toolbar .filters>.date-range{min-width:0!important;flex:1 1 calc(50% - var(--sp-2))}.card-head.toolbar .filters>.select:only-child,.card-head.toolbar .filters>.input:only-child{flex:1 1 100%}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;background-image:linear-gradient(to right,var(--c-surface) 30%,rgba(255,255,255,0)),linear-gradient(to left,var(--c-surface) 30%,rgba(255,255,255,0)),radial-gradient(farthest-side at 0 50%,#00000021,#0000),radial-gradient(farthest-side at 100% 50%,#00000021,#0000);background-position:left center,right center,left center,right center;background-repeat:no-repeat;background-size:36px 100%,36px 100%,14px 100%,14px 100%;background-attachment:local,local,scroll,scroll}.table{font-size:12.5px}.table th,.table td{padding:9px 10px}.table th:first-child,.table td:first-child{padding-left:var(--sp-3)}.table th:last-child,.table td:last-child{padding-right:var(--sp-3)}.diff-table{font-size:12.5px}.diff-table th,.diff-table td{padding:7px 8px}.modal{max-height:92vh}.modal-body{padding:var(--sp-3) var(--sp-4);-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.modal-foot{position:sticky;bottom:0;background:var(--c-surface);z-index:2}.form-grid{row-gap:var(--sp-3)}.desc{grid-template-columns:76px 1fr;font-size:13px}.grid{grid-template-columns:1fr}}@media(max-width:360px){.page{padding:var(--sp-2);padding-bottom:calc(var(--sp-2) + var(--tabbar-h) + var(--safe-b))}.card-body{padding:var(--sp-3)}.stat-grid{grid-template-columns:1fr}.modal-foot .btn{font-size:13px}}@media(min-width:769px){.desktop-hide{display:none!important}}@supports (-webkit-touch-callout: none){.page{padding-bottom:calc(var(--sp-3) + var(--tabbar-h) + 8px)}}
