@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Outfit:wght@400;500;600;700;800&display=swap');
:root{--accent:#8564db;--ink:#241e36;--muted:#89849a;--border:#eeeaf4;--bg:#f8f7fb;--surface:#fff;--shadow:0 12px 35px rgba(37,25,65,.055)}
*{box-sizing:border-box}body{margin:0;background:var(--bg);font-family:'DM Sans',system-ui,-apple-system,Arial,sans-serif;color:var(--ink);font-size:15px;line-height:1.55}h1,h2,h3,h4,strong,b,.brand{letter-spacing:-.025em}h1,h2,h3,.brand{font-family:'Outfit','DM Sans',sans-serif}h1{font-size:clamp(29px,3vw,42px);margin:0 0 12px;line-height:1.16}h2{font-size:22px;margin:0 0 12px}h3{font-size:18px;margin:15px 0 10px}h4{font-size:15px;margin:0}p{margin:0 0 18px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button{cursor:pointer}.brand{font-size:26px;font-weight:800;letter-spacing:-.07em;color:var(--ink);white-space:nowrap}.brand span{color:#d7b5eb}.brand.large{font-size:36px}label{display:block;font-size:13px;font-weight:700;color:#625a75;margin:0 0 15px}label input:not([type=checkbox]),label select,label textarea{width:100%;margin-top:6px}input:not([type=checkbox]),select,textarea{border:1px solid #ded9e8;border-radius:11px;padding:12px 13px;color:var(--ink);background:#fff;min-height:43px;outline:0;max-width:100%}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 13%,transparent)}input[type=color]{padding:3px;max-width:100px;height:46px}input[type=date]{min-width:160px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--accent);color:#fff;font-weight:700;font-size:14px;border:1px solid var(--accent);padding:11px 18px;border-radius:11px;min-height:44px;white-space:nowrap}.btn:hover{filter:brightness(.94);color:white;text-decoration:none}.btn.ghost{background:white;color:var(--accent);border-color:#e8e1f6}.btn.ghost:hover{background:#f9f6ff;color:var(--accent)}.btn.full{width:100%}.btn.tiny{font-size:12px;padding:6px 10px;min-height:32px;border-radius:8px}.sidebar{position:fixed;left:0;top:0;height:100vh;width:242px;background:#1d1830;color:#dfdbea;padding:26px 16px;display:flex;flex-direction:column;z-index:10}.sidebar .brand{color:white;margin:0 11px}.sidebar-sub{font-size:12px;color:#a8a1ba;margin:5px 12px 38px}.sidebar nav{display:flex;flex-direction:column;gap:5px}.sidebar nav a,.sidebar nav .navbutton{width:100%;border:0;background:transparent;text-align:left;color:#cbc4dc;font-size:13px;font-weight:600;padding:12px;border-radius:10px;cursor:pointer}.sidebar nav a:hover,.sidebar nav .navbutton:hover{background:#332b4d;color:#fff;text-decoration:none}.sidebar nav form{margin:12px 0}.sidefoot{margin:auto 12px 5px;color:#aaa2bc;font-size:12px;line-height:1.7}.sidefoot b{color:white}.main{padding:38px clamp(18px,3vw,48px) 55px;margin-left:242px;min-height:calc(100vh - 40px);max-width:1800px}.footer{font-size:12px;color:#aba4bb;text-align:center;padding:12px 16px;margin-left:242px}.mobilehead{display:none}.pagehead{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.pagehead p{color:var(--muted);margin:0}.eyebrow{font-size:11px;letter-spacing:.18em;font-weight:800;color:var(--accent);margin:0 0 12px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 22px}.stat{border:1px solid var(--border);background:var(--surface);border-radius:15px;padding:20px;box-shadow:var(--shadow);display:flex;flex-direction:column;min-height:128px}.stat span,.stat small{color:var(--muted);font-size:13px}.stat strong{font-family:Outfit,sans-serif;font-size:30px;line-height:1.5}.panel{background:white;border:1px solid var(--border);border-radius:17px;padding:24px;margin:0 0 20px;box-shadow:var(--shadow);min-width:0}.panel>h2{margin:0 0 6px}.panel>.muted{margin-bottom:20px}.muted{color:var(--muted)}.small{font-size:12px}.center{text-align:center}.tablewrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:12px;font-weight:800;color:#948ca4;background:#faf9fc}th,td{padding:13px 14px;border-bottom:1px solid var(--border);vertical-align:middle}td{font-size:13px}td small{color:var(--muted)}tr:last-child td{border-bottom:none}.empty{text-align:center;color:var(--muted);padding:26px}.pill{border-radius:99px;font-size:11px;font-weight:700;padding:4px 9px;display:inline-block;white-space:nowrap}.pill.good{background:#e6f8ee;color:#278054}.pill.warn{background:#fff3d9;color:#9a6f0c}.pill.bad{background:#ffebeb;color:#bb414c}.alert{padding:13px 18px;border-radius:11px;margin:0 0 23px;font-size:13px}.alert.success{background:#e8faef;color:#247546}.alert.error{background:#ffeced;color:#a13442}.alert.warn{background:#fff3df;color:#87601a}.twocol{display:grid;grid-template-columns:1fr 1.3fr;gap:20px;align-items:start}.serviceitem{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:13px 0;border-bottom:1px solid var(--border);font-size:14px}.serviceitem:last-child{border-bottom:0}.serviceitem small{display:block;color:var(--muted);font-size:12px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:2px 20px}.inlinecheck{display:flex;align-items:flex-start;gap:8px;font-weight:500;font-size:12px;line-height:1.6}.inlinecheck input{margin:4px 0 0;flex-shrink:0}.hourrow{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border);padding:10px 0}.hourrow>b{width:95px;font-size:13px}.hourrow input[type=time]{width:125px;min-width:0}.hourrow .inlinecheck{margin:0}.dot{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:6px}.searchline{display:flex;gap:10px;margin:0 0 20px}.searchline input{flex:1}.datestrip{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.calendarboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}.daycol{border:1px solid var(--border);background:#fdfbff;border-radius:12px;padding:14px;min-height:240px}.daycol h3{margin:0 0 16px;font-size:15px}.appointmentitem{background:white;border:1px solid #e9e4f5;border-left:4px solid var(--accent);border-radius:10px;padding:11px;margin:0 0 9px;box-shadow:0 4px 10px rgba(0,0,0,.02)}.appointmentitem>b{font-size:12px;color:#7b60c8}.appointmentitem h4{margin:5px 0}.appointmentitem p{margin:0 0 8px;color:var(--muted);font-size:12px}.appointmentitem .pill{margin-bottom:5px}.actions{display:flex;gap:6px;margin-top:8px}.mini{border:1px solid var(--border);color:#514465;background:#fff;border-radius:7px;padding:5px 8px;font-size:11px}.mini.danger{color:#c45e67}.summaryline{border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;font-size:14px}.summaryline span{color:var(--muted)}.summaryline:last-of-type{margin-bottom:15px}.subscriptionpanel{max-width:660px;padding:32px}.price{font-family:Outfit,sans-serif;font-weight:800;font-size:clamp(42px,5vw,70px);letter-spacing:-.05em;line-height:1.3}.price span{font-size:19px;color:var(--muted);font-weight:500;letter-spacing:normal}
/* Marketing and booking */
.publicbody{background:#fff}.publichead{height:85px;padding:0 max(24px,calc((100vw - 1200px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #f0edf4}.publichead>div{display:flex;align-items:center;gap:20px}.publichead>div>a:not(.btn){font-weight:700;font-size:13px;color:#544e63}.publicmain{margin:0;min-height:calc(100vh - 150px)}.publicbody .footer{margin:0;border-top:1px solid #f1eff4;padding:24px}.hero{max-width:1240px;padding:95px 24px 92px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:70px;margin:auto}.hero h1{font-size:clamp(48px,5.6vw,79px);line-height:1.02;letter-spacing:-.055em}.hero h1 em{font-style:normal;color:#9371df}.hero-copy>p{font-size:18px;color:#756d83;max-width:470px;margin:24px 0}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.hero-actions .btn{padding:14px 22px}.trust{font-size:12px;color:#91899f;margin:23px 0}.hero-preview{background:linear-gradient(160deg,#fbfaff,#fff);border:1px solid #eee7f5;border-radius:22px;box-shadow:0 24px 90px rgba(104,74,155,.18);padding:27px;transform:rotate(1.4deg)}.hero-preview h3{font-size:22px;margin:28px 0 14px}.pretop{font-family:Outfit,sans-serif;font-weight:800;color:#7b57cc}.pretop span{float:right;color:#d3cae3}.statrow{display:grid;grid-template-columns:1fr 1fr;gap:10px}.statrow>div{background:white;border:1px solid #f0ebf8;padding:18px;border-radius:11px}.statrow b{display:block;font-size:27px;font-family:Outfit}.statrow small{display:block;color:#92899d}.preview-grid{margin:15px 0}.preview-grid>div{border:1px solid #eee7f5;background:white;margin-bottom:9px;padding:14px;border-radius:9px;font-size:13px;font-weight:700;color:#7859bd}.preview-grid span{color:#555064;margin-left:16px;font-weight:500}.hero-preview>.muted{font-size:11px;margin:10px 0 0;text-align:center}.features{background:#f9f7fd;padding:85px 24px;text-align:center}.features>h2,.pricing>h2{font-size:clamp(30px,4vw,46px)}.features>p{color:#8d8596}.featuregrid{max-width:1150px;margin:34px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:17px;text-align:left}.feature{border:1px solid #ede8f5;background:white;border-radius:16px;padding:28px;min-height:195px}.featureicon{display:flex;align-items:center;justify-content:center;width:45px;height:45px;background:#eee5ff;color:#7755b6;border-radius:12px;font-size:24px;margin-bottom:16px}.feature h3{margin:0 0 6px}.feature p{color:#888196;font-size:13px;margin:0}.pricing{text-align:center;padding:90px 24px}.pricing p{color:#8b8395;line-height:1.8;margin:0 0 27px}.authwrap{min-height:calc(100vh - 180px);display:flex;justify-content:center;align-items:center;padding:40px 15px;background:#faf9fd}.authcard{width:100%;max-width:485px;background:white;padding:34px;border-radius:20px;border:1px solid var(--border);box-shadow:var(--shadow);margin:auto}.authcard .brand{margin-bottom:24px}.authcard h1{font-size:33px}.authcard>p.muted{margin:10px 0 22px}.authcard .center{margin:20px 0 0;font-size:13px}.checks{display:grid;grid-template-columns:1fr 1fr;gap:6px 10px;color:#514466;font-size:12px;margin:12px 0 24px}.bookhero{background:linear-gradient(125deg,color-mix(in srgb,var(--accent) 9%,white),#f9f6ff);padding:46px 22px}.bookidentity{max-width:1100px;margin:auto;display:flex;gap:20px;align-items:center}.bookidentity h1{margin:0 0 8px}.bookidentity p{color:#716a7d;margin:0 0 4px}.salonlogo{width:94px;height:94px;object-fit:cover;border-radius:21px;background:white;flex-shrink:0}.salonlogo.fallback{font-size:44px;color:var(--accent);display:grid;place-items:center}.bookingwrap{max-width:1100px;padding:28px 20px 75px;margin:auto;display:grid;grid-template-columns:1fr 270px;gap:24px}.bookingaside{height:max-content;background:#fcfaff}.bookingaside p,.bookingaside .side-benefit{color:#8b829b;font-size:13px}.bookingaside .side-benefit{padding:8px 0}.appointmentcard{margin:40px auto}.invoicebody{background:#f4f2f9;padding:35px}.invoice{max-width:920px;margin:0 auto;padding:50px;background:#fff;min-height:1000px}.invoice header{display:flex;align-items:start;justify-content:space-between;gap:25px;border-bottom:2px solid #eee9f5;padding-bottom:40px;margin-bottom:38px}.invoice .total{text-align:right;margin:30px 0 50px}.printonly{float:right}.invoice p{font-size:13px}.invoice .brand{font-size:28px}code{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;background:#f5f2fc;border-radius:5px;padding:3px}.subscriptionpanel>p{max-width:450px}@media print{.printonly{display:none!important}.invoicebody{padding:0;background:white}.invoice{box-shadow:none;padding:0;min-height:0}}@media(max-width:1100px){.stats{grid-template-columns:repeat(2,1fr)}.hero{gap:30px}.sidebar{width:211px}.main,.footer{margin-left:211px}}@media(max-width:790px){.sidebar{transform:translateX(-102%);transition:transform .2s;width:250px}.sidebar.show{transform:translateX(0)}.main{margin:0;padding:20px 15px 40px}.footer{margin:0}.mobilehead{display:flex;justify-content:space-between;align-items:center;background:white;border:1px solid var(--border);padding:12px 16px;border-radius:12px;margin-bottom:22px}.mobilehead .brand{font-size:24px}.mobilehead button{border:0;background:transparent;font-size:22px}.pagehead{align-items:flex-start;flex-wrap:wrap}.twocol,.bookingwrap,.hero{grid-template-columns:1fr}.hourrow{flex-wrap:wrap}.hourrow>b{width:100%}.hero{padding:45px 20px}.hero-preview{transform:none;max-width:560px;width:100%;margin:auto}.featuregrid{grid-template-columns:repeat(2,1fr)}.bookingaside{display:none}}@media(max-width:500px){.featuregrid,.stats,.formgrid{grid-template-columns:1fr}.publichead{padding:0 16px}.publichead>.brand{font-size:22px}.publichead>div{gap:10px}.publichead>div>a:not(.btn){display:none}.authcard{padding:23px}.hero h1{font-size:52px}.pagehead .btn{width:100%}.datestrip .btn{font-size:11px;padding:8px}.hourrow input[type=time]{width:107px}.invoice{padding:20px}.invoice header{flex-direction:column}.calendarboard{grid-template-columns:1fr}}

.honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}

/* Salonzio 1.1 – Superadmin en software-updates */
.admin-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.admin-actions form{margin:0}
.admin-actions a,.admin-actions button{white-space:nowrap}
.update-steps{display:grid;gap:18px;padding:8px 0}
.update-steps>div{display:flex;gap:13px;align-items:center;color:#61576f;font-size:14px}
.update-steps>div>b{display:grid;place-items:center;flex-shrink:0;width:34px;height:34px;background:#eee7ff;color:#7154ad;border-radius:10px}
.updater-status{font-size:19px!important;letter-spacing:0;line-height:1.9!important}
.update-preview{border:2px solid #ab8dec;background:#fcfaff}
input[type=file]{width:100%;background:#fbfaff;border:1px dashed #a998c7;border-radius:12px;padding:13px}
.btn:disabled{opacity:.6;cursor:not-allowed}

/* Salonzio v1.2 – professional salon management */
.studio-columns{grid-template-columns:minmax(310px,.83fr) minmax(0,1.45fr)}
.studio-topstats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:24px}
.studio-topstats>div{padding:20px 23px;border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:4px}
.studio-topstats b{font:800 29px 'Outfit',sans-serif;line-height:1.2;color:#392451}.studio-topstats span{color:var(--muted);font-size:12px}
.studio-list{display:grid;gap:11px}.studio-card{border:1px solid #e9e1f4;border-radius:14px;padding:18px;background:linear-gradient(130deg,#fff,#fdfbff)}
.studio-card.is-muted{opacity:.68}.studio-card-top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.studio-card-top h3{font-size:18px;margin:5px 0 5px}.studio-card-top p{margin:0 0 10px;color:#6b6276;font-size:13px}.studio-category{text-transform:uppercase;letter-spacing:.09em;font-size:10px;font-weight:800;color:#9472c3}
.studio-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:13px}.studio-actions form{margin:0}.studio-subsection{background:#faf8fe;border:1px solid var(--border);padding:15px;border-radius:12px;margin-bottom:16px}
.staff-checkboxes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-top:12px}.staff-checkboxes.is-disabled{opacity:.4}.studio-secondary{margin-top:10px}
.danger-outline{border:1px solid #fad7df;color:#ae4056;background:#fff;border-radius:8px;padding:6px 10px;min-height:32px;font-size:12px;font-weight:700}.danger-outline:hover{background:#fff2f5}
.studio-teamitem{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:11px;color:var(--ink);text-decoration:none}.studio-teamitem:hover,.studio-teamitem.selected{border-color:#b7a0df;background:#faf8ff;text-decoration:none}
.studio-teamitem span:nth-child(2){flex:1}.studio-teamitem small{display:block;color:var(--muted)}.staff-avatar{width:43px;height:43px;border-radius:12px;color:white;font-size:20px;font-weight:800;display:grid;place-items:center}
.studio-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.studio-title-row p{margin:0 0 16px}.studio-roster{display:grid;gap:9px;margin:18px 0}.roster-day{display:grid;grid-template-columns:130px 1fr auto;align-items:start;gap:18px;border:1px solid #eee9f6;border-radius:12px;padding:14px}
.roster-label{display:flex;flex-direction:column;gap:2px;padding-top:7px}.roster-label b{font-size:14px}.shift-list{display:grid;gap:7px}.shift-item{display:flex;align-items:center;gap:10px}.shift-item label{margin:0;display:flex;gap:9px;align-items:center;font-size:12px}.shift-item input{width:118px;min-width:0}.shift-remove{width:33px;height:33px;border:1px solid #ebdfef;border-radius:9px;background:#fff;color:#a24662;font-size:23px;line-height:1}
.studio-form-width{max-width:850px}.studio-book-form{display:grid;gap:14px}
@media(max-width:1120px){.studio-columns{grid-template-columns:1fr}.roster-day{grid-template-columns:105px 1fr}.roster-day>[data-add-shift]{grid-column:2;justify-self:start}}
@media(max-width:700px){.studio-topstats{grid-template-columns:1fr 1fr}.roster-day{grid-template-columns:1fr}.roster-day>[data-add-shift]{grid-column:1}.shift-item{flex-wrap:wrap}.shift-item label{flex:1;min-width:110px}.shift-item input{width:100%}.staff-checkboxes{grid-template-columns:1fr}.studio-card-top{flex-direction:column}.studio-actions{align-items:stretch}}

/* Salonzio v1.3 — weekly calendar and salon management */
.weeknav{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:18px}.weeknav form{display:flex;align-items:center;gap:8px}.weeknav input{width:160px}.weekscroll{overflow-x:auto;width:100%;border:1px solid #eee7f4;border-radius:13px}.weekgrid{display:grid;grid-template-columns:142px repeat(7,minmax(150px,1fr));min-width:1200px}.weekhead{background:#f4edfc;border-right:1px solid #e8ddf5;border-bottom:1px solid #e8ddf5;padding:14px 12px;display:flex;gap:5px;align-items:center;justify-content:center;flex-direction:column;font-size:12px}.weekhead strong{font-size:16px}.weekemp{padding:15px 12px;background:#faf8fd;border-bottom:1px solid #ece5f4;border-right:1px solid #ece5f4;font-weight:700;display:flex;gap:7px;align-items:flex-start}.weekcell{padding:9px;min-height:120px;border-right:1px solid #eee9f5;border-bottom:1px solid #eee9f5;background:#fff}.weekevent{border:1px solid #e7dff0;border-left:4px solid #7857cf;border-radius:8px;padding:9px;margin-bottom:8px;background:#fcfaff;display:grid;gap:3px;font-size:12px;overflow-wrap:anywhere}.weekevent b{font-size:12px}.weekevent span{font-weight:700}.weekevent small{font-size:11px;color:#686075}.weekevent a{font-size:11px}.weekevent .pill{font-size:10px}.weekevent.is-cancelled{opacity:.5;text-decoration:line-through}.weekadd{display:inline-block;font-size:11px;color:#7a60ae}.studio-list .panel{margin-bottom:12px}.text-danger{color:#b74457}.studio-secondary{margin-top:16px}
@media(max-width:790px){.weeknav{gap:7px}.weeknav>.btn{font-size:12px}.weekgrid{min-width:1090px;grid-template-columns:112px repeat(7,minmax(139px,1fr))}}
