@import "https://fonts.googleapis.com/css2?family=Tuffy:wght@400;700&display=swap";:root{--paper:#f0f0f0;--card:#fff;--ink:#050229;--muted:#6c757d;--line:#e5e7eb;--accent:#8e83f4;--accent-hover:#7f76c6;--accent-soft:#efecfc;--danger:#c14b3f;--danger-soft:#fbeae7;--font-ui:"Tuffy", system-ui, -apple-system, "Segoe UI", sans-serif;--font-serif:"Tuffy", system-ui, -apple-system, "Segoe UI", sans-serif;--font-hand:"Tuffy", system-ui, -apple-system, "Segoe UI", sans-serif;--shadow-card:0 1px 2px #2b26220a, 0 10px 28px -14px #2b26222e;--container-width:68rem;--border-color:#d1d5db;--link-color:#968fda;--error-border:#f5b9b1;--error-bg:#fdf1ef;--success-border:#bfe3c0;--success-bg:#f0faf0;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-ui);background:var(--paper);color:var(--ink);margin:0;line-height:1.5}a{color:inherit}main{max-width:var(--container-width);margin:0 auto;padding:2rem 1.25rem 4rem}h1{margin-top:0}button{font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.site-header{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;position:sticky;top:0}.site-header .container{max-width:var(--container-width);justify-content:space-between;align-items:center;margin:0 auto;padding:.75rem 1.25rem;display:flex}.site-title{font-family:var(--font-serif);letter-spacing:-.01em;font-size:1.125rem;font-weight:600;text-decoration:none}.site-header__nav{align-items:center;gap:1rem;margin-left:auto;margin-right:1.5rem;display:flex}.site-header__user{cursor:pointer;border-radius:.375rem;align-items:center;gap:.5rem;padding:.25rem .5rem;display:flex;position:relative}.site-header__user:hover{background:var(--paper)}.site-header__user-name{color:var(--ink);font-size:.875rem;font-weight:500}.site-header__dropdown{background:var(--card);border:1px solid var(--line);min-width:12rem;box-shadow:var(--shadow-card);z-index:20;border-radius:.5rem;padding:.25rem 0;position:absolute;top:calc(100% + .25rem);right:0}.site-header__dropdown-item{width:100%;font:inherit;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.875rem;text-decoration:none;display:flex}.site-header__dropdown-item:hover{background:var(--paper)}.site-header__dropdown-item .icon{width:1rem;height:1rem}.auth-card{background:var(--card);border:1px solid var(--line);max-width:24rem;box-shadow:var(--shadow-card);border-radius:.75rem;margin:3rem auto 0;padding:1.75rem}.field{margin-bottom:1rem}.field label{color:var(--muted);margin-bottom:.25rem;font-size:.9rem;display:block}.field input{border:1px solid var(--line);width:100%;font:inherit;background:#fff;border-radius:.375rem;padding:.5rem .6rem}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.field-checkbox label{align-items:center;gap:.4rem;margin:0;display:flex}.field-checkbox input{width:auto}.field__label-row{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.25rem;display:flex}.field__label-row label{margin-bottom:0}.field-hint{color:var(--link-color);font-size:.85rem;text-decoration:none}.field-hint:hover{text-decoration:underline}.auth-hint{color:var(--muted);margin-top:0;font-size:.9rem}.button{border:1px solid var(--border-color);font:inherit;cursor:pointer;background:0 0;border-radius:.375rem;padding:.5rem 1rem;text-decoration:none;display:inline-block}.button:hover{border-color:var(--muted)}.button--block{justify-content:center;align-items:center;width:100%;display:flex}.button-link{color:var(--link-color);background:0 0;border:none;align-items:center;gap:.35rem;padding:.5rem 0;display:inline-flex}.badge{white-space:nowrap;border:1px solid #0000;border-radius:1rem;justify-content:center;align-items:center;min-width:1.25rem;height:1.25rem;padding:0 .35rem;font-size:.65rem;font-weight:600;line-height:1;display:inline-flex}.badge--neutral{color:#6b7280;background:#f3f4f6;border-color:#d1d5db}.badge--neutral:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}a.badge--neutral{cursor:pointer;text-decoration:none}.badge--pending{color:#92400e;background:#fef3c7;border-color:#fbbf24}.badge--done{color:#166534;background:#f0faf0;border-color:#bfe3c0}.badge--review{color:#1e40af;background:#dbeafe;border-color:#93c5fd;animation:2s ease-in-out infinite badge-pulse}@keyframes badge-pulse{0%,to{opacity:1}50%{opacity:.6}}.alert{border-radius:.375rem;margin-bottom:1rem;padding:.75rem;font-size:.9rem}.alert-error{border:1px solid var(--error-border);background:var(--error-bg)}.alert-success{border:1px solid var(--success-border);background:var(--success-bg)}.alert ul{margin:0;padding-left:1.25rem}.auth-alt{color:var(--muted);margin-top:1.25rem;font-size:.9rem}.wishlists__head{margin-bottom:2.25rem}.wishlists__heading{font-family:var(--font-serif);letter-spacing:-.02em;margin:0 0 1.5rem;font-size:2rem;font-weight:600;line-height:1.15}.wishlists__create{flex-wrap:wrap;gap:.625rem;display:flex}.wishlists__create-input{border:1px solid var(--line);background:var(--card);max-width:24rem;font:inherit;color:var(--ink);border-radius:.625rem;flex:18rem;padding:.625rem .875rem;font-size:.9375rem}.wishlists__create-input::placeholder{color:var(--muted)}.wishlists__create-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.wishlists__create-button{border:1px solid var(--accent);background:var(--accent);color:#fff;font:inherit;cursor:pointer;border-radius:.625rem;padding:.625rem 1.375rem;font-size:.9375rem;font-weight:500;transition:background .15s,border-color .15s}.wishlists__create-button:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.wishlists__error,.wishlist-card__error{color:var(--danger);flex-basis:100%;margin:.5rem 0 0;font-size:.875rem}.wishlist-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem;display:grid}.wishlists__empty{color:var(--muted);font-size:.9375rem}.wishlist-card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-card);border-radius:1rem;flex-direction:column;padding:1.5rem;display:flex}.wishlist-card__header{flex-direction:column;gap:.5rem;margin-top:.7em;display:flex}.wishlist-card__title{letter-spacing:-.015em;word-break:break-word;cursor:text;color:var(--ink);margin:0;font-family:Tuffy,system-ui,-apple-system,Segoe UI,sans-serif;font-size:1.7rem;font-weight:800;line-height:1.2}.wishlist-card__title-wrap{align-items:center;display:flex}.wishlist-card__title-edit{letter-spacing:-.015em;color:#6154e0;background:0 0;border:none;border-radius:0;flex:1;min-width:0;padding:0;font-family:Tuffy,system-ui,-apple-system,Segoe UI,sans-serif;font-size:1.7rem;font-weight:800;line-height:1.2}.wishlist-card__title-edit:focus{outline:none}.wishlist-card__actions{flex-shrink:0;justify-content:flex-end;align-items:center;gap:.125rem;margin-top:auto;padding-top:2rem;display:flex}.wishlist-card__share{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:.5rem;align-items:center;gap:.375rem;padding:.25rem .5rem;font-size:.8125rem;transition:color .15s,background .15s;display:inline-flex}.wishlist-card__share:hover{color:var(--accent);background:var(--accent-soft)}.wishlist-card__delete{width:1.75rem;height:1.75rem;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:.5rem;justify-content:center;align-items:center;transition:color .15s,background .15s;display:flex}.wishlist-card__delete:hover{color:var(--danger);background:var(--danger-soft)}.wishlist-card__share .icon,.wishlist-card__delete .icon{width:.875rem;height:.875rem}.wishlist-card__author{border-bottom:1px solid var(--line);align-items:center;gap:.625rem;margin-top:1rem;padding-bottom:1rem;display:flex}.avatar{color:#fff;letter-spacing:.02em;-webkit-user-select:none;user-select:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:1.375rem;height:1.375rem;font-size:.6875rem;font-weight:600;display:inline-flex}.avatar--0{background:#c98a5a}.avatar--1{background:#7d9b76}.avatar--2{background:#8b7aa8}.avatar--3{background:#b06d6d}.avatar--4{background:#6f8ba8}.wishlist-card__author-name{font-size:.9375rem;font-weight:500}.wishlist-card__wishes{margin:.8rem 0 0;padding:0;list-style:none}.wish{border-bottom:1px dashed #b8b8b8;align-items:center;gap:.625rem;display:flex}.wish:last-child{border-bottom:none}.wish__grip{color:var(--muted);cursor:grab;align-items:center;display:flex}.wish__grip:active{cursor:grabbing}.wish__grip .icon{width:1.125rem;height:1.125rem}.wish__actions{flex-shrink:0;align-items:center;gap:.125rem;display:flex}.wish__text{min-width:0;font-family:var(--font-hand);color:var(--ink);word-break:break-word;flex:1;padding:.6em 0;font-size:1.1rem;line-height:1.35}.wish__text--editable{cursor:text}.wish__edit{min-width:0;font-family:var(--font-hand);color:var(--ink);background:0 0;border:none;border-radius:0;flex:1;padding:.6em 0;font-size:1.1rem;line-height:1.35}.wish__edit:focus{outline:none}.wish__delete{width:1.75rem;height:1.75rem;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;transition:color .15s,background .15s;display:flex}.wish__delete:hover{color:var(--danger);background:var(--danger-soft)}.wish__delete .icon{width:.875rem;height:.875rem}.wish--empty .wish__text{color:var(--muted);font-family:var(--font-ui);font-size:.875rem}.wishlist-card__add{flex-wrap:wrap;align-items:center;gap:.625rem;margin-top:1.5rem;display:flex}.wishlist-card__add-input{border:1px solid var(--line);min-width:0;font:inherit;color:var(--ink);background:#fff;border-radius:.625rem;flex:1;padding:.625rem .875rem;font-size:.9375rem}.wishlist-card__add-input::placeholder{color:var(--muted)}.wishlist-card__add-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.wishlist-card__add-button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;transition:background .15s,transform .1s;display:flex}.wishlist-card__add-button:hover{background:var(--accent-hover)}.wishlist-card__add-button:active{transform:scale(.94)}.wishlist-card__add-button .icon{width:1.125rem;height:1.125rem}.shared{justify-content:center;padding-top:1rem;display:flex}.wishlist-card--shared{width:100%;max-width:36rem}.shared__hint{color:var(--muted);font-size:.875rem}.wish__chip{height:1.5rem;font:inherit;white-space:nowrap;cursor:default;border:1px solid #0000;border-radius:1rem;flex-shrink:0;align-items:center;gap:.25rem;padding:0 .5rem;font-size:.75rem;font-weight:500;line-height:1;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.wish__chip .icon{width:.7rem;height:.7rem}.wish__chip--pending{color:#92400e;background:#fef3c7;border-color:#fbbf24}.wish__chip--review{color:#1e40af;background:#dbeafe;border-color:#93c5fd}.wish__chip--done{border-color:var(--success-border);color:#166534;background:var(--success-bg)}.wish__chip--available{border-color:var(--accent);color:var(--accent);cursor:pointer;background:0 0}.wish__chip--available:hover{background:var(--accent);color:#fff}.wish__chip--rejected{border-color:var(--line);color:var(--muted);background:#f9fafb}.wish__check{border:1px solid var(--success-border);background:var(--card);color:#166534;cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;transition:background .15s,border-color .15s;display:inline-flex}.wish__check:hover{background:var(--success-bg)}.wish__check--review{color:#1e40af;background:#dbeafe;border-color:#93c5fd}.wish__check--review:hover{background:#bfdbfe}.wish__check .icon,.wish__check svg{width:.75rem;height:.75rem}.modal-overlay{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#05022959;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-dialog{background:var(--card);border:1px solid var(--line);width:100%;max-width:24rem;box-shadow:var(--shadow-card);text-align:center;border-radius:1rem;padding:1.75rem}.modal-dialog__text{font-family:var(--font-serif);color:var(--ink);margin:0 0 1rem;font-size:1.25rem;font-weight:700;line-height:1.2}.modal-dialog__hint{color:var(--muted);margin:0 0 1.5rem;font-size:.9rem;line-height:1.4}.modal-dialog__actions{justify-content:center;gap:.75rem;display:flex}.modal-dialog__actions--column{flex-direction:column;align-items:stretch}.modal-dialog__confirm{border:1px solid var(--accent);background:var(--accent);color:#fff;font:inherit;cursor:pointer;border-radius:.625rem;padding:.5rem 1.5rem;font-size:.9375rem;font-weight:500;transition:background .15s,border-color .15s}.modal-dialog__confirm:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.modal-dialog__confirm--secondary{color:var(--accent);border:1px solid var(--accent);background:0 0}.modal-dialog__confirm--secondary:hover{background:var(--accent-soft)}.modal-dialog__cancel{border:1px solid var(--line);color:var(--muted);font:inherit;cursor:pointer;background:0 0;border-radius:.625rem;padding:.5rem 1.5rem;font-size:.9375rem;transition:color .15s,border-color .15s}.modal-dialog__cancel:hover{color:var(--ink);border-color:var(--muted)}.modal-enter{transition:opacity .2s ease-out}.modal-enter-start{opacity:0}.modal-enter-end{opacity:1}.modal-leave{transition:opacity .15s ease-in}.modal-leave-start{opacity:1}.modal-leave-end{opacity:0}.promises__heading{font-family:var(--font-serif);letter-spacing:-.02em;margin:0 0 2rem;font-size:2rem;font-weight:600;line-height:1.15}.promises__section{margin-bottom:3rem}.promises__section-title{font-family:var(--font-serif);color:var(--ink);margin:0 0 1rem;font-size:1.25rem;font-weight:600}.promises__count{color:var(--muted);font-size:1rem;font-weight:400}.promises__grid{grid-template-columns:repeat(2,1fr);gap:1.5rem;display:grid}.promises__empty{color:var(--muted);grid-column:1/-1;font-size:.9375rem}.promise-card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-card);border-radius:1rem;flex-direction:column;gap:.75rem;padding:1.25rem;display:flex}.promise-card--fulfilled{opacity:.75}.promise-card--in-review{border-color:var(--line)}.promise-card__header{align-items:flex-start;gap:.625rem;display:flex}.promise-card__text{font-family:var(--font-hand);color:var(--ink);word-break:break-word;flex:1;font-size:1.1rem;line-height:1.35}.promise-card__meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.promise-card__meta-item{color:var(--ink);align-items:center;gap:.5rem;font-size:.9rem;display:inline-flex}.promise-card__link{color:var(--link-color);font-size:.875rem;text-decoration:none}.promise-card__link:hover{text-decoration:underline}.promise-card__link--deleted{color:var(--muted);cursor:default;font-style:italic}.promise-card__link--deleted:hover{text-decoration:none}.promise-card__deadline{flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.875rem;display:flex}.promise-card__time{color:var(--ink);font-weight:500}.promise-card__time--passed{color:var(--danger)}.promise-card__date{color:var(--muted)}.promise-card__align-right{justify-content:flex-end;display:flex}.promise-card__fulfill{border:1px solid var(--accent);color:var(--accent);font:inherit;cursor:pointer;background:0 0;border-radius:1rem;align-self:flex-start;padding:.375rem .875rem;font-size:.875rem;font-weight:500;transition:background .15s,color .15s}.promise-card__fulfill:hover{background:var(--accent);color:#fff}.promise-card__question{border-top:1px solid var(--line);flex-direction:column;gap:.75rem;padding:.75rem 0 0;display:flex}.promise-card__question-text{color:var(--ink);font-size:.9rem}.promise-card__actions{gap:.5rem;display:flex}.button--primary{border:1px solid var(--accent);background:var(--accent);color:#fff;font:inherit;cursor:pointer;border-radius:.625rem;padding:.5rem 1.5rem;font-size:.9375rem;font-weight:500;transition:background .15s,border-color .15s}.button--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.button--secondary{border:1px solid var(--accent);color:var(--accent);font:inherit;cursor:pointer;background:0 0;border-radius:.625rem;padding:.5rem 1.5rem;font-size:.9375rem;font-weight:500;transition:background .15s,border-color .15s}.button--secondary:hover{background:var(--accent-soft)}.button--tertiary{border:1px solid var(--line);color:var(--muted);font:inherit;cursor:pointer;background:0 0;border-radius:.625rem;padding:.5rem 1.5rem;font-size:.9375rem;transition:color .15s,border-color .15s}.button--tertiary:hover{color:var(--ink);border-color:var(--muted)}.button--yandex{color:#fff;font:inherit;cursor:pointer;background:#000;border:1px solid #000;border-radius:.625rem;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1.5rem;font-size:.9375rem;font-weight:500;text-decoration:none;transition:background .15s;display:flex}.button--yandex:hover{color:#fff;background:#1a1a1a;border-color:#1a1a1a}.button__icon{flex-shrink:0;width:1.5rem;height:1.5rem}.auth-divider{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:.75rem;margin:1.25rem 0;font-size:.8rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--line);flex:1;height:1px}.promise-card__details{flex-direction:column;gap:.5rem;display:flex}.promise-card__detail{align-items:baseline;gap:.5rem;font-size:.875rem;display:flex}.promise-card__detail-label{color:var(--muted);flex-shrink:0}.promise-card__detail-label:after{content:":"}.promise-card__detail-value{color:var(--ink)}.promise-card__detail-value--user{align-items:center;gap:.375rem;display:inline-flex}.promise-card__detail-value--danger{color:var(--danger);font-weight:500}.promise-card__note{color:var(--muted);margin:0;font-size:.875rem;font-style:italic}@media (width<=640px){.wishlist-grid,.promises__grid{grid-template-columns:1fr}.wishlist-card__title{font-size:1.3125rem}}.admin-nav{background:var(--card);border-bottom:1px solid var(--line)}.admin-nav .container{max-width:var(--container-width);gap:0;margin:0 auto;padding:0 1.25rem;display:flex}.admin-nav__link{color:var(--muted);border-bottom:2px solid #0000;align-items:center;padding:.75rem 1rem;font-size:.9rem;text-decoration:none;transition:color .15s,border-color .15s;display:inline-flex}.admin-nav__link:hover{color:var(--ink)}.admin-nav__link--active{color:var(--accent);border-bottom-color:var(--accent)}.admin-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.admin-header h1{margin:0;font-size:1.5rem}.admin-header .field{width:20rem}.admin-table{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-card);border-radius:.75rem;display:grid;overflow:hidden}.admin-table--4{grid-template-columns:auto auto auto auto}.admin-table--5{grid-template-columns:auto auto auto auto auto}.admin-table__row{display:contents}.admin-table__cell{border-bottom:1px solid var(--line);align-items:center;gap:.5rem;padding:.875rem 1.25rem;font-size:.9rem;display:flex}.admin-table__row:last-child .admin-table__cell{border-bottom:none}.admin-table__cell--date{color:var(--muted);white-space:nowrap;font-size:.8rem}.admin-table__cell--actions{justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.admin-table__cell--promises{align-items:center;gap:.375rem;display:flex}.promise-badge{border-radius:50%;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;font-size:.7rem;font-weight:600;line-height:1;display:inline-flex}.promise-badge--active{color:#92400e;background:#fef3c7}.promise-badge--in-review{color:#1e40af;background:#dbeafe}.promise-badge--completed{color:#166534;background:#f0faf0}.promise-badge--rejected{background:var(--danger-soft);color:var(--danger)}.admin-table__name{color:var(--ink);font-weight:500}.admin-table__email{color:var(--muted);font-size:.8rem}.admin-table__link{color:var(--accent);text-decoration:none}.admin-table__link:hover{text-decoration:underline}.admin-table__empty{text-align:center;color:var(--muted);grid-column:1/-1;padding:2rem}.button--danger-sm{border:1px solid var(--danger);color:var(--danger);font:inherit;cursor:pointer;background:0 0;border-radius:1rem;padding:.25rem .625rem;font-size:.8rem;font-weight:500;transition:background .15s,color .15s}.button--danger-sm:hover{background:var(--danger);color:#fff}.button--secondary-sm{border:1px solid var(--accent);color:var(--accent);font:inherit;cursor:pointer;background:0 0;border-radius:1rem;padding:.25rem .625rem;font-size:.8rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s}.button--secondary-sm:hover{background:var(--accent-soft)}.muted{color:var(--muted)}@media (width<=640px){.admin-header{flex-direction:column;align-items:stretch}.admin-header .field{width:100%}.admin-table{flex-direction:column;display:flex}.admin-table__row{flex-wrap:wrap;display:flex}.admin-table__cell{border-bottom:none;padding:.25rem 1.25rem}.admin-table__row+.admin-table__row{border-top:1px solid var(--line)}.admin-table__cell--actions{justify-content:flex-end;width:100%;margin-top:.5rem}}.pagination{justify-content:center;align-items:center;gap:.25rem;margin-top:1.5rem;display:flex}.pagination span,.pagination a{border:1px solid var(--line);background:var(--card);min-width:2rem;height:2rem;color:var(--ink);border-radius:.375rem;justify-content:center;align-items:center;padding:0 .5rem;font-size:.875rem;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.pagination a:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.pagination .active span{background:var(--accent);border-color:var(--accent);color:#fff}.pagination .disabled span{color:var(--muted);cursor:default}
