:root{--ink:#29252a;--muted:#746d73;--bg:#f7f4f5;--paper:#fff;--line:#e9e1e5;--accent:#7c5c72;--accent2:#efe6eb;--ok:#39705b;--warn:#a16421;--danger:#a34752;--shadow:0 12px 40px rgba(63,42,56,.10)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 20%,#f2dfe8 0,transparent 35%),radial-gradient(circle at 90% 80%,#e8e0ef 0,transparent 35%),var(--bg)}.login-card{width:min(100%,400px);padding:36px;background:rgba(255,255,255,.92);border:1px solid rgba(255,255,255,.8);box-shadow:var(--shadow);border-radius:24px}.login-card h1{margin:16px 0 4px}.login-card p{margin:0 0 26px;color:var(--muted)}
.brand-mark{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:var(--accent);color:white;font:700 24px Georgia}.brand-mark.small{display:inline-grid;width:34px;height:34px;border-radius:10px;font-size:17px;margin-right:10px;vertical-align:middle}
label{display:grid;gap:7px;margin:15px 0;color:#504850;font-weight:600;font-size:13px}input,select,textarea{width:100%;border:1px solid #dcd2d7;border-radius:11px;padding:11px 12px;background:#fff;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(124,92,114,.12)}button{border:0;border-radius:10px;padding:10px 14px}.primary{background:var(--accent);color:white}.secondary{background:var(--accent2);color:var(--accent)}.ghost{background:transparent;color:var(--accent)}.square{background:white;border:1px solid var(--line);width:40px;height:40px;padding:0}.error{min-height:20px;margin-top:12px;color:var(--danger)}
.app-shell header{height:66px;padding:0 max(24px,calc((100vw - 1500px)/2));display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.app-shell header nav{display:flex;align-items:center;gap:6px}.tab{background:transparent;color:var(--muted)}.tab.active{background:var(--accent2);color:var(--accent)}
#calendar-view,.content-narrow{max-width:1500px;margin:auto;padding:26px 24px}.content-narrow{max-width:980px}.toolbar,.section-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px}.week-switcher,.toolbar-actions{display:flex;align-items:center;gap:8px}.week-switcher h2{font-size:20px;margin:0 0 0 8px}.summary{display:flex;gap:10px;margin:12px 0 18px}.summary span{background:white;border:1px solid var(--line);border-radius:999px;padding:7px 12px;color:var(--muted)}
.calendar-shell{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;gap:10px;align-items:stretch}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:10px;align-items:start;overflow-x:auto;padding-bottom:10px}.side-week{align-self:center;position:sticky;top:50%;height:72px;padding:0;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--accent);font-size:22px;box-shadow:0 6px 20px rgba(63,42,56,.08)}.side-week:hover{background:var(--accent2)}.day{min-height:480px;background:rgba(255,255,255,.65);border:1px solid var(--line);border-radius:16px;overflow:hidden}.day.today{border-color:#b699aa;box-shadow:0 0 0 2px rgba(124,92,114,.1)}.day-head{padding:13px;border-bottom:1px solid var(--line);background:#fff}.day-head strong{display:block;text-transform:capitalize}.day-head span{color:var(--muted);font-size:13px}.day-body{padding:9px;display:grid;gap:8px}.range-card{padding:8px 9px;border-radius:9px;background:#f1edf0;color:var(--muted);font-size:12px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:5px}.range-card.draft{background:#fff1dc;color:var(--warn)}.range-card button{padding:0;background:transparent;color:inherit}.range-actions{display:flex;gap:8px}.booking{padding:10px;border-radius:11px;background:white;border-left:4px solid var(--accent);box-shadow:0 3px 12px rgba(50,35,45,.07);cursor:pointer}.booking:hover{transform:translateY(-1px)}.booking.cancelled{opacity:.55;border-left-color:#aaa}.booking .time{font-weight:700}.booking .service{margin:4px 0}.booking .client{color:var(--muted);font-size:13px}.time-grid{position:relative;display:grid;grid-template-rows:repeat(60,13px) 24px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;user-select:none}.time-slot{min-height:0;height:auto;padding:0 8px;border-radius:0;border-bottom:1px solid #f5eff2;background:#fff;color:#9a9298;text-align:left;font-size:10px;line-height:13px;grid-column:1;z-index:1}.time-slot.hour{border-top:1px solid #e5dbe1}.time-slot:hover,.time-slot.selecting{background:var(--accent2);color:var(--accent)}.time-slot span{pointer-events:none}.time-range{position:absolute;left:4px;right:4px;z-index:2;margin:0;padding:5px 7px;box-shadow:0 4px 14px rgba(50,35,45,.10);overflow:hidden}.time-range .range-text{line-height:1.25}.time-range button{font-size:13px}.time-grid-end{height:24px;padding:5px 8px;background:#faf8f9;color:#aaa;font-size:11px;grid-column:1}.add-day-time{height:38px;padding:0;border:1px dashed #cbb7c3;background:#fff;color:var(--accent);font-size:22px;line-height:1;border-radius:12px;display:flex;align-items:center;justify-content:center}.add-day-time:hover{background:var(--accent2)}
.service-list{display:grid;gap:10px}.service-card{display:flex;justify-content:space-between;align-items:center;background:white;border:1px solid var(--line);border-radius:14px;padding:16px 18px;gap:14px}.service-card.inactive{opacity:.55}.service-card h3{margin:0 0 4px;font-size:16px}.service-card p,.section-heading p{margin:0;color:var(--muted)}.service-description{margin:8px 0!important;color:var(--ink)!important;line-height:1.5}.service-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.danger-action{color:var(--danger)}
dialog{width:min(94vw,520px);border:0;border-radius:20px;padding:0;box-shadow:var(--shadow)}dialog::backdrop{background:rgba(28,22,26,.42);backdrop-filter:blur(2px)}dialog form{padding:24px}.dialog-title{display:flex;align-items:center;justify-content:space-between}.dialog-title h3{margin:0}.icon-close{font-size:26px;background:transparent;color:var(--muted);padding:0 6px}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}.hint{font-size:13px;color:var(--muted)}.check{display:flex;grid-template-columns:auto 1fr;align-items:center}.check input{width:auto}.client-box{background:var(--accent2);border-radius:12px;padding:12px;margin:14px 0}.toast{position:fixed;right:24px;bottom:24px;background:#29252a;color:#fff;padding:12px 16px;border-radius:12px;box-shadow:var(--shadow);z-index:20}
@media(max-width:900px){.app-shell header{height:auto;min-height:60px;padding:10px 14px;gap:10px;align-items:flex-start}.app-shell header strong{display:none}.app-shell header nav{margin-left:auto;display:grid;grid-template-columns:auto auto auto;gap:4px}.calendar-shell{grid-template-columns:1fr}.side-week{display:none}.calendar-grid{display:flex;gap:12px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding:0 2px 14px}.calendar-grid::-webkit-scrollbar{height:8px}.calendar-grid::-webkit-scrollbar-thumb{background:#d8cbd2;border-radius:999px}.day{flex:0 0 min(430px,calc(100vw - 32px));min-height:380px;scroll-snap-align:start}.toolbar{align-items:stretch;flex-direction:column;gap:12px}.toolbar-actions{width:100%;display:grid;grid-template-columns:1fr 1fr 1fr}.toolbar-actions button{min-height:42px}.week-switcher{display:grid;grid-template-columns:40px auto 40px 1fr;align-items:center;width:100%}.week-switcher h2{min-width:0;margin:0 0 0 6px;font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.summary span{text-align:center;white-space:nowrap}.service-card{align-items:flex-start}.service-actions{min-width:max-content}}
@media(max-width:520px){#calendar-view,.content-narrow{padding:14px 10px}.brand-mark.small{width:30px;height:30px;margin-right:0}.tab,.app-shell header .ghost{padding:8px 9px;border-radius:8px;font-size:14px}.week-switcher{grid-template-columns:38px 1fr 38px}.week-switcher h2{grid-column:1/-1;grid-row:2;margin:4px 0 0;font-size:17px}.week-switcher #today{grid-column:2}.toolbar-actions{grid-template-columns:1fr 1fr}.toolbar-actions #publish{grid-column:1/-1}.summary{grid-template-columns:1fr}.summary span{text-align:left}.day{flex-basis:calc(100vw - 20px);border-radius:12px}.day-head{padding:11px}.day-body{padding:8px}.booking{padding:9px}.time-grid .booking{left:36px;right:4px;padding:6px}.time-slot{padding:0 6px}.two-cols{grid-template-columns:1fr}.section-heading{align-items:stretch;flex-direction:column;gap:12px}.section-heading #add-service{width:100%}.service-card{display:grid;gap:12px;padding:14px}.service-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.login-card{padding:26px}dialog{width:100vw;max-width:none;margin:auto 0 0;border-radius:18px 18px 0 0}dialog form{max-height:calc(100dvh - 18px);overflow:auto;padding:20px 16px calc(20px + env(safe-area-inset-bottom))}.dialog-actions{display:grid;grid-template-columns:1fr 1fr}.toast{left:12px;right:12px;bottom:12px;text-align:center}}
.time-grid .booking{position:absolute;left:42px;right:5px;z-index:3;margin:0;padding:7px 8px;overflow:hidden}.time-grid .booking .service{margin:2px 0}.time-grid .booking .client{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.booking-references{margin:14px 0}.booking-references h4{margin:0 0 8px;font-size:14px}.booking-reference-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.booking-reference-grid a{display:block;aspect-ratio:1;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:#fff}.booking-reference-grid img{width:100%;height:100%;object-fit:cover;display:block}
.settings-block{margin:0 0 22px}.settings-block-head{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px}.settings-block-head h3{margin:0 0 3px}.settings-block-head p{margin:0;color:var(--muted)}.broadcast-field{margin:0 0 12px}.broadcast-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px}.broadcast-actions button{min-width:130px}.clients-list{display:grid;gap:8px}.client-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 14px;background:white;border:1px solid var(--line);border-radius:12px}.client-row.blacklisted{border-color:#e4b4bb;background:#fff8f9}.client-main{display:grid;gap:4px;min-width:0}.client-title{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.client-title b{font-size:15px}.client-title .badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;background:#f2d8dc;color:var(--danger);font-size:12px}.client-meta{color:var(--muted);font-size:13px}.client-action{white-space:nowrap}.audit-toolbar{display:grid;grid-template-columns:minmax(150px,1fr) minmax(160px,1fr) 120px auto;gap:12px;align-items:end;margin-bottom:14px}.audit-toolbar label{margin:0}.audit-output{min-height:420px;max-height:65vh;overflow:auto;margin:0;padding:14px;border:1px solid var(--line);border-radius:12px;background:#171417;color:#f7f4f5;font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre-wrap;word-break:break-word}.audit-empty{color:var(--muted)}@media(max-width:700px){.settings-block-head{align-items:stretch;flex-direction:column}.broadcast-actions{align-items:stretch;flex-direction:column}.broadcast-actions button{width:100%}.client-row{grid-template-columns:1fr}.client-action{width:100%}.audit-toolbar{grid-template-columns:1fr}.audit-toolbar button{min-height:42px}.audit-output{max-height:58vh}}
