:root{--color-bg: #0a0b0f;--color-surface: #13141a;--color-accent: #1AD8E6;--color-text: #ffffff;--color-muted: #888888;--color-border: rgba(26, 216, 230, .2);--color-border-active: #1AD8E6;--color-error: #FF4444;--color-divider: rgba(26, 216, 230, .15);--color-row-border: rgba(26, 216, 230, .08);--color-row-hover: rgba(26, 216, 230, .06);--color-overlay: rgba(0, 0, 0, .55);--color-ghost-border: rgba(136, 136, 136, .3);--radius: 6px;--spacing: 8px;--font-display: "Archivo", sans-serif;--font-body: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", monospace;--mantis-teal: #1AD8E6;--mantis-navy: #0a0b0f;--mantis-teal-90: rgba(26, 216, 230, .9);--mantis-teal-70: rgba(26, 216, 230, .7);--mantis-teal-50: rgba(26, 216, 230, .5);--mantis-teal-25: rgba(26, 216, 230, .25);--mantis-teal-10: rgba(26, 216, 230, .1);--mantis-white: #ffffff;--mantis-white-55: rgba(255, 255, 255, .55);--mantis-font-display: "JetBrains Mono", "Courier New", monospace;--mantis-font-body: system-ui, -apple-system, sans-serif;--mantis-font-heading: "Archivo", system-ui, sans-serif}[data-theme=light]{--color-bg: #f0f2f5;--color-surface: #ffffff;--color-accent: #0891b2;--color-text: #111318;--color-muted: #6b7280;--color-border: rgba(8, 145, 178, .25);--color-border-active: #0891b2;--color-error: #dc2626;--color-divider: rgba(0, 0, 0, .08);--color-row-border: rgba(0, 0, 0, .06);--color-row-hover: rgba(8, 145, 178, .05);--color-overlay: rgba(0, 0, 0, .4);--color-ghost-border: rgba(100, 100, 100, .25)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:14px;line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased}a{color:var(--color-accent);text-decoration:none}button{font-family:var(--font-body);font-size:13px;font-weight:600;cursor:pointer;border:none;border-radius:var(--radius);padding:8px 16px;transition:opacity .15s}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--color-accent);color:#0a0b0f}button.primary:hover:not(:disabled){opacity:.85}button.secondary{background:transparent;border:1px solid var(--color-accent);color:var(--color-accent)}button.secondary:hover:not(:disabled){background:var(--color-row-hover)}button.ghost{background:transparent;border:1px solid var(--color-ghost-border);color:var(--color-muted)}button.ghost:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}button.danger{background:transparent;border:1px solid var(--color-error);color:var(--color-error)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:24px}.card.active{border-color:var(--color-accent)}.mono{font-family:var(--font-mono)}.muted{color:var(--color-muted)}.auth-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;background:var(--color-bg)}.auth-brand{display:flex;align-items:center;gap:12px}.auth-brand-text{display:flex;flex-direction:column;gap:2px}.auth-brand-name{font-family:JetBrains Mono,Courier New,monospace;font-weight:700;font-size:28px;letter-spacing:.18em;color:#fff;text-shadow:0 0 10px rgba(26,216,230,.4),0 0 25px rgba(26,216,230,.1);line-height:1}.auth-brand-sub{font-family:JetBrains Mono,Courier New,monospace;font-size:9px;font-weight:400;color:#1ad8e6;letter-spacing:.1em;opacity:.45}.invite-prompt{max-width:360px;width:100%;text-align:center}.invite-prompt button{width:100%;justify-content:center}.cl-badge,.cl-logoBox,.cl-logoImage,[data-localization-key^=badge__]{display:none!important}.cl-cardBox>:not(.cl-card){display:none!important}.loading-wrap[data-v-b5e4d913]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg);font-size:13px}.table-card[data-v-d2f00e49]{padding:0;overflow:hidden}.table-header[data-v-d2f00e49]{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--color-divider);cursor:pointer;-webkit-user-select:none;user-select:none}.table-header:hover .section-title[data-v-d2f00e49]{color:var(--color-accent)}.header-right[data-v-d2f00e49]{display:flex;align-items:center;gap:12px}.chevron[data-v-d2f00e49]{color:var(--color-muted);transition:transform .2s ease;transform:rotate(-90deg)}.chevron-up[data-v-d2f00e49]{transform:rotate(0)}.dl-btn[data-v-d2f00e49]{display:flex;align-items:center;justify-content:center;padding:4px;background:none;border:none;color:var(--color-muted);cursor:pointer;border-radius:3px;transition:color .15s}.dl-btn[data-v-d2f00e49]:hover{color:var(--color-accent)}.section-title[data-v-d2f00e49]{font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.04em;text-transform:capitalize;transition:color .15s}.count[data-v-d2f00e49]{font-size:12px}.empty-state[data-v-d2f00e49]{padding:40px 24px;text-align:center;font-size:13px}.table-scroll[data-v-d2f00e49]{overflow-x:auto;-webkit-overflow-scrolling:touch}table[data-v-d2f00e49]{width:100%;border-collapse:collapse;min-width:400px}thead tr[data-v-d2f00e49]{border-bottom:1px solid var(--color-divider)}th[data-v-d2f00e49]{padding:10px 24px;text-align:left;font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--color-muted);text-transform:capitalize;letter-spacing:.05em;white-space:nowrap}td[data-v-d2f00e49]{padding:10px 24px;font-size:13px;border-bottom:1px solid var(--color-row-border);color:var(--color-text);white-space:nowrap}tbody tr:last-child td[data-v-d2f00e49]{border-bottom:none}.class-row td[data-v-d2f00e49]{padding:10px 24px 8px;background:#1ad8e60a;border-top:2px solid rgba(26,216,230,.2);border-bottom:none}.class-row:first-child td[data-v-d2f00e49]{border-top:none}.class-label[data-v-d2f00e49]{font-family:var(--font-display);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;max-width:100%}.group-row td[data-v-d2f00e49]{padding:7px 24px 5px 32px;background:#ffffff05;border-top:1px solid var(--color-divider);border-bottom:none}.group-row:first-child td[data-v-d2f00e49]{border-top:none}.group-info[data-v-d2f00e49]{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.group-name[data-v-d2f00e49]{font-size:12px;font-weight:600;color:var(--color-text)}.group-meta[data-v-d2f00e49]{font-size:11px;color:var(--color-muted)}.child-row td[data-v-d2f00e49]{padding:8px 24px 8px 40px}.child-row td[data-v-d2f00e49]:not(:first-child){padding-left:24px}.child-name[data-v-d2f00e49]{color:var(--color-text)}.child-bullet[data-v-d2f00e49]{color:var(--color-muted);margin-right:8px;font-size:11px}.row-clickable[data-v-d2f00e49]{cursor:pointer}.row-clickable:hover td[data-v-d2f00e49]{background:var(--color-row-hover)}.col-age[data-v-d2f00e49]{text-align:center;width:56px;min-width:56px}.col-amount[data-v-d2f00e49]{text-align:right}.status-badge[data-v-d2f00e49]{font-family:var(--font-mono);font-size:11px;padding:3px 9px;border-radius:3px;border:1px solid}.status-badge.paid[data-v-d2f00e49]{color:var(--color-accent);border-color:#1ad8e666;background:#1ad8e614}.status-badge.unpaid[data-v-d2f00e49]{color:var(--color-error);border-color:#f446;background:#ff444414}.status-badge.partial[data-v-d2f00e49],.status-badge.unknown[data-v-d2f00e49]{color:var(--color-muted);border-color:#8888884d}.collapse-enter-active[data-v-d2f00e49],.collapse-leave-active[data-v-d2f00e49]{transition:opacity .2s ease}.collapse-enter-from[data-v-d2f00e49],.collapse-leave-to[data-v-d2f00e49]{opacity:0}@media(max-width:640px){.table-header[data-v-d2f00e49]{padding:14px 16px}th[data-v-d2f00e49]{padding:8px 16px;font-size:10px}td[data-v-d2f00e49]{padding:10px 16px;font-size:12px}table[data-v-d2f00e49]{min-width:unset}.col-email[data-v-d2f00e49],.col-phone[data-v-d2f00e49],.col-enrolled[data-v-d2f00e49],.col-amount[data-v-d2f00e49],.col-class-child[data-v-d2f00e49]{display:none}.class-row td[data-v-d2f00e49]{padding:8px 16px 6px}.group-row td[data-v-d2f00e49]{padding:6px 16px 5px 20px}.group-meta[data-v-d2f00e49]{display:none}.child-row td[data-v-d2f00e49]{padding:8px 16px 8px 28px}.child-row td[data-v-d2f00e49]:not(:first-child){padding-left:16px}}.form-overlay[data-v-77df60a6]{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-overlay);z-index:200;display:flex;align-items:center;justify-content:center;padding:24px}.form-modal[data-v-77df60a6]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;width:100%;max-width:480px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.form-header[data-v-77df60a6]{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--color-divider);flex-shrink:0}.form-title[data-v-77df60a6]{font-family:var(--font-display);font-weight:700;font-size:15px;letter-spacing:.03em;color:var(--color-text);margin-bottom:3px}.form-subtitle[data-v-77df60a6]{font-size:11px}.form-body[data-v-77df60a6]{overflow-y:auto;-webkit-overflow-scrolling:touch;flex:1}.form-section[data-v-77df60a6]{padding:18px 24px;border-bottom:1px solid var(--color-row-border)}.child-section[data-v-77df60a6]{background:#1ad8e605}.child-section-header[data-v-77df60a6]{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.child-section-header .form-section-label[data-v-77df60a6]{margin-bottom:0}.form-section-label[data-v-77df60a6]{font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);margin-bottom:14px}.form-section-header-row[data-v-77df60a6]{display:flex;align-items:baseline;gap:10px;margin-bottom:4px}.form-section-header-row .form-section-label[data-v-77df60a6]{margin-bottom:0}.form-section-cls[data-v-77df60a6]{font-size:11px}.form-note[data-v-77df60a6]{font-size:11px;margin-bottom:14px;line-height:1.5}.form-row[data-v-77df60a6]{display:flex;align-items:center;gap:12px;margin-bottom:10px}.form-row[data-v-77df60a6]:last-child{margin-bottom:0}.form-label[data-v-77df60a6]{font-family:var(--font-mono);font-size:11px;color:var(--color-muted);min-width:90px;flex-shrink:0}.form-input[data-v-77df60a6],.form-select[data-v-77df60a6]{flex:1;background:var(--color-bg);border:1px solid var(--color-ghost-border);border-radius:4px;color:var(--color-text);font-size:13px;padding:7px 10px;outline:none;transition:border-color .15s;min-width:0}.form-input[data-v-77df60a6]:focus,.form-select[data-v-77df60a6]:focus{border-color:var(--color-accent)}.form-input.readonly[data-v-77df60a6]{color:var(--color-muted);cursor:default}.form-input[type=date][data-v-77df60a6],.form-input[type=number][data-v-77df60a6]{font-family:var(--font-mono)}.form-input[data-v-77df60a6]::placeholder{color:var(--color-muted);opacity:.6}.select-wrap[data-v-77df60a6]{flex:1;min-width:0}.form-select[data-v-77df60a6]{width:100%;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:28px}.form-select option[data-v-77df60a6]{background:var(--color-surface)}.add-child-btn[data-v-77df60a6]{display:flex;align-items:center;gap:8px;width:100%;padding:14px 24px;background:none;border:none;border-top:1px dashed var(--color-ghost-border);color:var(--color-accent);font-family:var(--font-mono);font-size:12px;cursor:pointer;transition:background .15s}.add-child-btn[data-v-77df60a6]:hover{background:var(--color-row-hover)}.req[data-v-77df60a6]{color:var(--color-error);font-size:10px}.input-wrap[data-v-77df60a6]{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.input-wrap .form-input[data-v-77df60a6]{flex:none}.field-err[data-v-77df60a6]{font-family:var(--font-mono);font-size:10px;color:var(--color-error)}.form-input.invalid[data-v-77df60a6]{border-color:var(--color-error)}.form-footer[data-v-77df60a6]{padding:16px 24px;border-top:1px solid var(--color-divider);flex-shrink:0}.form-error[data-v-77df60a6]{font-size:12px;color:var(--color-error);margin-bottom:12px}.form-actions[data-v-77df60a6]{display:flex;gap:10px;justify-content:flex-end}button.primary[data-v-77df60a6]{background:var(--color-accent);color:#000;border:none;border-radius:4px;padding:8px 20px;font-family:var(--font-display);font-size:13px;font-weight:700;cursor:pointer;transition:opacity .15s}button.primary[data-v-77df60a6]:disabled{opacity:.5;cursor:default}button.primary[data-v-77df60a6]:hover:not(:disabled){opacity:.85}.icon-btn.sm[data-v-77df60a6]{padding:4px}@media(max-width:520px){.form-overlay[data-v-77df60a6]{padding:0;align-items:flex-end}.form-modal[data-v-77df60a6]{max-width:100%;max-height:92vh;border-radius:16px 16px 0 0}.form-label[data-v-77df60a6]{min-width:72px;font-size:10px}}.layout[data-v-d821d697]{min-height:100vh;background:var(--color-bg);display:flex;flex-direction:column}.topbar[data-v-d821d697]{display:flex;align-items:center;justify-content:space-between;padding:16px 32px;border-bottom:1px solid var(--color-divider);position:sticky;top:0;background:var(--color-bg);z-index:10}.topbar-brand[data-v-d821d697]{display:flex;align-items:center;gap:10px}.brand-name[data-v-d821d697]{font-family:JetBrains Mono,Courier New,monospace;font-weight:700;font-size:15px;letter-spacing:.1em;color:var(--color-text)}[data-theme=light] .brand-logo line[data-v-d821d697]{stroke:#0e7490}[data-theme=light] .brand-logo circle[data-v-d821d697]{fill:#0e7490}[data-theme=light] .brand-logo line[stroke-width="2"][data-v-d821d697]{stroke:var(--color-surface)}.brand-separator[data-v-d821d697]{color:var(--color-muted);font-size:13px}.brand-client[data-v-d821d697]{font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.04em;color:var(--color-muted)}.topbar-right[data-v-d821d697]{display:flex;align-items:center;gap:16px}.sync-time[data-v-d821d697]{font-size:12px}.topbar-right button[data-v-d821d697]{display:flex;align-items:center;gap:6px}.content[data-v-d821d697]{padding:32px;display:flex;flex-direction:column;gap:20px;max-width:1200px;width:100%;margin:0 auto}@keyframes fadeUp-d821d697{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.animate[data-v-d821d697]{opacity:0;animation:fadeUp-d821d697 .5s cubic-bezier(.16,1,.3,1) both;animation-delay:var(--delay, 0s)}.stats-row[data-v-d821d697]{display:flex;gap:16px}.stat-card[data-v-d821d697]{display:flex;flex-direction:column;gap:8px;flex:1;padding:28px;cursor:pointer;transition:border-color .15s,opacity .2s,transform .15s;-webkit-user-select:none;user-select:none}.stat-card[data-v-d821d697]:hover{border-color:var(--color-accent)}.stat-card.focused[data-v-d821d697]{border-color:var(--color-accent);box-shadow:0 0 0 1px var(--color-accent),0 4px 16px #1ad8e61f;transform:translateY(-1px)}.stat-card.faded[data-v-d821d697]{opacity:.35}.stat-icon[data-v-d821d697]{margin-bottom:4px}.stat-value[data-v-d821d697]{font-size:42px;font-weight:500;line-height:1;color:var(--color-text);transition:opacity .2s ease}.stat-card[data-v-d821d697]:has(.stat-value){transition:opacity .3s ease,border-color .2s ease,transform .2s ease}.stat-label[data-v-d821d697]{font-size:13px;font-weight:600;color:var(--color-text);text-transform:capitalize}.stat-desc[data-v-d821d697]{font-size:12px;line-height:1.4;display:flex;flex-direction:column;gap:4px}.new-badge[data-v-d821d697]{display:inline-block;font-size:11px;font-weight:600;color:#1ad8e6;letter-spacing:.02em}.text-error[data-v-d821d697]{color:var(--color-error)}.lapsed-toolbar[data-v-d821d697]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 24px;border-bottom:1px solid var(--color-divider);flex-wrap:wrap}.lapsed-filters[data-v-d821d697]{flex:1}.lapsed-select[data-v-d821d697]{font-family:var(--font-mono);font-size:12px;padding:6px 10px;border-radius:4px;border:1px solid var(--color-divider);background:var(--color-bg);color:var(--color-text);cursor:pointer;width:100%;max-width:320px;outline:none;transition:border-color .15s}.lapsed-select[data-v-d821d697]:focus{border-color:var(--color-accent)}.lapsed-select option[data-v-d821d697],.lapsed-select optgroup[data-v-d821d697]{background:var(--color-card);color:var(--color-text)}.btn-draft-email[data-v-d821d697]{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:6px 14px;border-radius:4px;border:1px solid var(--color-accent);color:var(--color-accent);background:#1ad8e60f;cursor:pointer;white-space:nowrap;transition:background .15s}.btn-draft-email[data-v-d821d697]:hover{background:#1ad8e624}.draft-count[data-v-d821d697]{font-size:11px;background:#1ad8e626;padding:1px 6px;border-radius:3px}.charts-row[data-v-d821d697]{display:flex;gap:16px}.chart-card[data-v-d821d697]{flex:1;display:flex;flex-direction:column;gap:12px}.chart-card--center[data-v-d821d697]{align-items:center}.chart-heading[data-v-d821d697]{font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.04em;text-transform:capitalize;display:flex;align-items:baseline;gap:8px}.chart-heading-range[data-v-d821d697]{font-family:var(--font-mono);font-size:11px;font-weight:400;color:var(--color-muted);letter-spacing:.02em;text-transform:none}.range-hint[data-v-d821d697]{font-family:var(--font-mono);font-size:10px;color:var(--color-muted)}.chart-sub[data-v-d821d697]{font-size:11px;margin-top:-6px}.chart-empty[data-v-d821d697]{font-size:12px;padding:16px 0}.funnel-bars[data-v-d821d697]{display:flex;flex-direction:column;gap:10px;margin-top:4px}.funnel-row[data-v-d821d697]{display:flex;align-items:center;gap:10px}.funnel-label[data-v-d821d697]{font-size:11px;min-width:58px;text-align:right;flex-shrink:0}.funnel-track[data-v-d821d697]{flex:1;height:8px;background:#ffffff0f;border-radius:4px;overflow:hidden}.funnel-fill[data-v-d821d697]{height:100%;border-radius:4px;transition:width .6s cubic-bezier(.16,1,.3,1)}.funnel-count[data-v-d821d697]{font-size:11px;min-width:24px}.donut-wrap[data-v-d821d697]{display:flex;align-items:center;gap:20px;width:100%}.payment-breakdown-card[data-v-d821d697]{min-width:0}.breakdown-table[data-v-d821d697]{width:100%;margin-top:4px}.breakdown-header[data-v-d821d697],.breakdown-row[data-v-d821d697],.breakdown-total[data-v-d821d697]{display:grid;grid-template-columns:1fr 48px 56px 90px;align-items:center;gap:8px;font-size:12px;padding:5px 0}.breakdown-header[data-v-d821d697]{color:var(--color-muted);font-size:11px;letter-spacing:.04em;border-bottom:1px solid var(--color-divider);padding-bottom:8px;margin-bottom:2px}.breakdown-row[data-v-d821d697]{border-bottom:1px solid var(--color-row-border)}.breakdown-row[data-v-d821d697]:last-of-type{border-bottom:none}.breakdown-class[data-v-d821d697]{color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.breakdown-num[data-v-d821d697]{text-align:right}.breakdown-amt[data-v-d821d697]{text-align:right;color:var(--color-muted)}.breakdown-total[data-v-d821d697]{border-top:1px solid var(--color-divider);margin-top:4px;padding-top:8px;font-weight:600;color:var(--color-text)}.donut-svg[data-v-d821d697]{width:100px;height:100px;flex-shrink:0;color:var(--color-text)}.donut-legend[data-v-d821d697]{display:flex;flex-direction:column;gap:8px;flex:1}.legend-row[data-v-d821d697]{display:flex;align-items:center;gap:8px}.legend-dot[data-v-d821d697]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.legend-row .muted[data-v-d821d697]{font-size:12px;flex:1}.legend-val[data-v-d821d697]{font-size:12px}.legend-amount[data-v-d821d697]{font-family:var(--font-mono);font-size:11px;padding-left:16px;margin-top:-4px}.class-bars[data-v-d821d697]{display:flex;flex-direction:column;gap:8px;margin-top:4px;width:100%}.class-row[data-v-d821d697]{display:flex;align-items:center;gap:10px}.class-label[data-v-d821d697]{font-size:11px;min-width:90px;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0}.class-track[data-v-d821d697]{flex:1;height:8px;background:#ffffff0f;border-radius:4px;overflow:hidden}.class-fill[data-v-d821d697]{height:100%;background:var(--color-accent);border-radius:4px;opacity:.7;transition:width .6s cubic-bezier(.16,1,.3,1)}.class-count[data-v-d821d697]{font-size:11px;min-width:24px}.table-section[data-v-d821d697]{transition:opacity .25s;scroll-margin-top:80px}.table-section.section-dimmed[data-v-d821d697]{opacity:.25}.table-card[data-v-d821d697]{padding:0;overflow:hidden}.table-header[data-v-d821d697]{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--color-divider);cursor:pointer;-webkit-user-select:none;user-select:none}.table-header:hover .section-title[data-v-d821d697]{color:var(--color-accent)}.header-right[data-v-d821d697]{display:flex;align-items:center;gap:12px}.chevron[data-v-d821d697]{color:var(--color-muted);transition:transform .2s ease;transform:rotate(-90deg)}.chevron-up[data-v-d821d697]{transform:rotate(0)}.dl-btn[data-v-d821d697]{display:flex;align-items:center;justify-content:center;padding:4px;background:none;border:none;color:var(--color-muted);cursor:pointer;border-radius:3px;transition:color .15s}.dl-btn[data-v-d821d697]:hover{color:var(--color-accent)}.empty-state[data-v-d821d697]{padding:40px 24px;text-align:center;font-size:13px}.table-scroll[data-v-d821d697]{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-scroll table[data-v-d821d697]{width:100%;border-collapse:collapse;min-width:400px}.table-scroll thead tr[data-v-d821d697]{border-bottom:1px solid var(--color-divider)}.table-scroll th[data-v-d821d697]{padding:10px 24px;text-align:left;font-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--color-muted);text-transform:capitalize;letter-spacing:.05em;white-space:nowrap}.table-scroll td[data-v-d821d697]{padding:10px 24px;font-size:13px;border-bottom:1px solid var(--color-row-border);color:var(--color-text);white-space:nowrap}.table-scroll tbody tr:last-child td[data-v-d821d697]{border-bottom:none}.table-scroll .row-clickable[data-v-d821d697]{cursor:pointer}.table-scroll .row-clickable:hover td[data-v-d821d697]{background:var(--color-row-hover)}.table-scroll .col-amount[data-v-d821d697]{text-align:right}.collapse-enter-active[data-v-d821d697],.collapse-leave-active[data-v-d821d697]{transition:opacity .2s ease}.collapse-enter-from[data-v-d821d697],.collapse-leave-to[data-v-d821d697]{opacity:0}@media(max-width:640px){.table-scroll .col-email[data-v-d821d697],.table-scroll .col-phone[data-v-d821d697]{display:none}}.error-card[data-v-d821d697]{display:flex;align-items:center;gap:10px;border-color:var(--color-error);color:var(--color-error);font-size:13px}.admin-banner[data-v-d821d697]{display:flex;align-items:center;gap:16px;padding:8px 32px;background:var(--color-row-hover);border-bottom:1px solid var(--color-divider);font-size:12px}.spinning[data-v-d821d697]{animation:spin-d821d697 .8s linear infinite}@keyframes spin-d821d697{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.panel-overlay[data-v-d821d697]{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-overlay);z-index:100;display:flex;justify-content:flex-end}.detail-panel[data-v-d821d697]{width:360px;max-width:100vw;height:100%;background:var(--color-surface);border-left:1px solid var(--color-border);display:flex;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch}.panel-handle[data-v-d821d697]{display:none}.panel-header[data-v-d821d697]{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--color-divider);position:sticky;top:0;background:var(--color-surface);z-index:1}.panel-header-actions[data-v-d821d697]{display:flex;align-items:center;gap:8px;flex-shrink:0}button.secondary.sm[data-v-d821d697]{padding:5px 10px;font-size:12px;gap:5px}.panel-title[data-v-d821d697]{font-family:var(--font-display);font-weight:700;font-size:15px;letter-spacing:.03em;color:var(--color-text);margin-bottom:4px}.panel-subtitle[data-v-d821d697]{font-size:11px}.icon-btn[data-v-d821d697]{padding:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.panel-body[data-v-d821d697]{padding:8px 0 40px;display:flex;flex-direction:column}.panel-section[data-v-d821d697]{padding:20px 24px;border-bottom:1px solid var(--color-row-border)}.panel-section[data-v-d821d697]:last-child{border-bottom:none}.panel-section-label[data-v-d821d697]{font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);margin-bottom:14px}.panel-field[data-v-d821d697]{display:flex;align-items:baseline;gap:12px;padding:6px 0}.field-label[data-v-d821d697]{font-size:11px;min-width:90px;flex-shrink:0}.field-value[data-v-d821d697]{font-size:13px;color:var(--color-text);word-break:break-all}.field-copy[data-v-d821d697]{color:var(--color-accent);cursor:pointer;transition:opacity .15s}.field-copy[data-v-d821d697]:hover{opacity:.75}.field-copy.copied[data-v-d821d697]{color:var(--color-muted)}.field-link[data-v-d821d697]{color:var(--color-accent);text-decoration:none;transition:opacity .15s}.field-link[data-v-d821d697]:hover{opacity:.75;text-decoration:underline}.panel-field .status-badge[data-v-d821d697]{font-family:var(--font-mono);font-size:11px;padding:3px 9px;border-radius:3px;border:1px solid}.panel-field .status-badge.paid[data-v-d821d697]{color:var(--color-accent);border-color:#1ad8e666;background:#1ad8e614}.panel-field .status-badge.unpaid[data-v-d821d697]{color:var(--color-error);border-color:#f446;background:#ff444414}.panel-field .status-badge.partial[data-v-d821d697],.panel-field .status-badge.unknown[data-v-d821d697]{color:var(--color-muted);border-color:#8888884d}.panel-enter-active[data-v-d821d697],.panel-leave-active[data-v-d821d697]{transition:opacity .2s ease}.panel-enter-active .detail-panel[data-v-d821d697],.panel-leave-active .detail-panel[data-v-d821d697]{transition:transform .28s cubic-bezier(.16,1,.3,1)}.panel-enter-from[data-v-d821d697],.panel-leave-to[data-v-d821d697]{opacity:0}.panel-enter-from .detail-panel[data-v-d821d697],.panel-leave-to .detail-panel[data-v-d821d697]{transform:translate(100%)}[data-theme=light] .funnel-track[data-v-d821d697],[data-theme=light] .class-track[data-v-d821d697]{background:#0000000f}.modal-overlay[data-v-d821d697]{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-overlay);z-index:200;display:flex;align-items:center;justify-content:center;padding:24px}.modal[data-v-d821d697]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:calc(var(--radius) * 2);width:100%;max-width:580px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 64px #0006}.modal-header[data-v-d821d697]{display:flex;align-items:flex-start;justify-content:space-between;padding:24px 24px 20px;border-bottom:1px solid var(--color-divider);flex-shrink:0}.modal-title[data-v-d821d697]{font-family:var(--font-display);font-weight:700;font-size:17px;letter-spacing:.02em;margin-bottom:4px}.modal-subtitle[data-v-d821d697]{font-size:11px}.modal-header-actions[data-v-d821d697]{display:flex;align-items:center;gap:8px;flex-shrink:0}.modal-email-btn[data-v-d821d697]{display:flex;align-items:center;gap:6px;font-size:12px;padding:6px 12px}.modal-body[data-v-d821d697]{overflow-y:auto;flex:1;padding:8px 0}.modal-row[data-v-d821d697]{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 24px;cursor:pointer;border-bottom:1px solid var(--color-row-border);transition:background .1s}.modal-row[data-v-d821d697]:last-child{border-bottom:none}.modal-row[data-v-d821d697]:hover{background:var(--color-row-hover)}.modal-row-main[data-v-d821d697]{display:flex;flex-direction:column;gap:2px;min-width:0}.modal-row-name[data-v-d821d697]{font-size:13px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal-row-class[data-v-d821d697]{font-size:11px}.modal-row-meta[data-v-d821d697]{display:flex;align-items:center;gap:10px;flex-shrink:0}.modal-row-email[data-v-d821d697]{font-size:11px;color:var(--color-accent);text-decoration:none}.modal-row-email[data-v-d821d697]:hover{text-decoration:underline}.modal-row-phone[data-v-d821d697]{font-size:11px}.modal-empty[data-v-d821d697]{padding:40px 24px;text-align:center;font-size:13px}.modal-row .status-badge[data-v-d821d697]{font-family:var(--font-mono);font-size:10px;padding:2px 7px;border-radius:3px;border:1px solid}.modal-row .status-badge.paid[data-v-d821d697]{color:var(--color-accent);border-color:#1ad8e666;background:#1ad8e614}.modal-row .status-badge.unpaid[data-v-d821d697]{color:var(--color-error);border-color:#f446;background:#ff444414}.modal-row .status-badge.partial[data-v-d821d697],.modal-row .status-badge.unknown[data-v-d821d697]{color:var(--color-muted);border-color:#8888884d}.modal-enter-active[data-v-d821d697],.modal-leave-active[data-v-d821d697]{transition:opacity .2s ease}.modal-enter-active .modal[data-v-d821d697],.modal-leave-active .modal[data-v-d821d697]{transition:transform .22s cubic-bezier(.16,1,.3,1),opacity .2s ease}.modal-enter-from[data-v-d821d697],.modal-leave-to[data-v-d821d697]{opacity:0}.modal-enter-from .modal[data-v-d821d697],.modal-leave-to .modal[data-v-d821d697]{transform:scale(.95);opacity:0}@media(max-width:640px){.topbar[data-v-d821d697]{padding:12px 16px;gap:8px}.brand-client[data-v-d821d697],.brand-separator[data-v-d821d697],.sync-time[data-v-d821d697]{display:none}.topbar-right[data-v-d821d697]{gap:8px}.btn-label[data-v-d821d697]{display:none}.topbar-right button[data-v-d821d697]{padding:8px 10px}.admin-banner[data-v-d821d697]{padding:8px 16px}.content[data-v-d821d697]{padding:16px;gap:14px}.stats-row[data-v-d821d697]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat-card[data-v-d821d697]{padding:18px;gap:6px}.stat-value[data-v-d821d697]{font-size:32px}.stat-desc[data-v-d821d697]{display:none}.charts-row[data-v-d821d697]{flex-direction:column}.panel-overlay[data-v-d821d697]{justify-content:flex-start;align-items:flex-end}.detail-panel[data-v-d821d697]{width:100%;height:88vh;border-left:none;border-top:1px solid var(--color-border);border-radius:16px 16px 0 0}.panel-handle[data-v-d821d697]{display:block;width:40px;height:4px;background:#8886;border-radius:2px;margin:12px auto 0;flex-shrink:0}.panel-enter-from .detail-panel[data-v-d821d697],.panel-leave-to .detail-panel[data-v-d821d697]{transform:translateY(100%)}}.semester-filter[data-v-d821d697]{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.semester-chip[data-v-d821d697]{font-family:var(--font-mono);font-size:11px;padding:5px 12px;border-radius:20px;border:1px solid var(--color-border);background:none;color:var(--color-muted);cursor:pointer;transition:border-color .15s,color .15s,background .15s;white-space:nowrap}.semester-chip[data-v-d821d697]:hover{border-color:var(--color-accent);color:var(--color-text)}.semester-chip.active[data-v-d821d697]{border-color:var(--color-accent);color:var(--color-accent);background:#1ad8e614}.upload-modal[data-v-d821d697]{max-width:500px}.upload-tabs[data-v-d821d697]{display:flex;border-bottom:1px solid var(--color-divider);flex-shrink:0}.upload-tab[data-v-d821d697]{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:14px 12px;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:border-color .15s,background .1s;color:var(--color-text)}.upload-tab[data-v-d821d697]:hover{background:var(--color-row-hover)}.upload-tab.active[data-v-d821d697]{border-bottom-color:var(--color-accent)}.upload-tab-label[data-v-d821d697]{font-family:var(--font-display);font-weight:700;font-size:12px;letter-spacing:.04em}.upload-tab-sub[data-v-d821d697]{font-size:10px}.upload-modal-body[data-v-d821d697]{padding:24px}.dropzone[data-v-d821d697]{border:1px dashed var(--color-border);border-radius:var(--radius);padding:32px 24px;transition:border-color .15s,background .15s}.dropzone.drag-over[data-v-d821d697]{border-color:var(--color-accent);background:#1ad8e60d}.dropzone-content[data-v-d821d697]{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}.dropzone-icon[data-v-d821d697]{color:var(--color-muted);opacity:.5}.dropzone-sub[data-v-d821d697]{font-size:13px}.upload-btn[data-v-d821d697]{cursor:pointer;font-size:12px;padding:6px 16px}.upload-result[data-v-d821d697]{font-size:12px;font-family:var(--font-mono);color:var(--color-accent)}.upload-result.error[data-v-d821d697]{color:var(--color-error)}.upload-cols[data-v-d821d697]{display:block;margin-top:6px;font-size:11px;color:var(--color-muted);word-break:break-all}.search-overlay[data-v-d821d697]{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-overlay);z-index:300;display:flex;align-items:flex-start;justify-content:center;padding-top:80px;padding-left:16px;padding-right:16px}.search-box[data-v-d821d697]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;width:100%;max-width:560px;overflow:hidden;box-shadow:0 24px 48px #0006}.search-input-row[data-v-d821d697]{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--color-divider)}.search-icon[data-v-d821d697]{color:var(--color-muted);flex-shrink:0}.search-input[data-v-d821d697]{flex:1;background:none;border:none;outline:none;color:var(--color-text);font-size:15px;font-family:var(--font-display)}.search-input[data-v-d821d697]::placeholder{color:var(--color-muted)}.search-hint[data-v-d821d697]{padding:16px;font-size:12px;text-align:center}.search-empty[data-v-d821d697]{padding:20px 16px;font-size:12px;text-align:center}.search-results[data-v-d821d697]{max-height:420px;overflow-y:auto;-webkit-overflow-scrolling:touch}.search-result[data-v-d821d697]{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;border-bottom:1px solid var(--color-row-border);cursor:pointer;transition:background .1s}.search-result[data-v-d821d697]:last-child{border-bottom:none}.search-result[data-v-d821d697]:hover{background:var(--color-row-hover)}.result-badge[data-v-d821d697]{font-family:var(--font-mono);font-size:10px;font-weight:600;padding:2px 7px;border-radius:3px;border:1px solid;flex-shrink:0;margin-top:2px;text-transform:uppercase;letter-spacing:.05em}.result-badge.active[data-v-d821d697]{color:var(--color-accent);border-color:#1ad8e666;background:#1ad8e614}.result-badge.trial[data-v-d821d697]{color:#a78bfa;border-color:#a78bfa66;background:#a78bfa14}.result-badge.lapsed[data-v-d821d697]{color:var(--color-muted);border-color:#8888884d;background:transparent}.result-info[data-v-d821d697]{flex:1;min-width:0}.result-name[data-v-d821d697]{font-size:14px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-parent[data-v-d821d697]{font-weight:400;font-size:13px}.result-meta[data-v-d821d697]{font-size:11px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:640px){.search-overlay[data-v-d821d697]{padding-top:20px}}
