/* Hospital-specific shell: customize this file and floating-menu-config.js together. */
.hospital-floating-menu { --floating-accent:#1468b8; --floating-on-accent:#fff; position:fixed; z-index:850; top:50%; right:20px; transform:translateY(-50%); width:88px; max-height:calc(100dvh - 120px); padding:7px; display:flex; flex-direction:column; gap:4px; overflow-y:auto; border:1px solid #dfE8ef; border-radius:24px; background:#fff; box-shadow:0 12px 36px #153d6021; }
.hospital-floating-menu[hidden] { display:none; }
.hospital-floating-menu[data-side="left"] { right:auto; left:20px; }
.hospital-floating-menu__item { min-width:0; min-height:82px; flex:0 0 auto; padding:12px 3px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; border:0; border-radius:18px; background:transparent; color:#294354; font:700 12px/1.4 Pretendard,"Noto Sans KR",sans-serif; text-decoration:none; cursor:pointer; }
.hospital-floating-menu__item:hover { background:#edf5fc; color:#134f80; }
.hospital-floating-menu__item.is-emphasis { background:var(--floating-accent); color:var(--floating-on-accent); }
.hospital-floating-menu__item:focus-visible { outline:2px solid var(--floating-accent); outline-offset:-2px; }
.hospital-floating-menu__icon { width:28px; height:28px; display:grid; place-items:center; }
.hospital-floating-menu__icon svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; }
.hospital-floating-menu__icon img { display:block; width:100%; height:100%; object-fit:contain; }
.hospital-floating-menu__label { max-width:100%; overflow-wrap:anywhere; text-align:center; }
.hospital-floating-menu__item.is-artwork { padding:0; overflow:hidden; }
.hospital-floating-menu__artwork { display:block; width:100%; height:auto; object-fit:contain; }
.hospital-floating-menu__item.is-inactive { opacity:.45; }
@media (min-width:761px) { .hospital-floating-menu__item[data-desktop="false"] { display:none; } }
@media (max-width:760px) {
  .hospital-floating-menu,.hospital-floating-menu[data-side="left"] { top:auto; left:12px; right:12px; bottom:max(10px,env(safe-area-inset-bottom)); transform:none; width:auto; max-height:110px; padding:5px; flex-direction:row; overflow-x:auto; overflow-y:hidden; border-radius:20px; }
  .hospital-floating-menu__item { min-width:68px; min-height:62px; flex:1 0 68px; padding:7px 8px; gap:3px; border-radius:15px; font-size:11px; }
  .hospital-floating-menu__icon { width:24px; height:24px; }
  .hospital-floating-menu__icon svg { width:22px; height:22px; }
  .hospital-floating-menu__item[data-mobile="false"] { display:none; }
  .hospital-floating-menu__artwork { max-height:72px; }
  body.has-hospital-floating-menu { padding-bottom:calc(88px + env(safe-area-inset-bottom)); }
}
.hospital-floating-dialog { width:min(1000px,calc(100% - 32px)); max-width:none; max-height:calc(100dvh - 40px); margin:auto; padding:0; overflow:auto; border:0; border-radius:24px; color:#20364b; background:#fff; box-shadow:0 24px 90px #071b3359; }
.hospital-floating-dialog::backdrop { background:#12283999; backdrop-filter:blur(3px); }
.hospital-floating-dialog > header { position:sticky; top:0; z-index:1; padding:20px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; border-bottom:1px solid #e7edf3; background:#fff; }
.hospital-floating-dialog h2 { margin:0; font:800 22px/1.4 Pretendard,sans-serif; }
.hospital-floating-dialog > header > button { width:40px; height:40px; flex:0 0 40px; padding:0; border:1px solid #dbe6ef; border-radius:50%; background:#fff; color:#2c475b; font:26px/1 sans-serif; cursor:pointer; }
.hospital-floating-dialog__body { min-width:0; }
.hospital-floating-dialog__image { width:auto; max-width:100%; max-height:calc(100dvh - 154px); height:auto; display:block; margin:0 auto; object-fit:contain; }
.hospital-floating-dialog__page { display:block; width:100%; height:min(74dvh,780px); border:0; background:#fff; }
.hospital-floating-dialog__status { padding:40px 24px; color:#557087; }
html.has-floating-dialog { overflow:hidden !important; }
.floating-hours { padding:32px; max-width:650px; margin:auto; }
.floating-hours > p { margin:0 0 24px; color:#647a8d; }
.floating-hours dl { margin:0; }
.floating-hours dl > div { display:flex; justify-content:space-between; gap:20px; padding:20px 0; border-bottom:1px solid #e5edf3; }
.floating-hours dt { font-weight:700; }.floating-hours dd { margin:0; font-size:20px; font-weight:800; }
html.floating-page-embed :is(.topbar,.site-header,.site-footer,.sub-visual,.sub-nav,[data-hospital-floating-menu]) { display:none !important; }
html.floating-page-embed #templateContent { width:100%; margin:0; padding:24px 20px; }
@media (max-width:540px) { .hospital-floating-dialog { width:calc(100% - 16px); max-height:calc(100dvh - 20px); border-radius:18px; }.hospital-floating-dialog > header { padding:14px 16px; }.hospital-floating-dialog h2 { font-size:18px; }.floating-hours { padding:24px 18px; }.floating-hours dd { font-size:17px; } }

/* Scoped admin UI uses the same code-owned visual without fixed positioning. */
.floating-admin-controls { display:flex; flex-wrap:wrap; align-items:center; gap:14px; padding:18px; border:1px solid #dce6ee; border-radius:16px; background:#fff; }
.floating-admin-controls > label { display:flex; align-items:center; gap:9px; font-size:14px; font-weight:700; }
.floating-admin-controls input,.floating-action-fields input[type="checkbox"] { width:18px; height:18px; flex:0 0 18px; margin:0; accent-color:#1468b8; }
.floating-admin-controls > span { flex:1; color:#708598; font-size:12px; }
.floating-admin-message { margin:12px 0; color:#476a83; font-size:13px; line-height:1.6; }
.floating-admin-message.is-error { color:#b33434; }
.floating-admin-layout { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:24px; align-items:start; }
.floating-admin-list { display:grid; gap:12px; }
.floating-admin-item { min-width:0; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:24px; border:1px solid #dce6ee; border-radius:16px; background:#fff; }
.floating-admin-item > div { min-width:0; }.floating-admin-item strong { display:block; margin-bottom:8px; font-size:17px; }
.floating-admin-item span { color:#1468b8; font-size:12px; font-weight:700; }.floating-admin-item p { margin:6px 0 0; overflow-wrap:anywhere; color:#738696; font-size:12px; }
.floating-admin-item > button { flex-shrink:0; }
.floating-admin-preview { padding:24px; border-radius:20px; background:#edf3f7; text-align:center; }.floating-admin-preview > p { margin:8px 0 20px; font-size:12px; color:#6b8091; }.floating-admin-preview > small { display:block; margin-top:20px; font-size:11px; line-height:1.7; color:#6b8091; }
.floating-admin-preview .hospital-floating-menu { position:static; transform:none; width:88px; max-height:none; margin:auto; flex-direction:column; overflow:visible; }
.floating-admin-preview .hospital-floating-menu__item { display:flex; flex:0 0 auto; min-height:82px; }
.floating-action-modal { width:min(640px,calc(100% - 24px)); }
.floating-action-fields { margin-top:24px; display:grid; gap:18px; }
.floating-action-fields > label { min-width:0; display:grid; gap:8px; color:#38566d; font-size:13px; font-weight:700; }
.floating-action-fields select,.floating-action-fields input:not([type="checkbox"]) { width:100%; min-width:0; height:46px; padding:0 12px; border:1px solid #cbdce8; border-radius:9px; background:#fff; font:14px Pretendard,sans-serif; }
.floating-action-fields .floating-action-check,.floating-action-visibility label { display:flex; align-items:center; gap:8px; }
.floating-action-visibility { min-width:0; margin:0; padding:16px; display:flex; flex-wrap:wrap; gap:14px 22px; border:1px solid #dce6ee; border-radius:12px; font-size:13px; }
.floating-action-visibility legend { padding:0 5px; color:#38566d; font-size:12px; font-weight:700; }
.floating-action-help { color:#72899b; font-size:12px; line-height:1.65; }
.floating-action-footer { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; margin-top:24px; }
.floating-action-footer [data-floating-test] { margin-right:auto; }
.floating-action-fields [hidden],.floating-action-footer [hidden] { display:none !important; }
@media (max-width:900px) { .floating-admin-layout { grid-template-columns:minmax(0,1fr); }.floating-admin-preview .hospital-floating-menu { width:100%; flex-direction:row; }.floating-admin-preview .hospital-floating-menu__item { flex:1; min-width:0; }.floating-admin-controls > span { min-width:100%; order:3; } }
@media (max-width:480px) { .floating-admin-item { padding:18px; gap:12px; }.floating-admin-preview { padding:18px 10px; }.floating-action-modal .admin-modal__card { padding:22px 16px; }.floating-action-footer > button { flex:1; }.floating-action-footer [data-floating-test] { flex-basis:100%; } }
