@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--bg:#f7f3ed;--text:#1f2a24;--muted:#66736b;--card:#fff;--accent:#2f6f5e;--accent-dark:#214f43;--sand:#e8ddcc;--border:#1f2a241f;--shadow:0 10px 28px #1f2a241a;--shadow-hover:0 20px 44px #1f2a2424;--radius:28px;--radius-sm:16px;--gold:#a9822e;--danger:#c0392b;--danger-bg:#f5e6e3}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;margin:0;padding:0}input,textarea,select{-webkit-user-select:text;user-select:text}body{background:var(--bg);color:var(--text);min-height:100vh;padding:2.5rem 1.25rem 4rem;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.container{max-width:600px;margin:0 auto}#login-screen{background:var(--bg);justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}.login-card{text-align:center;width:100%;max-width:340px}header{justify-content:space-between;align-items:center;margin-bottom:1.75rem;display:flex}.brand{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:6px;font-size:.78rem;font-weight:500}.date-title{letter-spacing:-.03em;color:var(--text);font-size:1.7rem;font-weight:500}.view-toggle{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:999px;gap:4px;padding:4px;display:flex}.view-toggle button{width:34px;height:34px;color:var(--accent);cursor:pointer;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;transition:all .2s;display:flex}.view-toggle button.active{background:var(--accent);color:#fff}.header-actions{align-items:center;gap:10px;display:flex}.client-sort-select{color:var(--text);background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow);cursor:pointer;border-radius:999px;padding:8px 14px;font-family:inherit;font-size:.78rem;font-weight:500}.custom-select{flex:1;position:relative}.custom-select-trigger{width:100%;color:var(--text);background:var(--bg);cursor:pointer;border:none;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;height:40px;padding:0 11px;font-family:inherit;font-size:.88rem;font-weight:500;display:flex}.custom-select.disabled .custom-select-trigger{cursor:not-allowed;opacity:.6}.custom-select--pill .custom-select-trigger{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:999px;height:44px;padding:0 16px;font-size:.78rem}.custom-select-trigger .trigger-icon{color:var(--accent);flex-shrink:0}.custom-select-trigger .chevron{color:var(--muted);flex-shrink:0;transition:transform .15s}.custom-select.open .custom-select-trigger .chevron{transform:rotate(180deg)}.custom-select-menu{z-index:20;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);max-height:240px;box-shadow:var(--shadow-hover);padding:6px;display:none;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.custom-select.open .custom-select-menu{display:block}.custom-select--pill .custom-select-menu{width:max-content;min-width:220px;left:auto;right:0}.custom-select-option{color:var(--text);cursor:pointer;border-radius:8px;padding:9px 10px;font-size:.85rem;font-weight:500}.custom-select-option:hover,.custom-select-option.highlighted{background:var(--bg)}.custom-select-option.selected{background:var(--accent);color:#fff}.btn-icon--lg.gear-btn{width:44px;height:44px}.gear-btn .icon-gear{transition:transform .2s}.gear-btn:hover .icon-gear{transform:rotate(25deg)}.gear-btn .icon-close{display:none}.gear-btn.active{color:#fff;background:var(--accent);border-color:var(--accent)}.gear-btn.active .icon-gear{display:none}.gear-btn.active .icon-close{display:block}.surface-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px 26px}.settings-panel{margin-bottom:1.5rem;display:none}.settings-panel.open{display:block}.hidden{display:none!important}.settings-header{justify-content:space-between;align-items:center;margin-bottom:30px;display:flex}.settings-header h2,.settings-section-title{letter-spacing:-.02em;color:var(--muted);text-transform:uppercase;font-size:1.05rem;font-weight:500}.close-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:1.4rem;line-height:1}.close-btn:hover{color:var(--accent)}.settings-grid{flex-direction:column;gap:32px;margin-bottom:1.25rem;display:flex}.settings-divider{border:none;border-top:1px solid var(--border);margin:6px 0}.settings-section-title{margin:-16px 0 4px}.field-hint{color:var(--muted);margin:-20px 0 4px;font-size:.82rem}.field{flex-direction:column;gap:6px;display:flex}.field .field-label{color:var(--text);align-items:center;font-size:.85rem;font-weight:500;display:flex}.help-wrap{margin-left:6px;display:inline-flex;position:relative}.help-icon{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;padding:0;font-size:.6rem;font-weight:500;line-height:1;transition:all .15s;display:flex}.help-icon:hover,.help-wrap.open .help-icon{background:var(--accent-dark)}.tooltip{background:var(--card);border:1px solid var(--border);width:210px;box-shadow:var(--shadow-hover);color:var(--text);z-index:30;border-radius:12px;padding:10px 12px;font-size:.72rem;font-weight:500;line-height:1.4;display:none;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.help-wrap:hover .tooltip,.help-wrap.open .tooltip{display:block}.field input{color:var(--text);background:var(--bg);border:none;border-radius:10px;padding:8px 10px;font-family:inherit;font-size:.9rem;font-weight:500}.field input:focus{outline:none}.field input[type=number]{text-align:left;align-self:flex-start;width:8ch}.field input[type=time]{align-self:flex-start;width:11ch}.checkbox-row{flex-wrap:wrap;gap:8px;display:flex}.pill-select{box-sizing:border-box;background:var(--bg);height:40px;color:var(--muted);cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:0 13px;font-family:inherit;font-size:.78rem;font-weight:500;transition:all .15s;display:flex}.pill-select.active{background:var(--accent);color:#fff}.pill-select:has(input:checked){background:var(--accent);color:#fff}.pill-select input{accent-color:var(--accent);border:none;outline:none}.pill-select.pill-disabled{opacity:.4;cursor:not-allowed}.day-select{flex-wrap:wrap;gap:6px;display:flex}.field.toggle-field{flex-direction:row;justify-content:space-between;align-items:center;gap:16px}.switch{flex-shrink:0;width:40px;height:22px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.slider{background:var(--border);cursor:pointer;border-radius:999px;transition:all .2s;position:absolute;inset:0}.slider:before{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:all .2s;position:absolute;top:3px;left:3px;box-shadow:0 2px 6px #1f2a2433}.switch input:checked+.slider{background:var(--accent)}.switch input:checked+.slider:before{transform:translate(18px)}nav.day-strip{justify-content:space-between;gap:6px;margin-bottom:1.5rem;display:flex}.month-view.hidden{display:none}.month-nav{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.month-nav-btn{background:var(--card);width:32px;height:32px;box-shadow:var(--shadow);color:var(--accent);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.month-label{color:var(--text);font-size:1.05rem;font-weight:500}.month-dow-row{grid-template-columns:repeat(7,minmax(0,1fr));margin-bottom:6px;display:grid}.month-dow-row span{text-align:center;color:var(--muted);text-transform:uppercase;font-size:.68rem;font-weight:500}.month-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:1.25rem;display:grid}.month-cell{aspect-ratio:1;background:var(--card);cursor:pointer;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:3px;transition:all .15s;display:flex}.month-cell:hover{background:var(--bg)}.month-cell.empty{cursor:default;background:0 0}.month-cell .cell-num{color:var(--text);font-size:.82rem;font-weight:500}.month-cell.today{background:var(--accent)}.month-cell.today .cell-num{color:#fff}.month-cell.selected{background:var(--sand);outline:2px solid var(--accent);outline-offset:-2px}.month-cell.closed .cell-num{color:var(--muted);text-decoration:line-through}.month-hint{color:var(--muted);margin-top:10px;font-size:.72rem}.month-close-bar{border-radius:var(--radius-sm);background:var(--card);box-shadow:var(--shadow);justify-content:space-between;align-items:center;gap:12px;margin-top:1rem;padding:14px 18px;font-size:.85rem;font-weight:500;display:flex}.month-close-actions{gap:8px;display:flex}.modal-overlay{z-index:100;background:#1f2a2473;justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}.modal-box{width:100%;max-width:380px}.modal-title{margin-bottom:8px;font-size:1.1rem;font-weight:600}.modal-text{color:var(--muted);margin-bottom:20px;font-size:.9rem}.modal-actions{justify-content:flex-end;gap:10px;display:flex}.month-cell .cell-dots{gap:2px;display:flex}.month-cell .dot{border-radius:50%;width:5px;height:5px}.month-legend{color:var(--muted);flex-wrap:wrap;gap:16px;font-size:.7rem;display:flex}.month-legend span{align-items:center;gap:5px;display:flex}.dot-confirme{background:var(--accent)}.dot-paye{background:var(--gold,#a9822e)}.dot-annule{background:var(--danger)}.day-pill{text-align:center;border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;flex:1;padding:10px 4px;transition:all .2s}.day-pill:hover{border-color:var(--border)}.day-pill .dow{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.65rem;font-weight:500}.day-pill .num{color:var(--text);margin-top:3px;font-size:1rem;font-weight:500}.day-pill.selected{background:var(--accent);box-shadow:0 10px 24px #2f6f5e2e}.day-pill.selected .dow,.day-pill.selected .num{color:#fff}.legend{color:var(--muted);gap:18px;margin-bottom:1.5rem;font-size:.72rem;font-weight:500;display:flex}.legend span{align-items:center;gap:6px;display:flex}.dot{border-radius:50%;width:7px;height:7px}.dot.confirme{background:var(--accent)}.dot.paye{background:var(--gold)}.dot.annule{background:var(--danger)}.cards{flex-direction:column;gap:14px;display:flex}.card{flex-direction:column;justify-content:flex-start;transition:transform .3s ease-out,box-shadow .3s ease-out;display:flex;position:relative}.card:hover{box-shadow:var(--shadow-hover);transform:scale(1.012)}.card.annule:hover{transform:none}.card.annule .time,.card.annule .client-name,.card.annule .service-name,.card.annule .duration,.card.annule .divider{opacity:.5}.badge{color:#fff;letter-spacing:.02em;white-space:nowrap;border-radius:999px;padding:5px 13px;font-size:.68rem;font-weight:500}.badge.confirme{background:var(--accent)}.badge.attente{background:#c98a3e}.badge.termine{background:#5c7a6e}.badge.paye{background:var(--gold)}.badge.annule{background:var(--danger)}.badge.noshow{background:#000}.badge-stack{flex-direction:column;align-items:flex-end;gap:6px;display:flex;position:absolute;top:22px;right:26px}.badge-stack .badge{position:static}.card .time{color:var(--accent);text-transform:uppercase;letter-spacing:.07em;margin-bottom:8px;font-size:.72rem;font-weight:500;display:inline-block}.card.annule .time{color:var(--muted);text-decoration:line-through}.card .client-name{letter-spacing:-.03em;color:var(--text);margin-bottom:14px;padding-right:110px;font-size:1.35rem;font-weight:300}.card.annule .client-name{text-decoration:line-through}.divider{background:var(--border);height:1px;margin-bottom:14px}.service-row{justify-content:space-between;align-items:baseline;display:flex}.service-name{color:var(--text);font-size:.95rem;font-weight:500}.card.annule .service-name,.card.annule .duration{text-decoration:line-through}.duration{color:var(--muted);font-size:.82rem}.slot{text-align:center;border-radius:var(--radius);flex-direction:column;justify-content:center;align-items:center;gap:4px;display:flex}.slot.libre{color:var(--muted);border:1.5px dashed var(--border);cursor:pointer;transition:all .2s}.slot.libre:hover{border-color:var(--accent);color:var(--accent);background:#2f6f5e08}.add-trigger-card{border-radius:var(--radius);border:1.5px dashed var(--border);min-height:132px;color:var(--muted);cursor:pointer;justify-content:center;align-items:center;gap:10px;padding:22px 26px;font-size:.9rem;font-weight:500;transition:all .2s;display:flex}.add-trigger-card:hover{border-color:var(--accent);color:var(--accent);background:#2f6f5e08}.slot.libre .slot-time{font-size:.82rem;font-weight:500;line-height:1}.slot.libre .slot-add-row{text-align:center;width:100%;position:relative}.slot.libre .slot-add-label{font-size:.82rem;font-weight:500;line-height:1;display:inline-block;position:relative}.btn-icon{background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;line-height:1;transition:all .2s;display:flex}.btn-icon--lg{width:38px;height:38px;font-size:1rem}.btn-icon:disabled{cursor:not-allowed;opacity:.5}.btn-icon--sm{width:26px;height:26px;font-size:.85rem}.btn-icon--add{color:var(--accent)}.btn-icon--add:hover{color:#fff;background:var(--accent)}.btn-icon--remove{color:var(--muted)}.btn-icon--remove:hover{color:#fff;background:var(--danger);border-color:var(--danger)}.slot.libre .plus{margin-left:8px;font-size:1rem;font-weight:500;line-height:1;position:absolute;top:50%;left:100%;transform:translateY(-50%)}.slot.libre:hover .plus{transform:translateY(-50%)scale(1.12)}.slot.trou{color:#a39a89;border:1px solid var(--border);cursor:default;background:repeating-linear-gradient(135deg,#1f2a2409,#1f2a2409 8px,#0000 8px 16px);font-size:.82rem;font-weight:500}footer{text-align:center;color:var(--muted);margin-top:2.5rem;font-size:.72rem}.module-title{color:var(--accent);margin-top:2px;font-size:18px;font-weight:500}.day-hours-list{flex-direction:column;gap:32px;display:flex}.day-hours-group{flex-direction:column;gap:8px;display:flex}.day-hours-group.closed .day-name,.day-hours-group.closed .day-times{opacity:.4}.day-hours-group.closed .day-times input{pointer-events:none}.day-hours-group.closed .btn-icon--add{display:none}.day-hours-row{justify-content:flex-start;align-items:center;gap:10px;display:flex}.day-hours-row.secondary{padding-left:0}.day-hours-row .day-name{color:var(--text);flex-shrink:0;width:70px;font-size:.85rem;font-weight:500}.day-hours-row .day-times{align-items:center;gap:8px;display:flex}.day-hours-row .day-times input[type=time]{color:var(--text);background:var(--bg);border:none;border-radius:10px;width:10ch;padding:7px 9px;font-family:inherit;font-size:.85rem;font-weight:500}.day-hours-row .day-times .to-sep{color:var(--muted);font-size:.78rem}.day-hours-row .switch{margin-left:auto}.reminder-delay-list{flex-direction:column;align-self:flex-start;gap:8px;display:flex}.reminder-delay-row{align-items:center;gap:8px;display:flex}.reminder-delay-row input[type=number]{color:var(--text);background:var(--bg);text-align:left;border:none;border-radius:10px;width:8ch;padding:8px 10px;font-family:inherit;font-size:.9rem;font-weight:500}.closed-day-add{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.closed-day-list{flex-direction:column;gap:8px;display:flex}.closed-day-item{background:var(--bg);color:var(--text);border-radius:10px;justify-content:space-between;align-items:center;padding:8px 12px;font-size:.82rem;font-weight:500;display:flex}.empty-state{color:var(--muted);text-align:center;padding:30px 0;font-size:.82rem}.clients-list{flex-direction:column;gap:14px;display:flex}.client-card{flex-direction:column;justify-content:center;min-height:132px;transition:transform .3s ease-out,box-shadow .3s ease-out;display:flex;position:relative}.client-card:hover{box-shadow:var(--shadow-hover);transform:scale(1.012)}.client-card .time{color:var(--accent);text-transform:uppercase;letter-spacing:.07em;margin-bottom:8px;font-size:.72rem;font-weight:500;display:inline-block}.client-card .client-name{letter-spacing:-.03em;color:var(--text);margin-bottom:14px;padding-right:90px;font-size:1.35rem;font-weight:300}.client-card .divider{background:var(--border);height:1px;margin-bottom:14px}.client-card .service-row{justify-content:space-between;align-items:baseline;display:flex}.client-card .service-name{color:var(--text);font-size:.95rem;font-weight:300}.client-card .duration{color:var(--muted);font-size:.82rem}.client-card .note-row{color:var(--muted);margin-top:10px;font-size:.78rem;font-style:italic}.client-card .btn-icon{position:absolute;top:22px;right:26px}.service-card{transition:transform .3s ease-out,box-shadow .3s ease-out;position:relative}.service-card:hover{box-shadow:var(--shadow-hover);transform:scale(1.012)}.service-card .client-name{letter-spacing:-.03em;color:var(--text);margin-bottom:8px;padding-right:140px;font-size:1.35rem;font-weight:300}.service-card .description{color:var(--muted);margin-bottom:14px;padding-right:140px;font-size:.85rem;line-height:1.5}.service-card .price-list{flex-wrap:wrap;gap:10px;display:flex}.service-card .price-pill{color:var(--accent);background:var(--bg);border-radius:999px;padding:6px 13px;font-size:.78rem;font-weight:500}.service-card .price-empty{color:var(--muted);font-size:.8rem;font-style:italic}.service-form-card .duration-price-row{align-items:center;gap:10px;display:flex}.service-form-card .duration-price-row input[type=number]{flex-shrink:0;width:8ch}.service-form-card .duration-price-row .price-sep{color:var(--muted);font-size:.85rem}.service-form-card .duration-price-row .price-sep:first-child{flex-shrink:0;width:8ch}.form-card{box-shadow:var(--shadow-hover);padding:24px 26px}.form-card .form-title{color:var(--accent);margin-bottom:16px;font-size:.9rem;font-weight:500}.client-form-grid{text-align:left;flex-direction:column;gap:32px;display:flex}.form-row-pair{gap:12px;display:flex}.select-with-add{align-items:center;gap:8px;display:flex}.select-with-add select,.form-row-pair .field{flex:1}.client-form-card .field-label{color:var(--muted);margin-bottom:6px;font-size:.72rem;font-weight:500;display:block}.form-card input[type=text],.form-card input[type=date],.form-card input[type=time],.form-card input[type=tel],.form-card input[type=email],.form-card input[type=number],.form-card input[type=password],.form-card select,.form-card textarea{width:100%;height:40px;color:var(--text);background:var(--bg);box-sizing:border-box;border:none;border-radius:10px;padding:0 11px;font-family:inherit;font-size:.88rem;font-weight:500}.form-card textarea{resize:vertical;height:auto;min-height:50px;padding:9px 11px;font-weight:400}.contact-methods{flex-direction:column;gap:10px;display:flex}.contact-pill-row{flex-wrap:wrap;gap:8px;display:flex}.reveal-field{display:none}.reveal-field.visible{display:block}.form-actions{justify-content:flex-end;align-items:center;gap:10px;margin-top:4px;display:flex}.form-delete-btn{color:var(--danger);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:9px 16px;font-family:inherit;font-size:.82rem;font-weight:500}.form-save-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:999px;padding:9px 20px;font-family:inherit;font-size:.82rem;font-weight:500}.form-cancel-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:9px 16px;font-family:inherit;font-size:.82rem;font-weight:500}.form-error{color:var(--danger);font-size:.76rem;display:none}.form-error.visible{display:block}.bottom-nav{justify-content:center;gap:10px;margin-top:2rem;display:flex}.bottom-nav-btn{border-radius:var(--radius-sm);background:var(--card);border:1px solid var(--border);width:52px;height:52px;box-shadow:var(--shadow);color:var(--accent);cursor:pointer;justify-content:center;align-items:center;transition:all .2s;display:flex}.bottom-nav-btn:hover{box-shadow:var(--shadow-hover)}.bottom-nav-btn--logout:hover{color:#fff;background:var(--danger);border-color:var(--danger)}.bottom-nav-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.bottom-nav-btn span{display:none}@media (width>=900px){body{padding-left:100px}.bottom-nav{flex-direction:column;gap:12px;margin:0;position:fixed;top:24px;bottom:auto;left:24px}}
