.topbar[data-v-f7634027]{background:var(--primary);color:#fff;padding:0 16px;height:48px;display:flex;align-items:center;gap:10px;box-shadow:0 2px 6px #0003;flex-shrink:0}h1[data-v-f7634027]{font-size:15px;font-weight:700;white-space:nowrap}select[data-v-f7634027]{padding:4px 8px;border-radius:4px;border:none;font-size:13px;min-width:120px;cursor:pointer}.tbtn[data-v-f7634027]{padding:5px 12px;border-radius:4px;background:#ffffff2e;color:#fff;border:1px solid rgba(255,255,255,.4);font-size:12px;cursor:pointer;white-space:nowrap}.tbtn[data-v-f7634027]:hover{background:#ffffff47}.topbar-right[data-v-f7634027]{margin-left:auto;display:flex;gap:8px;align-items:center}.user[data-v-f7634027]{font-size:12.5px;display:flex;align-items:center;gap:6px;white-space:nowrap}.u-role[data-v-f7634027]{font-size:11px;font-weight:700;padding:1px 7px;border-radius:100px}.u-role.op[data-v-f7634027]{background:#fff;color:var(--primary)}.u-role.sup[data-v-f7634027]{background:#ffd8a8;color:#92400e}.sidebar[data-v-44c657d1]{width:220px;flex-shrink:0;background:#fff;border-right:1px solid var(--border);overflow-y:auto}.side-nav[data-v-44c657d1]{padding:8px 0}.nav-group[data-v-44c657d1]{margin-bottom:2px}.group-hdr[data-v-44c657d1]{width:100%;display:flex;align-items:center;gap:8px;padding:9px 14px;background:none;border:none;cursor:pointer;font-size:13px;font-weight:600;color:var(--text);text-align:left}.group-hdr[data-v-44c657d1]:hover{background:var(--bg)}.g-icon[data-v-44c657d1]{font-size:15px;width:18px;text-align:center}.g-title[data-v-44c657d1]{flex:1}.g-arrow[data-v-44c657d1]{font-size:10px;color:var(--muted)}.group-items[data-v-44c657d1]{padding:2px 0 4px}.nav-item[data-v-44c657d1]{display:flex;align-items:center;gap:6px;padding:7px 14px 7px 34px;text-decoration:none;font-size:13px;color:var(--muted);border-left:3px solid transparent}.nav-item[data-v-44c657d1]:hover{background:var(--bg);color:var(--text)}.nav-item.active[data-v-44c657d1]{background:var(--primary-light);color:var(--primary);font-weight:600;border-left-color:var(--primary)}.dot[data-v-44c657d1]{font-size:10px;opacity:.5}.i-title[data-v-44c657d1]{flex:1}.i-flag[data-v-44c657d1]{color:var(--orange);font-size:16px;line-height:1}.school-modal[data-v-e98b3ab2]{width:560px}.school-card[data-v-e98b3ab2]{border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin-bottom:10px;position:relative}.name-row[data-v-e98b3ab2]{display:flex;align-items:center;gap:8px;margin-bottom:10px}.school-grid[data-v-e98b3ab2]{display:grid;grid-template-columns:1fr 1fr 1fr 1fr 1fr;gap:8px}.school-grid label[data-v-e98b3ab2]{font-size:11px;color:var(--muted);display:block;margin-bottom:2px}.del-school-btn[data-v-e98b3ab2]{position:absolute;top:10px;right:10px;background:none;border:none;color:var(--muted);cursor:pointer;font-size:16px}.del-school-btn[data-v-e98b3ab2]:hover{color:var(--red)}.add-school-btn[data-v-e98b3ab2]{width:100%;padding:8px;border:2px dashed var(--border);border-radius:8px;background:none;cursor:pointer;font-size:13px;color:var(--muted)}.add-school-btn[data-v-e98b3ab2]:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.app-shell[data-v-fe838f33]{display:flex;flex-direction:column;height:100vh;overflow:hidden}.body-row[data-v-fe838f33]{flex:1;display:flex;overflow:hidden}.content[data-v-fe838f33]{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}.ph-page[data-v-845ea27e]{flex:1;overflow-y:auto;padding:32px;display:flex;justify-content:center;align-items:flex-start}.ph-card[data-v-845ea27e]{max-width:560px;width:100%;padding:28px 32px;text-align:left}.ph-badge[data-v-845ea27e]{display:inline-block;font-size:12px;font-weight:600;color:var(--orange);background:#fff4e5;padding:3px 10px;border-radius:12px;margin-bottom:14px}.ph-title[data-v-845ea27e]{font-size:22px;font-weight:700;color:var(--text);margin-bottom:4px}.ph-group[data-v-845ea27e]{font-size:13px;color:var(--muted);margin-bottom:16px}.ph-desc[data-v-845ea27e]{font-size:14px;line-height:1.7;color:var(--text);margin-bottom:16px}.ph-note[data-v-845ea27e]{font-size:13px;line-height:1.6;color:var(--muted);background:var(--bg);border-left:3px solid var(--primary);padding:10px 14px;border-radius:0 6px 6px 0;margin-bottom:18px}.ph-note-label[data-v-845ea27e]{display:block;font-weight:600;color:var(--primary);margin-bottom:4px}.ph-hint[data-v-845ea27e]{font-size:12px;color:var(--muted)}.login-wrap[data-v-3266ae16]{flex:1;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a73e8,#0f4c9c);gap:16px}.login-card[data-v-3266ae16]{background:#fff;border-radius:16px;padding:32px 34px;width:380px;box-shadow:0 20px 60px #0000004d}.brand[data-v-3266ae16]{font-size:26px;font-weight:800;color:var(--primary);text-align:center}.brand-sub[data-v-3266ae16]{font-size:12.5px;color:var(--muted);text-align:center;margin-bottom:22px}.role-tabs[data-v-3266ae16]{display:flex;gap:6px;margin-bottom:20px}.rt[data-v-3266ae16]{flex:1;padding:9px;border:1px solid var(--border);background:#fff;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;color:var(--muted)}.rt.on[data-v-3266ae16]{background:var(--primary);color:#fff;border-color:var(--primary)}.form[data-v-3266ae16]{display:flex;flex-direction:column;gap:6px}.form label[data-v-3266ae16]{font-size:12.5px;color:var(--muted);margin-top:6px}.btn-login[data-v-3266ae16]{margin-top:16px;padding:11px;background:var(--primary);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer}.btn-login[data-v-3266ae16]:hover{background:#1557b0}.btn-login[data-v-3266ae16]:disabled{background:#9db8dd;cursor:not-allowed}.tip[data-v-3266ae16]{font-size:11.5px;color:var(--muted);margin-top:12px;line-height:1.6}.foot[data-v-3266ae16]{color:#ffffffd9;font-size:12px}.grid-wrap[data-v-b04e4eeb]{overflow-x:auto;margin-bottom:12px}table.gt[data-v-b04e4eeb]{border-collapse:collapse;width:100%;min-width:700px}table.gt th[data-v-b04e4eeb]{padding:8px 10px;text-align:center;font-weight:600;font-size:12px;border:1px solid var(--border);white-space:nowrap}.ch[data-v-b04e4eeb]{background:var(--primary);color:#fff;min-width:120px}.rh[data-v-b04e4eeb]{background:#455a64;color:#fff;min-width:80px;font-size:11px}.date-cell[data-v-b04e4eeb]{background:#eceff1;font-size:11px;font-weight:500;border:1px solid var(--border);padding:7px 10px;white-space:nowrap;text-align:center}.mc[data-v-b04e4eeb]{border:1px solid var(--border);vertical-align:top;position:relative;cursor:default;min-width:120px;height:58px}.mc[data-v-b04e4eeb]:hover{background:#f8fbff}.mc.sel[data-v-b04e4eeb]{background:var(--primary-light)!important;outline:2px solid var(--primary);outline-offset:-2px;z-index:3}.mc.hl[data-v-b04e4eeb]{background:#c5d9fb!important;outline:1px solid #4285f4;outline-offset:-1px}.ci[data-v-b04e4eeb]{padding:6px 8px 16px;height:100%;display:flex;flex-direction:column;gap:2px}.cname[data-v-b04e4eeb]{font-size:12px;font-weight:500;line-height:1.3}.cempty[data-v-b04e4eeb]{font-size:11px;color:#bdc1c6}.cbadge[data-v-b04e4eeb]{font-size:10px;padding:1px 5px;border-radius:3px;display:inline-block;width:fit-content;margin-top:1px}.cbadge.meat[data-v-b04e4eeb]{background:#fef3c7;color:#78350f}.cbadge.veg[data-v-b04e4eeb]{background:#dcfce7;color:#14532d}.cbadge.both[data-v-b04e4eeb]{background:#dbeafe;color:#1e3a8a}.dh[data-v-b04e4eeb]{position:absolute;right:1px;bottom:1px;width:13px;height:13px;background:var(--primary);border:2px solid #fff;border-radius:2px;cursor:crosshair;z-index:20;box-shadow:0 1px 3px #0000004d}.sidebar[data-v-abbfab19]{width:190px;background:#fff;border-left:1px solid var(--border);overflow-y:auto;padding:12px;flex-shrink:0}h3[data-v-abbfab19]{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.hint[data-v-abbfab19]{font-size:10px;color:#9aa0a6;margin-bottom:10px;line-height:1.5}.dsect[data-v-abbfab19]{margin-bottom:12px}.dsect-t[data-v-abbfab19]{font-size:11px;color:var(--muted);font-weight:600;margin-bottom:4px}.dish-row[data-v-abbfab19]{display:flex;align-items:center;gap:4px;margin:2px 0}.dtag[data-v-abbfab19]{flex:1;padding:3px 7px;border-radius:10px;font-size:11px;cursor:pointer;border:1px solid var(--border);background:var(--bg);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dtag[data-v-abbfab19]:hover{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.edit-btn[data-v-abbfab19]{flex-shrink:0;width:20px;height:20px;border-radius:50%;border:1px solid var(--border);background:#fff;cursor:pointer;font-size:10px;display:flex;align-items:center;justify-content:center;color:var(--muted)}.edit-btn[data-v-abbfab19]:hover{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.proc-wrap[data-v-755e8880]{margin-top:12px}.proc-hdr[data-v-755e8880]{padding:8px 14px;cursor:pointer;font-size:13px;font-weight:600;display:flex;align-items:center;gap:6px}.proc-hdr[data-v-755e8880]:hover{background:var(--bg)}.proc-body[data-v-755e8880]{padding:12px 14px;border-top:1px solid var(--border)}.ptable[data-v-755e8880]{min-width:520px}.cost-summary[data-v-755e8880]{margin-top:10px;padding:10px 12px;background:#fffbeb;border-radius:6px;font-size:13px;display:flex;gap:24px;flex-wrap:wrap}.hint[data-v-755e8880]{font-size:11px;color:#9aa0a6;margin-top:8px}.picker-modal[data-v-64407a51]{width:500px}.msect[data-v-64407a51]{margin-bottom:12px}.msect h3[data-v-64407a51]{font-size:11px;color:var(--muted);font-weight:700;margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.mgrid[data-v-64407a51]{display:flex;flex-wrap:wrap;gap:5px}.mbtn[data-v-64407a51]{padding:4px 11px;border-radius:12px;font-size:12px;cursor:pointer;border:1px solid var(--border);background:#fff;transition:all .1s}.mbtn[data-v-64407a51]:hover{border-color:var(--primary);background:var(--primary-light);color:var(--primary)}.mbtn.meat[data-v-64407a51]{border-color:#fbbf24}.mbtn.veg[data-v-64407a51]{border-color:#6ee7b7}.mbtn.veg[data-v-64407a51]:hover{background:#ecfdf5;color:#065f46;border-color:#10b981}.clrbtn[data-v-64407a51]{display:inline-block;padding:4px 12px;margin-bottom:10px;border-radius:10px;font-size:12px;cursor:pointer;border:1px solid #f5c6c3;color:var(--red);background:#fff}.clrbtn[data-v-64407a51]:hover{background:var(--red-light)}.dish-modal[data-v-98fe6eef]{width:580px}.info-line[data-v-98fe6eef]{font-size:12px;color:var(--muted);margin-bottom:10px}.ing-table[data-v-98fe6eef]{border-collapse:collapse;width:100%;font-size:13px;margin-top:4px}.ing-table th[data-v-98fe6eef]{background:var(--bg);padding:7px 10px;border:1px solid var(--border);font-weight:600;font-size:12px}.ing-table td[data-v-98fe6eef]{padding:5px 8px;border:1px solid var(--border)}.del-btn[data-v-98fe6eef]{background:none;border:none;color:var(--red);cursor:pointer;font-size:14px}.add-row[data-v-98fe6eef]{display:flex;gap:6px;align-items:center;margin-top:8px}.dish-total[data-v-98fe6eef]{margin-top:10px;padding:8px 12px;background:#fffbeb;border-radius:6px;font-size:13px;display:flex;gap:16px}.planner-layout[data-v-e88f328c]{display:flex;flex-direction:column;flex:1;overflow:hidden}.subbar[data-v-e88f328c]{background:#fff;border-bottom:1px solid var(--border);padding:6px 16px;display:flex;align-items:center;gap:10px;font-size:12px;flex-shrink:0;flex-wrap:wrap}.lbl[data-v-e88f328c]{color:var(--muted)}.val[data-v-e88f328c]{font-weight:700;color:var(--primary)}.val.total[data-v-e88f328c]{color:var(--green)}.sep[data-v-e88f328c]{color:var(--border)}.main[data-v-e88f328c]{display:flex;flex:1;overflow:hidden}.grid-area[data-v-e88f328c]{flex:1;overflow:auto;padding:12px 16px 20px}.toolbar[data-v-e88f328c]{display:flex;align-items:center;gap:8px;margin-bottom:8px}.toolbar h2[data-v-e88f328c]{font-size:13px;font-weight:600;flex:1;text-align:center}.wbtn[data-v-e88f328c]{padding:4px 10px;border-radius:4px;border:1px solid var(--border);background:#fff;cursor:pointer;font-size:12px}.wbtn[data-v-e88f328c]:hover{background:var(--bg)}.wbtn.danger[data-v-e88f328c]{color:var(--red);border-color:#f5c6c3}.wbtn.danger[data-v-e88f328c]:hover{background:var(--red-light)}.tip[data-v-e88f328c]{font-size:11px;padding:6px 10px;margin-bottom:10px;background:#e8f5e9;border-left:3px solid #34a853;border-radius:0 4px 4px 0;color:#1e4620;line-height:1.7}.statusbar[data-v-e88f328c]{background:#f1f3f4;border-top:1px solid var(--border);padding:3px 16px;font-size:11px;color:var(--muted);flex-shrink:0}.dup-warn[data-v-e88f328c]{font-size:12px;background:#fff4e5;border-left:3px solid var(--orange);border-radius:0 4px 4px 0;padding:6px 10px;margin-bottom:8px;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;color:#92400e}.dup-warn .dw[data-v-e88f328c]{background:#fff;border:1px solid #f0d9b5;border-radius:4px;padding:0 6px}.kcal-strip[data-v-e88f328c]{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:12px;padding:6px 10px;margin-bottom:8px;background:var(--primary-light);border-radius:6px;color:var(--muted)}.ks-title[data-v-e88f328c]{font-weight:700;color:var(--primary)}.ks-day[data-v-e88f328c]{font-variant-numeric:tabular-nums}.ks-day .meat[data-v-e88f328c]{color:#c0392b}.ks-day .veg[data-v-e88f328c]{color:var(--green)}.proc-page[data-v-e01ef32f]{display:flex;flex-direction:column;flex:1;overflow:hidden}.page-hdr[data-v-e01ef32f]{padding:10px 16px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;flex-shrink:0}.page-hdr-tabs[data-v-e01ef32f]{display:flex;gap:4px}.tab-btn[data-v-e01ef32f]{padding:5px 14px;border-radius:4px;border:1px solid var(--border);background:#fff;cursor:pointer;font-size:13px}.tab-btn.active[data-v-e01ef32f]{background:var(--primary);color:#fff;border-color:var(--primary)}.tab-content[data-v-e01ef32f]{flex:1;overflow-y:auto;padding:16px}.summary-bar[data-v-e01ef32f]{display:flex;gap:12px;margin-bottom:16px}.summary-card[data-v-e01ef32f]{background:#fff;border:1px solid var(--border);border-radius:8px;padding:12px 20px;min-width:160px}.s-label[data-v-e01ef32f]{font-size:12px;color:var(--muted);margin-bottom:4px}.s-value[data-v-e01ef32f]{font-size:20px;font-weight:700}.table-card[data-v-e01ef32f]{overflow:hidden}.filter-bar[data-v-e01ef32f]{display:flex;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border)}.form-grid[data-v-e01ef32f]{display:flex;flex-direction:column;gap:10px}.fg-row[data-v-e01ef32f]{display:grid;grid-template-columns:120px 1fr;align-items:center;gap:8px}.fg-row label[data-v-e01ef32f]{font-size:13px;color:var(--muted);text-align:right}.icon-btn[data-v-e01ef32f]{background:none;border:none;cursor:pointer;font-size:14px;padding:2px 6px;border-radius:4px}.icon-btn[data-v-e01ef32f]:hover{background:var(--bg)}.icon-btn.red[data-v-e01ef32f]:hover{background:var(--red-light)}.std-page[data-v-1ffcd2fc]{flex:1;overflow-y:auto;padding:20px}.section-title[data-v-1ffcd2fc]{font-size:14px;font-weight:700;color:var(--text);margin-bottom:6px}.hint[data-v-1ffcd2fc]{font-size:12px;color:var(--muted);margin-bottom:14px;line-height:1.6}.table-card[data-v-1ffcd2fc]{overflow:hidden}.std-page[data-v-d53b9d43]{flex:1;overflow-y:auto;padding:20px}.page-hdr[data-v-d53b9d43]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}.section-title[data-v-d53b9d43]{font-size:14px;font-weight:700}.search[data-v-d53b9d43]{width:220px}.hint[data-v-d53b9d43]{font-size:12px;color:var(--muted);margin-bottom:16px;line-height:1.6}.cat-block[data-v-d53b9d43]{margin-bottom:18px}.cat-hdr[data-v-d53b9d43]{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:800;margin-bottom:8px}.cat-icon[data-v-d53b9d43]{font-size:18px}.cat-n[data-v-d53b9d43]{font-size:12px;color:var(--muted);font-weight:600}.table-card[data-v-d53b9d43]{overflow:hidden}.data-table td[data-v-d53b9d43]{font-variant-numeric:tabular-nums}.tag[data-v-d53b9d43]{font-size:11px;padding:1px 8px;border-radius:100px;font-weight:700}.tag.meat[data-v-d53b9d43]{background:#fdecea;color:#c0392b}.tag.veg[data-v-d53b9d43]{background:var(--green-light);color:var(--green)}.tag.both[data-v-d53b9d43]{background:var(--primary-light);color:var(--primary)}.ings[data-v-d53b9d43]{line-height:1.9}.ing[data-v-d53b9d43]{display:inline-block;background:var(--bg);border:1px solid var(--border);border-radius:5px;padding:1px 7px;margin:1px 4px 1px 0;font-size:12px;color:var(--muted)}.ing b[data-v-d53b9d43]{color:var(--text);font-variant-numeric:tabular-nums}.empty[data-v-d53b9d43]{color:var(--muted);text-align:center;padding:30px}.std-page[data-v-eacc255f]{flex:1;overflow-y:auto;padding:20px}.section-title[data-v-eacc255f]{font-size:14px;font-weight:700;color:var(--text);margin-bottom:8px}.alert[data-v-eacc255f]{padding:10px 14px;border-radius:6px;font-size:13px;line-height:1.6;margin-bottom:16px}.alert.warn[data-v-eacc255f]{background:#fff4e5;border:1px solid #ffd8a8;color:#92400e}.issue-panel[data-v-eacc255f]{padding:14px}.mode-tabs[data-v-eacc255f]{display:flex;gap:18px;margin-bottom:12px;font-size:13px}.mode-tabs label[data-v-eacc255f]{cursor:pointer}.issue-form[data-v-eacc255f]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.issue-form label[data-v-eacc255f],.issue-form .unit[data-v-eacc255f]{font-size:13px;color:var(--muted)}.table-card[data-v-eacc255f]{overflow:hidden}.batch[data-v-eacc255f]{font-family:Consolas,monospace;background:var(--bg);padding:1px 6px;border-radius:3px;font-size:12px}.pick[data-v-eacc255f]{display:flex;gap:8px;align-items:center;font-size:12px;padding:1px 0}tr.dim td[data-v-eacc255f]{background:#fafafa;color:var(--muted)}.bar-track[data-v-eacc255f]{height:8px;background:var(--bg);border-radius:4px;overflow:hidden;border:1px solid var(--border)}.bar-fill[data-v-eacc255f]{height:100%;background:var(--primary);transition:width .3s}.bar-fill.near[data-v-eacc255f]{background:var(--orange)}.bar-fill.expired[data-v-eacc255f],.bar-fill.empty[data-v-eacc255f]{background:var(--muted)}.tag[data-v-eacc255f]{font-size:11px;padding:1px 8px;border-radius:10px;font-weight:600}.tag.ok[data-v-eacc255f]{background:var(--green-light);color:var(--green)}.tag.near[data-v-eacc255f]{background:#fff4e5;color:var(--orange)}.tag.expired[data-v-eacc255f]{background:var(--red-light);color:var(--red)}.tag.empty[data-v-eacc255f]{background:var(--bg);color:var(--muted)}.expired-card[data-v-eacc255f]{border:1px solid #f5c6c3}.expired-hdr[data-v-eacc255f]{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--red-light);font-size:13px}.log-row[data-v-eacc255f]{display:flex;gap:16px;margin-top:22px;flex-wrap:wrap}.log-card[data-v-eacc255f]{flex:1;min-width:320px}.log-title[data-v-eacc255f]{padding:10px 14px;font-size:13px;font-weight:700;border-bottom:1px solid var(--border)}.std-page[data-v-a5bbd913]{flex:1;overflow-y:auto;padding:20px}.section-title[data-v-a5bbd913]{font-size:14px;font-weight:700;margin-bottom:6px}.hint[data-v-a5bbd913]{font-size:12px;color:var(--muted);margin-bottom:16px}.cat-grid[data-v-a5bbd913]{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.cat-card[data-v-a5bbd913]{background:#fff;border:1px solid var(--border);border-radius:10px;padding:16px 18px;box-shadow:0 1px 3px #0000000d}.cat-icon[data-v-a5bbd913]{font-size:26px}.cat-name[data-v-a5bbd913]{font-size:16px;font-weight:800;margin:6px 0 2px}.cat-count[data-v-a5bbd913]{font-size:12px;color:var(--primary);font-weight:600;margin-bottom:8px}.cat-list[data-v-a5bbd913]{font-size:12.5px;color:var(--muted);line-height:1.6}.std-page[data-v-9ddbaa90]{flex:1;overflow-y:auto;padding:20px}.page-hdr[data-v-9ddbaa90]{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.section-title[data-v-9ddbaa90]{font-size:14px;font-weight:700}.table-card[data-v-9ddbaa90]{overflow:hidden}.data-table td[data-v-9ddbaa90],.data-table th[data-v-9ddbaa90]{font-variant-numeric:tabular-nums}.tag[data-v-9ddbaa90]{font-size:11.5px;padding:2px 10px;border-radius:100px;font-weight:700}.tag.on[data-v-9ddbaa90]{background:var(--green-light);color:var(--green)}.tag.off[data-v-9ddbaa90]{background:var(--bg);color:var(--muted)}.hint[data-v-9ddbaa90]{font-size:12px;color:var(--muted);margin-top:12px}.form-grid[data-v-9ddbaa90]{display:flex;flex-direction:column;gap:10px}.fg[data-v-9ddbaa90]{display:grid;grid-template-columns:90px 1fr;align-items:center;gap:8px}.fg label[data-v-9ddbaa90]{font-size:13px;color:var(--muted);text-align:right}.std-page[data-v-fba984fe]{flex:1;overflow-y:auto;padding:20px}.portal-bar[data-v-fba984fe]{display:flex;align-items:center;gap:12px;background:linear-gradient(90deg,var(--primary),#3d8bf0);color:#fff;padding:12px 18px;border-radius:10px;margin-bottom:18px;flex-wrap:wrap}.portal-tag[data-v-fba984fe]{font-weight:800;font-size:15px}.portal-hint[data-v-fba984fe]{font-size:12.5px;opacity:.9}.portal-bar .form-input[data-v-fba984fe]{border:none}.empty[data-v-fba984fe]{color:var(--muted);text-align:center;padding:40px;font-size:14px}.welcome[data-v-fba984fe]{font-size:14px;margin-bottom:14px;color:var(--text)}.stmt-card[data-v-fba984fe]{padding:14px 16px;margin-bottom:16px;overflow:hidden}.stmt-hdr[data-v-fba984fe]{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.ym[data-v-fba984fe]{font-weight:800;font-size:15px}.stmt-total[data-v-fba984fe]{font-size:13px;color:var(--muted)}.data-table[data-v-fba984fe]{font-variant-numeric:tabular-nums}.total-row td[data-v-fba984fe]{background:#f8f9fa}.pill[data-v-fba984fe]{border-radius:100px;padding:2px 12px;font-size:12px;font-weight:700}.pill.ok[data-v-fba984fe]{background:var(--green-light);color:var(--green)}.pill.wait[data-v-fba984fe]{background:#fff4e5;color:var(--orange)}.pill.confirmed[data-v-fba984fe]{background:var(--green-light);color:var(--green)}.pill.unconfirmed[data-v-fba984fe]{background:var(--bg);color:var(--muted)}.dash-page[data-v-a12e5c73]{display:flex;flex-direction:column;flex:1;overflow:hidden}.page-hdr[data-v-a12e5c73]{padding:10px 16px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0}.basis[data-v-a12e5c73]{font-size:13px;color:var(--muted);display:flex;gap:12px;align-items:center}.basis label[data-v-a12e5c73]{cursor:pointer}.tab-content[data-v-a12e5c73]{flex:1;overflow-y:auto;padding:16px}.section-title[data-v-a12e5c73]{font-size:13px;font-weight:700;color:var(--muted);margin:18px 0 10px;padding-bottom:4px;border-bottom:1px solid var(--border)}.section-title[data-v-a12e5c73]:first-child{margin-top:0}.kpi-row[data-v-a12e5c73]{display:flex;gap:12px;flex-wrap:wrap}.kpi[data-v-a12e5c73]{background:#fff;border:1px solid var(--border);border-radius:8px;padding:12px 18px;min-width:150px;flex:1;box-shadow:0 1px 3px #0000000d}.k-l[data-v-a12e5c73]{font-size:12px;color:var(--muted);margin-bottom:4px}.k-v[data-v-a12e5c73]{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums}.table-card[data-v-a12e5c73]{overflow:hidden}.data-table td[data-v-a12e5c73],.data-table th[data-v-a12e5c73]{font-variant-numeric:tabular-nums}.rank[data-v-a12e5c73]{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;border-radius:50%;background:var(--bg);font-size:12px;font-weight:700}.rank.gold[data-v-a12e5c73]{background:#fff4cc;color:#946c00}.rank.low[data-v-a12e5c73]{background:var(--red-light);color:var(--red)}.total-row td[data-v-a12e5c73]{background:#f8f9fa}.two-col[data-v-a12e5c73]{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width:820px){.two-col[data-v-a12e5c73]{grid-template-columns:1fr}}.mono-input[data-v-a12e5c73]{width:100px;text-align:right;font-variant-numeric:tabular-nums}.calc-card[data-v-a12e5c73]{padding:16px 20px}.calc-row[data-v-a12e5c73]{display:flex;justify-content:space-between;align-items:baseline;padding:9px 0;border-bottom:1px dashed var(--border);font-size:14px}.calc-row[data-v-a12e5c73]:last-child{border-bottom:none}.calc-row b[data-v-a12e5c73]{font-size:16px;font-variant-numeric:tabular-nums}.calc-sub[data-v-a12e5c73]{font-size:11.5px;color:var(--muted);margin:-4px 0 4px}.std-page[data-v-ab2246dd]{flex:1;overflow-y:auto;padding:20px}.section-title[data-v-ab2246dd]{font-size:14px;font-weight:700;margin-bottom:14px}.summary-bar[data-v-ab2246dd]{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}.s-card[data-v-ab2246dd]{background:#fff;border:1px solid var(--border);border-left:4px solid var(--border);border-radius:8px;padding:12px 20px;min-width:150px}.s-card.green[data-v-ab2246dd]{border-left-color:var(--green)}.s-card.red[data-v-ab2246dd]{border-left-color:var(--red)}.s-l[data-v-ab2246dd]{font-size:12px;color:var(--muted);margin-bottom:4px}.s-v[data-v-ab2246dd]{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums}.table-card[data-v-ab2246dd]{overflow:hidden}.data-table td[data-v-ab2246dd],.data-table th[data-v-ab2246dd]{font-variant-numeric:tabular-nums}.price-input[data-v-ab2246dd]{width:80px;text-align:right}.total-row td[data-v-ab2246dd]{background:#f8f9fa}.pill[data-v-ab2246dd]{border:none;border-radius:100px;padding:3px 14px;font-size:12px;font-weight:700;cursor:pointer}.pill.ok[data-v-ab2246dd]{background:var(--green-light);color:var(--green)}.pill.wait[data-v-ab2246dd]{background:var(--red-light);color:var(--red)}.hint[data-v-ab2246dd]{font-size:12px;color:var(--muted);margin-top:12px;line-height:1.6}.std-page[data-v-fdab5e74]{flex:1;overflow-y:auto;padding:20px}.section-title[data-v-fdab5e74]{font-size:14px;font-weight:700;margin-bottom:14px}.summary-bar[data-v-fdab5e74]{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}.s-card[data-v-fdab5e74]{background:#fff;border:1px solid var(--border);border-left:4px solid var(--border);border-radius:8px;padding:12px 20px;min-width:150px}.s-card.orange[data-v-fdab5e74]{border-left-color:var(--orange)}.s-l[data-v-fdab5e74]{font-size:12px;color:var(--muted);margin-bottom:4px}.s-v[data-v-fdab5e74]{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums}.table-card[data-v-fdab5e74]{overflow:hidden}.data-table td[data-v-fdab5e74],.data-table th[data-v-fdab5e74]{font-variant-numeric:tabular-nums}.tbtn[data-v-fdab5e74]{padding:3px 10px;border:1px solid var(--border);background:#fff;border-radius:4px;font-size:12px;cursor:pointer}.tbtn[data-v-fdab5e74]:hover{background:var(--bg)}.detail-cell[data-v-fdab5e74]{background:#f8fafd;padding:14px 16px!important}.detail[data-v-fdab5e74]{display:flex;flex-direction:column;gap:14px}.stmt-hdr[data-v-fdab5e74]{display:flex;align-items:center;gap:12px;margin-bottom:8px;flex-wrap:wrap}.ym[data-v-fdab5e74]{font-weight:800;font-size:14px}.stmt-total[data-v-fdab5e74]{font-size:13px;color:var(--muted)}.mini-table[data-v-fdab5e74]{width:100%;border-collapse:collapse;font-size:12.5px;background:#fff}.mini-table th[data-v-fdab5e74]{background:var(--bg);padding:6px 10px;border:1px solid var(--border);text-align:left;font-size:12px}.mini-table td[data-v-fdab5e74]{padding:5px 10px;border:1px solid var(--border);font-variant-numeric:tabular-nums}.pill[data-v-fdab5e74]{border-radius:100px;padding:2px 12px;font-size:12px;font-weight:700}.pill.ok[data-v-fdab5e74]{background:var(--green-light);color:var(--green)}.pill.wait[data-v-fdab5e74]{background:#fff4e5;color:var(--orange)}.bar-chart[data-v-10510655]{display:flex;flex-direction:column;gap:9px}.row[data-v-10510655]{display:grid;grid-template-columns:96px 1fr 92px;align-items:center;gap:10px}.lbl[data-v-10510655]{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track[data-v-10510655]{height:16px;background:var(--bg);border-radius:4px;overflow:hidden}.fill[data-v-10510655]{height:100%;border-radius:4px;transition:width .4s;min-width:2px}.val[data-v-10510655]{font-size:12.5px;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}.donut-chart[data-v-49f06b73]{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.donut[data-v-49f06b73]{width:150px;height:150px;flex-shrink:0}.c-num[data-v-49f06b73]{font-size:5px;font-weight:800;text-anchor:middle;fill:var(--text)}.c-lbl[data-v-49f06b73]{font-size:2.6px;text-anchor:middle;fill:var(--muted)}.legend[data-v-49f06b73]{display:flex;flex-direction:column;gap:6px;flex:1;min-width:160px}.li[data-v-49f06b73]{display:flex;align-items:center;gap:8px;font-size:12.5px}.dot[data-v-49f06b73]{width:11px;height:11px;border-radius:3px;flex-shrink:0}.ln[data-v-49f06b73]{color:var(--text)}.lv[data-v-49f06b73]{margin-left:auto;color:var(--muted);font-variant-numeric:tabular-nums}.line-chart[data-v-3e0eeea8]{width:100%}.lc[data-v-3e0eeea8]{width:100%;height:130px;display:block}.x-axis[data-v-3e0eeea8]{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);padding:0 2px;margin-top:2px}.std-page[data-v-85550d32]{flex:1;overflow-y:auto;padding:20px}.section-title[data-v-85550d32]{font-size:14px;font-weight:700;margin-bottom:14px}.kpi-row[data-v-85550d32]{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px}.kpi[data-v-85550d32]{background:#fff;border:1px solid var(--border);border-radius:8px;padding:12px 18px;min-width:140px;flex:1;box-shadow:0 1px 3px #0000000d}.k-l[data-v-85550d32]{font-size:12px;color:var(--muted);margin-bottom:4px}.k-v[data-v-85550d32]{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums}.chart-grid[data-v-85550d32]{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width:820px){.chart-grid[data-v-85550d32]{grid-template-columns:1fr}}.chart-card[data-v-85550d32]{padding:16px 18px}.ct[data-v-85550d32]{font-size:13px;font-weight:700;color:var(--text);margin-bottom:14px}.std-page[data-v-66819d59]{flex:1;overflow-y:auto;padding:20px}.section-title[data-v-66819d59]{font-size:14px;font-weight:700;margin-bottom:14px}.who[data-v-66819d59]{color:var(--muted);font-weight:500;font-size:13px}.summary-bar[data-v-66819d59]{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}.s-card[data-v-66819d59]{background:#fff;border:1px solid var(--border);border-left:4px solid var(--border);border-radius:8px;padding:12px 20px;min-width:150px}.s-card.green[data-v-66819d59]{border-left-color:var(--green)}.s-l[data-v-66819d59]{font-size:12px;color:var(--muted);margin-bottom:4px}.s-v[data-v-66819d59]{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums}.chart-card[data-v-66819d59]{padding:16px 18px;margin-bottom:16px}.ct[data-v-66819d59]{font-size:13px;font-weight:700;margin-bottom:14px}.table-card[data-v-66819d59]{overflow:hidden}.data-table td[data-v-66819d59]{font-variant-numeric:tabular-nums}.empty[data-v-66819d59]{text-align:center;color:var(--muted);padding:24px}.std-page[data-v-86cf9b97]{flex:1;overflow-y:auto;padding:20px}.section-title[data-v-86cf9b97]{font-size:14px;font-weight:700;margin-bottom:14px}.who[data-v-86cf9b97]{color:var(--muted);font-weight:500;font-size:13px}.summary-bar[data-v-86cf9b97]{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}.s-card[data-v-86cf9b97]{background:#fff;border:1px solid var(--border);border-left:4px solid var(--border);border-radius:8px;padding:12px 20px;min-width:180px}.s-card.orange[data-v-86cf9b97]{border-left-color:var(--orange)}.s-card.green[data-v-86cf9b97]{border-left-color:var(--green)}.s-l[data-v-86cf9b97]{font-size:12px;color:var(--muted);margin-bottom:4px}.s-v[data-v-86cf9b97]{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums}.stmt-card[data-v-86cf9b97]{padding:14px 16px;margin-bottom:16px;overflow:hidden}.stmt-hdr[data-v-86cf9b97]{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.ym[data-v-86cf9b97]{font-weight:800;font-size:15px}.stmt-total[data-v-86cf9b97]{font-size:13px;color:var(--muted)}.data-table td[data-v-86cf9b97]{font-variant-numeric:tabular-nums}.total-row td[data-v-86cf9b97]{background:#f8f9fa}.pill[data-v-86cf9b97]{border-radius:100px;padding:2px 12px;font-size:12px;font-weight:700}.pill.ok[data-v-86cf9b97]{background:var(--green-light);color:var(--green)}.pill.wait[data-v-86cf9b97]{background:#fff4e5;color:var(--orange)}.pill.confirmed[data-v-86cf9b97]{background:var(--green-light);color:var(--green)}.pill.unconfirmed[data-v-86cf9b97]{background:var(--bg);color:var(--muted)}.empty[data-v-86cf9b97]{text-align:center;color:var(--muted);padding:30px}.std-page[data-v-1581fd99]{flex:1;overflow-y:auto;padding:20px}.section-title[data-v-1581fd99]{font-size:14px;font-weight:700;margin-bottom:6px}.who[data-v-1581fd99]{color:var(--muted);font-weight:500;font-size:13px}.hint[data-v-1581fd99]{font-size:12px;color:var(--muted);margin-bottom:16px}.inv-card[data-v-1581fd99]{padding:20px 22px;margin-bottom:18px}.inv-top[data-v-1581fd99]{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid var(--text);padding-bottom:12px;margin-bottom:12px}.inv-title[data-v-1581fd99]{font-size:18px;font-weight:800}.inv-no[data-v-1581fd99]{font-size:12.5px;color:var(--muted);margin-top:2px;font-variant-numeric:tabular-nums}.inv-right[data-v-1581fd99]{display:flex;align-items:center;gap:10px}.inv-party[data-v-1581fd99]{display:flex;gap:28px;flex-wrap:wrap;font-size:13px;margin-bottom:14px}.pl[data-v-1581fd99]{display:block;font-size:11px;color:var(--muted);margin-bottom:2px}.data-table td[data-v-1581fd99]{font-variant-numeric:tabular-nums}.inv-sum[data-v-1581fd99]{display:flex;flex-direction:column;gap:4px;align-items:flex-end;margin-top:14px;font-size:13.5px}.inv-sum>div[data-v-1581fd99]{display:flex;gap:22px;min-width:240px;justify-content:space-between}.inv-sum b[data-v-1581fd99]{font-variant-numeric:tabular-nums}.inv-sum .grand[data-v-1581fd99]{border-top:1px solid var(--border);padding-top:6px;margin-top:4px;font-size:16px}.inv-sum .grand b[data-v-1581fd99]{color:var(--orange)}.pill[data-v-1581fd99]{border-radius:100px;padding:2px 12px;font-size:12px;font-weight:700}.pill.ok[data-v-1581fd99]{background:var(--green-light);color:var(--green)}.pill.wait[data-v-1581fd99]{background:#fff4e5;color:var(--orange)}.empty[data-v-1581fd99]{text-align:center;color:var(--muted);padding:30px}.std-page[data-v-f1265000]{flex:1;overflow-y:auto;padding:20px}.section-title[data-v-f1265000]{font-size:14px;font-weight:700;margin-bottom:14px}.two-col[data-v-f1265000]{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width:760px){.two-col[data-v-f1265000]{grid-template-columns:1fr}}.set-card[data-v-f1265000]{padding:18px 20px}.ct[data-v-f1265000]{font-size:13px;font-weight:700;margin-bottom:14px}.form-grid[data-v-f1265000]{display:flex;flex-direction:column;gap:10px}.fg[data-v-f1265000]{display:grid;grid-template-columns:120px 1fr;align-items:center;gap:10px}.fg label[data-v-f1265000]{font-size:13px;color:var(--muted);text-align:right}.hint[data-v-f1265000]{font-size:11.5px;color:var(--muted);margin-top:10px}.save-bar[data-v-f1265000]{margin-top:16px;display:flex;align-items:center;gap:12px}.ok[data-v-f1265000]{color:var(--green);font-weight:700;font-size:13px}.std-page[data-v-87746002]{flex:1;overflow-y:auto;padding:20px}.section-title[data-v-87746002]{font-size:14px;font-weight:700;margin-bottom:6px}.hint[data-v-87746002]{font-size:12px;color:var(--muted);margin-bottom:14px}.table-card[data-v-87746002]{overflow:hidden}.mono[data-v-87746002]{font-family:ui-monospace,Consolas,monospace;font-size:12.5px}.std-page[data-v-6eddc69c]{flex:1;overflow-y:auto;padding:20px}.page-hdr[data-v-6eddc69c]{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.section-title[data-v-6eddc69c]{font-size:14px;font-weight:700}.table-card[data-v-6eddc69c]{overflow:hidden}.mono[data-v-6eddc69c]{font-family:ui-monospace,Consolas,monospace;color:var(--muted)}.role-tag[data-v-6eddc69c]{background:var(--primary-light);color:var(--primary);font-size:12px;font-weight:700;padding:2px 10px;border-radius:100px}.pill[data-v-6eddc69c]{font-size:12px;font-weight:700;padding:2px 10px;border-radius:100px}.pill.on[data-v-6eddc69c]{background:var(--green-light);color:var(--green)}.pill.off[data-v-6eddc69c]{background:var(--bg);color:var(--muted)}.tbtn[data-v-6eddc69c]{padding:3px 10px;border:1px solid var(--border);background:#fff;border-radius:4px;font-size:12px;cursor:pointer}.tbtn[data-v-6eddc69c]:hover{background:var(--bg)}.form-grid[data-v-6eddc69c]{display:flex;flex-direction:column;gap:10px}.fg[data-v-6eddc69c]{display:grid;grid-template-columns:70px 1fr;align-items:center;gap:8px}.fg label[data-v-6eddc69c]{font-size:13px;color:var(--muted);text-align:right}.std-page[data-v-fe77c74c]{flex:1;overflow-y:auto;padding:20px}.section-title[data-v-fe77c74c]{font-size:14px;font-weight:700;margin-bottom:6px}.hint[data-v-fe77c74c]{font-size:12px;color:var(--muted);margin-bottom:14px}.table-card[data-v-fe77c74c]{overflow:hidden;max-width:640px}.data-table input[data-v-fe77c74c]{width:16px;height:16px;cursor:pointer}.std-page[data-v-e484e97e]{flex:1;overflow-y:auto;padding:20px}.page-hdr[data-v-e484e97e]{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.section-title[data-v-e484e97e]{font-size:14px;font-weight:700}.hint[data-v-e484e97e]{font-size:12px;color:var(--muted);margin-bottom:14px}.table-card[data-v-e484e97e]{overflow:hidden}.data-table td[data-v-e484e97e]{font-variant-numeric:tabular-nums}.std-page[data-v-f375d6d2]{flex:1;overflow-y:auto;padding:20px}.section-title[data-v-f375d6d2]{font-size:14px;font-weight:700;margin-bottom:6px}.hint[data-v-f375d6d2]{font-size:12px;color:var(--muted);margin-bottom:14px}.table-card[data-v-f375d6d2]{overflow:hidden}.data-table td[data-v-f375d6d2]{font-variant-numeric:tabular-nums}.num-input[data-v-f375d6d2]{width:70px;text-align:right;padding:4px 8px;border:1px solid var(--border);border-radius:4px;font-size:13px;font-variant-numeric:tabular-nums}.num-input[data-v-f375d6d2]:focus{border-color:var(--primary);outline:none}.std-page[data-v-862c3ca4]{flex:1;overflow-y:auto;padding:20px}.section-title[data-v-862c3ca4]{font-size:14px;font-weight:700;margin-bottom:6px}.hint[data-v-862c3ca4]{font-size:12px;color:var(--muted);margin-bottom:14px;line-height:1.6}.table-card[data-v-862c3ca4]{overflow:hidden}.data-table td[data-v-862c3ca4]{font-variant-numeric:tabular-nums}.u-input[data-v-862c3ca4]{padding:4px 8px;border:1px solid var(--border);border-radius:4px;font-size:13px;width:80px}.u-input[data-v-862c3ca4]:focus{border-color:var(--primary);outline:none}.std-page[data-v-7492aca4]{flex:1;overflow-y:auto;padding:20px}.page-hdr[data-v-7492aca4]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.section-title[data-v-7492aca4]{font-size:14px;font-weight:700}.sub[data-v-7492aca4]{font-size:12px;color:var(--muted);margin-top:3px}.summary-bar[data-v-7492aca4]{display:flex;gap:12px;margin-bottom:14px;flex-wrap:wrap}.s-card[data-v-7492aca4]{background:#fff;border:1px solid var(--border);border-left:4px solid var(--border);border-radius:8px;padding:12px 20px;min-width:140px}.s-card.orange[data-v-7492aca4]{border-left-color:var(--orange)}.s-l[data-v-7492aca4]{font-size:12px;color:var(--muted);margin-bottom:4px}.s-v[data-v-7492aca4]{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums}.sent-banner[data-v-7492aca4]{background:var(--green-light);color:var(--green);border:1px solid #bfe0c8;border-radius:8px;padding:10px 14px;font-size:13px;margin-bottom:14px}.table-card[data-v-7492aca4]{overflow:hidden}.data-table td[data-v-7492aca4]{font-variant-numeric:tabular-nums}.total-row td[data-v-7492aca4]{background:#f8f9fa}:root{--primary: #1a73e8;--primary-light: #e8f0fe;--green: #188038;--green-light: #e6f4ea;--red: #d93025;--red-light: #fce8e6;--orange: #b45309;--border: #dadce0;--bg: #f8f9fa;--text: #202124;--muted: #5f6368}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px}.btn{padding:6px 16px;border-radius:4px;border:none;cursor:pointer;font-size:13px;transition:background .15s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:#1557b0}.btn-ghost{background:#fff;color:var(--muted);border:1px solid var(--border)}.btn-ghost:hover{background:var(--bg)}.btn-danger{background:#fff;color:var(--red);border:1px solid #f5c6c3}.btn-danger:hover{background:var(--red-light)}.btn-sm{padding:4px 10px;font-size:12px}.ov{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:200;align-items:center;justify-content:center}.ov.open{display:flex}.modal{background:#fff;border-radius:10px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 24px 64px #00000040}.mhdr{padding:13px 18px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.mhdr h2{font-size:15px;font-weight:600}.mclose{background:none;border:none;font-size:22px;cursor:pointer;color:var(--muted);line-height:1}.mclose:hover{color:var(--red)}.mbody{padding:14px 18px;overflow-y:auto;flex:1}.mfoot{padding:10px 18px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end;flex-shrink:0}.form-input{width:100%;padding:6px 10px;border:1px solid var(--border);border-radius:4px;font-size:13px;outline:none}.form-input:focus{border-color:var(--primary)}.data-table{border-collapse:collapse;width:100%;font-size:13px}.data-table th{background:var(--bg);padding:8px 12px;border:1px solid var(--border);font-weight:600;font-size:12px;text-align:left;white-space:nowrap}.data-table td{padding:7px 12px;border:1px solid var(--border);vertical-align:middle}.data-table tr:hover td{background:#f8fbff}.text-right{text-align:right}.text-center{text-align:center}.fw-bold{font-weight:700}.text-primary{color:var(--primary)}.text-green{color:var(--green)}.text-orange{color:var(--orange)}.text-red{color:var(--red)}.text-muted{color:var(--muted)}.card{background:#fff;border-radius:8px;border:1px solid var(--border);box-shadow:0 1px 3px #00000014}@media print{@page{size:A3 landscape;margin:10mm}.no-print{display:none!important}.print-full{width:100%!important}}
