*{box-sizing:border-box} :root{--bg:#f3f5f6;--panel:#fff;--text:#172126;--sidebar-text:#172126;--muted:#6e7a80;--line:#e2e7e9;--primary:#245c4a;--primary-strong:#17392f;--soft:#e3eee9;--sidebar:#13231d;--shadow:0 12px 32px rgba(20,30,35,.07)}
[data-theme=dark]{--bg:#0e1417;--panel:#171f23;--text:#eef3f5;--muted:#9ca8ae;--line:#2a353a;--soft:color-mix(in srgb,var(--primary) 22%,transparent);--primary-strong:color-mix(in srgb,var(--primary) 62%,#000);--sidebar:color-mix(in srgb,var(--secondary) 78%,#000);--shadow:0 12px 32px rgba(0,0,0,.25)}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}.app{display:flex;min-height:100vh}
.sidebar{width:250px;position:fixed;inset:0 auto 0 0;background:var(--sidebar);color:var(--sidebar-text);padding:20px 14px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:12px;padding:3px 8px 22px}.logo{width:42px;height:42px;border-radius:13px;background:white;color:#17382e;display:grid;place-items:center;font-weight:800}.brand strong,.brand small,.profile strong,.profile small{display:block}.brand small,.profile small{color:var(--sidebar-text);margin-top:3px;font-size:12px}
nav{display:flex;flex-direction:column;gap:5px;flex:1}.nav{border:0;background:transparent;color:var(--sidebar-text);text-align:left;padding:11px 12px;border-radius:10px}.nav:hover,.nav.active{background:rgba(255,255,255,.1);color:var(--sidebar-text)}.profile{display:flex;gap:10px;align-items:center;border-top:1px solid rgba(255,255,255,.1);padding:16px 8px 0}.avatar{width:38px;height:38px;border-radius:50%;background:#2d5b4d;display:grid;place-items:center;font-weight:700}
main{margin-left:250px;width:calc(100% - 250px)}header{height:80px;background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:0 26px}.head-left,.actions{display:flex;gap:10px;align-items:center}header h1{margin:0;font-size:22px}header p{margin:4px 0 0;color:var(--muted);font-size:13px}.icon{width:40px;height:40px;border-radius:10px;border:1px solid var(--line);background:var(--panel);color:var(--text);cursor:pointer}.mobile{display:none}
.content{padding:25px;max-width:1600px;margin:auto}.page{display:none}.page.active{display:block}.hero{background:linear-gradient(125deg,var(--primary-strong),var(--primary));color:white;border-radius:20px;padding:26px 28px;display:flex;justify-content:space-between;align-items:end;margin-bottom:18px;box-shadow:var(--shadow)}.hero span,.booking-title span{font-size:12px;letter-spacing:.12em;font-weight:800;opacity:.8}.hero h2{font-size:30px;margin:8px 0}.hero p{margin:0;color:#dbe8e3}
.btn{border:0;border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer}.primary{background:var(--primary);color:white}.ghost{background:var(--panel);border:1px solid var(--line);color:var(--text)}.white{background:white;color:#183a30}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:18px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow)}.stat small{color:var(--muted)}.stat strong{font-size:27px;display:block;margin:8px 0}.delta{font-size:12px;color:var(--primary)}
.two{display:grid;grid-template-columns:1.2fr 1fr;gap:18px;margin-bottom:18px}.three{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{background:var(--panel);border:1px solid var(--line);border-radius:17px;padding:19px;box-shadow:var(--shadow)}.card h3{margin:0 0 12px}.card p{color:var(--muted);font-size:13px}.card-head{display:flex;justify-content:space-between}.no-pad{padding:0;overflow:hidden}
.row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);gap:12px}.row:last-child{border-bottom:0}.time{background:var(--soft);color:var(--primary);padding:8px;border-radius:9px;font-weight:800;margin-right:10px}.row-left{display:flex;align-items:center}.muted{font-size:12px;color:var(--muted)}
.badge{display:inline-block;background:var(--soft);color:var(--primary);border-radius:50px;padding:5px 8px;font-size:11px;font-weight:700}.danger{background:#fde5e5;color:#b63f3f}.warn{background:#fff0d4;color:#9b6513}.progress-line{margin:14px 0}.progress-label{display:flex;justify-content:space-between;font-size:13px;margin-bottom:6px}.progress{height:8px;background:var(--soft);border-radius:8px;overflow:hidden}.progress span{display:block;height:100%;background:var(--primary)}
.bars{height:220px;display:flex;align-items:end;gap:12px;padding-top:15px}.bar-col{flex:1;text-align:center;font-size:11px;color:var(--muted)}.bar{background:var(--primary);border-radius:8px 8px 3px 3px;min-height:8px;margin-bottom:7px}.bars.big{height:300px}
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px}.toolbar h2{margin:0}.toolbar p{margin:4px 0 0;color:var(--muted);font-size:13px}.toolbar-right{display:flex;gap:9px}.toolbar input{max-width:360px}.segmented{display:flex;border:1px solid var(--line);background:var(--panel);padding:4px;border-radius:11px}.seg{border:0;background:transparent;color:var(--muted);padding:8px 13px;border-radius:8px;cursor:pointer}.seg.active{background:var(--primary);color:white}
input,select,textarea{width:100%;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:10px 11px;color:var(--text);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--primary)}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:820px}th,td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line);font-size:13px}th{background:var(--bg);color:var(--muted);font-size:12px}tbody tr:hover{background:var(--bg)}
.cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.mini-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow)}.mini-card h3{margin:12px 0 5px}.price{font-size:23px;font-weight:800}.chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.person{display:flex;gap:11px;align-items:center}.person-icon{width:46px;height:46px;border-radius:14px;background:var(--soft);color:var(--primary);display:grid;place-items:center;font-weight:800}
.agenda-grid{display:grid;grid-template-columns:70px repeat(4,1fr);min-width:900px}.a-head,.a-time,.a-cell{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:10px}.a-head{background:var(--bg);font-weight:700}.a-time{text-align:center;color:var(--muted);font-size:12px}.a-cell{min-height:68px}.event{background:var(--soft);border-left:4px solid var(--primary);border-radius:9px;padding:8px;font-size:12px;margin-bottom:5px;cursor:pointer}.event strong{display:block}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:9px;padding:15px}.day{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:10px;min-height:180px}.day h4{margin:0 0 10px}.mini-event{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:7px;font-size:11px;margin-bottom:6px}
.shift-table{display:grid;grid-template-columns:150px repeat(7,1fr);min-width:980px}.shift-cell{padding:11px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);font-size:12px}.shift-head{background:var(--bg);font-weight:700}.shift-block{background:var(--soft);color:var(--primary);padding:7px;border-radius:7px}
.booking{max-width:900px;margin:auto}.booking-title{text-align:center;padding:10px 0 20px}.booking-title h2{font-size:30px;margin:8px}.booking-title p{color:var(--muted)}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}.step{background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:11px;text-align:center;color:var(--muted)}.step.active{background:var(--soft);border-color:var(--primary);color:var(--primary);font-weight:700}.booking-card{min-height:310px}.option-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:15px}.option{background:var(--bg);border:1px solid var(--line);border-radius:13px;padding:15px;text-align:left;color:var(--text);cursor:pointer}.option:hover{border-color:var(--primary)}.option strong,.option span{display:block}.option span{color:var(--muted);font-size:12px;margin-top:5px}.slots{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:12px}.slot{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:9px;color:var(--text);cursor:pointer}.slot.off{opacity:.3;text-decoration:line-through;pointer-events:none}.booking-actions{display:flex;justify-content:space-between;margin-top:20px}.summary{background:var(--bg);border:1px solid var(--line);border-radius:11px;padding:13px;margin-bottom:15px}
.settings{display:grid;grid-template-columns:1fr 1fr;gap:17px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.form-grid label,.modal label{font-size:12px;color:var(--muted)}.form-grid input,.modal input,.modal select,.modal textarea{margin-top:5px}.switch{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}.switch input{width:auto}.theme-cards{display:flex;gap:10px}.theme-cards button{flex:1;padding:20px;background:var(--bg);border:1px solid var(--line);border-radius:11px;color:var(--text);font-size:24px}.theme-cards span{display:block;font-size:12px;margin-top:7px}
.modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:100;align-items:center;justify-content:center;padding:16px}.modal-bg.open{display:flex}.modal{width:min(620px,100%);background:var(--panel);border-radius:17px;max-height:90vh;overflow:auto}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:18px;border-bottom:1px solid var(--line)}.modal-head h3{margin:0}.modal-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.modal form{padding:18px}.modal-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.full{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.toast{position:fixed;right:18px;bottom:18px;background:var(--sidebar);color:white;padding:12px 15px;border-radius:10px;opacity:0;transform:translateY(8px);transition:.2s;z-index:200}.toast.show{opacity:1;transform:none}
@media(max-width:1050px){.stats{grid-template-columns:1fr 1fr}.cards-grid{grid-template-columns:1fr 1fr}.three{grid-template-columns:1fr 1fr}.three .card:last-child{grid-column:1/-1}}
@media(max-width:800px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}main{margin-left:0;width:100%}.mobile{display:block}header{height:72px;padding:0 13px}.content{padding:13px}.actions .ghost{display:none}.two,.three,.settings{grid-template-columns:1fr}.three .card:last-child{grid-column:auto}.hero{display:block}.hero h2{font-size:24px}.hero .white{margin-top:17px}.toolbar{align-items:stretch;flex-direction:column}.toolbar-right{display:flex}.cards-grid{grid-template-columns:1fr}.option-grid{grid-template-columns:1fr}.slots{grid-template-columns:repeat(3,1fr)}.steps span{display:none}}
@media(max-width:500px){.stats{grid-template-columns:1fr}.actions .primary{display:none}.form-grid,.modal-grid{grid-template-columns:1fr}.full{grid-column:auto}.slots{grid-template-columns:repeat(2,1fr)}}

