#catalog-form.service-form-ui .service-character-count{display:block;text-align:left;justify-self:start;font-size:12px;line-height:1.4;margin:4px 0 0;color:var(--muted)}
#catalog-form.service-form-ui .service-character-count.over-limit{color:#007a51;font-weight:600}
:is(#catalog-form,#catalog-files).service-form-ui .service-form-action{width:auto;min-height:40px;padding:8px 14px;border:1px solid var(--clay);border-radius:10px;background:var(--clay);color:#fff;text-decoration:none;font:inherit;font-size:14px;line-height:1.3;justify-self:start;margin:4px 0;white-space:normal}
#catalog-form.service-form-ui .dental-day>.service-form-action{grid-column:auto}
.service-save-notice{position:fixed;z-index:2147483647;left:50%;bottom:24px;transform:translateX(-50%);max-width:min(560px,calc(100vw - 32px));box-sizing:border-box;padding:12px 18px;border:1px solid #dce4ec;border-radius:12px;background:#fff;color:#002763;box-shadow:0 4px 20px #0002;font-size:15px;line-height:1.5}
.service-save-notice[hidden]{display:none}
#catalog-files.service-form-ui #catalog-submit[hidden]{display:none!important}
@media(max-width:650px){:is(#catalog-form,#catalog-files).service-form-ui .service-form-action{min-height:44px}.service-save-notice{bottom:16px}}
.service-policy-helper{grid-column:1/-1;display:grid;gap:8px;margin:0 0 12px}.service-policy-helper>.button{justify-self:start}.service-policy-helper p:empty{display:none}.dental-location-grid label:has(input[type=search]){grid-column:1/-1}.dental-location-grid small{line-height:1.4}
:is(#catalog-form,#catalog-files).service-form-ui .service-required-marker,.dental-save-actions .service-required-marker{color:#b42318;font-weight:700;font-size:inherit;white-space:pre}
#catalog-form.service-form-ui label:has(>.service-field-caption[data-marker-only]){position:relative}
#catalog-form.service-form-ui .service-field-caption[data-marker-only]{position:absolute;right:8px;top:0;z-index:1;line-height:1;pointer-events:none}
/* Small per-field controls; no whole-form voice wizard. */
.service-form-ui .dental-field-assist{margin:4px 0 10px;min-width:0}
.service-form-ui .dental-field-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px}
.service-form-ui button.dental-field-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 36px;width:36px;height:36px;min-height:36px;padding:6px;border:1px solid #ddd;border-radius:50%;background:#fff;color:#54352d;box-shadow:none}
.service-form-ui button.dental-field-icon[aria-pressed=true]{background:#8a3023;color:white}
.service-form-ui button.dental-field-icon:disabled{opacity:.4}
.service-form-ui button.dental-field-ai{background:none;color:#783a2d;border:0;box-shadow:none;padding:6px 10px;min-height:36px;font-size:inherit;text-decoration:underline;text-underline-offset:3px}
.service-form-ui .dental-dictation-review{margin-top:6px;font-size:.9em;color:#555}
.service-form-ui .dental-field-assist small{display:block;margin-top:6px}
.service-form-ui .dental-field-assist [hidden]{display:none!important}
.service-form-ui input::placeholder,.service-form-ui textarea::placeholder{color:#797979;opacity:1}
/* The field, dictation review and controls share one visible frame. */
#catalog-form.service-form-ui .dental-field-assist{display:flex;flex-direction:column;gap:4px;margin:6px 0 0;padding:4px 8px 6px;border:1px solid #d4d4d4;border-radius:14px;background:#fff;min-width:0;box-sizing:border-box}
#catalog-form.service-form-ui .dental-field-assist:focus-within{border-color:#526667;box-shadow:0 0 0 2px #52666725}
#catalog-form.service-form-ui .dental-field-assist>input,#catalog-form.service-form-ui .dental-field-assist>textarea{margin:0;padding:9px 6px;border:0;outline:none;box-shadow:none;background:transparent;width:100%;min-width:0;box-sizing:border-box;border-radius:6px}
#catalog-form.service-form-ui .dental-field-assist>input{min-height:42px}
#catalog-form.service-form-ui .dental-dictation-review{border-top:1px solid #e3e3e3;padding-top:6px}
#catalog-form.service-form-ui .dental-dictation-review>textarea{width:100%;box-sizing:border-box;min-height:70px;margin:0;padding:8px;border:1px solid #ddd;border-radius:8px;background:#fafafa}
#catalog-form.service-form-ui .dental-field-actions{flex-wrap:wrap;margin-top:2px;gap:4px}
#catalog-form.service-form-ui .dental-field-ai{margin-right:auto}
#catalog-form.service-form-ui .dental-field-assist [hidden]{display:none!important}
input[data-dental-pulse=true]:not(:checked):not(:disabled){animation:dental-consent-glow 5s ease-in-out infinite;border-radius:4px}
@keyframes dental-consent-glow{0%,76%,100%{box-shadow:0 0 0 0 #b98b4b00}86%{box-shadow:0 0 0 5px #b98b4b40,0 0 9px 3px #b98b4b25}}
@media(prefers-reduced-motion:reduce){input[data-dental-pulse=true]:not(:checked):not(:disabled){animation:none}}

/* Shared compact dental tools with hover, keyboard and touch labels. */
:is(#catalog-form,#catalog-files,.service-media-dialog) :is(button.dental-field-icon,button.dental-camera-icon){display:inline-flex;align-items:center;justify-content:center;position:relative;flex:0 0 36px;width:36px;height:36px;min-height:36px;padding:7px;margin:0;border:1px solid var(--clay,#704438);border-radius:50%;background:#fff;color:var(--clay,#704438);box-shadow:none;text-decoration:none;touch-action:manipulation}
#catalog-form.service-form-ui .dental-field-ai{margin-right:auto;padding:7px;text-decoration:none}
:is(#catalog-form,#catalog-files,.service-media-dialog) [data-tooltip]{position:relative}
:is(#catalog-form,#catalog-files,.service-media-dialog) [data-tooltip]::after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);right:0;z-index:5;max-width:220px;width:max-content;box-sizing:border-box;padding:6px 9px;border-radius:7px;background:var(--clay,#704438);color:#fff;font-size:12px;line-height:1.4;white-space:normal;pointer-events:none;opacity:0;visibility:hidden}
:is(#catalog-form,#catalog-files,.service-media-dialog) [data-tooltip]:is(:hover,:focus-visible,:active)::after{opacity:1;visibility:visible}
#catalog-form .dental-field-ai::after{right:auto;left:0}
:is(#catalog-form,#catalog-files,.service-media-dialog) :is(.dental-field-icon,.dental-camera-icon):focus-visible{outline:2px solid var(--clay,#704438);outline-offset:3px}
:is(#catalog-form,#catalog-files,.service-media-dialog) :is(.dental-field-icon,.dental-camera-icon):disabled{opacity:.4;cursor:wait}
#catalog-form .dental-photo-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.dental-photo-upload::before{content:'';display:inline-block;vertical-align:middle;margin-right:8px;width:20px;height:20px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='1.8' d='m8 6 2-3h4l2 3h5v14H3V6Z'/%3E%3Ccircle fill='none' stroke='black' stroke-width='1.8' cx='12' cy='12' r='4'/%3E%3C/svg%3E") center/contain no-repeat}
@media(pointer:coarse){:is(#catalog-form,#catalog-files,.service-media-dialog) :is(button.dental-field-icon,button.dental-camera-icon){flex-basis:44px;width:44px;height:44px;min-height:44px;padding:11px}}

/* Photo order and removal are local to each independent gallery. */
:is(#catalog-form,#catalog-files,.service-media-dialog) .dental-media-tile{position:relative;margin:0;min-width:0;border-radius:10px;touch-action:pan-y;overflow:visible}
:is(#catalog-form,#catalog-files,.service-media-dialog) .dental-media-tile>img{width:100%;height:130px;object-fit:cover;border-radius:10px;cursor:grab;touch-action:none;user-select:none;-webkit-user-drag:none}
:is(#catalog-form,#catalog-files,.service-media-dialog) .dental-media-tile:focus-visible{outline:2px solid var(--clay);outline-offset:3px}
:is(#catalog-form,#catalog-files,.service-media-dialog) .dental-media-tile.is-dragging{opacity:.6;outline:2px solid var(--clay)}
:is(#catalog-form,#catalog-files,.service-media-dialog) .dental-media-tile>figcaption{padding:5px 0;font-size:13px;color:var(--clay,#704438)}
:is(#catalog-form,#catalog-files,.service-media-dialog) button.dental-media-remove{position:absolute;top:5px;right:5px;display:grid;place-items:center;width:30px;height:30px;min-height:30px;margin:0;padding:0;border:1px solid #fff8;border-radius:50%;background:#0009;color:#fff;font-size:24px;line-height:1;z-index:1}
#catalog-form .health-treatment-upload>.catalog-media{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px}
#catalog-form .health-treatment-upload .dental-media-tile>img{width:100%;height:100px}
@media(pointer:coarse){:is(#catalog-form,#catalog-files,.service-media-dialog) button.dental-media-remove{width:40px;height:40px;min-height:40px}}

/* Smaller AI star; retain a comfortable invisible touch area. */
#catalog-form.service-form-ui button.dental-field-ai{flex-basis:26px;width:26px;height:26px;min-height:26px;padding:5px}
#catalog-form.service-form-ui button.dental-field-ai svg{width:14px;height:14px;flex:0 0 14px}
@media(pointer:coarse){#catalog-form.service-form-ui button.dental-field-ai{position:relative;margin:9px;flex-basis:26px;width:26px;height:26px;min-height:26px;padding:5px}#catalog-form.service-form-ui button.dental-field-ai::before{content:'';position:absolute;inset:-9px}}
.dental-photo-chooser{position:relative}.dental-photo-chooser>button[aria-label]{position:absolute;right:12px;top:8px;border:0;background:transparent;color:var(--clay);font-size:26px}.dental-photo-chooser>.button{display:block;width:100%;margin:12px 0}
.service-validation-notice{grid-column:1/-1;padding:12px;background:#eaf2fb;color:#002763;border:1px solid #dce4ec;border-radius:12px;line-height:1.5}
.service-validation-notice[hidden]{display:none}
.service-form-ui [aria-invalid=true]{outline:2px solid #002763;outline-offset:2px}
