
:root{--pink:#ef779c;--rose:#793c4e;--soft:#fff3f7;--line:#ecd8df;--ink:#2d2024;--muted:#74656a;--green:#2d7b4f;--red:#a12d3b}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(135deg,#fff9fb,#fdebf1);font-family:Inter,system-ui,sans-serif;color:var(--ink)}
button,input,select{font:inherit}.hidden{display:none!important}.shell{width:min(1240px,calc(100% - 24px));margin:auto;padding:26px 0 70px}
.login-card{width:min(460px,100%);margin:7vh auto;background:#fff;border:1px solid var(--line);border-radius:28px;padding:34px;text-align:center;box-shadow:0 25px 75px rgba(121,60,78,.15)}
.login-card h1,h2{font-family:Georgia,serif;color:var(--rose)}.login-card form,.stack{display:grid;gap:15px;text-align:left;margin:25px 0}
label{display:grid;gap:7px;font-weight:750;color:var(--rose)}input,select{width:100%;border:1px solid var(--line);border-radius:13px;padding:12px;background:white;outline:none}
input:focus,select:focus{border-color:var(--pink);box-shadow:0 0 0 4px rgba(239,119,156,.12)}
button{border:0;border-radius:13px;padding:12px 17px;cursor:pointer;font-weight:800;background:linear-gradient(135deg,var(--pink),#f493b0);color:white}.secondary{background:#fff;color:var(--rose);border:1px solid var(--line)}
.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:.7rem;font-weight:850;color:var(--pink)}.muted{color:var(--muted)}
.topbar{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid var(--line);border-radius:21px;padding:17px 21px}.brand{display:flex;gap:11px;align-items:center}.brand div{display:grid}.brand strong{font-family:Georgia,serif;color:var(--rose);font-size:1.4rem}.brand small{color:var(--muted)}.top-actions{display:flex;gap:9px}
.tabs{display:flex;gap:8px;overflow:auto;margin:15px 0}.tab{white-space:nowrap;background:#fff;color:var(--rose);border:1px solid var(--line)}.tab.active{background:var(--rose);color:#fff}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:14px}.stats article,.panel{background:#fff;border:1px solid var(--line);border-radius:19px;padding:19px}.stats article{display:grid;gap:5px}.stats span{color:var(--muted)}.stats strong{font-size:1.65rem;color:var(--rose)}
.controls{display:grid;grid-template-columns:160px 150px 150px 1fr;gap:12px;background:#fff;border:1px solid var(--line);border-radius:19px;padding:16px;margin-bottom:14px}
.reservation-list{display:grid;gap:13px}.reservation{background:#fff;border:1px solid var(--line);border-radius:19px;padding:19px;display:grid;grid-template-columns:1.1fr 1fr 240px;gap:18px}.reservation h3{margin:7px 0;color:var(--rose)}
.details{display:grid;gap:6px;color:var(--muted);font-size:.93rem}.details b{color:var(--ink)}.status{width:max-content;padding:5px 9px;border-radius:999px;background:var(--soft);color:var(--rose);font-size:.78rem;font-weight:850}.actions{display:grid;gap:9px}.money-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.danger{background:#fff0f1;color:var(--red);border:1px solid #efc5cb}.whatsapp{background:#eaf8ef;color:var(--green);border:1px solid #bfe2cd;text-decoration:none;text-align:center;border-radius:13px;padding:11px;font-weight:800}
.calendar-head{display:flex;align-items:center;justify-content:center;gap:15px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px}.calendar-head h2{min-width:260px;text-align:center;margin:0}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.calendar-weekdays{padding:13px 0;text-align:center;color:var(--muted);font-weight:800}.day{min-height:120px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:10px}.day.out{opacity:.42}.day.today{outline:3px solid rgba(239,119,156,.25)}.day-number{font-weight:850;color:var(--rose)}.event{display:block;margin-top:6px;padding:5px 7px;border-radius:8px;background:var(--soft);font-size:.72rem;color:var(--rose);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.section-title{display:flex;justify-content:space-between;align-items:end;margin-bottom:14px}.section-title h2{margin:3px 0}.section-title input{max-width:330px}.clients-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.client{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px}.client h3{color:var(--rose);margin:0 0 8px}.client .history{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.config-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:15px}.schedule-row{display:grid;grid-template-columns:130px 80px 1fr 1fr 100px;gap:9px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.schedule-row:last-child{border:0}.check{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:8px}.check input{width:auto}.two{display:grid;grid-template-columns:1fr 1fr;gap:9px}.blocks-list{display:grid;gap:8px;margin-top:14px}.block-item{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:11px;background:var(--soft);border-radius:12px}.block-item button{padding:7px 10px}
.message{display:none;margin:12px 0;padding:12px;border-radius:12px}.message.show{display:block}.message.error{background:#fff0f1;color:var(--red)}.message.success{background:#eaf8ef;color:var(--green)}.empty{text-align:center;padding:45px;background:#fff;border:1px solid var(--line);border-radius:18px;color:var(--muted)}
@media(max-width:900px){.stats{grid-template-columns:1fr 1fr}.controls{grid-template-columns:1fr 1fr}.reservation{grid-template-columns:1fr}.clients-grid{grid-template-columns:1fr 1fr}.config-grid{grid-template-columns:1fr}.schedule-row{grid-template-columns:100px 70px 1fr 1fr}.schedule-row .interval{grid-column:3/5}}
@media(max-width:580px){.topbar{align-items:flex-start;flex-direction:column}.top-actions{width:100%}.top-actions button{flex:1}.stats,.controls,.clients-grid{grid-template-columns:1fr}.calendar-weekdays,.calendar-grid{gap:3px}.day{min-height:88px;padding:6px}.event{font-size:.62rem}.schedule-row{grid-template-columns:1fr 70px}.schedule-row input[type=time],.schedule-row .interval{grid-column:auto}.section-title{align-items:stretch;flex-direction:column}.section-title input{max-width:none}}
