/* Shared create/private-edit surface. No public listing/profile design changes. */
.publication-editor-fields { border:0; padding:0; margin:16px 0 0; min-inline-size:0; }
.publication-editor-fields[disabled] { opacity:.75; }
#create-form [hidden] { display:none !important; }
.publication-editor-notice { padding:12px 14px; margin:14px 0; border:1px solid var(--border); border-radius:10px; background:var(--surface); font-size:13px; line-height:1.6; color:var(--text-primary); overflow-wrap:anywhere; }
.publication-editor-notice--error { border-color:var(--accent); }
.publication-existing-photos { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:14px 0; }
.publication-existing-photo { min-width:0; }
.publication-existing-photo img { width:100%; aspect-ratio:4/5; border-radius:10px; object-fit:cover; background:var(--bg); }
.publication-existing-photo__actions { display:flex; flex-direction:column; gap:5px; margin-top:7px; }
.publication-existing-photo__actions button { min-height:36px; padding:6px 8px; font-size:11px; }
@media(max-width:500px) { .publication-existing-photos { grid-template-columns:repeat(2,minmax(0,1fr)); } .publication-existing-photo__actions button { min-height:44px; } }

/* The shared form already has responsive width; avoid nested size containment inside a fieldset. */
#publication-editor-fields > .localized-content-editor { container-type:normal; container-name:none; }