/* King Diffusion V1 prototype enhancements */
.event{height:var(--event-height,48px);min-height:48px;box-sizing:border-box;position:relative;z-index:3;overflow:hidden;display:flex;flex-direction:column;gap:2px;cursor:pointer}.event span,.event small{font-size:11px;opacity:.82}.a-cell{position:relative}.off-cell{background:rgba(120,120,120,.05)}.absence-label{position:absolute;inset:8px;display:flex;align-items:center;justify-content:center;font-size:11px;opacity:.55}.availability-hint{padding:2px 0}.empty{padding:20px;text-align:center;color:var(--muted,#777)}.card-actions{margin-top:14px;display:flex;justify-content:flex-end;gap:8px}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}.check{display:flex;gap:7px;align-items:center;font-weight:500}.client-summary{padding:12px;border-radius:12px;background:rgba(127,127,127,.08)}.shift-note{margin:10px 0 0}.theme-cards{display:flex;gap:10px;flex-wrap:wrap}.theme-cards button{min-width:90px}.slot:disabled{opacity:.38;cursor:not-allowed}.slot.off{pointer-events:none}.booking-actions{display:flex;justify-content:space-between;gap:10px;margin-top:18px}.mini-event{cursor:pointer}.mini-event:hover{transform:translateY(-1px)}
@media(max-width:760px){.check-grid{grid-template-columns:1fr}.event{font-size:11px}.event small{display:none}}

/* Personalizzazione colori */
.settings-help{margin:0 0 12px}.color-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.color-setting{display:flex;flex-direction:column;gap:7px;color:var(--text);font-size:13px;font-weight:700}.color-setting input[type=color]{width:100%;height:46px;padding:4px;cursor:pointer;border-radius:10px}.color-setting small{font-weight:400;color:var(--muted);font-size:11px}.palette-presets{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px}.palette-chip{display:flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:999px;padding:7px 10px;cursor:pointer;font-size:12px}.palette-chip:hover{border-color:var(--primary)}.palette-chip i{width:15px;height:15px;border-radius:50%;display:block}.color-grid input[type=color]::-webkit-color-swatch-wrapper{padding:0}.color-grid input[type=color]::-webkit-color-swatch{border:0;border-radius:7px}@media(max-width:500px){.color-grid{grid-template-columns:1fr}}

/* Appuntamenti: ricerca, servizi multipli e priorità */
.search-select{display:flex;flex-direction:column;gap:6px}.search-select input[type=search]{margin-top:0}.appointment-services{grid-template-columns:repeat(2,minmax(0,1fr));max-height:220px;overflow:auto;padding:4px}.service-check{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);align-items:flex-start}.service-check input{margin-top:3px}.service-check small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.priority-event{box-shadow:inset 3px 0 0 #e6a700}.priority-icon{font-size:12px;margin-right:3px}.priority-event strong{display:flex;align-items:center}.search-select select{margin-bottom:0}
@media(max-width:760px){.appointment-services{grid-template-columns:1fr}}

/* Scheda cliente avanzata - stile CRM */
.client-profile-bg{display:none;position:fixed;inset:0;background:var(--panel);z-index:150;overflow:auto}.client-profile-bg.open{display:block}.client-profile{min-height:100vh;background:var(--panel);color:var(--text)}
.client-profile-head{height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel);z-index:5}.client-profile-title{display:flex;align-items:center;gap:12px}.client-profile-title h2{font-size:18px;margin:0}.client-profile-title p{font-size:12px;color:var(--muted);margin:3px 0 0}.client-close{border:0;background:transparent;color:var(--muted);font-size:27px;line-height:1;cursor:pointer;width:34px;height:34px;border-radius:8px}.client-close:hover{background:var(--bg);color:var(--text)}
.client-main-tabs{display:flex;gap:26px;padding:0 28px;border-bottom:1px solid var(--line);overflow-x:auto;white-space:nowrap;background:var(--panel)}.client-tab{border:0;background:transparent;color:var(--muted);padding:16px 0 13px;font-size:11px;font-weight:800;letter-spacing:.08em;cursor:pointer;position:relative}.client-tab.active{color:var(--primary)}.client-tab.active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--primary)}
.client-sub-tabs{display:flex;gap:28px;padding:0 16px;border-bottom:1px solid var(--line);overflow-x:auto;background:var(--panel);min-height:43px}.client-sub-tab{border:0;background:transparent;color:var(--muted);font-size:11px;font-weight:700;padding:12px 8px;cursor:pointer;white-space:nowrap}.client-sub-tab.active{color:var(--primary);font-weight:900;border-bottom:2px solid var(--primary)}
.client-profile-content{padding:0 16px 30px;min-width:920px}.client-sheet{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel);margin-top:14px}.client-sheet-title{background:var(--soft);font-weight:900;font-size:12px;letter-spacing:.03em;padding:12px;border-bottom:1px solid var(--line)}.client-sheet-grid{display:grid;grid-template-columns:repeat(3,1fr)}.client-sheet-col{min-width:0;border-right:1px solid var(--line)}.client-sheet-col:last-child{border-right:0}.client-sheet-head{background:var(--bg);padding:10px 12px;font-weight:800;font-size:11px;border-bottom:1px solid var(--line)}.client-field{display:grid;grid-template-columns:90px 1fr;min-height:43px;border-bottom:1px dashed var(--line)}.client-field:last-child{border-bottom:0}.client-field label{padding:11px 9px;font-size:11px;font-weight:800;color:var(--text)}.client-field input,.client-field select,.client-field textarea{border:0;border-left:1px solid var(--line);border-radius:0;background:transparent;padding:10px 9px;font-size:12px;color:var(--text);outline:0}.client-field textarea{resize:vertical;min-height:62px}.client-field input:focus,.client-field select:focus,.client-field textarea:focus{background:var(--bg);box-shadow:none}.client-check{display:flex;align-items:center;gap:8px;padding:10px 12px;font-size:12px;border-bottom:1px dashed var(--line)}.client-check input{width:auto}.client-note{padding:12px;color:var(--muted);font-size:12px;background:var(--bg)}
.client-color-grid{display:grid;grid-template-columns:1fr 1fr 1fr;min-width:1100px}.client-color-panel{border-right:1px solid var(--line)}.client-color-panel:last-child{border-right:0}.client-color-panel.green .client-sheet-head{background:var(--client-crown)}.client-color-panel.gray .client-sheet-head{background:var(--client-color)}.client-color-panel.gold .client-sheet-head{background:var(--client-tonal)}.client-color-table{display:grid;grid-template-columns:128px 1fr 1fr}.client-color-table>div{min-height:44px;border-bottom:1px dotted #aaa;border-right:1px solid var(--line);padding:9px;font-size:11px}.client-color-table>div:nth-child(3n){border-right:0}.client-color-table .head{font-weight:900;background:var(--bg);font-size:10px;text-transform:uppercase}.client-color-table input,.client-color-table select{width:100%;border:0;background:transparent;padding:2px;font-size:11px;color:var(--text);outline:0}.tone-check{display:flex;gap:7px;align-items:center}.tone-check input{width:auto}.client-color-bottom{display:grid;grid-template-columns:1fr 1fr 1fr;border-top:1px solid var(--line)}.client-color-bottom>div{padding:9px;border-right:1px solid var(--line);font-size:10px}.client-color-bottom>div:last-child{border-right:0}
.client-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:14px}.client-info-card{border:1px solid var(--line);border-radius:12px;background:var(--panel);overflow:hidden}.client-info-card h3{margin:0;padding:12px;background:var(--bg);font-size:12px}.client-info-card .body{padding:12px}.client-stat-row{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--line);font-size:12px}.client-stat-row:last-child{border-bottom:0}.client-history{width:100%;border-collapse:collapse}.client-history th,.client-history td{padding:10px 12px;font-size:11px;border-bottom:1px solid var(--line)}.client-history th{background:var(--bg)}
@media(max-width:900px){.client-profile-content{min-width:760px}.client-main-tabs{gap:18px}.client-sub-tabs{gap:15px}.client-sheet-grid,.client-info-grid{grid-template-columns:1fr}.client-color-grid{grid-template-columns:1fr;min-width:0}.client-color-panel{border-right:0;border-bottom:1px solid var(--line)}.client-color-table{grid-template-columns:100px 1fr 1fr}}

