:root{--bg: #f7f8fa;--surface: #ffffff;--surface-2: #eef1f5;--border: #d5dbe3;--text: #1a2330;--text-muted: #51607a;--brand: #0f5f74;--brand-dark: #0a4757;--brand-contrast: #ffffff;--accent: #7a4df0;--danger: #b3261e;--danger-bg: #fbeae9;--ok: #1e6b3a;--ok-bg: #e6f3ea;--warn: #7a5900;--warn-bg: #fdf3d7;--focus: #1a73e8;--radius: 8px;--shadow: 0 1px 3px rgba(16, 24, 40, .1), 0 1px 2px rgba(16, 24, 40, .06);--banner-h: 34px;--st-requested: #8a5a00;--st-accepted: #0f5f74;--st-awaiting: #6d4fc4;--st-confirmed: #1e6b3a;--st-arrived: #0b6e63;--st-ready: #305dbb;--st-inprogress: #a34d00;--st-completed: #3f4c60;--st-cancelled: #7a1f1a;--st-denied: #7a1f1a;--st-noshow: #93242c}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:15px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}a{color:var(--brand)}:focus-visible{outline:3px solid var(--focus);outline-offset:1px;border-radius:4px}.env-banner{position:sticky;top:0;z-index:200;height:var(--banner-h);display:flex;align-items:center;justify-content:center;gap:8px;background:repeating-linear-gradient(135deg,#7a1f1a,#7a1f1a 18px,#93242c 18px,#93242c 36px);color:#fff;font-weight:600;font-size:13px;letter-spacing:.02em;padding:0 12px;text-align:center}.shell{display:flex;min-height:calc(100% - var(--banner-h))}.sidebar{width:220px;flex:0 0 220px;background:var(--surface);border-right:1px solid var(--border);padding:12px 8px;display:flex;flex-direction:column;gap:2px}.sidebar h1{font-size:16px;margin:6px 10px 14px;color:var(--brand-dark)}.sidebar nav{display:flex;flex-direction:column;gap:2px}.sidebar a{display:block;padding:8px 10px;border-radius:6px;color:var(--text);text-decoration:none;font-size:14px}.sidebar a:hover{background:var(--surface-2)}.sidebar a[aria-current=page]{background:var(--brand);color:var(--brand-contrast)}.sidebar .section-label{margin:12px 10px 4px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.main{flex:1;min-width:0;padding:20px 24px}.page-title{font-size:20px;font-weight:700;margin:0 0 16px}.page-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:14px;font-weight:600;cursor:pointer}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--brand);border-color:var(--brand);color:var(--brand-contrast)}.btn-primary:hover{background:var(--brand-dark)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-sm{padding:4px 10px;font-size:13px}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.field label{font-size:13px;font-weight:600}.field input,.field select,.field textarea{padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:14px;font-family:inherit;background:var(--surface);color:var(--text)}.field .error{color:var(--danger);font-size:13px}.field input[aria-invalid=true],.field select[aria-invalid=true]{border-color:var(--danger)}.error-summary{border:2px solid var(--danger);background:var(--danger-bg);color:var(--danger);border-radius:var(--radius);padding:10px 14px;margin-bottom:14px;font-size:14px}.table{width:100%;border-collapse:collapse;font-size:14px}.table th,.table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}.table th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.table tr:hover td{background:var(--surface-2)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:700;border:1.5px solid currentColor;background:var(--surface)}.skeleton{background:var(--surface-2);border-radius:6px;min-height:18px;animation:pulse 1.2s infinite ease-in-out}@keyframes pulse{0%,to{opacity:.55}50%{opacity:1}}.empty-state{text-align:center;color:var(--text-muted);padding:40px 16px}.empty-state .hint{font-size:14px;margin-top:6px}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182873;z-index:300}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(480px,96vw);background:var(--surface);border-left:1px solid var(--border);z-index:301;padding:20px;overflow-y:auto;box-shadow:-6px 0 24px #1018282e}.drawer h2{margin-top:0}@media(max-width:900px){.shell{flex-direction:column}.sidebar{width:100%;flex:none;flex-direction:row;overflow-x:auto;align-items:center}.sidebar nav{flex-direction:row}.sidebar h1{margin:0 12px 0 6px;white-space:nowrap}.sidebar .section-label{display:none}.main{padding:14px}}.public-wrap{max-width:560px;margin:0 auto;padding:16px}.public-wrap .card{padding:20px}.public-header{text-align:center;margin:10px 0 18px}.public-header h1{font-size:22px;margin:0;color:var(--brand-dark)}.choice-list{display:flex;flex-direction:column;gap:10px}.choice-btn{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;padding:14px 16px;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface);font-size:15px;cursor:pointer}.choice-btn:hover,.choice-btn[aria-pressed=true]{border-color:var(--brand);background:#eef7f9}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}.slot-btn{padding:10px 6px;border:1.5px solid var(--border);border-radius:6px;background:var(--surface);font-size:14px;font-weight:600;cursor:pointer;text-align:center}.slot-btn:hover,.slot-btn[aria-pressed=true]{border-color:var(--brand);background:#eef7f9}body.cal-dragging *{user-select:none!important;-webkit-user-select:none!important}.cal-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;user-select:none;-webkit-user-select:none}.cal-header-row{display:flex;border-bottom:1px solid var(--border);background:var(--surface-2)}.cal-col-header{padding:8px 6px;text-align:center;border-left:1px solid var(--border);min-width:0}.cal-col-title{font-weight:700;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}button.cal-col-title-link{background:none;border:none;padding:0;font:inherit;font-weight:700;font-size:15px;color:var(--brand);cursor:pointer;text-decoration:underline;text-underline-offset:3px}button.cal-col-title-link:hover{filter:brightness(.85)}button.cal-col-title-link:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.cal-col-sub{font-size:12.5px;color:var(--text-muted)}.loc-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.cal-body{display:flex;overflow-x:auto}.cal-gutter{flex:0 0 56px;width:56px}.cal-hour-label{font-size:12.5px;color:var(--text-muted);text-align:right;padding-right:6px;transform:translateY(-6px)}.cal-grid{position:relative;flex:1;min-width:480px}.cal-line{position:absolute;left:0;right:0;border-top:1px solid #eceff3;pointer-events:none}.cal-line-hour{border-top-color:var(--border)}.cal-col{position:absolute;top:0;bottom:0;border-left:1px solid var(--border)}.cal-col:hover .cal-add-btn{opacity:1}.cal-add-btn{position:absolute;top:2px;right:2px;z-index:5;opacity:0;width:22px;height:22px;line-height:1;border:1px solid var(--border);border-radius:4px;background:var(--surface);cursor:pointer;font-size:15px;color:var(--brand)}.cal-add-btn:focus-visible{opacity:1}.cal-appt{position:absolute;left:3px;right:6px;z-index:2;background:var(--st-accepted);color:#fff;border:1px solid rgba(0,0,0,.18);border-radius:4px;padding:1px 6px;font-size:13.5px;line-height:1.15;overflow:hidden;cursor:grab;box-shadow:var(--shadow);touch-action:none}.cal-appt:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.cal-appt-dragging{opacity:.9;cursor:grabbing;z-index:10;box-shadow:0 6px 18px #10182859}.cal-appt-ghost{opacity:.3;pointer-events:none}.cal-appt-time{font-weight:700;color:inherit;opacity:.92;font-size:12px;white-space:nowrap;overflow:hidden}.cal-appt-name{font-weight:700;color:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-appt-phone{color:inherit;opacity:.92;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-appt-svc{color:inherit;opacity:.92;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-cleanup{position:absolute;left:-4px;right:0;bottom:0;background:repeating-linear-gradient(45deg,transparent,transparent 4px,#d8dee7 4px,#d8dee7 6px);pointer-events:none}.cal-resize-handle{position:absolute;left:0;right:0;bottom:0;height:7px;cursor:ns-resize}.cal-block{position:absolute;left:3px;right:6px;z-index:1;background:repeating-linear-gradient(135deg,#ffedd5,#ffedd5 8px,#fed7aa 8px,#fed7aa 16px);border:1px dashed #ea580c;border-radius:4px;color:#7c2d12;font-size:13px;padding:2px 6px;overflow:hidden}.cal-now-line{position:absolute;left:0;right:0;z-index:4;border-top:2px solid #d92d20}.cal-now-line:before{content:"";position:absolute;left:-4px;top:-5px;width:8px;height:8px;border-radius:50%;background:#d92d20}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.month-dow{background:var(--surface-2);padding:6px;text-align:center;font-size:13.5px;font-weight:700}.month-day{background:var(--surface);min-height:96px;padding:4px 6px;text-align:left;cursor:pointer;border:0;font:inherit}.month-day:hover{background:var(--surface-2)}.month-day.other{color:var(--text-muted);background:#fbfcfd}.month-day.today .month-day-num{background:var(--brand);color:#fff;border-radius:50%}.month-day-num{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;font-weight:700;font-size:13.5px}.month-count{margin-top:4px;font-size:11px;color:var(--text-muted)}.month-chip{display:block;font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:3px solid var(--st-accepted);padding-left:4px;margin-top:2px}.cal-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.cal-toolbar .spacer{flex:1}.seg{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}.seg button{border:0;background:var(--surface);padding:7px 12px;font-size:13px;font-weight:600;cursor:pointer;border-right:1px solid var(--border)}.seg button:last-child{border-right:0}.seg button[aria-pressed=true]{background:var(--brand);color:#fff}.cal-range-label{font-weight:700;min-width:200px;text-align:center}.link-button{background:none;border:0;padding:0;color:var(--brand);font:inherit;font-weight:600;cursor:pointer;text-decoration:underline}.link-button:hover{color:var(--brand-dark)}.cal-status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px;vertical-align:middle}.color-swatch{display:inline-block;width:16px;height:16px;border-radius:4px;border:1px solid rgba(0,0,0,.15);vertical-align:middle}.color-picker{display:flex;gap:6px;flex-wrap:wrap}.color-dot-btn{width:26px;height:26px;border-radius:6px;border:2px solid transparent;cursor:pointer;padding:0}.color-dot-btn[aria-pressed=true]{border-color:var(--text);box-shadow:0 0 0 2px #fff inset}.cal-block{text-align:left;font-family:inherit;cursor:pointer}.cal-block:hover{filter:brightness(.96)}.cal-block:focus-visible{outline:3px solid var(--focus);outline-offset:1px}.cal-block-allday{background:#fdba74;border:1px solid #ea580c;color:#431407;font-weight:600;z-index:2}.sidebar a.nav-attention{background:#ffedd5;color:#7c2d12;font-weight:700}.sidebar a.nav-attention[aria-current=page]{background:#f97316;color:#fff}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;margin-left:8px;border-radius:999px;background:#ea580c;color:#fff;font-size:12px;font-weight:700}
