*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--pink: #ff6b9d;--pink-light: #ffd6e8;--purple: #9b59f5;--purple-light: #e8d9ff;--yellow: #ffd93d;--yellow-light: #fff8d6;--teal: #26d0ce;--teal-light: #d6f8f7;--bg: #fdf8ff;--surface: #ffffff;--text: #2d1b69;--text-muted: #8878a8;--border: #e8d9ff;--radius: 16px;--radius-sm: 8px;--shadow: 0 4px 24px rgba(155, 89, 245, .12);--shadow-hover: 0 8px 32px rgba(155, 89, 245, .22)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;background-image:radial-gradient(circle at 10% 20%,rgba(255,107,157,.08) 0%,transparent 50%),radial-gradient(circle at 90% 80%,rgba(155,89,245,.08) 0%,transparent 50%)}.app{max-width:680px;margin:0 auto;padding:0 16px 64px}.app-header{text-align:center;padding:48px 0 40px}.app-header__icon{display:block;font-size:56px;margin-bottom:12px;animation:bounce 2s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.app-header__title{font-size:2.5rem;font-weight:800;background:linear-gradient(135deg,var(--pink),var(--purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.5px}.app-header__subtitle{color:var(--text-muted);margin-top:8px;font-size:1rem}.section{background:var(--surface);border-radius:var(--radius);padding:24px;margin-bottom:20px;box-shadow:var(--shadow);border:1px solid var(--border)}.section-people{display:flex;flex-direction:column;gap:16px}.section__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:8px}.section__title{font-size:1rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.mode-btn{flex-shrink:0;padding:5px 12px;border-radius:100px;border:2px solid var(--border);background:var(--bg);color:var(--text-muted);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s ease;font-family:inherit}.mode-btn:hover{border-color:var(--purple);color:var(--purple)}.mode-btn--active{background:var(--purple-light);border-color:var(--purple);color:var(--purple)}.filter-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.filter-chip{display:inline-flex;align-items:center;gap:5px;padding:6px 14px;border-radius:100px;border:2px solid var(--border);background:var(--bg);color:var(--text-muted);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s ease;font-family:inherit}.filter-chip:hover{border-color:var(--purple);color:var(--purple)}.filter-chip--active{background:linear-gradient(135deg,var(--purple),var(--pink));border-color:transparent;color:#fff;box-shadow:0 3px 10px #9b59f54d}.section__name{color:var(--purple);font-style:italic;text-transform:none;letter-spacing:normal}.person-selector__chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.person-chip{display:inline-flex;align-items:center;gap:4px;padding:8px 8px 8px 18px;border-radius:100px;border:2px solid var(--border);background:var(--bg);color:var(--text);font-size:.9rem;font-weight:500;transition:all .15s ease;cursor:pointer}.person-chip:hover{border-color:var(--purple);transform:translateY(-1px)}.person-chip__name{background:none;border:none;color:inherit;font:inherit;cursor:pointer;padding:0}.person-chip__delete{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:1.1rem;line-height:1;padding:0 4px;border-radius:100px;transition:color .1s,background .1s}.person-chip__delete:hover{color:#fff;background:var(--pink)}.person-chip--active{background:linear-gradient(135deg,var(--purple),var(--pink));border-color:transparent;color:#fff;box-shadow:0 4px 12px #9b59f559}.person-chip--active:hover{transform:translateY(-1px)}.person-chip--active .person-chip__delete{color:#ffffffb3}.person-chip--active .person-chip__delete:hover{color:#fff;background:#0003}.person-chip--add{padding:8px 18px;border-style:dashed;border-color:var(--pink);color:var(--pink);background:var(--pink-light);cursor:pointer}.person-chip--add:hover{background:var(--pink);color:#fff;border-color:var(--pink)}.add-person-form{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}.input{flex:1;min-width:160px;padding:8px 12px;border:2px solid var(--border);border-radius:var(--radius-sm);font-size:16px;color:var(--text);background:var(--bg);outline:none;transition:border-color .15s}.input:focus{border-color:var(--purple)}.input::placeholder{color:var(--text-muted)}.btn{padding:8px 16px;border-radius:var(--radius-sm);font-size:.9rem;font-weight:600;cursor:pointer;border:none;transition:all .15s ease;white-space:nowrap}.btn--primary{background:linear-gradient(135deg,var(--purple),var(--pink));color:#fff;box-shadow:0 3px 12px #9b59f54d}.btn--primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #9b59f566}.btn--primary:disabled{opacity:.5;cursor:not-allowed}.btn--ghost{background:transparent;color:var(--text-muted);border:2px solid var(--border)}.btn--ghost:hover{border-color:var(--text-muted);color:var(--text)}.form-meta{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}.kind-toggle{display:flex;background:var(--bg);border:2px solid var(--border);border-radius:100px;padding:3px;flex-shrink:0}.kind-toggle__btn{padding:4px 10px;border-radius:100px;border:none;background:transparent;color:var(--text-muted);font-size:.78rem;font-weight:600;cursor:pointer;transition:all .15s ease;font-family:inherit;white-space:nowrap}.kind-toggle__btn--active{background:var(--surface);color:var(--purple);box-shadow:0 1px 4px #9b59f526}.occasion-picker{display:flex;gap:5px}.occasion-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:100px;border:2px solid var(--border);background:var(--bg);cursor:pointer;transition:all .15s ease;font-family:inherit}.occasion-chip__emoji{font-size:1rem;line-height:1}.occasion-chip__label{font-size:.75rem;font-weight:600;color:var(--text-muted);transition:color .15s}.occasion-chip:hover{border-color:var(--purple-light)}.occasion-chip--selected{background:linear-gradient(135deg,var(--purple),var(--pink));border-color:transparent;box-shadow:0 2px 8px #9b59f54d}.occasion-chip--selected .occasion-chip__label{color:#ffffffe6}.gift-idea-form__fields{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:6px}.gift-idea-form__fields .input:first-child{grid-column:1;grid-row:1}.gift-idea-form__fields .btn{grid-column:2;grid-row:1}.input--notes{grid-column:1 / -1;grid-row:2;font-size:14px;padding:6px 12px}.gift-idea-list{list-style:none;display:flex;flex-direction:column;gap:10px;margin-top:20px}.gift-idea-card{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg);border-radius:var(--radius-sm);border:1px solid var(--border);transition:all .15s ease}.gift-idea-card:hover{border-color:var(--purple-light);box-shadow:0 2px 12px #9b59f51a;transform:translate(3px)}.gift-idea-card__emoji{font-size:1.4rem;flex-shrink:0}.gift-idea-card__content{flex:1}.gift-idea-card__title{font-weight:600;font-size:.95rem}.gift-idea-card__notes{color:var(--text-muted);font-size:.85rem;margin-top:3px}.gift-idea-card__badges{display:flex;gap:4px;flex-wrap:wrap;margin-top:5px}.gift-idea-card__occasion{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:100px;background:var(--border);font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.gift-idea-card__kind-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:100px;background:var(--yellow-light);color:#a07800;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.gift-idea-card--theme{border-style:dashed;border-color:var(--yellow)}.gift-idea-card__delete{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:1.2rem;line-height:1;padding:4px 6px;border-radius:var(--radius-sm);opacity:0;transition:opacity .15s,color .1s,background .1s;flex-shrink:0}.gift-idea-card:hover .gift-idea-card__delete{opacity:1}.gift-idea-card__delete:hover{color:#fff;background:var(--pink)}.ideas-empty{text-align:center;color:var(--text-muted);padding:24px 0;font-size:.9rem}.empty-state{text-align:center;padding:48px 24px;color:var(--text-muted)}.empty-state__icon{display:block;font-size:48px;margin-bottom:12px;animation:spin-slow 4s linear infinite}@keyframes spin-slow{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading{color:var(--text-muted);font-size:.9rem;padding:8px 0}
