:root{font-family:"PingFang SC","Microsoft YaHei",sans-serif;color:#111;background:#f6f6f6;font-size:15px}*{box-sizing:border-box}body{margin:0}main{max-width:1000px;padding:40px 24px 70px;margin:auto}.brand{font-size:24px;font-weight:900}h1{font-size:30px;margin:12px 0}h2{font-size:19px}p{color:#555;line-height:1.7}section{background:#fff;border:1px solid #ddd;border-radius:14px;padding:24px;margin:20px 0}label{display:block;line-height:1.5;margin:14px 0}input,select{font:inherit;width:100%;border:1px solid #bbb;border-radius:7px;padding:12px;margin-top:7px;background:#fff;color:#111}button{font:inherit;cursor:pointer;border:1px solid #111;border-radius:7px;background:#111;color:#fff;padding:12px 18px;min-height:44px}button:disabled{opacity:.5;cursor:wait}.secondary{background:#fff;color:#111;border-color:#bbb}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #777;outline-offset:3px}.toolbar,.inline{display:flex;justify-content:space-between;align-items:center;gap:16px}.inline label{flex:1}.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}#login{max-width:470px}#message{min-height:24px;white-space:pre-wrap}#confirmation{padding:18px;border:2px solid #111;border-radius:8px}#confirm-text{white-space:pre-line;color:#111;font-weight:600}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;min-width:660px;text-align:left}th,td{padding:12px 10px;border-bottom:1px solid #ddd;vertical-align:top}td{overflow-wrap:anywhere;max-width:240px}th{background:#f8f8f8}body[aria-busy=true]{cursor:progress}@media(max-width:600px){main{padding:22px 14px}section{padding:18px}.grid{grid-template-columns:1fr;gap:0}.inline{display:block}.inline button{width:100%}h1{font-size:24px}.toolbar{align-items:flex-start}button{margin-top:5px}#confirmation button{width:100%}}

.environment{padding:12px 14px;border-left:4px solid #111;background:#fff;font-weight:600;color:#111}
[hidden]{display:none!important}
.view-tabs{display:flex;gap:10px;margin:18px 0 28px}.view-tabs button{min-width:110px}.finance-heading{display:flex;gap:24px;align-items:flex-start;justify-content:space-between;background:transparent;border:0;padding:0;margin-bottom:22px}.eyebrow{font-size:11px;letter-spacing:2px;color:#777;font-weight:700}.finance-heading h2{font-size:26px;margin:10px 0}.finance-heading p{max-width:440px;font-size:13px}.finance-heading form{min-width:360px}.finance-heading label{font-size:12px;margin-top:0}.date-range{display:flex;gap:10px;align-items:flex-end}.date-range label{flex:1;min-width:0;margin-bottom:0}.date-range input{padding:10px 8px}.date-range button{white-space:nowrap}.finance-notice{font-size:12px;margin:14px 0;color:#666}.finance-cards{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:16px}.metric{background:#fff;border:1px solid #ddd;border-radius:14px;padding:24px;display:flex;flex-direction:column;gap:14px}.metric span{font-size:13px;color:#666}.metric strong{font-size:32px;letter-spacing:-1px;font-variant-numeric:tabular-nums;white-space:nowrap}.metric small{font-size:11px;color:#777}.metric.total{background:#111;color:#fff;border-color:#111}.metric.total span,.metric.total small{color:#ccc}.metric.total strong{font-size:38px}.finance-secondary{display:flex;gap:24px;align-items:center;justify-content:space-between;margin:12px 0 24px}.finance-secondary p{font-size:13px;margin:8px 0}.finance-secondary strong{color:#111;margin:0 5px;font-variant-numeric:tabular-nums}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px}.wechat{background:#111}.alipay{background:#aaa}.legend{display:flex;gap:16px;font-size:12px;white-space:nowrap}#finance-chart svg{display:block;width:100%;height:auto;min-height:160px}#finance-chart .gridline{stroke:#e9e9e9;stroke-width:1}#finance-chart text{fill:#777;font-size:11px;font-family:inherit}#finance-chart .bar-wechat{fill:#111}#finance-chart .bar-alipay{fill:#aaa}.muted,.mobile-hint{font-size:12px;color:#777}.mobile-hint{display:none}.pagination{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}#finance-page-label{font-size:12px;color:#777}#finance-details td:nth-child(2){font-size:11px;max-width:140px}.empty-chart{text-align:center;padding:60px 0;color:#777;font-size:14px}
@media(max-width:800px){.finance-heading{display:block}.finance-heading form{min-width:0;margin-top:24px}.finance-cards{grid-template-columns:1fr 1fr}.metric.total{grid-column:1/-1}.metric{padding:20px}.metric strong{font-size:27px}.finance-secondary{flex-wrap:wrap;gap:8px 18px}.finance-secondary button{margin-left:auto}.mobile-hint{display:block}.date-range{gap:7px}.date-range input{font-size:13px}.legend{gap:10px}.finance-heading h2{font-size:24px}}

#password-form{max-width:470px}.view-tabs{flex-wrap:wrap}

/* Existing owner dashboard: compact teacher filter, same report controls. */
.promotion-actions{display:flex;align-items:flex-end;gap:12px}.promotion-filter-label{min-width:160px;margin:0;font-size:12px}.promotion-filter-label select{margin-top:5px;padding:10px}.promotion-actions button{white-space:nowrap}@media(max-width:800px){#promotion-finance>.toolbar{flex-wrap:wrap}.promotion-actions{width:100%;flex-wrap:wrap}.promotion-filter-label{flex:1}}


/* Keep promotion amounts and headings intact; scroll this table, not the page. */
#promotion-finance .table-scroll{width:100%;max-width:100%;min-width:0;overflow-x:auto}
#promotion-finance .table-scroll table{table-layout:auto}
#promotion-finance>.table-scroll>table{min-width:1480px}
#promotion-finance details .table-scroll>table{min-width:980px}
#promotion-finance th,#promotion-finance td{white-space:nowrap;overflow-wrap:normal;word-break:normal;max-width:none}
#promotion-finance .promotion-scroll-hint{font-size:12px;color:#666;margin:10px 0}
#promotion-finance .table-scroll:focus-visible{outline:3px solid #777;outline-offset:3px}
