@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Oswald:wght@400;500;600;700&display=swap');:root{--bg:#141414;--panel:#202020;--text:#f5f0e9;--gold:#d6ad70;--muted:#aaa49c}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font:16px 'DM Sans',sans-serif}a{color:inherit;text-decoration:none}.demo{background:#e2ba80;color:#211c16;text-align:center;padding:9px 12px;font-size:11px;font-weight:700;letter-spacing:.08em}header{height:84px;display:flex;align-items:center;justify-content:space-between;padding:0 7%;border-bottom:1px solid #ffffff1c}.logo,footer strong{font:700 32px Oswald,sans-serif;letter-spacing:-1px}.logo span,footer strong span{color:var(--gold)}nav{display:flex;gap:28px;font-size:13px;text-transform:uppercase;letter-spacing:.12em}nav a:hover{color:var(--gold)}.hero{padding:130px 7% 105px;min-height:630px;background:radial-gradient(ellipse at 85% 25%,#4d3b2b 0%,transparent 42%),linear-gradient(135deg,#202020,#101010);position:relative}.eyebrow{font-size:12px;font-weight:700;color:var(--gold);letter-spacing:.24em}h1,h2{font-family:Oswald,sans-serif;text-transform:uppercase;line-height:1.04;margin:18px 0 24px}h1{font-size:clamp(64px,10vw,150px);letter-spacing:-.035em}h2{font-size:clamp(45px,6vw,85px)}h1 em,h2 em{color:var(--gold);font-style:normal}.hero>p{max-width:490px;color:#d2ccc4;line-height:1.8}.btn{border:0;display:inline-flex;justify-content:space-between;gap:35px;align-items:center;background:var(--gold);color:#161616;padding:19px 24px;font-size:13px;font-weight:800;letter-spacing:.08em;cursor:pointer;margin-top:24px}.btn:hover{background:#edc994}.disclaimer{font-size:11px;color:#999!important;margin-top:24px}.intro{display:grid;grid-template-columns:1fr 1fr;gap:8%;padding:110px 7%;align-items:center}.intro p,.booking>div>p{color:#bfb9b0;line-height:1.9;max-width:490px}.services{padding:100px 7%;background:#1c1c1c}.section-top{display:flex;align-items:end;justify-content:space-between}.section-top p{color:var(--muted)}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.service-card{padding:34px;background:#262626;border:1px solid #3b3835}.service-card h3{font:500 27px Oswald,sans-serif;text-transform:uppercase}.service-card p{color:#b9b4ac;min-height:52px;line-height:1.6}.service-card .price{color:var(--gold);font-size:19px}.booking{padding:110px 7%;display:grid;grid-template-columns:1fr 1.15fr;gap:9%}.note{font-size:13px;color:var(--gold);max-width:400px;line-height:1.7}form{background:#242424;padding:35px;border:1px solid #403c36}label{display:block;font-size:13px;font-weight:700;margin:18px 0 9px}label small{font-weight:400;color:var(--muted);margin-left:8px}input:not([type=checkbox]),select{width:100%;background:#171717;border:1px solid #4c4944;color:white;padding:15px;border-radius:0;font:inherit;color-scheme:dark}input:focus,select:focus,button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.choices{display:flex;flex-wrap:wrap;gap:8px}.choice,.slot{background:#171717;border:1px solid #4c4944;color:white;padding:11px 14px;cursor:pointer;font:inherit}.choice.active,.slot.active{border-color:var(--gold);background:#51412f}.slots{display:flex;flex-wrap:wrap;gap:9px;min-height:40px}.muted{color:var(--muted);font-size:13px}.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.consent{font-size:12px;font-weight:400;color:#c3bdb4;line-height:1.6;display:flex;gap:9px;align-items:flex-start}.consent input{margin-top:4px}#feedback{margin-top:18px;line-height:1.7}footer{border-top:1px solid #38332e;padding:48px 7%;display:flex;justify-content:space-between;gap:25px;color:#bbb;font-size:13px;line-height:1.8}@media(max-width:800px){header{padding:0 5%;height:70px}nav{gap:12px;font-size:11px}.hero{padding:100px 6% 75px;min-height:520px}.intro,.booking{grid-template-columns:1fr;gap:25px;padding:75px 6%}.services{padding:75px 6%}.service-grid{grid-template-columns:1fr}.section-top{align-items:start;gap:12px}form{padding:22px}footer{flex-direction:column;padding:40px 6%}}@media(max-width:430px){nav a:first-child,nav a:nth-child(2){display:none}.two{grid-template-columns:1fr}}

