:root{color-scheme:dark;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;--accent: #f472b6;--accent-dim: #9d174d;--green: #34d399;--orange: #fb923c;--bg-card: rgba(255, 255, 255, .04);--border: rgba(255, 255, 255, .1)}*{box-sizing:border-box;margin:0}html,body,#root{min-height:100vh;background:#0a0a0a;color:#fafafa}.app{max-width:520px;margin:0 auto;padding:2rem 1.5rem;display:flex;flex-direction:column;gap:2rem}header{text-align:center}header h1{font-size:1.75rem;font-weight:700;letter-spacing:-.03em;background:linear-gradient(135deg,var(--accent),#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.subtitle{color:#ffffff80;font-size:.85rem;margin-top:.25rem}.form-section{background:var(--bg-card);border:1px solid var(--border);border-radius:.75rem;padding:1.25rem}.form-section h2{font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#fff9;margin-bottom:1rem}.form-row{display:flex;gap:.5rem;flex-wrap:wrap}.input-name{flex:1 1 140px;padding:.6rem .75rem;border-radius:.5rem;border:1px solid var(--border);background:#ffffff0f;color:#fafafa;font-size:.95rem;outline:none;transition:border-color .2s}.input-name:focus{border-color:var(--accent)}.select-field{padding:.6rem .5rem;border-radius:.5rem;border:1px solid var(--border);background:#ffffff0f;color:#fafafa;font-size:.95rem;outline:none;cursor:pointer;min-width:0}.select-field:focus{border-color:var(--accent)}.form-actions{display:flex;gap:.5rem;margin-top:.75rem;flex-wrap:wrap}.btn-primary{padding:.6rem 1.25rem;border-radius:.5rem;border:none;background:var(--accent);color:#fff;font-weight:600;font-size:.9rem;cursor:pointer;transition:opacity .2s}.btn-primary:hover{opacity:.85}.btn-secondary{padding:.6rem 1.25rem;border-radius:.5rem;border:1px solid var(--border);background:transparent;color:#ffffffb3;font-size:.9rem;cursor:pointer;transition:background .2s}.btn-secondary:hover{background:#ffffff0f}.btn-test{padding:.6rem 1rem;border-radius:.5rem;border:1px solid rgba(251,146,60,.4);background:#fb923c1a;color:var(--orange);font-size:.85rem;cursor:pointer;transition:background .2s;margin-left:auto}.btn-test:hover{background:#fb923c33}.list-section h2{font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#fff9;display:flex;align-items:center;gap:.5rem}.count{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:999px;background:var(--accent-dim);color:var(--accent);font-size:.7rem;font-weight:700}.empty{color:#ffffff59;font-size:.9rem;text-align:center;padding:2rem 0}.birthday-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}.birthday-card{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;border-radius:.6rem;border:1px solid var(--border);background:var(--bg-card);transition:border-color .2s,background .2s}.birthday-card:hover{border-color:#ffffff2e;background:#ffffff0f}.birthday-card.is-today{border-color:var(--accent);background:#f472b614;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 #f472b64d}50%{box-shadow:0 0 0 6px #f472b600}}.card-info{display:flex;flex-direction:column;gap:.15rem}.card-name{font-weight:600;font-size:1rem}.card-date{font-size:.8rem;color:#ffffff73}.card-days{font-size:.78rem;color:#ffffff80;margin-top:.1rem}.card-badge{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.05em;padding:.15rem .5rem;border-radius:999px;margin-top:.2rem;width:fit-content}.today-badge{background:#f472b633;color:var(--accent)}.soon-badge{background:#34d39926;color:var(--green)}.card-actions{display:flex;gap:.25rem}.btn-icon{background:none;border:none;cursor:pointer;font-size:1rem;padding:.3rem;border-radius:.35rem;transition:background .15s;line-height:1}.btn-icon:hover{background:#ffffff1a}.alarm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#000000bf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.alarm-modal{background:#1a1a2e;border:1px solid var(--accent);border-radius:1rem;padding:2.5rem 2rem;text-align:center;max-width:320px;width:90%;animation:bounceIn .4s ease;box-shadow:0 0 60px #f472b626}@keyframes bounceIn{0%{transform:scale(.7);opacity:0}60%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}.alarm-icon{font-size:3rem;margin-bottom:.75rem;animation:shake .4s ease-in-out infinite alternate}@keyframes shake{0%{transform:rotate(-8deg)}to{transform:rotate(8deg)}}.alarm-modal h2{font-size:1.35rem;font-weight:700;margin-bottom:.25rem;background:linear-gradient(135deg,var(--accent),#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.alarm-modal p{color:#ffffff8c;font-size:.9rem;margin-bottom:1.5rem}.btn-dismiss{padding:.65rem 2rem;border-radius:.5rem;border:none;background:var(--accent);color:#fff;font-weight:600;font-size:.95rem;cursor:pointer;transition:opacity .2s}.btn-dismiss:hover{opacity:.85}footer{text-align:center;padding-top:.5rem}footer p{font-size:.75rem;color:#ffffff4d;line-height:1.6}