/* One field component for create, page edit and cabinet modal edit. */
.form-page:has(.publication-shared-form) { max-width:660px; margin-inline:auto; }
.publication-shared-form .publication-editor-fields { display:grid; gap:20px; margin-top:18px; }
.publication-shared-form .publication-editor-fields > .form-group { margin:0; min-width:0; }
.publication-shared-form .form-label { font-size:14px; line-height:1.5; }
.publication-shared-form :is(.form-input,.form-select,.form-textarea) { box-sizing:border-box; width:100%; min-width:0; border:1px solid #dfe3e8; border-radius:12px; font-size:16px; }
.publication-shared-form .form-textarea { min-height:112px; }
.publication-shared-form .localized-content-editor { margin:0; padding:0; border:0; background:transparent; }
#create-form .publication-direction-row { display:flex; width:100%; min-width:0; max-width:100%; flex-wrap:nowrap; overflow-x:auto; overflow-y:hidden; padding:4px; scrollbar-width:none; overscroll-behavior-x:contain; touch-action:pan-x pan-y pinch-zoom; }
#create-form .publication-direction-row .lang-chip { flex:0 0 auto; white-space:nowrap; user-select:none; -webkit-user-select:none; }
#create-form .publication-direction-row::-webkit-scrollbar { display:none; }
@media(hover:hover) and (pointer:fine) { #create-form .publication-direction-row,#create-form .publication-direction-row .lang-chip { cursor:grab; } #create-form .publication-direction-row.is-grabbing,#create-form .publication-direction-row.is-grabbing .lang-chip { cursor:grabbing; } }
.publication-shared-form :is(#photo-previews,.publication-existing-photos) { display:flex; flex-wrap:nowrap; gap:10px; width:100%; max-width:100%; min-width:0; margin:12px 0; padding:2px 0 6px; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x proximity; scrollbar-width:thin; overscroll-behavior-x:contain; }
.publication-shared-form :is(.photo-preview,.publication-existing-photo) { min-width:0; }
.publication-shared-form :is(.photo-preview,.publication-existing-photo) img { width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; border-radius:12px; }
.publication-shared-form #submit-btn { min-height:46px; border-radius:12px; }
.publication-editor-dialog { box-sizing:border-box; width:min(740px,calc(100vw - 32px)); max-width:calc(100vw - 24px); max-height:calc(100dvh - 32px); margin:auto; padding:0; border:0; border-radius:20px; background:#fff; color:#242830; box-shadow:0 20px 70px #17212e30; overflow:auto; }
.publication-editor-dialog::backdrop { background:#17212e55; backdrop-filter:blur(2px); }
.publication-editor-dialog-inner { padding:0 24px 24px; overflow-x:clip; }
.publication-editor-dialog-head { position:sticky; top:0; z-index:15; display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 -24px 16px; padding:16px 24px; background:#fff; }
.publication-editor-dialog-head h2 { margin:0; font-size:21px; line-height:1.4; font-weight:600; }
.publication-editor-dialog-head > button { display:grid; place-items:center; flex:0 0 40px; width:40px; min-height:40px; padding:9px; border:0; background:transparent; color:#69727e; }
.publication-editor-dialog-head svg { width:22px; height:22px; }
.publication-editor-dialog .form-page { max-width:none; margin:0; padding:0; border:0; box-shadow:none; }
.publication-editor-dialog :is(.page-title,.page-subtitle,#publication-editor-back) { display:none!important; }
@media(max-width:500px) { .publication-editor-dialog-inner { padding:0 16px 20px; } .publication-editor-dialog-head { margin-inline:-16px; padding:14px 16px; } }

/* On phones the canonical edit route uses the same full-page form as creation. */
.form-page:has(.publication-page-close) { position:relative; }
.form-page > .publication-page-close { position:absolute; right:0; top:0; width:40px; height:40px; padding:9px; border:0; background:transparent; color:#69727e; box-shadow:none; }
.form-page:has(.publication-page-close) > .page-title { padding-right:44px; }

/* Shared 4:5 gallery: two discreet image actions, no text toolbar. */
.publication-shared-form :is(.photo-preview,.publication-existing-photo) { position:relative; align-self:start; flex:0 0 clamp(150px,32%,190px); width:auto; scroll-snap-align:start; aspect-ratio:4/5; height:auto; border:0; border-radius:12px; overflow:hidden; }
.publication-shared-form :is(.photo-preview,.publication-existing-photo) > img { display:block; width:100%; height:100%; aspect-ratio:4/5; object-fit:cover; cursor:pointer; }
.publication-existing-photo__actions { position:absolute; inset:6px 6px auto; display:flex; flex-direction:row; justify-content:space-between; margin:0; pointer-events:none; }
.publication-existing-photo__actions button,.publication-photo-dialog-tools button,.publication-shared-form .photo-preview__remove { display:grid; place-items:center; width:32px; min-height:32px; height:32px; padding:6px; border:0; border-radius:50%; background:#fffE; color:#30343a; box-shadow:0 1px 5px #17212e16; pointer-events:auto; }
.publication-shared-form .photo-preview__status { position:absolute; inset:auto 6px 6px auto; display:grid; place-items:center; width:22px; height:22px; padding:0; border-radius:50%; background:#fffE; color:#586b60; font-size:12px; box-shadow:0 1px 4px #17212e12; }
.publication-shared-form .photo-preview__status--error { color:#b42318; }
.publication-existing-photo__ready { position:absolute; bottom:6px; right:6px; display:grid; place-items:center; width:22px; height:22px; border-radius:50%; background:#fffE; color:#586b60; font-size:12px; }
.publication-photo-dialog { width:min(360px,calc(100vw - 32px),calc(80dvh - 65.6px)); max-height:calc(100dvh - 24px); margin:auto; padding:12px; border:0; border-radius:20px; background:#fff; box-shadow:0 20px 60px #17212e30; overflow:auto; }
.publication-photo-dialog::backdrop { background:#17212e66; }
.publication-photo-dialog-image { position:relative; }
.publication-photo-dialog-image img { display:block; width:100%; max-height:calc(100dvh - 112px); aspect-ratio:4/5; object-fit:cover; border-radius:12px; }
.publication-photo-dialog-tools { position:absolute; inset:8px 8px auto; display:flex; justify-content:space-between; }
.publication-photo-dialog [data-photo-done] { width:100%; margin-top:12px; min-height:44px; border-radius:12px; }

.listing-booking-setup { margin-block:20px; padding:18px; border-radius:16px; background:#f5f6f8; }
.listing-booking-setup.hidden { display:none; }
.listing-booking-toggle { display:flex; align-items:center; gap:10px; font-size:14px; font-weight:500; cursor:pointer; }
.listing-booking-setup input[type=checkbox] { width:18px; height:18px; accent-color:#596575; flex:none; }
.listing-booking-fields { display:grid; gap:15px; padding-top:16px; }
.listing-booking-fields :is(fieldset,label,input,select) { min-width:0; max-width:100%; }
.listing-booking-people { display:grid; gap:9px; margin:0; padding:0; border:0; }
.listing-booking-people legend { margin-bottom:9px; font-size:12px; color:#727b87; }
.listing-booking-person { padding:11px 12px; background:#fff; border-radius:11px; }
.listing-booking-person > label { display:flex; align-items:center; gap:9px; font-size:13px; }
.listing-booking-person select { width:100%; margin-top:8px; border:0; background:#f6f7f9; border-radius:9px; padding:9px; font-size:13px; }
.listing-booking-numbers,.listing-booking-dates { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.listing-booking-fields label { display:grid; gap:7px; font-size:12px; color:#677280; }
.listing-booking-fields .form-input,.listing-booking-fields .form-select { margin:0; border:0; border-radius:11px; background:#fff; min-height:44px; }
.listing-booking-period { max-width:300px; }
.listing-booking-setup .form-hint { margin:10px 0 0; font-size:12px; line-height:1.55; color:#87909c; }
.listing-booking-retry { border:0; background:#eef0f3; border-radius:10px; padding:8px 12px; color:#586576; font:500 12px/1.5 Inter,sans-serif; cursor:pointer; }
.listing-discount-input { position:relative; max-width:220px; }
.listing-discount-input input { padding-right:35px; }
.listing-discount-input span { position:absolute; right:13px; top:50%; transform:translateY(-50%); color:#89919b; }
@media(max-width:480px) { .listing-booking-setup { padding:14px; } .listing-booking-fields input,.listing-booking-fields select { font-size:16px; width:100%; box-sizing:border-box; } }

.listing-booking-fields .listing-booking-person > label { display:flex; align-items:center; gap:9px; color:#4f5c6b; font-size:13px; }

/* Short, shared publication controls. */
.publication-profile-choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.publication-profile-choices fieldset { min-width:0; margin:0; padding:12px; border:0; border-radius:13px; background:#f5f4f1; }
.publication-profile-choices legend { padding:0; margin:0 0 8px; color:#8c7869; font-size:12px; font-weight:500; }
.publication-profile-choices label { display:flex!important; align-items:center; gap:9px; margin:8px 0; font-size:14px; }
.publication-profile-choices input { flex:none; width:17px; height:17px; accent-color:#73777e; }
.publication-profile-choices .form-hint { grid-column:1/-1; margin:0; }
.publication-addresses { margin:-6px 0 18px; }
.publication-addresses[hidden] { display:none; }
.publication-address-row { display:grid; grid-template-columns:minmax(100px,.75fr) minmax(0,1.5fr) 30px; align-items:end; gap:8px; margin:10px 0; }
.publication-address-row label { min-width:0; margin:0; font-size:12px; color:#777f88; }
.publication-address-row label span { display:block; margin:0 0 5px; }
.publication-address-row input,.publication-address-row select { min-width:0; width:100%; height:46px; padding:9px; box-sizing:border-box; font-size:16px; }
.publication-address-row > button { min-width:30px; height:46px; padding:0; border:0; background:transparent; font-size:22px; color:#90959d; cursor:pointer; }
.publication-add-address { padding:7px 0; border:0; background:transparent; color:#8c7869; font:500 13px/1.4 inherit; cursor:pointer; }
.listing-booking-setup { margin-block:8px 12px; padding:14px; border-radius:15px; background:#f3f5f6; }
.listing-booking-fields { margin-top:12px; }
.listing-booking-numbers,.listing-booking-dates { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:end; gap:10px; }
.listing-booking-fields label { min-width:0; font-size:12px; color:#6c7580; }
.listing-booking-fields .form-input,.listing-booking-fields .form-select { display:block; min-width:0; max-width:100%; width:100%; height:46px; box-sizing:border-box; padding:9px 10px; border:0; border-radius:10px; background:#fff; color:#343c46; font-size:16px; }
.listing-booking-fields input[type=date]::-webkit-date-and-time-value { text-align:left; }
.listing-booking-fields input[type=date]::-webkit-datetime-edit { padding:0; }
.listing-booking-fields .listing-booking-time-toggle { display:flex; align-items:center; gap:9px; margin-top:0; }
.listing-booking-fields .listing-booking-time-toggle input { width:18px; height:18px; }
.listing-booking-fields .listing-booking-time-toggle span { flex:1; }
.listing-booking-person small { display:block; margin-top:2px; color:#9097a1; font-size:11px; }
.listing-availability { margin-top:12px; min-width:0; }
.listing-time-pages { display:flex; justify-content:space-between; align-items:center; gap:8px; color:#707985; font-size:12px; }
.listing-time-pages button { border:0; background:transparent; color:inherit; font-size:24px; padding:4px 9px; cursor:pointer; }
.listing-time-days { display:flex; gap:6px; overflow-x:auto; margin:8px 0; padding:2px 0 6px; }
.listing-time-days button { flex:none; padding:8px 10px; white-space:nowrap; }
.listing-time-days button,.listing-time-slots button { border:0; border-radius:10px; background:white; color:#56606c; font-size:12px; cursor:pointer; }
.listing-time-days [aria-pressed=true],.listing-time-slots [aria-pressed=true] { background:#dfe6e8; color:#303b46; box-shadow:inset 0 0 0 1px #aebbc0; }
.listing-time-slots { display:grid; grid-template-columns:repeat(auto-fill,minmax(76px,1fr)); gap:6px; max-height:215px; overflow:auto; padding:2px; }
.listing-time-slots button { min-height:40px; padding:8px; }
.listing-time-slots small { display:block; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:10px; }
.publication-profile-choices .form-hint,.publication-addresses .form-hint { font-size:12px; line-height:1.45; }
@media(max-width:480px) { .publication-profile-choices { grid-template-columns:minmax(0,1fr); gap:8px; } .listing-booking-setup { padding:12px; } }

.listing-booking-places { display:grid; gap:6px; margin-top:10px; padding-top:4px; }
.listing-booking-fields .listing-booking-places label { display:flex; align-items:center; gap:8px; font-size:12px; }
.listing-booking-fields .listing-booking-places input { width:17px; height:17px; }
/* The same photo and date controls are used by create and edit. */
.publication-photo-dialog [data-photo-done]{display:grid;place-items:center;box-sizing:border-box;width:32px;height:32px;min-height:32px;padding:7px;margin:10px auto 0;border:0;border-radius:50%;background:#3c8b62;color:#fff}
.publication-photo-dialog [data-photo-done] svg{width:18px;height:18px}
.publication-existing-photo__actions button,.publication-photo-dialog-tools button,.photo-preview__remove{box-sizing:border-box;width:26px!important;height:26px!important;min-height:26px!important;min-width:26px!important;padding:5px!important;border:0!important;border-radius:50%!important;background:#fffffff2!important;color:#30353b!important}
.publication-existing-photo__actions svg,.publication-photo-dialog-tools svg,.photo-preview__remove svg{width:16px;height:16px}
.publication-existing-photo__ready,.photo-preview__status--ready{background:#38865d!important;color:#fff!important;border:0!important}
.listing-booking-link{margin-block:6px!important;padding-block:10px!important}
.listing-booking-toggle{margin-block:0!important;padding-block:4px!important}
.listing-booking-fields{gap:10px!important;margin-top:10px!important;min-width:0}
.listing-booking-fields input[type=date]{box-sizing:border-box;width:100%;min-width:0;max-width:100%;height:42px;font-size:16px;padding:7px 8px;border-radius:10px}
[data-listing-availability]{position:relative;overflow-anchor:none;transition:none}
[data-listing-availability][aria-busy=true]{opacity:.65;pointer-events:none}
.listing-time-loading{margin:4px 0;font-size:12px}
.listing-time-days button[data-has-selection=true]::after{content:'✓';margin-left:4px;color:#397552}
.listing-time-selected{line-height:1.5;overflow-wrap:anywhere}
.listing-time-loading{position:absolute;top:2px;right:0;z-index:1;max-width:100%;margin:0;padding:2px 6px;border-radius:6px;background:#f5f6f8}

/* Native date controls must shrink inside the two-column iPhone layout. */
.listing-booking-dates{inline-size:100%;max-inline-size:100%;min-inline-size:0;gap:8px}
.listing-booking-dates>label{display:flex;flex-direction:column;align-items:stretch;min-inline-size:0;max-inline-size:100%;overflow:hidden}
.listing-booking-fields .listing-booking-dates input[type=date]{appearance:none;-webkit-appearance:none;inline-size:100%;min-inline-size:0;max-inline-size:100%;-webkit-min-logical-width:0;padding:9px 7px;font-size:16px;line-height:26px;overflow:hidden}
.listing-booking-dates input::-webkit-date-and-time-value{min-width:0;max-width:100%;text-align:left;overflow:hidden}
.publication-phone{display:flex;align-items:center;gap:8px;box-sizing:border-box;width:100%;min-width:0;min-height:46px;border:1px solid #dfe2e6;border-radius:12px;background:#fff;padding:0 10px}
.publication-phone .gb-phone-country{flex:0 0 24px;font-size:20px;text-align:center}
.publication-phone input[type=tel]{flex:1;min-width:0;width:0!important;max-width:100%;border:0!important;box-shadow:none!important;background:transparent!important;font-size:16px;padding-inline:0}
.publication-phone.is-invalid{border-color:#c4645b}
.publication-phone-error{color:#b34339;font-size:12px;line-height:1.45;margin:5px 0 0}
.publication-shared-form #change-publication-type,.publication-shared-form [data-publication-format-change]{padding:5px 8px;border:0;border-radius:9px;background:#f3f4f5;color:#737b85;box-shadow:none;font-size:12px}

.publication-shared-form #publication-type-change{min-height:30px;padding:5px 9px;border:0;border-radius:9px;background:#f1f2f4;color:#77808a;box-shadow:none;font-size:12px}
/* A single editable contact source, shared by create and edit. */
.publication-whatsapp-same{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:13px;font-weight:400;color:#515c68;cursor:pointer}
.publication-whatsapp-same input{flex:none;width:17px;height:17px;min-height:17px;margin:0;accent-color:#414b58}
.publication-whatsapp-same+label{display:block}
.publication-phone input[readonly]{color:#5c6774;background:#f7f8f9}

/* Date selection keeps the rounded field; no square focus shadow. */
.publication-shared-form input[type=date]:is(:focus,:active),.publication-shared-form .listing-time-days button:is(:hover,:focus,:active),.publication-shared-form .listing-time-slots button:is(:hover,:focus,:active){box-shadow:none;filter:none}
.publication-shared-form input[type=date]:focus-visible{outline:1px solid #929aa3;outline-offset:2px;border-radius:10px}
.publication-linked-location{margin:10px 0 18px;padding:11px 13px;border-radius:12px;background:#f4f5f6;color:#68717b;font-size:13px;line-height:1.5}
.publication-linked-location[hidden]{display:none}
