:root{font-family:system-ui,"Microsoft JhengHei",sans-serif;color:#193044;background:#f4f7f8}*{box-sizing:border-box}body{margin:0}header{background:#123a4b;color:white;padding:36px max(24px,calc((100vw - 1080px)/2))}h1{margin:0 0 8px;font-size:clamp(26px,4vw,38px)}header p{margin:0;color:#c9dfe5}main{max-width:1080px;margin:30px auto;padding:0 20px}.bar,.card{background:white;border:1px solid #dae4e8;border-radius:16px;box-shadow:0 6px 22px #173b4d0b}.bar{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:18px 20px;flex-wrap:wrap}.bar strong{font-size:20px}button{border:0;border-radius:10px;background:#087e8b;color:white;padding:10px 16px;font:inherit;cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}.secondary{background:#e5f1f2;color:#12616b}.danger{background:#b43b3b}.actions{display:flex;gap:8px;flex-wrap:wrap}.layout{display:grid;grid-template-columns:260px 1fr;gap:20px;margin-top:20px}.card{padding:20px}h2{font-size:17px;margin:0 0 16px}.dorm{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid #edf1f2;cursor:pointer}.dorm span:last-child{margin-left:auto;color:#748993;font-size:13px}input{accent-color:#087e8b}.row{display:flex;gap:12px;align-items:start;padding:15px 0;border-bottom:1px solid #edf1f2}.row>input{margin-top:6px}.row .body{min-width:0;flex:1}.row strong{display:block;overflow-wrap:anywhere;font-size:15px}.meta,.hint{color:#647981;font-size:13px;margin-top:5px}.row button{background:transparent;color:#087e8b;padding:4px}.row input[type=date]{width:auto;padding:4px;margin-top:8px;font-size:13px}.tools{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}.tools h2{margin:0}.upload{margin-top:20px}.fields{display:grid;grid-template-columns:2fr 1fr;gap:12px}label{font-size:14px}input[type=file],input[type=number],input[type=date]{display:block;width:100%;border:1px solid #ccdbe0;border-radius:9px;padding:10px;background:white;font:inherit;margin-top:6px}.hint{line-height:1.7}#status{white-space:pre-wrap;min-height:20px;color:#087e8b}.empty{color:#70828a}.upload>button{margin-top:8px}@media(max-width:750px){.layout,.fields{grid-template-columns:1fr}.bar .actions button{font-size:13px}.row{gap:8px}}
input[type=password],input[type=text]{display:block;width:100%;border:1px solid #ccdbe0;border-radius:9px;padding:10px;background:white;font:inherit;margin-top:6px}.bar{margin-top:20px}
