:root{font-family:Georgia,Times New Roman,serif;color:#282722;background:#e2ddd4;font-synthesis:none}.brand-mark input{display:none}.brand-mark{overflow:hidden;cursor:pointer}.brand-mark img{width:100%;height:100%;object-fit:cover}.day-head.is-holiday,.day-column.is-holiday{background:#ebe9e5}.day-head small{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#6a5b4b;font-size:9px}.month-switch{display:inline-flex;align-items:center;gap:8px}.month-switch p{margin:0}.month-switch button{width:28px;height:28px;border:1px solid #c7baa8;border-radius:50%;background:#fffaf1}.month-chart{overflow-x:auto;gap:5px}.month-chart .bar-wrap{min-width:30px}.month-chart small{font-size:9px;color:#5e1737;white-space:nowrap;transform:rotate(-45deg);margin-bottom:6px}*{box-sizing:border-box}body{margin:0;min-width:320px;background:#e2ddd4}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #b8336a;outline-offset:2px}.access-page{min-height:100dvh;max-width:760px;margin:0 auto;display:grid;align-content:center;gap:16px;padding:32px;background:#f8f7f3;color:#282722}.access-page p{margin:0;color:#7c1f47;font-size:14px}.access-page h1{margin:0;font-size:clamp(36px,12vw,62px);line-height:.95;letter-spacing:-.04em;font-weight:500}.access-page span{color:#655c54;font-size:16px}.access-page a{width:fit-content;margin-top:8px;padding:13px 18px;border-radius:5px;background:#2e2822;color:#fff;text-decoration:none}.app-shell{min-height:100dvh;max-width:760px;margin:0 auto;background:#f8f7f3;border-inline:1px solid #d5d0c8;padding-bottom:96px;position:relative;overflow:hidden}.masthead{height:calc(64px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 20px 0;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ded9d0;background:#f0eee8}.brand{display:flex;align-items:center;gap:9px;line-height:.92}.brand-mark{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#b8336a;color:#fff;font-weight:700}.brand strong,.brand small{display:block}.brand small{font-size:12px;letter-spacing:.03em;color:#6c6259;margin-top:4px}.avatar{width:34px;height:34px;border:1px solid #9c9389;background:transparent;border-radius:50%;color:#382d25}.tabs{display:grid;grid-template-columns:repeat(3,1fr);padding:10px 14px 0;border-bottom:1px solid #ded9d0;background:#f0eee8}.tabs button{background:transparent;border:0;padding:11px 2px 12px;color:#6c6259;font-size:14px}.tabs button.is-active{color:#4d1730;border-bottom:2px solid #b8336a;font-weight:700}.diary-page,.earnings-page,.services-page{padding:22px 14px}.diary-heading,.earnings-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;margin:0 6px 20px}.diary-heading p,.earnings-heading p,.composer p{margin:0 0 5px;color:#7a6c60;font-size:13px;letter-spacing:.04em}.diary-heading h1,.earnings-heading h1,.composer h2{margin:0;font-size:clamp(25px,7vw,34px);font-weight:500;letter-spacing:-.035em}.spread-controls{display:flex;align-items:center;gap:8px;color:#7a6c60;font-size:12px}.spread-controls button{width:30px;height:30px;border:1px solid #c7baa8;background:#fbf7f0;border-radius:50%;color:#4e4137}.spread-controls button:disabled{opacity:.35;cursor:default}.spread-controls .today-button{width:auto;padding:0 10px;border-radius:5px;color:#641e3d;font-weight:700}.calendar-grid{--column-count: 3;display:grid;grid-template-columns:38px repeat(var(--column-count),minmax(0,1fr));grid-template-rows:42px 1064px;border:1px solid #d5d0c8;position:relative;background:#fffdfa}.calendar-grid.days-2{--column-count: 2}.day-head{grid-row:1;border-left:1px solid #e1dcd4;padding:7px 4px 3px;display:flex;justify-content:space-between;align-items:baseline;background:#f4f1eb}.day-head b{color:#5e1737;font-size:13px}.day-head span{color:#655c54;font-size:12px}.weekend-head{padding:0}.weekend-head button{flex:1;height:100%;border:0;border-bottom:2px solid transparent;background:transparent;color:#655c54;font:inherit;font-size:12px}.weekend-head button+button{border-left:1px solid #d8d0c6}.weekend-head button.is-focused{border-bottom-color:#b8336a;color:#5e1737;font-weight:700}.time-axis{grid-row:2;grid-column:1;display:grid;grid-template-rows:repeat(14,76px);color:#655c54;font-size:11px;padding-top:3px;text-align:center}.day-column{grid-row:2;position:relative;border-left:1px solid #e1dcd4}.time-slot{display:block;height:76px;width:100%;background:transparent;border:0;border-bottom:1px solid #e8e3dc}.time-slot:hover{background:#fbf0f5}.appointment{position:absolute;left:3px;right:3px;z-index:1;padding:5px 4px 4px 25px;overflow:hidden;border:1px solid #ead3dd;color:#4d1730;background:#fceaf0;font-size:11px;line-height:1.15;text-align:left;font-family:inherit;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease}.appointment.is-focused{z-index:3}.appointment:hover{transform:translateY(-1px);box-shadow:0 6px 12px #432b1d14}.appointment.ink{background:#f0ede8;border-color:#ded8d0;color:#38312c}.appointment.ochre{background:#fbf2df;border-color:#eadab5;color:#69481f}.appointment.leaf{background:#edf3ea;border-color:#d2e2d0;color:#2c5a3b}.appointment.blue{background:#eaf2fa;border-color:#c9dbea;color:#24506c}.appointment.violet{background:#f0ecf8;border-color:#d8cdea;color:#574071}.weekend-fri{right:18px}.weekend-sat{left:18px}.weekend-column .appointment:not(.is-focused){opacity:.72}.service-symbol{position:absolute;left:5px;top:5px;width:15px;height:15px}.service-symbol svg{width:100%;height:100%}.appointment strong,.appointment span,.appointment small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appointment strong,.appointment small{font-size:11px}.appointment span{margin-top:3px}.appointment small{margin-top:3px;font-weight:700}.receipt{margin:18px auto 0;width:fit-content;min-width:220px;display:grid;grid-template-columns:1fr auto;padding:10px 15px;border-top:1px dashed #8f7d69;border-bottom:1px dashed #8f7d69;background:#f4f1eb;font-size:12px;color:#655c54}.receipt strong{color:#4e1730;font-size:19px}.receipt span:last-child{grid-column:1 / -1;margin-top:3px}.add-button{position:fixed;z-index:2;bottom:calc(18px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);display:inline-flex;align-items:center;gap:7px;border:0;border-radius:24px;padding:13px 18px;background:#2e2822;color:#fff}.add-button svg{width:18px;height:18px}.earnings-heading{display:block}.earnings-heading h1{font-size:clamp(46px,14vw,68px);color:#641e3d}.earnings-heading span{color:#7a6c60;font-size:13px}.ink-chart{height:260px;padding:20px 15px 0;border-block:1px solid #d9cfbf;display:flex;align-items:end;gap:9px;background:#f8f1e5}.bar-wrap{flex:1;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:end;gap:8px}.bar{width:100%;max-width:32px;min-height:4px;background:#b8336a;border-radius:2px 2px 0 0}.bar-wrap b{font-size:10px;color:#6f6257}.earnings-note{margin-top:18px;padding:15px 0;border-bottom:1px solid #d9cfbf;display:flex;justify-content:space-between;color:#54483e;font-size:14px}.earnings-note strong{color:#641e3d}.text-button{border:0;background:none;color:#7c1f47;font-weight:700}.service-list{border-top:1px solid #c7baa8}.service-row{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:14px 4px;border-bottom:1px solid #d9cfbf}.service-row>div:nth-child(2) strong,.service-row>div:nth-child(2) span{display:block}.service-row span{color:#7a6c60;font-size:12px;margin-top:3px}.service-row b{color:#581832}.service-symbol{color:inherit}.service-row .service-symbol{position:static;width:30px;height:30px;padding:6px;border:1px solid currentColor;border-radius:50%}.service-symbol.rose{color:#9d2958}.service-symbol.ink{color:#514840}.service-symbol.ochre{color:#8a602a}.service-symbol.leaf{color:#386a45}.service-edit{border:0;padding:0;background:transparent;text-align:left;color:inherit}.service-edit strong,.service-edit span{display:block}.service-edit span{color:#7a6c60;font-size:12px;margin-top:3px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;background:#2e251c7a;display:flex;align-items:end}.composer{position:relative;width:100%;max-width:560px;margin:0 auto;max-height:91dvh;overflow:auto;padding:28px 20px calc(28px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;background:#fffaf1;box-shadow:0 -16px 30px #22191229}.composer h2{margin-bottom:23px}.composer label{display:block;margin:13px 0;font-size:13px;color:#584b40}.composer input,.composer select{display:block;width:100%;margin-top:5px;padding:11px 10px;border:1px solid #c8b9a6;border-radius:5px;background:#fffdf8;color:#2e2822}.close{position:absolute;top:16px;right:16px;width:32px;height:32px;border:1px solid #c8b9a6;border-radius:50%;background:transparent;color:#584b40;font-size:22px}.contact-label,.time-pair{display:grid;grid-template-columns:1fr auto;align-items:end;gap:9px}.time-pair{grid-template-columns:1fr 1fr}.contact-label label{margin-bottom:13px}.icon-picker{margin:17px 0;padding:0;border:0}.icon-picker legend{margin-bottom:7px;font-size:13px;color:#584b40}.icon-picker>div{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.icon-picker label{margin:0;min-width:0}.icon-picker input{position:absolute;opacity:0;pointer-events:none}.icon-picker span{min-height:53px;display:grid;place-items:center;gap:2px;border:1px solid #c8b9a6;border-radius:7px;background:#fffdf8;color:#66584d}.icon-picker svg{width:21px;height:21px}.icon-picker i{max-width:100%;overflow:hidden;text-overflow:ellipsis;font-style:normal;font-size:9px;white-space:nowrap}.icon-picker input:checked+span{border-color:#8d2352;background:#f9e9f0;color:#751d43;box-shadow:inset 0 0 0 1px #8d2352}.icon-picker input:focus-visible+span{outline:3px solid #b8336a;outline-offset:2px}.contact-import{margin-bottom:13px;height:40px;padding:0 10px;border:1px solid #c8b9a6;border-radius:5px;background:#f5ede1;color:#5e1737;font-size:12px}.save{width:100%;margin-top:10px;padding:14px;border:0;border-radius:5px;background:#2e2822;color:#fff9f0;font-weight:700}.delete-record{width:100%;margin-top:10px;padding:11px;border:1px solid #a34050;border-radius:5px;background:transparent;color:#8c2438;font-weight:700}.sheet-backdrop{overflow:hidden}.composer{overflow-x:hidden;overflow-y:auto}.icon-picker{min-inline-size:0}@media(min-width:620px){.app-shell{min-height:calc(100dvh - 40px);margin-top:20px;margin-bottom:20px;border-radius:12px}.diary-page,.earnings-page,.services-page{padding-inline:30px}.calendar-grid{grid-template-columns:52px repeat(var(--column-count),minmax(0,1fr))}.appointment{padding:7px 6px 6px 31px;font-size:11px}.service-symbol{width:18px;height:18px}.appointment strong{font-size:12px}}
