:root{font-family:Inter,Noto Sans TC,Microsoft JhengHei,sans-serif;color:#1c2938;background:#f5f7fb;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:0;border-radius:9px;padding:11px 16px;background:#24577a;color:#fff;font-weight:600;display:inline-flex;gap:8px;align-items:center;justify-content:center}button:disabled{opacity:.5;cursor:not-allowed}.app{display:flex;min-height:100vh}aside{width:248px;background:#142c42;color:#f5f8fa;padding:28px 15px;display:flex;flex-direction:column;gap:5px;position:sticky;top:0;height:100vh}.brand{font-size:18px;font-weight:800;display:flex;align-items:center;gap:10px;line-height:1.5}.sidecaption{color:#a8c2d4;font-size:12px;padding-left:12px;margin-bottom:20px}.nav{background:transparent;color:#c7d9e7;width:100%;justify-content:flex-start;text-align:left;font-weight:500}.nav:hover,.nav.active{background:#2a4d67;color:#fff}.bottom{margin-top:auto;overflow-wrap:anywhere}.bottom small{color:#9bb6c9;display:block;padding:10px}.main{padding:34px;flex:1;min-width:0;max-width:1500px;margin:auto}header{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:28px}h1{font-size:26px;margin:0 0 6px}h2{font-size:19px;margin:0 0 18px}h3{font-size:16px}header p,.hint{color:#6c7b89;font-size:13px}header select{max-width:420px}.panel,.stat,.login{background:#fff;border:1px solid #e4eaf0;border-radius:15px;padding:25px;box-shadow:0 3px 14px #142c4208}.panel{margin-bottom:20px;overflow:auto}.narrow{max-width:660px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.stat{display:flex;flex-direction:column;gap:14px}.stat span{color:#66788a;font-size:13px}.stat strong{font-size:24px;overflow-wrap:anywhere}label{display:flex;flex-direction:column;gap:8px;font-weight:600;font-size:14px}input,select{padding:12px 13px;border:1px solid #cbd5df;border-radius:9px;background:#fff;color:#1c2938;width:100%}.form{display:grid;gap:20px}.center{min-height:100vh;display:grid;place-items:center;padding:20px}.login{width:min(440px,100%);display:grid;gap:18px}.login h2{margin:0}.login .brand{color:#24577a}.alert{background:#fff5e9;color:#81521c;padding:12px 16px;border-radius:9px;margin:0 0 18px;display:flex;justify-content:space-between;gap:12px}.alert button{background:none;color:inherit;padding:0}.scroll{overflow:auto}table{border-collapse:collapse;width:100%;min-width:580px;font-size:14px}td,th{text-align:left;padding:13px 12px;border-bottom:1px solid #e7edf3}th{background:#f5f8fb;color:#607185;font-weight:600}td:nth-last-child(-n+2){font-variant-numeric:tabular-nums}.pill{background:#edf2f7;border-radius:20px;padding:5px 9px;font-size:12px}.textbutton{background:transparent;color:#24577a;padding:5px}.detail{border-top:1px solid #e4eaf0;margin-top:25px;padding-top:15px}.actions{display:flex;gap:10px;margin-top:15px}.secondary{background:#edf3f8;color:#24577a}.sectionhead{display:flex;justify-content:space-between;align-items:center}.total{font-weight:800;background:#f2f7fb}@media(max-width:900px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}aside{width:190px}.main{padding:20px}}@media(max-width:640px){.app{display:block}aside{width:100%;height:auto;position:static;display:flex;flex-direction:row;flex-wrap:wrap;padding:12px;gap:3px}aside .brand{width:100%}.sidecaption,.bottom{display:none}.nav{width:auto;font-size:12px;padding:8px}.main{padding:15px}header{display:block}header select{margin-top:12px;max-width:100%}.stats{gap:8px}.stat{padding:14px}.stat strong{font-size:18px}.panel{padding:15px}}.mode-tabs{display:flex;gap:10px;margin:18px 0}.mode-tabs button{flex:1}.advanced{margin-top:26px;padding:16px;border:1px solid #dce4ec;border-radius:12px}.advanced summary{cursor:pointer;font-weight:700;color:#22577b}.advanced .form{margin-top:18px}.edit-form{margin-top:24px;padding:20px;background:#f6f9fc;border-radius:12px}.actions{display:flex;flex-wrap:wrap;gap:10px}.print-only{display:none}@page{size:A4 portrait;margin:16mm 13mm 17mm}@media print{html,body,#root,.app,.main{background:#fff!important;color:#17283b!important;width:100%!important;max-width:none!important;min-height:0!important;margin:0!important;padding:0!important;overflow:visible!important}.app{display:block!important}aside,.main>header,.main>.alert,.report-controls,.screen-only{display:none!important}.main .panel:not(.printable-report){display:none!important}.print-only{display:block!important}.printable-report{display:block!important;border:0!important;box-shadow:none!important;border-radius:0!important;padding:0!important;margin:0!important;overflow:visible!important}.printable-report .hint{font-size:10px!important;color:#555!important;line-height:1.45}.report-letterhead{text-align:center;border-bottom:2px solid #233e57;padding:0 0 12px;margin-bottom:18px}.report-letterhead h2{font-size:19px;margin:0 0 5px}.report-letterhead h3{font-size:15px;margin:0 0 8px}.report-letterhead p{font-size:10px;margin:4px 0}.printable-report .stats{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:6px!important;margin:12px 0!important}.printable-report .stat{border:1px solid #cdd6df!important;box-shadow:none!important;padding:9px!important;gap:5px!important;break-inside:avoid!important}.printable-report .stat span{font-size:10px!important}.printable-report .stat strong{font-size:14px!important;white-space:nowrap}.printable-report h3{font-size:13px!important;margin:15px 0 7px;break-after:avoid}.printable-report table{min-width:0!important;width:100%!important;table-layout:auto!important;font-size:10px!important;border-collapse:collapse!important}.printable-report th,.printable-report td{padding:6px 5px!important;border:1px solid #cbd4de!important;overflow-wrap:anywhere!important}.printable-report th{background:#edf2f7!important;color:#263a50!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.printable-report thead{display:table-header-group}.printable-report tr{break-inside:avoid;page-break-inside:avoid}.report-signatures{display:flex!important;justify-content:space-between;gap:10px;margin-top:26px;padding-top:12px;border-top:1px solid #b7c3cf;font-size:10px;break-inside:avoid}}
