@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700&family=Instrument+Serif:ital@0;1&display=swap";:root{--bg-1: #f4eee8;--bg-2: #e8dfd1;--card: rgba(255, 251, 245, .86);--card-border: rgba(31, 111, 139, .25);--text: #2b2120;--muted: #69585c;--brand: #1f6f8b;--brand-strong: #17576f;--accent: #d56f3e;--danger: #8b1f1f;--success: #1c7a43;--radius: 16px;--shadow: 0 12px 36px rgba(46, 33, 25, .15)}*{box-sizing:border-box}body{margin:0;font-family:Space Grotesk,sans-serif;color:var(--text);background:radial-gradient(circle at 15% 15%,rgba(213,111,62,.18),transparent 32%),radial-gradient(circle at 85% 0%,rgba(31,111,139,.2),transparent 38%),linear-gradient(165deg,var(--bg-1),var(--bg-2));min-height:100vh;overflow-x:hidden}h1,h2,h3{margin:0}p{margin:0;color:var(--muted)}.app-shell{min-height:100vh;padding:20px}.topbar{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:#0c2f44}.topbar-banner{display:block;width:100%;height:auto;max-height:280px;object-fit:contain}.logout-row{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}.preferences-actions{margin-top:14px}.main-area{margin-top:18px}.auth-wrap{display:grid;grid-template-columns:1fr;gap:16px;max-width:1100px;margin:24px auto;padding:16px}.hero-card{border-radius:var(--radius);padding:26px;background:linear-gradient(130deg,#1f6f8bf2,#d56f3ed6);color:#fff;box-shadow:var(--shadow)}.hero-card h1{font-family:"Instrument Serif",serif;font-size:clamp(2rem,4vw,3rem);letter-spacing:.5px}.hero-card p{margin-top:10px;color:#ffffffe0}.card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.card h2{margin-bottom:12px}.card-wide{grid-column:1 / -1}.upcoming-timeoff-card{border-color:#d56f3e61;background:linear-gradient(135deg,#d56f3e1f,#1f6f8b14),var(--card)}.upcoming-timeoff-card p+p{margin-top:6px}.tab-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.tab{border:1px solid rgba(31,111,139,.3);background:#fff;color:var(--brand-strong);border-radius:999px;padding:9px 14px;font-weight:600;cursor:pointer}.tab.active{background:var(--brand);color:#fff;border-color:transparent}.form-grid{display:grid;gap:10px;min-width:0}.form-grid>*{min-width:0}label{display:grid;gap:6px;font-size:.92rem;color:var(--muted)}input,select,textarea,button{font:inherit}input,select,textarea{border:1px solid rgba(43,33,32,.2);border-radius:10px;background:#fff;padding:10px 12px;max-width:100%}select{width:100%;min-width:0}textarea{min-height:90px;resize:vertical}.button{border:none;border-radius:10px;padding:10px 14px;background:var(--brand);color:#fff;cursor:pointer;font-weight:600;transition:transform .15s ease,filter .15s ease}.button:hover{filter:brightness(1.08);transform:translateY(-1px)}.button:disabled{opacity:.55;cursor:not-allowed;transform:none}.button-secondary{background:#f0e8db;color:var(--brand-strong);border:1px solid rgba(31,111,139,.25)}.button-row{display:flex;gap:10px;flex-wrap:wrap}.button-row.vertical{flex-direction:column}.auth-links{display:grid;gap:8px;margin-top:14px}.text-link{border:none;background:transparent;color:var(--brand-strong);text-align:left;padding:0;font-weight:600;text-decoration:underline;cursor:pointer}.text-link:hover{color:var(--brand)}.checkbox-list{display:grid;gap:8px;margin-bottom:6px}.checkbox-list p{font-size:.9rem;font-weight:700;color:var(--text)}.checkbox-list.compact{margin:10px 0}.checkbox-row{display:flex;align-items:center;gap:8px}.status{border-radius:10px;padding:10px 12px;margin-bottom:10px;font-size:.92rem}.status.success{background:#1c7a4324;color:var(--success);border:1px solid rgba(28,122,67,.35)}.status.error{background:#8b1f1f21;color:var(--danger);border:1px solid rgba(139,31,31,.3)}.status.full{grid-column:1 / -1}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:14px}.dashboard-grid>.card,.admin-top-grid>.card,.admin-dashboard>.card{min-width:0;width:100%}.admin-layout{max-width:1400px;margin:0 auto;display:grid;gap:14px}.admin-top-grid{display:grid;grid-template-columns:repeat(2,minmax(340px,1fr));gap:14px;align-items:start}.admin-top-card{min-height:100%}.admin-dashboard{max-width:1400px;margin:0 auto;grid-template-columns:repeat(2,minmax(340px,1fr));align-items:start}.admin-dashboard .card{padding:14px}.admin-dashboard .list-scroll,.admin-dashboard .slots-table-wrap{max-height:260px}.admin-dashboard .hours-row{grid-template-columns:minmax(110px,150px) minmax(95px,120px) minmax(0,1fr);gap:10px;padding:8px}.admin-dashboard .hours-time-field{flex:1 1 130px;min-width:120px;max-width:160px}.hours-grid{display:grid;gap:10px;margin-top:8px}.hours-row{display:grid;grid-template-columns:minmax(120px,170px) minmax(105px,135px) minmax(0,1fr);align-items:end;gap:12px;padding:10px;border-radius:10px;border:1px dashed rgba(43,33,32,.17)}.hours-day{font-weight:600;color:var(--text)}.hours-closed{white-space:nowrap}.hours-times{display:flex;flex-wrap:wrap;gap:8px;width:100%;min-width:0}.hours-time-field{display:grid;gap:4px;font-size:.82rem;color:var(--muted);flex:1 1 145px;min-width:145px;max-width:180px}.hours-time-field input{width:100%;min-width:0}.list-scroll{display:grid;gap:8px;margin-top:10px;max-height:320px;overflow-y:auto;overflow-x:hidden;padding-right:4px}.slots-table-wrap{margin-top:10px;max-height:320px;overflow-y:auto;overflow-x:hidden;border:1px solid rgba(31,111,139,.22);border-radius:12px;background:#fff}.slots-table{width:100%;border-collapse:collapse;min-width:0;table-layout:fixed}.slots-table th,.slots-table td{text-align:left;padding:10px;border-bottom:1px solid rgba(31,111,139,.14);word-break:break-word}.slots-table th{background:#1f6f8b0f;color:var(--text);font-size:.86rem}.slots-table th:nth-child(1),.slots-table td:nth-child(1){width:28%}.slots-table th:nth-child(2),.slots-table td:nth-child(2){width:auto}.slots-table th:last-child,.slots-table td:last-child{width:120px;white-space:nowrap;text-align:right}.slots-table td:last-child .button{width:100%}.customer-slots-table th:nth-child(1),.customer-slots-table td:nth-child(1){width:auto;white-space:nowrap;word-break:normal}.customer-slots-table th:last-child,.customer-slots-table td:last-child{width:96px}.customer-slots-table td:last-child .button{width:auto;padding:8px 13px;font-size:.9rem}.list-item,.appointment-card{border-radius:12px;border:1px solid rgba(31,111,139,.22);background:#fff;padding:10px;display:flex;justify-content:space-between;gap:10px;align-items:center}.appointment-card{align-items:flex-start}.compact-card{display:grid;gap:4px}.full-width{max-width:1100px}.date-nav{display:inline-flex;align-items:flex-end;gap:8px;width:auto;max-width:100%}.date-nav label{width:auto;min-width:0;margin:0}.date-nav input[type=date]{min-width:170px}.date-nav-button{width:40px;min-width:40px;height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center;line-height:1;font-size:1rem;font-weight:700}.grid-two{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}@media (max-width: 1180px){.admin-top-grid,.admin-dashboard{grid-template-columns:1fr}}@media (max-width: 920px){.hours-row,.admin-dashboard .hours-row{grid-template-columns:1fr;align-items:flex-start}.hours-times{display:grid;grid-template-columns:1fr}.hours-time-field,.admin-dashboard .hours-time-field{min-width:0;max-width:none;flex:1 1 auto}.hours-time-field input{min-width:0}.grid-two{grid-template-columns:1fr}}@media (max-width: 620px){.app-shell{padding:12px}.hero-card,.card{padding:14px}.topbar-banner{max-height:220px}.logout-row{justify-content:center}.dashboard-grid{grid-template-columns:1fr}.admin-layout,.admin-top-grid,.admin-dashboard{width:100%;max-width:100%}.hours-times{grid-template-columns:1fr}.date-nav input[type=date]{min-width:150px}.date-nav-button{width:36px;min-width:36px;height:36px;font-size:.95rem}.slots-table{min-width:100%}.customer-slots-table td:last-child .button{padding:7px 11px;font-size:.86rem}}.booking-badge{display:inline-flex;align-items:center;border-radius:999px;padding:2px 8px;font-size:.76rem;font-weight:700}.booking-badge-admin{background:#d56f3e2e;color:var(--accent);border:1px solid rgba(213,111,62,.35)}.booking-badge-customer{background:#1f6f8b1f;color:var(--brand-strong);border:1px solid rgba(31,111,139,.3)}
