.login-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .3s ease-out}.login-modal-content{background:#fff;border-radius:20px;padding:2.5rem;max-width:500px;width:100%;box-shadow:0 20px 60px #0000004d;position:relative;animation:slideDown .3s ease-out}@keyframes slideDown{0%{transform:translateY(-50px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-close-button{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:2rem;color:#95a5a6;cursor:pointer;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .3s}.modal-close-button:hover{background:#f1f3f5;color:#2d3436;transform:rotate(90deg)}.modal-title{font-size:2rem;color:#2d3436;margin:0 0 .5rem;text-align:center}.modal-subtitle{font-size:1rem;color:#636e72;margin:0 0 2rem;text-align:center}.login-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.95rem;font-weight:600;color:#2d3436}.form-group input{padding:.875rem 1rem;font-size:1rem;border:2px solid #e9ecef;border-radius:10px;transition:all .3s;font-family:inherit}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled{background:#f8f9fa;cursor:not-allowed}.error-message{background:#fee;border:1px solid #fcc;color:#c33;padding:.875rem 1rem;border-radius:10px;font-size:.95rem;text-align:center;animation:shake .5s}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.hint-message{background:#e7f3ff;border:1px solid #b3d9ff;padding:1rem;border-radius:10px;font-size:.85rem}.hint-message p{margin:.25rem 0;color:#2d3436}.hint-message code{background:#fff;padding:.2rem .4rem;border-radius:4px;font-family:Courier New,monospace;color:#667eea;font-weight:600}.modal-actions{display:flex;gap:1rem;margin-top:.5rem}.cancel-button,.login-button{flex:1;padding:.875rem 1.5rem;font-size:1rem;font-weight:600;border-radius:10px;cursor:pointer;transition:all .3s;border:none;font-family:inherit}.cancel-button{background:#f1f3f5;color:#636e72}.cancel-button:hover:not(:disabled){background:#e9ecef}.login-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;gap:.5rem}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.cancel-button:disabled,.login-button:disabled{opacity:.6;cursor:not-allowed}.spinner-small{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 768px){.login-modal-content{padding:2rem}.modal-title{font-size:1.75rem}.modal-subtitle{font-size:.9rem}}@media (max-width: 480px){.login-modal-overlay{padding:.5rem}.login-modal-content{padding:1.5rem}.modal-title{font-size:1.5rem}.modal-actions{flex-direction:column}.cancel-button,.login-button{width:100%}}.landing-header{background:#fff;box-shadow:0 2px 8px #0000001a;position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:100%}.header-container{max-width:1400px;margin:0 auto;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;width:100%}.header-logo{display:flex;align-items:center;gap:.75rem;cursor:default}.logo-icon{font-size:2rem;animation:bounce 2s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.logo-text{font-size:1.5rem;font-weight:700;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-button-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:.75rem 2rem;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 12px #667eea4d}.login-button-header:hover{transform:translateY(-2px);box-shadow:0 6px 16px #667eea66}.login-button-header:active{transform:translateY(0)}@media (max-width: 768px){.header-container{padding:1rem 1.5rem}.logo-text{font-size:1.25rem}.logo-icon{font-size:1.75rem}.login-button-header{padding:.625rem 1.5rem;font-size:.9rem}}@media (max-width: 480px){.header-container{padding:.875rem 1rem}.logo-text{font-size:1.1rem}.logo-icon{font-size:1.5rem}.login-button-header{padding:.5rem 1.25rem;font-size:.85rem}}.countdown-display{text-align:center;padding:2rem 1rem;width:100%}.countdown-display.loading,.countdown-display.error{padding:3rem 1rem}.spinner{border:4px solid rgba(102,126,234,.2);border-top:4px solid #667eea;border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite;margin:0 auto 1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.countdown-timer-container{display:flex;justify-content:center;align-items:center;gap:1rem;flex-wrap:wrap;max-width:900px;margin:0 auto;padding:0 1rem}.time-unit{display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1.5rem 2rem;border-radius:16px;min-width:110px;box-shadow:0 8px 24px #667eea4d;transition:transform .3s ease}.time-unit:hover{transform:translateY(-5px)}.time-value{font-size:4rem;font-weight:900;line-height:1;margin-bottom:.5rem}.time-label{font-size:1rem;text-transform:uppercase;letter-spacing:2px;opacity:.9;font-weight:600}.time-separator{font-size:3rem;font-weight:700;color:#667eea;margin:0;line-height:1;align-self:center;padding:0;display:flex;align-items:center}.countdown-display.birthday-arrived{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;padding:3rem 2rem;box-shadow:0 10px 40px #667eea66}.birthday-message{font-size:3rem;color:#fff;margin:0 0 1rem;animation:pulse 2s ease-in-out infinite;text-shadow:0 4px 10px rgba(0,0,0,.2)}.celebration-subtitle{font-size:1.5rem;color:#fff;opacity:.95;margin:0}.countdown-display.final-countdown{background:linear-gradient(135deg,#f093fb,#f5576c);border-radius:20px;padding:3rem 2rem;box-shadow:0 10px 40px #f093fb66;position:relative;overflow:hidden}.countdown-display.final-countdown:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);animation:pulse 3s ease-in-out infinite}.final-countdown-title{font-size:2rem;color:#fff;margin:0 0 2rem;text-shadow:0 2px 10px rgba(0,0,0,.2);animation:glow 2s ease-in-out infinite;position:relative;z-index:1}.final-seconds-circle{width:200px;height:200px;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0 auto 2rem;box-shadow:0 0 0 10px #fff3,0 0 0 20px #ffffff1a,0 10px 40px #0000004d;animation:scaleUp 1s ease-in-out infinite;position:relative;z-index:1}.final-seconds-value{font-size:5rem;font-weight:900;background:linear-gradient(135deg,#f093fb,#f5576c);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;animation:numberPulse .5s ease-in-out infinite}.final-seconds-label{font-size:1.2rem;text-transform:uppercase;letter-spacing:2px;color:#f5576c;font-weight:600;margin-top:.5rem}.final-countdown-message{color:#fff;font-size:1.5rem;margin:0;text-shadow:0 2px 10px rgba(0,0,0,.2);animation:fadeInOut 2s ease-in-out infinite;position:relative;z-index:1}@media (max-width: 768px){.countdown-timer-container{gap:.75rem;padding:0 .5rem}.time-unit{padding:1rem 1.5rem;min-width:85px}.time-value{font-size:2.5rem}.time-label{font-size:.8rem}.time-separator{font-size:2rem;margin:0}.birthday-message{font-size:2rem}.celebration-subtitle{font-size:1.2rem}.final-countdown-title{font-size:1.5rem}.final-seconds-circle{width:150px;height:150px}.final-seconds-value{font-size:3.5rem}.final-seconds-label{font-size:1rem}.final-countdown-message{font-size:1.2rem}}@media (max-width: 480px){.countdown-timer-container{gap:.5rem;padding:0 .25rem}.time-unit{padding:.75rem 1rem;min-width:65px}.time-value{font-size:2rem}.time-label{font-size:.7rem}.time-separator{font-size:1.5rem}}.wish-counter{text-align:center;padding:2rem 1rem;background:#fff;border-radius:16px;box-shadow:0 4px 12px #0000001a;max-width:600px;margin:0 auto}.wish-counter.loading{padding:1.5rem;background:transparent;box-shadow:none}.count-display{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.count-sparkle{font-size:2rem;animation:sparkle 2s ease-in-out infinite}@keyframes sparkle{0%,to{transform:scale(1) rotate(0);opacity:.8}50%{transform:scale(1.2) rotate(180deg);opacity:1}}.count-number{font-size:4rem;font-weight:900;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;animation:countPulse 2s ease-in-out infinite}@keyframes countPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.count-text{font-size:1.5rem;color:#667eea;font-weight:600;text-transform:lowercase}.motivational-message{font-size:1.2rem;color:#636e72;font-weight:500;margin:0;font-style:italic}@media (max-width: 768px){.wish-counter{padding:1.5rem 1rem}.count-number{font-size:3rem}.count-text{font-size:1.2rem}.count-sparkle{font-size:1.5rem}.motivational-message{font-size:1rem}}@media (max-width: 480px){.count-number{font-size:2.5rem}.count-text{font-size:1rem}.count-sparkle{font-size:1.2rem}.motivational-message{font-size:.9rem}}.landing-page{min-height:100vh;background:linear-gradient(135deg,#ffeaa7,#fdcb6e,#fab1a0);display:flex;flex-direction:column}.landing-content{flex:1;max-width:1400px;margin:0 auto;padding:2rem;width:100%}.hero-section{text-align:center;margin-bottom:3rem;padding:2rem 1rem}.hero-title{font-size:3.5rem;color:#2d3436;margin:0 0 1rem;font-weight:900;text-shadow:2px 2px 4px rgba(0,0,0,.1);animation:fadeInDown 1s ease-out}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:translateY(0)}}.hero-subtitle{font-size:1.5rem;color:#636e72;max-width:700px;margin:0 auto;line-height:1.6;animation:fadeInUp 1s ease-out .3s both}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.countdown-section-landing{margin-bottom:3rem;animation:fadeIn 1s ease-out .6s both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.section-title{text-align:center;font-size:2rem;color:#2d3436;margin:0 0 2rem;font-weight:700}.wish-counter-section{margin-bottom:3rem;animation:fadeIn 1s ease-out .9s both}.cta-section{text-align:center;margin-bottom:3rem;animation:fadeIn 1s ease-out 1.2s both}.cta-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:1.5rem 3rem;border-radius:16px;font-size:1.5rem;font-weight:700;cursor:pointer;transition:all .3s ease;box-shadow:0 8px 24px #667eea66;margin-bottom:1rem}.cta-button:hover{transform:translateY(-5px);box-shadow:0 12px 32px #667eea80}.cta-button:active{transform:translateY(-2px)}.cta-subtext{font-size:1.1rem;color:#636e72;max-width:600px;margin:0 auto}.privacy-section{margin-bottom:3rem;animation:fadeIn 1s ease-out 1.5s both}.privacy-card{background:#fff;border-radius:16px;padding:2rem;max-width:700px;margin:0 auto;box-shadow:0 4px 12px #0000001a;text-align:center}.privacy-title{font-size:1.5rem;color:#2d3436;margin:0 0 1rem;font-weight:700}.privacy-text{font-size:1rem;color:#636e72;line-height:1.6;margin:0}.landing-footer{background:#ffffffe6;padding:2rem;text-align:center;box-shadow:0 -2px 8px #0000000d}.landing-footer p{margin:0;color:#636e72;font-size:1rem}@media (max-width: 768px){.landing-content{padding:1.5rem 1rem}.hero-section{margin-bottom:2rem;padding:1.5rem .5rem}.hero-title{font-size:2.5rem}.hero-subtitle{font-size:1.2rem}.section-title{font-size:1.5rem}.countdown-section-landing,.wish-counter-section,.cta-section{margin-bottom:2rem}.cta-button{padding:1.25rem 2.5rem;font-size:1.25rem}.cta-subtext{font-size:1rem}.privacy-card{padding:1.5rem}.privacy-title{font-size:1.25rem}.privacy-text{font-size:.95rem}}@media (max-width: 480px){.landing-content{padding:1rem .75rem}.hero-section{margin-bottom:2rem;padding:1rem .5rem}.hero-title{font-size:1.75rem}.hero-subtitle{font-size:.95rem}.countdown-section-landing,.wish-counter-section,.cta-section{margin-bottom:2rem}.section-title{font-size:1.25rem}.cta-button{padding:1rem 2rem;font-size:1.1rem;width:100%;max-width:300px}.cta-subtext{font-size:.9rem}.privacy-card{padding:1.25rem}.privacy-title{font-size:1.1rem}.privacy-text{font-size:.9rem}.landing-footer{padding:1.5rem 1rem}.landing-footer p{font-size:.9rem}}.birthday-dashboard{min-height:100vh;background:linear-gradient(135deg,#ffeaa7,#fdcb6e,#fab1a0);padding-bottom:3rem}.dashboard-header{background:#fffffff2;box-shadow:0 4px 12px #0000001a;padding:1.5rem 2rem;position:sticky;top:0;z-index:100}.header-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.dashboard-header h1{color:#d63031;font-size:2rem;margin:0}.logout-button{background:#e74c3c;color:#fff;border:none;padding:.6rem 1.5rem;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s}.logout-button:hover{background:#c0392b;transform:translateY(-2px)}.dashboard-container{max-width:1200px;margin:0 auto;padding:2rem 1rem}.countdown-section{margin-bottom:3rem}.birthday-today-banner{background:linear-gradient(135deg,#ff6b6b,#ee5a6f);color:#fff;text-align:center;padding:3rem 2rem;border-radius:20px;box-shadow:0 10px 40px #ee5a6f66;animation:pulse-slow 2s infinite}@keyframes pulse-slow{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.birthday-today-banner h2{font-size:3rem;margin:0 0 1rem;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.celebration-text{font-size:1.5rem;margin:0}.countdown-card{background:#fff;border-radius:20px;padding:3rem 2rem;text-align:center;box-shadow:0 10px 40px #0000001a}.countdown-card h2{color:#2d3436;font-size:2rem;margin:0 0 2rem}.countdown-timer{display:flex;justify-content:center;align-items:center;gap:1rem}.time-unit{display:flex;flex-direction:column;align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1.5rem 2rem;border-radius:12px;min-width:100px;box-shadow:0 4px 12px #667eea4d}.time-value{font-size:3rem;font-weight:700;line-height:1;margin-bottom:.5rem}.time-label{font-size:.9rem;text-transform:uppercase;letter-spacing:1px;opacity:.9}.time-separator{font-size:3rem;font-weight:700;color:#2d3436}.final-countdown-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;padding:3rem 2rem;text-align:center;box-shadow:0 10px 40px #667eea66;position:relative;overflow:hidden}.final-countdown-card:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.1) 0%,transparent 70%);animation:pulse 3s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(1.1);opacity:.8}}.final-countdown-title{color:#fff;font-size:2.5rem;margin:0 0 2rem;text-shadow:0 2px 10px rgba(0,0,0,.2);animation:glow 2s ease-in-out infinite;position:relative;z-index:1}@keyframes glow{0%,to{text-shadow:0 2px 10px rgba(255,255,255,.3)}50%{text-shadow:0 2px 20px rgba(255,255,255,.6),0 0 30px rgba(255,255,255,.4)}}.final-countdown-timer{display:flex;justify-content:center;align-items:center;margin:2rem 0;position:relative;z-index:1}.seconds-circle{width:250px;height:250px;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 0 0 10px #fff3,0 0 0 20px #ffffff1a,0 10px 40px #0000004d;animation:scaleUp 1s ease-in-out infinite;position:relative}@keyframes scaleUp{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.seconds-value{font-size:6rem;font-weight:900;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;animation:numberPulse .5s ease-in-out infinite}@keyframes numberPulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.seconds-label{font-size:1.2rem;text-transform:uppercase;letter-spacing:2px;color:#667eea;font-weight:600;margin-top:.5rem}.final-countdown-message{color:#fff;font-size:1.5rem;margin:2rem 0 0;text-shadow:0 2px 10px rgba(0,0,0,.2);animation:fadeInOut 2s ease-in-out infinite;position:relative;z-index:1}@keyframes fadeInOut{0%,to{opacity:.8}50%{opacity:1}}.effects-section{margin-bottom:3rem;text-align:center}.cake-animation{display:inline-block}.cake{font-size:8rem;animation:bounce 2s infinite;display:inline-block}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.wishes-section{background:#fff;border-radius:20px;padding:3rem 2rem;box-shadow:0 10px 40px #0000001a}.section-title{text-align:center;color:#d63031;font-size:2.5rem;margin:0 0 1rem}.wishes-count{text-align:center;color:#636e72;font-size:1.2rem;margin:0 0 3rem}.no-wishes-yet{text-align:center;padding:4rem 2rem;color:#95a5a6;font-size:1.5rem}.pending-notice{text-align:center;padding:4rem 2rem;background:linear-gradient(135deg,#fff5f7,#ffe8f0);border-radius:20px;border:3px solid #ff6b9d;max-width:700px;margin:2rem auto;box-shadow:0 8px 24px #ff6b9d33}.pending-icon{font-size:5rem;margin-bottom:1.5rem;animation:bounce 2s infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.pending-notice h3{color:#d63031;font-size:2.2rem;margin:0 0 1.5rem;font-weight:700}.pending-count-text{color:#2d3436;font-size:1.4rem;margin:1rem 0;line-height:1.6}.pending-count-text strong{color:#ff6b9d;font-size:2rem;font-weight:800}.pending-info{color:#636e72;font-size:1.1rem;margin:2rem 0 0;font-style:italic;line-height:1.6}.wishes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:2rem}.wish-card-birthday{background:linear-gradient(135deg,#f8f9fa,#fff);border:2px solid #e9ecef;border-radius:16px;padding:2rem;transition:all .3s ease;overflow:hidden;position:relative}.wish-card-birthday:hover{transform:translateY(-8px);box-shadow:0 12px 24px #00000026;border-color:#667eea}.wish-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:2px solid #e9ecef}.wish-card-birthday .friend-name{color:#667eea;font-size:1.4rem;font-weight:700;margin:0}.wish-date{color:#95a5a6;font-size:.9rem}.wish-message{color:#2d3436;font-size:1.1rem;line-height:1.8;margin:0 0 1.5rem;white-space:pre-wrap;word-wrap:break-word;word-break:break-word;overflow-wrap:break-word;max-width:100%}.wish-image-container{margin-bottom:1.5rem;border-radius:12px;overflow:hidden}.wish-image{width:100%;height:auto;max-height:300px;object-fit:cover;display:block}.rating-section{background:#f8f9fa;padding:1rem;border-radius:12px;text-align:center;max-width:100%;box-sizing:border-box}.rating-label{color:#636e72;font-size:.9rem;margin:0 0 .5rem;font-weight:600}.star-rating{display:flex;justify-content:center;align-items:center;gap:.3rem;margin-bottom:.5rem;flex-wrap:nowrap;max-width:100%}.star-button{background:none;border:none;font-size:1.8rem;cursor:pointer;transition:all .2s;filter:grayscale(100%);opacity:.3;padding:.2rem;line-height:1;flex-shrink:0}.star-button:hover,.star-button.active{filter:grayscale(0%);opacity:1;transform:scale(1.15)}.current-rating{display:block;color:#f39c12;font-weight:600;font-size:.9rem}@media (max-width: 768px){.dashboard-header h1{font-size:1.5rem}.birthday-today-banner h2{font-size:2rem}.celebration-text{font-size:1.2rem}.countdown-timer{flex-wrap:wrap;gap:.5rem}.time-unit{min-width:70px;padding:1rem 1.5rem}.time-value,.time-separator{font-size:2rem}.cake{font-size:5rem}.section-title{font-size:1.8rem}.wishes-grid{grid-template-columns:1fr}.star-button{font-size:1.5rem}}.admin-dashboard{min-height:100vh;background:linear-gradient(135deg,#a29bfe,#6c5ce7);padding-bottom:3rem}.admin-header{background:#fffffff2;box-shadow:0 4px 12px #0000001a;padding:1.5rem 2rem;position:sticky;top:0;z-index:100}.admin-container{max-width:1400px;margin:0 auto;padding:2rem 1rem}.tab-navigation{display:flex;gap:1rem;margin-bottom:2rem;background:#fff;padding:1rem;border-radius:12px;box-shadow:0 4px 12px #0000001a}.tab-button{flex:1;padding:1rem 2rem;background:#f8f9fa;border:2px solid transparent;border-radius:8px;font-size:1rem;font-weight:600;color:#636e72;cursor:pointer;transition:all .3s}.tab-button:hover{background:#e9ecef}.tab-button.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:#667eea}.error-banner{background:#fee;color:#e74c3c;padding:1rem 1.5rem;border-radius:8px;margin-bottom:2rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 4px 12px #e74c3c33}.error-banner button{background:none;border:none;color:#e74c3c;font-size:1.5rem;cursor:pointer;padding:0;width:30px;height:30px}.admin-section{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 8px 32px #0000001a}.admin-section h2{color:#2d3436;font-size:1.8rem;margin:0 0 2rem}.empty-state{text-align:center;color:#95a5a6;font-size:1.2rem;padding:4rem 2rem}.wishes-list{display:grid;gap:1.5rem}.admin-wish-card{background:#f8f9fa;border:2px solid #e9ecef;border-radius:12px;padding:1.5rem;transition:all .3s}.admin-wish-card:hover{border-color:#667eea;box-shadow:0 8px 16px #667eea33}.wish-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem}.wish-header h3{color:#2d3436;font-size:1.3rem;margin:0}.wish-status{padding:.4rem 1rem;border-radius:20px;font-size:.85rem;font-weight:600;text-transform:uppercase}.wish-status.pending{background:#fff3cd;color:#856404}.wish-status.approved{background:#d4edda;color:#155724}.wish-rating{color:#f39c12;font-size:1.1rem}.wish-message{color:#2d3436;line-height:1.6;margin:1rem 0;white-space:pre-wrap;word-wrap:break-word;word-break:break-word;overflow-wrap:break-word;max-width:100%}.wish-image{width:100%;max-height:300px;object-fit:cover;border-radius:8px;margin:1rem 0}.wish-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1rem}.wish-actions button{padding:.6rem 1.2rem;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:all .3s;font-size:.9rem}.approve-button{background:#27ae60;color:#fff}.approve-button:hover:not(:disabled){background:#229954;transform:translateY(-2px)}.reject-button{background:#e74c3c;color:#fff}.reject-button:hover:not(:disabled){background:#c0392b;transform:translateY(-2px)}.hide-button{background:#f39c12;color:#fff}.hide-button:hover:not(:disabled){background:#e67e22;transform:translateY(-2px)}.delete-button{background:#95a5a6;color:#fff}.delete-button:hover:not(:disabled){background:#7f8c8d;transform:translateY(-2px)}.wish-actions button:disabled{opacity:.5;cursor:not-allowed}.config-form{max-width:600px;margin-bottom:3rem}.form-group label{display:block;margin-bottom:.5rem;color:#2d3436;font-weight:600;font-size:1rem}.form-hint{display:block;margin-top:.5rem;color:#636e72;font-size:.875rem;font-style:italic}.form-group input[type=date],.form-group input[type=text],.form-group input[type=number]{width:100%;padding:.75rem;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;transition:border-color .3s}.form-group input:focus{outline:none;border-color:#667eea}.color-input-group{display:flex;gap:1rem;align-items:center}.color-input-group input[type=color]{width:80px;height:50px;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer}.color-input-group input[type=text]{flex:1}.checkbox-group label{display:flex;align-items:center;gap:.75rem;cursor:pointer}.checkbox-group input[type=checkbox]{width:24px;height:24px;cursor:pointer}.checkbox-group span{font-size:1rem}.save-button{width:100%;padding:1rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s}.save-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 16px #667eea66}.save-button:disabled{opacity:.6;cursor:not-allowed}.analytics-section{margin-top:3rem;padding-top:3rem;border-top:2px solid #e9ecef}.analytics-section h3{color:#2d3436;font-size:1.5rem;margin:0 0 1.5rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1.5rem}.stat-card{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:2rem;border-radius:12px;text-align:center;box-shadow:0 4px 12px #667eea4d}.stat-value{display:block;font-size:3rem;font-weight:700;margin-bottom:.5rem}.stat-label{display:block;font-size:1rem;text-transform:uppercase;letter-spacing:1px;opacity:.9}@media (max-width: 768px){.tab-navigation{flex-direction:column}.tab-button{width:100%}.wish-actions{flex-direction:column}.wish-actions button{width:100%}.color-input-group{flex-direction:column;align-items:stretch}.color-input-group input[type=color]{width:100%}}.friend-page{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:2rem 1rem}.friend-container{max-width:1200px;margin:0 auto}.friend-header{text-align:center;color:#fff;margin-bottom:3rem}.friend-header h1{font-size:2.5rem;margin-bottom:1rem;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.countdown-display{background:#fff3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;padding:1rem;display:inline-block}.countdown-text{font-size:1.5rem;font-weight:600;margin:0}.birthday-today{font-size:1.8rem;font-weight:700;margin:0;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.success-message{background:#fff;border-radius:16px;padding:3rem;text-align:center;box-shadow:0 8px 32px #0000001a;margin-bottom:2rem}.success-message h2{color:#27ae60;margin-bottom:1rem}.success-message p{color:#555;font-size:1.1rem;margin:.5rem 0}.submission-section{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 8px 32px #0000001a;margin-bottom:3rem}.wish-form{max-width:600px;margin:0 auto}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:#333;font-weight:600;font-size:1rem}.form-group input[type=text],.form-group textarea{width:100%;padding:.75rem;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;font-family:inherit;transition:border-color .3s}.form-group input[type=text]:focus,.form-group textarea:focus{outline:none;border-color:#667eea}.form-group textarea{resize:vertical}.form-group input[type=file]{display:block;margin-top:.5rem}.image-preview{margin-top:1rem;position:relative;display:inline-block}.image-preview img{max-width:200px;max-height:200px;border-radius:8px;border:2px solid #e0e0e0}.remove-image{position:absolute;top:-10px;right:-10px;background:#e74c3c;color:#fff;border:none;border-radius:50%;width:30px;height:30px;cursor:pointer;font-size:.8rem}.file-hint{margin-top:.5rem;color:#777;font-size:.85rem}.error-message{background:#fee;color:#e74c3c;padding:1rem;border-radius:8px;margin-bottom:1rem;text-align:center}.submit-button{width:100%;padding:1rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1.2rem;font-weight:600;cursor:pointer;transition:transform .3s,box-shadow .3s}.submit-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 16px #667eea66}.submit-button:disabled{opacity:.6;cursor:not-allowed}.wishes-wall{background:#fff;border-radius:16px;padding:2rem;box-shadow:0 8px 32px #0000001a}.wishes-wall h2{text-align:center;color:#333;margin-bottom:2rem}.no-wishes{text-align:center;color:#777;font-size:1.2rem;padding:3rem}.wishes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.wish-card{background:#f9f9f9;border-radius:12px;padding:1.5rem;border:2px solid #e0e0e0;transition:transform .3s,box-shadow .3s}.wish-card:hover{transform:translateY(-4px);box-shadow:0 8px 16px #0000001a}.wish-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.friend-name{font-weight:700;color:#667eea;font-size:1.1rem}.wish-rating{color:#f39c12;font-size:1rem}.wish-message{color:#333;line-height:1.6;margin-bottom:1rem;white-space:pre-wrap;word-wrap:break-word;word-break:break-word;overflow-wrap:break-word;max-width:100%}.wish-image{width:100%;max-height:200px;object-fit:cover;border-radius:8px;margin-bottom:1rem}.wish-date{display:block;color:#999;font-size:.85rem;text-align:right}@media (max-width: 768px){.friend-header h1{font-size:1.8rem}.countdown-text{font-size:1.2rem}.submission-section,.wishes-wall{padding:1.5rem}.wishes-grid{grid-template-columns:1fr}}:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}#root{width:100%;min-height:100vh}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}button{background-color:#f9f9f9}}
