*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0a0a0a;--bg-raised: #111111;--bg-hover: #1a1a1a;--border: #222222;--text: #ededed;--text-secondary: #888888;--text-tertiary: #555555;--blue: #3b82f6;--green: #22c55e;--amber: #f59e0b;--red: #ef4444;--radius: 8px}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}input,select,button{font-family:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 20px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-raised);color:var(--text);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s}.btn:hover:not(:disabled){background:var(--bg-hover);border-color:#333}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--blue);border-color:var(--blue);color:#fff}.btn-primary:hover:not(:disabled){background:#2563eb;border-color:#2563eb}.btn-secondary{background:var(--bg-raised)}.btn-danger{background:transparent;border-color:var(--red);color:var(--red)}.btn-danger:hover:not(:disabled){background:#ef44441a}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){color:var(--text);background:var(--bg-hover)}.btn-sm{padding:6px 12px;font-size:12px}input[type=text],input[type=email],input[type=time],select{width:100%;padding:10px 14px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:14px;outline:none;transition:border-color .15s}input:focus,select:focus{border-color:var(--blue)}input::placeholder{color:var(--text-tertiary)}.error{color:var(--red);font-size:13px;margin-top:8px}.home{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.home-container{max-width:640px;width:100%}.home-brand{display:flex;align-items:center;gap:12px;color:var(--text);margin-bottom:8px}.home-brand h1{font-size:28px;font-weight:700;letter-spacing:-.5px}.home-brand svg{color:var(--blue)}.home-subtitle{color:var(--text-secondary);font-size:15px;margin-bottom:32px}.home-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px}.home-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:12px}.home-card h2{font-size:16px;font-weight:600}.home-card p{font-size:13px;color:var(--text-secondary);line-height:1.5}.home-footer{margin-top:48px;text-align:center;font-size:13px;color:var(--text-tertiary)}.home-footer a{color:var(--text-secondary);text-decoration:none}.home-footer a:hover{color:var(--text)}.booking-page,.manage-page{max-width:960px;margin:0 auto;padding:32px 24px}.booking-header,.manage-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}.booking-header h1,.manage-header h1{font-size:24px;font-weight:700;letter-spacing:-.3px}.manage-subtitle{color:var(--text-secondary);font-size:13px;margin-top:2px}.booking-layout{display:grid;grid-template-columns:1fr 1fr;gap:32px}.booking-left,.booking-right{display:flex;flex-direction:column;gap:24px}.booking-hint{color:var(--text-tertiary);font-size:14px;padding:32px;text-align:center}.page-loading,.page-error{text-align:center;padding:80px 24px;color:var(--text-secondary);font-size:15px}.page-error{color:var(--red)}.service-picker h3{font-size:14px;font-weight:600;color:var(--text-secondary);margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px}.service-list{display:flex;flex-direction:column;gap:8px}.service-card{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all .15s;text-align:left;color:var(--text);width:100%}.service-card:hover{border-color:#333}.service-card.selected{border-color:var(--svc-color);background:#ffffff08}.service-dot{width:10px;height:10px;border-radius:50%;background:var(--svc-color);flex-shrink:0}.service-info{display:flex;flex-direction:column}.service-name{font-size:14px;font-weight:500}.service-dur{font-size:12px;color:var(--text-secondary)}.calendar{background:var(--bg-raised);border:1px solid var(--border);border-radius:12px;padding:20px}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.cal-title{font-size:15px;font-weight:600}.cal-nav{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text);cursor:pointer;font-size:18px;transition:all .15s}.cal-nav:hover{background:var(--bg-hover);border-color:#333}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-day-label{text-align:center;font-size:11px;color:var(--text-tertiary);font-weight:500;padding:4px 0;text-transform:uppercase}.cal-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:13px;border-radius:6px;border:1px solid transparent;background:transparent;color:var(--text);cursor:pointer;transition:all .15s}.cal-cell:hover:not(.disabled):not(.empty){background:var(--bg-hover);border-color:var(--border)}.cal-cell.selected{background:var(--blue);color:#fff;border-color:var(--blue)}.cal-cell.disabled{color:var(--text-tertiary);cursor:not-allowed;opacity:.4}.cal-cell.empty{cursor:default}.time-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.slot{padding:12px 8px;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s;text-align:center}.slot:hover:not(:disabled){border-color:var(--blue);background:#3b82f60f}.slot.selected{border-color:var(--blue);background:var(--blue);color:#fff}.slot.booked{color:var(--text-tertiary);text-decoration:line-through;cursor:not-allowed;opacity:.4}.slots-loading,.slots-empty{text-align:center;padding:24px;color:var(--text-secondary);font-size:14px}.booking-form{background:var(--bg-raised);border:1px solid var(--border);border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:16px}.booking-form h3{font-size:16px;font-weight:600}.booking-summary{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary);padding:10px 14px;background:var(--bg);border-radius:6px}.summary-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.summary-sep{color:var(--text-tertiary)}.form-actions{display:flex;gap:12px}.form-actions .btn{flex:1}.confirmation{text-align:center;padding:60px 24px;display:flex;flex-direction:column;align-items:center;gap:12px}.confirmation h2{font-size:22px;font-weight:700}.confirmation p{color:var(--text-secondary);font-size:15px}.confirmation-name{font-size:13px;color:var(--text-tertiary)}.confirmation .btn{margin-top:12px}.share-bar{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:24px}.share-label{font-size:13px;color:var(--text-secondary);white-space:nowrap}.share-url{flex:1;font-size:13px;color:var(--blue);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.manage-nav{display:flex;gap:8px}.manage-tabs{display:flex;gap:4px;margin-bottom:24px}.tab{padding:10px 20px;background:transparent;border:1px solid transparent;border-radius:var(--radius);color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s}.tab:hover{color:var(--text);background:var(--bg-hover)}.tab.active{color:var(--text);background:var(--bg-raised);border-color:var(--border)}.booking-list{display:flex;flex-direction:column;gap:8px}.booking-item{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius)}.booking-item-color{width:4px;height:36px;border-radius:2px;flex-shrink:0}.booking-item-info{flex:1;min-width:0}.booking-item-top{display:flex;align-items:center;gap:12px}.booking-item-service{font-size:14px;font-weight:500}.booking-item-datetime{font-size:12px;color:var(--text-secondary)}.booking-item-bottom{font-size:13px;color:var(--text-secondary);display:flex;gap:12px;margin-top:2px}.booking-item-email{color:var(--text-tertiary)}.no-bookings{color:var(--text-tertiary);font-size:14px;text-align:center;padding:32px}.settings-panel{display:flex;flex-direction:column;gap:28px}.settings-section h3{font-size:14px;font-weight:600;color:var(--text-secondary);margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px}.services-editor{display:flex;flex-direction:column;gap:8px}.service-edit-row{display:flex;align-items:center;gap:8px}.service-edit-row input[type=text]{flex:1}.service-edit-row select{width:110px;flex-shrink:0}.color-input{width:36px;height:36px;padding:2px;border:1px solid var(--border);border-radius:6px;background:var(--bg);cursor:pointer}.availability-editor h3{font-size:14px;font-weight:600;color:var(--text-secondary);margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px}.avail-list{display:flex;flex-direction:column;gap:8px}.avail-row{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius)}.avail-row.disabled{opacity:.6}.avail-label{font-size:14px;font-weight:500;min-width:90px}.avail-times{display:flex;align-items:center;gap:8px;margin-left:auto}.avail-times input[type=time]{width:120px}.avail-to{font-size:12px;color:var(--text-tertiary)}.avail-off{font-size:13px;color:var(--text-tertiary);margin-left:auto}.avail-toggle{background:transparent;border:none;cursor:pointer;padding:0;flex-shrink:0}.toggle-track{display:block;width:36px;height:20px;background:var(--border);border-radius:10px;position:relative;transition:background .2s}.avail-toggle.on .toggle-track{background:var(--green)}.toggle-thumb{display:block;width:16px;height:16px;background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;transition:transform .2s}.avail-toggle.on .toggle-thumb{transform:translate(16px)}@media (max-width: 768px){.home-cards,.booking-layout{grid-template-columns:1fr}.time-slots{grid-template-columns:repeat(3,1fr)}.manage-header{flex-direction:column;align-items:flex-start;gap:12px}.manage-nav{width:100%}.share-bar,.avail-row{flex-wrap:wrap}.avail-times{margin-left:0;width:100%}.service-edit-row{flex-wrap:wrap}}@media (max-width: 480px){.booking-page,.manage-page{padding:20px 16px}.time-slots{grid-template-columns:repeat(2,1fr)}.booking-summary{flex-wrap:wrap}}
