:root{--line:#111;--ui:#2457d6;--muted:#667085}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:"Microsoft JhengHei","PingFang TC","Noto Sans TC",sans-serif;background:#eef2f6;color:#111}.app{display:grid;grid-template-columns:340px 1fr;min-height:100vh}.sidebar{background:#fff;border-right:1px solid #d0d5dd;padding:20px;height:100vh;overflow:auto;position:sticky;top:0}.sidebar h1{font-size:20px;margin:0}.version{font-size:11px;color:var(--muted)}.sidebar section{border-top:1px solid #eaecf0;margin-top:16px;padding-top:16px}.sidebar h2{font-size:14px;margin:0 0 8px}.sidebar label{display:block;font-size:12px;margin:8px 0 4px;color:#475467}.sidebar input[type="text"],.sidebar input[type="date"],.sidebar input[type="number"],.sidebar select{width:100%;padding:9px;border:1px solid #d0d5dd;border-radius:8px;background:#fff}.attendance-editor{display:grid;gap:8px}.attendance-row{display:grid;grid-template-columns:46px repeat(3,1fr);align-items:center;gap:4px;font-size:11px}.attendance-row label{margin:0;display:flex;gap:3px;align-items:center}.file-button{display:block;background:#f2f4f7;border:1px solid #d0d5dd;padding:10px;border-radius:8px;text-align:center;cursor:pointer}.file-button input{display:none}.help,.status{font-size:11px;color:var(--muted)}.status{text-align:center;min-height:17px;margin-top:7px}.primary{width:100%;margin-top:10px;border:0;border-radius:9px;background:var(--ui);color:#fff;padding:11px;cursor:pointer}.workspace{padding:26px;overflow:auto}.page{width:210mm;height:297mm;background:#fff;margin:auto;box-shadow:0 6px 24px #0002;padding:15mm 15mm 10mm;position:relative;overflow:hidden}.title{text-align:center;font-family:"DFKai-SB","BiauKai","KaiTi",serif;font-size:16pt;letter-spacing:2px;text-decoration:underline;text-underline-offset:4px;margin-bottom:7mm}.header-line{display:flex;justify-content:space-between;font-size:11.5pt;margin-bottom:4mm}.attendance-output{font-size:10.5pt;line-height:1.8;display:flex;align-items:center;gap:3mm;white-space:nowrap}.attendance-output b{font-weight:400}.reason-line{font-size:11.5pt;margin:1mm 0 2mm}.summary-table{width:100%;border-collapse:collapse;font-size:11.5pt;table-layout:fixed}.summary-table th,.summary-table td{border:.45mm solid var(--line);text-align:center;padding:2mm 1mm;font-weight:400}.summary-table .deposit-cell{width:42%;line-height:1.8}.work-header{display:grid;grid-template-columns:10mm 1fr;border-left:.45mm solid var(--line);border-right:.45mm solid var(--line);border-bottom:.45mm solid var(--line);font-size:11.5pt}.item-title,.content-title{text-align:center;padding:2mm 0}.item-title{border-right:.45mm solid var(--line)}.work-body{display:grid;grid-template-columns:10mm 1fr;height:178mm;border-left:.45mm solid var(--line);border-right:.45mm solid var(--line);border-bottom:.45mm solid var(--line)}.vertical-item{border-right:.45mm solid var(--line);display:flex;flex-direction:column;align-items:center;padding-top:4mm;font-size:10.5pt;line-height:1.05}.vertical-item .spacer{height:8mm}.photos-area{padding:3mm;display:grid;grid-template-rows:48mm 1fr;gap:3mm;overflow:hidden}.small-row{display:grid;grid-template-columns:repeat(3,1fr);gap:3mm;min-height:0}.photo-slot{background:#fff;overflow:hidden;display:flex;align-items:center;justify-content:center}.photo-slot img{width:100%;height:100%;object-fit:cover;display:none}.large-photo{min-height:0}@media(max-width:900px){.app{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.workspace{padding:12px}}@media print{body{background:#fff}.sidebar{display:none}.app{display:block}.workspace{padding:0}.page{box-shadow:none;margin:0}}
.secondary-button{width:100%;margin-top:7px;border:1px solid #d0d5dd;border-radius:8px;background:#fff;color:#344054;padding:9px;cursor:pointer}
.danger-button{color:#b42318;background:#fff}
