@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Noto+Sans+SC:wght@400;500;600;700&display=swap');
:root{--ink:#1e2a3a;--muted:#718096;--line:#e5eaf1;--paper:#fff;--ground:#f6f8fb;--blue:#2563eb;--navy:#17233a;--teal:#11998e;--red:#dd4c4c;--amber:#e69a24;--yellow:#d9a21b;--green:#2da56a;--radius:12px}.recognition-intro{background:#eef5ff;border:1px solid #cfe0ff;border-radius:10px;padding:12px 14px;margin-bottom:12px;display:flex;flex-direction:column;gap:3px}.recognition-intro strong{color:#1d4ed8}.recognition-intro span{font-size:12px;color:#50637d}.smart-upload{display:flex;align-items:center;gap:12px;border:1.5px dashed #8db3f7;background:#f8fbff;border-radius:12px;padding:14px;margin:10px 0;cursor:pointer;outline:none;transition:.18s}.smart-upload:hover,.smart-upload:focus{border-color:#2563eb;background:#eef5ff}.upload-mark{width:34px;height:34px;border-radius:10px;background:#dceaff;color:#2563eb;display:grid;place-items:center;font-size:23px}.smart-upload p{margin:2px 0;color:#5f7188;font-size:12px}.smart-upload small{color:#8a99ac;font-size:11px}.upload-status{margin-left:auto;white-space:nowrap;font-size:12px;color:#718096}.upload-status.loading{color:#b7791f}.upload-status.done{color:#16855b}.upload-status.error{color:#c24141}*{box-sizing:border-box}body{margin:0;background:var(--ground);color:var(--ink);font:14px/1.5 'Noto Sans SC',sans-serif}.shell{display:flex;min-height:100vh}.sidebar{width:244px;background:var(--navy);color:#c4cedf;padding:24px 14px 16px;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column}.brand{color:white;font-size:17px;font-weight:700;letter-spacing:.2px;display:flex;align-items:center;gap:10px;padding:0 10px}.brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#3974ef;font-size:16px}.workspace{font:12px 'DM Mono',monospace;color:#72809a;margin:18px 10px 27px}.nav-item{border:0;background:transparent;color:#b9c4d6;width:100%;text-align:left;padding:11px 12px;border-radius:8px;font:500 14px 'Noto Sans SC',sans-serif;cursor:pointer;transition:.18s;display:flex;align-items:center;gap:11px;margin:2px 0}.nav-item:hover{background:#24334f;color:#fff}.nav-item.active{background:#2b68e8;color:#fff;box-shadow:0 8px 18px #0f1d36}.nav-item>span{width:14px;text-align:center;font-size:16px}.nav-item i{font:11px 'DM Mono';font-style:normal;background:#e75050;color:white;border-radius:9px;padding:1px 6px;margin-left:auto}.nav-label{font:11px 'DM Mono',monospace;color:#71809c;margin:24px 10px 7px;letter-spacing:.8px}.nav-bottom{margin-top:auto;border-top:1px solid #273651;padding-top:14px}main{margin-left:244px;width:calc(100% - 244px);padding:0 38px 48px}header{height:98px;display:flex;justify-content:space-between;align-items:center}header p{font-size:12px;color:var(--muted);margin:0 0 2px}h1{margin:0;font-size:21px;letter-spacing:-.4px}h2{font-size:21px;margin:0 0 5px;letter-spacing:-.4px}h3{font-size:15px;margin:0}.head-actions{display:flex;align-items:center;gap:10px}.head-actions small{display:block;color:var(--muted);font-size:11px}.bell{position:relative;border:1px solid var(--line);background:#fff;border-radius:9px;font-size:18px;width:37px;height:37px;color:#57657a}.bell b{position:absolute;background:#e75050;color:white;border-radius:10px;right:-5px;top:-6px;font:10px 'DM Mono';padding:1px 5px}.avatar{width:37px;height:37px;border-radius:50%;display:grid;place-items:center;background:#e1eafb;color:#2861d8;font-weight:700;margin-left:8px}.page{display:none;animation:lift .22s ease}.page.active{display:block}@keyframes lift{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.hero{display:flex;justify-content:space-between;align-items:center;background:#eaf0ff;border:1px solid #d8e4ff;border-radius:var(--radius);padding:24px 28px;margin-bottom:20px}.eyebrow{font:12px 'DM Mono',monospace;color:#4773cc}.hero h2{font-size:20px;margin:4px 0}.hero p,.section-top p{margin:0;color:var(--muted);font-size:13px}.primary,.secondary,.quiet,.link{border:0;font:500 13px 'Noto Sans SC';cursor:pointer;border-radius:8px;padding:9px 15px}.primary{background:var(--blue);color:white;box-shadow:0 5px 11px #2563eb31}.primary:hover{background:#1655d9}.secondary,.quiet{background:#fff;border:1px solid var(--line);color:#4d5d73}.quiet{padding:7px 11px;font-size:12px}.link{background:none;color:#2861d8;padding:0}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.stats article,.panel,.table-panel,.filter,.setting-card,.todo-board{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius)}.stats article{padding:19px;display:flex;gap:13px;min-height:128px}.stat-icon{width:39px;height:39px;border-radius:10px;display:grid;place-items:center;font-size:19px;flex:none}.stat-icon.blue{color:#2a65db;background:#e9f0ff}.stat-icon.teal{color:#0c9184;background:#e2f7f3}.stat-icon.amber{color:#d98518;background:#fff2dc}.stat-icon.red{color:#d34d4d;background:#feebeb}.stats small{color:var(--muted);font-size:12px}.stats strong{display:block;font:500 22px 'DM Mono',monospace;margin:2px 0}.stats em{font:12px 'Noto Sans SC';font-style:normal;color:var(--muted)}.stats p{margin:3px 0 0;color:var(--muted);font-size:11px}.green{color:var(--green)}.red{color:var(--red)}.grid.two{display:grid;grid-template-columns:1.15fr .85fr;gap:20px}.bottom-grid{margin-top:20px}.panel{padding:20px}.panel-head{display:flex;align-items:start;justify-content:space-between;margin-bottom:15px}.panel-head p{font-size:11px;color:var(--muted);margin:3px 0 0}.line-chart{position:relative;height:235px;padding-left:39px}.line-chart svg{height:190px;width:100%;overflow:visible}.area{fill:#dfeafe}.curve{fill:none;stroke:#3673ec;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.ylabels{position:absolute;left:0;height:189px;display:flex;flex-direction:column;justify-content:space-between;font:10px 'DM Mono';color:#91a0b6}.xlabels{display:flex;justify-content:space-between;font:10px 'DM Mono';color:#91a0b6;padding:2px 0}.quota-list>div{display:grid;grid-template-columns:25px 1fr 44px;align-items:center;column-gap:8px;margin:14px 0 17px}.rank{font:12px 'DM Mono';color:#91a0b6}.quota-name strong{font-size:12px;font-weight:500;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quota-name small{color:var(--muted);font:10px 'DM Mono'}.pct{text-align:right;font:11px 'DM Mono'}.pct.danger{color:var(--red)}.pct.warning{color:var(--amber)}.pct.notice{color:#b79320}.pct.safe{color:var(--green)}.meter{grid-column:2/4;height:5px;background:#f5dfdf;border-radius:8px;margin-top:7px;overflow:hidden}.meter i{display:block;height:100%;background:var(--red);border-radius:8px}.meter.amber{background:#fff0d6}.meter.amber i{background:var(--amber)}.meter.yellow{background:#faf1cf}.meter.yellow i{background:#d7af28}.meter.greenbar{background:#e3f3ea}.meter.greenbar i{background:var(--green)}.platforms{display:flex;align-items:center;gap:29px;padding:7px 0}.donut{width:137px;height:137px;border-radius:50%;background:conic-gradient(#2d6ee7 0 42%,#12a092 42% 67%,#ee9e2d 67% 82%,#283c62 82%);display:grid;place-items:center;position:relative}.donut:after{content:'';position:absolute;width:89px;height:89px;background:#fff;border-radius:50%}.donut strong{z-index:1;text-align:center;font:500 22px 'DM Mono'}.donut small{display:block;font:11px 'Noto Sans SC';color:var(--muted);font-weight:400}.legend{flex:1}.legend p{font-size:12px;margin:9px 0;display:flex;align-items:center;gap:7px}.legend b{margin-left:auto;font:12px 'DM Mono'}.dot{width:7px;height:7px;border-radius:50%;display:inline-block}.dot.blue{background:#2d6ee7}.dot.teal{background:#12a092}.dot.orange{background:#ee9e2d}.dot.navy{background:#283c62}.todo-row{display:flex;align-items:flex-start;gap:11px;padding:12px 0;border-bottom:1px solid #edf0f4}.todo-row:last-child{border:0}.level{width:21px;height:21px;flex:none;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700}.critical{background:#ffebeb;color:var(--red)}.warn{background:#fff1dc;color:#d37e16}.info{background:#e9f0ff;color:#2c67dd}.todo-row strong{font-size:12px;font-weight:500}.todo-row p{margin:2px 0 0;font-size:11px;color:var(--muted)}.todo-row time{margin-left:auto;color:#94a1b4;font:10px 'DM Mono';white-space:nowrap}.section-top{display:flex;justify-content:space-between;align-items:end;margin:8px 0 19px}.filter{padding:13px;display:flex;gap:10px;margin-bottom:15px}.table-toolbar{display:flex;align-items:center;gap:10px;margin:-5px 0 12px;color:#718096;font-size:12px}.export-link{text-decoration:none;display:inline-block}.setting-actions{margin-left:auto;display:flex;gap:8px;align-items:center}.setting-actions .secondary{padding:7px 10px;font-size:12px}input,select,textarea{border:1px solid #dde4ed;border-radius:7px;padding:9px 10px;color:#415066;font:13px 'Noto Sans SC';background:#fff;outline:none}input:focus,select:focus,textarea:focus{border-color:#6e9af0;box-shadow:0 0 0 3px #2563eb12}.filter input{min-width:270px;flex:1}.filter select{min-width:120px}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;background:#f8fafd;color:#7a889c;font-size:11px;font-weight:500;padding:12px 15px}td{padding:15px;border-top:1px solid #edf0f4;color:#46566d}tr:hover td{background:#fbfcfe}.entity strong{display:block;font-size:13px;font-weight:500;color:#27364a}.entity small{color:#8b98aa;font:10px 'DM Mono'}.state,.tag{display:inline-block;padding:3px 8px;border-radius:5px;font-size:11px}.state.normal,.tag.success{background:#e6f6ed;color:#218754}.state.warning{background:#fff3dd;color:#d3881c}.tag.blue-tag{background:#e8f0ff;color:#2864dd}.tag.neutral{background:#edf1f5;color:#718096}.money{font:500 12px 'DM Mono';color:#27364a}.row-actions{white-space:nowrap}.danger-link{color:#d45252;margin-left:8px}.quota-cell{display:flex;align-items:center;gap:7px}.quota-cell span{font:11px 'DM Mono';color:#d45252}.mini-meter{width:54px;height:4px;background:#f6dddd;border-radius:3px;overflow:hidden}.mini-meter i{display:block;height:100%;background:#dc5353}.table-foot{border-top:1px solid #edf0f4;padding:13px 15px;color:#8895a7;font-size:12px}.table-foot span{float:right;color:#506178}.empty-cell{text-align:center!important;color:#8a98aa!important;padding:30px!important}.empty-state{min-height:280px;border:1px dashed #cfd9e8;background:#fff;border-radius:var(--radius);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted)}.empty-state b{font-size:35px;color:#7ca6ed;margin-bottom:9px}.empty-state h3{color:#526176}.empty-state p{font-size:12px;margin:6px 0}.todo-board{padding:6px 20px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.setting-card{padding:20px;display:flex;align-items:center;gap:13px}.setting-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:10px;background:#edf3ff;color:#3268d9;font-size:19px}.setting-card h3{font-size:14px}.setting-card p,.setting-card small{font-size:11px;color:var(--muted);margin:3px 0}.setting-card button{margin-left:auto;white-space:nowrap}.file-label{margin-left:auto;white-space:nowrap}.ocr-upload{position:relative;align-items:flex-start}.ocr-result{grid-column:2/5;width:100%;font-size:11px;color:#64748b;line-height:1.7}.ocr-result strong{color:#315ea9}.ocr-result p{margin:2px 0}.configured{color:#24875b!important}.modal-wrap{display:none;position:fixed;inset:0;background:#18233666;align-items:center;justify-content:center;padding:20px;z-index:5}.modal-wrap.show{display:flex}.modal{width:600px;max-width:calc(100vw - 40px);max-height:calc(100vh - 40px);background:#fff;border-radius:14px;padding:25px;position:relative;display:flex;flex-direction:column;overflow:hidden;animation:pop .18s ease}.modal h2{font-size:18px}.modal>p{font-size:12px;color:var(--muted);margin:5px 0 20px}.close{position:absolute;right:18px;top:14px;border:0;background:none;font-size:26px;color:#8c99aa;cursor:pointer}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.modal label{display:block;font-size:12px;color:#5a6980;margin-bottom:13px}.modal input,.modal select,.modal textarea{width:100%;margin-top:5px}.modal textarea{height:70px;resize:none}.modal-foot{border-top:1px solid #edf0f4;padding-top:16px;display:flex;justify-content:flex-end;gap:10px}.toast{position:fixed;bottom:28px;right:32px;background:#1d2c43;color:white;padding:11px 16px;border-radius:8px;font-size:12px;transform:translateY(80px);opacity:0;transition:.2s}.toast.show{transform:translateY(0);opacity:1}@keyframes pop{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@media(max-width:1100px){.stats{grid-template-columns:repeat(2,1fr)}.grid.two{grid-template-columns:1fr}.sidebar{width:210px}main{margin-left:210px;width:calc(100% - 210px);padding:0 22px}}@media(max-width:740px){.sidebar{display:none}main{margin:0;width:100%;padding:0 16px}.stats{grid-template-columns:1fr}.hero{align-items:flex-start;gap:12px;flex-direction:column}.filter{flex-wrap:wrap}.filter input{min-width:100%}.settings-grid{grid-template-columns:1fr}.table-panel{overflow:auto}}
.login-wrap{position:fixed;inset:0;background:radial-gradient(circle at 18% 20%,#2d61be 0,#17233a 35%,#0e1626 100%);z-index:30;display:none;align-items:center;justify-content:center;padding:24px}.login-wrap.show{display:flex}.login-wrap:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 48%,rgba(53,116,239,.18) 48.2%,transparent 49%);opacity:.6}.login-card{position:relative;width:min(420px,100%);padding:40px;background:rgba(255,255,255,.97);border:1px solid rgba(255,255,255,.55);border-radius:20px;box-shadow:0 30px 80px rgba(0,0,0,.32);display:grid;gap:14px}.login-mark{height:48px;width:48px;display:grid;place-items:center;background:var(--navy);color:white;border-radius:14px;font-size:23px;font-weight:700}.login-card h2{margin:0;font-size:24px;letter-spacing:.2px}.login-card p{margin:0;color:var(--muted)}.login-card label{display:grid;gap:6px;font-weight:600;color:#44546a}.login-card input{padding:11px 12px;border:1px solid #d8e0eb;border-radius:9px;font:14px 'Noto Sans SC',sans-serif}.login-card small{color:var(--red);min-height:18px}.app-locked{filter:blur(3px);pointer-events:none;user-select:none}.scope-picker{margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fafcff}.scope-picker strong{display:block;margin-bottom:8px}.scope-picker div{max-height:130px;overflow:auto;display:grid;gap:7px}.scope-picker label{font-size:13px;color:#4b5b70}.member-list{margin-top:18px;max-height:260px;overflow:auto}.head-actions .link{margin-left:4px}.modal-wrap#userModal{z-index:24}.modal-wrap#userModal .modal{max-width:720px}.eyebrow{font:12px 'DM Mono',monospace;letter-spacing:.08em;text-transform:uppercase}.button-group{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.permission-toggle{display:block;margin:8px 0 14px;padding:10px 12px;border:1px solid #f2cf8c;border-radius:9px;background:#fff9ed;color:#755113;font-size:13px}.form-note{margin:12px 0 0;color:var(--muted);font-size:12px}.import-preview{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fafcff;color:#526174;max-height:240px;overflow:auto}.import-preview strong{display:block;color:var(--ink);margin-bottom:7px}.import-preview p{margin:4px 0;padding:5px 7px;border-radius:6px;font-size:12px}.import-preview .ok{background:#edf9f3;color:#19734d}.import-preview .bad{background:#fff2f2;color:#b53737}@media(max-width:760px){.button-group{width:100%}.button-group>*{flex:1;text-align:center;justify-content:center}}.detail-section{margin:18px 0 6px}.detail-section h4{margin:0 0 9px;font-size:13px;color:#3a4a60}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px 16px}.detail-grid>div{display:flex;flex-direction:column;gap:2px}.detail-grid span{font-size:11px;color:#8a98aa}.detail-grid b{font-size:13px;font-weight:500;color:#27364a}.detail-list{display:flex;flex-direction:column;gap:9px}.detail-sub{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fafcff}.detail-sub strong{font-size:13px;font-weight:500}.detail-sub small{display:block;color:#8a98aa;font-size:11px;margin-top:2px}.detail-sub .money{font-size:12px}.detail-imgs{display:flex;gap:10px;flex-wrap:wrap}.detail-imgs a{font-size:12px}.subject-history{margin:10px 0 4px;padding:12px;border:1px dashed #cdd8e8;border-radius:10px;background:#fafcff}.subject-history h4{margin:0 0 8px;font-size:12px;color:#5a6980}.history-row{padding:8px 0;border-bottom:1px solid #edf0f4}.history-row:last-child{border:0}.history-row strong{font-size:12px;font-weight:500}.history-row small{display:block;color:#8a98aa;font-size:11px;margin-top:2px}.gmv-filters{margin:0 0 14px}.gmv-filters .secondary.active{background:var(--blue);color:#fff;border-color:var(--blue)}.chart-empty{padding:34px 10px;text-align:center;color:#8a98aa;font-size:12px}.trend-svg{width:100%;height:190px;overflow:visible}.trend-svg .area{fill:#dfeafe}.trend-svg .curve{fill:none;stroke:#3673ec;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.trend-svg .dot{fill:#3673ec}.trend-svg .ylabel,.trend-svg .xlabel{fill:#91a0b6;font:10px 'DM Mono',monospace}.dot{background:#9bb0cc}.modal-wrap#detailModal .modal{max-width:680px}.detail-note{margin:10px 0 0;padding:9px 12px;border-radius:8px;font-size:12.5px;line-height:1.5}.detail-note.warn{background:#fff4e5;color:#8a4b00;border:1px solid #ffd9a0}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.lic-photo{width:64px;text-align:center}
.lic-photo-link{display:inline-block;line-height:0}
.lic-photo img{width:46px;height:46px;object-fit:cover;border-radius:8px;border:1px solid var(--line);cursor:zoom-in;transition:.15s}
.lic-photo img:hover{transform:scale(1.06);border-color:#2563eb}
.upload-preview{display:none;max-width:130px;max-height:96px;border-radius:8px;border:1px solid #bcd3ff;margin-top:10px;cursor:zoom-in}
.upload-preview.show{display:block}
.hidden{display:none!important}
.field-hint{display:block;margin-top:4px;font-size:11px;color:#50637d}
.long-term{display:flex;align-items:center;gap:7px;margin:2px 2px 4px;font-size:13px;color:#50637d;cursor:pointer;user-select:none}
.long-term input{width:auto}
.photo-block{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.license-photo{max-width:240px;max-height:300px;border-radius:10px;border:1px solid var(--line);cursor:zoom-in;background:#f4f7fb}
.photo-actions{display:flex;gap:16px;flex-wrap:wrap}
.photo-actions .link{font-size:13px}
.modal-wrap#photoLightbox{z-index:40;background:rgba(8,14,24,.82)}
.modal-wrap#detailModal{z-index:10}
.modal-wrap#modal{z-index:30}
.lightbox-inner{position:relative;max-width:64vw;max-height:64vh;display:grid;place-items:center;padding:24px}
.lightbox-inner img{max-width:60vw;max-height:60vh;border-radius:10px;box-shadow:0 24px 70px rgba(0,0,0,.55)}
.lightbox-inner .close{position:absolute;top:-14px;right:-14px;width:34px;height:34px;padding:0;border:2px solid rgba(255,255,255,.8);border-radius:50%;display:grid;place-items:center;background:rgba(23,35,58,.88);color:#fff;font-size:24px;line-height:1;box-shadow:0 4px 16px rgba(0,0,0,.32);transition:transform .15s,background .15s}
.lightbox-inner .close:hover{background:#d33e4d;transform:scale(1.08)}
.detail-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px;padding-bottom:16px;border-bottom:1px dashed var(--line)}
.detail-actions .sm{font-size:13px;padding:8px 14px;border-radius:8px}
.person-extra{margin:14px 0 4px;border:1px solid var(--line);border-radius:10px;background:#f8fafd;overflow:hidden}
.person-extra>summary{cursor:pointer;padding:10px 14px;font-size:13px;font-weight:500;color:#2f6df0;list-style:none;user-select:none}
.person-extra>summary::-webkit-details-marker{display:none}
.person-extra>summary:before{content:"▸ ";color:#2f6df0}
.person-extra[open]>summary:before{content:"▾ "}
.person-extra .smart-upload{margin:12px 14px 4px}
.copy-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.copy-row b{word-break:break-all}
.copy-row .copy-btn{font-size:11px;color:#2563eb;white-space:nowrap}
.copy-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.copy-actions .copy-btn{font-size:11px;color:#2563eb;white-space:nowrap}
.person-extra .form-grid{padding:4px 14px 14px}
.form-section{margin:16px 0 4px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fbfdff}
.form-section-title{margin:0 0 12px;font-size:13px;font-weight:600;color:#2f6df0;display:flex;align-items:center;gap:7px}
.form-section-title:before{content:"";width:4px;height:14px;border-radius:3px;background:#2f6df0;display:inline-block}
.platform-field{margin:2px 0 10px}
.platform-field>label{display:block;font-size:12px;color:#5a6980;margin-bottom:7px}
.platform-cards{display:flex;flex-wrap:wrap;gap:8px}
.platform-card{border:1px solid #d7e0ee;background:#fff;border-radius:9px;padding:8px 13px;font:500 13px 'Noto Sans SC';color:#46566d;cursor:pointer;transition:.16s;user-select:none}
.platform-card:hover{border-color:#8db3f7;color:#1d4ed8}
.platform-card.selected{background:#2563eb;border-color:#2563eb;color:#fff;box-shadow:0 5px 11px #2563eb31}
.shop-tabs{display:flex;gap:6px;margin:6px 0 14px;border-bottom:1px solid var(--line)}
.shop-tab{border:0;background:transparent;color:#718096;font:500 13px 'Noto Sans SC';padding:9px 14px;cursor:pointer;border-radius:8px 8px 0 0;position:relative}
.shop-tab:hover{color:#1d4ed8}
.shop-tab.active{color:#2563eb;background:#eef5ff}
.shop-tab.active:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;background:#2563eb;border-radius:2px}
.shop-panel{margin-top:4px}
.shop-panel.hidden{display:none}
.ocr-text{width:100%;min-height:92px;margin:10px 0;border:1px solid #dde4ed;border-radius:8px;padding:10px;font:12.5px 'DM Mono',monospace;color:#415066;resize:vertical}
.modal form{display:flex;flex-direction:column;flex:1;overflow:hidden;min-height:0}.modal #formFields{overflow-y:auto;flex:1;min-height:0;padding-right:6px}

.detail-grid .full{grid-column:1/-1}
.idcard-thumb-grid{display:flex;flex-wrap:wrap;gap:16px}
.idcard-thumb{width:180px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.idcard-thumb-title{padding:8px 10px;font-size:12px;color:#50637d;background:#f4f7fb;border-bottom:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.idcard-thumb-img{display:block;height:120px;overflow:hidden;background:#f4f7fb;cursor:zoom-in}
.idcard-thumb-img img{width:100%;height:100%;object-fit:cover;display:block}
.idcard-thumb-actions{display:flex;gap:12px;justify-content:center;padding:8px 10px}
.idcard-thumb-actions .link{font-size:12px}
.row-index{color:#8290a5;font:12px 'DM Mono',monospace}.entity-link,.person-link,.count-link{border:0;background:transparent;padding:0;text-align:left;color:inherit;font:inherit;cursor:pointer}.entity-link strong,.person-link,.count-link{color:#244a83}.entity-link:hover strong,.person-link:hover,.count-link:hover{text-decoration:underline;color:#2563eb}.updated-at{white-space:nowrap;color:#718096;font:12px 'DM Mono',monospace}.quota-cell{min-width:125px}.quota-top{display:flex;align-items:baseline;justify-content:space-between;gap:6px;margin-bottom:5px}.quota-top b{font:600 13px 'DM Mono',monospace;color:#16855b}.quota-top small{font-size:10px;color:#8090a6;white-space:nowrap}.quota-cell.warning .quota-top b{color:#d98613}.quota-cell.warning .mini-meter i{background:#e69a24}.quota-cell.normal .mini-meter i{background:#2da56a}.action-btn{border:1px solid transparent;border-radius:7px;padding:6px 9px;font:500 12px 'Noto Sans SC';cursor:pointer;margin:0 2px}.action-btn.detail{color:#1d4ed8;background:#eef5ff;border-color:#d7e6ff}.action-btn.edit{color:#9a5b00;background:#fff8e8;border-color:#f6dba4}.action-btn.delete{color:#bf3030;background:#fff1f1;border-color:#f4c7c7}.attachment-picker{margin-top:16px;padding:12px 14px;border:1px dashed #a9c4f4;border-radius:10px;background:#f8fbff}.attachment-picker strong{display:block;color:#2457a7}.attachment-picker small{display:block;color:#6b7d94;font-size:12px;margin:3px 0 9px}.attachment-picker input{width:100%;font-size:12px}.attachment-preview{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.attachment-preview span{padding:3px 7px;background:#e7f0ff;border-radius:5px;color:#315b9e;font-size:11px}.detail-sub-stack{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:10px;align-items:start}.detail-attachments{grid-column:1/-1}.attachment-card-grid{display:flex;flex-wrap:wrap;gap:10px;padding-top:6px}.attachment-card{width:130px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}.attachment-card>a{display:block;height:82px;background:#f3f6fa}.attachment-card img{width:100%;height:100%;object-fit:cover;display:block}.attachment-card small{display:block;padding:5px 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attachment-card div{display:flex;gap:8px;padding:0 7px 7px}.attachment-card .link{font-size:11px}.identity-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.identity-row b{word-break:break-all}.smart-upload.attachment-upload,.smart-upload.import-upload{position:relative;align-items:flex-start;flex-wrap:wrap}.attachment-upload .attachment-preview,.import-upload .import-file-name{flex-basis:100%;width:100%;margin:8px 0 0}.image-preview-grid{display:flex;flex-wrap:wrap;gap:10px}.image-preview-grid figure{position:relative;width:112px;margin:0;border:1px solid #cddcf0;border-radius:9px;overflow:hidden;background:#fff}.image-preview-grid img{display:block;width:100%;height:78px;object-fit:cover;background:#f1f5fa}.image-preview-grid figcaption{display:block;padding:4px 6px;color:#536479;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.image-preview-grid button{margin:0 6px 6px;font-size:11px}.import-file-name{padding:7px 9px;border-radius:7px;background:#e8f1ff;color:#315b9e;font-size:12px;word-break:break-all}.smart-upload.import-upload .upload-mark{background:#e7f5ef;color:#16855b}.smart-upload.import-upload:hover{border-color:#38a169;background:#f2fbf6}

/* ============ v2 体验升级（2026-07-21）============ */

/* P1-3 操作按钮：图标 + hover + 热区 */
.action-btn{min-height:30px;min-width:44px;padding:6px 10px;transition:background .15s,border-color .15s,transform .12s,box-shadow .15s;display:inline-flex;align-items:center;gap:5px;line-height:1}
.action-btn svg{width:14px;height:14px;flex:none}
.action-btn.detail:hover,.action-btn.edit:hover,.action-btn.delete:hover{transform:translateY(-1px);box-shadow:0 4px 9px rgba(20,40,80,.12)}
.action-btn.detail:hover{background:#dcebff;border-color:#bcd4ff}
.action-btn.edit:hover{background:#fff0cf;border-color:#eec98a}
.action-btn.delete:hover{background:#ffe2e2;border-color:#eeb0b0}
.row-actions .action-btn{margin:0 1px}
#shopRows .action-btn{margin:0 2px}

/* P1-4 进度条重设计：加宽加高 + 三档颜色 + 动画 */
.quota-cell{min-width:140px}
.quota-cell .mini-meter{width:100px;height:8px;border-radius:5px;transition:width .4s ease}
.quota-cell .mini-meter i{transition:width .5s ease;border-radius:5px}
.quota-cell.normal .mini-meter{background:#e3f3ea}
.quota-cell.normal .mini-meter i{background:#2da56a}
.quota-cell.warning .mini-meter{background:#fff0d6}
.quota-cell.warning .mini-meter i{background:#e69a24}
.quota-cell.danger .mini-meter{background:#fbdcdc}
.quota-cell.danger .mini-meter i{background:#dc5353}
.quota-cell.danger .quota-top b{color:#dc5353}
.quota-cell .mini-meter-wrap{position:relative;display:inline-block}
.quota-cell .mini-meter-wrap:hover .mini-meter-tip{opacity:1;transform:translateX(-50%) translateY(-4px)}
.mini-meter-tip{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);background:#1d2c43;color:#fff;padding:4px 8px;border-radius:5px;font:11px 'DM Mono';white-space:nowrap;opacity:0;pointer-events:none;transition:.18s;z-index:6}
.mini-meter-tip:after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:4px solid transparent;border-top-color:#1d2c43}

/* P1-2 保存按钮 loading 态 + form-banner 反馈 */
#saveButton.loading{position:relative;color:transparent!important;pointer-events:none}
#saveButton.loading:after{content:"";position:absolute;left:50%;top:50%;width:15px;height:15px;margin:-8px 0 0 -8px;border:2.5px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;animation:btn-spin .6s linear infinite}
@keyframes btn-spin{to{transform:rotate(360deg)}}
.form-banner{margin:0 0 14px;padding:11px 14px;border-radius:9px;font-size:13px;display:flex;align-items:center;gap:9px;animation:lift .22s ease}
.form-banner.success{background:#edf9f3;color:#19734d;border:1px solid #bce8d3}
.form-banner.error{background:#fff2f2;color:#b53737;border:1px solid #f4c7c7}
.form-banner:before{font-size:16px}
.form-banner.success:before{content:"✓"}
.form-banner.error:before{content:"✕"}

/* P1-5 Excel 导入步骤引导 */
.step-guide{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 14px;padding:12px 14px;background:#f8fbff;border:1px solid #d8e4ff;border-radius:10px}
.step-guide .step{display:flex;align-items:center;gap:7px;font-size:12px;color:#50637d}
.step-guide .step b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#cfe0ff;color:#1d4ed8;font:600 11px 'DM Mono'}
.step-guide .step.done b{background:#2da56a;color:#fff}
.step-guide .step.active b{background:#2563eb;color:#fff;box-shadow:0 0 0 3px #2563eb26}
.step-guide .step-arrow{color:#9bb0cc;align-self:center}
.btn-download-template{display:inline-flex;align-items:center;gap:7px;background:var(--blue);color:#fff;border:0;border-radius:8px;padding:9px 15px;font:500 13px 'Noto Sans SC';cursor:pointer;text-decoration:none;box-shadow:0 5px 11px #2563eb31;transition:.15s;margin:4px 0 10px}
.btn-download-template:hover{background:#1655d9}
.btn-download-template svg{width:15px;height:15px}
#saveButton.disabled-import{background:#b6c2d4!important;box-shadow:none!important;cursor:not-allowed}

/* P1-6 法人弹窗叠加层 #personModal */
.modal-wrap#personModal{z-index:35}
.modal-wrap#personModal .modal{max-width:680px;animation:pop .18s ease}

/* P2-7 列表卡片视图 + 筛选 */
.list-toolbar{display:flex;align-items:center;gap:10px;margin:0 0 12px;flex-wrap:wrap}
.view-toggle{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}
.view-toggle button{border:0;background:transparent;padding:7px 13px;font:500 12px 'Noto Sans SC';color:#718096;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:.15s}
.view-toggle button svg{width:14px;height:14px}
.view-toggle button.active{background:var(--blue);color:#fff}
.list-filter{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-left:auto}
.list-filter select,.list-filter input{min-width:120px;padding:7px 10px;font-size:12px}
.list-filter input{min-width:200px}
.license-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px}
.license-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:15px;display:flex;flex-direction:column;gap:11px;transition:.15s;position:relative}
.license-card:hover{border-color:#9bbdf5;box-shadow:0 8px 20px rgba(30,60,120,.08);transform:translateY(-2px)}
.license-card-head{display:flex;align-items:flex-start;gap:11px}
.license-card-photo{width:54px;height:54px;border-radius:9px;object-fit:cover;border:1px solid var(--line);cursor:zoom-in;flex:none}
.license-card-title{flex:1;min-width:0}
.license-card-title strong{display:block;font-size:13.5px;font-weight:500;color:#27364a;cursor:pointer}
.license-card-title strong:hover{color:#2563eb;text-decoration:underline}
.license-card-title small{display:block;color:#8b98aa;font:10px 'DM Mono';margin-top:2px}
.license-card-badges{display:flex;gap:6px;flex-wrap:wrap}
.badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:5px;font-size:11px;font-weight:500}
.badge.normal{background:#e6f6ed;color:#218754}
.badge.warning{background:#fff3dd;color:#d3881c}
.badge.danger{background:#ffe2e2;color:#c24141}
.badge.neutral{background:#edf1f5;color:#718096}
.badge.blue{background:#e8f0ff;color:#2864dd}
.license-card-person{display:flex;align-items:center;gap:7px;font-size:12px;color:#50637d}
.license-card-person b{color:#244a83;cursor:pointer}
.license-card-person b:hover{text-decoration:underline;color:#2563eb}
.license-card-quota{display:flex;flex-direction:column;gap:4px}
.license-card-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #edf0f4;padding-top:10px;margin-top:auto}
.license-card-foot small{color:#8a98aa;font:10px 'DM Mono'}
.license-card-actions{display:flex;gap:4px}

/* P2-8 错误字段高亮 */
.input-error{border-color:#dc5353!important;box-shadow:0 0 0 3px #dc535322!important;animation:shake .3s}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}

/* P2-9 店铺表单平台卡片整行 */
#shopManualPanel .platform-field{grid-column:1/-1}
#shopManualPanel .platform-cards{margin-top:4px}

/* 状态徽章用于表格（覆盖原 .state） */
td .state.normal{background:#e6f6ed;color:#218754}
td .state.warning{background:#fff3dd;color:#d3881c}
td .state.danger{background:#ffe2e2;color:#c24141}
.state.danger{background:#ffe2e2;color:#c24141}

/* ============ 批次A 新组件样式（2026-07-21）============ */

/* 主体变更时间轴 */
.subject-timeline{display:flex;flex-direction:column;gap:0;margin:8px 0}
.subject-timeline-item{padding:12px 14px;border-radius:10px;margin-bottom:8px;position:relative}
.subject-timeline-item.current{background:#edf9f3;border:1.5px solid #bce8d3;border-left:4px solid #2da56a}
.subject-timeline-item.history{background:#f5f7fa;border:1px solid #e5eaf1;border-left:4px solid #c4cdd9;opacity:.85}
.subject-card-row{display:flex;justify-content:space-between;align-items:center;gap:10px}
.subject-card-row b{font-size:14px;font-weight:600;color:#27364a}
.subject-timeline-item.current .subject-card-row b{color:#19734d}
.subject-card-row small{font:11px 'DM Mono';color:#8a98aa;white-space:nowrap}
.subject-card-meta{font-size:12px;color:#6b7d94;margin-top:4px}
.change-alert{color:#d97706;font-weight:500}
.subject-timeline-item:not(:last-child):after{content:"";position:absolute;left:24px;bottom:-8px;width:2px;height:8px;background:#c4cdd9}

/* 审计日志表格 */
.audit-detail{max-width:280px;font:11px 'DM Mono';color:#6b7d94;word-break:break-all;white-space:normal}
#auditRows td{font-size:12px;vertical-align:top}

/* 主体状态徽章（店铺列表） */
.badge.danger{background:#ffe2e2;color:#c24141}
.badge.warning{background:#fff3dd;color:#d3881c}
.badge.blue{background:#e8f0ff;color:#2864dd}

/* 微信小店字段区 */
.wechat-shop-section .form-note{color:#6b7d94}
.wechat-shop-section.hidden{display:none}

/* 法人列表复制按钮 */
#personRows .copy-btn{font-size:11px;padding:0 4px}

/* ============ flatpickr 日期选择器主题定制 ============ */
.flatpickr-calendar{border-radius:12px;box-shadow:0 12px 32px rgba(20,40,80,.18);border:1px solid #e5eaf1;font-family:'Noto Sans SC',sans-serif;width:312px}
.flatpickr-calendar.arrowTop:before{border-bottom-color:#fff}
.flatpickr-calendar.arrowTop:after{display:none}
.flatpickr-calendar.arrowBottom:before{border-top-color:#fff}
.flatpickr-months{padding:8px 6px 0}
.flatpickr-months .flatpickr-month,.flatpickr-current-month{background:transparent}
.flatpickr-current-month .flatpickr-monthDropdown-months{font-weight:600;color:#1e2a3a}
.flatpickr-current-month input.cur-year{font-weight:600;color:#1e2a3a}
.flatpickr-current-month span.cur-month{font-weight:600;color:#1e2a3a;font-size:14px}
.flatpickr-weekday{color:#7a889c;font-size:11px;font-weight:500}
.flatpickr-day{border-radius:7px;font-size:12.5px;height:34px;line-height:34px;color:#46566d;border:0;margin:1px}
.flatpickr-day:hover,.flatpickr-day:focus{background:#eef5ff;border-color:#eef5ff;color:#1d4ed8}
.flatpickr-day.selected,.flatpickr-day.selected:hover{background:var(--blue);border-color:var(--blue);color:#fff}
.flatpickr-day.today{border-color:#2563eb;font-weight:600;color:#2563eb}
.flatpickr-day.today:hover{background:#eef5ff;border-color:#2563eb}
.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay{color:#c4cdd9}
.flatpickr-day.inRange{background:#eef5ff;border-color:#eef5ff;box-shadow:-5px 0 0 #eef5ff,5px 0 0 #eef5ff}
.flatpickr-day.startRange,.flatpickr-day.endRange{background:var(--blue);border-color:var(--blue)}
.flatpickr-days{padding:0 8px 8px}
.flatpickr-innerContainer{border:0}
.flatpickr-rContainer{padding:0}
.flatpickr-monthDropdown-month{background:#fff;color:#1e2a3a;padding:6px}
.flatpickr-monthDropdown-month:hover{background:#eef5ff}
.flatpickr-time input{color:#46566d;font-weight:500}
.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#2563eb}
.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#2563eb}
.flatpickr-time input:hover,.flatpickr-time .flatpickr-am-pm:hover{background:#eef5ff}
.flatpickr-time .flatpickr-time-separator{color:#7a889c}
/* flatpickr 输入框图标 */
input[type="date"],input[type="datetime-local"]{cursor:pointer}
.flatpickr-input[readonly]{background:#fff}

/* ============ 首页重排组件 ============ */
/* 税务预警大进度条 */
.quota-alert-item{padding:13px 14px;border-radius:10px;margin-bottom:10px;border:1px solid var(--line)}
.quota-alert-item.quota-normal{background:#f6fdf9;border-color:#d4efe2}
.quota-alert-item.quota-warning{background:#fffaf0;border-color:#f6e0b8}
.quota-alert-item.quota-danger{background:#fef5f5;border-color:#f4c7c7}
.quota-alert-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}
.quota-alert-top strong{font-size:13px;font-weight:500;color:#27364a}
.quota-alert-top b{font:600 16px 'DM Mono';color:var(--blue)}
.quota-alert-item.quota-warning .quota-alert-top b{color:#d97706}
.quota-alert-item.quota-danger .quota-alert-top b{color:#dc3545}
.quota-alert-bar{height:12px;background:#fff;border-radius:6px;overflow:hidden;margin-bottom:5px}
.quota-alert-bar i{display:block;height:100%;border-radius:6px;transition:width .5s ease}
.quota-alert-item.quota-normal .quota-alert-bar i{background:#2da56a}
.quota-alert-item.quota-warning .quota-alert-bar i{background:#e69a24}
.quota-alert-item.quota-danger .quota-alert-bar i{background:#dc5353}
.quota-alert-item small{font-size:11.5px;color:#6b7d94}
/* 平台分布横向柱状图 */
.platform-bar-row{display:grid;grid-template-columns:80px 1fr 50px 36px;align-items:center;gap:10px;margin:8px 0}
.platform-bar-name{font-size:12.5px;color:#46566d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.platform-bar-track{height:16px;background:#f0f3f7;border-radius:5px;overflow:hidden}
.platform-bar-track i{display:block;height:100%;border-radius:5px;transition:width .4s ease}
.platform-bar-row b{font:600 12px 'DM Mono';color:#27364a}
.platform-bar-row small{font:11px 'DM Mono';color:#8a98aa;text-align:right}
/* 待办横向卡片 */
.todo-cards{display:flex;gap:12px;overflow-x:auto;padding:4px 0 12px}
.todo-card{min-width:230px;max-width:280px;padding:13px 14px;border-radius:10px;border:1px solid var(--line);background:#fff;display:flex;flex-direction:column;gap:6px;flex:none}
.todo-card.critical{border-left:4px solid #dc3545;background:#fef5f5}
.todo-card.warn{border-left:4px solid #e69a24;background:#fffaf0}
.todo-card.info{border-left:4px solid #2563eb;background:#f5f9ff}
.todo-card-level{font:600 10px 'DM Mono';color:#8a98aa;text-transform:uppercase;letter-spacing:.5px}
.todo-card strong{font-size:13px;font-weight:500;color:#27364a;line-height:1.3}
.todo-card p{font-size:11.5px;color:#6b7d94;margin:2px 0 0;line-height:1.4}
.todo-card time{font:10px 'DM Mono';color:#a0adbf;align-self:flex-start}
/* 主体变更对比弹窗 */
.subject-compare{display:flex;flex-direction:column;gap:6px}
.subject-compare-row{display:grid;grid-template-columns:80px 1fr 20px 1fr;align-items:center;gap:8px;font-size:12.5px}
.subject-compare-row>span:first-child{color:#7a889c}
.subject-compare-row .old{color:#8a98aa;font-weight:400}
.subject-compare-row .arrow{color:#c4cdd9;text-align:center}
.subject-compare-row .new{color:#19734d;font-weight:600}
.form-banner.warn{background:#fffaf0;color:#8a4b00;border:1px solid #ffd9a0}
/* 设置页 */
.settings-section{margin-bottom:24px}
.settings-fields{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px}
.settings-fields label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#6b7d94;flex:1;min-width:140px}
.settings-fields input{font:13px 'Noto Sans SC'}
.platform-tag{display:inline-flex;align-items:center;padding:6px 12px;background:#eef5ff;border:1px solid #cfe0ff;border-radius:7px;font-size:13px;color:#1d4ed8}
/* 骨架屏 */
.skeleton-area{display:flex;flex-direction:column;justify-content:center;gap:14px;padding:20px}
.skeleton-bar{height:18px;background:linear-gradient(90deg,#f0f3f7 25%,#e5eaf1 50%,#f0f3f7 75%);background-size:200% 100%;animation:skeleton 1.4s infinite;border-radius:5px}
.skeleton-bar:nth-child(2){width:70%}.skeleton-bar:nth-child(3){width:40%}
.skeleton-row{height:50px;margin-bottom:10px;background:linear-gradient(90deg,#f0f3f7 25%,#e5eaf1 50%,#f0f3f7 75%);background-size:200% 100%;animation:skeleton 1.4s infinite;border-radius:8px}
@keyframes skeleton{0%{background-position:200% 0}100%{background-position:-200% 0}}
/* 分页组件 */
.pagination{display:flex;align-items:center;gap:10px;padding:13px 15px;border-top:1px solid #edf0f4;font-size:12px;color:#8895a7}
.pagination .page-info{margin-right:auto}
.pagination button:disabled{opacity:.4;cursor:not-allowed}

/* 图片/附件交互 */
.list-photo-cell{min-width:96px;white-space:nowrap}
.list-photo-thumb{width:44px;height:44px;object-fit:cover;border:1px solid #d9e2ed;border-radius:6px;margin-right:5px;vertical-align:middle;cursor:zoom-in;background:#f4f7fb}
[data-upload-box].paste-ready,[data-attachment-box].paste-ready{outline:2px dashed #2d6ee7;outline-offset:2px;background:#eef5ff}
[data-upload-box].paste-ready::after,[data-attachment-box].paste-ready::after{content:"现在可按 Ctrl+V 粘贴图片；双击选择本地文件";display:block;margin-top:7px;font-size:12px;color:#2563eb}
.flatpickr-input[readonly]{cursor:text}
/* ============ 批次一：财务信息清晰度 ============ */
/* 表格层级：表头更清楚，正文与辅助信息各自有足够对比度 */
table{font-size:13px}
th{font-size:12px;font-weight:600;color:#52657d;background:#f4f7fb}
td{color:#394b62}
.entity small{font-size:12px;color:#63758b;font-variant-numeric:tabular-nums}
.panel-head p,.stats p,.muted{color:#5f7188}
.money,.updated-at,.date,.quota-top b,.quota-top small,.mini-meter-tip{font-variant-numeric:tabular-nums}
.money{font:600 13px 'DM Mono',monospace;color:#22354c}
.updated-at,.date{font:12px 'DM Mono',monospace;color:#5f7188}
/* 额度使用：百分比、已提现/年度额度与进度条同一视觉组 */
.quota-cell{min-width:205px}
.quota-top{margin-bottom:6px}
.quota-top b{font-size:14px}
.quota-top small{font-size:12px;font-weight:500;color:#43566e}
.mini-meter{height:9px;border-radius:6px}
.mini-meter i{border-radius:6px;transition:width .4s ease}
.mini-meter-tip{font-size:12px;color:#5f7188}
/* badge 作为信息标签，字号和高度更易读 */
.state,.tag,.badge{font-size:12px;font-weight:500}
/* 状态维度前缀后的徽章可自然换行，避免压缩主内容 */
#shopRows .badge,#licenseRows .badge{white-space:nowrap}
/* 核心金额与日期按表格数字对齐 */
.money,.updated-at,.date,.audit-detail,.quota-alert-item b{font-variant-numeric:tabular-nums}
/* 额度条严格三档：绿(<70)、橙(70-89)、红(>=90) */
.quota-normal .mini-meter i,.mini-meter.quota-normal i{background:#24965b}
.quota-warning .mini-meter i,.mini-meter.quota-warning i{background:#d98217}
.quota-danger .mini-meter i,.mini-meter.quota-danger i{background:#d33e4d}
.quota-normal .quota-top b{color:#16855b}
.quota-warning .quota-top b{color:#c97108}
.quota-danger .quota-top b{color:#c92f3d}
/* 首页年度额度预警的说明提高可读性 */
.quota-alert-item small{font-size:12px;color:#52657d}
