:root{--brand-red: #ff0036;--brand-ink: #111827;--bg: #f5f7fb;--card-bg: #ffffff;--border: #e8ecf3;--line: #f1f4f9;--text: #1f2937;--text-secondary: #6b7280;--green: #10b981;--yellow: #f59e0b;--red: #ef4444;--gray: #9ca3af;--radius: 16px;--shadow: 0 8px 24px rgba(17, 24, 39, .06);--font-cn: "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", "Segoe UI", sans-serif}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:var(--font-cn);-webkit-font-smoothing:antialiased}.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 24px}.brand-mark{display:inline-flex;align-items:baseline;gap:10px;font-weight:800;letter-spacing:.02em}.brand-mark .yubai{font-size:22px;background:linear-gradient(120deg,var(--brand-ink) 30%,var(--brand-red));-webkit-background-clip:text;background-clip:text;color:transparent}.brand-mark .sub{font-size:14px;font-weight:600;color:var(--text-secondary)}button,input,select{font-family:inherit}.page{display:grid;gap:18px}.page>*{min-width:0}.dim{opacity:.6;transition:opacity .15s}.card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;margin-bottom:10px}.card-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}.card-title h2{margin:0;font-size:15px;font-weight:700}.card-hint{font-size:12px;color:var(--text-secondary)}.pill{padding:5px 12px;border:1px solid var(--border);border-radius:999px;background:#fff;font-size:12px;color:var(--text-secondary);cursor:pointer}.pill:hover{color:var(--text)}.pill.active{background:var(--brand-ink);border-color:var(--brand-ink);color:#fff}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.table-scroll{position:relative;overflow:auto;max-height:calc(100vh - 120px)}.sheet{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.sheet th,.sheet td{padding:8px 10px;text-align:right}.sheet thead th{position:sticky;top:0;z-index:2;background:#fff;color:var(--text-secondary);font-size:12px;font-weight:600;border-bottom:1px solid var(--border)}.sheet tbody td{background:#fff;border-bottom:1px solid var(--line)}.sheet .stick{position:sticky;left:0;z-index:1;text-align:left;transition:box-shadow .15s}.sheet thead .stick{z-index:3}.table-scroll.scrolled-x .sheet .stick{box-shadow:6px 0 8px -6px #1118272e}.sheet tbody tr:hover td{background:#fafbfd}.sheet tbody .row-total td{background:#f6f8fb;font-weight:700;color:var(--brand-ink);border-bottom-color:var(--border)}.sheet tbody .row-month td{font-weight:700}.sheet .group-start{box-shadow:inset 1px 0 0 var(--border)}.sheet .week{margin-left:6px;color:var(--gray);font-weight:400}.sheet .weekend .week{color:var(--text);font-weight:600}.sheet .good{color:var(--green);font-weight:600}.sheet .bad{color:var(--red);font-weight:600}.sheet .alert,.sheet .alert td{color:var(--red)}.sheet [title]{cursor:default}.sheet thead th[title]{cursor:help}.state-line{margin:0;padding:40px 0;text-align:center;color:var(--text-secondary);font-size:14px}.state-line.error{color:var(--red)}@media(max-width:1180px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.card{padding:14px}.stat-grid{gap:10px}.table-scroll{max-height:calc(100vh - 96px)}.sheet{font-size:12px}.sheet th,.sheet td{padding:7px 8px}}
