:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#302a36;background:#fcfafc;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{border:0;background:none;cursor:pointer;color:inherit;touch-action:manipulation}button:disabled{cursor:default}button:focus-visible{outline:2px solid #9e6ab7;outline-offset:2px}svg{flex-shrink:0}h1,h2,p{margin-top:0}.app{max-width:760px;margin:auto;height:100dvh;min-height:0;padding:max(4px,env(safe-area-inset-top)) max(9px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(9px,env(safe-area-inset-left));display:flex;flex-direction:column;overflow:hidden;background:radial-gradient(ellipse at 90% 0,#f7f0fa80,transparent 40%),#fdfcfd}header{height:88px;display:grid;grid-template-columns:40px minmax(0,1fr) 112px 40px;align-items:center;gap:4px;flex-shrink:0}.icon-button{padding:9px;min-width:40px;min-height:44px;display:grid;place-items:center}.icon-button svg{width:21px;height:21px}.month-control{min-width:0}.month-title{font-size:20px;font-weight:800;text-transform:capitalize;display:flex;align-items:center;gap:5px;padding:0;white-space:nowrap}.month-arrows{display:flex;gap:8px;margin-top:3px}.month-arrows button{padding:4px 12px;min-height:32px;border-radius:10px;background:#f5eff8}.month-arrows svg{width:16px;height:16px}.cats{max-height:100%;width:112px;height:83px;object-fit:contain;margin:0;justify-self:center;min-width:0}.today-button{margin:0;justify-self:end}.calendar,.legend{flex-shrink:0}.weekdays{display:grid;grid-template-columns:19px repeat(7,minmax(0,1fr));padding-bottom:7px;text-align:center;font-weight:700;font-size:12px;color:#69616f}.weekend{color:#bd4975}.month-grid{display:grid;grid-template-columns:19px repeat(7,minmax(0,1fr));gap:4px 3px}.weeknumber{font-size:11px;color:#9d94a5;display:flex;align-items:center;justify-content:center}.day{min-width:0;height:clamp(43px,calc((100dvh - 405px)/6),54px);border-radius:9px;background:linear-gradient(135deg,#f8f4fb,#faf8fc);position:relative;display:flex;align-items:center;flex-direction:column;padding:2px 3px 3px;border:1.5px solid transparent}.day-number{font-size:19px;font-weight:700;line-height:1.1;min-width:24px;height:24px;display:grid;place-items:center;flex-shrink:0}.day.muted .day-number{color:#b9b0c0}.day.together{border-color:#edb0ca;background:#fffafd;box-shadow:inset 0 0 0 .5px #f2c5d9}.day.selected{border-color:#9859b0;background:#f4e6f8;box-shadow:inset 0 0 0 .5px #9859b0}.day.today .day-number{background:#8b4ca3;border-radius:50%;color:#fff;width:28px;height:28px;min-width:28px}.day-symbol{position:absolute;right:1px;top:2px;color:#c64d83;line-height:0}.day-symbol .lucide-heart{width:16px;height:16px;fill:#eeb1ca;stroke-width:2}.day-symbol .lucide-coffee{width:13px;height:13px;color:#976344}.marks{width:100%;margin-top:auto;display:flex;flex-direction:column;gap:1px}.marks i{height:5px;min-height:5px;border-radius:8px;width:100%;display:block}.marks b{position:absolute;bottom:1px;right:3px;font-size:9px;background:#fdfafde6;border-radius:3px;padding:0 2px}.legend{margin:8px 0 10px;background:#faf7fc;border:1px solid white;border-radius:17px;padding:9px;display:flex;flex-wrap:wrap;gap:7px 11px;font-size:10px;color:#625768}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:16px;height:5px;border-radius:5px}.legend .pink{background:#e68ab2}.legend svg{width:15px;height:15px;color:#b7658a}.legend .lucide-coffee{color:#95623d}.schedule{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid #fff;border-radius:22px;padding:10px 11px;background:linear-gradient(135deg,#fff,#fcf8fd);box-shadow:0 8px 35px #ae87bd0d}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;flex-shrink:0}h1{font-size:20px;margin:0;font-weight:800;min-width:0;overflow-wrap:anywhere}h1:first-letter{text-transform:uppercase}.add{width:44px;height:44px;flex-shrink:0;border-radius:50%;color:#fff;background:linear-gradient(135deg,#c29ad5,#a472c3);box-shadow:0 3px 12px #a472c322;display:grid;place-items:center}.add svg{width:27px;height:27px}.events{min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;display:flex;flex-direction:column;gap:6px;padding-bottom:4px}.event{--owner:#a777bd;display:flex;align-items:center;gap:8px;flex-wrap:wrap;text-align:left;width:100%;min-height:42px;border-radius:12px;padding:9px 11px;background:color-mix(in srgb,var(--owner) 13%,white);border-left:3px solid var(--owner);color:#302a36;flex-shrink:0}.event:disabled{opacity:1}.event-copy{flex:1;min-width:0;overflow-wrap:anywhere;font-size:14px;line-height:1.4}.event strong{font-size:14px;font-weight:750}.event-title{font-size:14px}.event small{font-size:11px;white-space:nowrap;background:color-mix(in srgb,var(--owner) 10%,transparent);padding:3px 6px;border-radius:8px;color:#65556b;max-width:100%}.hint{font-size:12px;line-height:1.6;color:#95899c;margin:10px 0}.panel{overflow:auto;flex:1;min-height:0;padding:5px 12px 16px}.back-button{display:flex;align-items:center;gap:3px;min-height:44px;color:#8b50a2;padding:6px 0;margin-bottom:8px}.panel h1{margin-bottom:18px}.panel h2{font-size:17px;margin-top:24px}.color-field{display:flex;justify-content:space-between;align-items:center}.color-field input{width:60px;height:40px;padding:3px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#30213855;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:20;display:flex;align-items:flex-end;justify-content:center}.sheet{background:#fefcff;width:100%;max-width:560px;max-height:94dvh;overflow:auto;padding:24px 22px 30px;border-radius:28px 28px 0 0;box-shadow:0 -8px 45px #40204722}.sheet-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.sheet h2{margin:0;font-size:23px}label{display:block;font-size:13px;font-weight:700;margin:12px 0;color:#75617f}input,select{display:block;width:100%;min-height:43px;border:1px solid #e8deec;border-radius:11px;padding:9px 10px;background:#fff;color:#302a36;margin-top:6px;min-width:0}input:focus,select:focus{outline:2px solid #c6a6d6}.fields{display:flex;gap:12px}.fields>*{flex:1;min-width:0}.fields button{margin-top:6px}.primary,.secondary,.delete{padding:11px 15px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:7px}.primary{background:#a371ba;color:#fff}.secondary{background:#f0e6f6;color:#8b50a2}.text-button{display:block;color:#93769f;padding:15px 0}.delete{color:#bb5c7f;background:#fff0f5}.form-actions{display:flex;justify-content:space-between;margin-top:22px;gap:15px}.form-actions .primary{margin-left:auto}.weekday-picker{display:flex;gap:5px}.weekday-picker button{padding:9px 0;flex:1;background:#f3ecf7;border-radius:9px}.weekday-picker .chosen{background:#a371ba;color:#fff}.chips{display:flex;flex-wrap:wrap;gap:6px}.chips button{background:#f2e9f8;border-radius:9px;padding:6px;font-size:12px}.error{background:#ffedf2;color:#a33a59;padding:10px;border-radius:10px;font-size:13px}.error{flex-shrink:0}.sheet{padding-bottom:max(24px,env(safe-area-inset-bottom));overscroll-behavior:contain}.sheet-heading button{min-width:44px;min-height:44px}.weekday-picker button{min-height:44px}.fields{flex-wrap:wrap}.fields>*{flex:1 1 120px}.sheet{padding-left:16px;padding-right:16px}@media(max-width:350px){header{height:80px;gap:1px;grid-template-columns:40px minmax(0,1fr) 85px}.month-title{font-size:17px}.cats{width:85px;height:76px}.today-button{display:none}.day{padding-left:2px;padding-right:2px}.day-number{font-size:17px;min-width:22px;height:22px}.day-symbol .lucide-heart{width:14px;height:14px}h1{font-size:18px}.legend{font-size:9px;gap:5px 8px;padding:7px}.event{padding:8px 9px}}@media(max-height:650px){header{height:72px}.legend{margin:6px 0;padding:6px;gap:4px 8px}.section-heading{margin-bottom:5px}.schedule{padding:7px 9px}.day-number{height:20px;min-width:21px;font-size:16px}.day{height:42px}.events{gap:5px}}@media(min-width:600px){.app{padding:12px 20px max(14px,env(safe-area-inset-bottom))}header{height:108px;gap:12px}.month-title{font-size:26px}.cats{width:150px;height:100px}.day{height:clamp(43px,calc((100dvh - 380px)/6),70px)}.day-number{font-size:22px;min-width:28px;height:28px}.day-symbol{top:4px;right:5px}.weekdays{font-size:14px}.legend{font-size:11px;padding:11px;gap:10px 18px}.schedule{padding:14px 18px}.event-copy,.event strong,.event-title{font-size:15px}}.day.together.selected{border-color:#edb0ca;background:#fffafd;box-shadow:inset 0 0 0 1px #9859b0}.day{overflow:hidden}.day-number{width:28px;height:28px;min-width:28px;flex-shrink:0}.marks{position:absolute;left:3px;right:3px;bottom:3px;width:auto;gap:2px;margin:0;pointer-events:none}.day-symbol{right:2px;top:2px}.day:not(.today):has(.day-symbol svg) .day-number{align-self:flex-start;width:20px;min-width:20px;font-size:16px}.day.today:has(.day-symbol svg){min-height:68px}.day.today:has(.day-symbol svg) .day-number{margin-top:18px}@media(max-width:350px){.day-symbol .lucide-heart{width:12px;height:12px}.day-symbol{right:1px;top:1px}}@media(max-height:650px){.day-number,.day.today .day-number{width:26px;height:26px;min-width:26px;font-size:16px}.day{padding-top:0}.day.today{height:46px}.day.today:has(.day-symbol svg){min-height:64px}}.optional-fields{margin:12px 0}.optional-fields summary{font-size:13px;color:#75617f;cursor:pointer;padding:8px 0}.day-symbol .lucide-cake{width:14px;height:14px;color:#f44336}@media(max-width:350px){.day-symbol .lucide-cake{width:12px;height:12px}}.builtin-birthday{display:flex;align-items:center;gap:6px;margin:0 2px 8px;font-size:14px;line-height:1.4;font-weight:600;flex-shrink:0}.builtin-birthday svg{color:#f44336}.month-viewport{--month-row-height:clamp(43px,calc((100dvh - 405px)/6),54px);--month-today-height:var(--month-row-height);height:calc(6 * var(--month-row-height) + 20px + max(0px,var(--month-today-height) - var(--month-row-height)));overflow:hidden;touch-action:pan-y pinch-zoom;-webkit-user-select:none;user-select:none;overscroll-behavior-x:contain}.month-viewport.has-today-symbol{--month-today-height:68px}@media(min-width:600px){.month-viewport{--month-row-height:clamp(43px,calc((100dvh - 380px)/6),70px)}}@media(max-height:650px)and (max-width:599px){.month-viewport{--month-row-height:42px;--month-today-height:46px}}@media(max-height:650px)and (min-width:600px){.month-viewport{--month-today-height:46px}}@media(max-height:650px){.month-viewport.has-today-symbol{--month-today-height:64px}}@media(min-width:351px)and (max-width:389px){header{gap:0}.month-title{font-size:clamp(16px,calc(10vw - 19.1px),20px)}}@media(min-width:400px){header{grid-template-columns:40px 168px minmax(0,1fr) 112px minmax(0,1fr) 40px}.month-control{grid-column:2}.cats{grid-column:4}.today-button{grid-column:6}}@media(min-width:600px){header{grid-template-columns:40px 212px minmax(0,1fr) 150px minmax(0,1fr) 40px}}.month-picker{position:fixed;z-index:15;padding:12px;background:#fefcff;border:1px solid #eee5f3;border-radius:18px;box-shadow:0 8px 28px #62447326;overflow:auto;overscroll-behavior:contain;color:#302a36}.picker-heading,.picker-year{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;align-items:center;gap:6px}.picker-heading strong{font-size:16px;text-align:center;text-transform:capitalize;line-height:1.3}.picker-arrow{min-width:40px;min-height:44px;display:grid;place-items:center;border-radius:10px;background:#f6eff9}.month-picker button:disabled{opacity:.4}.picker-months{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:10px 0}.picker-months button{min-height:44px;padding:5px 3px;border-radius:10px;font-size:12px;text-transform:capitalize;overflow-wrap:anywhere}.picker-months [aria-pressed=true]{background:#eee1f5;color:#884ca0;font-weight:700}.picker-year{margin:8px 0 12px}.picker-year-value{min-height:44px;border-radius:10px;font-weight:700;color:#884ca0;background:#f8f3fb}.picker-year input{margin:0;text-align:center;width:100%;min-height:44px}.picker-confirm{width:100%;min-height:44px;font-size:14px}.picker-error{color:#a33a59;font-size:12px;line-height:1.4;margin:0 0 10px}
