:root{--pink-deep: #d6477f;--violet: #c98fff;--pink: #ff8fbd;--text: #6b3a55;--text-soft: rgba(107, 58, 85, .72);--glass: rgba(255, 255, 255, .82);--glass-border: rgba(255, 255, 255, .6);--input-bg: #fff9fc;--input-border: #ffd0e2;--gradient: linear-gradient(135deg, #ff8fbd, #c98fff);--shadow-card: 0 18px 50px rgba(214, 130, 175, .28);--shadow-btn: 0 10px 24px rgba(214, 100, 170, .38);--radius: 28px}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%}html{background-color:#ffe0ec;background-image:linear-gradient(135deg,#ffe0ec,#ffd6e8 25%,#e0d4ff 75%,#d4e8ff);background-repeat:no-repeat;background-size:cover;background-attachment:scroll;-webkit-text-size-adjust:100%}body{font-family:Nunito,Segoe UI,Tahoma,sans-serif;color:var(--text);font-size:16px;line-height:1.5;background:transparent;-webkit-font-smoothing:antialiased;color-scheme:light}.hearts{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:0}.heart{position:absolute;opacity:.16;-webkit-user-select:none;user-select:none}.app{position:relative;z-index:1;display:flex;flex-direction:column;min-height:100vh}.app__main{flex:1;width:100%;max-width:860px;margin:0 auto;padding:0 16px 40px}.app__footer{text-align:center;font-size:14px;color:#6b3a558c;padding:10px 16px 26px}.topbar{width:100%;max-width:860px;margin:0 auto;padding:18px 16px 8px;display:flex;align-items:center;justify-content:space-between;gap:12px}.topbar__brand{display:flex;align-items:center;gap:8px;text-decoration:none;font-family:Caveat,cursive;font-size:28px;font-weight:700;color:var(--pink-deep)}.topbar__heart{font-size:22px}.topbar__right{display:flex;align-items:center;gap:10px;min-width:0}.topbar__user{font-weight:700;font-size:14px;color:var(--pink-deep);max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.screen{display:flex;flex-direction:column;gap:18px;padding-top:10px}.screen--center{min-height:78vh;align-items:center;justify-content:center}.card{background:#fffffff0;border:1px solid var(--glass-border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:22px}.card--narrow{width:100%;max-width:430px}.card--empty{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.title{margin:0;font-family:Caveat,cursive;font-weight:700;font-size:28px;line-height:1.15;color:var(--pink-deep)}.title--big{font-size:38px}.muted{margin:8px 0 0;color:var(--text-soft)}.loader{margin:10px 0;text-align:center;font-weight:700;color:var(--pink-deep)}.empty__emoji{margin:0;font-size:48px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:inherit;font-size:16px;font-weight:800;color:#fff;background:var(--gradient);border:none;border-radius:18px;padding:13px 22px;cursor:pointer;text-decoration:none;box-shadow:var(--shadow-btn);transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease}.btn:hover:not(:disabled){transform:translateY(-2px)}.btn:disabled{opacity:.6;cursor:default}.btn--mini{font-size:14px;font-weight:700;padding:9px 14px;border-radius:14px}.btn--wide{width:100%}.btn--ghost{color:var(--pink-deep);background:#ffffffe6;border:2px solid var(--input-border);box-shadow:0 6px 16px #d682af2e}.btn--danger{background:linear-gradient(135deg,#ffa0b8,#ff6f9c)}.link-btn{margin-top:16px;background:none;border:none;font-family:inherit;font-size:15px;font-weight:700;color:var(--pink-deep);cursor:pointer;text-decoration:underline dotted}.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.chip-row--tight{gap:6px;margin-top:10px}.chip{font-family:inherit;font-size:14px;font-weight:700;color:var(--pink-deep);background:#ffffffe6;border:2px solid var(--input-border);border-radius:999px;padding:8px 14px;white-space:nowrap;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.chip:hover{transform:translateY(-1px)}.chip--active{color:#fff;background:var(--gradient);border-color:transparent;box-shadow:var(--shadow-btn)}span.chip{cursor:default}span.chip:hover{transform:none}.form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field__label{font-size:14px;font-weight:700;color:#6b3a55d9}.field__required{color:#ff6fa5}input[type=text],input[type=password],input[type=url],input[type=date],textarea{width:100%;font-family:inherit;font-size:15px;color:var(--text);background:var(--input-bg);border:2px solid var(--input-border);border-radius:16px;padding:12px 14px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}input:focus,textarea:focus{border-color:var(--pink);box-shadow:0 0 0 4px #ff8fbd2e}input::placeholder,textarea::placeholder{color:#6b3a5566}textarea{min-height:84px;line-height:1.6;resize:vertical}.form__error{margin:0;padding:10px 12px;font-size:14px;font-weight:700;color:#d63d6c;background:#ffffffd9;border:2px dashed #ffb3cf;border-radius:14px}.form__actions{display:flex;flex-wrap:wrap;gap:10px}.form__actions .btn{flex:1 1 auto}.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(155px,1fr))}.tile{display:flex;flex-direction:column;gap:6px;padding:20px;text-decoration:none;transition:transform .16s ease,box-shadow .16s ease}.tile:hover{transform:translateY(-3px);box-shadow:0 22px 55px #d682af57}.tile__emoji{font-size:34px;line-height:1}.tile__title{font-family:Caveat,cursive;font-size:26px;font-weight:700;color:var(--pink-deep)}.tile__count{font-size:13px;font-weight:700;color:#6b3a55b3}.section__head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap}.section__actions{display:flex;gap:8px;flex-wrap:wrap}.entry{background:#fffffff0;border:1px solid var(--glass-border);border-radius:24px;box-shadow:var(--shadow-card);padding:20px}.entry__head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}.entry__title{margin:0;font-family:Caveat,cursive;font-size:28px;font-weight:700;line-height:1.15;color:var(--pink-deep)}.entry__time{font-size:12px;font-weight:700;color:#6b3a558c}.entry__body{margin:12px 0 0;white-space:pre-wrap;word-break:break-word}.entry__link{display:inline-block;margin-top:10px;font-size:14px;font-weight:700;color:#a25fd0;text-decoration:none;border-bottom:1px dashed currentColor;word-break:break-all}.entry__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.recent{margin:12px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}.recent__item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:8px;border-bottom:1px dashed rgba(214,130,175,.35)}.recent__item:last-child{border-bottom:none;padding-bottom:0}.recent__main{display:flex;align-items:center;gap:8px;min-width:0;font-weight:700;color:var(--text);text-decoration:none}.recent__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent__time{font-size:12px;color:#6b3a558c;white-space:nowrap}.login__head{display:flex;flex-direction:column;align-items:center;gap:4px;margin-bottom:20px;text-align:center}.login__emoji{font-size:46px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:flex-start;justify-content:center;padding:24px 14px 40px;overflow-y:auto;background:#6b3a556b;animation:fade-in .2s ease}.modal__box{width:100%;max-width:520px;animation:pop-in .24s ease}.modal__head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.modal__close{width:36px;height:36px;flex:0 0 auto;font-family:inherit;font-size:15px;font-weight:700;color:var(--pink-deep);background:#ffffffe6;border:2px solid var(--input-border);border-radius:999px;cursor:pointer}.modal__close:hover{border-color:var(--pink)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}@media (max-width: 560px){body{font-size:15px}.title--big{font-size:31px}.app__main{padding:0 12px 32px}.topbar{padding:14px 12px 6px}.topbar__brand{font-size:24px}.card,.entry{padding:18px;border-radius:22px}.btn{font-size:15px;padding:12px 18px}.grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.section__actions{width:100%}.section__actions .btn{flex:1 1 auto}.recent__item{flex-direction:column;align-items:flex-start;gap:2px}}@media (prefers-reduced-motion: reduce){.heart,.modal,.modal__box{animation:none!important}}.field__hint{display:block;font-size:13px;color:var(--muted, #9b8aa6);margin-top:4px}.invite{display:flex;gap:16px;align-items:center}.invite__emoji{font-size:40px;line-height:1}.invite__body{flex:1;min-width:0}.invite__code{display:block;margin-top:10px;padding:10px 18px;font-size:26px;font-weight:700;letter-spacing:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:inherit;background:#ff8fab24;border:2px dashed rgba(255,143,171,.6);border-radius:14px;cursor:pointer;transition:transform .15s ease,background .15s ease}.invite__code:hover{background:#ff8fab3d;transform:translateY(-1px)}.badge{display:inline-block;margin-left:10px;padding:3px 10px;font-size:13px;font-weight:600;border-radius:999px;vertical-align:middle;background:#ff8fab29}.badge--mine{background:#a8e6cf59}.badge--partner{background:#ffd16659}.badge--shared{background:#93c5fd59}.readonly-note{margin:8px 0 4px;padding:10px 14px;font-size:14px;background:#ffd1662e;border-radius:12px}.entry__author{margin:6px 0 0;font-size:13px;color:var(--muted, #9b8aa6)}.tile--partner{border-style:dashed}.qlist{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:8px}.qlist__item{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;background:#ffffff8c;border-radius:12px}.qlist__item--empty{color:var(--muted, #9b8aa6);justify-content:center}.qlist__label{flex:1 1 140px;font-weight:600;min-width:0;overflow-wrap:anywhere}.qlist__actions{display:flex;gap:4px;margin-left:auto}.tile--quiz{text-decoration:none;text-align:center;align-items:center}.pair__label{margin:0;font-family:Caveat,cursive;font-weight:700;font-size:26px;line-height:1.15;color:var(--pink-deep);overflow-wrap:anywhere}.pair__group{margin:4px 0 -4px;padding:10px 16px;font-family:Caveat,cursive;font-size:22px;font-weight:700;color:var(--pink-deep);background:#ffffffb3;border:2px dashed var(--input-border);border-radius:16px}.pair__head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:14px}.pair__head .pair__label{flex:1 1 200px;min-width:0}.pair__links{display:inline-flex;flex-wrap:wrap;gap:6px}.pair__source{flex:0 0 auto;padding:5px 12px;font-size:12px;font-weight:700;color:var(--pink-deep);text-decoration:none;background:#ffffffe6;border:2px solid var(--input-border);border-radius:999px;white-space:nowrap}.pair__source:hover{background:#ff8fbd29}.pair--flash{animation:pair-flash 1.6s ease}@keyframes pair-flash{0%,to{box-shadow:var(--shadow-card)}25%{box-shadow:0 0 0 4px #ff8fbd8c}}.field__label .field__link{margin-left:8px;font-size:12px;font-weight:700;color:var(--pink-deep);text-decoration:none;white-space:nowrap;opacity:.85}.field__label .field__link:hover{text-decoration:underline;opacity:1}.pair__cols{display:grid;grid-template-columns:1fr 1fr;gap:14px}.pair__col{background:#ffffff8c;border:1px dashed var(--input-border);border-radius:18px;padding:14px;min-width:0}.pair__col--partner{background:#fff1f7bf}.pair__who{display:block;font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#6b3a55a6;margin-bottom:8px}.pair__empty{margin:0;font-size:14px;font-style:italic;color:#6b3a5580}.pair__text{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.pair__time{margin:8px 0 0;font-size:12px;color:#6b3a5580}@media (max-width: 560px){.pair__cols{grid-template-columns:1fr}}.push-card__row{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.push-card__row .muted{max-width:46ch}.toasts{position:fixed;left:50%;bottom:18px;transform:translate(-50%);z-index:60;display:flex;flex-direction:column;gap:8px;width:min(92vw,420px);pointer-events:none}.toast{display:flex;align-items:center;gap:10px;padding:12px 16px;font-size:14px;font-weight:700;color:var(--text);background:#fffffff2;border:1px solid var(--glass-border);border-radius:16px;box-shadow:var(--shadow-card);animation:toast-in .25s ease}.toast__emoji{font-size:18px}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.cal__legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:14px}.cal__legend-item{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:#6b3a55bf}.cal-dot{width:14px;height:14px;border-radius:5px;display:inline-block;border:1px solid rgba(107,58,85,.2)}.cal-dot--none{background:#ece7f1}.cal-dot--mine{background:#bfe3ff}.cal-dot--partner{background:#ffd0e2}.cal-dot--both{background:var(--gradient);border-color:transparent}.cal__head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.cal__grid--head{margin-bottom:6px}.cal__weekday{text-align:center;font-size:12px;font-weight:800;text-transform:uppercase;color:#6b3a558c;padding:4px 0}.cal-day{position:relative;aspect-ratio:1;min-height:40px;display:flex;align-items:center;justify-content:center;font-family:inherit;font-size:15px;font-weight:700;color:var(--text);background:#ece7f1;border:2px solid transparent;border-radius:14px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.cal-day:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 18px #d682af40}.cal-day:disabled{opacity:.65;cursor:default}.cal-day--empty{background:transparent;pointer-events:none}.cal-day--mine{background:#bfe3ff}.cal-day--partner{background:#ffd0e2}.cal-day--both{background:var(--gradient);color:#fff;box-shadow:0 8px 20px #d664aa66}.cal-day--today{border-color:var(--pink-deep)}.cal-day--selected{outline:3px solid rgba(214,71,127,.45);outline-offset:2px}.cal-day__star{position:absolute;top:-8px;right:-4px;font-size:14px}.cal__hint{margin:14px 0 0;font-size:13px;color:#6b3a5599;text-align:center}.cal__action{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.cal__buttons{display:flex;flex-wrap:wrap;gap:10px;width:100%}.cal__chosen{display:flex;gap:14px;align-items:center}.cal__chosen-star{font-size:36px}@media (max-width: 560px){.cal-day{min-height:34px;font-size:13px;border-radius:10px}.cal__grid{gap:4px}}
