:root{color-scheme:light;--ink:#172b42;--ink2:#35475c;--muted:#718093;--line:#e5eaf0;--bg:#f5f7fa;--surface:#fff;--accent:#2a556f;--accent-soft:#eaf1f5;--success:#176a4b;--danger:#b94b4e;--radius:16px;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Pretendard","Noto Sans KR",sans-serif;line-height:1.5}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit;text-decoration:none}[hidden]{display:none!important}
.page{max-width:840px;margin:0 auto;padding:0 24px 50px}.topbar{height:82px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dde5ec}.brand{font-family:Georgia,serif;font-size:21px;letter-spacing:.12em;font-weight:700}.brand span{font-weight:400;color:#5c798c}.topbar-note{font-size:10px;letter-spacing:.19em;color:var(--muted);font-weight:700}.hero{padding:55px 0 34px}.eyebrow,.overline{display:block;color:#668198;letter-spacing:.18em;font-size:11px;font-weight:800}.hero h1{font-size:42px;letter-spacing:-.055em;line-height:1.18;margin:15px 0 17px}.hero p{line-height:1.85;color:#627183;margin:0;font-size:15px}.steps{display:flex;margin:3px 0 24px;gap:8px}.step{flex:1;display:flex;gap:10px;align-items:center;color:#9ba8b7;border-bottom:2px solid #dbe3eb;padding:0 0 13px;font-size:13px}.step span{font-family:Georgia,serif;font-size:15px}.step.active{color:var(--ink);border-bottom-color:var(--ink)}.step.finished{color:#73919e;border-bottom-color:#9eb9c4}
.panel{background:var(--surface);border:1px solid var(--line);box-shadow:0 15px 36px rgba(31,57,86,.035);border-radius:var(--radius);padding:36px 40px 38px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:29px}.section-heading h2{font-size:23px;letter-spacing:-.045em;margin:7px 0 0}.section-annotation{color:#8c98a7;font-size:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field{font-size:13px;font-weight:750;display:flex;flex-direction:column;gap:11px;color:#354a60}.field input,.field select{width:100%;background:#fff;border:1px solid #dce4eb;border-radius:10px;min-height:50px;padding:12px 15px;color:var(--ink);font-weight:500;font-size:14px;outline:none;transition:border-color .15s}.field input:focus,.field select:focus{border-color:#537c94;box-shadow:0 0 0 3px rgba(45,100,131,.09)}.field input::placeholder{color:#abb6c0}.field-grade{margin-top:26px}.grade-options{display:flex;flex-wrap:wrap;gap:9px}.grade-chip{border:1px solid #dce5ec;border-radius:9px;background:#fff;min-width:85px;height:46px;padding:0 19px;color:#5d7081;font-size:14px;font-weight:650}.grade-chip:hover{border-color:#7393a8}.grade-chip[aria-checked="true"]{border-color:var(--ink);background:var(--ink);color:#fff}.agreement{display:flex;align-items:flex-start;gap:12px;margin:30px 0 26px;padding:19px 18px;background:#f7f9fb;border:1px solid #eff1f5;border-radius:10px;font-size:13px;color:var(--ink2);font-weight:650;cursor:pointer}.agreement input{accent-color:var(--accent);width:17px;height:17px;margin-top:2px;flex:0 0 auto}.agreement small{display:block;color:#8190a0;font-weight:400;font-size:11px;line-height:1.75;margin-top:6px}.primary{background:var(--ink);color:white;border:1px solid var(--ink);min-height:50px;padding:0 21px;border-radius:10px;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:22px;transition:background .15s}.primary:hover:not(:disabled){background:#28445e}.wide{width:100%}.muted{color:#7a8999;font-size:13px;line-height:1.85}.alert{border:1px solid #f3d3d6;background:#fff4f5;color:var(--danger);font-size:13px;border-radius:9px;padding:13px 16px;margin:17px 0}.selected-person{display:flex;gap:9px;flex-wrap:wrap;margin:20px 0 23px}.selected-person span{font-size:12px;background:#eff3f6;color:#476177;padding:7px 12px;border-radius:100px}.text-button{border:0;background:transparent;padding:5px;color:#617d91;font-size:13px;font-weight:650}.text-button:hover{text-decoration:underline}.loading{padding:65px 15px;text-align:center;color:#8594a3}.day-block{border-top:1px solid #e8edf1;padding:21px 0 22px}.day-header{font-size:15px;font-weight:800;margin-bottom:14px}.day-header small{font-size:12px;margin-left:8px;color:#7c8b9b;font-weight:500}.time-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.time-slot{height:46px;border:1px solid #dce4eb;border-radius:8px;background:#fff;color:#40556b;font-size:13px;font-weight:650}.time-slot:hover{border-color:var(--accent);background:#f8fbfd}.time-slot.selected{background:var(--ink);color:#fff;border-color:var(--ink)}.reserve-footer{border-top:1px solid #e8edf1;padding-top:22px;margin-top:17px;display:flex;gap:20px;align-items:center;justify-content:space-between}.reserve-footer small{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}.reserve-footer strong{font-size:14px}.quiet-actions{text-align:center;padding-top:24px}.empty-slots{text-align:center;background:#f7f9fb;border:1px solid var(--line);padding:48px 15px;border-radius:10px;color:#6f8091;font-size:14px}.empty-slots strong{display:block;color:#314961;font-size:16px;margin-bottom:9px}.turnstile-wrap{margin:20px 0}.success-panel{text-align:center;padding:55px 30px}.success-icon{width:58px;height:58px;border-radius:100%;background:#e9f3ed;color:#237551;font-size:32px;font-weight:600;display:grid;place-items:center;margin:0 auto 25px}.success-panel h2{font-size:25px;letter-spacing:-.04em;margin:12px 0}.success-panel>p{font-size:13px;line-height:1.8;color:#708093}.confirmation-card{border:1px solid #e0e8ef;background:#f9fbfc;border-radius:12px;margin:26px auto;max-width:440px;text-align:left;padding:21px}.confirmation-row{display:flex;justify-content:space-between;gap:20px;font-size:13px;padding:10px 0}.confirmation-row+ .confirmation-row{border-top:1px solid #e6ecf1}.confirmation-row span{color:#8794a2}.confirmation-row strong{color:#2e465c}.footer{display:flex;align-items:center;justify-content:space-between;margin-top:32px;font-size:11px;color:#a2aeba}.footer span:first-child{font-family:Georgia,serif;letter-spacing:.12em}
/* Admin */
.admin-page{max-width:1120px}.admin-hero{padding:38px 0 26px}.admin-hero h1{font-size:31px;margin:0 0 5px}.admin-layout{display:grid;grid-template-columns:330px minmax(0,1fr);align-items:start;gap:19px}.admin-layout .panel{padding:26px}.admin-layout h2{margin:0 0 18px;font-size:18px}.admin-tools .field{margin-bottom:15px}.admin-tools .field input,.admin-tools .field select{min-height:43px}.weekday-options,.admin-grade-options{display:flex;flex-wrap:wrap;gap:8px;margin:7px 0 15px}.check-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid #e2e9ef;border-radius:7px;padding:7px 9px;font-size:12px;color:#52677a}.check-chip input{accent-color:var(--accent)}.admin-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 20px}.metric{background:#f3f7f9;border:1px solid #e9eff4;border-radius:9px;padding:13px}.metric small{display:block;color:#738496;font-size:11px}.metric strong{display:block;font-size:21px;margin-top:4px}.tabs{display:flex;gap:15px;border-bottom:1px solid var(--line);margin:15px 0 18px}.tab{background:none;border:0;padding:10px 2px 13px;color:#7a8e9e;font-weight:650;font-size:13px}.tab.active{color:var(--ink);box-shadow:0 2px 0 var(--ink)}.data-table{width:100%;border-collapse:collapse;min-width:550px}.data-table th,.data-table td{text-align:left;padding:13px 9px;border-bottom:1px solid #edf0f3;font-size:12px;white-space:nowrap}.data-table th{color:#8a99a7;font-weight:600;background:#fafcfd}.data-table td{color:#40566b}.table-scroll{overflow:auto}.state-pill{display:inline-block;font-size:11px;font-weight:700;border-radius:30px;padding:4px 8px;background:#e9f3ee;color:#34765a}.state-pill.closed{background:#f3eef0;color:#a15a64}.state-pill.booked{background:#eaf1f7;color:#486e91}.small-btn{background:#fff;border:1px solid #dbe4eb;border-radius:7px;padding:6px 10px;font-size:11px;color:#547087}.small-btn:hover{background:#f5f8fa}.small-btn.danger{color:#ad5860;border-color:#eedee0}.admin-section-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.admin-actions{display:flex;gap:11px;align-items:center}.admin-actions .text-button{font-size:12px}.admin-hint{font-size:12px;color:#7a8897;line-height:1.8}.admin-login{max-width:440px;margin:30px auto 0}.admin-login .field{margin:25px 0}.admin-login .panel{padding:35px}.slot-list-note{font-size:12px;color:#8996a3;margin:0 0 12px}.admin-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center}.admin-toolbar select{border:1px solid var(--line);border-radius:8px;padding:7px;color:var(--ink2);background:white;font-size:12px}
@media(max-width:760px){.admin-layout{grid-template-columns:1fr}.admin-page{padding:0 16px 30px}.admin-layout .panel{padding:21px}.admin-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.page{padding:0 15px 28px}.topbar{height:65px}.topbar-note{font-size:8px;letter-spacing:.1em}.hero{padding:37px 3px 31px}.hero h1{font-size:35px}.hero p{font-size:13px}.step{font-size:11px;gap:5px}.step span{font-size:11px}.steps{gap:6px}.panel{padding:25px 20px}.section-heading h2{font-size:20px}.form-grid{grid-template-columns:1fr;gap:20px}.field-grade{margin-top:22px}.grade-chip{flex:1;min-width:0;padding:0 7px}.time-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.reserve-footer{align-items:stretch;flex-direction:column;gap:14px}.reserve-footer .primary{width:100%}.footer{gap:12px}.success-panel{padding:40px 19px}.success-panel h2{font-size:22px}}
/* Manual booking: only shown for closed, unbooked future slots */
.manual-btn{margin:3px 0 3px 7px;border-color:#9bb7c8;color:#25556d;font-weight:700}
.manual-dialog{width:min(440px,calc(100vw - 26px));max-height:calc(100dvh - 40px);overflow:auto;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:17px;padding:29px;box-shadow:0 20px 70px #142f4a33}
.manual-dialog::backdrop{background:rgba(15,33,52,.58)}
.manual-dialog h2{margin:6px 0 0;font-size:21px;letter-spacing:-.03em}
.manual-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.manual-dialog .muted{margin:15px 0 0;font-weight:700;color:var(--ink2)}
.manual-dialog .field{margin:18px 0}
.manual-note{font-size:12px;line-height:1.75;color:#627487;background:#f3f7f9;border-radius:9px;padding:12px;margin:13px 0 22px}
.manual-dialog-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:22px}
.manual-dialog-actions .small-btn{min-height:48px;padding:0 17px;font-size:13px}
.icon-btn{border:0;background:transparent;color:#697e8e;font-size:28px;line-height:1;padding:0 4px}
@media(max-width:600px){.manual-dialog{padding:23px 20px}.manual-dialog-actions .primary{min-width:0}}
