:root{--ink:#20201f;--paper:#fffdf5;--bg:#efe8d7;--red:#db4328;--yellow:#ffd55b;--muted:#68645a;--line:#292824}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.65 -apple-system,BlinkMacSystemFont,"PingFang TC","Noto Sans TC",sans-serif}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{touch-action:manipulation}a{color:var(--red)}[hidden]{display:none!important}.page{max-width:760px;margin:28px auto;background:var(--paper);border:2px solid var(--ink);box-shadow:8px 8px 0 #d4c9ad}.hero{padding:36px 32px 28px;border-top:12px solid var(--ink);border-bottom:3px dashed var(--ink);position:relative}.eyebrow{display:inline-block;background:var(--yellow);border:2px solid var(--ink);padding:3px 10px;font-size:.85rem;font-weight:800;letter-spacing:.05em}h1{font-size:clamp(48px,9vw,78px);letter-spacing:-.06em;line-height:1.05;margin:23px 0}.dot{color:var(--red)}h2{font-size:1.35rem;margin:0 0 14px}h3{font-size:1.25rem;margin:0 0 18px}.hero p{font-size:1.05rem}.hero .small,.small{font-size:.85rem;color:var(--muted)}.signature{font-weight:700;margin-top:18px}.availability{padding:25px 32px;background:#fff7d8;border-bottom:2px solid var(--line)}dl{margin:0}.availability dl div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #b8aa86;padding:8px 0}.availability dt{font-weight:800}.availability dd{margin:0;text-align:right}.form{padding:6px 32px 32px}fieldset{border:0;border-bottom:2px dashed var(--ink);margin:0 0 26px;padding:26px 0}legend{font-size:1.3rem;font-weight:800;float:left;width:100%;margin-bottom:18px;line-height:1.5}legend+*{clear:both}legend span{display:inline-block;border:2px solid var(--ink);padding:0 6px;margin-right:6px;font-family:monospace;font-size:1rem}label{display:block;font-size:.95rem;font-weight:700;margin:15px 0 7px}label b{font-size:.68rem;background:#efe8d7;border-radius:3px;padding:2px 5px;white-space:nowrap;vertical-align:middle}.optional{font-weight:400;font-size:.78rem;color:var(--muted)}input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;border:2px solid var(--ink);border-radius:5px;background:#fff;padding:12px;min-height:50px}input[type=date],input[type=time]{min-width:0;appearance:none;-webkit-appearance:none}textarea{resize:vertical}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:3px solid #e2a200;outline-offset:3px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.hint{font-size:.84rem;color:var(--muted);margin:8px 0 12px;line-height:1.6}.choices{display:grid;gap:10px}.choice{display:flex;gap:11px;align-items:flex-start;border:2px solid var(--ink);border-radius:5px;padding:13px;margin:0;background:#fff}.choice:has(input:checked){background:#fff3c2;box-shadow:3px 3px 0 var(--ink)}.choice input{margin-top:6px;accent-color:var(--red);transform:scale(1.25)}.choice small{display:block;font-size:.82rem;font-weight:400;color:var(--muted);margin-top:4px}.rescue{border-color:var(--red)}.check{display:flex;align-items:flex-start;gap:9px;padding:8px 0}.check input{width:20px;height:20px;flex-shrink:0;accent-color:var(--red)}.callout{padding:14px 16px;border-left:5px solid var(--red);background:#fff0e6;color:#782b1c;font-size:.92rem;white-space:pre-line}.privacy{font-size:.84rem;color:var(--muted)}button{cursor:pointer;border:2px solid var(--ink);background:var(--paper);border-radius:4px;padding:12px 18px;font-weight:800;min-height:48px}.primary{background:var(--ink);color:#fff;width:100%;box-shadow:4px 4px 0 var(--red);font-size:1.08rem}.primary:disabled{opacity:.6;cursor:wait}button:hover{filter:brightness(.94)}.error{padding:12px 15px;color:#842b1c;background:#ffebe3;border:2px solid var(--red);margin:20px 0}.success{padding:32px}.success h2{font-size:1.7rem;margin-top:22px}.memo{border:3px solid var(--ink);padding:22px;margin:26px 0;background:white;position:relative;box-shadow:6px 6px 0 var(--yellow)}.memo dl div{padding:9px 0;border-top:1px dashed #9c9686}.memo dt{font-size:.78rem;color:var(--muted)}.memo dd{margin:2px 0 0;font-size:1.12rem;font-weight:800;overflow-wrap:anywhere;white-space:pre-line}.memoFoot{font-size:.83rem;margin:18px 0 0}.actions{display:flex;gap:12px}.actions button{flex:1}.textButton{border:0;text-decoration:underline;background:none;padding-left:0;font-size:.9rem}.honeypot{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}footer{padding:25px 32px;border-top:3px dashed var(--ink);text-align:center;color:var(--muted);font-size:.86rem}footer strong{display:block;margin:8px 0;font-size:1rem;color:var(--ink)}footer a{display:block;font-size:.8rem}.adminPage{max-width:1100px}.adminPage .hero h1{font-size:42px}.adminContent{padding:25px 28px}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:20px 0}.toolbar select{width:auto;min-width:160px}.toolbar button{font-size:.9rem}.counts{font-weight:700}.record{background:#fff;border:2px solid var(--ink);margin:18px 0;box-shadow:4px 4px 0 #d4c9ad;padding:20px}.record header{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:16px}.record h3{margin:0;font-size:1.3rem}.badge{font-size:.75rem;font-weight:800;padding:3px 7px;border:1px solid var(--ink);background:var(--yellow)}.badge.warning{background:#ffe4d8;color:#8e2b13;border-color:#d44620}.record dl{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px}.record dt{font-size:.78rem;color:var(--muted)}.record dd{margin:0;overflow-wrap:anywhere;white-space:pre-line;font-weight:650}.record .wide{grid-column:1/-1}.record .statusEdit{display:flex;gap:10px;margin-top:12px;align-items:end}.statusEdit select{width:180px}.record textarea{font-size:.9rem;min-height:65px}.empty{text-align:center;padding:45px 15px;color:var(--muted)}.dayHeading{font-size:1.2rem;padding-top:15px;border-top:3px solid var(--ink);margin:30px 0 0}.statusLine{font-size:.85rem;color:var(--muted)}@media(max-width:600px){.page{margin:0;border-left:0;border-right:0;box-shadow:none}.hero,.availability,.success{padding-left:22px;padding-right:22px}.form{padding-left:22px;padding-right:22px}.grid{grid-template-columns:1fr;gap:0}.actions{flex-direction:column}.record{padding:16px}.record dl{grid-template-columns:1fr}.record .statusEdit{flex-wrap:wrap}.adminContent{padding:20px 15px}.record .wide{grid-column:auto}}@media print{body{background:white}.page{border:0;box-shadow:none;margin:0}button,footer,.toolbar,#login{display:none}.memo{box-shadow:none}}

.timetable{margin:20px 0;padding:18px 14px;border:2px solid var(--ink);background:#fff7d8;border-radius:5px}.timetable h3{font-size:1.08rem;margin:0 0 8px}.timetableDay{margin-top:16px;background:var(--paper);border:1px solid #b8aa86;border-radius:4px;overflow:hidden}.timetableDay.current{border:2px solid var(--red)}.timetableDay h4{margin:0;padding:8px 12px;font-size:.96rem;background:#f0e4bf}.timetableDay.current h4{background:#ffe4d8;color:#842b1c}.timetable table{width:100%;border-collapse:collapse;font-size:.88rem;table-layout:fixed}.timetable th,.timetable td{padding:8px 6px;text-align:center;border-top:1px solid #d8cdb3;white-space:nowrap}.timetable th:first-child{width:22%}.timetable th:nth-child(2){width:37%}.timetable td:last-child{font-weight:800}.timetable .hint:last-child{margin-bottom:0}
