:root{--bg:#f6f7f3;--surface:#fff;--surface-2:#eef3ee;--ink:#20231f;--muted:#646b61;--line:#dce2d8;--primary:#1f6f5b;--primary-strong:#155241;--accent:#c96f3a;--warn:#a45a20;--danger:#a33b39;--info:#4267a7}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--ink);margin:0;font-family:Arial,Apple SD Gothic Neo,Noto Sans KR,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.shell{min-height:100vh}.topbar{z-index:20;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f6f7f3eb;justify-content:space-between;align-items:center;gap:24px;padding:16px clamp(20px,5vw,64px);display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;font-weight:800;display:flex}.brand-mark{background:var(--primary);color:#fff;border-radius:8px;place-items:center;width:34px;height:34px;display:inline-grid}.nav{color:var(--muted);flex-wrap:wrap;gap:8px;font-size:14px;display:flex}.nav a{border-radius:8px;padding:8px 10px}.nav a:hover,.auth-link:hover{background:var(--surface-2);color:var(--ink)}.auth-link{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:8px 10px;font-size:14px}.page{width:min(1180px,100% - 32px);margin:0 auto;padding:36px 0 64px}.auth-page{place-items:center;min-height:calc(100vh - 72px);display:grid}.auth-panel{gap:22px;width:min(480px,100%);display:grid}.auth-copy h1{text-align:center;font-size:38px}.auth-copy p:not(.eyebrow){color:var(--muted);text-align:center;margin:16px 0 0;line-height:1.7}.auth-copy .eyebrow{text-align:center}.auth-panel .band{margin:0}.auth-form{gap:22px;display:grid}.auth-fields{gap:16px}.auth-form .notice{margin:0}.auth-switch{color:var(--muted);text-align:center;margin:0;font-size:14px}.auth-switch a{color:var(--primary-strong);font-weight:800}.admin-page{width:min(1440px,100% - 32px)}.hero{grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);align-items:stretch;gap:28px;min-height:460px;display:grid}.hero-copy{flex-direction:column;justify-content:center;padding:clamp(12px,3vw,32px) 0;display:flex}.eyebrow{color:var(--primary);margin:0 0 12px;font-size:14px;font-weight:700}h1,h2,h3{margin:0;line-height:1.15}h1{letter-spacing:0;max-width:720px;font-size:clamp(42px,7vw,76px)}h2{font-size:28px}h3{font-size:18px}.lead{max-width:640px;color:var(--muted);margin:20px 0 0;font-size:18px;line-height:1.7}.actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.confirm-actions{justify-content:center}.auth-actions{justify-content:center;margin-top:2px}.settings-actions,.reservation-submit-actions{justify-content:center}.button{border:1px solid var(--primary);background:var(--primary);color:#fff;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:10px 16px;font-weight:700;display:inline-flex}.button.secondary{color:var(--primary-strong);background:0 0}.button.ghost{border-color:var(--line);background:var(--surface);color:var(--ink)}.button:disabled{border-color:var(--line);color:#747a71;cursor:not-allowed;background:#d5dad2}.modal-backdrop{z-index:50;background:#10181461;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.confirm-modal{border:1px solid var(--line);background:var(--surface);border-radius:8px;width:min(100%,420px);padding:24px;box-shadow:0 20px 60px #10181438}.confirm-modal h3{color:var(--ink);margin:0}.confirm-modal p{color:var(--muted);margin:12px 0 0;line-height:1.6}.modal-fields{margin-top:18px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.hero-media{background:#dfe7dc;border-radius:8px;min-height:420px;position:relative;overflow:hidden}.hero-media img{object-fit:cover;width:100%;height:100%}.hero-media:after{content:"";background:linear-gradient(#0000,#0000007a);height:38%;position:absolute;inset:auto 0 0}.media-caption{z-index:1;color:#fff;font-weight:700;position:absolute;bottom:18px;left:18px;right:18px}.guide-page,.guide-page .eyebrow,.guide-page .metric span,.guide-page .directions-caption,.guide-page .guide-rule-item p,.guide-page .guide-list{color:var(--ink)}.guide-rule-list{gap:18px;margin-top:22px;display:grid}.guide-rule-item{border-top:1px solid var(--line);gap:8px;padding-top:18px;display:grid}.guide-rule-item:first-child{border-top:0;padding-top:0}.guide-rule-item p,.guide-list{margin:0;line-height:1.7}.guide-list{gap:6px;padding-left:20px;display:grid}.directions-gallery{gap:16px;margin-top:22px;display:grid}.directions-gallery figure{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;margin:0;overflow:hidden}.directions-gallery img{width:100%;height:auto;display:block}.directions-caption{color:var(--primary-strong);text-align:center;margin:16px 0 0;font-size:17px;font-weight:800}.section{margin-top:44px}.band{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:28px}.grid{gap:16px;display:grid}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:18px}.metric span{color:var(--muted);margin-bottom:8px;font-size:13px;display:block}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:18px;display:flex}.admin-layout{grid-template-columns:210px minmax(0,1fr);align-items:start;gap:20px;display:grid}.admin-sidebar{border:1px solid var(--line);background:var(--surface);border-radius:8px;gap:18px;padding:18px;display:grid;position:sticky;top:86px}.admin-sidebar nav{gap:8px;display:grid}.admin-sidebar button{min-height:54px;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;font-weight:800;display:flex}.admin-sidebar button:hover,.admin-sidebar button.active{color:var(--primary-strong);background:#e5f2eb;border-color:#1f6f5b38}.admin-sidebar button span{color:var(--muted);white-space:nowrap;font-size:12px;font-weight:700}.admin-content{min-width:0}.admin-filters{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;grid-template-columns:160px 180px minmax(280px,1fr) auto auto;align-items:end;gap:12px;margin-bottom:12px;padding:14px;display:grid}.admin-filters .field{min-width:0}.admin-filters .field input,.admin-filters .field select{height:42px}.status-filter select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 18px) 18px,calc(100% - 12px) 18px;background-repeat:no-repeat;background-size:6px 6px;padding-right:34px}.search-field{min-width:220px}.filter-check{border:1px solid var(--line);min-height:42px;color:var(--ink);white-space:nowrap;background:#fff;border-radius:8px;align-items:center;gap:8px;padding:10px 12px;font-size:14px;font-weight:700;display:inline-flex}.filter-check input{width:16px;height:16px}.filter-summary{color:var(--muted);margin-bottom:12px;font-size:14px;font-weight:700}.blocked-form{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;grid-template-columns:repeat(12,minmax(0,1fr));align-items:end;gap:14px;padding:18px;display:grid}.blocked-form .field{gap:8px;min-width:0}.blocked-form .field label{color:#4f574e;font-size:13px}.blocked-form .field input,.blocked-form .field select{height:48px;font-size:15px}.block-date-field{grid-column:span 3}.block-time-field{grid-column:span 2}.block-full-day{grid-column:span 2;min-height:48px;margin:0}.block-reason{grid-column:1/10}.blocked-form>.button{grid-column:10/-1;min-height:48px}.blocked-slots-table{table-layout:fixed}.blocked-slots-table th,.blocked-slots-table td{vertical-align:middle}.blocked-slots-table th:first-child,.blocked-slots-table td:first-child,.blocked-slots-table th:nth-child(2),.blocked-slots-table td:nth-child(2),.blocked-slots-table th:nth-child(4),.blocked-slots-table td:nth-child(4){text-align:center;width:150px}.blocked-slots-table .button{min-height:36px;padding:7px 12px}.field{gap:6px;display:grid}.field label{color:var(--muted);font-size:13px;font-weight:700}.required-mark{color:#a33b39;background:#fde8e8;border-radius:999px;margin-left:4px;padding:2px 6px;font-size:11px;font-weight:800;display:inline-flex}.field input,.field select,.field textarea{border:1px solid var(--line);width:100%;min-height:42px;color:var(--ink);background:#fff;border-radius:8px;padding:10px 12px}.field textarea{resize:vertical;min-height:92px}.slot-grid{grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:10px;display:grid}.slot{border:1px solid var(--line);text-align:left;background:#fff;border-radius:8px;align-content:space-between;min-height:92px;padding:12px;display:grid}.slot.selectable{cursor:pointer;border-color:#1f6f5b80}.slot.selectable:hover{background:#edf7f2}.slot.selected{border-color:var(--primary);background:#dff3eb;box-shadow:inset 0 0 0 2px #1f6f5b33}.slot[aria-disabled=true]{color:var(--muted);cursor:not-allowed}.slot.disabled{color:#6d746b;opacity:.95;background:#e5e8e2;border-color:#c8cec5}.slot.disabled strong{color:#4f574e}.slot.disabled.past{background:repeating-linear-gradient(135deg,#e1e4de,#e1e4de 8px,#d7dbd3 8px 16px)}.selection-bar{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;margin-top:18px;padding:14px;display:flex}.selection-bar div{gap:4px;display:grid}.selection-bar span{color:var(--muted);font-size:14px}.time-line{white-space:nowrap;display:block}.selected-times{padding:16px 0 0}.selected-times ul{margin:12px 0 0;padding-left:20px}.change-panel{border:1px solid var(--line);background:#f8faf6;border-radius:8px;gap:16px;padding:18px;display:grid}.change-panel p{max-width:720px;color:var(--muted);margin:8px 0 0;line-height:1.6}.status{background:var(--surface-2);width:fit-content;color:var(--muted);border-radius:999px;align-items:center;padding:4px 8px;font-size:12px;font-weight:800;display:inline-flex}.status.available{color:var(--primary-strong);background:#e3f3ea}.status.pending_payment{color:var(--warn);background:#f8ebd7}.status.payment_submitted{color:var(--info);background:#e2eaf7}.status.confirmed{color:#1d4ed8;background:#dbeafe}.status.cancel_requested{color:#92400e;background:#fde68a}.status.blocked,.status.unavailable,.status.rejected,.status.cancelled,.status.expired{color:var(--danger);background:#f2e3e1}.status.past{color:#7a8178;background:#ecefec}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:760px}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:12px}th{color:var(--muted);font-size:13px}.admin-reservations-table{table-layout:fixed;min-width:980px}.admin-reservations-table th,.admin-reservations-table td{vertical-align:middle}.admin-reservations-table th{color:#4f574e;background:#f8faf6;font-weight:800}.admin-reservations-table tbody tr:hover{background:#fbfcf8}.admin-reservations-table td:not([colspan]){height:74px}.admin-reservations-table th:first-child,.admin-reservations-table td:not([colspan]):first-child{width:190px}.admin-reservations-table th:nth-child(2),.admin-reservations-table td:not([colspan]):nth-child(2){text-align:center;width:110px}.admin-reservations-table th:nth-child(3),.admin-reservations-table td:not([colspan]):nth-child(3){text-align:center;width:150px}.admin-reservations-table th:nth-child(4),.admin-reservations-table td:not([colspan]):nth-child(4){text-align:center;width:120px}.admin-reservations-table th:nth-child(5),.admin-reservations-table td:not([colspan]):nth-child(5){width:230px}.admin-reservations-table th:nth-child(6),.admin-reservations-table td:not([colspan]):nth-child(6){text-align:center;width:110px}.admin-reservations-table th:nth-child(7),.admin-reservations-table td:not([colspan]):nth-child(7){text-align:center;width:90px}.reservation-number{color:var(--muted);white-space:nowrap;font-size:12px;font-weight:800}.reservation-name,.reservation-amount{white-space:nowrap;font-size:14px}.reservation-time-cell{gap:6px;display:grid}.reservation-time-cell strong{font-size:14px}.admin-row-actions{grid-template-columns:1fr 1fr;gap:8px;display:grid}.admin-row-actions .button{white-space:nowrap;min-height:38px;padding:8px 10px}.admin-row-actions .button.ghost{grid-column:1/-1}.no-action{color:var(--muted);text-align:center;grid-column:1/-1;font-size:12px;font-weight:700}.detail-toggle{white-space:nowrap;min-height:36px;padding:7px 10px}.admin-detail-row td{background:#fbfcf8;padding:0 12px 14px}.admin-detail-panel{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px;display:grid}.admin-detail-item{gap:5px;min-width:0;display:grid}.admin-detail-item span{color:var(--muted);font-size:12px;font-weight:800}.admin-detail-item strong{overflow-wrap:anywhere;font-size:14px}.admin-detail-item p{color:var(--muted);margin:0;font-size:13px;line-height:1.45}.empty-table{color:var(--muted);text-align:center;padding:28px 12px}.my-reservations-table{table-layout:fixed;min-width:880px}.my-reservations-table th,.my-reservations-table td:not([colspan]){text-align:center;vertical-align:middle}.my-reservations-table th:first-child,.my-reservations-table td:not([colspan]):first-child{white-space:nowrap;width:180px}.my-reservations-table th:nth-child(2),.my-reservations-table td:not([colspan]):nth-child(2){width:260px}.my-reservations-table th:nth-child(3),.my-reservations-table td:not([colspan]):nth-child(3),.my-reservations-table th:nth-child(4),.my-reservations-table td:not([colspan]):nth-child(4){white-space:nowrap;width:120px}.my-reservations-table th:nth-child(5),.my-reservations-table td:not([colspan]):nth-child(5){width:220px}.my-reservations-table .actions{justify-content:center;gap:8px}.my-reservations-table .button{white-space:nowrap;min-height:38px;padding:8px 12px}.notice{border-left:4px solid var(--accent);color:#623b22;background:#fff7ef;margin-top:16px;padding:14px 16px;line-height:1.6}.schedule-info{color:#3f5048;background:#f3f7f5;border:1px solid #cfdbd5;border-radius:8px;gap:8px;margin:16px 0 0;padding:14px 18px 14px 34px;line-height:1.55;display:grid}.schedule-info li{padding-left:2px}.result-info{color:#31465f;background:#f1f6fb;border-color:#bfd0e3;font-weight:700}.reservation-guide{padding:14px 18px}.reservation-guide-group{gap:8px;display:grid}.reservation-guide-group+.reservation-guide-group{border-top:1px solid #cfdbd5;padding-top:14px}.reservation-guide-group h3{color:#263f35;margin:0;font-size:.96rem}.reservation-guide-group ul{gap:6px;margin:0;padding-left:18px;display:grid}@media (max-width:820px){.topbar{flex-direction:column;align-items:flex-start}.hero,.auth-panel,.directions-gallery,.grid.two,.grid.three{grid-template-columns:1fr}.auth-page{place-items:start center}.auth-copy h1{font-size:34px}.admin-filters,.blocked-form{grid-template-columns:1fr}.block-date-field,.block-time-field,.block-full-day,.block-reason,.blocked-form>.button{grid-column:1/-1}.admin-layout{grid-template-columns:1fr}.admin-sidebar{position:static}.admin-sidebar nav{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-sidebar button{flex-direction:column;align-items:flex-start}.admin-detail-panel{grid-template-columns:1fr}.hero{min-height:auto}.hero-media{min-height:320px}}.consent-checks{flex-direction:column;gap:10px;display:flex}.consent-item{color:var(--muted);cursor:pointer;align-items:flex-start;gap:8px;font-size:14px;display:flex}.consent-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);cursor:pointer;flex-shrink:0;margin-top:2px}.consent-item a{color:var(--primary);text-decoration:underline}.consent-item a:hover{color:var(--primary-strong)}.site-footer{color:var(--muted);justify-content:center;align-items:center;gap:10px;padding:24px 16px;font-size:13px;display:flex}.site-footer a:hover{color:var(--ink);text-decoration:underline}.site-footer-divider{color:var(--line)}