/* NexWeb owner dashboard controls */
.hours-grid{display:grid;gap:12px;margin:18px 0 24px}.day-row{display:grid;grid-template-columns:minmax(125px,1fr) minmax(135px,1fr) minmax(135px,1fr) 70px;align-items:center;gap:14px;padding:14px;border:1px solid #49413b;border-radius:8px;background:#1b1b1b}.day-row label{margin:0}.day-row input[type=time],#employeeStaff{display:block;width:100%;background:#242424;color:#fff;border:1px solid #756a60;padding:10px;border-radius:5px}.day-toggle{display:flex;gap:10px;align-items:center}.day-toggle input{width:auto}.closed-note{color:#d4b5a2}.day-row input:disabled{opacity:.4}@media(max-width:680px){.day-row{grid-template-columns:1fr 1fr}.day-toggle{grid-column:1/-1}.closed-note{grid-column:1/-1}}

.manage-card{padding:22px;margin:18px 0;border:1px solid #777;border-radius:12px;display:grid;gap:12px}.manage-card input:not([type=checkbox]),.manage-card select{width:100%;max-width:500px}.service-checks{display:flex;flex-wrap:wrap;gap:14px}.service-checks label{display:inline-flex;align-items:center;gap:5px}.manage-card .day-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px}.manage-card .day-row input[type=time]{width:auto;min-width:130px}

/* Dashboard 2.2: layout and navigation; retains LBMB's charcoal/gold theme. */
[hidden]{display:none!important}
.portal-layout{display:grid;grid-template-columns:235px minmax(0,1fr);gap:32px;align-items:start;margin-top:28px}
.portal-sidebar{position:sticky;top:20px;background:#202020;border:1px solid #403c36;padding:22px;min-height:70vh}
.portal-brand{font:700 27px Oswald,sans-serif;margin-bottom:26px}.portal-brand span{color:var(--gold)}.portal-brand small{display:block;font:600 10px 'DM Sans',sans-serif;letter-spacing:.2em;color:var(--muted);margin-top:6px}
.portal-nav{display:flex;flex-direction:column;gap:5px}.portal-nav button{width:100%;border:0;border-left:3px solid transparent;background:transparent;color:var(--text);padding:14px 12px;text-align:left;cursor:pointer;font:600 13px 'DM Sans',sans-serif}.portal-nav button:hover,.portal-nav button.selected{border-left-color:var(--gold);background:#3a3025;color:#f8d49d}
.portal-logout{margin-top:26px;width:100%;text-align:center}.portal-content{min-width:0}.portal-toolbar{display:flex;align-items:center;gap:20px;border-bottom:1px solid #403c36;margin-bottom:26px;padding-bottom:15px}.portal-toolbar h2{font-size:clamp(34px,4vw,60px);margin:7px 0}.portal-toolbar #menuToggle{display:none}.portal-view{min-width:0}.portal-view>h3,.portal-section-title{font:500 30px Oswald,sans-serif;text-transform:uppercase;color:var(--gold);margin:30px 0 20px}.portal-view form{margin-bottom:24px}.portal-welcome{padding:30px;background:#242424;border:1px solid #403c36}.portal-welcome h3{font:500 32px Oswald,sans-serif;margin:0 0 10px}.portal-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:20px}.portal-stats article{background:#242424;border:1px solid #403c36;padding:26px}.portal-stats strong{display:block;font:600 45px Oswald,sans-serif;color:var(--gold)}.portal-stats span{font-size:12px;color:var(--muted)}
@media(max-width:900px){.portal-layout{display:block}.portal-sidebar{display:none;position:static;min-height:auto;margin-bottom:20px}.portal-sidebar.expanded{display:block}.portal-toolbar #menuToggle{display:block}.portal-toolbar{justify-content:flex-start}.portal-stats{grid-template-columns:1fr}}

/* Dashboard 2.4: appointment tabs and readable booking table */
.appointment-tabs{display:flex;gap:10px;margin:14px 0 12px;flex-wrap:wrap}
.appointment-tabs .choice{min-width:135px;font-weight:700}
.appointment-tabs .choice.active{border-color:var(--gold);color:var(--gold)}
.appointment-table{width:100%;border-collapse:collapse;min-width:670px}
.appointment-table td{padding:13px 14px;border-bottom:1px solid #403c36;vertical-align:middle}
.appointment-table tbody tr:hover{background:#25221f}
.appointment-table .status{min-width:145px;padding:10px}
.empty-appointments{padding:32px 20px;border:1px solid #403c36;background:#202020;color:var(--muted)}

/* Dashboard 2.5: service management */
#serviceEditor{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:18px;margin-bottom:35px}#serviceEditor .manage-card{margin:0}#serviceEditor .service-active{display:flex;align-items:center;gap:12px}#serviceEditor .service-active input{width:auto}


/* LBMB 2.8 — Mobile booking polish.
   Keep time-slot controls consistent and readable on narrow screens. */
@media (max-width: 600px) {
  #bookingForm { padding: 18px; min-width: 0; }
  #bookingForm label { font-size: 14px; }
  #bookingForm input:not([type="checkbox"], [type="date"]),
  #bookingForm input[type="date"],
  #bookingForm select { width: 100%; min-width: 0; max-width: 100%; font-size: 16px; padding: 13px 12px; }
  .choices { display: grid; grid-template-columns: 1fr; gap: 8px; }
  .choice { width: 100%; min-width: 0; text-align: left; padding: 12px 14px; font-size: 15px; line-height: 1.35; }
  .slots { display: grid; grid-template-columns: 1fr; gap: 8px; width: 100%; }
  .slot { display: block; width: 100%; min-width: 0; max-width: 100%; padding: 12px 14px; text-align: left; font-size: 15px; line-height: 1.35; overflow-wrap: anywhere; }
  .booking { min-width: 0; }
  .booking > div, #bookingForm { min-width: 0; }
  .btn { max-width: 100%; width: 100%; justify-content: space-between; gap: 12px; padding: 16px 14px; font-size: 12px; }
}
@media (max-width: 380px) {
  #bookingForm { padding: 14px; }
  .slot, .choice { padding: 11px 10px; font-size: 14px; }
}

/* Respect hidden attribute on conditional SMS consent row. */
#smsConsentLabel[hidden]{display:none!important}
