.birthday-banner{display:flex;align-items:center;gap:.75rem;margin:0 0 1rem;padding:.65rem 1rem;border:1px solid #dbc883;border-radius:14px;background:#fff8db;color:#33473d}.birthday-banner[hidden]{display:none}.birthday-banner-icon{font-size:1.8rem}.birthday-banner p{flex:1;margin:0;font-weight:650}.birthday-banner button{min-height:48px;white-space:nowrap}
.birthday-dialog{position:fixed;inset:0;box-sizing:border-box;width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 32px);margin:auto;overflow:auto;border:1px solid #d6cab8;border-radius:24px;padding:24px 28px;background:#fffaf0;color:#173e3b;text-align:center;box-shadow:0 18px 80px #173e3b40}.birthday-dialog::backdrop{background:#12363178}.birthday-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;text-align:left}.birthday-eyebrow{font-size:.9rem;color:#686450}.birthday-close{min-width:48px;min-height:48px;border:0;border-radius:50%;background:#f1e9d8;font-size:1.8rem;color:inherit}.birthday-art{font-size:clamp(4rem,13vw,7rem);line-height:1.2;margin:.3rem 0}.birthday-dialog h2{font-size:clamp(1.8rem,7vw,2.8rem);line-height:1.15;margin:.8rem 0;overflow-wrap:anywhere}.birthday-age{font-size:1.5rem;font-weight:650;margin:.5rem 0;color:#886623}.birthday-note{max-width:34ch;margin:1rem auto;line-height:1.55}.birthday-status{min-height:1.5em;font-weight:600}.birthday-actions{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;position:relative;z-index:1}.birthday-actions button{min-height:52px;padding:.75rem 1.1rem;font:inherit;border-radius:12px}.birthday-actions .primary{flex-basis:100%;background:#12655d;color:white;border:0;font-size:1.15rem;font-weight:700}.birthday-actions [hidden]{display:none}.birthday-confetti{pointer-events:none;position:absolute;inset:75px 20px 0;overflow:hidden;opacity:0}.birthday-confetti i{position:absolute;top:0;width:9px;height:16px;border-radius:2px;background:#d69b35;left:8%}.birthday-confetti i:nth-child(4n){background:#67a89c;left:27%}.birthday-confetti i:nth-child(4n + 1){background:#dd8e98;left:49%}.birthday-confetti i:nth-child(4n + 2){background:#7e9ac7;left:73%}.birthday-confetti i:nth-child(3n){width:12px;height:12px;border-radius:50%;left:90%}.birthday-celebrating .birthday-confetti{opacity:1}.birthday-celebrating .birthday-confetti i{animation:birthday-fall 2.6s ease-out both}.birthday-celebrating .birthday-confetti i:nth-child(2n){animation-delay:.2s;animation-duration:3s}.birthday-celebrating .birthday-confetti i:nth-child(3n){animation-delay:.6s;animation-duration:2.4s}@keyframes birthday-fall{from{transform:translateY(-30px) rotate(0);opacity:1}to{transform:translateY(330px) rotate(230deg);opacity:0}}
.birthday-date-fields{border:1px solid #d8ded3;border-radius:12px;margin:.5rem 0 1.3rem;padding:.75rem 1rem}.birthday-date-fields legend{padding:0 .4rem;font-size:1rem}.birthday-date-row{display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:.6rem}.birthday-date-row label{margin:0;min-width:0}.birthday-date-row input{box-sizing:border-box;width:100%;min-height:48px;font-size:1.05rem;padding:.55rem}.birthday-date-fields .muted{font-size:.86rem;margin:.6rem 0 0}.birthday-profile-heading{margin:1.4rem 0 .5rem;padding-top:.8rem;border-top:1px solid #d8ded3}
@media(max-width:420px){.birthday-dialog{padding:16px}.birthday-banner{gap:.4rem;padding:.5rem .7rem}.birthday-banner button{white-space:normal}.birthday-date-fields{padding:.7rem}.birthday-actions .quiet{flex:1}}
@media(prefers-reduced-motion:reduce){.birthday-celebrating .birthday-confetti i{animation:none;top:12px}.birthday-celebrating .birthday-confetti{opacity:.55}}
