html{-webkit-text-size-adjust:100%;font-size:clamp(16px,14.7px + .34vw,18px)}@media (width<=359px){html{font-size:15px}}:root{--brand-dark:#7a3300;--brand-bar:#fff;--brand-line:#f18d00;--primary:#f18d00;--on-primary:#3b1d00;--primary-soft:#fff1dc;--link:#b84f06;--bg:#fffaf2;--card:#fff;--text:#1f2937;--muted:#6b7280;--line:#eadfd2;--ok:#16a34a;--warn:#d97706;--bad:#dc2626}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:-apple-system,Noto Sans KR,Malgun Gothic,sans-serif;font-size:1rem}.wrap{max-width:960px;margin:0 auto;padding:16px}.narrow{max-width:420px;margin:40px auto;padding:0 16px}.card{background:var(--card);border-radius:12px;margin-bottom:12px;padding:16px;box-shadow:0 1px 3px #0000000f}h1{margin:0 0 12px;font-size:1.35rem}h2{margin:0 0 10px;font-size:1.1rem}input,select{border:1px solid var(--line);border-radius:8px;width:100%;margin:6px 0 12px;padding:12px;font-size:max(16px,1rem)}button,.btn{background:var(--primary);color:var(--on-primary);cursor:pointer;text-align:center;border:0;border-radius:8px;padding:12px 16px;font-size:1.1rem;font-weight:600;text-decoration:none;display:inline-block}button.block,.btn.block{width:100%;display:block}button.ghost{background:var(--primary-soft);color:var(--brand-dark)}button:disabled{opacity:.5;cursor:default}.err{color:var(--bad);margin:8px 0}.muted{color:var(--muted);font-size:.9rem}header.top{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.tabs{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px;display:grid}.tabs button{color:var(--text);border:1px solid var(--line);white-space:nowrap;background:#fff;padding:12px 4px}.tabs button.on{background:var(--primary);color:var(--on-primary);border-color:var(--primary);font-weight:700}.cal-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.cal{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal .dow{text-align:center;color:var(--muted);padding:4px 0;font-size:.9rem}.cal .cell{border:1px solid var(--line);background:#fff;border-radius:8px;min-height:78px;padding:4px;font-size:.7rem;overflow:hidden}.cal .cell.sel{outline:2px solid var(--primary)}.cal .cell.empty{background:0 0;border:0}.cal .cell .d{font-size:.9rem;font-weight:600}.tag{white-space:nowrap;text-overflow:ellipsis;border-radius:4px;margin-top:2px;padding:1px 4px;display:block;overflow:hidden}.tag.present{color:#166534;background:#dcfce7}.tag.absent{color:#991b1b;background:#fee2e2}.tag.late{color:#92400e;background:#fef3c7}.tag.excused{color:#3730a3;background:#e0e7ff}.tag.hw{color:#854d0e;background:#fef9c3}.tag.hw.done{color:#6b7280;background:#e5e7eb;text-decoration:line-through}.tag.sch{color:#7a3300;background:#ffe3c4}.row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:10px 0;display:flex}.row:last-child{border-bottom:0}.badge{background:#e5e7eb;border-radius:999px;padding:2px 8px;font-size:.9rem}.badge.paid{color:#166534;background:#dcfce7}.badge.pending,.badge.refunded,.badge.partial_refunded{color:#991b1b;background:#fee2e2}@media (width<=600px){.tabs{gap:6px}.tabs button{font-size:.9rem}.cal .cell{min-height:56px;font-size:.7rem}.tag{font-size:.65rem}.wrap{padding:10px}}.brandbar{background:var(--brand-bar);border-bottom:3px solid var(--brand-line)}.brandbar .in{justify-content:space-between;align-items:center;gap:12px;max-width:960px;margin:0 auto;padding:10px 16px;display:flex}.brandbar img{height:48px;margin:2px 10px 2px 0;display:block}.brandbar .wm,.brandbar .name{color:var(--brand-dark);letter-spacing:-.5px;font-size:1.1rem;font-weight:800}@media (width<=600px){.brandbar .name{font-size:1rem}.brandbar img{height:40px}}.brandbar button{background:var(--primary-soft);color:var(--brand-dark);padding:8px 12px;font-size:.9rem}.brandbar.center .in{justify-content:center}a{color:var(--link)}.sub-title{color:var(--muted);margin:-6px 0 14px;font-size:.9rem}.cal .dow.sun{color:#dc2626}.cal .dow.satd{color:#1d4ed8}.cal .cell.sat{background:#e8f0ff}.cal .cell.sat .d{color:#1d4ed8}.cal .cell.off{background:#ffecec}.cal .cell.off .d{color:#dc2626}.cal .hol{color:#dc2626;font-size:.65rem;line-height:1.2;display:block}.tag.cls{color:#7a3300;white-space:normal;text-align:center;background:#ffe3c4;padding:2px 1px;font-weight:700;line-height:1.2;overflow:visible}.brandbar .name,.brandbar button{white-space:nowrap}@media (width<=600px){.brandbar .in{gap:6px;padding:8px 10px}.brandbar img{height:34px;margin-right:6px}.brandbar .name{font-size:.9rem}.brandbar button{padding:7px 9px;font-size:.9rem}}@media (width<=380px){.brandbar .name{display:none}}.cal .cell.out{background:#fdfaf6}.cal .cell.out .d,.cal .cell.out .hol{opacity:.6}.cal .cell.out.sat{background:#f3f7ff}.cal .cell.out.off{background:#fff6f6}.cal .cell.out .d{font-weight:700}.tag.mk{color:#14532d;text-align:center;background:#d9f2e3;font-weight:700}.tag.cls.cur{color:#5a2400;background:#ffc680;border:1px solid #f18d00;font-weight:800}.tag.cls.prev{color:#4c1d95;opacity:.55;background:#e6dcff;border:1px solid #c4b5fd;font-weight:600}.tag.cls.next{color:#831843;opacity:.55;background:#ffd9ea;border:1px solid #f9a8d4;font-weight:600}.legend{color:var(--muted);flex-wrap:wrap;gap:10px;margin:6px 0;font-size:.7rem;display:flex}.legend i{vertical-align:-2px;border:1px solid;border-radius:3px;width:12px;height:12px;margin-right:3px;display:inline-block}body{background:linear-gradient(#fff3e0 0,#fffaf2 220px) fixed}.card{border:1px solid #f6e8d6;border-radius:16px;box-shadow:0 2px 10px #7a330012}.card h2{color:var(--brand-dark)}.hero{color:#fff;background:linear-gradient(135deg,#f18d00 0,#ffae3d 100%);border-radius:18px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding:18px;display:flex;box-shadow:0 6px 16px #f18d0047}.hero-name{letter-spacing:-.5px;color:#3b1d00;font-size:1.35rem;font-weight:800}.hero-name small{opacity:.8;font-size:.9rem;font-weight:600}.hero-sub{color:#5a2c00;margin-top:2px;font-size:.9rem;font-weight:600}.hero select{width:auto;max-width:46%;color:var(--brand-dark);background:#ffffffd9;border:0;margin:0;padding:8px 10px;font-weight:700}.alert{text-align:left;color:#991b1b;background:#fff0f0;border:1px solid #fecaca;border-radius:14px;justify-content:space-between;align-items:center;gap:8px;width:100%;margin-bottom:12px;padding:12px 14px;font-size:1rem;font-weight:500;display:flex}.alert span{white-space:nowrap;font-size:.9rem}.tabs{z-index:5;background:#fff;border:1px solid #f1e2cf;border-radius:16px;grid-template-columns:repeat(3,1fr);gap:6px;padding:5px;position:sticky;top:0;box-shadow:0 1px 4px #0000000a}.tabs button{color:#7c6a58;background:0 0;border:0;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;font-size:.9rem;line-height:1.15;display:flex;position:relative}.tabs button .ic{font-size:1.1rem}.tabs button.on{background:var(--primary);color:var(--on-primary);box-shadow:0 2px 6px #f18d0059}.tabs .dot{background:#ef4444;border-radius:50%;width:9px;height:9px;position:absolute;top:7px;right:22%}@media (width>=700px){.tabs button{flex-direction:row;justify-content:center;gap:8px}}@media (width<=600px){.tabs button{font-size:.9rem}}.fee{border:1px solid var(--line);background:#fff;border-radius:14px;gap:4px;margin:0 0 10px;padding:14px;display:grid}.fee.pending{background:snow;border-color:#fecaca}.fee-main{justify-content:space-between;align-items:center;gap:8px;display:flex}.fee-amt{color:var(--text);font-size:1.1rem;font-weight:800}.fee .btn{margin-top:8px}.fee .over,.over{color:#dc2626;font-weight:700}.sum{border-radius:10px;margin-bottom:12px;padding:10px 12px;font-weight:700}.sum.bad{color:#991b1b;background:#fee2e2}.badge{padding:3px 10px;font-weight:700}.badge.pending{color:#fff;background:#dc2626}.badge.wait{color:#92400e;background:#fef3c7}.ok{color:#166534;background:#dcfce7;border-radius:10px;margin:8px 0;padding:10px 12px;font-size:.9rem}.req-form{align-items:center;gap:8px;display:flex}.req-form select{flex:1;margin:0}.req-form button{white-space:nowrap}.cal-head h2{font-size:1.1rem}.cal .cell{border-radius:10px}button,.btn{white-space:nowrap}.alert{white-space:normal}.fb{border:1px solid var(--line);background:#fff;border-radius:14px;margin-bottom:10px;padding:14px}.fb-note{white-space:pre-wrap;margin:8px 0;line-height:1.5}.fb-actions{flex-wrap:wrap;gap:8px;display:flex}.fb-actions button{padding:8px 12px;font-size:.9rem}.cmts{border-top:1px dashed var(--line);margin-top:10px;padding-top:10px}.cmt{white-space:pre-wrap;border-radius:12px;max-width:88%;margin-bottom:6px;padding:8px 12px}.cmt small{color:var(--muted);font-size:.7rem;display:block}.cmt.parent{background:#fff1dc;margin-left:auto}.cmt.admin{background:#f1f5f9;margin-right:auto}.cmt-form{align-items:flex-end;gap:8px;margin-top:8px;display:flex}.cmt-form textarea{border:1px solid var(--line);resize:vertical;border-radius:8px;flex:1;padding:10px;font-family:inherit;font-size:max(16px,1rem)}.cal .cell{position:relative}.due-flag{color:#fff;background:#dc2626;border-radius:4px;padding:2px 4px;font-size:.65rem;font-weight:800;line-height:1;position:absolute;top:3px;right:3px}.fb{padding:0;overflow:hidden}.fb-head{width:100%;color:var(--text);text-align:left;background:0 0;border-radius:0;align-items:center;gap:8px;padding:14px;font-size:1rem;display:flex}.fb-title{text-overflow:ellipsis;flex:1;min-width:0;font-weight:700;overflow:hidden}.fb-title small{color:var(--muted);margin-left:6px;font-weight:500}.fb-date{color:var(--muted);white-space:nowrap;font-size:.9rem;font-weight:500}.fb-chev{color:var(--primary);font-size:.9rem}.fb.open{border-color:var(--primary)}.fb-body{padding:0 14px 14px;animation:.18s ease-out fbopen}@keyframes fbopen{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.cmts-title{color:var(--brand-dark);margin-bottom:6px;display:block}.due-flag{border-radius:3px;padding:1px 2px;font-size:.55rem;top:1px;right:1px}.cal .cell .d{padding-right:0}.consent{border:1px solid var(--line);background:#fffdf9;border-radius:12px;margin:12px 0;padding:10px 12px}.consent label{align-items:flex-start;gap:8px;margin:4px 0;font-size:.9rem;display:flex}.consent input[type=checkbox]{flex:none;width:20px;height:20px;margin:2px 0 0}.consent-all{border-bottom:1px solid var(--line);padding-bottom:8px}.consent-item{border-bottom:1px dashed var(--line);padding:6px 0}.consent-item:last-child{border-bottom:0}.consent .req{color:var(--text)}.consent .opt{color:var(--muted)}.consent details{color:var(--muted);margin:2px 0 4px 28px;font-size:.9rem}.consent summary{cursor:pointer;color:var(--link)}.consent dl{margin:6px 0}.consent dt{color:var(--text);margin-top:6px;font-weight:700}.consent dd{margin:2px 0 0;line-height:1.45}.fee-btns{gap:8px;margin-top:8px;display:flex}.fee-btns>*{flex:1}.fee .btn.block{margin-top:8px}.pay-wait{color:#92400e;background:#fef3c7;border-radius:10px;gap:4px;margin-top:8px;padding:10px 12px;font-size:.9rem;display:grid}.pay-wait button{justify-self:start;padding:6px 12px;font-size:.9rem}.pay-rej{color:#991b1b;background:#fee2e2;border-radius:10px;margin-top:8px;padding:10px 12px;font-size:.9rem}.pay-form{border:1px dashed var(--primary);background:#fffdf8;border-radius:12px;margin-top:10px;padding:12px}.pay-form label{margin-top:8px;font-size:.9rem;display:block}.pay-form input{margin:4px 0 0}.pay-methods{grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px;display:grid}.pay-methods button{padding:10px 2px;font-size:.9rem}.pay-methods button.on{background:var(--primary);color:var(--on-primary)}.fee-btns button{width:100%;padding:12px 8px;font-size:1rem;line-height:1.2}.fee-btns{grid-template-columns:1fr 1fr;gap:8px;display:grid}.fee-btns button{white-space:normal;word-break:keep-all;min-width:0;min-height:48px}input[type=date]{appearance:none;box-sizing:border-box;text-align:left;background:#fff;width:100%;min-width:0;max-width:100%;height:48px;margin:6px 0 12px;line-height:1.2;display:block}input[type=date]::-webkit-date-and-time-value{text-align:left;min-height:1.2em}.pay-form{overflow:hidden}.pay-form input[type=date]{margin:4px 0 0}button,.btn{box-sizing:border-box;border-radius:10px;justify-content:center;align-items:center;min-height:48px;padding:0 16px;font-size:1rem;font-weight:700;line-height:1.2;display:inline-flex}input,select{box-sizing:border-box;height:48px;padding:0 12px;font-size:max(16px,1rem);line-height:1.2}textarea{box-sizing:border-box;padding:12px;font-size:max(16px,1rem);line-height:1.4}select{padding-right:30px}.tabs button,.alert,.fb-head{min-height:0;display:flex}.fb-head{padding:14px}.alert{padding:12px 14px;font-weight:500}.tabs button{padding:10px 4px;font-size:.9rem}.brandbar button,.pay-wait button,.fb-actions button,.cmt-form button,.cal-head button{min-height:40px;padding:0 14px;font-size:.9rem}.cal-head button{min-width:44px;font-size:1.1rem}.cmt-form button{align-self:stretch}.pay-methods button{min-height:48px;padding:0 4px;font-size:1rem}label,.muted,.pay-form label,.consent label{font-size:.9rem}.pay-form input,.pay-form input[type=date]{height:48px;margin:6px 0 0}.req-form select,.req-form button{height:48px;min-height:48px;margin:0}.fee-btns button{min-height:48px}.row button{min-height:40px;padding:0 14px;font-size:.9rem}input,select,textarea{font-size:1rem}
