:root{--ink:#302626;--cream:#f4efe9;--paper:#fffdf9;--rose:#c58e82;--sage:#718174;--line:#e5ddd5;--serif:'Instrument Serif',serif;--sans:'DM Sans',sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);padding-top:122px}button,input,select,textarea{font:inherit}.topbar{position:fixed;top:16px;left:50%;transform:translateX(-50%);width:min(1180px,calc(100% - 28px));height:72px;background:rgba(255,253,249,.95);backdrop-filter:blur(16px);border:1px solid rgba(48,38,38,.1);box-shadow:0 14px 34px rgba(48,38,38,.09);display:grid;grid-template-columns:auto 1fr auto;align-items:center;padding:0 16px 0 18px;z-index:20;border-radius:22px}.logo{display:flex;align-items:center;gap:10px}.logo>b{width:42px;height:42px;border:1px solid #786a65;border-radius:50%;display:grid;place-items:center;font:25px var(--serif)}.logo span{font:24px var(--serif)}.logo small{display:block;font:7px var(--sans);letter-spacing:.18em;margin-top:3px;opacity:.65}.topnav{display:flex;justify-content:center;gap:7px}.topnav button{border:0;background:transparent;color:#7f726d;padding:11px 15px;border-radius:12px;font-size:12px;cursor:pointer;appearance:none;-webkit-appearance:none;box-shadow:none}.topnav button.active{background:#453a38;color:#fff}.new,.save{border:0;background:var(--ink);color:white;padding:15px 20px;cursor:pointer;appearance:none;-webkit-appearance:none}.topnew{border-radius:14px;font-size:11px;white-space:nowrap;position:relative;transition:transform .22s ease,background .22s ease}.topnew span{font:inherit;transition:opacity .16s ease,transform .22s ease}.topnew::after{content:'◷';position:absolute;right:-5px;top:-5px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:var(--rose);color:#fff;font-size:9px;line-height:1;box-shadow:0 3px 8px rgba(48,38,38,.18);transition:transform .25s ease,background .25s ease}.topnew[data-kind="client"]::after{content:'♡';background:var(--sage)}.topnew[data-kind="service"]::after{content:'✦';background:var(--rose)}.topnew[data-kind="appointment"]::after{content:'◷';background:#9f7f74}.topnew.context-change{animation:contextBump .34s cubic-bezier(.2,.8,.2,1)}.topnew.context-change span{animation:labelSlide .34s ease}.topnew.context-change::after{animation:badgePop .34s ease}main{padding:30px clamp(28px,5vw,76px) 70px;max-width:1600px;margin:auto}.pagehead{display:flex;justify-content:space-between;align-items:end;margin-bottom:45px}.kicker,.title>span,.panelhead span,.focus>span,.modal form>span,.calendar-head span{font-size:9px;letter-spacing:.18em;font-weight:600;color:#8d7a72}h1{font:50px/1 var(--serif);margin:9px 0 0;font-weight:400}h1 em{color:var(--sage);font-weight:400}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.stats article{background:var(--paper);padding:24px;border:1px solid #eee7df}.stats small{font-size:8px;letter-spacing:.14em;color:#8a7c76}.stats strong{display:block;font:42px var(--serif);margin:13px 0 7px}.stats p{font-size:9px;color:#8b7c75;margin:0}.stats p b{color:var(--sage)}.grid{display:grid;grid-template-columns:1.7fr .8fr;gap:14px;margin-top:14px}.panel{background:var(--paper);border:1px solid #eee7df;padding:28px}.panelhead{display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid var(--line);padding-bottom:22px}.panelhead h2,.title h2,.modal h2{font:38px var(--serif);font-weight:400;margin:5px 0 0}.panelhead button{border:0;background:none;font-size:10px;cursor:pointer}.appointment{display:grid;grid-template-columns:65px 10px 1fr auto;gap:15px;align-items:center;padding:21px 0;border-bottom:1px solid #eee7df}.appointment:last-child{border:0}.appointment time{font:20px var(--serif)}.appointment time small{display:block;font:8px var(--sans);color:#9b8d86;margin-top:3px}.appointment>i{width:7px;height:7px;border-radius:50%;background:var(--sage)}.appointment div{display:grid;gap:4px}.appointment b{font-size:12px;font-weight:500}.appointment span{font-size:9px;color:#8b7e78}.appointment mark{background:#e7eee8;color:#627466;padding:6px 9px;border-radius:20px;font-size:8px}.appointment.muted>i{background:#d6ad9f}.appointment.muted mark{background:#f4e8e3;color:#9c7064}.focus{background:#d9c2b8;position:relative;overflow:hidden;min-height:350px}.focus h2{font:38px/1.02 var(--serif);font-weight:400;max-width:330px;margin:25px 0 20px}.focus p{font-size:11px;line-height:1.7;max-width:300px}.orb{position:absolute;right:-45px;bottom:-55px;width:180px;height:180px;border-radius:50%;border:1px solid rgba(48,38,38,.2);display:grid;place-items:center;font:80px var(--serif);opacity:.5}.view{display:none}.view.active{display:block}.title{margin:25px 0 35px}.title h2{font-size:56px}.title p{color:#8b7e78;font-size:12px}.list{max-width:850px}.clients{display:grid}.client{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:14px;padding:15px 0;border-bottom:1px solid var(--line)}.client i{width:40px;height:40px;border-radius:50%;background:#eadbd5;display:grid;place-items:center;font-style:normal;font:17px var(--serif)}.client b{font-size:12px}.client span{display:block;font-size:9px;color:#948680;margin-top:3px}.client small{color:var(--sage)}.loading{font-size:11px;color:#8b7e78}.servicecards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.servicecards article{background:var(--paper);padding:35px;min-height:180px;display:flex;flex-direction:column;border:1px solid #eee7df}.servicecards i{font-style:normal;color:var(--rose);font-size:24px}.servicecards b{font:27px var(--serif);font-weight:400;margin-top:auto}.servicecards span{font-size:9px;color:#8b7e78;margin-top:5px}.calendar-shell{max-width:980px}.calendar-head{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:14px;margin-bottom:24px}.calendar-head>div{text-align:center}.calendar-head h3{font:42px/1 var(--serif);font-weight:400;margin:5px 0 0;text-transform:capitalize}.month-nav{width:44px;height:44px;border:1px solid var(--line);background:#f7f1ec;color:var(--ink);border-radius:50%;cursor:pointer;font-size:18px;appearance:none}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.weekdays{margin-bottom:6px}.weekdays span{text-align:center;font-size:8px;letter-spacing:.08em;color:#9b8d86;padding:6px 0}.calendar-day{border:1px solid #eee7df;background:#fffdf9;color:var(--ink);min-height:96px;padding:10px;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;cursor:pointer;appearance:none;text-align:left;transition:background .15s ease,border-color .15s ease,transform .15s ease}.calendar-day .day-number{font:22px var(--serif)}.calendar-day .day-count{font-size:8px;color:#8b7e78;background:#f2ebe5;padding:5px 7px;border-radius:999px}.calendar-day.has-appointments .day-count{background:#e6ede7;color:#607466;font-weight:600}.calendar-day.is-today{border-color:#9b887f}.calendar-day.is-today .day-number::after{content:' · hoy';font:7px var(--sans);letter-spacing:.08em;color:#8b7e78;text-transform:uppercase}.calendar-day.is-selected{background:#453a38;color:#fff;border-color:#453a38;transform:translateY(-1px)}.calendar-day.is-selected .day-count{background:#665854;color:#fff}.calendar-day.is-selected .day-number::after{color:#d9cbc5}.calendar-blank{min-height:96px;background:transparent;border:0}.day-detail{max-width:980px;margin-top:14px}.day-detail .panelhead small{font-size:9px;color:#8b7e78;font-weight:500}.day-detail .list{max-width:none}.modal{position:fixed;inset:0;background:rgba(36,29,29,.45);backdrop-filter:blur(7px);z-index:30;display:none;align-items:flex-start;justify-items:center;padding:20px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.modal.open{display:grid}.modal form{background:var(--paper);width:min(480px,100%);padding:38px;position:relative;margin:auto 0;max-height:none}.close{position:absolute;right:20px;top:18px;border:0;background:none;font-size:25px;cursor:pointer}.modal label{display:grid;gap:7px;font-size:9px;margin:18px 0}.modal input,.modal select,.modal textarea{border:1px solid var(--line);background:white;padding:13px;color:var(--ink);width:100%;border-radius:0}.modal textarea{min-height:84px;resize:vertical}.row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.save{width:100%;margin-top:8px}.pilot{text-align:center;font-size:9px;color:#a0928b;min-height:14px}.pilot.error{color:#9b5f52}.pilot.success{color:#5f7564}.empty-note{background:#f6f0eb;border:1px solid #eadfd7;padding:14px;font-size:10px;line-height:1.6;color:#786b65;margin:16px 0}.save:disabled{opacity:.35;cursor:not-allowed}@keyframes contextBump{0%{transform:scale(1)}45%{transform:scale(1.08) rotate(2deg)}100%{transform:scale(1)}}@keyframes labelSlide{0%{opacity:.35;transform:translateY(4px)}100%{opacity:1;transform:translateY(0)}}@keyframes badgePop{0%{transform:scale(.55) rotate(-18deg)}70%{transform:scale(1.16) rotate(6deg)}100%{transform:scale(1) rotate(0)}}@media(hover:hover) and (pointer:fine){.calendar-day:hover{border-color:#cbbdb5;background:#faf5f1}.calendar-day.is-selected:hover{background:#453a38}}@media(prefers-reduced-motion:reduce){.topnew,.topnew span,.topnew::after,.calendar-day{transition:none}.topnew.context-change,.topnew.context-change span,.topnew.context-change::after{animation:none}}@media(max-width:850px){body{padding-top:184px}.topbar{top:10px;height:auto;min-height:68px;width:calc(100% - 18px);display:grid;grid-template-columns:1fr auto;padding:10px 12px;border-radius:18px;gap:10px}.logo span{font-size:20px}.logo small{display:none}.topnew{justify-self:end;font-size:0;width:42px;height:42px;padding:0;border-radius:50%}.topnew>span{display:none}.topnew::before{content:'+';font-size:26px;line-height:1}.topnew::after{right:-4px;top:-4px;width:17px;height:17px;font-size:8px;border:2px solid var(--paper)}.topnav{grid-column:1/-1;width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;background:#f0e9e3;padding:4px;border-radius:14px}.topnav button{padding:10px 2px;font-size:10px;min-width:0;white-space:nowrap;border-radius:10px}.topnav button.active{background:#453a38;color:#fff}main{padding:24px 18px 60px}h1{font-size:36px}.stats{grid-template-columns:1fr 1fr}.stats article{padding:18px}.stats strong{font-size:34px}.grid{grid-template-columns:1fr}.focus{min-height:260px}.panel{padding:20px}.appointment{grid-template-columns:50px 7px 1fr}.appointment mark{display:none}.servicecards{grid-template-columns:1fr}.title h2{font-size:46px}.row{grid-template-columns:1fr}.modal{padding:12px}.modal form{padding:32px 24px;margin:8px 0 20px}.calendar-shell,.day-detail{padding:16px}.calendar-head{grid-template-columns:38px 1fr 38px;gap:8px;margin-bottom:18px}.calendar-head h3{font-size:32px}.month-nav{width:38px;height:38px}.weekdays,.calendar-grid{gap:3px}.weekdays span{font-size:7px}.calendar-day,.calendar-blank{min-height:68px}.calendar-day{padding:7px 5px}.calendar-day .day-number{font-size:18px}.calendar-day .day-count{font-size:7px;padding:4px 5px}.calendar-day.is-today .day-number::after{content:' ·';font-size:6px}.day-detail .panelhead{align-items:flex-end}.day-detail .panelhead h2{font-size:30px}}@media(max-width:380px){.calendar-day,.calendar-blank{min-height:62px}.calendar-day .day-count{font-size:0;width:7px;height:7px;padding:0;border-radius:50%;background:#d9cfc9}.calendar-day.has-appointments .day-count{font-size:7px;width:auto;height:auto;padding:3px 5px}.calendar-day .day-number{font-size:17px}}