/* Personalizzazione colori scheda cliente */
.client-main-tabs .client-tab.active,.client-sub-tab.active{color:var(--client-accent);border-bottom-color:var(--client-accent)}
.client-sheet-title{background:var(--client-sheet-title)}
.client-colors-settings{display:flex;align-items:center;gap:10px;margin-top:12px}.client-colors-settings small{color:var(--muted);font-size:11px}.client-colors-modal .color-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.client-color-presets{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.modal-inline-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}@media(max-width:560px){.client-colors-modal .color-grid{grid-template-columns:1fr}.modal-inline-actions{align-items:flex-start;flex-direction:column}}

/* V3 - selezione servizi stile cassa/prenotazione */
.appointment-builder{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px;min-width:900px}.appointment-builder-main{min-width:0}.appointment-top-fields{grid-template-columns:1fr 1fr;margin-bottom:12px}.service-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 10px;padding:0 2px}.service-picker-head small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.service-picker-shortcuts{display:flex;gap:7px}.picker-shortcut{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:9px;padding:8px 10px;font-size:10px;font-weight:800;cursor:pointer}.picker-shortcut:hover,.picker-shortcut.active{border-color:var(--primary);color:var(--primary)}.service-picker{display:grid;grid-template-columns:185px minmax(0,1fr);gap:10px;min-height:310px}.service-categories{border:1px solid var(--line);border-radius:10px;background:var(--bg);padding:5px;overflow:auto;max-height:360px}.service-category{width:100%;display:flex;align-items:center;justify-content:space-between;border:1px solid transparent;background:transparent;color:var(--text);border-radius:9px;padding:12px 10px;margin-bottom:4px;text-align:left;font-size:11px;font-weight:800;cursor:pointer}.service-category:hover{background:var(--panel);border-color:var(--line)}.service-category.active{background:linear-gradient(90deg,var(--soft),var(--panel));border-color:var(--primary);color:var(--primary)}.service-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;align-content:start;border:1px solid var(--line);border-radius:10px;padding:9px;overflow:auto;max-height:360px}.service-choice{position:relative;display:block;border:1px solid var(--line);border-left:4px solid var(--primary);border-radius:11px;background:var(--panel);min-height:74px;padding:10px;cursor:pointer;transition:.15s}.service-choice:hover{transform:translateY(-1px);border-color:var(--primary)}.service-choice.selected{background:var(--soft);box-shadow:inset 0 0 0 1px var(--primary)}.service-choice input{position:absolute;right:9px;top:9px;width:auto}.service-choice-content{display:flex;flex-direction:column;gap:5px;padding-right:18px}.service-choice-content b{font-size:11px}.service-choice-content small{color:var(--muted);font-size:10px}.service-choice-content strong{font-size:12px}.appointment-summary{border:1px solid var(--primary);border-radius:11px;background:var(--panel);padding:12px;display:flex;flex-direction:column;min-height:390px}.summary-head{display:flex;justify-content:space-between;align-items:center;font-weight:900;font-size:14px}.icon-btn{border:0;background:transparent;color:var(--muted);cursor:pointer}.summary-meta{display:flex;gap:7px;flex-wrap:wrap;margin:9px 0 12px}.summary-meta span{border:1px solid var(--line);border-radius:999px;padding:5px 7px;font-size:10px}.summary-list{display:flex;flex-direction:column;gap:7px;flex:1;overflow:auto}.summary-item{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px dashed var(--line);font-size:11px}.summary-item span{display:flex;flex-direction:column}.summary-item small{color:var(--muted);margin-top:3px}.summary-empty{color:var(--muted);font-size:11px;padding:18px 0;text-align:center}.summary-total{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:10px;margin-top:8px;font-size:12px}.summary-total b{font-size:18px}.summary-time,.summary-operator{font-size:10px;color:var(--muted);margin-top:5px}.appointment-bottom-fields{margin-top:12px}.client-color-table>div:nth-child(3n+1),.client-color-table>div:nth-child(3n+2),.client-color-table>div:nth-child(3n){min-width:0}.client-color-table input{box-sizing:border-box}.client-color-table input:focus{background:var(--bg);box-shadow:inset 0 0 0 1px var(--client-accent)}
@media(max-width:1050px){.appointment-builder{grid-template-columns:1fr}.appointment-summary{min-height:240px}.service-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.appointment-builder{min-width:0}.appointment-top-fields{grid-template-columns:1fr}.service-picker{grid-template-columns:1fr}.service-categories{max-height:190px}.service-cards{max-height:none;grid-template-columns:1fr}.service-picker-head{align-items:flex-start;flex-direction:column}.appointment-summary{min-height:220px}}

