*{margin:0;padding:0;box-sizing:border-box}body{font-family:Noto Sans KR,sans-serif;background:#f8f8f8;min-height:100vh;overflow-x:hidden}.page-wrapper{display:flex;justify-content:center;align-items:flex-start;padding:40px 20px;min-height:100vh}.card{background:#fff;border-radius:16px;padding:40px 30px;max-width:440px;width:100%;box-shadow:0 4px 20px rgba(0,0,0,.08)}.card h1{font-size:26px;font-weight:800;text-align:center;line-height:1.4;margin-bottom:32px;color:#111}.form-row{display:flex;align-items:center;margin-bottom:14px;gap:12px}.label{background:#f06457;color:#fff;font-size:14px;font-weight:700;padding:8px 12px;border-radius:20px;white-space:nowrap;min-width:80px;text-align:center}.form-row input,.form-row select{flex:1 1;min-width:0;border:1.5px solid #ddd;border-radius:6px;padding:10px 12px;font-size:15px;font-family:Noto Sans KR,sans-serif;outline:none;transition:border-color .2s}.form-row input:focus,.form-row select:focus{border-color:#f06457}.form-row input[readonly]{background:#f5f5f5;color:#666}.student-row{display:flex;gap:8px}.student-row,.student-row input{flex:1 1;min-width:0}.lookup-btn{background:#f06457;color:#fff;border:none;border-radius:6px;padding:10px 14px;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}.lookup-btn:hover{background:#e0534a}.input-hint{color:#888;margin-top:4px;line-height:1.5}.input-hint,.lookup-msg{font-size:12px;padding-left:96px}.lookup-msg{margin-top:2px;margin-bottom:6px}.lookup-msg.success{color:#2e7d32}.lookup-msg.error{color:#c62828}.notice{margin:24px 0;padding:0;list-style:none}.notice li{font-size:13px;color:#555;padding:5px 0 5px 18px;position:relative;line-height:1.6}.notice li:before{content:"•";position:absolute;left:0;color:#f06457;font-weight:700}.notice-html{margin:24px 0;font-size:13px;color:#555;line-height:1.7}.notice-html p{margin:2px 0}.notice-html ul{list-style:disc;padding-left:20px;margin:4px 0}.notice-html ol{list-style:decimal;padding-left:20px;margin:4px 0}.notice-html li{margin:2px 0}.submit-btn{width:100%;background:#f06457;color:#fff;border:none;border-radius:10px;padding:15px;font-size:17px;font-weight:700;cursor:pointer;margin-top:8px;transition:background .2s;font-family:Noto Sans KR,sans-serif}.submit-btn:hover{background:#e0534a}.submit-btn:disabled{background:#ccc;cursor:not-allowed}.result-box{text-align:center;padding:30px 0}.result-box .check{font-size:48px;margin-bottom:16px}.result-box p{font-size:16px;color:#333;line-height:1.7}.page-footer{text-align:center;margin-top:28px;font-size:13px;color:#999}.page-footer strong{display:block;margin-top:6px;font-size:16px;color:#333;letter-spacing:-.5px}.agree-row{display:flex;align-items:flex-start;gap:10px;margin:16px 0;padding:12px;background:#fef5e7;border-radius:8px;border:1.5px solid #f39c12}.agree-row input[type=checkbox]{width:18px;height:18px;flex-shrink:0;margin-top:2px;cursor:pointer;accent-color:#f06457}.agree-row label{font-size:13px;color:#555;line-height:1.5;cursor:pointer}.admin-wrapper{font-family:Noto Sans KR,sans-serif;background:#f4f6f9;min-height:100vh;padding:24px}.admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.admin-header h1{font-size:20px;font-weight:800;color:#111}.badge{background:#f06457;color:#fff;border-radius:20px;padding:4px 14px;font-size:14px;font-weight:700}.status-bar{display:flex;align-items:center;gap:12px;margin-bottom:16px;font-size:13px;color:#666}.dot{width:8px;height:8px;border-radius:50%;background:#4caf50;display:inline-block;animation:blink 1.5s infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.summary{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}.summary-card{background:#fff;border-radius:10px;padding:14px 20px;box-shadow:0 2px 8px rgba(0,0,0,.05);min-width:100px}.summary-card .num{font-size:28px;font-weight:800;color:#f06457}.summary-card .lbl{font-size:12px;color:#888;margin-top:2px}table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.06)}thead{background:#f06457;color:#fff}th{font-size:13px;font-weight:700;text-align:left}td,th{padding:12px 14px}td{font-size:14px;border-bottom:1px solid #f0f0f0}tr:last-child td{border-bottom:none}tr:hover td{background:#fef9f9}.status-btn{background:none;border:1.5px solid #ddd;border-radius:20px;padding:4px 12px;font-size:12px;cursor:pointer;color:#666;font-family:Noto Sans KR,sans-serif;transition:all .2s}.status-btn.done{background:#e8f5e9;border-color:#4caf50;color:#2e7d32;font-weight:700}.status-btn.confirmed{background:#e3f2fd;border-color:#2196f3;color:#1565c0;font-weight:700}.status-select{border:1.5px solid #ddd;border-radius:6px;padding:4px 8px;font-size:12px;font-family:Noto Sans KR,sans-serif;cursor:pointer;outline:none}.empty{text-align:center;padding:60px;color:#aaa;font-size:15px}@media (max-width:600px){.page-wrapper{padding:16px 12px}.card{padding:24px 16px;border-radius:12px}.card h1{font-size:22px;margin-bottom:24px}.form-row input,.form-row select,.search-input,.sms-input{font-size:16px}.label{font-size:12px;padding:6px 10px;min-width:auto}.form-row-wrap{flex-wrap:wrap}.form-row-wrap input{flex-basis:100%}.input-hint,.lookup-msg,.sms-hint{padding-left:0}.submit-btn{font-size:16px;padding:14px}.result-box .check{font-size:40px}.admin-wrapper{padding:12px}td,th{padding:8px;font-size:11px}}.step-progress{justify-content:center;margin-bottom:28px;gap:0}.step-item,.step-progress{display:flex;align-items:center}.step-item{flex-direction:column;gap:6px}.step-dot{width:32px;height:32px;border-radius:50%;background:#e0e0e0;color:#bbb;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s}.step-dot.active{background:#f06457;color:#fff}.step-dot.done{background:#4caf50;color:#fff}.step-label{font-size:11px;font-weight:600;color:#ccc;white-space:nowrap}.step-label.active{color:#f06457}.step-label.done{color:#4caf50}.step-line{width:40px;height:2px;background:#e0e0e0;flex-shrink:0;margin-bottom:18px}.step-line.done{background:#4caf50}.search-row{display:flex;gap:8px;flex:1 1}.search-input{flex:1 1;border:1.5px solid #ddd;border-radius:6px;padding:10px 12px;font-size:15px;font-family:Noto Sans KR,sans-serif;outline:none;min-width:0}.search-input:focus{border-color:#f06457}.search-btn{background:#555;color:#fff;border:none;border-radius:6px;padding:10px 14px;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;font-family:Noto Sans KR,sans-serif}.school-dropdown{border:1.5px solid #f06457;border-radius:6px;background:#fff;max-height:180px;overflow-y:auto;margin-top:4px}.school-item{padding:10px 12px;font-size:14px;cursor:pointer;border-bottom:1px solid #f5f5f5}.school-item:hover{background:#fef5f5}.school-item:last-child{border-bottom:none}.load-fail{background:#fef5f5;border:1px solid #f8d3cf;border-radius:8px;padding:14px 16px;display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:4px 0 8px}.load-fail-title{font-size:14px;font-weight:700;color:#c0392b}.load-fail-desc{font-size:13px;color:#777}.load-fail-btn{margin-top:8px;background:#fff;color:#f06457;border:1.5px solid #f06457;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:700;cursor:pointer;font-family:Noto Sans KR,sans-serif}.load-fail-btn:hover{background:#f06457;color:#fff}.search-error{font-size:12px;color:#c0392b;margin-top:6px;line-height:1.5}.schedule-section{margin:12px 0}.schedule-label{font-size:13px;font-weight:700;color:#555;margin-bottom:8px}.date-item{border:1.5px solid #ddd;border-radius:10px;padding:12px;margin-bottom:10px;cursor:pointer}.date-item.selected{border-color:#f06457;background:#fef9f9}.date-label{font-size:14px;font-weight:700;color:#333;margin-bottom:8px}.time-slots{display:flex;flex-wrap:wrap;gap:8px}.time-slots-hint{font-size:12px;color:#f06457;font-weight:600;margin-bottom:8px;display:flex;align-items:center;gap:4px;animation:hint-fade .4s ease}@keyframes hint-fade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.time-btn{background:#f5f5f5;border:1.5px solid #ddd;border-radius:20px;padding:6px 16px;font-size:13px;font-weight:600;cursor:pointer;font-family:Noto Sans KR,sans-serif;transition:all .2s}.time-btn:hover{border-color:#f06457;color:#f06457}.time-btn.active{background:#f06457;border-color:#f06457;color:#fff}.date-item.selected .time-btn:not(.active){border-color:#f9b8b3;color:#c0392b;background:#fff5f5}.subject-btns{display:flex;gap:8px;flex-wrap:wrap;flex:1 1}.subject-btn{background:#f5f5f5;border:1.5px solid #ddd;border-radius:20px;padding:6px 18px;font-size:14px;font-weight:600;cursor:pointer;font-family:Noto Sans KR,sans-serif}.subject-btn.active{background:#f06457;border-color:#f06457;color:#fff}.session-list{display:flex;flex-direction:column;gap:12px;margin:16px 0}.session-card{border:1.5px solid #ddd;border-radius:12px;padding:16px}.session-card:hover:not(.full){border-color:#f06457;cursor:pointer}.session-card.full{opacity:.55}.session-title{font-size:15px;font-weight:700;color:#111;margin-bottom:6px}.session-meta{font-size:13px;color:#666;line-height:1.7;margin-bottom:10px}.session-badge{display:inline-block;background:#eee;border-radius:20px;padding:2px 10px;font-size:12px;font-weight:600;color:#555;margin-right:6px}.reserve-btn,.session-badge.main{background:#f06457;color:#fff}.reserve-btn{border:none;border-radius:8px;padding:8px 20px;font-size:14px;font-weight:700;cursor:pointer;font-family:Noto Sans KR,sans-serif}.reserve-btn:disabled{background:#ccc;cursor:not-allowed}.sms-input-row{display:flex;gap:8px;flex:1 1}.sms-input{flex:1 1;border:1.5px solid #ddd;border-radius:6px;padding:10px 12px;font-size:15px;font-family:Noto Sans KR,sans-serif;outline:none;min-width:0}.sms-input:focus{border-color:#f06457}.sms-send-btn{background:#555;color:#fff;border:none;border-radius:6px;padding:10px 12px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;font-family:Noto Sans KR,sans-serif}.sms-send-btn:disabled{background:#ccc;cursor:not-allowed}.sms-hint{font-size:12px;margin-top:4px}.sms-hint.ok{color:#2e7d32}.sms-hint.err{color:#c62828}.policy-box{border:1px solid #e0e0e0;border-radius:8px;padding:12px;margin:10px 0;background:#fafafa}.policy-title{font-size:13px;font-weight:700;color:#333;margin-bottom:6px}.policy-text{font-size:12px;color:#666;line-height:1.6;margin-bottom:8px}.policy-question{font-size:13px;color:#333;margin-bottom:6px;font-weight:600}.radio-group{display:flex;gap:20px}.radio-group label{display:flex;align-items:center;gap:6px;font-size:14px;cursor:pointer}.radio-group input[type=radio]{accent-color:#f06457;cursor:pointer}.date-inline-section{margin-top:12px;border-top:1px solid #f0d0c8;padding-top:12px;display:flex;flex-direction:column;gap:10px}.date-field-row{display:flex;align-items:center;gap:10px}.date-field-label{font-size:12px;font-weight:700;color:#f06457;background:#fff0ee;border:1.5px solid #f8c4be;border-radius:14px;padding:5px 10px;white-space:nowrap;min-width:72px;text-align:center;flex-shrink:0}.date-field-input{flex:1 1;min-width:0;border:1.5px solid #ddd;border-radius:6px;padding:10px 12px;font-size:14px;font-family:Noto Sans KR,sans-serif;outline:none;background:#fff;transition:border-color .2s}.date-field-input:focus{border-color:#f06457}.range-option{display:block;padding:9px 12px;border:1.5px solid #ddd;border-radius:6px;font-size:13px;color:#555;cursor:pointer;line-height:1.5;transition:all .15s}.range-option:hover{border-color:#f06457;color:#f06457;background:#fff8f7}.range-option.selected{border-color:#f06457;background:#f06457;color:#fff;font-weight:700}.referer-wrap{display:flex;flex-wrap:wrap;gap:8px;flex:1 1}.referer-item{display:flex;align-items:center;gap:4px;font-size:13px;cursor:pointer}.referer-item input{accent-color:#f06457;cursor:pointer}