:root{--bg:#0e0e10;--panel:#19191c;--panel2:#242428;--border:#333337;--text:#f7f7f7;--muted:#a6a6aa;--accent:#adb6c2;--dark-accent:#29313b;--danger:#f56b68;--radius:14px}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);margin:0;line-height:1.5;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.42}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}p{margin:0}h1,h2,h3{line-height:1.07;letter-spacing:-.045em;margin:0}h1{font-size:clamp(2.4rem,9.6vw,4.7rem);font-weight:850}h2{font-size:clamp(1.8rem,5vw,2.55rem);font-weight:800}h1 em,h2 em{font-style:normal;color:var(--accent)}.shell{max-width:880px;margin:0 auto;min-height:100vh;padding:0 22px 150px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:13px 0 12px;border-bottom:1px solid var(--border);min-height:76px}.brand{display:flex;align-items:center;gap:9px}.brand-image{width:43px;height:43px;object-fit:contain}.brand-copy{display:grid;line-height:1.08}.brand-copy b{font-size:1.12rem;letter-spacing:.055em;font-weight:900}.brand-copy small{font-size:.56rem;letter-spacing:.2em;color:var(--muted);font-weight:700;margin-top:5px}.header-link{padding:7px 13px;border:1px solid var(--border);background:var(--panel);border-radius:999px;color:#ebebeb;font-size:.78rem;white-space:nowrap}.status-dot{display:inline-block;background:#51d6a5;width:7px;height:7px;border-radius:50%;margin-right:7px}.main-content{padding-top:28px}.eyebrow{display:inline-block;color:var(--accent);font-size:.69rem;letter-spacing:.17em;font-weight:850}.eyebrow-line{display:inline-block;height:7px;width:7px;background:var(--accent);border-radius:50%;margin-right:5px;vertical-align:1px}.button{min-height:48px;padding:13px 17px;display:inline-flex;justify-content:space-between;align-items:center;gap:18px;font-size:.8rem;font-weight:850;letter-spacing:.04em;border-radius:11px;border:1px solid transparent;white-space:normal}.button.primary{background:var(--accent);color:#101011}.button.primary:hover{background:#bfc8d3}.button.outlined{border-color:#55555a;background:#19191c;color:#fff}.button.outlined:hover{border-color:var(--accent)}.button.subtle{border:1px solid #414145;background:#303033;color:#fff}.button.full,.button.wide{width:100%}.button:disabled{filter:grayscale(.85)}.two-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:27px}.two-actions .button{flex:1}.install-hero{display:flex;flex-direction:column;align-items:flex-start;position:relative;overflow:hidden;border-radius:22px;border:1px solid #303033;background:radial-gradient(ellipse at 85% 25%,rgba(255,133,0,.09),transparent 46%),#171719;padding:28px 22px 32px}.install-hero:before{content:'';position:absolute;right:-100px;top:0;width:270px;height:270px;border:1px solid #38383a;transform:rotate(35deg)}.install-logo{width:min(72%,310px);max-height:290px;object-fit:contain;align-self:center;position:relative;margin:2px auto 15px;filter:drop-shadow(0px 9px 26px #000)}.install-hero h1{position:relative;font-size:clamp(2rem,7vw,3.65rem)}.install-hero p{color:#bebec1;margin-top:17px;font-size:.9rem;max-width:550px}.section{margin-top:38px}.section.compact-top{margin-top:27px}.section-heading{margin:0 0 20px}.section-heading .eyebrow{margin-bottom:6px}.section-heading h2{margin-top:4px}.small-label{display:block;color:#a6a6aa;font-weight:850;font-size:.67rem;letter-spacing:.11em;margin-bottom:12px}.step{display:flex;align-items:flex-start;gap:19px;padding:18px 14px;margin:10px 0;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius)}.step-number{font-weight:850;color:var(--accent);font-size:1.15rem;min-width:33px}.step b{display:block;margin-bottom:5px}.step p{color:var(--muted);font-size:.85rem}.notice{background:#282327;border-left:3px solid var(--accent);border-radius:6px;padding:13px 15px;color:#d3cbca;font-size:.81rem;margin:15px 0}.notice.error{border-color:var(--danger);color:#fff}.home-hero{height:480px;position:relative;border-radius:19px;overflow:hidden;background:#212125}.studio-photo{width:100%;height:100%;object-fit:cover}.photo-placeholder{height:100%;background:repeating-linear-gradient(136deg,#1f1f21 0,#1f1f21 2px,#232327 2px,#232327 48px);display:grid;place-items:center;position:relative}.photo-placeholder-copy{font-size:clamp(3rem,12vw,6rem);font-weight:900;letter-spacing:.08em;color:#3b3b3e;text-align:center;line-height:.75}.photo-placeholder-copy small{letter-spacing:.17em;font-size:.55rem;color:#4e4e52}.slash{width:80px;height:560px;position:absolute;border:1px solid #414145;transform:rotate(35deg)}.slash-1{left:-50px}.slash-2{right:10px}.hero-gradient{pointer-events:none;position:absolute;inset:0;background:linear-gradient(0deg,rgba(9,9,10,.97) 0,rgba(9,9,10,.59) 47%,transparent 86%)}.hero-copy{position:absolute;bottom:22px;left:22px;right:22px}.hero-copy h1{font-size:clamp(2.1rem,8vw,4rem);margin:9px 0}.hero-copy p{color:#c1c1c5;font-size:.85rem;max-width:590px;margin:0 0 20px}.features{display:grid;gap:10px;grid-template-columns:repeat(3,1fr)}.features>div{padding:17px 13px;border:1px solid var(--border);background:var(--panel);border-radius:var(--radius);display:flex;flex-direction:column;gap:5px}.features span{color:var(--accent);font-weight:900}.features b{font-size:.89rem}.features small{color:var(--muted);font-size:.72rem}.service-row,.hours-row,.info-line{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--border)}.service-row>div{display:flex;flex-direction:column;gap:3px}.service-row b{font-weight:760}.service-row small{color:var(--muted)}.service-row strong{font-size:1.05rem}.hours-row{font-size:.85rem}.hours-row span{color:var(--muted)}.closed{color:#ff998b}.info-line{align-items:flex-start}.info-line span{color:var(--muted);font-size:.83rem}.info-line strong,.info-line a{font-size:.83rem;text-align:right}.footer{border-top:1px solid var(--border);padding:27px 0 10px;margin-top:60px;display:flex;flex-direction:column;gap:10px;color:var(--muted);font-size:.72rem}.footer-top{display:flex;align-items:baseline;gap:12px}.footer-top strong{color:#fff;font-size:1.07rem;letter-spacing:.06em}.footer-top span{font-size:.6rem;letter-spacing:.05em}.footer-small{opacity:.67}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,880px);padding:10px 18px calc(10px + env(safe-area-inset-bottom));background:rgba(16,16,17,.98);border-top:1px solid #343438;display:flex;justify-content:space-around;gap:4px;z-index:100;backdrop-filter:blur(10px)}.bottom-nav a{padding:7px 9px;min-width:65px;flex:1;text-align:center;display:flex;align-items:center;flex-direction:column;gap:2px;color:#9e9ea2;font-size:.65rem;border-radius:10px}.bottom-nav a.active{color:var(--accent);background:#2a241e}.nav-symbol{font-size:1.3rem;line-height:1.1}.page-intro{padding:18px 0 26px}.page-intro h1{margin:10px 0 13px}.page-intro p{color:var(--muted);font-size:.92rem}.choice-card{width:100%;display:flex;align-items:center;text-align:left;gap:13px;padding:15px;border:1px solid var(--border);border-radius:12px;background:var(--panel);color:#fff;margin-bottom:9px}.choice-card:hover,.date-card:hover,.time-chip:hover{border-color:#7e5b32}.choice-card.chosen,.date-card.chosen{border-color:var(--accent);background:var(--dark-accent);box-shadow:inset 0 0 0 1px var(--accent)}.choice-icon{width:42px;height:42px;background:#303033;border-radius:10px;flex-shrink:0;display:grid;place-items:center;color:var(--accent);font-size:1.25rem;font-weight:900}.choice-body{display:flex;flex-direction:column;flex:1}.choice-body b{font-size:.95rem}.choice-body small{font-size:.73rem;color:var(--muted);margin-top:3px}.choice-price{font-size:.85rem;white-space:nowrap;font-weight:850}.check-indicator{display:grid;place-items:center;width:22px;height:22px;border:1px solid #55555a;border-radius:50%;color:transparent;font-size:.75rem}.chosen .check-indicator{background:var(--accent);border-color:var(--accent);color:#111}.date-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;max-height:207px;overflow:auto;padding:2px}.date-card{background:#252528;border:1px solid var(--border);border-radius:9px;min-height:57px;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}.date-card small{font-size:.65rem;color:#aaa}.date-card strong{font-size:1.03rem}.time-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;min-height:76px}.time-grid .muted,.time-grid .error{grid-column:1/-1}.time-chip{background:var(--panel2);color:white;border:1px solid var(--border);border-radius:9px;padding:13px 8px}.time-chip.chosen{background:var(--accent);color:#111;border-color:var(--accent);font-weight:850}.booking-checkout{position:relative;margin:27px 0 0;background:#1b1b1e;border:1px solid #48403a;border-radius:13px;padding:14px}.booking-checkout p{font-size:.78rem;margin-bottom:11px}.muted{color:var(--muted)}.tiny{font-size:.75rem}.error{color:#f79595}.mt18{margin-top:18px}.auth-page{max-width:520px;margin:32px auto 0}.auth-page h1{margin:10px 0}.auth-page>p{color:var(--muted);margin-bottom:20px}.form-panel{padding:20px;background:var(--panel);border:1px solid var(--border);border-radius:15px;display:flex;flex-direction:column;gap:14px}.form-panel label,.filter-strip label,.four-grid label{display:flex;flex-direction:column;gap:6px;font-size:.79rem;font-weight:700;color:#cfcfd2}.form-panel input,.form-panel select,.form-panel textarea,.filter-strip input,.filter-strip select,.four-grid input{background:#101012;border:1px solid #414145;border-radius:9px;color:#fff;width:100%;min-height:43px;padding:11px 12px;outline:none;color-scheme:dark}.form-panel textarea{resize:vertical}.form-panel input:focus,.form-panel select:focus,.form-panel textarea:focus{border-color:var(--accent)}.auth-switch{text-align:center;margin-top:20px;color:var(--muted);font-size:.87rem}.auth-switch a,.text-link{color:var(--accent);font-weight:760;background:none;border:0;padding:0;font-size:.8rem}.small-note{color:#8f8f95;font-size:.74rem;margin-top:11px}.summary-card{border:1px solid var(--border);border-radius:15px;background:var(--panel);padding:10px 18px;margin:12px 0 20px}.summary-line{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid var(--border);font-size:.88rem}.summary-line:last-child{border:0}.summary-line span{color:var(--muted)}.summary-line b{text-align:right}.summary-line small{display:block;font-weight:400;color:var(--accent);font-size:.66rem}.summary-line.grand b{font-size:1.3rem;color:var(--accent)}.success-page{text-align:center;padding:24px 0}.success-page h1{margin:18px auto}.success-page>p{color:var(--muted);margin:8px 0 25px}.success-icon{border-radius:50%;background:var(--accent);height:64px;width:64px;display:grid;place-items:center;margin:0 auto 20px;font-size:2rem;color:#111}.success-page .summary-card{text-align:left}.booking-item{border:1px solid var(--border);border-radius:12px;background:var(--panel);padding:15px;margin:10px 0}.booking-item-top{display:flex;align-items:center;justify-content:space-between;gap:15px}.booking-item p{color:var(--muted);font-size:.85rem;margin:6px 0}.tag{font-size:.63rem;font-weight:800;color:#8bebbd;background:#18362b;border:1px solid #225a44;border-radius:999px;padding:5px 9px;white-space:nowrap}.tag.cancelled{color:#bcbcbc;background:#303035;border:1px solid #444}.danger-link{color:#ef9991;cursor:pointer}.empty-state{border:1px dashed var(--border);border-radius:12px;background:var(--panel);padding:25px;color:var(--muted);font-size:.87rem}.message-page{padding:70px 0;max-width:550px}.message-page h1{margin:15px 0}.message-page p{color:var(--muted);margin-bottom:25px}.admin-tabs{display:flex;gap:4px;overflow:auto;border-bottom:1px solid var(--border);margin-bottom:20px}.admin-tabs a{font-size:.79rem;color:var(--muted);font-weight:800;padding:13px 16px 12px;border-bottom:2px solid transparent;white-space:nowrap}.admin-tabs a.active{border-bottom-color:var(--accent);color:#fff}.filter-strip{display:flex;align-items:end;gap:9px;flex-wrap:wrap;padding:12px 0}.filter-strip label{min-width:120px;flex:1}.filter-strip .button{padding:12px;min-height:42px}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:13px 0}.stats>div{background:var(--panel);border:1px solid var(--border);padding:17px;border-radius:14px;display:flex;flex-direction:column;gap:6px}.stats small{color:var(--muted)}.stats b{font-size:1.75rem}.admin-booking{display:flex;gap:13px;padding:14px 0;border-bottom:1px solid var(--border)}.admin-booking-time{min-width:55px;font-weight:900;color:var(--accent)}.admin-booking-time small{display:block;font-weight:400;color:var(--muted)}.admin-booking-body{flex:1}.admin-booking p{font-size:.8rem;color:var(--muted);margin:4px 0 7px}.field-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.closure-row{display:flex;justify-content:space-between;border-bottom:1px solid var(--border);gap:20px;padding:9px 0;font-size:.79rem}.edit-card{margin:14px 0}.hours-edit{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:15px;margin-bottom:12px}.hours-edit-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.checkbox-label{color:var(--muted);font-size:.8rem}.four-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.four-grid input{padding:7px 6px;font-size:.76rem}.hours-edit .button{margin-top:12px;padding:7px 12px;min-height:36px}.uploaded-photo{width:100%;border-radius:12px;max-height:300px;object-fit:cover}
@media (max-width:520px){.shell{padding:0 15px 125px}.home-hero{height:490px}.install-hero{padding:20px 16px}.two-actions{flex-direction:column;width:100%}.features{grid-template-columns:1fr}.features>div{display:grid;grid-template-columns:34px 1fr;grid-template-rows:repeat(2,auto);padding:12px}.features span{grid-row:1/3}.date-grid{grid-template-columns:repeat(5,1fr)}.time-grid{grid-template-columns:repeat(3,1fr)}.four-grid{grid-template-columns:repeat(2,1fr)}.filter-strip .button{width:100%;justify-content:center}.bottom-nav{padding-left:6px;padding-right:6px}.bottom-nav a{min-width:58px}.stats b{font-size:1.46rem}}@media (max-width:360px){.field-grid{grid-template-columns:1fr}.time-grid{grid-template-columns:repeat(3,1fr)}.choice-card{padding:11px;gap:9px}.choice-icon{width:35px;height:35px}}

.date-card:disabled{opacity:.27;cursor:not-allowed;background:#151518;border-color:#292929}.date-card:disabled:hover{border-color:#292929}

.auto-assigned{font-size:.74rem!important;color:#ffc278!important}.transfer-form{margin:7px 0}.transfer-link{display:inline-block;min-height:30px;color:#ffad51!important}.staff-indicator{font-size:.8rem;color:var(--accent);margin:14px 0 0}.admin-booking-body form{margin-top:7px}

/* GFELLAS v2.2 — percorso prenotazione progressivo e scorrimento su mobile. */
.booking-stage[hidden], .booking-checkout[hidden] { display: none !important; }
.booking-stage, .booking-checkout { scroll-margin-top: 22px; }
#step-time { min-height: 150px; }
#days-status:not(:empty) { margin-top: 10px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* GFELLAS 2.3 — Evita che il logo e l'utente finiscano sotto la Dynamic Island
   o la barra di stato quando la PWA è aperta dalla schermata Home iPhone.
   Nessun margine aggiuntivo in Safari normale o su desktop. */
@media (max-width: 768px) {
  html.gfellas-standalone .shell {
    padding-top: max(58px, calc(env(safe-area-inset-top, 0px) + 9px));
  }
}

/* GFELLAS 3.0 — Grafite e argento satinato. Il logo PNG e le icone Home
   restano completamente originali (compreso il loro arancione). */
:root {
  --accent: #adb6c2;
  --dark-accent: #29313b;
  --border: #373a3f;
  --panel: #191b1f;
  --panel2: #25282d;
  --muted: #afb1b7;
}
.auto-assigned{color:#c1c9d4!important}
.transfer-link{color:#bfcbd9!important}
.staff-heading{padding-bottom:10px}
.staff-heading h1{margin-bottom:12px}
.staff-calendar,.finance-panel{
  background:linear-gradient(145deg,#202328 0%,#18191c 80%);
  border:1px solid #3a3e45;border-radius:20px;padding:22px;
  margin:12px 0 22px;box-shadow:0 12px 32px rgba(0,0,0,.13);
}
.calendar-titlebar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.calendar-titlebar h2{font-size:clamp(1.27rem,4.9vw,1.72rem);margin:3px 0 0;font-weight:850;letter-spacing:-.035em;text-transform:capitalize}
.calendar-controls{display:flex;gap:7px;align-items:center;flex-shrink:0}
.calendar-controls a{display:grid;place-items:center;min-width:42px;height:42px;padding:0 10px;border-radius:11px;border:1px solid #4a4e55;color:#f6f8fa;background:#272b30;font-size:1.14rem;font-weight:750}
.calendar-controls a:hover,.calendar-controls a:focus-visible{border-color:var(--accent)}
.calendar-controls .calendar-today{font-size:.76rem;min-width:48px}
.calendar-filters{display:flex;gap:7px;margin:0 0 14px;flex-wrap:wrap}
.calendar-filters a{padding:9px 13px;border:1px solid #42474f;border-radius:99px;color:#b8bec7;font-weight:750;font-size:.77rem}
.calendar-filters a.active{background:var(--accent);border-color:var(--accent);color:#111720}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.calendar-weekday{text-align:center;color:#b9bdc5;font-size:.69rem;font-weight:850;text-transform:uppercase;padding:7px 0}
.calendar-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;aspect-ratio:1/1;min-height:41px;border:1px solid #373b42;border-radius:11px;background:#25282e;color:#f5f6f8;font-size:.92rem;font-weight:800;touch-action:manipulation}
.calendar-day:hover,.calendar-day:focus-visible{border-color:#ccd2db;background:#343a43}
.calendar-day.today{border-color:#b7c0cc}
.calendar-day.selected{background:var(--accent);color:#14171b;border-color:var(--accent)}
.calendar-day.outside{opacity:.30;pointer-events:none;background:transparent;border-color:transparent}
.calendar-event-dot{width:5px;height:5px;border-radius:50%;background:var(--accent);display:inline-block;flex-shrink:0}
.calendar-day.selected .calendar-event-dot{background:#232b35}
.calendar-legend{display:flex;align-items:center;gap:7px;font-size:.73rem;color:var(--muted);margin:13px 0 0}
.agenda-title{display:flex;align-items:end;justify-content:space-between;gap:12px}
.booking-actions{display:flex;gap:7px 14px;align-items:center;flex-wrap:wrap;margin-top:12px}
.booking-actions form{margin:0}
.booking-actions button{cursor:pointer}
.button.mini-action{min-height:37px;padding:8px 12px;font-size:.75rem;border:1px solid #58616f;border-radius:9px;color:#e9edf3;background:#303842;font-weight:800}
.payment-confirmed{display:inline-flex;align-items:center;border-radius:7px;padding:4px 8px;color:#d3f1dc;background:#1d3a2c;border:1px solid #2a5c41;font-size:.73rem;font-weight:800}
.finance-summary{display:grid;grid-template-columns:2fr 1fr;gap:9px;margin:18px 0}
.finance-summary>div{background:#262b31;border:1px solid #3c424a;border-radius:13px;padding:17px;display:flex;flex-direction:column;gap:5px}
.finance-summary small,.finance-person small{display:block;color:var(--muted);font-size:.74rem}
.finance-summary strong{font-size:clamp(1.5rem,5.2vw,2.1rem);font-weight:850;letter-spacing:-.03em;white-space:nowrap}
.finance-breakdown{display:grid;gap:9px}
.finance-person{border:1px solid #3f444b;border-radius:12px;padding:13px 15px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.finance-person b{font-size:.93rem}
.finance-person strong{font-size:1.05rem;white-space:nowrap}
.finance-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:17px}
.finance-actions a{font-size:.82rem;min-height:40px;padding:9px 13px}
.finance-record{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 0;border-bottom:1px solid var(--border)}
.finance-record-main{display:flex;flex-direction:column;gap:2px;min-width:0;overflow-wrap:anywhere}
.finance-record-main b{font-size:.96rem}
.finance-record-main small{color:var(--muted);font-size:.77rem}
.finance-record strong{white-space:nowrap;font-size:1.05rem}
.refund-warning{color:#f0bbac!important}
@media (max-width:520px){
  .staff-calendar,.finance-panel{padding:14px 11px;border-radius:17px;margin-top:7px}
  .calendar-titlebar{gap:6px}
  .calendar-controls{gap:4px}
  .calendar-controls a{height:37px;min-width:37px;padding:0 7px}
  .calendar-controls .calendar-today{min-width:43px}
  .calendar-grid{gap:3px}
  .calendar-day{min-height:38px;border-radius:8px;font-size:.85rem}
  .calendar-weekday{font-size:.62rem}
  .calendar-filters a{padding:8px 10px}
  .agenda-title{align-items:center}
  .agenda-title .text-link{font-size:.72rem}
  .finance-summary>div{padding:12px}
  .finance-person{padding:12px}
  .finance-actions{display:grid;grid-template-columns:1fr 1fr}
  .finance-actions a{font-size:.74rem;min-width:0;text-align:center;padding:9px 6px}
  .booking-actions .text-link{padding:4px 0;display:inline-block;min-height:30px}
}
@media (max-width:355px){
  .calendar-day{min-height:34px}
  .finance-summary strong{font-size:1.35rem}
  .calendar-titlebar h2{font-size:1.2rem}
}

/* Vista mensile per i clienti, coerente con l'agenda del personale. */
.booking-month-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 16px}
.booking-month-bar h3{font-size:1.3rem;font-weight:850;letter-spacing:-.025em;margin:3px 0;text-transform:capitalize}
.booking-month-bar .calendar-controls button{display:grid;place-items:center;height:42px;width:46px;border:1px solid #515762;background:#252c33;color:#fff;border-radius:11px;font-size:1.16rem;font-weight:850;cursor:pointer}
.booking-month-bar .calendar-controls button:disabled{opacity:.25;cursor:not-allowed}
.booking-weekdays,.booking-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.booking-weekdays span{text-align:center;color:#aeb4bc;font-size:.7rem;font-weight:800;padding:5px 0}
.booking-month-grid .booking-calendar-day{width:100%;min-width:0;min-height:43px;aspect-ratio:1 / 1;border-radius:10px;border:1px solid #3a4149;background:#24282f;color:#eef0f3;display:grid;place-items:center;font-size:.95rem;font-weight:800;padding:0;margin:0;cursor:pointer}
.booking-month-grid .booking-calendar-day.chosen{background:var(--accent);border-color:var(--accent);color:#12181e}
.booking-month-grid .booking-calendar-day:disabled{opacity:.22;background:#1b1d22;color:#babec5;cursor:not-allowed}
.booking-month-grid .booking-calendar-day:focus-visible{outline:2px solid #e4e9f2;outline-offset:2px}
.booking-empty-day{aspect-ratio:1 / 1;min-width:0}
@media(max-width:520px){.booking-weekdays,.booking-month-grid{gap:4px}.booking-month-grid .booking-calendar-day{min-height:36px;border-radius:8px;font-size:.85rem}.booking-month-bar h3{font-size:1.2rem}}


/* GFELLAS 3.1 — ritorno dei richiami arancioni, mantenendo la base grafite/argento. */
:root {
  --brand-orange: #ff8a1f;
  --brand-orange-strong: #ff6f00;
  --brand-orange-soft: rgba(255,138,31,.12);
  --brand-orange-glow: rgba(255,138,31,.22);
  --brand-orange-line: rgba(255,138,31,.36);
}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:var(--brand-orange)}
h1 em,h2 em,.eyebrow,.step-number,.features span,.text-link,.summary-line small,.summary-line.grand b,.admin-booking-time,.staff-indicator{color:var(--brand-orange)}
.eyebrow-line,.calendar-event-dot{background:var(--brand-orange)}
.topbar{border-bottom-color:#3a342f}
.header-link{border-color:#4a4139;box-shadow:inset 0 0 0 1px transparent;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
.header-link:hover,.header-link:focus-visible{border-color:var(--brand-orange);box-shadow:0 0 0 3px var(--brand-orange-soft);transform:translateY(-1px)}
.button{transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease}
.button:hover{transform:translateY(-1px)}
.button.primary{background:linear-gradient(135deg,var(--brand-orange) 0%,#ffb05e 100%);color:#17110b;box-shadow:0 12px 28px rgba(255,138,31,.18)}
.button.primary:hover{background:linear-gradient(135deg,#ff962f 0%,#ffc178 100%)}
.button.outlined,.button.subtle{border-color:#5c4b3e}
.button.outlined:hover,.button.subtle:hover,.button.mini-action:hover{border-color:var(--brand-orange);box-shadow:0 0 0 3px var(--brand-orange-soft)}
.notice{border-left-color:var(--brand-orange);background:#2a221c}
.features>div,.summary-card,.booking-item,.empty-state,.form-panel,.hours-edit,.stats>div,.admin-panel,.message-page,.booking-checkout,.staff-calendar,.finance-panel{position:relative}
.features>div::before,.summary-card::before,.booking-item::before,.empty-state::before,.form-panel::before,.hours-edit::before,.stats>div::before,.staff-calendar::before,.finance-panel::before{
  content:'';position:absolute;left:0;right:0;top:0;height:1px;border-radius:inherit;
  background:linear-gradient(90deg,transparent 0%,rgba(255,138,31,.78) 18%,rgba(255,255,255,.14) 70%,transparent 100%);
}
.bottom-nav{border-top-color:#3e342a}
.bottom-nav a.active{color:var(--brand-orange);background:rgba(255,138,31,.12)}
.choice-card,.date-card,.time-chip,.booking-month-grid .booking-calendar-day,.calendar-day,.calendar-controls a,.booking-month-bar .calendar-controls button,.calendar-filters a,.gfi-platform,.finance-person,.finance-summary>div{transition:border-color .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease,transform .18s ease}
.choice-card:hover,.date-card:hover,.time-chip:hover,.booking-month-grid .booking-calendar-day:hover,.calendar-day:hover,.calendar-controls a:hover,.booking-month-bar .calendar-controls button:hover,.calendar-filters a:hover{border-color:var(--brand-orange);box-shadow:0 0 0 3px var(--brand-orange-soft)}
.choice-card.chosen,.date-card.chosen{border-color:var(--brand-orange);background:linear-gradient(180deg,#2e261d 0%,#241d17 100%);box-shadow:inset 0 0 0 1px var(--brand-orange),0 0 0 3px rgba(255,138,31,.06)}
.choice-card.chosen .choice-body small,.date-card.chosen small{color:#f8c995}
.choice-icon{background:linear-gradient(180deg,#33281e 0%,#2a221b 100%);color:var(--brand-orange);box-shadow:inset 0 0 0 1px rgba(255,138,31,.18)}
.chosen .check-indicator,.time-chip.chosen{background:linear-gradient(135deg,var(--brand-orange) 0%,#ffb15f 100%);border-color:var(--brand-orange);color:#17120d;font-weight:850}
.time-chip.chosen{box-shadow:0 8px 18px rgba(255,138,31,.16)}
.booking-checkout{border-color:#6d5338;background:linear-gradient(180deg,#1f1a16 0%,#1b1b1e 100%)}
.form-panel input:focus,.form-panel select:focus,.form-panel textarea:focus,.filter-strip input:focus,.filter-strip select:focus,.four-grid input:focus{border-color:var(--brand-orange);box-shadow:0 0 0 3px var(--brand-orange-soft)}
.form-panel input,.form-panel select,.form-panel textarea,.filter-strip input,.filter-strip select,.four-grid input{transition:border-color .18s ease,box-shadow .18s ease}
.admin-tabs a.active{border-bottom-color:var(--brand-orange);color:#fff}
.stats b,.finance-summary strong,.finance-person strong{color:#fff}
.tag{background:#3b2a17;border-color:#8e5a24;color:#ffd7a8}
.staff-calendar,.finance-panel{border-color:#534135;box-shadow:0 14px 34px rgba(0,0,0,.16),0 0 0 1px rgba(255,138,31,.04)}
.calendar-titlebar h2,.booking-month-bar h3{color:#fff}
.calendar-controls a,.booking-month-bar .calendar-controls button{border-color:#635344;background:#2b2f35}
.calendar-controls a:hover,.calendar-controls a:focus-visible,.booking-month-bar .calendar-controls button:hover,.booking-month-bar .calendar-controls button:focus-visible{border-color:var(--brand-orange);background:#342c25}
.calendar-filters a.active{background:var(--brand-orange);border-color:var(--brand-orange);color:#15110c}
.calendar-day.today,.booking-month-grid .booking-calendar-day:not(:disabled).today{border-color:var(--brand-orange);box-shadow:inset 0 0 0 1px rgba(255,138,31,.2)}
.calendar-day.selected,.booking-month-grid .booking-calendar-day.chosen{background:linear-gradient(135deg,var(--brand-orange) 0%,#ffb15f 100%);border-color:var(--brand-orange);color:#17120d}
.calendar-day.selected .calendar-event-dot{background:#332012}
.finance-summary>div,.finance-person{border-color:#5a473a;background:linear-gradient(180deg,#2a2d33 0%,#22252a 100%)}
.finance-actions a.button.outlined{border-color:#6a513a}
.gfi-picker{border-top-color:#4b3b2f}
@media (max-width:520px){
  .features>div::before,.summary-card::before,.booking-item::before,.empty-state::before,.form-panel::before,.hours-edit::before,.stats>div::before,.staff-calendar::before,.finance-panel::before{left:10px;right:10px}
}

/* GFELLAS 3.2: stato concluso automaticamente, non necessariamente incassato. */
.tag.completed{color:#ffd2a2;border-color:#b66b26;background:#3a291b}

/* GFELLAS 3.2 — storno gestionale per mancata presentazione. */
.tag.absent{background:#40241f;border:1px solid #a95447;color:#ffd0c7}
.booking-actions .danger-link{border:1px solid rgba(239,153,145,.45);padding:8px 10px;border-radius:8px;min-height:36px}
.booking-actions .danger-link:hover{border-color:#f4a399;background:rgba(244,140,130,.08)}

.finance-manual-details{margin-top:14px;border-top:1px solid #474039;padding-top:14px}
.finance-manual-details>summary{cursor:pointer;color:#d9dce1;font-size:.81rem;font-weight:750;padding:6px 0}
.finance-manual-details>summary:hover{color:var(--brand-orange)}