/* V3 - servizio appuntamento stile cassa */
.appointment-builder{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px;min-width:900px}.appointment-builder-main{min-width:0}.appointment-top-fields{grid-template-columns:1fr 1fr;margin-bottom:12px}.service-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 10px;padding:0 2px}.service-picker-head small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.service-picker-shortcuts{display:flex;gap:7px}.picker-shortcut{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:9px;padding:8px 10px;font-size:10px;font-weight:800;cursor:pointer}.picker-shortcut:hover,.picker-shortcut.active{border-color:var(--primary);color:var(--primary)}.service-picker{display:grid;grid-template-columns:185px minmax(0,1fr);gap:10px;min-height:310px}.service-categories{border:1px solid var(--line);border-radius:10px;background:var(--bg);padding:5px;overflow:auto;max-height:360px}.service-category{width:100%;display:flex;align-items:center;justify-content:space-between;border:1px solid transparent;background:transparent;color:var(--text);border-radius:9px;padding:12px 10px;margin-bottom:4px;text-align:left;font-size:11px;font-weight:800;cursor:pointer}.service-category:hover{background:var(--panel);border-color:var(--line)}.service-category.active{background:linear-gradient(90deg,var(--soft),var(--panel));border-color:var(--primary);color:var(--primary)}.service-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;align-content:start;border:1px solid var(--line);border-radius:10px;padding:9px;overflow:auto;max-height:360px}.service-choice{position:relative;display:block;border:1px solid var(--line);border-left:4px solid var(--primary);border-radius:11px;background:var(--panel);min-height:74px;padding:10px;cursor:pointer;transition:.15s}.service-choice:hover{transform:translateY(-1px);border-color:var(--primary)}.service-choice.selected{background:var(--soft);box-shadow:inset 0 0 0 1px var(--primary)}.service-choice input{position:absolute;right:9px;top:9px;width:auto}.service-choice-content{display:flex;flex-direction:column;gap:5px;padding-right:18px}.service-choice-content b{font-size:11px}.service-choice-content small{color:var(--muted);font-size:10px}.service-choice-content strong{font-size:12px}.appointment-summary{border:1px solid var(--primary);border-radius:11px;background:var(--panel);padding:12px;display:flex;flex-direction:column;min-height:390px}.summary-head{display:flex;justify-content:space-between;align-items:center;font-weight:900;font-size:14px}.icon-btn{border:0;background:transparent;color:var(--muted);cursor:pointer}.summary-meta{display:flex;gap:7px;flex-wrap:wrap;margin:9px 0 12px}.summary-meta span{border:1px solid var(--line);border-radius:999px;padding:5px 7px;font-size:10px}.summary-list{display:flex;flex-direction:column;gap:7px;flex:1;overflow:auto}.summary-item{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px dashed var(--line);font-size:11px}.summary-item span{display:flex;flex-direction:column}.summary-item small{color:var(--muted);margin-top:3px}.summary-empty{color:var(--muted);font-size:11px;padding:18px 0;text-align:center}.summary-total{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:10px;margin-top:8px;font-size:12px}.summary-total b{font-size:18px}.summary-time,.summary-operator{font-size:10px;color:var(--muted);margin-top:5px}.client-color-table input{box-sizing:border-box}.client-color-table input:focus{background:var(--bg);box-shadow:inset 0 0 0 1px var(--client-accent)}
@media(max-width:1050px){.appointment-builder{grid-template-columns:1fr}.appointment-summary{min-height:240px}.service-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.appointment-builder{min-width:0}.appointment-top-fields{grid-template-columns:1fr}.service-picker{grid-template-columns:1fr}.service-categories{max-height:190px}.service-cards{max-height:none;grid-template-columns:1fr}.service-picker-head{align-items:flex-start;flex-direction:column}.appointment-summary{min-height:220px}}

