.ok-text[data-v-b57a67bd]{color:var(--color-ok);font-weight:600}.bad-text[data-v-b57a67bd]{color:var(--color-danger);font-weight:600}.rank-badge[data-v-8569145e]{flex:0 0 30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#fbe9e7;color:var(--color-primary-dark);font-weight:700;font-size:13px}.rank-badge.rank-top[data-v-8569145e]{background:var(--color-gold);color:#5d4200}.cat-chips[data-v-8569145e]{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}:root{--color-bg: #f7f7f8;--color-surface: #ffffff;--color-border: #e3e5e8;--color-border-strong: #d0d3d8;--color-text: #212121;--color-muted: #6b7280;--color-primary: #c62828;--color-primary-dark: #8e1b1b;--color-primary-deep: #7f1414;--color-gold: #ffca28;--color-ok: #1f7a3d;--color-warn: #b26a00;--color-danger: #c0392b;--radius: 8px;--shadow: 0 1px 3px rgba(0, 0, 0, .05)}*{box-sizing:border-box}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Segoe UI,sans-serif;font-size:14px;line-height:1.6}.app-header{display:flex;align-items:center;gap:12px;padding:10px 16px;background:linear-gradient(135deg,var(--color-primary-deep),var(--color-primary) 70%,#d84315);color:#fff;border-bottom:3px solid var(--color-gold)}.brand{display:flex;align-items:center;gap:9px;white-space:nowrap}.emblem{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex:0 0 30px;border-radius:50%;background:var(--color-gold);color:var(--color-primary-deep);font-size:17px;box-shadow:inset 0 0 0 2px #ffffff8c}.brand-text{display:flex;flex-direction:column;line-height:1.25}.brand-text small{font-size:11px;opacity:.85}.badge{margin-left:4px;padding:1px 7px;border-radius:10px;background:#ffffff38;font-size:12px;font-weight:400}.nav{display:flex;gap:2px;flex:1;overflow-x:auto;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav-link{padding:6px 10px;border-radius:var(--radius);color:#ffffffeb;text-decoration:none;white-space:nowrap;font-size:13.5px}.nav-link:hover{background:#ffffff24}.nav-link.router-link-active{background:#ffffff42;color:#fff;font-weight:600}.nav-link-public{border:1px solid rgba(255,255,255,.45)}.user-box{display:flex;align-items:center;gap:8px;white-space:nowrap;font-size:13px}.user-name{display:flex;flex-direction:column;align-items:flex-end;line-height:1.25}.user-name small{font-size:11px;opacity:.85}.app-main{max-width:1080px;margin:16px auto;padding:0 14px 40px}.app-footer{padding:12px;text-align:center;font-size:11.5px;color:var(--color-muted);border-top:1px solid var(--color-border)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:16px;margin-bottom:14px;box-shadow:var(--shadow)}.card-title{display:flex;align-items:baseline;gap:8px;margin:0 0 12px;padding:0 0 8px 9px;border-left:4px solid var(--color-primary);border-bottom:2px solid var(--color-gold);font-size:16px}.card-title small{margin-left:auto;color:var(--color-muted);font-weight:400;font-size:12px}.narrow{max-width:430px;margin:32px auto}.section-title{display:flex;align-items:center;gap:8px;margin:18px 0 8px;font-size:13.5px;font-weight:600;color:var(--color-primary-dark)}.section-title:after{content:"";flex:1;height:1px;background:var(--color-border)}.field{display:block;margin-bottom:12px}.field-label{display:block;margin-bottom:4px;color:var(--color-muted);font-size:12.5px;font-weight:600}input,select,textarea{width:100%;padding:9px 10px;border:1px solid var(--color-border-strong);border-radius:var(--radius);font:inherit;background:#fff;color:inherit}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #c628281f}input[readonly]{background:#f4f4f5;color:var(--color-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;border:1px solid transparent;border-radius:var(--radius);background:var(--color-primary);color:#fff;font:inherit;font-weight:600;cursor:pointer}.btn:hover:not(:disabled){background:var(--color-primary-dark)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-ghost{background:transparent;border-color:#fff9}.btn-ghost:hover:not(:disabled){background:#ffffff29}.btn-outline{background:#fff;border-color:var(--color-primary);color:var(--color-primary)}.btn-outline:hover:not(:disabled){background:#fdecea}.btn-grey{background:#fff;border-color:var(--color-border-strong);color:var(--color-muted);font-weight:500}.btn-grey:hover:not(:disabled){background:#f4f4f5}.btn-sm{padding:5px 11px;font-size:12.5px}.btn-block{width:100%}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.stat{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:10px 8px;text-align:center}.stat-value{font-size:20px;font-weight:700;color:var(--color-primary);font-variant-numeric:tabular-nums;line-height:1.25}.stat-label{font-size:12px;color:var(--color-muted)}.stat-sub{font-size:11px;color:var(--color-muted)}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:12px}.toolbar .field{margin-bottom:0;min-width:130px;flex:1 1 130px}.toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}.alert{padding:10px 12px;border-radius:var(--radius);margin-bottom:12px;border-left:4px solid transparent;font-size:13px}.alert strong{display:block;margin-bottom:2px}.alert-error{background:#fdecea;color:#8e1b1b;border-color:var(--color-danger)}.alert-info{background:#e8f1fb;color:#164a84;border-color:#1d5fa8}.alert-ok{background:#eaf7ef;color:#1b5e20;border-color:var(--color-ok)}.alert-warn{background:#fff6e5;color:#7a4b00;border-color:var(--color-warn)}.hint{margin-top:8px;font-size:12px;color:var(--color-muted);line-height:1.7}.muted{color:var(--color-muted)}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.points{font-variant-numeric:tabular-nums;font-weight:600}.chip{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11.5px;font-weight:600;white-space:nowrap}.chip-pending{background:#fff3e0;color:#b26a00;border:1px solid #ffcc80}.chip-ok{background:#e8f5e9;color:#1b5e20;border:1px solid #a5d6a7}.chip-bad{background:#ffebee;color:#8e1b1b;border:1px solid #ef9a9a}.chip-muted{background:#eceff1;color:#455a64;border:1px solid #b0bec5}.chip-src{background:#ede7f6;color:#4527a0;border:1px solid #b39ddb}.chip-legacy{background:#fff8e1;color:#7a5c00;border:1px solid #ffe082}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--color-border);border-radius:var(--radius)}table{width:100%;border-collapse:collapse;font-size:13px}.table-scroll table{min-width:620px}.table-scroll.is-wide table{min-width:860px}th,td{padding:8px 10px;border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top;white-space:nowrap}th{background:#fbe9e7;color:var(--color-primary-dark);font-weight:600;font-size:12.5px}tbody tr:nth-child(2n){background:#fcfcfc}tbody tr:last-child td{border-bottom:none}.kv-table th{width:118px;background:transparent;color:var(--color-muted);font-weight:600;white-space:nowrap}.kv-table td{white-space:normal;color:var(--color-text)}.list-item{border:1px solid var(--color-border);border-radius:var(--radius);padding:11px;margin-bottom:9px;background:var(--color-surface)}.list-head{display:flex;align-items:flex-start;gap:8px}.list-title{font-weight:600;font-size:14.5px}.list-meta{font-size:12px;color:var(--color-muted);margin-top:3px}.list-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}.chip-slot{margin-left:auto}.kv{display:grid;grid-template-columns:82px 1fr;gap:2px 8px;font-size:12.5px;margin-top:7px}.kv dt{color:var(--color-muted)}.kv dd{margin:0;word-break:break-word}.review{margin-top:9px;padding:8px 10px;border-radius:var(--radius);border:1px dashed #ffd54f;background:#fff8e1;color:#7a5c00;font-size:12.5px}.review-rejected{border-color:#ef9a9a;background:#ffebee;color:#8e1b1b}.empty{padding:26px 14px;text-align:center;color:var(--color-muted);border:1px dashed var(--color-border-strong);border-radius:var(--radius);background:#fcfcfc}.empty h3{margin:6px 0 4px;font-size:14.5px;color:#4b5563}.empty p{margin:0 0 10px;font-size:12.5px}.bar-row{display:flex;align-items:center;gap:8px;font-size:13px;margin:6px 0}.bar-row .bar-name{flex:0 0 96px;color:#4b5563}.bar-row .bar-track{flex:1;height:9px;background:#f0f0f0;border-radius:999px;overflow:hidden}.bar-row .bar-fill{display:block;height:100%;background:linear-gradient(90deg,var(--color-primary),#e57373)}.bar-row .bar-value{flex:0 0 56px;text-align:right;font-weight:600;font-size:12.5px}.tabs{display:inline-flex;border:1px solid var(--color-border-strong);border-radius:var(--radius);overflow:hidden;margin-bottom:10px}.tabs button{border:none;background:#fff;color:var(--color-muted);padding:6px 13px;font:inherit;font-size:13px;cursor:pointer}.tabs button.active{background:var(--color-primary);color:#fff;font-weight:600}.upload{border:1.5px dashed var(--color-border-strong);border-radius:var(--radius);padding:14px;text-align:center;background:#fcfcfc}.upload.has-file{border-style:solid;border-color:var(--color-ok);background:#f2f8f3}.upload.has-error{border-style:solid;border-color:var(--color-danger);background:#fff5f5}.upload input[type=file]{border:none;padding:0;background:transparent}@media(max-width:760px){.app-header{flex-wrap:wrap;gap:8px;padding:10px 12px}.nav{order:3;flex-basis:100%}.user-box{margin-left:auto}.app-main{margin:12px auto;padding:0 10px 32px}.card{padding:13px}.stats{grid-template-columns:repeat(2,1fr)}.toolbar .field{flex-basis:100%}.narrow{margin:16px auto}}.term-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:10px}.term-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:12px}.term-head{display:flex;align-items:center;gap:6px;font-size:14px}.term-badge{font-size:11px;padding:1px 6px;border-radius:999px;border:1px solid var(--color-primary);color:var(--color-primary-dark)}.term-range{margin-top:2px;font-size:12px;color:var(--color-muted)}.term-total{display:flex;align-items:baseline;gap:8px;margin:10px 0 6px}.term-total-value{font-size:22px;font-weight:700}.term-total-label{font-size:12px;color:var(--color-muted)}.term-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 4px}.term-tab{border:1px solid var(--color-border);background:var(--color-surface);border-radius:999px;padding:5px 12px;font-size:13px;cursor:pointer}.term-tab.active{border-color:var(--color-primary);color:var(--color-primary-dark);font-weight:600}
