:root{--bg:#f6f5f2;--paper:#fff;--text:#242824;--muted:#788077;--accent:#708b74;--line:#e6e9e3;--booking:#e58bb4;--work:#8a9ba8;--off:#81c9ee;--personal:#a8a8ad;--important:#e75b66;--nails:#eac852;--leisure:#aa83d5;--payment:#55a278;--shopping:#54ed37;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer;border:1px solid var(--line);background:var(--paper);color:var(--text);border-radius:12px;padding:10px 16px;min-height:44px}button:hover{background:#ecefe9}button:focus-visible,a:focus-visible{outline:3px solid #9db0a0;outline-offset:3px}button:disabled{opacity:.5;cursor:wait}.primary{background:var(--accent);color:white;border:0;text-decoration:none;border-radius:14px;padding:14px 20px;display:inline-flex;align-items:center;justify-content:center}.primary:hover{background:#57755d}.circle{padding:0;width:44px;height:44px;border-radius:50%;font-size:27px}.subtle{font-size:13px!important;line-height:1.7!important;color:var(--muted)}[hidden]{display:none!important}header{height:95px;max-width:1360px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:0 56px;border-bottom:1px solid var(--line)}.brand{font-size:25px;font-weight:650;text-decoration:none;color:var(--text);letter-spacing:-1px;display:flex;align-items:center;gap:16px}.brand span{font-size:13px;color:var(--muted);font-weight:400;letter-spacing:0;border-left:1px solid #cfd5cb;padding-left:16px}.header-actions{display:flex;align-items:center;gap:12px}main{max-width:1248px;margin:auto;padding:44px 0 20px}.intro{display:flex;justify-content:space-between;align-items:center;margin:0 0 36px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:600;color:var(--muted);text-transform:uppercase;margin:0 0 12px}h1{font-weight:500;font-size:46px;letter-spacing:-1.8px;margin:0}.accent{color:var(--accent)}.intro-note{font-size:14px;line-height:1.6;color:var(--muted);margin:0}.workspace{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(310px,1fr);gap:40px}.calendar-panel{background:var(--paper);padding:30px;border:1px solid var(--line);border-radius:24px}.month-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.month-head h2{font-size:25px;letter-spacing:-.6px;font-weight:500;margin:0;text-transform:capitalize}.month-head>div{display:flex;gap:8px}.weekdays,.grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekdays{font-size:10px;letter-spacing:1px;color:var(--muted);text-align:center;margin:0 0 12px}.grid{gap:5px}.day{min-height:70px;border:0;border-radius:15px;padding:10px 2px;background:transparent;display:flex;flex-direction:column;gap:9px;align-items:center;justify-content:center;position:relative}.day .number{font-size:17px;line-height:25px}.day.weekend .number{color:#9e9a95}.day.today .number{color:var(--accent);font-weight:700}.day.selected{background:#eaf0e9;box-shadow:inset 0 0 0 1px #b4c4b3}.day.today .number:after{content:"";display:block;height:3px;width:3px;border-radius:50%;background:var(--accent);margin:0 auto -3px}.dots{display:flex;gap:4px;height:5px}.dots i,.legend i{width:5px;height:5px;border-radius:50%;display:inline-block}.booking{background:var(--booking)}.work{background:var(--work)}.off{background:var(--off)}.personal{background:var(--personal)}.legend{display:flex;justify-content:center;flex-wrap:wrap;gap:20px;font-size:11px;color:var(--muted);padding:24px 0}.legend span{display:flex;align-items:center;gap:6px}.sync-box{display:flex;gap:12px;align-items:center;border-top:1px solid var(--line);padding:22px 0 0;font-size:12px}.sync-symbol{font-size:25px;color:var(--accent)}.sync-box b{font-weight:500}.sync-box p{font-size:11px;color:var(--muted);line-height:1.5;margin:5px 0 0}.agenda{padding:5px 0}.agenda-head h2{font-size:32px;font-weight:500;letter-spacing:-1px;margin:0}.agenda-head>p:last-child{font-size:13px;color:var(--muted);line-height:1.6;margin:10px 0 18px}.day-tools{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.day-tools button{font-size:12px;padding:8px 12px;min-height:38px}.day-tools button.active{background:#e6ede4;border-color:#a9bca9}.event{background:var(--paper);border:1px solid var(--line);border-radius:18px;margin-bottom:12px;padding:19px 20px;position:relative;overflow:hidden}.event:before{content:"";position:absolute;left:0;top:20px;bottom:20px;width:3px;background:var(--personal);border-radius:4px}.event.booking-card:before{background:var(--booking)}.event.work-card:before{background:var(--work)}.event.off-card:before{background:var(--off)}.event .meta{font-size:10px;letter-spacing:1px;color:var(--muted);text-transform:uppercase;line-height:1.6}.event h3{font-size:17px;font-weight:550;line-height:1.4;margin:8px 0;overflow-wrap:anywhere}.event p{font-size:13px;line-height:1.6;color:#70776e;margin:7px 0;white-space:pre-wrap;overflow-wrap:anywhere}.event a{color:var(--accent)}.event .edit{float:right;font-size:12px;padding:3px 8px;min-height:32px;background:transparent}.event.done h3{text-decoration:line-through;color:var(--muted)}.empty{border:1px dashed #d5dcd0;border-radius:18px;text-align:center;padding:32px 20px;color:var(--muted);font-size:13px;line-height:1.7}.empty span{display:block;font-size:30px;color:#a5b49f;margin-bottom:10px}.add-line{border:0;background:transparent;color:var(--accent);width:100%;text-align:left;padding:13px 4px;font-size:13px}#undated{margin-top:30px;border-top:1px solid var(--line);padding-top:20px}#undated>h3{font-size:14px;font-weight:500}footer{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:11px;margin-top:30px}footer button{border:0;background:transparent;color:var(--muted);font-size:11px}dialog{width:min(500px,calc(100vw - 28px));border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:0 30px 100px #19241c26}dialog::backdrop{background:#25352a55;backdrop-filter:blur(6px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.dialog-head h2{font-size:23px;font-weight:500;margin:0}label{display:block;font-size:12px;color:#646f62;margin-bottom:16px}input,select,textarea{margin-top:7px;width:100%;border:1px solid #dce2d8;background:#f9faf7;color:var(--text);padding:12px;border-radius:10px;min-width:0;font-size:16px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.check{display:flex;align-items:center;gap:8px}.check input{width:18px;margin:0}.form-actions{display:flex;justify-content:flex-end;gap:10px}.danger{color:#b2574b;border:0;background:transparent;margin-right:auto}#form-error{color:#a7493b;font-size:13px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);max-width:90%;padding:14px 22px;border-radius:14px;background:#263a2c;color:white;box-shadow:0 8px 25px #0002;font-size:14px;z-index:100}#login{min-height:100svh;padding:60px 22px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center}#login h1{font-size:40px}#login p{font-size:16px;line-height:1.8;color:var(--muted)}#login .primary{margin:16px 0}.welcome-icon{width:88px;height:88px;border-radius:23px;background:white;box-shadow:0 9px 40px #46543b12;display:flex;justify-content:center;align-items:center;font-size:40px;color:var(--accent);margin-bottom:35px;border-top:11px solid var(--accent)}
@media(max-width:1350px){main{padding:35px 36px 20px}header{padding:0 36px}.workspace{gap:30px}}@media(max-width:760px){header{height:78px;padding:0 20px}.brand{font-size:23px;gap:10px}.brand span{font-size:11px;padding-left:10px}.header-actions{gap:8px}.header-actions>button:first-child{font-size:12px;padding:8px 12px}.circle{width:40px;height:40px;min-height:40px}main{padding:29px 18px 20px}.intro{margin-bottom:25px}h1{font-size:35px;letter-spacing:-1.2px}.intro-note{display:none}.eyebrow{font-size:10px;letter-spacing:1.5px}.workspace{grid-template-columns:1fr;gap:30px}.calendar-panel{padding:20px 14px;border-radius:20px}.month-head{padding:0 5px;margin-bottom:22px}.month-head h2{font-size:22px}.grid{gap:3px}.day{min-height:51px;padding:5px 0;gap:5px;border-radius:12px}.day .number{font-size:16px}.legend{gap:14px;font-size:10px;padding:20px 0}.sync-box{padding:17px 5px 0}.agenda{padding:0 4px}.agenda-head h2{font-size:28px}dialog{padding:22px}#login h1{font-size:34px}footer{padding-bottom:env(safe-area-inset-bottom)}}

.nails{background:var(--nails)}.important{background:var(--important)}.leisure{background:var(--leisure)}.payment{background:var(--payment)}.shopping{background:var(--shopping)}
.event.nails-card:before{background:var(--nails)}.event.important-card:before{background:var(--important)}.event.leisure-card:before{background:var(--leisure)}.event.payment-card:before{background:var(--payment)}.event.shopping-card:before{background:var(--shopping)}
.day.has-booking{background:#fce6f0}.day.has-nails{background:#fff4be}.day.has-important{background:#fce2e5}.day.has-off{background:#e0f3fd}.day.has-leisure{background:#eee3fb}.day.has-payment{background:#dff1e5}.day.has-shopping{background:#b2ff96}.day.has-work{background:#ecf0f3}.day.has-personal{background:#f0f0f1}.day.selected{box-shadow:inset 0 0 0 2px #394e40}.legend{gap:12px 16px}.legend i{width:7px;height:7px}.dots{max-width:100%;gap:3px;flex-wrap:wrap;justify-content:center}.calendar-panel .grid .day:hover{filter:brightness(.97)}

:root{--fourpaws:#ef922f}.fourpaws{background:var(--fourpaws)}.day.has-fourpaws{background:#ffdbac}.event.fourpaws-card:before{background:var(--fourpaws)}.day-tools button[data-day="fourpaws"].active{background:#ffdbac;border-color:#e9a250}
/* Month labels replace the old dot markers. */
.day{min-height:125px;justify-content:flex-start;gap:5px;padding:8px 4px;border-radius:12px;overflow:hidden}.day .number{font-size:16px;flex-shrink:0}.day-entries{display:flex;flex-direction:column;gap:4px;width:100%;min-width:0}.day-entry{display:block;border-left:2px solid var(--booking);padding:3px 3px 3px 4px;background:#ffffff91;border-radius:4px;text-align:left;line-height:1.25;font-size:10px;min-width:0;overflow:hidden}.day-entry.fourpaws-entry{border-color:var(--fourpaws)}.day-entry.off-entry{border-color:var(--off)}.entry-time{display:block;font-size:10px;font-weight:650;color:#343a34;font-variant-numeric:tabular-nums}.entry-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#303830}.more-entries{font-size:9px;color:#5d655b;text-align:center}.event{scroll-margin-top:25px}.event-time{font-size:21px;font-weight:600;color:var(--text);margin:0 0 7px;letter-spacing:-.4px;line-height:1.3}.event .edit{max-width:130px;margin:0 0 9px 8px}.event.booking-card:before{background:var(--booking)}.event.work-card:before,.event.personal-card:before{background:var(--booking)}.booking-details{margin:14px 0;border-top:1px solid var(--line);padding-top:12px}.booking-details summary{cursor:pointer;font-size:13px;color:var(--accent);padding:5px 0;line-height:1.5}.booking-details details{margin-top:10px}.client-note{padding:13px 14px;background:#f6f4fa;border-radius:10px;margin-top:14px;font-size:12px}.private-note{white-space:pre-wrap!important;overflow-wrap:anywhere}.day-colors{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0 9px;margin-bottom:20px}.day-colors h3{font-size:12px;font-weight:550;margin:0 0 10px}.color-presets{display:flex;gap:8px;flex-wrap:wrap}.swatch{padding:0;min-height:36px;width:36px;height:36px;border-radius:50%;border:2px solid #ffffff;box-shadow:0 0 0 1px #ddd}.swatch:hover{filter:brightness(.97)}.swatch.active{box-shadow:0 0 0 2px #394e40}.pink,.pink:hover{background:#fce6f0}.orange,.orange:hover{background:#ffdbac}.blue,.blue:hover{background:#e0f3fd}.red,.red:hover{background:#f8b8bf}.yellow,.yellow:hover{background:#fff4be}.purple,.purple:hover{background:#e4cdf7}.green,.green:hover{background:#bde2ca}.lime,.lime:hover{background:#80fa4f}.custom-color{display:flex;align-items:center;gap:8px;margin-top:13px;flex-wrap:wrap}.custom-color label{margin:0;font-size:12px}.custom-color input{width:42px;height:36px;min-height:36px;padding:3px;margin:0}.custom-color button{font-size:12px;min-height:36px;padding:7px 10px}#unlock-notes{margin-bottom:20px;font-size:12px;width:100%}#schedule-error,#notes-error{color:#a7493b;font-size:13px}.custom-day-color .number{color:#17251b!important;text-shadow:0 0 3px #fff}.custom-day-color .day-entries{background:#ffffff5c;border-radius:4px}.calendar-panel{align-self:start}#schedule-client{font-size:14px;line-height:1.6;color:var(--muted)}
@media(max-width:1000px) and (min-width:761px){.workspace{grid-template-columns:1fr}.calendar-panel{max-width:none}.day{min-height:120px}}
@media(max-width:760px){.calendar-panel{padding:20px 9px}.grid{gap:3px}.day{min-height:122px;padding:6px 2px;border-radius:9px;gap:5px}.day .number{font-size:15px}.day-entry{font-size:9px;padding:3px 2px;border-left-width:2px}.entry-time{font-size:9px;letter-spacing:-.4px}.entry-title{font-size:9px}.day-entries{gap:3px}.more-entries{font-size:9px}.weekdays{font-size:9px}.legend{gap:12px}.event-time{font-size:20px}.color-presets{gap:7px}.swatch{width:34px;height:34px;min-height:34px}}
.day{min-height:106px}.entry-title{font-size:11px}.day.has-work{background:#fce6f0}.custom-day-color.dark-day-color .number{color:white!important;text-shadow:0 0 3px #000}
@media(max-width:760px){.day{min-height:94px}.entry-title,.entry-time{font-size:10px}.entry-time{letter-spacing:-.4px}}

/* Squarer month cells; the full day's agenda remains available below. */
.day{position:relative;aspect-ratio:1;min-height:90px;padding:5px 4px;gap:3px;border-radius:9px}.day .number{font-size:15px;line-height:20px}.day-entries{gap:3px}.day-entry{padding:2px 3px;font-size:10px;line-height:1.15}.entry-title{font-size:10px}.entry-icon{font-size:10px;margin-right:2px}.more-mobile{display:none}.more-entries{font-size:9px;line-height:10px}
@media(max-width:760px){.day{aspect-ratio:1/1.5;min-height:64px;padding:3px 2px;gap:2px;border-radius:7px}.day .number{font-size:14px;line-height:18px}.day-entry{padding:2px 1px;line-height:1.1}.entry-title,.entry-time{font-size:9px}.entry-icon{font-size:9px;margin-right:1px}.more-mobile{display:block;position:absolute;top:4px;right:3px;font-size:8px;color:#354c3b;line-height:10px}.dark-day-color .more-mobile{color:white}.day-entries{gap:2px}}

/* Show every task title; weeks grow to fit the busiest day instead of hiding it. */
.day{aspect-ratio:auto;height:auto;min-height:90px;overflow:visible}.day-entries{flex-shrink:0}.day-entry{flex-shrink:0}.more-mobile,.more-desktop,.more-entries{display:none}
@media(max-width:760px){.day{aspect-ratio:auto;height:auto;min-height:64px}.day-entries>.day-entry:nth-child(n){display:block}}

/* Emoji gets its own slot so truncating a task title cannot hide the symbol. */
.day-entry{display:grid;grid-template-columns:15px minmax(0,1fr);column-gap:2px;row-gap:1px;align-items:center}.entry-icon{grid-column:1;grid-row:1;display:block;flex-shrink:0;width:15px;font-size:13px;line-height:16px;margin:0;text-align:center;overflow:visible}.entry-time{grid-column:2;grid-row:1;min-width:0}.entry-title{grid-column:2;grid-row:1;min-width:0}.timed-entry .entry-title{grid-column:1/-1;grid-row:2}.timed-entry .entry-time{display:block}
@media(max-width:760px){.day-entries>.day-entry:nth-child(n){display:grid}.day-entry{grid-template-columns:12px minmax(0,1fr);column-gap:1px}.entry-icon{width:12px;font-size:12px;line-height:14px}.entry-time{font-size:9px;letter-spacing:-.6px}.entry-title{font-size:9px}}
