@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display:ital@0;1&family=Great+Vibes&display=swap');
:root{--ink:#17251e;--soft:#69776d;--sage:#b9cbb2;--deep:#17271f;--line:#e7ebe5;--bg:#f5f6f1;--gold:#b7c9a8;--white:#fff;--hour:192px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px 'DM Sans',sans-serif}button,input{font:inherit}button,a{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #8ea57a;outline-offset:2px}button{border:0}.shell{min-height:100vh;display:grid;grid-template-columns:245px 1fr}.sidebar{background:#18271f;color:#e7efe3;padding:33px 23px;display:flex;flex-direction:column;min-height:100vh}.brand{font:44px/1 'Great Vibes',cursive;text-align:center;color:#f6faf2;display:block;padding:4px 0 40px}.brand span{display:block;font:12px 'DM Sans',sans-serif;letter-spacing:4px;margin-top:8px}.side-label{font-size:12px;color:#83988a;letter-spacing:1.6px;font-weight:700;margin:0 0 15px 9px}.side-current{border-radius:9px;background:#314338;padding:13px 13px;font-weight:600;display:flex;align-items:center;gap:12px}.side-current span{font-size:19px;color:#bfd1b5}.side-current i{font-style:normal;font-size:12px;margin-left:auto;color:#b9d6a8}.mini-top{display:flex;align-items:center;justify-content:space-between;margin:43px 3px 16px;text-transform:capitalize}.mini-top strong{font-size:16px}.icon{color:#b7c8b7;background:transparent;font-size:21px;padding:0 5px}.mini-week,.mini-calendar{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;gap:4px}.mini-week{font-size:12px;color:#84968a;margin-bottom:9px}.mini-calendar button{height:25px;width:25px;border-radius:50%;color:#d9e2d7;background:transparent;font-size:13px}.mini-calendar button:hover{background:#415547}.mini-calendar button.selected{background:#c4d5b7;color:#1a291e;font-weight:700}.mini-calendar button.other{color:#6f8374}.mini-calendar button.today:not(.selected){box-shadow:inset 0 0 0 1px #a4bd99}.side-help{margin-top:auto;border:1px solid #526657;border-radius:12px;padding:18px 15px;background:#203228}.side-spark{color:#c7d9b9;display:block;font-size:22px;margin-bottom:16px}.side-help strong{font-family:'DM Serif Display',serif;font-weight:400;font-size:17px}.side-help p{font-size:14px;line-height:1.6;color:#a9b9aa;margin:8px 0 0}.side-back{margin-top:25px;color:#a6b8a8;font-size:14px}.content{min-width:0}.topbar{height:74px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 5%}.top-title{font-size:13px;letter-spacing:1px;color:#89958d}.top-title strong{color:#425449;letter-spacing:0;font-size:15px}.top-divider{padding:0 13px;color:#c8d0c8}.top-actions{display:flex;align-items:center;gap:20px}.login{font-size:14px;color:#617266}.settings-button{background:#1b2f22;color:#f6faf3;border-radius:7px;padding:12px 16px;font-size:14px;font-weight:700}.page{max-width:1600px;margin:auto;padding:45px 5% 80px}.heading{display:flex;justify-content:space-between;align-items:end;margin:0 0 32px}.eyebrow{font-size:12px;letter-spacing:2px;color:#8b9a8b;font-weight:700;margin:0 0 12px}.eyebrow span{display:inline-block;width:21px;height:1px;background:#a3b99d;vertical-align:middle;margin-right:8px}h1,h2,h3,p{margin-top:0}.heading h1{font:52px/1 'DM Serif Display',Georgia,serif;letter-spacing:-1.8px;margin:0 0 10px}.heading h1 span,.accent{color:#a0b697}.heading p{margin:0;color:#8a978d;font-size:15px}.booking-link{font-size:14px;font-weight:700;color:#52695a;margin-bottom:5px}.calendar-card{background:#fff;border:1px solid #e5eae3;border-radius:13px;box-shadow:0 8px 40px #233c2909;overflow:hidden}.calendar-toolbar{min-height:92px;padding:22px 25px;display:flex;justify-content:space-between;align-items:center;gap:14px}.calendar-title{display:flex;gap:12px;align-items:center}.calendar-icon{width:40px;height:40px;border-radius:10px;background:#edf2e9;color:#6b876b;display:grid;place-items:center;font-size:21px}.calendar-title h2{font-size:18px;margin:0 0 5px;font-weight:700;text-transform:capitalize}.calendar-title p{margin:0;font-size:14px;color:#98a399}.calendar-controls{display:flex;gap:10px;align-items:center}.today-button,.arrows,.view-pill{background:#fff;border:1px solid #e4e9e2;border-radius:7px;height:34px}.today-button{padding:0 15px;font-size:14px;font-weight:700;color:#53645a}.arrows{display:flex;overflow:hidden}.arrows button{background:#fff;color:#687a6c;font-size:20px;width:32px}.arrows button+button{border-left:1px solid #e4e9e2}.view-pill{display:flex;align-items:center;gap:16px;padding:0 13px;font-size:14px;color:#4f6255}.status{color:#9d493f;font-size:15px;padding:0 25px}.status:empty{display:none}.calendar-scroll{overflow:auto;max-height:760px;border-top:1px solid var(--line)}.week-grid{min-width:850px;display:grid;grid-template-columns:58px 1fr}.grid-corner{position:sticky;top:0;z-index:4;background:white;font-size:12px;color:#a6b0a6;letter-spacing:1px;text-align:center;padding:28px 0}.day-heads{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));position:sticky;top:0;background:#fff;z-index:3;border-bottom:1px solid var(--line)}.day-head{border-left:1px solid var(--line);padding:14px 8px;text-align:center}.day-head .weekday{display:block;font-size:12px;letter-spacing:1px;color:#9fa99f;text-transform:uppercase}.day-head .daynum{display:inline-grid;place-items:center;font-size:18px;font-weight:600;margin-top:5px;width:32px;height:32px}.day-head.current .daynum{border-radius:50%;background:#1b3322;color:white}.time-column{position:relative;border-right:1px solid var(--line);color:#9da99d;font-size:13px;text-align:center}.time-label{position:absolute;transform:translateY(-6px);width:100%}.day-columns{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.day-column{position:relative;border-right:1px solid #edf0eb;background:repeating-linear-gradient(to bottom,#fff 0,#fff calc(var(--hour) - 1px),#edf0eb calc(var(--hour) - 1px),#edf0eb var(--hour))}.day-column.today-column{background-color:#f9fbf7}.day-column .closed-overlay{position:absolute;inset:0;background:repeating-linear-gradient(135deg,#edf0eb33,#edf0eb33 4px,transparent 4px,transparent 9px);pointer-events:none}.event{position:absolute;left:4px;right:4px;z-index:1;text-align:left;border-radius:6px;border-left:3px solid #809f7a;background:#e8f1e3;color:#294331;padding:5px 6px;overflow:hidden;font-size:13px;line-height:1.2;box-shadow:0 1px 2px #25402d0c}.event:hover{background:#dcecd6}.event strong,.event span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event strong{font-size:13px;margin-bottom:3px}.event.cancelled{background:#f2f3f0;color:#a0aaa0;border-left-color:#c7cfc5;text-decoration:line-through}.calendar-foot{display:flex;gap:23px;align-items:center;padding:17px 25px;font-size:13px;color:#89978b;border-top:1px solid var(--line)}.legend-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#85a97e;margin-right:6px}.legend-dot.muted{background:#c5cec1}.foot-note{margin-left:auto}.bottom-note{font-size:14px;color:#9aa69a;margin-top:20px}.bottom-note>span{font-size:18px;color:#9fb497;margin-right:5px}.bottom-note button{background:none;color:#5e785f;text-decoration:underline;padding:0;font-size:inherit}dialog{border:0;border-radius:14px;background:#fff;color:#213329;padding:28px;width:min(510px,calc(100vw - 28px));box-shadow:0 22px 80px #0c1c1290}dialog::backdrop{background:#0a1710a8}dialog.settings-dialog{width:min(720px,calc(100vw - 28px));max-height:min(90vh,900px);padding:0}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.settings-dialog .dialog-head{padding:28px 30px 0}.dialog-head h2{font:32px 'DM Serif Display',Georgia,serif;letter-spacing:-.5px;margin:0 0 7px}.dialog-head p:not(.eyebrow){font-size:15px;color:#89978b;margin:0}.close{background:#f2f5f0;color:#627466;border-radius:50%;height:32px;width:32px;font-size:22px;line-height:1}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}label{display:block;color:#5c6c60;font-size:14px;font-weight:700}input:not([type=checkbox]){width:100%;border:1px solid #dce4d9;border-radius:7px;padding:11px;margin-top:7px;background:#fafbf9;color:#263b2d}input[type=checkbox]{accent-color:#688d64;width:17px;height:17px}.dialog-actions{display:flex;justify-content:space-between;gap:10px;margin-top:24px}.primary,.secondary,.danger{padding:11px 15px;border-radius:7px;font-size:14px;font-weight:700}.primary{background:#1d3425;color:#fff}.secondary{background:#eff3ed;color:#395340}.danger{background:#fbefec;color:#9b5449}.dialog-status{font-size:15px;color:#9b5449}.settings-section{padding:24px 30px;border-top:1px solid var(--line)}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:20px}.section-heading>div{display:flex;align-items:center;gap:12px}.section-num{font-size:13px;color:#a1b89a}.section-heading h3{font-size:16px;margin:0}.section-heading p,.settings-section>p{font-size:14px;line-height:1.6;color:#8b9a8d;margin:0}.hours-day{display:grid;grid-template-columns:85px 1fr auto;gap:12px;align-items:start;padding:12px 0;border-bottom:1px solid #edf0eb}.hours-day>strong{padding-top:10px;font-size:15px}.period{display:flex;align-items:center;gap:7px;margin-bottom:7px}.period input{margin:0;padding:8px}.period span{color:#acb8ac;font-size:14px}.small-action,.add-link{background:transparent;color:#648661;font-size:13px;font-weight:700;padding:10px 4px}.remove{background:transparent;color:#a1aca1;font-size:18px;padding:0 5px}.no-period{font-size:14px;color:#a6b1a6;padding:10px 0}.service-edit{display:grid;grid-template-columns:minmax(0,1fr) 100px 140px 90px auto;gap:10px;align-items:end;margin-bottom:15px}.service-edit label{margin:0}.service-edit .check{display:flex;gap:7px;align-items:center;height:39px}.hint{font-size:13px!important;color:#95a395!important;line-height:1.6;margin:14px 0 0!important}.calendar-subscribe .secondary{margin-top:14px}.calendar-subscribe label{margin-top:16px}.sticky-actions{position:sticky;bottom:0;padding:18px 30px;display:flex;justify-content:flex-end;gap:10px;background:#fff;border-top:1px solid var(--line)}[hidden]{display:none!important}@media(max-width:950px){.shell{grid-template-columns:1fr}.sidebar{display:none}.page{padding-top:32px}.topbar{height:65px}.calendar-scroll{max-height:70vh}}@media(max-width:560px){.top-title>span:first-child,.top-divider,.login{display:none}.topbar{padding:0 18px}.page{padding:30px 15px 55px}.heading h1{font-size:42px}.booking-link{font-size:13px}.calendar-toolbar{align-items:flex-start;flex-direction:column;padding:18px}.calendar-controls{width:100%}.view-pill{margin-left:auto}.calendar-foot{padding:14px;gap:12px}.foot-note{display:none}.settings-dialog .dialog-head,.settings-section{padding-left:20px;padding-right:20px}.hours-day{grid-template-columns:1fr auto}.hours-day>strong{grid-column:1/-1;padding:0}.service-edit{grid-template-columns:1fr 100px}.form-grid{grid-template-columns:1fr}.heading p{max-width:230px;line-height:1.5}}
.day-head.selected-day:not(.current) .daynum{border-radius:50%;box-shadow:inset 0 0 0 1px #8fae85}.event.cancelled{z-index:0}button:disabled{opacity:.55;cursor:not-allowed}

.login-panel{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:35px 20px;background:#17271f}.login-brand{font:58px/.8 'Great Vibes',cursive;color:#f5faf1;text-align:center;margin-bottom:42px}.login-brand span{display:block;font:12px 'DM Sans',sans-serif;letter-spacing:4px;margin-top:14px}.login-card{width:min(420px,100%);background:#fff;border-radius:16px;padding:38px;box-shadow:0 18px 60px #08150b40}.login-icon{width:42px;height:42px;display:grid;place-items:center;background:#edf3e9;border-radius:50%;font-size:22px;color:#82a17c;margin-bottom:22px}.login-card h1{font:42px/1 'DM Serif Display',serif;margin:0 0 12px}.login-card h1 span{color:#a0b697}.login-card>p:not(.eyebrow){color:#89978b;font-size:15px;line-height:1.6;margin-bottom:26px}.login-card form .primary{width:100%;margin-top:20px;padding:14px}.login-back{color:#a9bcac;font-size:14px;margin-top:25px}.top-actions button.login{background:none;border:0;font-size:14px;color:#617266}.top-actions button.login:hover{text-decoration:underline}

.event{padding:3px 6px;line-height:12px}.event strong{margin-bottom:2px;line-height:12px}.event-service{line-height:12px;color:#426947}.event.cancelled .event-service{color:#89958a}

.view-switch{display:flex;align-items:center;background:#f2f5f0;border:1px solid #e4e9e2;border-radius:7px;padding:3px;gap:2px}.view-switch button{background:transparent;border-radius:5px;color:#7c8a7f;font-size:14px;font-weight:600;padding:7px 10px}.view-switch button[aria-pressed="true"]{background:#fff;color:#263d2c;box-shadow:0 1px 4px #2038271a}.agenda-list{max-height:760px;overflow:auto;border-top:1px solid var(--line);padding:6px 25px 18px}.agenda-day{padding:20px 0;border-bottom:1px solid var(--line)}.agenda-day:last-child{border-bottom:0}.agenda-day-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.agenda-day-date{display:flex;align-items:baseline;gap:10px}.agenda-day-date strong{text-transform:capitalize;font-size:16px}.agenda-day-date span,.agenda-count{font-size:14px;color:#9ba89a}.agenda-empty,.agenda-loading{margin:0;font-size:14px;color:#a5b0a4}.agenda-items{display:grid;gap:7px}.agenda-item{display:flex;width:100%;align-items:center;gap:16px;text-align:left;padding:13px 15px;border:1px solid #e5ece2;border-left:3px solid #8eaa88;border-radius:8px;background:#f9fbf7;color:#294331}.agenda-item:hover{background:#edf5e9}.agenda-item-time{font-size:15px;font-weight:700;min-width:42px}.agenda-item-info{display:grid;gap:4px;min-width:0}.agenda-item-info strong{font-size:15px;overflow-wrap:anywhere}.agenda-item-info span{font-size:14px;color:#768b78;overflow-wrap:anywhere}.agenda-item-state{margin-left:auto;color:#71926d;font-size:13px}.agenda-item-arrow{font-size:18px;color:#91a88e}.agenda-item.cancelled{background:#f5f6f4;color:#9ba69a;border-left-color:#c7cfc5}.agenda-item.cancelled .agenda-item-state{color:#9ba69a}@media(max-width:560px){.calendar-controls{flex-wrap:wrap}.view-switch{margin-left:auto}.agenda-list{padding:4px 16px 16px}.agenda-item{gap:10px}.agenda-item-state{font-size:12px}}

.manage-actions{display:flex;align-items:end;gap:10px;margin:-5px 0 18px;flex-wrap:wrap}.manage-actions label{width:175px}.manage-actions input{margin-top:6px}.manage-actions button{height:39px}.manage-note{font-size:14px;color:#879589;margin:-7px 0 15px}.manage-note:empty{display:none}.day-head.is-closed .weekday:after{content:' · cerrado';color:#b47768;font-size:12px}.agenda-day-heading.is-closed:after{content:'Cerrado';font-size:13px;color:#a76455;margin-left:12px}.agenda-day-heading.is-closed .agenda-count{margin-left:auto}select{width:100%;border:1px solid #dce4d9;border-radius:7px;padding:11px;margin-top:7px;background:#fafbf9;color:#263b2d;font:inherit}select:disabled{color:#94a093}@media(max-width:560px){.manage-actions{gap:8px}.manage-actions label{width:100%}.manage-actions button{flex:1}}

.password-open{margin-top:14px}.password-fields{display:grid;gap:15px}.password-fields label{display:block}.password-fields input{width:100%}

/* Comfortable controls and spacing without scaling the whole page. */
body{line-height:1.45}
.shell{grid-template-columns:280px minmax(0,1fr)}
.mini-calendar button{width:30px;height:30px}
.login-card{width:min(480px,100%);padding:40px}
input:not([type=checkbox]),select{font-size:16px;min-height:44px}
.primary,.secondary,.danger,.settings-button,.today-button{min-height:44px}
.arrows{height:40px}.arrows button{width:40px}
.calendar-toolbar,.calendar-controls,.top-actions{flex-wrap:wrap}
.week-grid{min-width:980px;grid-template-columns:72px 1fr}
.event{padding:2px 5px;line-height:13px}
.event strong{margin-bottom:0;line-height:13px}
.event-service{line-height:13px}
@media(max-width:950px){.shell{grid-template-columns:minmax(0,1fr)}}
@media(max-width:560px){.login-card{padding:28px}.top-actions{gap:8px}.heading{gap:12px;flex-wrap:wrap}.calendar-foot{flex-wrap:wrap}.section-heading{flex-wrap:wrap}.period{min-width:0}.period input{min-width:0}.service-edit{grid-template-columns:minmax(0,1fr) 100px}.service-edit .check{height:auto;min-height:44px}}

.booking-toggle{display:flex;align-items:center;gap:10px;font-weight:600;margin:8px 0 4px;color:#e8ece1}
.booking-toggle input{width:18px;height:18px;accent-color:#9fbf7f}
