/* v2 — bytes bumped 2026-09-08 so the ?v= hash moves past a Cloudflare-cached 404 (see server.js _assetHashMatchesLocal). */
/* Students7 teacher goals — reuses the platform's light/dark tokens. */
.te-root{max-width:1400px;margin:0 auto;color:var(--text);font-family:var(--font-sans);font-size:14px;font-variant-numeric:tabular-nums;padding:24px 28px 32px}
.te-root *{box-sizing:border-box}.te-root h2,.te-root h3,.te-root p{margin:0}.te-root svg{width:18px;height:18px;flex:none}.te-root .btn{gap:7px;white-space:nowrap}
#teacherEarningsView{display:block;overflow-y:auto;width:100%;flex:1;min-height:0}.te-root .btn-primary,.te-celebration .btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg)}.te-root .btn-primary:hover,.te-celebration .btn-primary:hover{background:var(--accent-hover)}
.te-header{display:flex;justify-content:space-between;align-items:center;gap:24px}.te-header h2{font-size:28px;letter-spacing:-.9px;line-height:1.3;margin:7px 0}.te-header p{line-height:1.6;max-width:690px}
.te-eyebrow{font-size:10px;font-weight:700;letter-spacing:1.5px;color:var(--text-tertiary)}.te-header-actions{display:flex;gap:8px;align-items:center;flex:none}.te-month{width:164px;height:36px;font-family:inherit;font-size:12px}
.te-muted{color:var(--text-secondary);font-size:12px;line-height:1.6}.te-sync{display:flex;gap:6px;align-items:center;color:var(--text-tertiary);font-size:11px;margin:16px 0}.te-sync svg{width:12px;height:12px}
.te-personal-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);gap:20px}.te-salary-card,.te-how,.te-metric,.te-history{background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm)}
.te-salary-card{padding:24px 28px 22px;position:relative;border-top:3px solid var(--accent)}.te-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.te-person{display:flex;gap:10px;align-items:center}.te-person>div{display:flex;flex-direction:column;gap:1px}.te-person strong{font-size:14px}.te-avatar{width:36px;height:36px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-weight:700;border-radius:10px;flex:none}
.te-badge{display:inline-flex;align-items:center;padding:5px 9px;border-radius:20px;font-size:10px;font-weight:600;background:var(--surface-sunken);color:var(--text-secondary);line-height:1.3}.te-blue{color:var(--accent);background:var(--accent-soft)}.te-green{color:var(--success);background:var(--success-soft)}
.te-salary-card>.te-eyebrow{margin-top:25px}.te-salary-line{display:flex;gap:10px;align-items:baseline;margin:6px 0 10px}.te-salary{font-family:var(--font-display);font-weight:500;font-size:66px;line-height:1.03;letter-spacing:-2.5px}.te-currency{font-size:21px;font-weight:500;color:var(--text-tertiary)}.te-salary-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.te-salary-meta .te-badge{font-size:12px}
.te-next-goal{margin-top:26px}.te-next-goal>.te-card-top{font-size:12px}.te-next-goal>.te-card-top>span{color:var(--accent);font-weight:600;white-space:nowrap}.te-next-goal p{font-size:11px;margin-top:9px}
.te-meter{height:8px;background:var(--surface-sunken);border-radius:5px;overflow:hidden;margin-top:12px}.te-meter>span{height:100%;display:block;background:var(--accent);border-radius:5px;transition:width 180ms ease}.te-meter-small{height:5px;margin-top:7px}
.te-milestones{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:23px;padding-top:19px;border-top:1px solid var(--border-subtle)}.te-milestone{display:grid;grid-template-columns:26px 1fr;gap:2px 7px;align-items:center}.te-goal-icon{grid-row:span 2;width:26px;height:26px;border-radius:50%;background:var(--surface-sunken);color:var(--text-tertiary);display:grid;place-items:center}.te-goal-icon svg{width:13px;height:13px}.te-milestone strong{font-size:12px}.te-milestone>span:last-child{font-size:10px;color:var(--text-tertiary)}.te-milestone.is-reached .te-goal-icon{background:var(--success-soft);color:var(--success)}.te-milestone.is-next .te-goal-icon{background:var(--accent-soft);color:var(--accent)}.te-milestone.is-next strong{color:var(--accent)}
.te-how{padding:24px}.te-how h3{font-size:16px;margin-bottom:20px;letter-spacing:-.3px}.te-rate{display:flex;align-items:center;gap:10px;margin:18px 0}.te-icon{width:32px;height:32px;background:var(--surface-sunken);border-radius:9px;display:grid;place-items:center;flex:none}.te-icon.te-blue{background:var(--accent-soft)}.te-icon.te-green{background:var(--success-soft)}.te-rate>div{display:flex;flex-direction:column;flex:1;min-width:0}.te-rate strong{font-size:12px}.te-rate .te-muted{font-size:10px}.te-rate>b{font-size:16px;white-space:nowrap}.te-combined{display:flex;justify-content:space-between;gap:12px;background:var(--surface-sunken);border-radius:8px;padding:12px;font-size:11px}.te-combined strong{white-space:nowrap}.te-day-gain{margin-top:22px;padding-top:18px;border-top:1px solid var(--border-subtle)}.te-day-gain>div{display:flex;gap:6px;align-items:center;font-size:11px;color:var(--success)}.te-day-gain>strong{display:block;font-size:28px;letter-spacing:-.8px;margin:7px 0}.te-day-gain p{font-size:11px}.te-footnote{font-size:10px;line-height:1.7;color:var(--text-tertiary);margin-top:18px!important}
.te-breakdown{margin-top:24px}.te-section-heading{display:flex;gap:14px;align-items:center;justify-content:space-between;margin-bottom:13px}.te-section-heading h3{font-size:15px;letter-spacing:-.3px}.te-breakdown-grid,.te-team-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.te-metric{padding:17px 19px;display:flex;flex-direction:column;gap:6px;min-width:0}.te-metric-top{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:11px;color:var(--text-secondary)}.te-metric-top .te-icon{width:28px;height:28px}.te-metric-top svg{width:15px;height:15px}.te-metric>strong{font-size:27px;font-weight:600;letter-spacing:-.8px;margin-top:4px}.te-metric>.te-muted{font-size:10px}.te-team-metrics{margin-bottom:22px}
.te-history{margin-top:22px;overflow:hidden}.te-history>.te-section-heading{padding:18px 21px;margin:0}.te-table-scroll{overflow-x:auto}.te-table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}.te-table th,.te-table td{padding:14px 21px;text-align:right;border-top:1px solid var(--border-subtle)}.te-table th:first-child,.te-table td:first-child{text-align:left}.te-table thead th{font-size:10px;font-weight:500;color:var(--text-tertiary);background:var(--surface-sunken)}.te-table tbody th{font-weight:500}.te-table tr:hover{background:var(--surface-hover)}.te-positive{color:var(--success);font-weight:600}.te-history-more{display:flex!important;margin:12px auto!important;font-size:12px!important}.te-team-table th,.te-team-table td{padding:17px 14px}.te-team-table th:first-child{padding-left:20px}.te-team-table .te-person .te-muted{font-size:10px}.te-team-table td:nth-last-child(2){min-width:178px;font-size:10px;text-align:left}.te-table-salary{font-weight:700;font-size:15px}.te-detail-btn{display:inline-grid;place-items:center;background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);border-radius:7px;width:28px;height:28px;cursor:pointer}.te-selected{background:var(--accent-soft)}.te-admin-detail{margin-top:26px}.te-admin-detail>.te-section-heading{border-bottom:1px solid var(--border);padding-bottom:10px}
.te-rules{margin-top:20px;border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:14px 18px;font-size:12px}.te-rules summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;font-weight:600;list-style:none}.te-rules summary::-webkit-details-marker{display:none}.te-rules p{font-size:12px;line-height:1.7;color:var(--text-secondary);margin-top:12px}.te-rules svg{width:14px;height:14px}.te-estimate-note{font-size:10px;text-align:center;color:var(--text-tertiary);margin-top:14px!important}
.te-pending{display:flex;gap:10px;align-items:center;border:1px solid var(--border);border-radius:10px;padding:12px 16px;margin-top:18px;font-size:11px;color:var(--text-secondary);background:var(--surface)}.te-pending>svg{color:var(--warning)}.te-pending>span{flex:1}.te-pending .btn{font-size:11px}.te-alert{display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:var(--danger);padding:14px;background:var(--danger-soft);border-radius:10px;margin:12px 0}.te-alert span{font-size:12px}.te-empty{padding:38px 24px;text-align:center;display:flex;gap:10px;align-items:center;flex-direction:column}.te-empty svg{color:var(--accent);width:26px;height:26px}.te-empty strong{font-size:14px}.te-loading{border:1px solid var(--border);border-radius:14px;padding:80px 20px;text-align:center;background:var(--surface);color:var(--text-secondary)}
.te-root button:focus-visible,.te-root input:focus-visible,.te-root summary:focus-visible,.te-table-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.te-root button:disabled{opacity:.5;cursor:wait}
@media(min-width:1700px){.te-root{padding-top:32px}.te-salary-card{padding:28px 36px}.te-salary{font-size:76px}.te-how{padding:28px}.te-salary-card>.te-eyebrow{margin-top:30px}.te-next-goal{margin-top:32px}.te-milestones{margin-top:27px}}
@media(max-width:1100px){.te-root{padding:20px}.te-header h2{font-size:24px}.te-header{align-items:flex-start;gap:16px}.te-header p{max-width:480px}.te-personal-grid{grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:14px}.te-salary-card{padding:22px}.te-how{padding:20px}.te-salary{font-size:58px}.te-metric{padding:14px}.te-metric>strong{font-size:24px}.te-team-table th,.te-team-table td{padding:14px 10px}.te-team-table td:nth-last-child(2){min-width:155px}.te-team-table .te-avatar{display:none}}
@media(max-width:800px){.te-header{flex-direction:column}.te-header-actions{width:100%;justify-content:space-between}.te-personal-grid{grid-template-columns:1fr}.te-breakdown-grid,.te-team-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.te-how{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.te-how h3,.te-how .te-combined,.te-how .te-footnote{grid-column:1/-1}.te-how .te-day-gain{grid-column:1/-1}.te-section-heading{flex-wrap:wrap}.te-section-heading>.te-muted{font-size:10px}.te-root{padding:16px}.te-salary-card{padding:20px}.te-milestones{gap:6px}.te-team-table{min-width:760px}.te-salary{font-size:56px}.te-pending{flex-wrap:wrap}}
@media(max-width:450px){.te-card-top>.te-badge{font-size:9px}.te-salary{font-size:52px}.te-salary-card{padding:18px}.te-how{display:block}.te-milestone{grid-template-columns:1fr;text-align:center;justify-items:center;gap:5px}.te-next-goal>.te-card-top{flex-wrap:wrap;gap:5px}.te-metric>strong{font-size:23px}.te-history>.te-section-heading{padding:16px}.te-table th,.te-table td{padding:12px}.te-breakdown-grid,.te-team-metrics{gap:10px}}
@media(prefers-reduced-motion:reduce){.te-meter>span{transition:none}}
.te-celebration{width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow-y:auto;margin:auto;padding:34px;border:1px solid var(--border);border-radius:18px;background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg);text-align:center;font-family:var(--font-sans)}
.te-celebration::backdrop{background:color-mix(in srgb,var(--text) 32%,transparent)}.te-celebration-icon{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 20px;border-radius:18px;background:var(--accent-soft);color:var(--accent)}.te-celebration-icon svg{width:30px;height:30px}.te-celebration h2{font-size:27px;letter-spacing:-.8px;margin:10px 0}.te-celebration-amount{display:block;font-family:var(--font-display);font-size:58px;letter-spacing:-2px;color:var(--accent);font-weight:500;margin:12px 0}.te-celebration>p:not(.te-eyebrow){font-size:12px;line-height:1.7;color:var(--text-secondary)}.te-celebration-total{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--surface-sunken);padding:15px;border-radius:10px;margin-top:22px;font-size:11px}.te-celebration-total strong{font-size:19px;white-space:nowrap}.te-celebration>.btn{margin-top:22px;width:100%;justify-content:center;min-height:40px}
