.admin-body{min-height:100vh;background:#f2efeb}.admin-header{min-height:76px;padding:12px max(22px,calc((100% - 1050px)/2));display:flex;align-items:center;justify-content:space-between;background:#302c31;color:#f4eff2}.admin-header>a:last-child{font-size:12px;color:#d4c7d7}.admin-brand{display:flex;gap:10px;align-items:center;color:#c1a8c6;font:italic 24px var(--serif)}.admin-brand span{color:#f4eff2}.admin-main{width:min(940px,calc(100% - 36px));margin:70px auto 110px}.admin-main h1{font:400 clamp(42px,7vw,62px)/1 var(--serif);margin:0 0 14px}.admin-login{max-width:430px;margin:10vh auto;padding:34px;background:#faf8f4}.admin-login>p:not(.kicker){font-size:13px;color:#70686d}.admin-login form{margin-top:25px}.admin-login label,.appointment-update label{display:block;font-size:11px;color:#655c63;margin:0 0 6px}.admin-login input{margin-bottom:14px}.admin-login button{width:100%}.admin-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px}.admin-logout{background:transparent;border:1px solid #c9c0c8;padding:9px 15px;cursor:pointer}.appointment-list{display:grid;gap:17px}.appointment-card{background:#fbfaf7;border:1px solid #ded9d4;padding:25px}.appointment-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.appointment-card-top h2{font:500 29px var(--serif);margin:0}.appointment-card-top p{font-size:10px;color:#81777e;margin:0}.status-pill{background:#e8e1e8;color:#56475b;border-radius:20px;padding:5px 12px;font-size:10px;white-space:nowrap}.status-confirmed .status-pill{background:#e1eadf;color:#3c6143}.status-cancelled .status-pill{background:#efe1de;color:#76504a}.appointment-details{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px;margin:21px 0 24px;padding:17px;background:#f3f0ec}.appointment-details div{min-width:0}.appointment-details dt{font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:#8a7d88}.appointment-details dd{font-size:12px;line-height:1.6;margin:3px 0 0;overflow-wrap:anywhere}.appointment-update{border-top:1px solid #e2ddda;padding-top:19px}.admin-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.appointment-update textarea{margin:0 0 12px}.appointment-update .button{min-height:44px;font-size:12px}.appointment-update .admin-message{margin:7px 0 0}.appointment-update:has(select[name=status] option[value=cancelled]:checked) input[required]{opacity:.6}.admin-message{min-height:18px;font-size:12px;color:#6e5a70}.admin-message.error{color:#9d3e39}.admin-message.warning{color:#8a5d20}.empty-appointments{background:#fbfaf7;padding:24px;color:#70686d}
@media(max-width:600px){.admin-main{margin-top:42px}.admin-header{padding-inline:18px}.admin-brand{font-size:20px}.admin-header>a:last-child{font-size:10px}.admin-login{padding:24px}.appointment-card{padding:17px}.appointment-details{grid-template-columns:1fr;gap:8px;padding:13px}.admin-fields{grid-template-columns:1fr 1fr}.admin-fields>div:first-child{grid-column:1/-1}.appointment-card-top h2{font-size:25px}}
@media(min-width:601px){.admin-fields{grid-template-columns:1.1fr 1fr 1fr 1fr}}
.admin-stripe-notice{padding:12px 16px;background:#efe6d7;color:#73551e;font-size:12px}
.admin-brand{gap:12px;color:#f4eff2;font:500 17px var(--sans)}
.admin-logo{width:56px;height:56px;background:white;object-fit:cover;border-radius:50%;border:2px solid #d2bbd7;box-shadow:0 0 0 3px rgba(198,171,203,.13);flex:none}
.admin-header>a:last-child{flex:none}
.admin-verification-actions{display:flex;justify-content:space-between;gap:12px;margin-top:14px}.admin-verification-actions button{border:0;padding:0;background:transparent;color:#594a5c;font-size:11px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.admin-login #admin-verification-intro{margin-top:25px}.admin-login #admin-verification-intro strong{overflow-wrap:anywhere}
.admin-tabs{display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid #d8d1d6;margin:0 0 28px}
.admin-tabs button{padding:12px 16px;border:0;border-bottom:2px solid transparent;background:transparent;color:#70686d;font:500 12px var(--sans);cursor:pointer}
.admin-tabs button.active{border-color:#8c7190;color:#423547}
.admin-tab-panel>h2{font:500 32px var(--serif);margin:0 0 8px}
.admin-tab-panel>p:not(.admin-message,.admin-stripe-notice){font-size:13px;color:#70686d;line-height:1.6}
.studio-form{max-width:650px;background:#fbfaf7;border:1px solid #ded9d4;padding:22px;margin:20px 0}
.studio-form label{display:block;font-size:11px;color:#655c63;margin:12px 0 6px}
.studio-form input,.studio-form select,.studio-form textarea{width:100%;font:14px var(--sans);padding:11px;border:1px solid #d7d0d3;background:#fff;color:#302c31}
.studio-form input[type=file]{padding:9px}
.studio-form-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.studio-form-actions{display:flex;gap:10px;margin-top:16px}
.studio-form-actions .button{min-height:42px;padding:10px 16px;font-size:12px}
.studio-content-list{display:grid;gap:12px;margin-top:20px}
.studio-content-card{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;background:#fbfaf7;border:1px solid #ded9d4;padding:18px}
.studio-content-card h3{font:500 23px var(--serif);margin:0 0 4px}
.studio-content-card p{font-size:12px;line-height:1.55;color:#70686d;margin:5px 0}
.studio-content-actions{display:flex;gap:8px;flex:none}
.studio-content-actions button{padding:8px 11px;border:1px solid #c9c0c8;background:transparent;color:#403741;cursor:pointer;font:11px var(--sans)}
.studio-gallery-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;margin-top:20px}
.studio-gallery-card{background:#fbfaf7;border:1px solid #ded9d4;padding:12px}
.studio-gallery-card img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:#eee}
.studio-gallery-card h3{font:500 21px var(--serif);margin:9px 0}
.studio-gallery-card button{padding:8px 11px;border:1px solid #c9c0c8;background:transparent;color:#403741;cursor:pointer;font:11px var(--sans)}
@media(max-width:600px){.admin-tabs{gap:0}.admin-tabs button{flex:1;padding:10px 6px;font-size:10px}.studio-form{padding:16px}.studio-content-card{display:block}.studio-content-actions{margin-top:12px}.studio-form-pair{grid-template-columns:1fr}}
.appointment-delete{margin-top:14px;min-height:44px;padding:10px 14px;border:1px solid #a96058;background:transparent;color:#843e38;font:12px var(--sans);cursor:pointer}.appointment-delete:disabled{opacity:.55}