/* V4 - cliente solo ricerca + selezione operatore a bolle */
.client-search-field,.operator-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.client-search-wrap{position:relative;display:flex;align-items:center}
.client-search-wrap .search-icon{position:absolute;left:12px;color:var(--muted);font-size:18px;line-height:1;pointer-events:none}
.client-search-wrap input[type=search]{width:100%;padding-left:34px;padding-right:34px;margin:0;height:42px}
.client-search-wrap .clear-search{position:absolute;right:7px;width:27px;height:27px;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:18px;cursor:pointer;display:none}.client-search-wrap .client-edit-shortcut{position:absolute;right:37px;width:27px;height:27px;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:15px;font-weight:800;cursor:pointer;display:none}.client-search-wrap .client-edit-shortcut.show{display:block}.client-search-wrap .client-edit-shortcut:hover{background:var(--soft);color:var(--text)}
.client-search-wrap .clear-search.show{display:block}
.client-search-wrap .clear-search:hover{background:var(--soft);color:var(--text)}
.client-search-results{display:none;position:absolute;z-index:30;left:0;right:0;margin-top:47px;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 30px rgba(0,0,0,.12);max-height:230px;overflow:auto;padding:5px}
.client-search-field{position:relative}
.client-search-results.open{display:block}
.client-result{width:100%;display:flex;align-items:center;gap:10px;border:0;background:transparent;color:var(--text);border-radius:8px;padding:9px;text-align:left;cursor:pointer}
.client-result:hover{background:var(--soft)}
.client-result-avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--soft);color:var(--primary);font-weight:900;flex:none}
.client-result span:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}.client-result small{color:var(--muted)}
.client-result-empty{padding:14px;color:var(--muted);font-size:11px;text-align:center}
.selected-client-label{color:var(--muted);font-size:10px;min-height:15px}.selected-client-label b{color:var(--text)}
.operator-picker{display:flex;align-items:flex-start;gap:14px;min-height:66px;overflow-x:auto;padding:1px 1px 4px}
.operator-choice{width:48px;min-width:48px;border:0;background:transparent;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:5px;padding:0;cursor:pointer;font-size:10px;font-weight:700}
.operator-avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--panel);border:1.5px solid var(--primary);color:var(--text);font-size:15px;font-weight:900;transition:.15s}
.operator-choice:hover .operator-avatar{background:var(--soft);transform:translateY(-1px)}
.operator-choice.selected{color:var(--primary)}
.operator-choice.selected .operator-avatar{background:var(--soft);box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--primary)}
.empty-slot{cursor:pointer;transition:background .12s}.empty-slot:hover{background:var(--soft)}.empty-slot:after{content:'+';opacity:0;color:var(--primary);font-weight:900;font-size:18px;position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}.empty-slot:hover:after{opacity:.7}
.a-cell{position:relative}
@media(max-width:760px){.operator-picker{gap:11px}.operator-choice{width:44px;min-width:44px}.operator-avatar{width:38px;height:38px}}

