:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#284940;background:#edf2ed;font-synthesis:none;--teal:#188b7b;--deep:#236355;--muted:#879991;--line:#e7ede7;--paper:#fffefa;--orange:#c5804f}*{box-sizing:border-box}body{margin:0;min-width:0;-webkit-text-size-adjust:100%}button,input,select{font:inherit}button,input,select,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible,.daily-table-scroll:focus-visible{outline:2px solid #46a997;outline-offset:3px}button{border:0}input,select{min-height:44px;border:1px solid #dfe8df;border-radius:10px;background:#fff;color:#3d5b50;min-width:0;max-width:100%}input{padding:11px 12px}select{padding:10px 30px 10px 11px}input[type=date]{width:100%;font-size:13px;min-width:0;appearance:none;-webkit-appearance:none;color-scheme:light}input[type=date]::-webkit-date-and-time-value{text-align:left}.report-app{width:100%;max-width:480px;margin:0 auto;background:#f6f8f3;min-height:100dvh;padding:env(safe-area-inset-top) 20px calc(20px + env(safe-area-inset-bottom));box-shadow:0 0 60px #2b483709;overflow:clip}.page-header{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-top:19px;min-height:76px}.report-brand{display:block;width:145px;height:auto;max-width:55%;object-fit:contain}.plain-button{min-height:44px;padding:9px 7px;background:transparent;color:#82958b;font-size:12px}.view-only-badge{font-size:10px;letter-spacing:1px;color:#8da295;border:1px solid #e0e9df;border-radius:20px;padding:7px 10px}.page-intro{padding:26px 0 23px}.eyebrow{font-size:9px;color:#76a28f;letter-spacing:1.7px;margin:0 0 11px;font-weight:500}.page-intro h1{margin:0;font-size:30px;line-height:1.4;letter-spacing:1px;color:#285a49;font-weight:600}.page-intro>p:last-child{font-size:12px;color:#95a397;margin:9px 0 0;line-height:1.8}.primary-button{min-height:44px;padding:12px 18px;border-radius:10px;background:#1c8b78;color:#fff;font-size:13px;font-weight:500;line-height:1.4;box-shadow:0 3px 8px #23816c0d}.primary-button:hover{background:#187c6b}.text-button{min-height:44px;background:transparent;padding:10px 0;color:#48917e;font-size:11px;white-space:nowrap}.report-filter{border:1px solid #e2eae0;border-radius:16px;background:#fffefa;padding:17px 15px 10px;box-shadow:0 4px 18px #34583c03}.date-fields{display:grid;grid-template-columns:minmax(0,1fr) 14px minmax(0,1fr);align-items:end;gap:7px}.date-fields>label{display:flex;flex-direction:column;gap:8px;font-size:10px;color:#95a18f;min-width:0}.date-fields>span{font-size:10px;color:#a7b2a2;line-height:44px;text-align:center}.date-fields input{padding:10px 7px;font-variant-numeric:tabular-nums}.filter-actions{display:flex;gap:10px;align-items:end;margin-top:13px}.teacher-filter{display:flex;align-items:center;flex:1;min-width:0;background:#fff;border:1px solid #dfe8df;border-radius:10px}.teacher-filter>span{font-size:10px;color:#8e9e90;padding-left:11px;flex:0 0 auto}.teacher-filter select{border:0;flex:1;font-size:12px;width:100%;background:transparent}.filter-actions>.primary-button{flex:0 0 70px}.date-shortcuts{display:flex;align-items:center;gap:9px;margin-top:12px}.date-shortcuts button{flex:1;min-height:44px;background:#f3f6ef;color:#8b9b83;font-size:11px;border-radius:9px;padding:11px 8px}.date-shortcuts button:hover{background:#ebf3e6;color:#507b5f}.form-feedback{margin:8px 0 0;font-size:11px;line-height:1.8;color:#bf7d63;overflow-wrap:anywhere}.form-feedback:empty{margin:0;min-height:0}.report-toolbar{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:10px 2px 8px}.report-toolbar p{font-size:10px;line-height:1.7;color:#9ba798;margin:0}.report-toolbar b{font-weight:400;font-variant-numeric:tabular-nums}.report-toolbar .text-button{font-size:10px;min-height:40px}.report-loading{font-size:11px;color:#6f9d85;margin:0 0 12px}.report-loading[hidden]{display:none}.notice{font-size:10px;line-height:1.9;color:#8b9e88;background:#eff4e9;padding:10px 12px;border:1px solid #e5eddc;border-radius:10px;margin:0 0 14px;overflow-wrap:anywhere}.notice.warning{color:#a58165;background:#fff7ed;border-color:#efdfc9}.summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.metric-card{min-width:0;background:#fffefa;border:1px solid #e2eae0;border-radius:15px;padding:19px 16px 16px;box-shadow:0 4px 14px #3b5b4303}.metric-card>span,.amount-card>div>span{display:block;font-size:11px;color:#849a87;letter-spacing:.5px}.metric-card>strong{display:block;font-size:31px;line-height:1.35;font-weight:600;letter-spacing:-.6px;color:#347963;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:11px 0 8px}.metric-card small{display:block;font-size:9px;line-height:1.7;color:#a7b19f}.amount-card{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fffaf2;border-color:#eee4d1;padding:20px 16px}.amount-card small{margin-top:8px;color:#b9a78b;font-size:9px}.amount-card>strong{font-size:28px;margin:0;color:#bd8959;max-width:62%;line-height:1.5}.separate-note{font-size:9px;color:#a3ae9e;line-height:1.9;text-align:center;margin:14px 0 23px}.report-section{background:#fffefa;border:1px solid #e2eae0;border-radius:16px;padding:18px 16px;margin-bottom:17px;min-width:0}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px}.section-heading h2{font-size:16px;font-weight:600;color:#547b5c;margin:0;line-height:1.6;letter-spacing:.4px}.section-kicker{display:block;font-size:8px;letter-spacing:1.7px;color:#abc09d;margin-bottom:4px}.section-meta{font-size:9px;color:#a8b39f;line-height:1.8;text-align:right}.tag-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tag-item{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:13px 12px;border-radius:10px;background:#f5f7f0;border:1px solid #edf0e4}.tag-item span{font-size:11px;line-height:1.7;color:#819576;overflow-wrap:anywhere;min-width:0}.tag-item strong{font-size:20px;line-height:1.4;font-weight:500;color:#7f9b6c;font-variant-numeric:tabular-nums}.tag-item.untagged{background:#faf5ee;border-color:#f0e7da}.tag-item.untagged span{color:#ab967b}.tag-item.untagged strong{color:#b39774}.section-footnote{font-size:9px;color:#acb5a3;line-height:1.9;margin:13px 0 0;overflow-wrap:anywhere}.teacher-result+.teacher-result{border-top:1px solid #edf0e6;padding-top:16px;margin-top:16px}.teacher-result h3{font-size:13px;font-weight:500;color:#678364;line-height:1.8;margin:0 0 11px;overflow-wrap:anywhere}.teacher-result dl{display:grid;grid-template-columns:.9fr .9fr 1.3fr;gap:10px;margin:0}.teacher-result dt{font-size:9px;color:#a7b29d;line-height:1.8;margin:0 0 6px}.teacher-result dd{font-size:15px;font-weight:500;line-height:1.6;color:#84a175;font-variant-numeric:tabular-nums;margin:0;overflow-wrap:anywhere;min-width:0}.teacher-result dl>div:last-child dd{color:#b39169}.empty-copy{font-size:11px;color:#acb6a3;text-align:center;line-height:1.9;margin:25px 0}.daily-section{padding-right:0;padding-left:0;overflow:hidden}.daily-section>.section-heading,.daily-section>.section-footnote{margin-left:16px;margin-right:16px}.daily-table-scroll{max-width:100%;width:100%;max-height:435px;overflow:auto;overscroll-behavior-x:contain;isolation:isolate;border-top:1px solid #e9eee2;border-bottom:1px solid #e9eee2}.daily-table-scroll table{width:100%;border-collapse:separate;border-spacing:0;min-width:560px;font-variant-numeric:tabular-nums}.daily-table-scroll th,.daily-table-scroll td{padding:13px 12px;white-space:nowrap;text-align:right;border-bottom:1px solid #edf0e6;font-size:11px;font-weight:400;line-height:1.7;color:#95a487;min-width:80px}.daily-table-scroll thead th{position:sticky;top:0;z-index:3;background:#f2f6eb;font-size:9px;color:#9cac8f}.daily-table-scroll .sticky-date{position:sticky;left:0;z-index:2;text-align:left;background:#fbfcf6;color:#8b9e7e;min-width:112px}.daily-table-scroll thead .sticky-date{z-index:4;background:#eef3e6}.daily-table-scroll td:nth-child(5){color:#b39c7b}.daily-table-scroll tbody tr:last-child th,.daily-table-scroll tbody tr:last-child td{border-bottom:0}.daily-table-scroll .empty-cell{padding:28px;text-align:center}.sync-section .section-heading{margin-bottom:6px}.sync-row{padding:13px 0 4px}.sync-row+.sync-row{border-top:1px solid #edf0e6;margin-top:10px;padding-top:17px}.sync-row-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.sync-row h3{font-size:12px;font-weight:500;color:#819676;margin:0}.sync-badge{font-size:9px;border-radius:20px;background:#f0f3eb;color:#a2b098;padding:4px 8px;line-height:1.6}.sync-badge.is-ready{background:#e9f4e9;color:#86a77c}.sync-badge.is-warning{background:#fbf0df;color:#c19b66}.sync-row p{font-size:10px;line-height:1.9;color:#aab5a0;margin:7px 0 0;overflow-wrap:anywhere}.sync-row p.sync-warning{color:#bb9f7c}.report-notes{padding:0 3px;margin:22px 0 16px}.report-notes h2{font-size:10px;font-weight:500;color:#9ba990;letter-spacing:1px;margin:0 0 9px}.report-notes p{font-size:9px;line-height:1.95;color:#adb7a3;margin:6px 0;overflow-wrap:anywhere}.report-generated{font-size:8px;line-height:1.9;color:#b7c0ad;text-align:center;margin-top:20px;overflow-wrap:anywhere}.report-footer{font-size:9px;text-align:center;letter-spacing:1.2px;color:#b6c0aa;margin:24px 0 4px}.state-card,.login-card{background:#fffefa;border:1px solid #e2eae0;border-radius:18px;padding:32px 23px;text-align:center;box-shadow:0 7px 22px #46683b04}.state-card{margin-top:5px;min-height:230px;display:flex;align-items:center;justify-content:center;flex-direction:column}.state-card h2{font-size:19px;font-weight:500;color:#5e8164;margin:14px 0 10px}.state-card p{font-size:12px;color:#9eac94;line-height:1.9;margin:0 0 20px;overflow-wrap:anywhere}.state-card>.primary-button{min-width:150px;margin-top:8px}.state-symbol{font-size:30px;color:#b4c6a7;letter-spacing:4px}.loading-dot{width:12px;height:12px;border-radius:50%;background:#82b092;box-shadow:0 0 0 7px #eef5e8}.login-card{text-align:left;margin-top:4px;padding:28px 22px}.login-card .section-kicker{font-size:10px;letter-spacing:1px}.login-card h2{font-size:22px;font-weight:500;color:#4c7c60;line-height:1.6;margin:10px 0}.login-description{font-size:12px;line-height:1.8;color:#a3af9b;margin:0 0 24px}.login-card form>label{display:block;font-size:11px;color:#8a9e80;margin-bottom:9px}.login-card input{display:block;width:100%;min-height:48px;font-size:15px;border-color:#dce7d8;background:#fcfef9}.login-card form>.primary-button{display:block;width:100%;margin-top:17px;min-height:48px}.login-footnote{font-size:9px;color:#b0baa5;line-height:1.9;text-align:center;margin:21px 0 0}.startup-message{max-width:480px;margin:0 auto;padding:80px 22px;text-align:center;font-size:13px;color:#91aa98}

/* Keep controls and supporting copy readable without changing the phone layout. */
.report-app input[type=date],.report-app .teacher-filter select,.login-card input{font-size:16px}.section-footnote,.report-notes p,.sync-row p,.metric-card small,.amount-card small,.separate-note{font-size:10px}.report-toolbar p,.date-fields>label,.teacher-filter>span,.date-shortcuts button,.form-feedback{font-size:11px}.login-footnote,.section-meta{font-size:10px}
