:root{--cream:#f3f3f3;--warm-white:#f1f1f1;--charcoal:#2c2a27;--mid:#6b6560;--accent:#ff5123;--accent-light:#ffe4dc;--accent-dark:#cc3c18;--green:#4a7c59;--red:#a0453a;--border:#d8d8d8;--selected:#00a4b5;--selected-light:#d6f2f5;--selected-dark:#007f8c;--shadow:#2c2a2714}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--cream);color:var(--charcoal);min-height:100vh;font-family:DM Sans,sans-serif}header{background:var(--charcoal);color:var(--cream);z-index:100;justify-content:space-between;align-items:center;padding:28px 40px;display:flex;position:sticky;top:0;box-shadow:0 2px 20px #0003}.header-title{letter-spacing:.02em;color:#fff;font-family:DM Serif Display,serif;font-size:1.6rem}.header-subtitle{color:#a09a92;letter-spacing:.08em;text-transform:uppercase;margin-top:3px;font-size:.78rem}nav{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.nav-btn{color:#c8c3bc;cursor:pointer;letter-spacing:.04em;background:0 0;border:1.5px solid #4a4845;border-radius:30px;padding:8px 18px;font-family:DM Sans,sans-serif;font-size:.82rem;font-weight:500;transition:all .2s}.nav-btn:hover{border-color:var(--accent);color:var(--accent)}.nav-btn.active{background:var(--selected);border-color:var(--selected);color:#fff}main{max-width:900px;margin:0 auto;padding:40px 20px 60px}.page{display:none}.page.active{display:block}.page-header{margin-bottom:32px}.page-header h2{color:var(--charcoal);font-family:DM Serif Display,serif;font-size:2rem}.page-header .location-tag{background:var(--selected-light);color:var(--selected-dark);letter-spacing:.06em;text-transform:uppercase;border-radius:20px;margin-top:8px;padding:4px 14px;font-size:.78rem;font-weight:600;display:inline-block}.week-nav{background:var(--warm-white);border:1px solid var(--border);border-radius:12px;align-items:center;gap:16px;margin-bottom:28px;padding:16px 20px;display:flex}.week-nav button{background:var(--charcoal);color:var(--cream);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:1rem;transition:background .2s;display:flex}.week-nav button:hover{background:var(--accent)}.week-dates{flex-wrap:wrap;flex:1;gap:8px;display:flex}.massage-date{background:var(--cream);border:1.5px solid var(--border);color:var(--mid);cursor:pointer;border-radius:8px;padding:8px 14px;font-size:.82rem;font-weight:500;transition:all .2s}.massage-date:hover,.massage-date.selected{border-color:var(--selected);background:var(--selected-light);color:var(--selected-dark)}.massage-date.no-massage{opacity:.35;cursor:default;pointer-events:none}.slots-container{background:var(--warm-white);border:1px solid var(--border);border-radius:14px;overflow:hidden}.slots-header{border-bottom:1px solid var(--border);color:var(--mid);letter-spacing:.05em;text-transform:uppercase;background:#f8f4ee;padding:18px 24px;font-size:.88rem;font-weight:600}.slot{border-bottom:1px solid var(--border);align-items:center;padding:16px 24px;transition:background .15s;display:flex}.slot:last-child{border-bottom:none}.slot:hover{background:#f8f4ee}.slot-time{width:90px;color:var(--charcoal);flex-shrink:0;font-family:DM Serif Display,serif;font-size:1.15rem}.slot-status{flex:1;font-size:.85rem}.status-free{color:var(--green);font-weight:500}.status-booked{color:var(--mid)}.status-booked .booked-name{color:var(--charcoal);font-weight:600}.status-lunch{color:var(--accent-dark);font-style:italic}.btn-book{background:var(--selected);color:#fff;cursor:pointer;letter-spacing:.04em;border:none;border-radius:20px;padding:8px 20px;font-family:DM Sans,sans-serif;font-size:.82rem;font-weight:600;transition:all .2s}.btn-book:hover{background:var(--selected-dark);transform:translateY(-1px)}.btn-cancel{color:var(--red);border:1.5px solid var(--red);cursor:pointer;background:0 0;border-radius:20px;padding:7px 16px;font-family:DM Sans,sans-serif;font-size:.78rem;font-weight:500;transition:all .2s}.btn-cancel:hover{background:var(--red);color:#fff}.btn-edit{color:var(--selected);border:1.5px solid var(--selected);cursor:pointer;white-space:nowrap;background:0 0;border-radius:20px;padding:7px 16px;font-family:DM Sans,sans-serif;font-size:.78rem;font-weight:500;transition:all .2s}.btn-edit:hover{background:var(--selected);color:#fff}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;pointer-events:none;background:#2c2a278c;justify-content:center;align-items:center;transition:opacity .2s;display:flex;position:fixed;inset:0}.modal-overlay.visible{opacity:1;pointer-events:all}.modal{background:var(--warm-white);border-radius:16px;width:100%;max-width:420px;margin:20px;padding:36px;transition:transform .2s;transform:translateY(10px);box-shadow:0 20px 60px #00000040}.modal-overlay.visible .modal{transform:translateY(0)}.modal h3{margin-bottom:6px;font-family:DM Serif Display,serif;font-size:1.4rem}.modal-info{color:var(--mid);border-bottom:1px solid var(--border);margin-bottom:24px;padding-bottom:20px;font-size:.85rem}.form-group{margin-bottom:18px}.form-group label{letter-spacing:.06em;text-transform:uppercase;color:var(--mid);margin-bottom:7px;font-size:.78rem;font-weight:600;display:block}.form-group input{border:1.5px solid var(--border);background:var(--cream);width:100%;color:var(--charcoal);border-radius:8px;outline:none;padding:12px 16px;font-family:DM Sans,sans-serif;font-size:.95rem;transition:border-color .2s}.form-group input:focus,.form-group textarea:focus{border-color:var(--accent)}.modal-actions{gap:10px;margin-top:24px;display:flex}.btn-confirm{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:10px;flex:1;padding:13px;font-family:DM Sans,sans-serif;font-size:.9rem;font-weight:600;transition:background .2s}.btn-confirm:hover{background:var(--accent-dark)}.btn-dismiss{color:var(--mid);border:1.5px solid var(--border);cursor:pointer;background:0 0;border-radius:10px;padding:13px 20px;font-family:DM Sans,sans-serif;font-size:.9rem;transition:all .2s}.btn-dismiss:hover{border-color:var(--charcoal);color:var(--charcoal)}.export-card{background:var(--warm-white);border:1px solid var(--border);border-radius:14px;margin-bottom:20px;padding:28px}.export-card h3{margin-bottom:16px;font-family:DM Serif Display,serif;font-size:1.2rem}.export-controls{flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.export-controls select,.export-controls input{border:1.5px solid var(--border);background:var(--cream);color:var(--charcoal);cursor:pointer;border-radius:8px;outline:none;padding:10px 14px;font-family:DM Sans,sans-serif;font-size:.9rem;transition:border-color .2s}.export-controls select:focus,.export-controls input:focus{border-color:var(--accent)}.btn-export{background:var(--charcoal);color:var(--cream);cursor:pointer;letter-spacing:.04em;border:none;border-radius:8px;padding:11px 26px;font-family:DM Sans,sans-serif;font-size:.88rem;font-weight:600;transition:background .2s}.btn-export:hover{background:var(--accent)}.toast{background:var(--charcoal);color:var(--cream);z-index:2000;opacity:0;pointer-events:none;white-space:nowrap;border-radius:30px;padding:14px 28px;font-size:.88rem;font-weight:500;transition:all .3s;position:fixed;bottom:30px;left:50%;transform:translate(-50%)translateY(20px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}.toast.success{background:var(--green)}.toast.error{background:var(--red)}.auth-screen{background:var(--cream);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.auth-card{background:var(--warm-white);border:1px solid var(--border);border-radius:16px;width:100%;max-width:420px;padding:44px 36px;box-shadow:0 20px 60px #00000014}.auth-brand{border-bottom:1px solid var(--border);margin-bottom:28px;padding-bottom:24px}.auth-title{color:var(--charcoal);font-family:DM Serif Display,serif;font-size:1.6rem}.auth-subtitle{color:var(--selected);letter-spacing:.08em;text-transform:uppercase;margin-top:3px;font-size:.78rem;font-weight:600}.auth-card h1{margin-bottom:8px;font-family:DM Serif Display,serif;font-size:1.8rem}.auth-lead{color:var(--mid);margin-bottom:28px;font-size:.92rem}.auth-btn{width:100%;color:var(--charcoal);border:1.5px solid var(--border);cursor:pointer;background:#fff;border-radius:10px;justify-content:center;align-items:center;gap:12px;padding:14px 18px;font-family:DM Sans,sans-serif;font-size:.95rem;font-weight:600;transition:all .2s;display:flex}.auth-btn:hover:not(:disabled){border-color:var(--charcoal);transform:translateY(-1px)}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-error{color:var(--red);background:#fde8e6;border-radius:8px;margin-top:16px;padding:12px 16px;font-size:.85rem}.auth-divider{color:var(--mid);align-items:center;gap:12px;margin:20px 0;font-size:.8rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.auth-sso-form{flex-direction:column;gap:10px;display:flex}.auth-label{color:var(--charcoal);font-size:.85rem;font-weight:600}.auth-input{border:1.5px solid var(--border);width:100%;color:var(--charcoal);background:#fff;border-radius:10px;padding:12px 14px;font-family:DM Sans,sans-serif;font-size:.95rem}.auth-input:focus{border-color:var(--charcoal);outline:none}.auth-btn-secondary{background:var(--charcoal);color:#fff;border-color:var(--charcoal)}.auth-btn-secondary:hover:not(:disabled){opacity:.9}@media(max-width:600px){header{flex-direction:column;align-items:flex-start;gap:14px;padding:18px 16px}nav{justify-content:flex-start}main{padding:24px 12px 60px}.slot{flex-wrap:wrap;gap:8px}.slot-time{width:80px}.export-controls{flex-direction:column;align-items:stretch}}