/* V5 - agenda configurabile e filtro operatori */
#agenda{overflow:auto;max-width:100%}
.agenda-grid{align-items:stretch}
.agenda-grid .a-cell{min-height:var(--slot-height,42px);height:var(--slot-height,42px);padding:3px;position:relative;overflow:visible}
.agenda-grid .a-time{height:var(--slot-height,42px);min-height:var(--slot-height,42px);padding:10px 6px}
.agenda-grid .a-head{position:sticky;top:0;z-index:5;text-align:center;padding:9px 6px}
.agenda-grid .event{position:absolute;left:3px;right:3px;top:3px;margin:0;height:var(--event-height);min-height:0;overflow:hidden}
.agenda-grid .covered-slot{background:color-mix(in srgb,var(--primary) 3%,transparent)}
.operator-filter-wrap{position:relative}
.operator-filter-panel{display:none;position:absolute;right:0;top:calc(100% + 7px);width:280px;max-height:420px;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:13px;box-shadow:0 16px 36px rgba(20,30,35,.16);padding:10px;z-index:50}
.operator-filter-panel.open{display:block}
.operator-filter-head{padding:4px 7px 10px;border-bottom:1px solid var(--line);margin-bottom:4px}.operator-filter-head b{display:block;font-size:12px}.operator-filter-head small{display:block;color:var(--muted);font-size:10px;margin-top:3px}.operator-order-list{display:flex;flex-direction:column;gap:2px}.operator-sort-item{user-select:none}.operator-sort-item.dragging{opacity:.45}.operator-sort-item.drag-over{outline:2px dashed var(--primary);background:var(--soft)}.operator-drag{cursor:grab;font-size:18px;line-height:1;color:var(--muted);width:18px;text-align:center}.operator-filter-name{display:flex;flex-direction:column;min-width:0}.operator-filter-name b{font-size:12px}.operator-filter-name small{font-size:10px;color:var(--muted)}.operator-filter-tip{font-size:10px;color:var(--muted);padding:8px 7px 2px}.operator-filter-item input{flex:none}
.operator-filter-group{padding:4px 0 10px}.operator-filter-group+ .operator-filter-group{border-top:1px solid var(--line);padding-top:10px}
.operator-filter-group>b{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:4px 7px 7px}
.operator-filter-item{display:flex;align-items:center;gap:8px;padding:8px 7px;border-radius:9px;cursor:pointer;font-size:12px}.operator-filter-item:hover{background:var(--soft)}
.operator-filter-item input{width:auto;margin:0}.operator-filter-avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--primary);color:var(--primary);font-weight:800;font-size:10px;flex:none}
.filter-chevron{font-size:12px;margin-left:4px}
@media(max-width:760px){.operator-filter-panel{right:-40px;width:260px}.toolbar-right{flex-wrap:wrap}.agenda-grid{min-width:780px}}

