/* Monthly schedule and fee guide: shared clinic palette, independent of poster artwork. */
body:has(dialog[open]){overflow:hidden}
.visitor-dialog [hidden]{display:none!important}
.popup-snooze{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);cursor:pointer;min-height:36px;letter-spacing:-.03em}
.popup-snooze input{width:17px;height:17px;accent-color:var(--green);margin:0;cursor:pointer}
.popup-snooze input:focus-visible{outline:3px solid #9ab72e;outline-offset:3px}
.popup-storage-status:empty{display:none}.popup-storage-status{position:fixed;z-index:50;bottom:95px;left:50%;transform:translateX(-50%);background:var(--green);color:white;padding:12px 18px;border-radius:5px;font-size:12px;max-width:90%}
.visitor-quick{max-width:1320px;margin:24px auto 0;padding:22px 4%;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}
.visitor-quick>div{display:flex;gap:14px;align-items:center}.visitor-quick p{font-size:15px;font-weight:600}.visitor-quick small{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:3px}
.visitor-quick button,.visit-info-buttons button{border:0;border-bottom:1px solid #a5b294;background:none;padding:9px 0;font-size:13px;font-weight:600}.visitor-quick button>span{margin-left:18px;color:#6b8523}
.visit-info-buttons{display:flex;gap:24px;flex-wrap:wrap;margin:0 0 30px}
.visitor-float{position:fixed;z-index:25;right:24px;bottom:24px;display:flex;box-shadow:0 3px 20px #003c3720;border:1px solid #dce1d9;border-radius:24px;background:white;overflow:hidden}
.visitor-float button{font-size:12px;background:none;border:0;padding:11px 18px}.visitor-float button+button{border-left:1px solid var(--line)}.visitor-float button:hover{background:var(--cream)}
.doctor-schedule{margin-top:23px;padding-top:20px;border-top:1px solid var(--line)}.doctor-schedule h4{font-size:13px;font-weight:600;margin:0 0 12px}.doctor-schedule>p{font-size:11px;line-height:1.9;color:var(--muted);margin-top:12px}
.week-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.week-day{display:flex;flex-direction:column;align-items:center;padding:9px 2px;border-radius:3px;background:#edf2e6}.week-day b{font-size:12px;font-weight:500}.week-day small{font-size:9px;margin-top:2px;color:#446239}.week-day.is-off{background:#f2f1ed;color:#9a716b}.week-day.is-off small{color:#9a716b}
.doctor-schedule-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:16px}.doctor-schedule-actions button{font-size:11px;padding:9px 12px;background:white;border:1px solid var(--line);border-radius:3px}.booking-link{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:10px 14px;border-radius:3px;background:var(--green);color:white;font-size:12px;font-weight:500}.doctor-schedule .booking-link{font-size:11px}.booking-link:hover{background:#205246}.booking-link.is-highlighted{outline:3px solid #a8bc73;outline-offset:3px}
.visitor-dialog{width:min(900px,calc(100% - 32px));max-width:none;max-height:min(920px,92vh);max-height:min(920px,92dvh);padding:0;border:0;border-radius:10px;background:#fff;color:var(--ink);box-shadow:0 25px 90px #002a2940;overflow:hidden}
.visitor-dialog[open]{display:flex;flex-direction:column}.visitor-dialog::backdrop{background:#122c27a8;backdrop-filter:blur(4px)}
.visitor-top{padding:24px 32px 21px;background:var(--cream);display:flex;align-items:center;justify-content:space-between;gap:15px;flex-shrink:0}.visitor-top .eyebrow{font-size:9px;letter-spacing:.19em;margin:0 0 7px}.visitor-top h2{font-family:inherit;font-size:25px;line-height:1.4;font-weight:600}.visitor-top>button{border:1px solid #d4dcce;background:#ffffff80;border-radius:50%;width:36px;height:36px;flex-shrink:0;padding:0;font-size:24px;line-height:1}
.visitor-tabs{display:flex;flex-shrink:0;border-bottom:1px solid var(--line);padding:0 32px;gap:28px}.visitor-tabs button{padding:15px 0 13px;border:0;border-bottom:3px solid transparent;background:none;color:var(--muted);font-size:14px;font-weight:500}.visitor-tabs button[aria-pressed=true]{color:var(--green);border-bottom-color:#83a22a;font-weight:700}
.visitor-scroll{overflow-y:auto;overscroll-behavior:contain;padding:24px 32px 28px;min-height:0;scrollbar-gutter:stable}
.calendar-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px}.calendar-heading p{font-size:9px;letter-spacing:.17em;color:var(--muted);margin-bottom:3px}.calendar-heading h3{font-size:25px;font-weight:400;line-height:1.4;letter-spacing:-.06em}.calendar-heading h3 strong{font-weight:700}.schedule-test{font-size:10px;color:#6e7f5d;border:1px solid #d8e1cb;border-radius:20px;padding:5px 10px}
.schedule-legend{display:flex;gap:16px;align-items:center;flex-wrap:wrap;font-size:11px;margin-bottom:14px}.schedule-legend>span{display:flex;align-items:center;gap:6px}.schedule-legend i{width:7px;height:7px;border-radius:50%;display:inline-block}.jang-dot{background:#003c37}.choi-dot{background:#77952c}.schedule-legend>small{font-size:10px;color:var(--muted);margin-left:auto}
.schedule-calendar{width:100%;table-layout:fixed;border-collapse:collapse}.schedule-calendar th{font-size:11px;font-weight:500;padding:6px 0 10px;color:var(--muted)}.schedule-calendar th:first-child{color:#a36961}.schedule-calendar td{padding:2px;vertical-align:top}.calendar-day{display:flex;flex-direction:column;align-items:stretch;width:100%;min-height:87px;padding:7px 8px;border:1px solid #e5e9df;background:#fff;border-radius:4px;text-align:left}.calendar-day:hover{background:#f7f9f3}.calendar-day[aria-pressed=true]{background:#f0f4e7;border-color:#799538;box-shadow:inset 0 0 0 1px #799538}.calendar-date{font-size:14px;font-weight:600;line-height:1.3}.calendar-hours{font-size:10px;color:#64735e;margin:3px 0 5px;white-space:nowrap}.calendar-doctors{display:flex;gap:4px;flex-wrap:wrap}.doctor-badge{display:flex;gap:3px;align-items:center;border-radius:2px;padding:1px 4px;font-size:9px;line-height:1.5;white-space:nowrap}.doctor-badge.jang{color:#003c37;background:#ebf2ef}.doctor-badge.choi{color:#556e21;background:#eff4df}.doctor-badge.off{background:#f1f0ec;color:#88877d}.doctor-badge i{font-size:7px;font-style:normal}.badge-short{display:none}.calendar-day.is-closed{background:#faf5f2;border-color:#efe7e0}.is-closed .calendar-date,.is-closed .calendar-hours,.calendar-closed{color:#a07166}.calendar-closed{font-size:10px}.is-holiday .calendar-date{color:#a07166}.is-night .calendar-hours{color:#416b68;font-weight:600}
.schedule-selected{background:var(--cream);border-radius:5px;padding:16px 19px;margin-top:18px;display:grid;grid-template-columns:1fr auto;gap:15px;align-items:center}.schedule-selected h4{margin:0 0 4px;font-size:15px;font-weight:600}.schedule-selected p{font-size:12px}.schedule-selected small{font-size:10px;color:var(--muted)}.selected-doctors{border-left:1px solid #d9dfcf;padding-left:20px;display:grid;gap:5px}.selected-doctors p{font-size:11px}
.schedule-rules{font-size:11px;line-height:1.9;color:var(--muted);margin:16px 0 19px;display:grid;gap:6px}.schedule-rules b{font-weight:500;color:var(--ink)}.schedule-bookings{display:grid;grid-template-columns:1fr 1fr;gap:12px}.booking-note{font-size:10px;line-height:1.8;color:var(--muted);margin-top:11px}
.visitor-bottom{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:12px 32px;border-top:1px solid var(--line);background:#fff;gap:15px}.visitor-bottom>span{font-size:11px;color:var(--muted)}.visitor-bottom button{font-size:12px;font-weight:500;border:0;border-radius:3px;background:var(--green);color:white;padding:9px 20px}
.fee-intro{padding:4px 0 20px}.fee-intro .eyebrow{font-size:9px;margin:0 0 9px}.fee-intro h3{font-size:23px;line-height:1.5;font-weight:600}.fee-intro>p:last-child{font-size:11px;margin-top:8px;color:var(--muted)}.fee-categories{display:flex;gap:7px;flex-wrap:wrap;padding-bottom:24px}.fee-categories button{font-size:12px;border:1px solid var(--line);background:white;border-radius:20px;padding:7px 16px}.fee-categories button[aria-pressed=true]{background:var(--green);color:white;border-color:var(--green)}.fee-table-heading{display:flex;gap:15px;align-items:center;justify-content:space-between;padding-bottom:12px}.fee-table-heading h4{font-size:15px;font-weight:600;margin:0}.fee-table-heading>span{font-size:10px;color:var(--muted)}.fee-table{width:100%;border-collapse:collapse;table-layout:fixed}.fee-table thead{background:var(--cream);font-size:11px;color:var(--muted)}.fee-table th,.fee-table td{border-bottom:1px solid var(--line);padding:14px 12px;text-align:left}.fee-table thead th{font-weight:500;padding-top:10px;padding-bottom:10px}.fee-table th:first-child,.fee-table td:first-child{width:24%}.fee-table th:last-child,.fee-table td:last-child{width:34%;text-align:right}.fee-table tbody th{font-size:13px;font-weight:500;word-break:keep-all}.fee-table tbody td:first-child{font-size:11px;color:var(--muted);word-break:keep-all}.fee-table tbody td:last-child{font-size:14px;font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.02em;white-space:nowrap}.fee-table small{font-size:10px;margin-left:4px;color:var(--muted);font-weight:400}.fee-notes{font-size:11px;color:var(--muted);line-height:1.9;margin:15px 0 0;padding-left:17px}.fee-contact{margin-top:25px;padding:19px;background:var(--cream);display:flex;justify-content:space-between;gap:15px;align-items:center;font-size:12px}.fee-contact a{font-weight:600;white-space:nowrap}
@media(max-width:760px){.visitor-quick{margin-top:10px;padding:22px 6%;display:block}.visitor-quick>div:last-child{margin-top:15px;gap:27px}.visitor-quick p{font-size:14px}.visitor-quick button{font-size:12px}.visitor-float{right:12px;bottom:69px}.visitor-float button{padding:9px 14px;font-size:11px}.visitor-dialog{width:calc(100% - 20px);max-height:92vh;max-height:92dvh;border-radius:7px}.visitor-top{padding:20px 18px 17px}.visitor-top h2{font-size:21px}.visitor-top .eyebrow{font-size:8px}.visitor-tabs{padding:0 18px;gap:24px}.visitor-tabs button{font-size:13px;padding:13px 0 11px}.visitor-scroll{padding:20px 15px 23px;scrollbar-gutter:auto}.visitor-bottom{padding:11px 18px}.calendar-heading h3{font-size:24px}.schedule-test{font-size:9px;padding:4px 8px}.schedule-legend{gap:12px;font-size:10px;margin-bottom:10px}.schedule-legend>small{width:100%;margin-left:0;font-size:9px}.schedule-calendar td{padding:1px}.calendar-day{min-height:83px;padding:6px 3px}.calendar-date{font-size:13px}.calendar-hours{font-size:9px;margin:4px 0 6px}.calendar-doctors{gap:2px}.doctor-badge{font-size:9px;padding:1px 3px;gap:2px}.badge-full{display:none}.badge-short{display:inline}.doctor-badge i{font-size:6px}.calendar-closed{font-size:9px}.schedule-selected{padding:14px 12px;gap:10px;grid-template-columns:1fr}.selected-doctors{border:0;border-top:1px solid #d9dfcf;padding:10px 0 0;display:flex;gap:17px}.schedule-selected h4{font-size:14px}.schedule-selected p{font-size:11px}.schedule-rules{font-size:10px;margin-top:14px}.schedule-bookings{gap:7px}.schedule-bookings .booking-link{font-size:10px;padding:10px 9px;gap:4px}.booking-note{font-size:9px}.fee-intro h3{font-size:21px}.fee-categories{gap:5px;padding-bottom:20px}.fee-categories button{padding:6px 11px;font-size:11px}.fee-table th,.fee-table td{padding:12px 5px}.fee-table th:first-child,.fee-table td:first-child{width:21%}.fee-table th:last-child,.fee-table td:last-child{width:39%}.fee-table tbody th{font-size:11px}.fee-table tbody td:first-child{font-size:9px}.fee-table tbody td:last-child{font-size:12px}.fee-table small{font-size:9px;margin-left:2px}.fee-contact{font-size:11px;flex-wrap:wrap}.visit-info-buttons{gap:20px}.visit-info-buttons button{font-size:12px}}
@media(max-width:370px){.calendar-day{min-height:90px}.calendar-doctors{flex-direction:column;align-items:start}.schedule-bookings{grid-template-columns:1fr}.fee-table tbody td:last-child{font-size:11px}.fee-categories button{padding-left:9px;padding-right:9px}}

.calendar-nav{display:flex;align-items:center;gap:7px}.calendar-nav button{border:1px solid var(--line);background:#fff;color:var(--green);border-radius:4px;padding:7px 11px;font-size:12px;min-height:36px}.calendar-nav button:disabled{opacity:.35;cursor:default}.calendar-nav button:focus-visible{outline:2px solid #83a22a;outline-offset:2px}.month-notice{margin:12px 0 0;padding:12px 14px;background:#f5f7f0;color:#536348;font-size:11px;line-height:1.9;overflow-wrap:anywhere}.calendar-day[aria-current=date] .calendar-date::after{content:'오늘';display:inline-block;font-size:8px;margin-left:4px;color:var(--green)}
@media(max-width:420px){.calendar-heading h3{font-size:21px}.calendar-nav{gap:4px}.calendar-nav button{padding:6px 8px;font-size:11px}.month-notice{font-size:10px;padding:10px}.calendar-day[aria-current=date] .calendar-date::after{display:block;margin:1px 0 0;font-size:7px}}
