.practice-editor { margin-bottom: 24px; }
.practice-editor-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr); align-items: start; gap: 24px; }
.practice-form, .practice-preview-column { min-width: 0; }
.practice-form h3, .practice-preview-column h3 { margin: 16px 0 12px; }
.practice-regular { display: grid; gap: 8px; }
.practice-day-row { display: grid; grid-template-columns: minmax(100px, .7fr) repeat(2, minmax(0, 1fr)); gap: 8px; align-items: end; padding: 10px; border: 1px solid #e8dfd5; border-radius: 5px; }
.practice-day-row strong { align-self: center; }
.practice-day-row label, .practice-exception label { display: grid; gap: 5px; min-width: 0; font-size: 14px; }
.practice-day-row input, .practice-day-row select, .practice-exception input, .practice-exception select { min-width: 0; width: 100%; min-height: 44px; font-size: 16px; }
.practice-day-row input:disabled, .practice-exception input:disabled { background: #eeeae5; color: #777; }
.practice-exception-head { margin: 24px 0 12px; align-items: start; }
.practice-exception-head p { margin: 4px 0; }
.practice-exception { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; border: 1px solid #ded4ca; border-radius: 5px; margin: 0 0 14px; padding: 14px; min-width: 0; }
.practice-exception legend { padding: 0 6px; font-weight: 600; }
.practice-note { grid-column: 1 / -1; }
.practice-exception button { justify-self: start; grid-column: 1 / -1; }
.practice-actions { margin-top: 20px; }
.practice-actions button, .practice-exception-head button { min-height: 44px; }
.practice-preview-column { display: grid; gap: 16px; }
.practice-preview, .practice-published { border: 1px solid #e2d9cf; border-radius: 6px; padding: 18px; background: #faf7f2; overflow-wrap: anywhere; }
.practice-published { background: #fefdfb; }
.practice-hours-list { display: grid; gap: 0; margin: 10px 0; }
.practice-hours-list > div { display: grid; grid-template-columns: minmax(80px, .55fr) minmax(0, 1fr); gap: 10px; padding: 8px 0; border-bottom: 1px solid #e9e0d8; }
.practice-hours-list dt { font-weight: 600; }
.practice-hours-list dd { margin: 0; }
.practice-exception-list { padding-left: 20px; }
.practice-exception-list li { padding: 4px 0; }
.practice-effective { padding: 12px; border-left: 3px solid #b09872; background: #f6f1e8; }
.practice-effective p { margin: 4px 0; }
.practice-public { margin: 28px 0 48px; max-width: 800px; overflow-wrap: anywhere; }
.practice-public h2 { margin-bottom: 18px; }
.preview-site.site-dark .practice-public { color: #fff8ef; }
.preview-site.site-dark .practice-public .practice-effective { background: #4f3043; color: #fff8ef; }
.preview-site.site-dark .practice-public .practice-hours-list > div { border-color: #735767; }
.preview-site.site-dark .practice-public .muted { color: #eaded6; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (max-width: 1100px) { .practice-editor-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 600px) { .practice-day-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } .practice-day-row > strong { grid-column: 1 / -1; } .practice-day-row label:first-of-type { grid-column: 1 / -1; } .practice-exception { grid-template-columns: repeat(2, minmax(0, 1fr)); } .practice-exception label:first-of-type { grid-column: 1 / -1; } .practice-exception-head { display: grid; } .practice-actions > button { width: 100%; } }
@media (max-width: 360px) { .practice-day-row, .practice-exception { grid-template-columns: minmax(0, 1fr); } .practice-day-row > strong, .practice-day-row label:first-of-type, .practice-exception label:first-of-type { grid-column: auto; } }
@container content (min-width: 901px) { .practice-editor-grid { grid-template-columns: minmax(500px, 1.2fr) minmax(280px, .8fr); } }
@container content (max-width: 900px) { .practice-editor-grid { grid-template-columns: minmax(0, 1fr); } }
@container content (max-width: 600px) { .practice-day-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } .practice-day-row > strong, .practice-day-row label:first-of-type { grid-column: 1 / -1; } .practice-exception { grid-template-columns: repeat(2, minmax(0, 1fr)); } .practice-exception label:first-of-type { grid-column: 1 / -1; } .practice-exception-head { display: grid; } }
@container content (max-width: 360px) { .practice-day-row, .practice-exception { grid-template-columns: minmax(0, 1fr); } .practice-day-row > strong, .practice-day-row label:first-of-type, .practice-exception label:first-of-type { grid-column: auto; } }

/* Give schedule names and native AM/PM controls enough space inside the editor column. */
.practice-day-row > strong { grid-column:1; grid-row:1 / span 2; }
.practice-day-row label:first-of-type { grid-column:2 / -1; grid-row:1; }
.practice-day-row label:nth-of-type(2) { grid-column:2; grid-row:2; }
.practice-day-row label:nth-of-type(3) { grid-column:3; grid-row:2; }
@container content (max-width:600px) {
  .practice-day-row > strong, .practice-day-row label:first-of-type { grid-column:1 / -1; grid-row:auto; }
  .practice-day-row label:nth-of-type(2), .practice-day-row label:nth-of-type(3) { grid-column:auto; grid-row:auto; }
}
.preview-site.site-dark .practice-public .eyebrow { color:#d7bd9d; }
.preview-site.site-dark .preview-theme { color:#18233a; }
/* Keep labels and schedule types readable for holiday entries too. */
.practice-exception { grid-template-columns:repeat(2,minmax(0,1fr)); }
.practice-exception label:first-of-type, .practice-exception label:nth-of-type(4) { grid-column:1 / -1; }
@container content (max-width:360px) { .practice-exception { grid-template-columns:minmax(0,1fr); } }
.business-location { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; border:1px solid #e2d9cf; padding:16px; margin:0 0 24px; min-width:0; }
.business-location legend { font-weight:600; padding:0 6px; }
.business-location label { display:grid; gap:6px; min-width:0; font-size:14px; }
.business-location input,.business-location select,.business-location textarea { width:100%; min-width:0; min-height:44px; font-size:16px; }
.business-location textarea { min-height:100px; resize:vertical; }
.business-wide { grid-column:1 / -1; }
.business-location h4,.business-location p { margin:0; }
.business-visit { margin-bottom:24px; }
.business-visit address { font-style:normal; line-height:1.6; }
.business-text { white-space:pre-line; overflow-wrap:anywhere; }
.business-access-list > div { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px; padding:6px 0; }
.business-access-list dd { margin:0; }
@container content (max-width:500px) { .business-location {grid-template-columns:minmax(0,1fr);padding:12px;} }
