@import "https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700&display=swap";:root{color:#263b46;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#f3f6f7;font-family:Noto Sans TC,system-ui,sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer;color:#fff;white-space:nowrap;background:#226b7b;border:1px solid #226b7b;border-radius:8px;padding:11px 18px;font-size:.9375rem;font-weight:600}button:hover{background:#195565}button:disabled{opacity:.5;cursor:default}a{color:inherit;text-decoration:none}:is(button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible){outline-offset:3px;outline:3px solid #eaab52}.topbar{background:#fff;border-bottom:1px solid #dbe3e7;justify-content:space-between;align-items:center;gap:20px;min-height:84px;padding:18px max(24px,50vw - 640px);display:flex}.brand{letter-spacing:-.02em;font-size:1.4rem;font-weight:700}.brand span{margin-left:12px;font-size:1rem;font-weight:500}.topactions{align-items:center;gap:22px;font-size:.875rem;display:flex}.private{color:#226b7b;background:#e7f2f5;border-radius:6px;padding:6px 10px}main{max-width:1328px;margin:auto;padding:38px 24px 60px}.titlebar{justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px;display:flex}.eyebrow{letter-spacing:.14em;color:#587782;margin:0 0 6px;font-size:.8125rem;font-weight:600}h1{letter-spacing:.02em;margin:0;font-size:2rem}h2{margin:0;font-size:1.2rem}.actions{gap:10px;display:flex}.secondary{color:#263b46;background:#fff;border-color:#cbd7dc}.secondary:hover{background:#edf3f5}.totals{background:#fff;border:1px solid #dbe3e7;border-radius:12px;grid-template-columns:.8fr repeat(4,1fr);margin-bottom:26px;display:grid;overflow:hidden}.totals>div{border-right:1px solid #e5ecef;min-width:0;padding:22px 20px}.totals>div:last-child{border:0}.totals span{color:#607580;margin-bottom:10px;font-size:.875rem;display:block}.totals strong{overflow-wrap:anywhere;font-variant-numeric:tabular-nums;font-size:1.5rem;display:block}.totals small{font-size:.875rem;font-weight:400}.totals .balance{color:#195565;background:#e9f3f5}.records{background:#fff;border:1px solid #dbe3e7;border-radius:12px;overflow:hidden}.toolbar{border-bottom:1px solid #e5ecef;flex-wrap:wrap;align-items:flex-end;gap:16px;padding:20px;display:flex}.toolbar label span{color:#526c78;margin-bottom:7px;font-size:.875rem;display:block}.search{flex:1;min-width:200px;max-width:360px}input,select,textarea{color:#263b46;background:#fff;border:1px solid #c7d4da;border-radius:7px;width:100%;min-height:44px;padding:10px 12px;font-size:1rem}input::placeholder,textarea::placeholder{color:#7b8d96}.count{color:#647883;align-self:center;margin-left:auto;font-size:.875rem}.textbutton{color:#226b7b;background:0 0;border:0;padding:8px;font-weight:500}.textbutton:hover{background:#edf5f7}.danger{color:#a83d3d}.tablewrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9375rem}th{color:#536d79;text-align:left;white-space:nowrap;background:#f8fafb;padding:14px 18px;font-size:.875rem;font-weight:500}td{vertical-align:top;border-top:1px solid #e6edf0;min-width:120px;padding:20px 18px}td b{white-space:nowrap;font-weight:500;display:block}td small{color:#5d7480;white-space:nowrap;margin-top:6px;font-size:.875rem;display:block}td .student{color:#226b7b}.numeric{text-align:right;font-variant-numeric:tabular-nums}.notecell{white-space:pre-wrap;overflow-wrap:anywhere;min-width:150px;max-width:230px}.tag{color:#445b78;background:#ecf1f6;border-radius:5px;padding:4px 8px;font-size:.875rem;display:inline-block}.rowactions{gap:6px;display:flex}.footnote{color:#607580;border-top:1px solid #e6edf0;margin:0;padding:14px 20px;font-size:.875rem;line-height:1.7}.empty{text-align:center;color:#607580;padding:65px 20px}.empty h2{color:#263b46;margin-bottom:12px}.empty p{font-size:.9375rem;line-height:1.8}.empty button{margin-top:14px}.bottom{color:#607580;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;font-size:.875rem;display:flex}.alert,.notice{border-radius:8px;margin-bottom:18px;padding:12px 16px;font-size:.9375rem;line-height:1.6}.alert{color:#943e31;background:#fff0ed;border:1px solid #efcdc7}.notice{color:#206353;background:#e6f3f1;justify-content:space-between;align-items:center;display:flex}.overlay{z-index:10;background:#122c3f80;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:14px;width:640px;max-height:calc(100dvh - 48px);overflow:auto;box-shadow:0 24px 70px #0b2c3f33}.modalhead{border-bottom:1px solid #e1e9ed;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.close{color:#536d79;background:0 0;border:0;padding:2px 10px;font-size:1.8rem}.close:hover{background:#eff4f6}fieldset{border:0;margin:0;padding:24px}.formgrid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.formgrid label{gap:7px;font-size:.875rem;font-weight:500;display:grid}.wide{grid-column:1/-1}.hint{color:#607580;background:#f4f7f9;border-radius:6px;margin:0;padding:12px;font-size:.875rem;line-height:1.8}.formfooter{background:#f8fafb;border-top:1px solid #e1e9ed;justify-content:flex-end;gap:10px;padding:18px 24px;display:flex}.modal .alert{margin:0 24px 18px}textarea{resize:vertical}.legacy{margin-top:12px}.legacy .toolbar h2{align-self:center;margin-right:auto}.legacycell{overflow-wrap:anywhere;white-space:pre-wrap;min-width:120px;max-width:360px}input:disabled{color:#73858e;background:#f0f3f5}@media (max-width:1000px){.totals{grid-template-columns:repeat(3,1fr)}.totals>div{border-bottom:1px solid #e5ecef}.totals strong{font-size:1.3rem}}@media (max-width:600px){.topbar{align-items:flex-start;padding:16px}.brand{font-size:1.2rem}.brand span{margin:3px 0 0;font-size:.875rem;display:block}.topactions{gap:12px}.private{font-size:.8125rem}main{padding:26px 16px 40px}.titlebar{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:22px}h1{font-size:1.75rem}.actions{grid-template-columns:1fr 1fr;width:100%;display:grid}.totals{grid-template-columns:1fr 1fr;gap:0}.totals>div{padding:16px}.totals .balance{grid-column:1/-1}.toolbar{gap:12px;padding:16px}.search{flex-basis:100%;max-width:none}.count{font-size:.875rem}.bottom{flex-direction:column;align-items:flex-start;gap:8px}.overlay{padding:10px}.modal{border-radius:12px;max-height:calc(100dvh - 20px)}.modalhead{padding:16px 18px}fieldset{padding:18px}.formgrid{gap:16px 12px}.formgrid label{min-width:0}.formgrid input{min-width:0;padding:10px 8px}.formfooter{padding:16px 18px}.footnote{padding:14px 16px}.legacy .toolbar{align-items:center}}@media (max-width:380px){.formgrid{grid-template-columns:1fr}.wide{grid-column:auto}.totals strong{font-size:1.15rem}.topactions{flex-direction:column;gap:8px}}.loginpage{place-items:center;min-height:100dvh;padding:24px;display:grid}.loginpanel{background:#fff;border:1px solid #dbe3e7;border-radius:16px;width:100%;max-width:430px;padding:36px;box-shadow:0 18px 50px #263b460d}.loginpanel h1{font-size:1.75rem}.loginintro{color:#607580;margin:14px 0 26px;line-height:1.8}.loginpanel label{gap:8px;font-size:.9375rem;display:grid}.loginpanel form>button{width:100%;margin-top:22px}.loginpanel .alert{margin:16px 0 0}@media (max-width:480px){.loginpanel{padding:28px 22px}}.workspace-tabs{gap:8px;max-width:1280px;margin:22px auto 0;padding:0 24px;display:flex}.workspace-tabs button{color:#587782;background:0 0;border-color:#0000;padding:10px 18px}.workspace-tabs button:hover{background:#e8eff2}.workspace-tabs button.selected{color:#fff;background:#226b7b;border-color:#226b7b}.workspace-tabs+main,.workspace-tabs+div>main{padding-top:24px}.misc-totals{grid-template-columns:.8fr repeat(3,1fr)}@media (max-width:600px){.workspace-tabs{margin-top:18px;padding:0 16px}.misc-totals{grid-template-columns:1fr 1fr}.misc-totals .balance{grid-column:auto}}
