@import url('https://fonts.googleapis.com/css2?family=Karla:wght@400;500;600;700&family=Playfair+Display+SC:wght@400;700&display=swap');
:root{--bg:#f7f4ec;--card:#fffdf7;--ink:#15342d;--muted:#5b6962;--green:#12392f;--soft:#e8eee9;--line:#d9d7cc;--coral:#d9553f;--danger:#a8242d;--shadow:0 18px 50px #15342d16;--radius:18px}*{box-sizing:border-box}html{font-family:Karla,Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:16px}body{margin:0;min-width:320px}h1,h2,h3,.brand{font-family:'Playfair Display SC',Georgia,serif}h1{font-size:clamp(2rem,4vw,3.6rem);line-height:1.05;margin:.3rem 0 1rem}h2{font-size:1.45rem;margin:0 0 1rem}a{color:inherit}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}.topbar{height:68px;padding:0 clamp(18px,4vw,52px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#f7f4eced;backdrop-filter:blur(12px);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:700;font-size:1.15rem}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--green);color:white}.user-chip{display:flex;align-items:center;gap:14px}.user-chip a{font-size:.9rem;color:var(--muted)}.site-footer{display:flex;justify-content:space-between;gap:20px;padding:28px clamp(18px,4vw,52px);font-size:.85rem;color:var(--muted);border-top:1px solid var(--line)}.btn{min-height:44px;border:1px solid transparent;border-radius:12px;padding:10px 18px;font-weight:700;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,color .2s,border-color .2s}.btn.primary{background:var(--green);color:white}.btn.primary:hover{background:#1a4e41}.btn.ghost{border-color:var(--line);background:transparent}.btn.ghost:hover{background:var(--soft)}.btn.danger{border-color:#e3b4b8;color:var(--danger);background:#fff5f5}.eyebrow{font-size:.76rem;text-transform:uppercase;letter-spacing:.14em;font-weight:700;color:var(--coral);margin:0}.muted{color:var(--muted)}.alert,.flash{padding:13px 16px;border-radius:12px}.alert.error,.flash.error{background:#fff0f0;color:#861f27;border:1px solid #e4b8bc}.flash{position:fixed;right:20px;top:82px;z-index:50;box-shadow:var(--shadow);max-width:420px}.flash.success{background:#113b31;color:white}.install-body,.center-page{min-height:100vh;display:grid;place-items:center;padding:32px 18px}.install-card,.auth-card,.manage-card,.thanks-card{width:min(760px,100%);background:var(--card);border:1px solid var(--line);border-radius:26px;padding:clamp(24px,5vw,48px);box-shadow:var(--shadow)}.install-card>.brand{margin-bottom:32px}.install-card h2{grid-column:1/-1;font-size:1.1rem;border-top:1px solid var(--line);padding-top:18px;margin:12px 0 0}.thanks-card{text-align:center;max-width:580px}.thanks-card .btn{margin:12px 4px 0}.success-icon{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 20px;border-radius:50%;background:#dcece5;color:#0b694c;font-size:2rem}.stack{display:grid;gap:16px;margin-top:24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:22px}.form-grid.compact{margin-bottom:16px}.wide{grid-column:1/-1}label{display:grid;gap:7px;font-size:.88rem;font-weight:700}input,select,textarea{width:100%;min-height:46px;border:1px solid #bdc7c1;border-radius:11px;background:white;color:var(--ink);padding:10px 12px}textarea{min-height:90px;resize:vertical}small{display:block;color:var(--muted);font-weight:400;margin-top:3px}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:3px solid #d9553f44;outline-offset:2px;border-color:var(--coral)}.booking-page{min-height:calc(100vh - 68px);display:grid;grid-template-columns:minmax(320px,.95fr) minmax(480px,1.05fr)}.booking-visual{position:sticky;top:68px;height:calc(100vh - 68px);overflow:hidden;background:var(--green);color:white}.booking-visual img{width:100%;height:100%;object-fit:cover;opacity:.68}.booking-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#092b24dd 8%,transparent 65%)}.booking-visual>div{position:absolute;z-index:2;left:clamp(26px,6vw,82px);bottom:clamp(34px,8vh,90px);max-width:570px}.booking-visual h1{font-size:clamp(2.7rem,5.6vw,5.8rem)}.booking-visual p:last-child{font-size:1.08rem;max-width:470px}.booking-form{display:grid;align-items:center;padding:clamp(28px,6vw,84px);min-height:calc(100vh - 68px)}.booking-form form{width:min(660px,100%);margin:auto}.form-step{display:none;border:0;padding:0;margin:30px 0}.form-step.active{display:block}.form-step legend{font-family:'Playfair Display SC',serif;font-size:clamp(1.8rem,4vw,3rem);font-weight:700;padding:0}.form-step>.btn{margin-top:20px;float:right}.stepper{display:flex;align-items:center}.stepper span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#e3e3dc;color:var(--muted);font-weight:700}.stepper span.active{background:var(--green);color:white}.stepper i{height:2px;flex:1;background:#d7d8d2}.check{display:flex!important;grid-template-columns:20px 1fr;align-items:flex-start;line-height:1.4}.check input{width:18px;min-height:18px;margin-top:1px}.form-actions{display:flex;justify-content:space-between;gap:12px;margin-top:22px}.summary{background:var(--soft);border-radius:16px;padding:20px;display:grid;gap:12px}.summary div{display:flex;justify-content:space-between;border-bottom:1px solid #cad6cf;padding-bottom:10px}.admin-shell{display:grid;grid-template-columns:230px minmax(0,1fr);max-width:1600px;margin:auto}.sidebar{min-height:calc(100vh - 68px);padding:28px 20px;border-right:1px solid var(--line);position:sticky;top:68px;height:calc(100vh - 68px)}.restaurant-name{font-family:'Playfair Display SC',serif;font-size:1.2rem;font-weight:700;margin:0 10px 22px}.sidebar nav{display:grid;gap:4px}.sidebar nav a{padding:12px 14px;border-radius:11px;text-decoration:none;color:var(--muted);font-weight:700}.sidebar nav a:hover,.sidebar nav a.active{background:var(--green);color:white}.public-link{position:absolute;bottom:25px;left:30px;font-size:.87rem;color:var(--muted)}.admin-main{padding:clamp(24px,4vw,52px);min-width:0}.page-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:28px}.page-head h1{font-size:clamp(2.2rem,4vw,3.3rem);margin-bottom:5px}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:24px}.metrics>div{padding:20px;border:1px solid var(--line);background:var(--card);border-radius:var(--radius)}.metrics span{display:block;color:var(--muted);font-size:.9rem;font-weight:600}.metrics strong{display:block;font-family:'Playfair Display SC',serif;font-size:2.35rem;margin-top:8px}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:0 4px 20px #15342d0b}.booking-row{display:grid;grid-template-columns:1.2fr 1fr auto;gap:18px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line)}.booking-row:last-child{border:0}.booking-row small,td small,.customer-card small{display:block;color:var(--muted)}.row-actions form{display:flex;gap:8px}.icon{width:44px;height:44px;border-radius:12px;border:1px solid var(--line);cursor:pointer;font-size:1.25rem}.icon.confirm,.mini.confirm{background:#0b694c;color:white;border-color:#0b694c}.icon.danger,.mini.danger{color:var(--danger)}.empty{text-align:center;color:var(--muted);padding:28px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.filters a{padding:9px 13px;border:1px solid var(--line);border-radius:10px;text-decoration:none;font-weight:700;font-size:.88rem}.filters a.active{background:var(--green);color:white}.table-wrap{overflow:auto;padding:0}table{width:100%;border-collapse:collapse;min-width:740px}th,td{text-align:left;padding:15px;border-bottom:1px solid var(--line)}th{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:#f3f1e9}.inline{display:inline-flex;gap:5px;margin:2px}.mini{min-height:36px;border:1px solid var(--line);border-radius:8px;background:white;padding:6px 9px;cursor:pointer;font-weight:700}.customer-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.customer-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px}.avatar{width:48px;height:48px;border-radius:50%;background:var(--soft);display:grid;place-items:center;font-weight:700}.customer-count{text-align:right}.customer-count strong{display:block;font-family:'Playfair Display SC',serif;font-size:1.7rem}.customer-count span{font-size:.76rem;color:var(--muted)}.range{display:flex;align-items:end;gap:10px}.range label{min-width:145px}.bars{display:grid;gap:14px}.bars>div{display:grid;grid-template-columns:46px 1fr 40px;align-items:center;gap:12px}.bars i{display:block;height:22px;width:var(--value);background:var(--green);border-radius:5px}.sr-table{position:absolute;left:-9999px}.hours{display:grid;gap:12px}.hours fieldset{display:grid;grid-template-columns:120px 80px 80px 80px 1fr 1fr;align-items:center;gap:12px;border:0;border-bottom:1px solid var(--line);padding:12px 0}.hours legend{float:left;font-weight:700}.hours label:has(input[type=checkbox]){display:flex;align-items:center;gap:6px}.hours input[type=checkbox]{width:18px;min-height:18px}.manage-card .status{margin:0 0 20px}.status{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:.78rem;font-weight:700}.status-pending{background:#fff0c7;color:#775000}.status-confirmed{background:#d9f0e5;color:#075b41}.status-declined,.status-cancelled{background:#f6dfe1;color:#84202a}
@media(max-width:900px){.booking-page{grid-template-columns:1fr}.booking-visual{position:relative;top:0;height:420px}.admin-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;min-height:0;border:0;border-bottom:1px solid var(--line);padding:12px 18px}.restaurant-name,.public-link{display:none}.sidebar nav{display:flex;overflow:auto}.sidebar nav a{white-space:nowrap}.hours fieldset{grid-template-columns:110px repeat(3,70px);align-items:start}.hours fieldset label:nth-last-child(-n+2){grid-column:1/-1}.page-head{align-items:flex-start;flex-direction:column}.range{flex-wrap:wrap}.customer-grid{grid-template-columns:1fr}}
@media(max-width:620px){.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.booking-visual{height:330px}.booking-form{padding:30px 18px}.metrics{grid-template-columns:1fr}.booking-row{grid-template-columns:1fr}.customer-card{grid-template-columns:auto 1fr}.customer-count{grid-column:2;text-align:left}.hours fieldset{grid-template-columns:1fr 1fr}.hours legend{grid-column:1/-1}.hours fieldset label:nth-last-child(-n+2){grid-column:1/-1}.site-footer{flex-direction:column}.topbar{padding:0 14px}.user-chip span{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.tenant-layout{display:grid;grid-template-columns:1fr 1fr;gap:18px}.tenant-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid var(--line)}.tenant-row:last-child{border:0}.tenant-row span{color:var(--muted);font-size:.85rem}@media(max-width:900px){.tenant-layout{grid-template-columns:1fr}}

/* Fedelio */
.booking-layout{min-height:calc(100vh - 68px);display:grid;grid-template-columns:minmax(320px,.9fr) minmax(500px,1.1fr)}.booking-hero{position:sticky;top:68px;height:calc(100vh - 68px);background-size:cover;background-position:center;color:#fff;display:flex;align-items:end;padding:clamp(30px,7vw,88px)}.booking-hero h1{font-size:clamp(2.8rem,6vw,6rem);margin:.3rem 0}.booking-hero p:last-child{font-size:1.1rem}.eyebrow.light{color:#f4c1ab}.restaurant-logo{max-width:180px;max-height:100px;object-fit:contain;background:#fff;border-radius:14px;padding:10px;margin-bottom:22px}.booking-panel{padding:clamp(28px,6vw,80px);display:flex;flex-direction:column;justify-content:center}.booking-panel form{width:min(680px,100%);margin:0 auto}.booking-panel .stepper{width:min(680px,100%);margin:0 auto 28px;gap:12px}.booking-panel .stepper span{width:auto;height:auto;background:none!important;display:flex;gap:7px;color:var(--muted);font-size:.85rem}.booking-panel .stepper b{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#ddd}.booking-panel .stepper span.active b{background:var(--brand,var(--green));color:#fff}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.login-shell,.success-shell,.manage-shell{min-height:calc(100vh - 68px);display:grid;place-items:center;padding:30px}.login-card,.success-card{width:min(520px,100%);padding:clamp(28px,5vw,48px);background:var(--card);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}.success-card{text-align:center}.narrow{width:min(620px,100%)}
.app-shell{display:grid;grid-template-columns:250px minmax(0,1fr);max-width:1700px;margin:auto}.app-main{padding:clamp(24px,4vw,54px);min-width:0}.side-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin:0 0 5px}.role-pill{display:inline-flex;margin:10px 0 22px;padding:5px 9px;border-radius:999px;background:#efe5d6;color:#785233;font-size:.72rem;font-weight:700}.metrics article{padding:22px;border:1px solid var(--line);background:var(--card);border-radius:var(--radius)}.metrics article strong{font-family:'Playfair Display SC',serif;font-size:2.35rem;display:block;margin-top:7px}.filters{margin:0}.status.pending{background:#fff0c7;color:#775000}.status.confirmed{background:#d9f0e5;color:#075b41}.status.declined,.status.cancelled{background:#f6dfe1;color:#84202a}.row-actions{display:flex;gap:7px}.row-actions form{margin:0}.icon-btn{width:38px;height:38px;border-radius:10px;border:0;cursor:pointer;font-size:1.2rem}.icon-btn.accept{background:#d9f0e5;color:#075b41}.icon-btn.decline{background:#f6dfe1;color:#84202a}.hours-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:20px 0}.hours-grid article{border:1px solid var(--line);border-radius:14px;padding:16px;display:grid;gap:10px}.hours-grid h3{margin:0}.split{display:grid;grid-template-columns:1fr 1fr;gap:20px}.brand-preview{min-height:560px;background-size:cover;background-position:center;border-radius:22px;padding:28px;display:flex;flex-direction:column;justify-content:space-between;color:#fff}.brand-preview img{max-width:160px;max-height:90px;object-fit:contain;background:#fff;border-radius:12px;padding:8px}.brand-preview h2{font-size:2.5rem}.template-tabs{display:flex;gap:8px;overflow:auto;margin-bottom:16px}.template-tabs a{white-space:nowrap;text-decoration:none;border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-size:.82rem;font-weight:700}.template-tabs a.active{background:var(--green);color:#fff}.mail-grid{display:grid;grid-template-columns:minmax(420px,.9fr) minmax(400px,1.1fr);gap:18px}.mail-preview{background:#d8ddd9;border-radius:18px;padding:40px 12px 12px;position:relative;min-height:700px}.preview-label{position:absolute;top:12px;left:18px;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:#51625d}.mail-preview iframe{width:100%;height:650px;border:0;border-radius:10px;background:#fff}.restaurant-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:22px}.restaurant-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px}.restaurant-card h2{margin:.5rem 0}.bar-row{display:grid;grid-template-columns:100px 1fr 40px;gap:12px;align-items:center;margin:13px 0}.bar-row div{height:12px;background:#e6e5de;border-radius:10px;overflow:hidden}.bar-row i{display:block;height:100%;background:var(--coral);border-radius:10px}
@media(max-width:1000px){.booking-layout{grid-template-columns:1fr}.booking-hero{position:relative;top:0;height:430px}.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;min-height:0;border-right:0;border-bottom:1px solid var(--line)}.public-link{display:none}.sidebar nav{display:flex;overflow:auto}.sidebar nav a{white-space:nowrap}.mail-grid,.split{grid-template-columns:1fr}.restaurant-grid{grid-template-columns:1fr}}
@media(max-width:650px){.booking-hero{height:340px}.booking-panel{padding:28px 18px}.booking-panel .stepper span{font-size:0}.two-col,.hours-grid{grid-template-columns:1fr}.mail-grid{display:block}.mail-preview{margin-top:16px}.restaurant-card .actions{flex-direction:column}.range{width:100%}.range input{min-width:0}}

/* Customizer e builder visuale */
.skip-link{position:fixed;left:16px;top:-60px;z-index:100;background:#fff;color:var(--ink);padding:12px 16px;border:2px solid var(--coral);border-radius:10px}.skip-link:focus{top:10px}
.customizer-layout{display:grid;grid-template-columns:minmax(520px,1.15fr) minmax(340px,.85fr);gap:20px;align-items:start}.customizer-form{display:grid;gap:14px}.customizer-form details{border:1px solid var(--line);border-radius:14px;background:#fff}.customizer-form summary{cursor:pointer;padding:16px 18px;font-weight:700;font-size:1rem}.customizer-form details>.form-grid{margin:0;padding:0 18px 18px}.sticky-save{position:sticky;bottom:18px;z-index:4;box-shadow:0 10px 30px #12392f33}.brand-preview{position:sticky;top:88px}.brand-preview p{font-size:1.05rem;line-height:1.5}.builder-layout{display:grid;grid-template-columns:220px minmax(420px,.9fr) minmax(360px,1.1fr);gap:16px;align-items:start}.block-toolbox{position:sticky;top:88px;display:grid;gap:9px}.block-source{min-height:46px;border:1px dashed #9baaa4;border-radius:10px;background:#f9f8f3;color:var(--ink);font-weight:700;text-align:left;padding:10px 12px;cursor:grab}.block-source:hover,.block-source:focus-visible{border-color:var(--coral);background:#fff}.builder-workspace{display:grid;gap:16px}.builder-bar{display:flex;justify-content:space-between;gap:12px;font-size:.86rem;color:var(--muted)}.email-canvas{min-height:380px;border:2px dashed #c8cec9;border-radius:14px;padding:12px;display:grid;align-content:start;gap:10px;background:#f4f3ee}.email-canvas.is-empty:after{content:'Trascina qui il primo blocco';display:grid;place-items:center;min-height:340px;color:var(--muted)}.email-canvas.drag-over{border-color:var(--coral);background:#fff8f3}.builder-block{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;box-shadow:0 3px 12px #15342d0c}.block-head{display:flex;align-items:center;gap:8px;margin-bottom:9px}.block-head>div{display:flex;gap:5px;margin-left:auto}.block-head button{width:36px;height:36px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;font-weight:700}.block-head button:hover{background:var(--soft)}.drag-handle{cursor:grab;color:var(--muted);font-weight:700}.builder-block textarea{min-height:70px}.block-placeholder{padding:16px;border-radius:8px;background:#f7f3ec;color:var(--muted);text-align:center}.builder-layout .mail-preview{position:sticky;top:88px}.empty-state{text-align:center;margin-bottom:18px}
@media(max-width:1250px){.builder-layout{grid-template-columns:190px 1fr}.builder-layout .mail-preview{grid-column:1/-1;position:static}.customizer-layout{grid-template-columns:1fr}.brand-preview{position:static;min-height:430px}}
@media(max-width:760px){.builder-layout{grid-template-columns:1fr}.block-toolbox{position:static;grid-template-columns:repeat(2,1fr)}.block-toolbox h2,.block-toolbox p,.block-toolbox details{grid-column:1/-1}.customizer-form details>.form-grid{grid-template-columns:1fr}.customizer-layout{display:block}.brand-preview{margin-top:18px}.builder-bar{flex-direction:column}}

/* Calendario disponibilità */
.date-picker{position:relative}.date-trigger{width:100%;min-height:46px;border:1px solid #bdc7c1;border-radius:11px;background:#fff;color:var(--ink);padding:10px 12px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;text-align:left}.date-trigger.invalid{border-color:var(--danger);outline:3px solid #a8242d22}.calendar-panel{position:absolute;z-index:30;top:calc(100% + 8px);left:0;width:min(340px,90vw);padding:16px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.calendar-head{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;text-align:center;margin-bottom:12px}.calendar-head strong{text-transform:capitalize}.calendar-head button{width:40px;height:40px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;font-size:1.35rem}.calendar-head button:disabled{opacity:.3;cursor:not-allowed}.calendar-week,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;text-align:center}.calendar-week{font-size:.75rem;color:var(--muted);font-weight:700;margin-bottom:5px}.calendar-grid button,.calendar-grid>span{aspect-ratio:1;min-width:34px;border:0;border-radius:9px;background:#f3f3ed;color:var(--ink);font-weight:700}.calendar-grid button{cursor:pointer}.calendar-grid button:hover:not(:disabled),.calendar-grid button:focus-visible{background:var(--brand,var(--green));color:#fff}.calendar-grid button.selected{background:var(--brand,var(--green));color:#fff}.calendar-grid button:disabled{background:#f5f4f0;color:#aaa;text-decoration:line-through;cursor:not-allowed}
/* Gestione ristoranti */
.create-restaurant{margin-bottom:24px}.restaurant-search{display:flex;align-items:end;justify-content:space-between;gap:18px;margin:26px 0 16px}.restaurant-search>div{display:flex;gap:8px;width:min(620px,100%)}.restaurant-card{display:flex;flex-direction:column;gap:12px}.restaurant-card.suspended{opacity:.72;background:#f2f1ed}.restaurant-card-top{display:flex;justify-content:space-between;gap:12px;align-items:center}.state-badge,.renewal{display:inline-flex;padding:6px 9px;border-radius:999px;font-size:.76rem;font-weight:700}.state-badge.active{background:#d9f0e5;color:#075b41}.state-badge.paused{background:#e8e7e2;color:#575d5a}.renewal{background:#eef1ef;color:#52615c}.renewal.expired{background:#f6dfe1;color:#84202a}.restaurant-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}.restaurant-actions form{margin:0}.btn.warning{border-color:#d9ad63;background:#fff8e8;color:#74500c}
@media(max-width:650px){.calendar-panel{left:auto;right:0}.restaurant-search{align-items:stretch;flex-direction:column}.restaurant-search>div{flex-wrap:wrap}.restaurant-card-top{align-items:flex-start;flex-direction:column}.restaurant-actions>.btn,.restaurant-actions form,.restaurant-actions form .btn{width:100%}}

/* Fedelio: identità, stati e panoramica */
.platform-logo{width:42px;height:42px;object-fit:contain;border-radius:10px}.brand-mark.large{width:72px;height:72px;font-size:2rem}.identity-preview{min-height:280px;display:grid;place-items:center;align-content:center;gap:18px;text-align:center}.identity-preview img{max-width:220px;max-height:110px;object-fit:contain}.identity-preview h2{font-size:2rem}.smtp-note{padding:14px 16px;border-radius:12px;background:var(--soft);color:var(--muted);line-height:1.5}.metrics.four{grid-template-columns:repeat(4,1fr)}.modified-label{display:block;width:max-content;margin-top:7px;padding:5px 8px;border-radius:8px;background:#e8e1f7;color:#593c8b;font-size:.74rem;font-weight:700}.booking-panel .stepper span[data-state="active"] b{background:var(--brand,var(--green))!important;color:#fff!important}.booking-panel .stepper span[aria-current="step"]{color:var(--ink);font-weight:700}.booking-panel .stepper span[data-state="inactive"] b{background:#ddd!important;color:var(--muted)!important}
@media(max-width:900px){.metrics.four{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.metrics.four{grid-template-columns:1fr}}

/* Calendario prenotazioni, statistiche e rinnovi */
.booking-panel .stepper span[aria-current="step"] b{box-shadow:0 0 0 4px color-mix(in srgb,var(--brand,var(--green)) 22%,transparent)}.bookings-layout{display:grid;grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:20px;align-items:start}.admin-calendar{position:sticky;top:92px}.admin-calendar-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.admin-calendar-head h2{margin:0;text-align:center;text-transform:capitalize}.calendar-nav{width:44px;height:44px;border:1px solid var(--line);border-radius:11px;display:grid;place-items:center;text-decoration:none;font-size:1.5rem}.calendar-nav:hover{background:var(--soft)}.admin-calendar-week,.admin-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.admin-calendar-week{margin-bottom:7px;color:var(--muted);font-size:.72rem;text-align:center;font-weight:700}.admin-calendar-day{aspect-ratio:1;border:1px solid transparent;border-radius:10px;display:grid;place-items:center;align-content:center;gap:1px;text-decoration:none;font-size:.86rem}.admin-calendar-day:hover{background:var(--soft);border-color:var(--line)}.admin-calendar-day.today{border-color:var(--coral)}.admin-calendar-day.selected{background:var(--green);color:#fff;border-color:var(--green)}.admin-calendar-day b{font-size:.65rem;color:var(--coral)}.admin-calendar-day.selected b{color:#fff}.calendar-clear{display:block;text-align:center;margin-top:18px;font-weight:700;font-size:.85rem}.results-head,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.results-head h2,.section-heading h2{margin:.2rem 0 0}.results-head>strong,.section-heading>span{color:var(--muted);font-size:.85rem}.stats-metrics{grid-template-columns:repeat(4,1fr)}.stats-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:20px}.empty-state.compact{padding:26px 10px;text-align:center}.empty-state.compact p{margin-bottom:0;color:var(--muted)}.status-summary{display:grid;gap:12px}.status-summary>div{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:12px 0}.status-summary strong{font-family:'Playfair Display SC',serif;font-size:1.7rem}.expiry-panel{margin:0 0 24px}.expiry-list{display:grid}.expiry-list>div{display:grid;grid-template-columns:minmax(160px,1fr) minmax(180px,auto) minmax(110px,auto);gap:14px;align-items:center;padding:13px 0;border-top:1px solid var(--line)}.expiry-list span{color:var(--muted)}.expiry-list b{text-align:right;color:#74500c}.expiry-list b.overdue{color:var(--danger)}.restaurant-edit>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:14px;cursor:pointer;padding:4px 0}.restaurant-edit>summary::-webkit-details-marker{display:none}.restaurant-edit>summary b{display:block;font-family:'Playfair Display SC',serif;font-size:1.35rem}.restaurant-edit>summary small{margin-top:4px}.restaurant-edit>summary>span:last-child{color:var(--green);font-weight:700;font-size:.86rem}.restaurant-edit[open]>summary{padding-bottom:15px;border-bottom:1px solid var(--line)}.restaurant-edit .form-grid{margin-top:16px}.restaurant-edit input{background:#fff}.restaurant-card.suspended .restaurant-edit input{opacity:1}
@media(max-width:1100px){.bookings-layout,.stats-grid{grid-template-columns:1fr}.admin-calendar{position:static}.stats-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.admin-calendar,.bookings-results{padding:16px}.expiry-list>div{grid-template-columns:1fr}.expiry-list b{text-align:left}.results-head,.section-heading{align-items:flex-start;flex-direction:column}.stats-metrics{grid-template-columns:1fr}.booking-panel .stepper{gap:8px}.booking-panel .stepper span{font-size:0}.booking-panel .stepper b{font-size:.85rem}.restaurant-edit>summary{align-items:flex-start}.restaurant-edit>summary>span:last-child{white-space:nowrap}}

/* Storico cliente e promemoria */
.customer-history{display:flex;gap:6px;flex-wrap:wrap;min-width:150px}.customer-history span{padding:5px 8px;border-radius:8px;background:var(--soft);font-size:.76rem;color:var(--muted);white-space:nowrap}.customer-history span:first-child{background:#d9f0e5;color:#075b41}.customer-history span:last-child{background:#f6dfe1;color:#84202a}.customer-history b{font-size:.9rem}.reminder-settings{display:grid;grid-template-columns:minmax(250px,1fr) auto 130px auto;gap:18px;align-items:end;margin-bottom:18px}.reminder-settings h2{margin:.25rem 0}.reminder-settings p:last-child{margin-bottom:0}.reminder-settings .check{align-self:center}.cron-help{grid-column:1/-1;border-top:1px solid var(--line);padding-top:14px}.cron-help summary{cursor:pointer;font-weight:700}.cron-help code{display:block;margin-top:10px;padding:12px;border-radius:9px;background:#eef1ef;overflow-wrap:anywhere;color:#40534d}.template-tabs{padding-bottom:2px}
@media(max-width:900px){.reminder-settings{grid-template-columns:1fr 1fr}.reminder-settings>div,.cron-help{grid-column:1/-1}}
@media(max-width:560px){.reminder-settings{grid-template-columns:1fr}.reminder-settings>div,.cron-help{grid-column:auto}.reminder-settings .btn{width:100%}}

/* Pagina Cron Job Super Admin */
.cron-page{display:grid;gap:28px;max-width:980px}.cron-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.65fr);gap:28px;align-items:center}.cron-intro h2{font-size:1.75rem;margin:.45rem 0}.cron-intro p{color:var(--muted);line-height:1.65;margin-bottom:0}.cron-kicker{display:inline-flex;padding:6px 10px;border-radius:999px;background:#d9f0e5;color:#075b41;font-size:.78rem;font-weight:700}.cron-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px}.cron-metrics>div{min-height:130px;padding:18px;border-radius:14px;background:var(--soft);display:flex;flex-direction:column;justify-content:center}.cron-metrics strong{font-family:'Playfair Display SC',serif;font-size:2.25rem}.cron-metrics span{color:var(--muted);font-size:.82rem;line-height:1.35}.cron-url{padding:22px;border-radius:15px;background:#eef1ef}.cron-url label{margin-bottom:10px}.cron-url input{font-family:Consolas,monospace;background:#fff}.cron-url small{margin-top:9px;color:var(--danger)}.cron-steps{border-top:1px solid var(--line);padding-top:24px}.cron-steps ol{display:grid;gap:12px;padding-left:24px;margin-bottom:0}.cron-steps li{padding-left:6px;line-height:1.55}
@media(max-width:760px){.cron-intro{grid-template-columns:1fr}.cron-metrics>div{min-height:105px}.cron-page{padding:18px}.cron-url{padding:16px}}

/* Newsletter Brevo */
.brevo-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:20px;margin-bottom:20px}.brevo-setup,.brevo-audience,.brevo-config{display:grid;gap:20px}.integration-heading{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center}.integration-heading h2{margin:0 0 4px}.integration-heading p{margin:0}.integration-mark{width:48px;height:48px;border-radius:14px;background:#0b996e;color:#fff;display:grid;place-items:center;font-size:1.3rem;font-weight:800}.connection-state{display:inline-flex;padding:6px 10px;border-radius:999px;font-size:.76rem;font-weight:700}.connection-state.connected{background:#d9f0e5;color:#075b41}.connection-state.disconnected{background:#e8e7e2;color:#575d5a}.brevo-error{margin-top:0}.audience-counts{display:grid;grid-template-columns:1fr 1fr;gap:12px}.audience-counts>div{padding:18px;border-radius:14px;background:var(--soft)}.audience-counts strong{display:block;font-family:'Playfair Display SC',serif;font-size:2.25rem}.audience-counts span{display:block;color:var(--muted);font-size:.84rem;margin-top:4px}.brevo-config{margin-top:20px}.brevo-config-form{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(360px,1.2fr) auto;gap:20px;align-items:end}.brevo-config fieldset{border:0;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.brevo-config legend{font-weight:700;font-size:.88rem;margin-bottom:8px}.choice-card{display:flex!important;grid-template-columns:none;flex-direction:row;gap:10px;align-items:flex-start;padding:13px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer}.choice-card:has(input:checked){border-color:var(--green);box-shadow:0 0 0 2px #12392f18}.choice-card input{width:18px;min-height:18px;margin:2px 0 0;flex:0 0 auto}.choice-card b,.choice-card small{display:block}.choice-card small{margin-top:4px}.brevo-sync{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:22px;border-top:1px solid var(--line)}.brevo-sync h2{margin:0 0 5px}.brevo-sync p{margin:0;color:var(--muted);line-height:1.5}.btn:disabled{opacity:.48;cursor:not-allowed}
@media(max-width:1100px){.brevo-layout,.brevo-config-form{grid-template-columns:1fr}.brevo-config-form>.btn{width:100%}}
@media(max-width:650px){.integration-heading{grid-template-columns:auto 1fr}.connection-state{grid-column:1/-1;width:max-content}.audience-counts,.brevo-config fieldset{grid-template-columns:1fr}.brevo-sync{align-items:stretch;flex-direction:column}.brevo-sync .btn{width:100%}}

/* Responsive globale e tabelle mobile */
html,body{width:100%;max-width:100%;overflow-x:clip}img,svg,video,canvas,iframe{max-width:100%}.app-shell,.admin-shell,.app-main,.admin-main,.booking-layout,.booking-page,.bookings-layout,.bookings-results,.panel,.split,.mail-grid,.builder-layout,.customizer-layout{min-width:0;max-width:100%}.app-shell,.admin-shell{width:100%}.page-head>*,.results-head>*,.section-heading>*,.integration-heading>*,.brevo-sync>*,.tenant-row>*,.restaurant-card-top>*,.restaurant-edit>summary>*{min-width:0}.panel p,.panel small,.panel code,.panel td,.restaurant-card,.user-chip,.brand{overflow-wrap:anywhere}.table-wrap{width:100%;max-width:100%;overscroll-behavior-inline:contain}.sidebar nav{max-width:100%;overscroll-behavior-inline:contain}.topbar{width:100%;min-width:0}.brand{min-width:0}.brand>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-chip{min-width:0;flex:0 1 auto}.summary div{gap:16px}.summary strong{min-width:0;text-align:right;overflow-wrap:anywhere}
@media(max-width:1000px){.sidebar{width:100%;max-width:100vw;overflow:hidden}.sidebar nav{width:100%;overflow-x:auto;overflow-y:hidden;padding-bottom:4px;scrollbar-width:none}.sidebar nav::-webkit-scrollbar{display:none}.app-main,.admin-main{width:100%}}
@media(max-width:760px){
 .app-main,.admin-main{padding:22px 16px}.page-head{gap:14px;margin-bottom:20px}.page-head h1{font-size:clamp(2rem,11vw,2.8rem)}.page-head .btn{max-width:100%}.filters{width:100%}.filters a{flex:1 1 auto;text-align:center}.panel{padding:18px}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.actions,.form-actions{flex-wrap:wrap}.actions>.btn,.form-actions>.btn{flex:1 1 auto}.flash{left:12px;right:12px;top:76px;max-width:none}.site-footer{max-width:100%}
 .bookings-layout{display:flex;flex-direction:column;width:100%}.admin-calendar{display:block!important;visibility:visible;width:100%;max-width:100%;position:static;order:0}.bookings-results{width:100%;order:1}.admin-calendar-week,.admin-calendar-grid{width:100%;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.admin-calendar-day{width:100%;min-width:0;min-height:36px}.admin-calendar-head h2{font-size:1.2rem}.results-head{width:100%}
 .table-wrap{overflow:visible;padding:0}.responsive-table{display:block;width:100%;min-width:0}.responsive-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.responsive-table tbody{display:grid;width:100%;gap:12px}.responsive-table tr{display:grid;width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#fff}.responsive-table td{display:grid;grid-template-columns:minmax(92px,.42fr) minmax(0,.58fr);align-items:start;gap:12px;width:100%;padding:10px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.responsive-table td:last-child{border-bottom:0}.responsive-table td::before{content:attr(data-label);color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.responsive-table td.empty{display:block;padding:20px;border:0;text-align:center}.responsive-table td.empty::before{content:none}.responsive-table .row-actions,.responsive-table .customer-history{min-width:0;justify-content:flex-end}.responsive-table .customer-history span{white-space:normal}.responsive-table td>small{min-width:0}.customer-table td:nth-child(2){overflow-wrap:anywhere}
}
@media(max-width:430px){.topbar{gap:10px}.topbar .brand{font-size:1rem}.platform-logo{width:36px;height:36px}.user-chip{gap:8px}.user-chip a{min-height:44px;display:flex;align-items:center}.app-main,.admin-main{padding:18px 12px}.panel{padding:15px}.admin-calendar-week,.admin-calendar-grid{gap:2px}.admin-calendar-day{min-height:34px;font-size:.8rem}.calendar-nav{width:42px;height:42px}.responsive-table tr{padding:12px}.responsive-table td{grid-template-columns:86px minmax(0,1fr);gap:8px}.cron-metrics{grid-template-columns:1fr}.booking-panel .stepper{justify-content:space-between}.booking-panel .stepper i{min-width:12px}}
.logout-form{margin:0}.logout-form button{border:0;background:transparent;padding:8px 0;color:var(--muted);font-size:.9rem;text-decoration:underline;cursor:pointer}
.geo-security-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);gap:20px;align-items:start}.geo-security-form{display:grid;gap:22px}.geo-master{padding:18px;border:1px solid #b9cdc5;background:#f1f7f3}.geo-status-card{display:grid;gap:18px;position:sticky;top:88px}.geo-status-card h2{font-size:2.2rem;margin:0}.geo-status-card dl{display:grid;gap:0;margin:0}.geo-status-card dl div{display:grid;gap:6px;padding:14px 0;border-bottom:1px solid var(--line)}.geo-status-card dt{font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}.geo-status-card dd{margin:0;font-weight:700}.geo-status-card code{word-break:break-all}.geo-security-notes{display:grid;grid-template-columns:1.25fr .75fr;gap:28px;margin-top:20px}.geo-security-notes ul{padding-left:20px;line-height:1.65}.geo-caveat{border-left:4px solid var(--coral);background:#fff7ed;padding:18px;border-radius:10px}.geo-caveat p{margin:.6rem 0 0;line-height:1.55}
@media(max-width:900px){.geo-security-grid,.geo-security-notes{grid-template-columns:1fr}.geo-status-card{position:static}}

/* Sidebar desktop: nessuna sovrapposizione con il link pubblico */
@media(min-width:1001px){.sidebar{display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-gutter:stable}.sidebar>div,.sidebar nav{flex:0 0 auto}.public-link{position:static;inset:auto;display:inline-flex;align-items:center;min-height:44px;margin:auto 14px 0;padding-top:22px;flex:0 0 auto;overflow-wrap:anywhere}}

/* Form pubblico senza barra e correzioni Safari/iPhone */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{min-width:0;overflow-x:hidden}.without-topbar .site-footer{display:none}.booking-layout{min-height:100vh;min-height:100dvh}.booking-hero{top:0;height:100vh;height:100dvh}.booking-panel{min-height:100vh;min-height:100dvh}.booking-layout,.booking-hero,.booking-hero>div,.booking-panel,.booking-panel form{min-width:0;max-width:100%}.restaurant-logo{display:block;width:auto;height:auto;max-width:100%;max-height:none;object-fit:contain;background:transparent;border-radius:0;padding:0;margin-bottom:22px}.booking-hero h1,.booking-hero p{overflow-wrap:anywhere}.calendar-grid button,.calendar-grid>span{min-width:0;min-height:34px}

/* Navigazione raggruppata */
.side-group{border-radius:11px}.side-group>summary{list-style:none;min-height:44px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-weight:700;cursor:pointer}.side-group>summary::-webkit-details-marker{display:none}.side-group>summary:after{content:'›';font-size:1.35rem;line-height:1;transition:transform .2s}.side-group[open]>summary:after{transform:rotate(90deg)}.side-group.current>summary{color:var(--green)}.side-group>summary:hover{background:var(--soft)}.side-submenu{display:grid;gap:3px;margin:0 0 5px 14px;padding-left:9px;border-left:1px solid var(--line)}.sidebar nav .side-submenu a{padding:9px 11px;font-size:.88rem}

/* Chiusure straordinarie e giorni chiusi nel calendario gestionale */
.closure-panel{margin-top:22px}.closure-form{display:grid;grid-template-columns:minmax(170px,.65fr) minmax(230px,1.35fr) auto;gap:14px;align-items:end}.closure-list{display:grid;margin-top:20px}.closure-list>div{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 0;border-top:1px solid var(--line)}.closure-list strong,.closure-list small{display:block}.admin-calendar-day.closed{background:#eeede7;color:#7e8782}.admin-calendar-day.closed em{font-size:.47rem;line-height:1;font-style:normal;text-transform:uppercase;letter-spacing:.02em}.admin-calendar-day.closed.selected{background:var(--green);color:#fff}.admin-calendar-day.closed:hover{border-color:#b8beb9}

@media(max-width:1000px){.booking-hero{height:430px}.booking-panel{min-height:0}.side-group{flex:0 0 auto}.side-group>summary{white-space:nowrap}.side-group[open]{min-width:max-content}.side-submenu{display:flex;margin:0;padding:0 0 4px;border:0}.closure-form{grid-template-columns:1fr 1fr}.closure-form .btn{grid-column:1/-1}.admin-calendar-day.closed em{display:none}}
@media(max-width:650px){input,select,textarea{font-size:16px}.booking-panel{padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right))}.booking-hero>div{left:auto;width:100%}.calendar-panel{left:0;right:auto;width:min(340px,calc(100vw - 36px));padding:12px}.closure-form{grid-template-columns:1fr}.closure-form .btn{grid-column:auto}.closure-list>div{align-items:flex-start}.closure-list .btn{padding-inline:12px}.restaurant-logo{max-width:100%}}

/* Mappatura provenienza */
.source-create{display:grid;gap:18px;margin-bottom:22px}.source-create h2{margin-bottom:4px}.source-form{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(190px,1.1fr) minmax(150px,.8fr) auto;gap:14px;align-items:end}.source-form .optional{font-size:.74rem;color:var(--muted);font-weight:400}.mapping-list{display:grid}.mapping-list>article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;padding:16px 0;border-top:1px solid var(--line)}.mapping-list>article>form:last-child{margin-bottom:1px}.source-badge{display:inline-flex;max-width:150px;padding:6px 9px;border-radius:999px;background:#e3ece7;color:#17483b;font-size:.78rem;font-weight:700;line-height:1.2;overflow-wrap:anywhere}
@media(max-width:1150px){.source-form{grid-template-columns:1fr 1fr}.source-form .btn{grid-column:1/-1}.mapping-list>article{align-items:stretch}.mapping-list>article>form:last-child{display:flex;align-items:flex-end}.mapping-list>article>form:last-child .btn{min-width:100px}}
@media(max-width:650px){.source-form{grid-template-columns:1fr}.source-form .btn{grid-column:auto}.mapping-list>article{grid-template-columns:1fr}.mapping-list>article>form:last-child,.mapping-list>article>form:last-child .btn{width:100%}.source-badge{max-width:100%}}

/* Prenotazioni più dense, storico cliente e riepilogo provenienze */
.page-bookings{padding-inline:clamp(16px,2.2vw,34px)}.page-bookings .bookings-layout{grid-template-columns:220px minmax(0,1fr);gap:14px}.page-bookings .admin-calendar{padding:14px;top:82px}.page-bookings .admin-calendar-head{margin-bottom:10px}.page-bookings .admin-calendar-head h2{font-size:1rem}.page-bookings .calendar-nav{width:34px;height:34px;border-radius:9px;font-size:1.2rem}.page-bookings .admin-calendar-week,.page-bookings .admin-calendar-grid{gap:2px}.page-bookings .admin-calendar-day{border-radius:7px;font-size:.75rem}.page-bookings .admin-calendar-day.closed em{display:none}.page-bookings .calendar-clear{margin-top:12px;font-size:.78rem}.page-bookings .bookings-results{width:100%;padding:18px}.customer-search{margin-top:0}.customer-history-panel{margin-bottom:22px}.customer-history-panel .section-heading p{margin:.35rem 0 0}.customer-list .selected-row{background:#f0f5f1}.customer-link{font-weight:700;color:var(--green);text-underline-offset:3px}.customer-delete-form{margin:0}.customer-delete-form .btn{min-height:44px}.small-btn{min-height:38px;padding:7px 11px;font-size:.82rem;white-space:nowrap}.provenance-panel .section-heading{align-items:end}.dashboard-range{margin:0}.provenance-table{min-width:760px}.provenance-table th{line-height:1.25}.provenance-table th:nth-child(n+2),.provenance-table td:nth-child(n+2){text-align:right}.provenance-total td{background:#f3f1e9;border-top:2px solid var(--line)}
@media(max-width:1100px){.page-bookings .bookings-layout{display:flex;flex-direction:column}.page-bookings .admin-calendar{width:min(360px,100%);position:static}.page-bookings .bookings-results{width:100%}.provenance-panel .section-heading{align-items:flex-start}.dashboard-range{flex-wrap:wrap}}
@media(max-width:650px){.page-bookings{padding-inline:12px}.page-bookings .admin-calendar{width:100%}.page-bookings .bookings-results{padding:15px}.provenance-table{min-width:0}.provenance-table th:nth-child(n+2),.provenance-table td:nth-child(n+2){text-align:left}.customer-history-panel .section-heading .btn{width:100%}.dashboard-range .btn{width:100%}}

/* Panoramica essenziale e filtri compatti delle prenotazioni */
.metrics.single{grid-template-columns:minmax(220px,320px)}.bookings-head{align-items:flex-end}.booking-toolbar{display:flex;align-items:flex-end;justify-content:flex-end;gap:12px;flex-wrap:wrap}.booking-toolbar .filters{margin:0}.booking-date-filter{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.booking-date-filter label{min-width:160px}.booking-date-filter input{min-height:44px}.date-clear{min-height:44px;display:inline-flex;align-items:center;padding:0 5px;color:var(--muted);font-size:.82rem;font-weight:700}.bookings-results-full{width:100%;max-width:none}.bookings-results-full .table-wrap{width:100%}
@media(max-width:1180px){.bookings-head{align-items:flex-start;flex-direction:column}.booking-toolbar{width:100%;justify-content:flex-start}}
@media(max-width:760px){.metrics.single{grid-template-columns:1fr}.booking-toolbar,.booking-date-filter{width:100%;align-items:stretch}.booking-toolbar .filters{display:grid;grid-template-columns:1fr 1fr}.booking-toolbar .filters a{display:flex;align-items:center;justify-content:center;min-height:44px}.booking-date-filter label{min-width:0;flex:1 1 170px}.booking-date-filter .btn{flex:0 0 auto}.date-clear{flex:1 0 100%;justify-content:center}.bookings-results-full{padding:15px}}
@media(max-width:430px){.booking-date-filter .btn{flex:1 1 100%}}
@media(max-width:760px){.provenance-table{min-width:0}.provenance-table th:nth-child(n+2),.provenance-table td:nth-child(n+2){text-align:left}}

/* Gira e vinci */
.wheel-admin-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:20px;margin-bottom:20px}.wheel-settings-panel,.wheel-prize-create{display:grid;gap:20px;align-content:start}.wheel-settings-panel h2,.wheel-prize-create h2{margin:.3rem 0}.wheel-settings-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,.4fr);gap:16px;align-items:end}.wheel-settings-grid .wide{grid-column:1/-1}.wheel-settings-grid .wheel-enabled{align-self:center;margin:0 0 25px}.wheel-mail-copy{min-width:0;margin:0;padding:18px;border:1px solid var(--line);border-radius:14px}.wheel-mail-copy legend{padding:0 8px;font-weight:800;color:var(--ink)}.wheel-prize-create form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}.wheel-prizes-panel{margin-bottom:20px}.wheel-prize-list{display:grid}.wheel-prize-list article{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}.wheel-prize-number{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:var(--green);color:#fff;font-weight:800}.wheel-prize-list strong,.wheel-prize-list small{display:block}.wheel-winners-table{min-width:720px}.manage-wheel-callout{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:20px 0;padding:16px;border-radius:14px;background:linear-gradient(135deg,#f6e5c9,#f5d8cf)}.manage-wheel-callout strong,.manage-wheel-callout span{display:block}.manage-wheel-callout span{margin-top:4px;font-size:.86rem;color:var(--muted)}
.wheel-public-shell{width:100%;min-height:100vh;min-height:100dvh;padding:clamp(16px,4vw,48px);display:grid;grid-template-columns:minmax(0,1fr);place-items:center;overflow-x:hidden;background:radial-gradient(circle at 50% 10%,color-mix(in srgb,var(--brand) 16%,#fff),#f7f4ec 48%)}.wheel-public-card{width:100%;max-width:760px;min-width:0;margin-inline:auto;padding:clamp(22px,5vw,46px);overflow:hidden;border:1px solid var(--line);border-radius:28px;background:var(--card);box-shadow:var(--shadow);text-align:center}.wheel-public-card h1{font-size:clamp(2.4rem,7vw,4.2rem)}.wheel-logo{display:block;width:auto;height:auto;max-width:210px;max-height:110px;margin:0 auto 20px;object-fit:contain}.wheel-booking-validity{display:flex;justify-content:center;gap:9px 18px;flex-wrap:wrap;min-width:0;margin:0 auto 24px;padding:14px 18px;border-radius:13px;background:var(--soft)}.wheel-booking-validity span{flex-basis:100%;font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}.wheel-booking-validity strong,.wheel-booking-validity b{min-width:0;overflow-wrap:anywhere}.wheel-stage{position:relative;width:min(390px,100%);max-width:100%;aspect-ratio:1;margin:28px auto}.prize-wheel{position:absolute;inset:10px;border:10px solid #fff;border-radius:50%;box-shadow:0 18px 45px #15342d2b,0 0 0 2px var(--line);overflow:hidden;will-change:transform}.prize-wheel:after{content:'';position:absolute;left:50%;top:50%;width:70px;height:70px;transform:translate(-50%,-50%);border:8px solid #fff;border-radius:50%;background:var(--brand);box-shadow:0 3px 16px #0004}.wheel-number{position:absolute;left:50%;top:50%;width:34px;height:34px;margin:-17px;display:grid;place-items:center;color:#fff;transform:rotate(calc((var(--i) + .5) * 1turn / var(--total))) translateY(clamp(-135px,-34vw,-103px)) rotate(calc((var(--i) + .5) * -1turn / var(--total)));text-shadow:0 1px 3px #0008}.wheel-number b{font-size:1rem}.wheel-pointer{position:absolute;z-index:4;left:50%;top:-4px;width:0;height:0;transform:translateX(-50%);border-left:18px solid transparent;border-right:18px solid transparent;border-top:38px solid var(--ink);filter:drop-shadow(0 3px 2px #0003)}.prize-wheel.spinning{animation:wheel-spin var(--wheel-duration,4s) cubic-bezier(.12,.72,.08,1) both}.wheel-legend{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:18px 0;padding:0;list-style:none;text-align:left}.wheel-legend li{display:grid;grid-template-columns:30px minmax(0,1fr);gap:9px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:#fff}.wheel-legend li b{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--soft)}.wheel-legend li span{overflow-wrap:anywhere}.wheel-odds{max-width:580px;margin:18px auto;color:var(--muted);line-height:1.55;overflow-wrap:anywhere}.wheel-spin-form .btn{min-width:210px}.wheel-spin-error{margin:12px auto 0;color:#9f261d;font-weight:700}.wheel-result,.wheel-message{max-width:580px;margin:26px auto 0;padding:28px;border-radius:20px;background:var(--soft)}.wheel-result span{display:block;text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;font-weight:700;color:var(--muted)}.wheel-result>strong{display:block;margin:12px 0;font-family:'Playfair Display SC',serif;font-size:clamp(2rem,6vw,3.4rem);color:var(--brand)}.wheel-result p,.wheel-message p{line-height:1.6;margin-bottom:0}.wheel-message h2{margin-bottom:8px}
@keyframes wheel-spin{from{transform:rotate(0)}to{transform:rotate(var(--wheel-target,1440deg))}}
@media(max-width:900px){.wheel-admin-grid{grid-template-columns:1fr}}
@media(max-width:760px){.wheel-winners-table{min-width:0}}
@media(max-width:600px){.manage-wheel-callout{align-items:stretch;flex-direction:column}.manage-wheel-callout .btn{width:100%}.wheel-settings-grid{grid-template-columns:1fr}.wheel-settings-grid .wheel-enabled{margin:0}.wheel-settings-panel>.btn{width:100%}.wheel-prize-create form{grid-template-columns:1fr}.wheel-prize-list article{grid-template-columns:38px minmax(0,1fr)}.wheel-prize-list article form{grid-column:1/-1}.wheel-prize-list article .btn{width:100%}.wheel-stage{width:min(310px,100%)}.wheel-number{transform:rotate(calc((var(--i) + .5) * 1turn / var(--total))) translateY(clamp(-103px,-33vw,-88px)) rotate(calc((var(--i) + .5) * -1turn / var(--total)))}.wheel-legend{grid-template-columns:1fr}.wheel-public-shell{padding:12px}.wheel-public-card{padding:22px 16px;border-radius:22px}.wheel-spin-form .btn{width:100%}}
@media(prefers-reduced-motion:reduce){.prize-wheel.spinning{animation:none}*{scroll-behavior:auto!important}}
.privacy-link{color:var(--brand,var(--green));font-weight:800;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:3px}.privacy-link:hover{color:var(--coral)}.custom-footer,.without-topbar .site-footer.custom-footer{display:block;width:100%;padding:24px clamp(18px,4vw,52px);text-align:center;line-height:1.6;overflow-wrap:anywhere}.custom-footer>*:first-child{margin-top:0}.custom-footer>*:last-child{margin-bottom:0}.custom-footer a{color:var(--green);font-weight:700;text-decoration:underline;text-underline-offset:3px}.custom-footer img,.footer-preview img{display:inline-block;max-width:100%;height:auto}.custom-footer ul,.custom-footer ol{width:max-content;max-width:100%;margin:12px auto;text-align:left}.footer-preview{width:100%;margin-top:10px;padding:16px;border-top:1px solid var(--line);line-height:1.6;overflow-wrap:anywhere}.footer-preview>*:first-child{margin-top:0}.footer-preview>*:last-child{margin-bottom:0}.without-topbar .manage-shell{min-height:100vh;min-height:100dvh}
.settings-panels{display:flex;flex-direction:column;gap:22px}.settings-panels>.closure-panel{order:0;margin-top:0}.settings-panels>form.panel{order:1}.closure-form{display:grid;grid-template-columns:1fr;gap:18px;align-items:stretch}.closure-form-main{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:14px}.closure-reason,.closure-range-help{grid-column:1/-1}.closure-range-help{margin:0;padding:11px 13px;border-radius:10px;background:var(--soft);color:var(--muted);font-size:.88rem;line-height:1.5}.optional-label{font-size:.76rem;font-weight:600;color:var(--muted)}.closure-options{min-width:0;margin:0;padding:16px;border:1px solid var(--line);border-radius:14px}.closure-options legend{padding:0 8px;font-size:.9rem;font-weight:800}.closure-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.closure-slots{margin-top:14px}.closure-form>[type=submit]{justify-self:start}.closure-options .is-disabled{opacity:.48;cursor:not-allowed}.closure-options .is-disabled input{cursor:not-allowed}.closure-list>div>span{min-width:0}.closure-badges{display:flex!important;flex-wrap:wrap;gap:6px;margin-top:8px}.closure-badges b{display:inline-flex;padding:5px 8px;border-radius:999px;background:var(--soft);color:var(--green);font-size:.74rem;line-height:1.2}.weekly-hours-panel .section-heading{margin-bottom:8px}
@media(max-width:760px){.closure-form-main,.closure-choice-grid{grid-template-columns:1fr}.closure-form>[type=submit]{width:100%}.closure-list>div{flex-direction:column}.closure-list>div form,.closure-list>div form .btn{width:100%}}
.settings-panels>.page-head{margin-bottom:6px}

/* Modifica delle chiusure e priorità del pannello eccezioni */
.settings-panels>.closure-panel{order:-1}.closure-edit-note{display:flex;align-items:center;gap:8px 16px;flex-wrap:wrap;margin:0 0 18px;padding:12px 14px;border:1px solid #cbd9d2;border-radius:12px;background:#eef5f1;color:var(--green)}.closure-edit-note span{color:var(--muted)}.closure-form-actions,.closure-row-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.closure-form-actions{justify-content:flex-start}.closure-row-actions{justify-content:flex-end}.closure-row-actions form{margin:0}
.special-opening-panel{order:0}.special-opening-form{display:grid;gap:18px}.special-opening-form>label{max-width:360px}.special-opening-form fieldset{min-width:0;margin:0;padding:16px;border:1px solid var(--line);border-radius:14px}.special-opening-form legend{padding:0 8px;font-weight:800}.special-service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.special-service-card{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff}.special-service-card>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.special-service-card .check{margin:0}.calendar-loading{grid-column:1/-1;padding:22px 4px;text-align:center;color:var(--muted)}
.service-choice{min-width:0;margin:0;padding:0;border:0}.service-choice legend{margin-bottom:10px;font-weight:800}.service-choice-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.service-choice-grid label{position:relative;cursor:pointer}.service-choice-grid input{position:absolute;inline-size:1px;block-size:1px;opacity:0}.service-choice-grid span{display:flex;min-height:50px;align-items:center;justify-content:center;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;font-weight:800;text-align:center;transition:border-color .15s ease,background .15s ease,color .15s ease}.service-choice-grid input:checked+span{border-color:var(--brand,var(--green));background:var(--brand,var(--green));color:#fff}.service-choice-grid input:focus-visible+span{outline:3px solid color-mix(in srgb,var(--brand,var(--green)) 28%,transparent);outline-offset:2px}.service-choice-grid label:hover span{border-color:var(--brand,var(--green))}.service-heading-settings{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.7fr) auto;gap:16px;align-items:end;margin-top:22px}.service-heading-settings h2{margin:.2rem 0}
.service-choice legend{width:auto;padding:0;font-family:Karla,Arial,sans-serif;font-size:.88rem;line-height:1.35;font-weight:700;letter-spacing:normal;text-transform:none;color:var(--ink)}
.update-publish-panel{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:28px;align-items:start}.update-publish-copy h2{margin:.35rem 0 .75rem}.update-publish-copy p{max-width:760px;line-height:1.65}.update-publish-copy kbd{display:inline-flex;align-items:center;min-height:28px;padding:2px 8px;border:1px solid var(--line);border-bottom-width:2px;border-radius:7px;background:#fff;font:700 .78rem Karla,Arial,sans-serif}.update-version-details{display:grid;gap:0;margin:0;border:1px solid var(--line);border-radius:14px;background:#fff}.update-version-details div{display:grid;gap:4px;padding:14px 16px;border-bottom:1px solid var(--line)}.update-version-details div:last-child{border:0}.update-version-details dt{color:var(--muted);font-size:.78rem;font-weight:700}.update-version-details dd{margin:0;font-weight:700;overflow-wrap:anywhere}.update-version-details code{font-size:.82rem}.update-publish-panel form{grid-column:1/-1;margin:0}.update-publish-panel form .btn{min-height:48px}
@media(max-width:900px){.special-service-grid{grid-template-columns:1fr}.special-opening-form>label{max-width:none}}
@media(max-width:760px){.update-publish-panel{grid-template-columns:1fr}.update-publish-panel form{grid-column:auto}.update-publish-panel form .btn{width:100%}}
@media(max-width:760px){.service-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-heading-settings{grid-template-columns:1fr}.service-heading-settings .btn{width:100%}}
.link-builder-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:20px;align-items:start}.link-builder-form{display:grid;gap:22px}.link-builder-step{display:flex;align-items:flex-start;gap:13px}.link-builder-step>span{flex:0 0 36px;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;font-weight:800}.link-builder-step h2{margin:2px 0 4px}.link-builder-step p{margin:0;color:var(--muted)}.link-builder-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.link-builder-fields .link-builder-step{grid-column:1/-1;margin-top:4px}.link-builder-result{position:sticky;top:88px}.link-builder-result h2{margin:.3rem 0 .5rem}.link-builder-result textarea{min-height:132px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.85rem;line-height:1.55;overflow-wrap:anywhere;resize:vertical}.link-builder-status{min-height:24px;margin:10px 0;color:var(--muted);font-weight:700}.link-builder-actions{display:flex;gap:10px;flex-wrap:wrap}.link-builder-actions .is-disabled{opacity:.45;cursor:not-allowed}.link-builder-summary{display:grid;grid-template-columns:minmax(90px,.65fr) minmax(0,1.35fr);gap:10px 14px;margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}.link-builder-summary span{color:var(--muted)}.link-builder-summary strong{text-align:right;overflow-wrap:anywhere}.optional{font-size:.75rem;color:var(--muted);font-weight:500}.page-link-builder .calendar-panel{--brand:var(--green)}
@media(max-width:900px){.link-builder-layout{grid-template-columns:1fr}.link-builder-result{position:static}.link-builder-fields{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.link-builder-fields{grid-template-columns:1fr}.link-builder-actions>*{width:100%}.link-builder-summary{grid-template-columns:1fr}.link-builder-summary strong{text-align:left;margin-bottom:6px}.page-link-builder .calendar-panel{width:min(340px,calc(100vw - 54px))}}
.gtm-settings-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:20px;align-items:start}.gtm-settings-form{display:grid;gap:20px}.gtm-settings-form h2,.gtm-status-panel h2{margin:.3rem 0 .6rem}.gtm-settings-form textarea{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.86rem;line-height:1.55;min-height:210px}.gtm-code-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.gtm-code-grid label{min-width:0}.gtm-code-grid label>span{display:block;margin-bottom:6px;font-weight:800}.gtm-code-grid small{display:block;margin-top:6px;line-height:1.45}.gtm-security-note{display:flex;align-items:flex-start;gap:12px;padding:15px;border:1px solid #bcd8ca;border-radius:12px;background:#edf7f1}.gtm-security-note strong{white-space:nowrap;color:#075b41}.gtm-security-note span{color:var(--muted);line-height:1.45}.gtm-status-panel{position:sticky;top:88px}.gtm-status-panel .btn{margin-top:8px}.gtm-events-panel{margin-top:20px}.gtm-events-table{min-width:680px}.gtm-events-table code{display:inline-block;padding:3px 6px;border-radius:6px;background:var(--soft);font-size:.82rem}.gtm-events-help{margin:18px 0 0;padding-top:16px;border-top:1px solid var(--line);color:var(--muted)}.gtm-consent-note{display:grid;gap:4px;margin-top:16px;padding:14px 16px;border:1px solid #e6d39e;border-radius:12px;background:#fff9e9}.gtm-consent-note strong{color:#77590c}.gtm-consent-note span{color:var(--muted);line-height:1.5}
@media(max-width:1100px){.gtm-code-grid{grid-template-columns:1fr}}@media(max-width:900px){.gtm-settings-layout{grid-template-columns:1fr}.gtm-status-panel{position:static}}
@media(max-width:560px){.gtm-security-note{display:grid}.gtm-security-note strong{white-space:normal}.gtm-settings-form .btn,.gtm-status-panel .btn{width:100%}}
.custom-script-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(270px,.65fr);gap:20px;align-items:start}.custom-script-form{display:grid;gap:20px}.custom-script-master{margin:0}.custom-script-warning{padding:16px;border:1px solid #e7b6af;border-radius:14px;background:#fff3f1}.custom-script-warning strong{color:#94382f}.custom-script-warning p{margin:6px 0 0;line-height:1.55}.custom-script-editors{display:grid;grid-template-columns:1fr 1fr;gap:16px}.custom-script-editor{display:grid;gap:12px;min-width:0;padding:15px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}.custom-script-editor>.check{margin:0}.custom-script-editors label{min-width:0}.custom-script-editors label>span{display:block;margin-bottom:6px;font-weight:800}.custom-script-editors textarea,.custom-script-form textarea{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.84rem;line-height:1.55;resize:vertical}.custom-script-rules{padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}.custom-script-rules ul{margin:9px 0 0;padding-left:20px}.custom-script-rules li+li{margin-top:6px}.custom-script-ack{align-items:flex-start;margin:0}.custom-script-scope{position:sticky;top:88px}.custom-script-scope h2{margin:.3rem 0 1rem}.custom-script-scope dl{display:grid;margin:0 0 18px}.custom-script-scope dl div{display:grid;gap:4px;padding:12px 0;border-top:1px solid var(--line)}.custom-script-scope dt{color:var(--muted);font-size:.78rem;font-weight:700}.custom-script-scope dd{margin:0;font-weight:700;overflow-wrap:anywhere}.custom-script-scope code{font-size:.78rem}.custom-script-audit{margin-top:20px}.custom-script-audit table{min-width:760px}
@media(max-width:1100px){.custom-script-editors{grid-template-columns:1fr}}@media(max-width:900px){.custom-script-layout{grid-template-columns:1fr}.custom-script-scope{position:static}}@media(max-width:560px){.custom-script-form>.btn,.custom-script-scope .btn{width:100%}}
@media(max-width:760px){.closure-form-actions,.closure-row-actions{width:100%;align-items:stretch;flex-direction:column}.closure-form-actions .btn,.closure-row-actions .btn,.closure-row-actions form{width:100%}.closure-row-actions .btn{display:flex;align-items:center;justify-content:center;min-height:44px}}

/* Conferme automatiche */
.auto-confirm-settings{display:grid;gap:22px;margin-bottom:22px}.auto-confirm-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.65fr);gap:18px;align-items:center}.auto-confirm-intro h2{margin:.25rem 0}.auto-confirm-master{margin:0}.auto-day-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.auto-day-card{min-width:0;margin:0;padding:17px;border:1px solid var(--line);border-radius:15px;background:#fff}.auto-day-card legend{padding:0 8px;font-family:'Playfair Display SC',serif;font-size:1.1rem;font-weight:700;color:var(--green)}.auto-day-card>.check{margin:0 0 14px}.auto-day-card>label:not(.check){display:block;margin-top:12px}.auto-day-card small{display:block;margin-top:5px}.auto-exceptions{display:grid;gap:20px}.auto-exception-form{display:grid;grid-template-columns:minmax(150px,.55fr) minmax(250px,1fr) minmax(180px,.7fr) minmax(180px,.7fr) auto;gap:12px;align-items:end}.auto-exception-form>.choice-card{min-height:72px;margin:0}.auto-exception-list{display:grid}.auto-exception-list article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 18px;align-items:center;padding:15px 0;border-top:1px solid var(--line)}.auto-exception-list article>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.auto-exception-list article p{margin:0;color:var(--muted)}.auto-exception-list article form{grid-column:2;grid-row:1/3;margin:0}.auto-exception-list .connection-state{padding:5px 8px;font-size:.72rem}
@media(max-width:1180px){.auto-exception-form{grid-template-columns:1fr 1fr}.auto-exception-form>.btn{grid-column:1/-1;justify-self:start}}
@media(max-width:760px){.auto-confirm-intro,.auto-day-grid,.auto-exception-form{grid-template-columns:1fr}.auto-confirm-settings>.btn,.auto-exception-form>.btn{width:100%}.auto-exception-form>.btn{grid-column:auto}.auto-exception-list article{grid-template-columns:1fr;align-items:stretch}.auto-exception-list article form{grid-column:auto;grid-row:auto}.auto-exception-list article form,.auto-exception-list article .btn{width:100%}}

/* Capienze automatiche per servizio e fascia oraria */
.auto-capacity-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.auto-capacity-grid label{min-width:0}.auto-slot-limits{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}.auto-slot-limits summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:800;color:var(--green)}.auto-slot-limits>p{margin:0 0 12px}.auto-slot-groups{display:grid;gap:14px}.auto-slot-groups section{min-width:0}.auto-slot-groups h3{margin:0 0 8px;font-family:inherit;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.auto-slot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.auto-slot-grid label{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}.auto-slot-grid label span{font-weight:800;font-variant-numeric:tabular-nums}.auto-slot-grid input{min-width:0;background:#fff}.auto-exception-form{grid-template-columns:1fr;align-items:stretch}.auto-exception-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:end}.auto-exception-fields>.choice-card{min-height:72px;margin:0}.auto-exception-slots{min-width:0}.auto-exception-form>.btn{justify-self:start}
@media(max-width:1180px){.auto-slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.auto-exception-fields{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.auto-capacity-grid,.auto-exception-fields{grid-template-columns:1fr}.auto-slot-grid{grid-template-columns:1fr}.auto-exception-form>.btn{justify-self:stretch}.auto-slot-limits summary{min-height:48px}}

/* Modalità di capienza alternative */
.auto-day-basics{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,.7fr);gap:12px;align-items:end}.auto-day-basics>.check{margin:0 0 24px}.capacity-mode-picker{min-width:0;margin:16px 0;padding:0;border:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.capacity-mode-picker>legend{grid-column:1/-1;width:100%;padding:0 0 8px;font-family:inherit;font-size:.86rem;font-weight:800;color:var(--ink)}.capacity-mode-picker>.choice-card{min-width:0;margin:0;padding:11px}.capacity-mode-picker>.choice-card small{line-height:1.35}.capacity-panel{min-width:0;padding:14px;border:1px solid var(--line);border-radius:12px;background:#faf9f5}.capacity-panel[hidden]{display:none!important}.capacity-panel>.auto-slot-limits,.capacity-panel.auto-exception-slots>.auto-slot-limits{margin-top:0;padding-top:0;border-top:0}
@media(max-width:950px){.capacity-mode-picker{grid-template-columns:1fr}.auto-day-basics{grid-template-columns:1fr}.auto-day-basics>.check{margin:0}}

/* Messaggio di ringraziamento personalizzabile */
.without-topbar .success-shell{min-height:100vh;min-height:100dvh}.thanks-copy-help{margin:0 0 16px}.thanks-copy-help code{font-weight:800;color:var(--green)}.thanks-copy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.thanks-copy-grid fieldset{min-width:0;margin:0;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff}.thanks-copy-grid legend{padding:0 8px;font-family:var(--serif);font-size:1.15rem;font-weight:800}.thanks-copy-grid label{display:block;margin-bottom:12px}.thanks-copy-grid label:last-child{margin-bottom:0}.thanks-copy-grid textarea{resize:vertical}
@media(max-width:760px){.thanks-copy-grid{grid-template-columns:1fr}}

/* Ricerca, modifica e date di stato delle prenotazioni */
.booking-toolbar.panel{margin-bottom:18px;padding:16px 18px;justify-content:space-between}.booking-list-filter{display:flex;align-items:flex-end;justify-content:flex-end;gap:8px;flex-wrap:wrap}.booking-list-filter label{min-width:190px}.booking-list-filter input{min-height:44px}.booking-edit-panel{margin-bottom:18px;border-color:#bfd0c7}.booking-edit-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:end}.booking-edit-form label small{display:block;margin-top:6px}.booking-edit-actions{display:flex;gap:10px;flex-wrap:wrap}.booking-table .row-actions{flex-wrap:wrap;align-items:center}.booking-notes{display:block;min-width:150px;max-width:280px;white-space:pre-wrap;overflow-wrap:anywhere}.booking-table td[data-label="Stato"] small{margin-top:7px;white-space:nowrap}
@media(max-width:1100px){.booking-edit-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:1000px){.booking-toolbar.panel{align-items:stretch;flex-direction:column}.booking-list-filter{justify-content:flex-start}}
@media(max-width:760px){.booking-list-filter,.booking-edit-form{display:grid;grid-template-columns:1fr}.booking-list-filter label{min-width:0}.booking-list-filter .btn,.booking-list-filter .date-clear,.booking-edit-actions,.booking-edit-actions .btn{width:100%}.booking-edit-actions{display:grid;grid-template-columns:1fr}.booking-notes{min-width:0;max-width:none}.responsive-table .row-actions{justify-content:flex-start}}

/* Doppio filtro: giorno della visita e giorno del cambio di stato */
.filter-summary{display:inline-flex;gap:5px;margin:5px 10px 0 0;padding:6px 9px;border-radius:9px;background:var(--soft);color:var(--muted);font-size:.82rem}.filter-summary strong{color:var(--ink)}
@media(max-width:760px){.filter-summary{display:flex;width:100%;margin-right:0;flex-wrap:wrap}}

/* Ultima modifica inviata dal cliente: confronto prima/dopo nella coda da valutare */
.customer-change-details{margin-top:8px;min-width:230px;border:1px solid #d8cdec;border-radius:10px;background:#faf8ff;color:var(--ink);font-size:.78rem}.customer-change-details summary{cursor:pointer;padding:8px 10px;color:#593c8b;font-weight:800}.customer-change-details dl{display:grid;gap:0;margin:0;padding:0 10px 9px}.customer-change-details dl>div{padding:7px 0;border-top:1px solid #e8e1f2}.customer-change-details dt{margin-bottom:4px;color:var(--muted);font-weight:800}.customer-change-details dd{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:6px;align-items:start;margin:0;overflow-wrap:anywhere}.customer-change-details del{color:#9b3d47}.customer-change-details ins{color:#087053;text-decoration:none;font-weight:700}
.customer-change-history{display:grid;gap:8px;padding:0 8px 9px}.customer-change-history section{overflow:hidden;border:1px solid #e4dcef;border-radius:9px;background:#fff}.customer-change-history h4{margin:0;padding:7px 9px;background:#f2ecfa;color:#593c8b;font-size:.76rem}.customer-change-result{margin:0 8px 9px;border:1px solid #b9dccc;border-radius:9px;background:#f5fcf8}.customer-change-result>strong{display:block;padding:8px 10px;color:#087053}.customer-change-result dl{padding-inline:10px}
@media(max-width:760px){.customer-change-details{min-width:0}.customer-change-details dd{grid-template-columns:1fr}.customer-change-details dd>span{display:none}}

/* Home pubblica provvisoria Fidelizzo */
.platform-home{width:100%;min-height:100vh;min-height:100dvh;display:grid;place-items:center;overflow:hidden;padding:max(24px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));background:var(--bg)}.platform-home-logo{display:block;width:min(1120px,100%);height:auto;max-height:78vh;max-height:78dvh;object-fit:contain}