/* V6 - durata appuntamento libera e scorciatoia colorazione cliente */
.appointment-bottom-fields{grid-template-columns:repeat(4,minmax(0,1fr))}
.client-color-shortcut{font-weight:800;white-space:nowrap}
.client-color-shortcut:hover{border-color:var(--client-accent);color:var(--client-accent)}
.diary-sales{max-height:220px;overflow:auto}
.diary-sale-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:12px}
.diary-sale-row:last-child{border-bottom:0}
.diary-sale-row span{display:flex;flex-direction:column;min-width:0}
.diary-sale-row small{color:var(--muted);font-size:10px;margin-top:3px}
.diary-sale-row strong{white-space:nowrap}
@media(max-width:760px){.appointment-bottom-fields{grid-template-columns:1fr 1fr}}
.shift-editable{position:relative;cursor:pointer;min-height:72px}.shift-edit-btn{position:absolute;right:6px;top:6px;border:1px solid var(--line);background:var(--surface);border-radius:7px;width:26px;height:26px;cursor:pointer;opacity:.35}.shift-editable:hover .shift-edit-btn{opacity:1}.shift-edit-btn:hover{background:var(--soft)}
.agenda-toolbar{align-items:center}.agenda-calendar-left{display:flex;align-items:center;gap:8px}.agenda-calendar-left input[type=date]{max-width:180px}.agenda-toolbar .toolbar-right{margin-left:auto}.event.dragging{opacity:.45;cursor:grabbing}.agenda-grid .a-cell.drag-over{background:var(--soft);outline:2px dashed var(--primary);outline-offset:-2px}.agenda-grid .event{cursor:grab}.agenda-grid .event:active{cursor:grabbing}
@media(max-width:800px){.agenda-calendar-left{width:100%}.agenda-calendar-left input[type=date]{flex:1;max-width:none}.agenda-toolbar .toolbar-right{margin-left:0}}
.shift-cal-head{display:grid;grid-template-columns:70px repeat(7,1fr);min-width:980px;border-bottom:1px solid var(--line)}
.shift-time-head,.shift-day-head{padding:12px;border-right:1px solid var(--line);background:var(--bg)}
.shift-day-head{text-align:center;display:flex;justify-content:center;gap:6px;align-items:center}.shift-day-head span{color:var(--muted);font-size:11px}
.shift-calendar{display:grid;grid-template-columns:70px repeat(7,1fr);min-width:980px;height:920px}
.shift-time-col{border-right:1px solid var(--line)}.shift-time{height:46px;padding:4px 7px;font-size:10px;color:var(--muted);border-bottom:1px solid var(--line);box-sizing:border-box}
.shift-day-col{position:relative;border-right:1px solid var(--line);background:repeating-linear-gradient(to bottom,transparent 0,transparent 45px,var(--line) 45px,var(--line) 46px)}
.shift-drop-cell{height:46px;cursor:pointer}.shift-drop-cell:hover{background:var(--soft)}
.calendar-shift{position:absolute;left:5px;right:5px;background:var(--soft);border:1px solid var(--primary);border-radius:9px;padding:6px 8px;z-index:2;box-sizing:border-box;cursor:pointer;overflow:hidden}.calendar-shift strong{display:block;font-size:11px}.calendar-shift span{font-size:10px;color:var(--muted)}.shift-rest-label{position:absolute;top:45%;width:100%;text-align:center;color:var(--muted);font-size:11px;pointer-events:none}
.delete-appointment-field{display:flex;align-items:flex-end}.delete-appointment-btn{width:100%;justify-content:center}.btn.danger{border:1px solid rgba(220,70,70,.35);color:#c62828;background:rgba(220,70,70,.08)}.btn.danger:hover{background:rgba(220,70,70,.15)}

.recurrence-box{border:1px solid var(--line);border-radius:12px;background:var(--bg);padding:12px}.recurrence-title{display:flex;flex-direction:column;gap:3px;margin-bottom:9px}.recurrence-title span{font-size:12px;font-weight:900}.recurrence-title small{font-size:10px;color:var(--muted)}.repeat-weeks-field{margin-top:9px;padding-top:9px;border-top:1px dashed var(--line)}.repeat-weeks-field label{display:flex;align-items:center;gap:10px;font-size:10px;font-weight:800}.repeat-weeks-field input{width:90px}.repeat-weeks-field small{display:block;color:var(--muted);font-size:10px;margin-top:6px}
.agenda-move-confirm{padding:6px 0}.agenda-move-row{display:grid;grid-template-columns:52px 1fr;gap:12px;align-items:start;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:13px;margin:8px 0}.agenda-move-row span{color:var(--muted);font-size:12px;font-weight:700}.agenda-move-row b{font-size:13px;line-height:1.4}.agenda-move-arrow{text-align:center;font-size:20px;color:var(--primary);font-weight:800;line-height:1}.agenda-move-confirm p{margin:14px 0 0}.calendar-shift{z-index:3}.shift-calendar{height:1104px;overflow:visible}.shift-day-col{min-height:1104px}.shift-time{height:46px;box-sizing:border-box}.shift-drop-cell{height:46px;box-sizing:border-box}.shift-cal-head{position:sticky;top:0;z-index:4}
