:root{font-family:Iowan Old Style,Palatino Linotype,Book Antiqua,Georgia,serif;color:#f1eee5;background:#17231e;font-synthesis:none;--ink: #17231e;--ink-raised: #202f28;--line: #405047;--paper: #f1eee5;--muted: #b2b9ad;--copper: #e7a779;--sage: #9bb39e;--error: #e19786}*{box-sizing:border-box}body{min-width:320px;margin:0;background:radial-gradient(ellipse at 50% 0%,#2b3b31 0,var(--ink) 58%)}button,input{font:inherit}button{min-height:2.75rem;padding:.65rem 1rem;color:var(--ink);background:var(--copper);border:1px solid var(--copper);border-radius:2px;cursor:pointer;transition:background-color .18s ease,border-color .18s ease,transform .18s ease}button:hover:not(:disabled){background:#f1bd94;border-color:#f1bd94;transform:translateY(-1px)}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--sage);outline-offset:3px}button:disabled{opacity:.42;cursor:not-allowed}header{position:sticky;top:0;z-index:2;min-height:4.5rem;padding:.9rem max(1rem,calc((100% - 1240px)/2));display:flex;align-items:center;justify-content:space-between;gap:1.25rem;background:#17231ef2;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}header strong{color:var(--paper);font-size:.9rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}nav{display:flex;align-items:center;gap:1.2rem}a{color:var(--sage);text-decoration:none}a:hover{color:var(--copper)}.user-label{color:var(--muted);font:.82rem/1.4 system-ui,sans-serif}main{width:min(1240px,100%);min-height:calc(100vh - 9rem);margin:auto;padding:3.25rem 1.25rem 4rem}.page-heading{max-width:47rem;margin:0 auto 2.8rem;text-align:center;animation:arrive .45s ease both}.page-heading h1{margin:.35rem 0 .7rem;color:var(--paper);font-size:3.15rem;font-weight:400;line-height:1.08}.page-heading p{color:var(--muted);font-size:1.05rem;line-height:1.6}.eyebrow{color:var(--copper)!important;font:600 .72rem/1.4 system-ui,sans-serif!important;letter-spacing:.18em;text-transform:uppercase}.salon-heading{margin-bottom:3.2rem}.salon-heading h1{max-width:15ch;margin:.55rem auto}h2{margin:0 0 1rem;padding-bottom:.7rem;color:var(--paper);border-bottom:1px solid var(--line);font-size:1.35rem;font-weight:400}h3{margin:1.6rem 0 .8rem;color:var(--sage);font-size:1rem;font-weight:500}.booking-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(17rem,.8fr);gap:2.3rem;align-items:start}.booking-aside{display:grid;gap:1.5rem}.panel{padding:1.2rem;background:#202f28e0;border:1px solid var(--line);border-radius:3px;animation:arrive .4s ease both}.calendar-heading,.booking-bar{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.calendar-heading{margin-bottom:1.1rem}.calendar-heading strong{color:var(--paper);font-size:1.08rem;font-weight:500}.calendar-heading button{min-width:2.8rem;min-height:2.7rem;padding:0;font-family:system-ui,sans-serif;font-size:1.35rem}.calendar-heading .secondary,.secondary{color:var(--sage);background:transparent;border-color:var(--line)}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.45rem}.calendar b{padding:.3rem 0;color:var(--muted);text-align:center;font:600 .73rem/1.3 system-ui,sans-serif}.calendar button,.calendar>span{width:100%;aspect-ratio:1 / .88;min-height:4rem;padding:.45rem}.calendar button{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;text-align:left}.calendar button small{color:var(--ink);font:.68rem/1.2 system-ui,sans-serif}.calendar .available{color:var(--paper);background:transparent;border-color:#66786c}.calendar .available small{color:var(--sage)}.calendar .available:hover:not(:disabled){color:var(--ink);background:var(--sage);border-color:var(--sage)}.calendar .available:hover:not(:disabled) small{color:var(--ink)}.calendar .selected{color:var(--ink);background:var(--copper);border-color:var(--copper)}.calendar .selected small{color:var(--ink)}.calendar .unavailable{color:#899187;background:#0e151273;border-color:#35433b}.calendar .unavailable small{color:#899187}.booking-bar{margin-top:1.1rem;padding-top:1rem;border-top:1px solid var(--line);color:var(--muted);font:.9rem/1.4 system-ui,sans-serif}.booking-bar strong{margin-left:.5rem;color:var(--copper);font-size:1.05rem}.booking-bar button{white-space:nowrap}.booking-history h2{margin-bottom:.8rem}.booking-history .panel{min-height:5rem}.price-note{display:flex;flex-direction:column;gap:.45rem;padding:1rem 0;border-top:1px solid var(--line);color:var(--muted);font:.85rem/1.4 system-ui,sans-serif}.price-note strong{color:var(--copper);font:400 1.75rem/1.2 Georgia,serif}.price-note small{color:var(--muted);font:.8rem/1.4 system-ui,sans-serif}.form{width:min(100%,34rem);margin:auto}.auth-panel{display:grid;gap:.4rem}.auth-panel h3{margin:0 0 .5rem;color:var(--paper);font-size:1.2rem;font-weight:400}.name-fields{display:grid;grid-template-columns:1fr 1fr;gap:1rem}label{display:block;margin:.55rem 0;color:var(--muted);font:.82rem/1.4 system-ui,sans-serif}input{display:block;width:100%;min-height:2.8rem;margin-top:.4rem;padding:.65rem .7rem;color:var(--paper);background:#17231e;border:1px solid var(--line);border-radius:2px}input[aria-invalid=true]{border-color:var(--error)}input[type=date]{color-scheme:dark}.auth-panel .password-match,.auth-panel .password-mismatch{margin:-.2rem 0 .35rem;font:.82rem/1.4 system-ui,sans-serif}.auth-panel .password-match{color:var(--sage)}.auth-panel .password-mismatch{color:var(--error)}.text-button{min-height:auto;padding:.35rem 0;color:var(--sage);background:transparent;border:0;text-align:left}.text-button:hover:not(:disabled){color:var(--copper);background:transparent;transform:none}.auth-links{display:grid;justify-items:start;gap:.2rem;margin-top:.25rem}.notice{width:min(100%,48rem);margin:0 auto 1.2rem;padding:.8rem 1rem;color:var(--paper);background:#e7a7791a;border-left:3px solid var(--copper);font:.9rem/1.5 system-ui,sans-serif}.muted,footer{color:var(--muted)}ul{margin:0;padding:0;list-style:none}li{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.8rem 0;border-bottom:1px solid rgba(64,80,71,.7)}li:last-child{border-bottom:0}li span{min-width:0;display:grid;gap:.25rem}li small{overflow-wrap:anywhere;color:var(--muted);font:.72rem/1.4 system-ui,sans-serif;text-transform:capitalize}li strong{color:var(--copper);font:500 .95rem/1.2 system-ui,sans-serif;white-space:nowrap}.admin-page{width:min(100%,70rem);margin:auto}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}.admin-grid .form{margin:0 0 1.4rem}.loading-screen{display:grid;min-height:100vh;place-items:center;color:var(--muted);font:.95rem system-ui,sans-serif}footer{padding:1.7rem;border-top:1px solid var(--line);text-align:center;font:.75rem/1.4 system-ui,sans-serif}@keyframes arrive{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:760px){header{align-items:flex-start;flex-direction:column;gap:.5rem}nav{flex-wrap:wrap;gap:.8rem}.user-label{max-width:45vw;overflow-wrap:anywhere}main{padding:2.4rem 1rem 3rem}.page-heading h1{font-size:2.45rem}.booking-layout,.admin-grid{grid-template-columns:1fr;gap:1.7rem}.calendar{gap:.25rem}.calendar button,.calendar>span{min-height:3.4rem;padding:.3rem}.calendar button small{font-size:.58rem}.booking-bar{align-items:stretch;flex-direction:column}.booking-bar button{width:100%}}@media(max-width:390px){.name-fields{grid-template-columns:1fr;gap:0}.calendar button,.calendar>span{min-height:3rem}.calendar button small{font-size:.54rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
