.toast-container{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:9999;pointer-events:none}.toast{background:#fffffff2;border-radius:12px;padding:16px 24px;margin-bottom:12px;box-shadow:0 8px 32px #0000001f;border:1px solid #f3e8ff;min-width:320px;max-width:500px;display:flex;align-items:center;gap:12px;pointer-events:auto;animation:toastSlideIn .3s ease-out;position:relative;overflow:hidden;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.toast.toast-exit{animation:toastSlideOut .3s ease-in forwards}.toast-icon{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.toast-content{flex:1;min-width:0}.toast-message{font-size:16px;color:#000;margin:0;line-height:1.4;word-wrap:break-word}.toast-close{flex-shrink:0;background:none;color:#666;padding:4px;border-radius:4px;transition:color .2s;cursor:pointer}.toast-close:hover{color:#000}.toast-success{border-left:4px solid #00aa00}.toast-success .toast-icon{color:#0a0}.toast-error{border-left:4px solid #ff0000}.toast-error .toast-icon{color:red}.toast-info{border-left:4px solid #0066cc}.toast-info .toast-icon{color:#06c}.toast-warning{border-left:4px solid #ff9900}.toast-warning .toast-icon{color:#f90}.toast-progress{position:absolute;bottom:0;left:0;height:3px;background:#0000001a;animation:toastProgress 5s linear}.toast-success .toast-progress{background:#0a0}.toast-error .toast-progress{background:red}.toast-info .toast-progress{background:#06c}.toast-warning .toast-progress{background:#f90}@keyframes toastSlideIn{0%{transform:translateY(-100px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes toastSlideOut{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100px);opacity:0}}@keyframes toastProgress{0%{width:100%}to{width:0%}}@media (max-width: 480px){.toast-container{left:16px;right:16px;transform:none}.toast{min-width:auto;max-width:none;width:100%}.toast-message{font-size:14px}}.login-container{min-height:100vh;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(135deg,#fdf2f8,#fce7f3,#fbcfe8)}.login-content{flex:1;padding:60px 24px 0;max-width:400px;margin:0 auto;width:100%}.login-header{text-align:center;margin-bottom:48px}.login-logo{margin-bottom:24px}.logo-image{width:80px;height:80px;object-fit:contain;filter:drop-shadow(0 4px 8px rgba(0,0,0,.1))}.login-title{font-size:28px;font-weight:700;color:#000;margin-bottom:8px}.login-subtitle{font-size:18px;color:#666}.login-form{margin-bottom:32px}.input-container{margin-bottom:20px}.input-label{display:block;font-size:18px;color:#000;margin-bottom:8px;font-weight:500}.input-field{width:100%;background-color:#f5f5f5;border:1px solid #e0e0e0;border-radius:8px;padding:16px;font-size:18px;color:#000}.input-field:focus{border-color:#000}.textarea-field{resize:vertical;min-height:80px;font-family:inherit}.login-button{width:100%;background:linear-gradient(135deg,#ec4899,#db2777);color:#fff;border-radius:8px;padding:16px;font-size:18px;font-weight:600;margin-top:8px;transition:background-color .2s}.login-button:hover{background:linear-gradient(135deg,#db2777,#be185d)}.login-button-disabled{background:#f3e8ff;color:#a855f7;cursor:not-allowed}.form-switch{text-align:center;margin:20px 0;padding-top:20px;border-top:1px solid #e0e0e0}.switch-button{background:none;color:#666;font-size:16px;text-decoration:underline;transition:color .2s}.switch-button:hover{color:#000}.demo-section{border-top:1px solid #e0e0e0;padding-top:24px}.demo-title{font-size:18px;color:#666;margin-bottom:12px;text-align:center}.demo-button{width:100%;background:#fffc;border:1px solid #f3e8ff;border-radius:8px;padding:12px;font-size:18px;color:#000;margin-bottom:8px;transition:background-color .2s}.demo-button:hover{background:#ffffffe6;border-color:#e879f9}.login-footer{padding:24px;text-align:center}.user-avatar-photo{position:relative;cursor:pointer;display:inline-block}.user-avatar{position:relative;width:80px;height:80px;border-radius:50%;overflow:hidden;border:2px solid #e0e0e0;transition:all .3s ease;display:flex;justify-content:center;align-items:center;background-color:#f5f5f5}.user-avatar img{object-fit:cover;width:100%;height:100%;object-position:center}.user-card{background:#fffc;border:1px solid #f3e8ff;border-radius:12px;padding:16px;margin-bottom:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.user-card-header{display:flex;align-items:center;margin-bottom:12px}.user-info{flex:1;margin-left:12px}.user-avatar-clickable{cursor:pointer;transition:transform .2s}.user-avatar-clickable:hover{transform:scale(1.05)}.user-name{font-size:20px;font-weight:600;color:#000;margin:0}.days-count{font-size:18px;color:#666;margin:2px 0 0}.like-button{display:flex;flex-direction:column;align-items:center;padding:8px;background:none;color:#000;transition:color .2s}.like-button:hover,.like-button-liked,.like-button-liked .like-count{color:red}.like-button-disabled{color:#ccc;cursor:not-allowed}.like-button-disabled:hover{color:#ccc}.like-count{font-size:16px;font-weight:500;margin-top:4px}.theme-container{margin-bottom:16px}.theme{font-size:18px;color:#000;line-height:1.4;margin:0}.stamp-status-container{margin-top:12px}.stamp-status{display:flex;align-items:center;padding:8px 12px;background:#fbcfe84d;border-radius:8px}.stamp-indicator{width:16px;height:16px;position:relative;margin-right:8px;display:flex;align-items:center;justify-content:center;top:-3px}.stamp-indicator:before{content:"🌸";font-size:14px;opacity:.3;filter:grayscale(100%)}.stamp-indicator-active:before{opacity:1;filter:grayscale(0%)}.stamp-status-text{font-size:16px;color:#666;overflow:hidden}.pr-info-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;transition:opacity .3s ease-in-out}.pr-info-modal-overlay.visible{opacity:1}.pr-info-modal-content{background:#fff;border-radius:16px;padding:0;max-width:500px;width:90%;max-height:80vh;overflow:hidden;box-shadow:0 25px 50px #0006;transform:scale(.9) translateY(20px);transition:transform .3s ease-out}.pr-info-modal-overlay.visible .pr-info-modal-content{transform:scale(1) translateY(0)}.pr-user-info{display:flex;align-items:center;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid #f0f0f0}.pr-user-details{margin-left:16px}.pr-user-name{font-size:20px;font-weight:600;color:#000;margin:0 0 4px}.pr-user-theme{font-size:14px;color:#666;margin:0}.pr-info-section{margin-bottom:20px}.pr-info-section:last-child{margin-bottom:0}.pr-info-label{font-size:16px;font-weight:600;color:#000;margin-bottom:8px;display:flex;align-items:center;gap:6px}.pr-info-content{background:#f8f9fa;border-radius:8px;padding:16px;border:1px solid #e9ecef}.pr-info-text{font-size:16px;color:#333;line-height:1.5;margin:0;white-space:pre-wrap;word-wrap:break-word}.pr-info-empty{font-size:14px;color:#999;font-style:italic;margin:0}@media (max-width: 480px){.pr-info-modal-content{max-width:350px;width:95%}.pr-modal-header,.pr-modal-body{padding:16px 20px}.pr-modal-header h3{font-size:16px}.pr-user-name{font-size:18px}.pr-info-label,.pr-info-text{font-size:14px}}.navigation{position:fixed;bottom:0;left:0;right:0;display:flex;background:#ffffffe6;border-top:1px solid #f3e8ff;padding:8px;height:70px;z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.nav-button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:none;color:#999;font-size:14px;font-weight:500;gap:4px;transition:color .2s}.nav-button:hover{color:#666}.nav-button-active{color:#ec4899}.dashboard-container{min-height:100vh;background:linear-gradient(135deg,#fdf2f8,#fce7f3,#fbcfe8);padding-bottom:80px}.dashboard-header{display:flex;justify-content:center;align-items:center;padding:16px;background:#ffffffe6;border-bottom:1px solid #f3e8ff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative}.dashboard-title{font-size:20px;font-weight:700;color:#000}.logout-button{padding:8px;background:none;color:#666;transition:color .2s}.logout-button:hover{color:#000}.dashboard-content{padding-bottom:20px}.dashboard-subtitle{font-size:20px;color:#666;text-align:center;margin:20px 0;font-weight:500}.user-cards{padding:0 16px;max-width:768px;margin:0 auto}.dashboard-footer{text-align:center;padding:20px}.profile-photo-upload{position:relative;cursor:pointer;display:inline-block}.photo-container{position:relative;width:80px;height:80px;border-radius:50%;overflow:hidden;border:2px solid #e0e0e0;transition:all .3s ease}.photo-container:hover{border-color:#000;transform:scale(1.05)}.profile-photo{width:100%;height:100%;object-fit:cover;object-position:center}.default-avatar{width:100%;height:100%;background-color:#f5f5f5;display:flex;align-items:center;justify-content:center;color:#666}.upload-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;opacity:0;transition:opacity .3s ease;font-size:12px;gap:4px}.photo-container:hover .upload-overlay{opacity:1}.upload-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.upload-modal-content{background:#fff;border-radius:16px;padding:0;max-width:400px;width:90%;max-height:80vh;overflow:hidden;box-shadow:0 25px 50px #0006}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e0e0e0}.modal-header h3{margin:0;font-size:18px;font-weight:600;color:#000}.close-button{background:none;color:#666;padding:4px;border-radius:4px;transition:color .2s}.close-button:hover{color:#000}.modal-body{padding:24px;text-align:center}.preview-container{margin-bottom:20px}.preview-image{max-width:100%;max-height:200px;border-radius:8px;box-shadow:0 4px 12px #0000001a}.file-info{margin-top:16px}.file-name{font-size:16px;font-weight:500;color:#000;margin:0 0 4px;word-break:break-all}.file-size{font-size:14px;color:#666;margin:0}.modal-footer{display:flex;gap:12px;padding:20px 24px;border-top:1px solid #e0e0e0;background-color:#f8f9fa}.cancel-button,.upload-button{flex:1;padding:12px 16px;border-radius:8px;font-size:16px;font-weight:500;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s}.cancel-button{background:#f5f5f5;color:#666;border:1px solid #e0e0e0}.cancel-button:hover:not(:disabled){background:#e0e0e0;color:#000}.upload-button{background:#000;color:#fff;border:none}.upload-button:hover:not(:disabled){background:#333}.upload-button:disabled,.cancel-button:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 480px){.upload-modal-content{max-width:350px;width:95%}.modal-header,.modal-body,.modal-footer{padding:16px 20px}.modal-header h3{font-size:16px}.preview-image{max-height:150px}.cancel-button,.upload-button{font-size:14px;padding:10px 12px}}.stamp-calendar{background:transparent}.calendar-scroll{overflow-x:auto}.calendar-grid{display:flex;flex-direction:column;min-width:max-content}.calendar-week{display:flex;margin-bottom:4px}.calendar-day{width:40px;height:40px;display:flex;flex-direction:column;justify-content:center;align-items:center;margin-right:4px;border:1px solid #f3e8ff;border-radius:8px;background:#fff9;position:relative;cursor:pointer;transition:border-color .2s;padding:2px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.calendar-day:hover:not(:disabled){border-color:#ec4899;background:#fffc}.calendar-day-compact{width:28px;height:28px;margin-right:2px;padding:1px}.calendar-day-today{border-color:#ec4899;border-width:2px;background:#ec48991a}.calendar-day-disabled{background:#fbcfe84d;cursor:not-allowed}.calendar-day-disabled .day-number{color:#999}.calendar-day-disabled .day-date{color:#ccc}.day-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px}.day-number{font-size:14px;color:#000;font-weight:500;line-height:1}.day-number-compact{font-size:10px}.calendar-day-today .day-number{font-weight:700}.day-date{font-size:10px;color:#666;line-height:1}.day-date-compact{font-size:8px}.calendar-day-today .day-date{color:#ec4899;font-weight:500}.calendar-day-stamped{position:relative}.calendar-day-stamped:before{content:"🌸";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:24px;opacity:.3;z-index:0;pointer-events:none}.calendar-day-compact.calendar-day-stamped:before{font-size:16px}.day-content{position:relative;z-index:1}.flower-animation-container{display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#fdf2f8cc,#fce7f3cc,#fbcfe8cc);border-radius:12px;padding:20px;margin:16px 0;min-height:300px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(243,232,255,.5)}.bouquet-container{width:100%;max-width:300px;height:280px;position:relative}.bouquet-wrapper{width:100%;height:100%;position:relative;background:radial-gradient(ellipse at center bottom,rgba(253,242,248,.6) 0%,transparent 70%)}.bouquet-stems{position:absolute;bottom:0;left:50%;transform:translate(-50%);width:8px;height:60px;background:linear-gradient(to bottom,#228b22,#32cd32);border-radius:4px;z-index:1}.bouquet-stems:before{content:"";position:absolute;left:-3px;width:6px;height:50px;background:linear-gradient(to bottom,#228b22,#32cd32);border-radius:3px;transform:rotate(-10deg)}.bouquet-stems:after{content:"";position:absolute;right:-3px;width:6px;height:50px;background:linear-gradient(to bottom,#228b22,#32cd32);border-radius:3px;transform:rotate(10deg)}.flower{position:absolute;z-index:10;animation:flowerBloom .8s ease-out}.rose-flower{width:24px;height:24px;position:relative}.rose-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:6px;height:6px;background:var(--dark-color);border-radius:50%;z-index:3}.rose-petals{position:relative;width:100%;height:100%}.rose-petal{position:absolute;top:50%;left:50%;width:12px;height:16px;background:radial-gradient(ellipse at center,var(--primary-color),var(--secondary-color));border-radius:50%/60% 60% 40% 40%;transform-origin:center bottom;box-shadow:inset 0 1px 3px #0000001a}.rose-petal.petal-0{transform:translate(-50%,-50%) rotate(0) translateY(-8px)}.rose-petal.petal-1{transform:translate(-50%,-50%) rotate(45deg) translateY(-8px)}.rose-petal.petal-2{transform:translate(-50%,-50%) rotate(90deg) translateY(-8px)}.rose-petal.petal-3{transform:translate(-50%,-50%) rotate(135deg) translateY(-8px)}.rose-petal.petal-4{transform:translate(-50%,-50%) rotate(180deg) translateY(-8px)}.rose-petal.petal-5{transform:translate(-50%,-50%) rotate(225deg) translateY(-8px)}.rose-petal.petal-6{transform:translate(-50%,-50%) rotate(270deg) translateY(-8px)}.rose-petal.petal-7{transform:translate(-50%,-50%) rotate(315deg) translateY(-8px)}.ranunculus-flower{width:20px;height:20px;position:relative}.ranunculus-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:4px;height:4px;background:gold;border-radius:50%;z-index:4}.ranunculus-layer{position:absolute;width:100%;height:100%}.ranunculus-layer.layer-0 .ranunculus-petal{width:8px;height:10px;background:var(--primary-color)}.ranunculus-layer.layer-1 .ranunculus-petal{width:10px;height:12px;background:var(--secondary-color)}.ranunculus-layer.layer-2 .ranunculus-petal{width:12px;height:14px;background:var(--dark-color)}.ranunculus-petal{position:absolute;top:50%;left:50%;border-radius:50%/70% 70% 30% 30%;transform-origin:center bottom;box-shadow:inset 0 1px 2px #0000001a}.ranunculus-layer.layer-0 .ranunculus-petal.petal-0{transform:translate(-50%,-50%) rotate(0) translateY(-5px)}.ranunculus-layer.layer-0 .ranunculus-petal.petal-1{transform:translate(-50%,-50%) rotate(60deg) translateY(-5px)}.ranunculus-layer.layer-0 .ranunculus-petal.petal-2{transform:translate(-50%,-50%) rotate(120deg) translateY(-5px)}.ranunculus-layer.layer-0 .ranunculus-petal.petal-3{transform:translate(-50%,-50%) rotate(180deg) translateY(-5px)}.ranunculus-layer.layer-0 .ranunculus-petal.petal-4{transform:translate(-50%,-50%) rotate(240deg) translateY(-5px)}.ranunculus-layer.layer-0 .ranunculus-petal.petal-5{transform:translate(-50%,-50%) rotate(300deg) translateY(-5px)}.ranunculus-layer.layer-1 .ranunculus-petal.petal-0{transform:translate(-50%,-50%) rotate(30deg) translateY(-6px)}.ranunculus-layer.layer-1 .ranunculus-petal.petal-1{transform:translate(-50%,-50%) rotate(90deg) translateY(-6px)}.ranunculus-layer.layer-1 .ranunculus-petal.petal-2{transform:translate(-50%,-50%) rotate(150deg) translateY(-6px)}.ranunculus-layer.layer-1 .ranunculus-petal.petal-3{transform:translate(-50%,-50%) rotate(210deg) translateY(-6px)}.ranunculus-layer.layer-1 .ranunculus-petal.petal-4{transform:translate(-50%,-50%) rotate(270deg) translateY(-6px)}.ranunculus-layer.layer-1 .ranunculus-petal.petal-5{transform:translate(-50%,-50%) rotate(330deg) translateY(-6px)}.ranunculus-layer.layer-2 .ranunculus-petal.petal-0{transform:translate(-50%,-50%) rotate(15deg) translateY(-7px)}.ranunculus-layer.layer-2 .ranunculus-petal.petal-1{transform:translate(-50%,-50%) rotate(75deg) translateY(-7px)}.ranunculus-layer.layer-2 .ranunculus-petal.petal-2{transform:translate(-50%,-50%) rotate(135deg) translateY(-7px)}.ranunculus-layer.layer-2 .ranunculus-petal.petal-3{transform:translate(-50%,-50%) rotate(195deg) translateY(-7px)}.ranunculus-layer.layer-2 .ranunculus-petal.petal-4{transform:translate(-50%,-50%) rotate(255deg) translateY(-7px)}.ranunculus-layer.layer-2 .ranunculus-petal.petal-5{transform:translate(-50%,-50%) rotate(315deg) translateY(-7px)}.small-flower{width:12px;height:12px;position:relative}.small-flower-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:3px;height:3px;background:gold;border-radius:50%;z-index:3}.small-petal{position:absolute;top:50%;left:50%;width:6px;height:8px;background:var(--primary-color);border-radius:50%/60% 60% 40% 40%;transform-origin:center bottom;box-shadow:inset 0 1px 1px #0000001a}.small-petal.petal-0{transform:translate(-50%,-50%) rotate(0) translateY(-4px)}.small-petal.petal-1{transform:translate(-50%,-50%) rotate(72deg) translateY(-4px)}.small-petal.petal-2{transform:translate(-50%,-50%) rotate(144deg) translateY(-4px)}.small-petal.petal-3{transform:translate(-50%,-50%) rotate(216deg) translateY(-4px)}.small-petal.petal-4{transform:translate(-50%,-50%) rotate(288deg) translateY(-4px)}.greenery{position:absolute;width:100%;height:100%;z-index:2}.leaf{position:absolute;width:16px;height:8px;background:linear-gradient(45deg,#90ee90,#228b22);border-radius:0 100%;animation:leafGrow .6s ease-out;box-shadow:inset 0 1px 2px #0000001a}.leaf:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:#228b22;transform:translateY(-50%)}.baby-breath{position:absolute;width:4px;height:4px;background:#fffacd;border-radius:50%;animation:babyBreathGrow .4s ease-out;box-shadow:0 0 2px #fffacdcc}.baby-breath:before{content:"";position:absolute;top:-1px;left:-1px;width:6px;height:6px;background:radial-gradient(circle,rgba(255,250,205,.6),transparent);border-radius:50%}.bouquet-wrapper-paper{position:absolute;bottom:0;left:50%;transform:translate(-50%);z-index:1}.wrapper-paper{width:80px;height:40px;background:linear-gradient(135deg,#fffc,#f0f0f099);border-radius:40px 40px 0 0;border:1px solid rgba(200,200,200,.5);animation:wrapperAppear .5s ease-out}.wrapper-paper:before{content:"";position:absolute;top:-5px;left:50%;transform:translate(-50%);width:60px;height:10px;background:linear-gradient(90deg,#ffb6c1,plum,#ffb6c1);border-radius:5px}.progress-display{position:absolute;bottom:-75px;left:0;right:0;text-align:center}.progress-text{font-size:14px;color:#666;margin-bottom:8px;font-weight:500}.progress-bar{width:100%;height:6px;background:#e0e0e0;border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#ec4899,#db2777);border-radius:3px;transition:width .5s ease-out}@keyframes flowerBloom{0%{transform:translate(-50%,-50%) scale(0) rotate(-180deg);opacity:0}50%{transform:translate(-50%,-50%) scale(1.2) rotate(-90deg);opacity:.8}to{transform:translate(-50%,-50%) scale(1) rotate(0);opacity:1}}@keyframes leafGrow{0%{transform:translate(-50%,-50%) scale(0) rotate(var(--rotation, 0deg));opacity:0}to{transform:translate(-50%,-50%) scale(1) rotate(var(--rotation, 0deg));opacity:1}}@keyframes babyBreathGrow{0%{transform:scale(0);opacity:0}50%{transform:scale(1.5);opacity:.8}to{transform:scale(1);opacity:1}}@keyframes wrapperAppear{0%{transform:translate(-50%) translateY(20px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}@media (max-width: 480px){.flower-animation-container{padding:16px;min-height:250px}.bouquet-container{max-width:250px;height:230px}.progress-text{font-size:12px}}.flower-popup-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;justify-content:center;align-items:center;z-index:1000;opacity:0;transition:opacity .5s ease-in-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer}.flower-popup-overlay.visible{opacity:1}.flower-popup-content{background:linear-gradient(135deg,#fff,#f8f9fa);border-radius:20px;padding:40px 30px;text-align:center;box-shadow:0 25px 50px #0006,0 0 0 1px #ffffff1a;max-width:350px;width:90%;transform:scale(.8) translateY(20px);animation:popupAppear .6s ease-out forwards;cursor:default;position:relative;border:2px solid rgba(255,255,255,.2)}.flower-popup-overlay.visible .flower-popup-content{animation:popupAppear .6s ease-out forwards}.flower-popup-overlay:not(.visible) .flower-popup-content{animation:popupDisappear .5s ease-in forwards}.popup-message{margin-bottom:30px}.popup-title{font-size:24px;font-weight:700;color:#333;margin:0 0 8px;text-shadow:0 1px 2px rgba(0,0,0,.1)}.popup-subtitle{font-size:16px;color:#666;margin:0}.popup-flower-container{position:relative;display:flex;justify-content:center;align-items:center;height:120px;margin:30px 0}.popup-flower{position:relative;animation:flowerBloomPopup 2s ease-out}.popup-flower.rose{width:80px;height:80px}.popup-flower.ranunculus{width:70px;height:70px}.popup-flower.small-flower{width:60px;height:60px}.popup-flower .rose-flower{width:100%;height:100%;position:relative}.popup-flower .rose-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:12px;height:12px;background:var(--dark-color);border-radius:50%;z-index:3}.popup-flower .rose-petals{position:relative;width:100%;height:100%}.popup-flower .rose-petal{position:absolute;top:50%;left:50%;width:24px;height:32px;background:radial-gradient(ellipse at center,var(--primary-color),var(--secondary-color));border-radius:50%/60% 60% 40% 40%;transform-origin:center bottom;box-shadow:inset 0 2px 6px #0000001a}.popup-flower .rose-petal.petal-0{transform:translate(-50%,-50%) rotate(0) translateY(-16px)}.popup-flower .rose-petal.petal-1{transform:translate(-50%,-50%) rotate(45deg) translateY(-16px)}.popup-flower .rose-petal.petal-2{transform:translate(-50%,-50%) rotate(90deg) translateY(-16px)}.popup-flower .rose-petal.petal-3{transform:translate(-50%,-50%) rotate(135deg) translateY(-16px)}.popup-flower .rose-petal.petal-4{transform:translate(-50%,-50%) rotate(180deg) translateY(-16px)}.popup-flower .rose-petal.petal-5{transform:translate(-50%,-50%) rotate(225deg) translateY(-16px)}.popup-flower .rose-petal.petal-6{transform:translate(-50%,-50%) rotate(270deg) translateY(-16px)}.popup-flower .rose-petal.petal-7{transform:translate(-50%,-50%) rotate(315deg) translateY(-16px)}.popup-flower .ranunculus-flower{width:100%;height:100%;position:relative}.popup-flower .ranunculus-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:8px;height:8px;background:gold;border-radius:50%;z-index:4}.popup-flower .ranunculus-layer{position:absolute;width:100%;height:100%}.popup-flower .ranunculus-layer.layer-0 .ranunculus-petal{width:16px;height:20px;background:var(--primary-color)}.popup-flower .ranunculus-layer.layer-1 .ranunculus-petal{width:20px;height:24px;background:var(--secondary-color)}.popup-flower .ranunculus-layer.layer-2 .ranunculus-petal{width:24px;height:28px;background:var(--dark-color)}.popup-flower .ranunculus-petal{position:absolute;top:50%;left:50%;border-radius:50%/70% 70% 30% 30%;transform-origin:center bottom;box-shadow:inset 0 2px 4px #0000001a}.popup-flower .small-flower{width:100%;height:100%;position:relative}.popup-flower .small-flower-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:6px;height:6px;background:gold;border-radius:50%;z-index:3}.popup-flower .small-petal{position:absolute;top:50%;left:50%;width:18px;height:24px;background:var(--primary-color);border-radius:50%/60% 60% 40% 40%;transform-origin:center bottom;box-shadow:inset 0 2px 3px #0000001a}.popup-flower .small-petal.petal-0{transform:translate(-50%,-50%) rotate(0) translateY(-12px)}.popup-flower .small-petal.petal-1{transform:translate(-50%,-50%) rotate(72deg) translateY(-12px)}.popup-flower .small-petal.petal-2{transform:translate(-50%,-50%) rotate(144deg) translateY(-12px)}.popup-flower .small-petal.petal-3{transform:translate(-50%,-50%) rotate(216deg) translateY(-12px)}.popup-flower .small-petal.petal-4{transform:translate(-50%,-50%) rotate(288deg) translateY(-12px)}.sparkle-effects{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none}.sparkle{position:absolute;font-size:16px;animation:sparkleFloat 3s ease-out infinite;opacity:0}.sparkle-0{top:10%;left:20%;animation-delay:.2s}.sparkle-1{top:20%;right:15%;animation-delay:.4s}.sparkle-2{top:60%;left:10%;animation-delay:.6s}.sparkle-3{top:70%;right:20%;animation-delay:.8s}.sparkle-4{top:30%;left:50%;animation-delay:1s}.sparkle-5{top:80%;left:60%;animation-delay:1.2s}.sparkle-6{top:15%;left:70%;animation-delay:1.4s}.sparkle-7{top:50%;right:10%;animation-delay:1.6s}.popup-progress{margin-top:20px}.progress-message{font-size:14px;color:#666;margin:0;font-weight:500}@keyframes popupAppear{0%{transform:scale(.8) translateY(20px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}@keyframes popupDisappear{0%{transform:scale(1) translateY(0);opacity:1}to{transform:scale(.9) translateY(-10px);opacity:0}}@keyframes flowerBloomPopup{0%{transform:scale(0) rotate(-180deg);opacity:0}50%{transform:scale(1.3) rotate(-90deg);opacity:.8}to{transform:scale(1) rotate(0);opacity:1}}@keyframes sparkleFloat{0%{transform:translateY(0) scale(0);opacity:0}20%{opacity:1;transform:translateY(-10px) scale(1)}80%{opacity:1;transform:translateY(-30px) scale(1)}to{transform:translateY(-50px) scale(0);opacity:0}}@media (max-width: 480px){.flower-popup-content{padding:30px 20px;max-width:300px}.popup-title{font-size:20px}.popup-subtitle{font-size:14px}.popup-flower-container{height:100px;margin:20px 0}.popup-flower.rose{width:60px;height:60px}.popup-flower.ranunculus{width:50px;height:50px}.popup-flower.small-flower{width:40px;height:40px}.sparkle{font-size:12px}}.notification-setup{padding:20px;border-top:1px solid #e5e7eb;background-color:#f9fafb}.notification-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:#374151}.notification-title{font-size:16px;font-weight:600}.notification-description{font-size:14px;color:#6b7280;margin-bottom:16px;line-height:1.5}.notification-toggle-container{display:flex;justify-content:center}.notification-toggle-label{display:flex;align-items:center;gap:12px;cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.notification-toggle-checkbox{position:absolute;opacity:0;width:0;height:0}.notification-toggle-slider{position:relative;width:56px;height:28px;background-color:#d1d5db;border-radius:34px;transition:background-color .3s}.notification-toggle-slider:before{content:"";position:absolute;width:22px;height:22px;left:3px;top:3px;background-color:#fff;border-radius:50%;transition:transform .3s}.notification-toggle-checkbox:checked+.notification-toggle-slider{background-color:#ec4899}.notification-toggle-checkbox:checked+.notification-toggle-slider:before{transform:translate(28px)}.notification-toggle-checkbox:disabled+.notification-toggle-slider{opacity:.5;cursor:not-allowed}.notification-toggle-text{font-size:15px;font-weight:500;color:#374151;min-width:70px}.notification-toggle-checkbox:checked~.notification-toggle-text{color:#ec4899}.subscription-info{background-color:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:16px;margin-bottom:16px;font-size:13px}.subscription-info-title{font-size:14px;font-weight:600;color:#374151;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #e5e7eb}.subscription-info-item{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.subscription-info-item:last-child{margin-bottom:0}.subscription-info-label{font-weight:600;color:#6b7280;font-size:12px}.subscription-info-value{color:#374151;word-break:break-all;line-height:1.5}.subscription-info-value-truncate{max-height:80px;overflow-y:auto;padding:8px;background-color:#f9fafb;border-radius:4px;font-family:monospace;font-size:11px}.mypage-container{min-height:100vh;background:linear-gradient(135deg,#fdf2f8,#fce7f3,#fbcfe8);padding-bottom:80px}.mypage-header{display:flex;justify-content:center;align-items:center;padding:16px;background:#ffffffe6;border-bottom:1px solid #f3e8ff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative}.header-logo{position:absolute;left:16px}.header-logo-image{width:32px;height:32px;object-fit:contain}.header-spacer{width:32px}.mypage-title{font-size:20px;font-weight:700;color:#000}.mypage-content{padding-bottom:20px}.pr-settings-section{background:#fffc;margin:16px;border-radius:12px;padding:16px;border:1px solid #f3e8ff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:center}.pr-settings-button{background:transparent;color:#fff;border:none;border-radius:8px;padding:12px 24px;font-size:16px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s;margin:0 auto;position:absolute;top:8px;right:8px}.pr-settings-button svg{color:#ec4899}.pr-settings-button:hover{opacity:.7;transform:translateY(-1px)}.profile-section{background:#fffc;margin:16px;border-radius:12px;padding:24px;text-align:center;border:1px solid #f3e8ff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.user-name{font-size:22px;font-weight:600;color:#000;margin:12px 0 4px}.phone{font-size:18px;color:#666;margin-bottom:8px}.days-count{font-size:28px;font-weight:700;color:#000}.theme-section,.flower-section,.calendar-section{background:#fffc;margin:16px;border-radius:12px;padding:24px;border:1px solid #f3e8ff}.flower-section{min-height:525px}.section-title{font-size:20px;font-weight:600;color:#000;margin-bottom:12px}.theme-container{background:#fbcfe84d;border-radius:8px;padding:16px}.theme{font-size:18px;color:#000;line-height:1.4;margin-bottom:8px}.start-date{font-size:16px;color:#666}.edit-theme-button{background:#fbcfe880;border:1px solid #f3e8ff;border-radius:8px;padding:8px 16px;font-size:14px;color:#666;margin-top:12px;transition:all .2s;display:flex;align-items:center;gap:6px}.edit-theme-button:hover{background:#fbcfe8b3;color:#000}.pr-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.pr-modal-content{background:#fff;border-radius:16px;padding:0;max-width:500px;width:90%;max-height:80vh;overflow:hidden;box-shadow:0 25px 50px #0006}.pr-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e0e0e0;background:linear-gradient(135deg,#fdf2f8,#fce7f3)}.pr-modal-header h3{margin:0;font-size:18px;font-weight:600;color:#000;display:flex;align-items:center;gap:8px}.pr-close-button{background:none;color:#666;padding:4px;border-radius:4px;transition:color .2s}.pr-close-button:hover{color:#000}.pr-modal-body{padding:24px}.pr-input-container{margin-bottom:20px}.pr-input-container:last-child{margin-bottom:0}.pr-input-label{display:block;font-size:16px;color:#000;margin-bottom:8px;font-weight:500}.pr-input-field{width:100%;background-color:#f5f5f5;border:1px solid #e0e0e0;border-radius:8px;padding:12px;font-size:16px;color:#000;font-family:inherit;transition:border-color .2s}.pr-input-field:focus{border-color:#ec4899;outline:none}.pr-textarea-field{resize:vertical;min-height:100px;line-height:1.5}.pr-char-count{font-size:12px;color:#999;text-align:right;margin-top:4px}.pr-modal-footer{display:flex;gap:12px;padding:20px 24px;border-top:1px solid #e0e0e0;background-color:#f8f9fa}.pr-cancel-button,.pr-save-button{flex:1;padding:12px 16px;border-radius:8px;font-size:16px;font-weight:500;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s}.pr-cancel-button{background:#f5f5f5;color:#666;border:1px solid #e0e0e0}.pr-cancel-button:hover:not(:disabled){background:#e0e0e0;color:#000}.pr-save-button{background:linear-gradient(135deg,#ec4899,#db2777);color:#fff;border:none}.pr-save-button:hover:not(:disabled){background:linear-gradient(135deg,#db2777,#be185d)}.pr-save-button:disabled,.pr-cancel-button:disabled{opacity:.6;cursor:not-allowed}.theme-edit-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.theme-edit-modal-content{background:#fff;border-radius:16px;padding:0;max-width:500px;width:90%;max-height:80vh;overflow:hidden;box-shadow:0 25px 50px #0006}.theme-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e0e0e0}.theme-modal-header h3{margin:0;font-size:18px;font-weight:600;color:#000}.theme-close-button{background:none;color:#666;padding:4px;border-radius:4px;transition:color .2s}.theme-close-button:hover{color:#000}.theme-modal-body{padding:24px}.theme-input-container{margin-bottom:20px}.theme-input-label{display:block;font-size:16px;color:#000;margin-bottom:8px;font-weight:500}.theme-input-field{width:100%;background-color:#f5f5f5;border:1px solid #e0e0e0;border-radius:8px;padding:12px;font-size:16px;color:#000;resize:vertical;min-height:80px;font-family:inherit}.theme-input-field:focus{border-color:#000;outline:none}.warning-message{background:#fff3cd;border:1px solid #ffeaa7;border-radius:8px;padding:16px;margin-bottom:20px}.warning-title{font-size:16px;font-weight:600;color:#856404;margin:0 0 8px;display:flex;align-items:center;gap:8px}.warning-text{font-size:14px;color:#856404;margin:0;line-height:1.4}.theme-modal-footer{display:flex;gap:12px;padding:20px 24px;border-top:1px solid #e0e0e0;background-color:#f8f9fa}.theme-cancel-button,.theme-save-button{flex:1;padding:12px 16px;border-radius:8px;font-size:16px;font-weight:500;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .2s}.theme-cancel-button{background:#f5f5f5;color:#666;border:1px solid #e0e0e0}.theme-cancel-button:hover:not(:disabled){background:#e0e0e0;color:#000}.theme-save-button{background:linear-gradient(135deg,#ec4899,#db2777);color:#fff;border:none}.theme-save-button:hover:not(:disabled){background:linear-gradient(135deg,#db2777,#be185d)}.theme-save-button:disabled,.theme-cancel-button:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 480px){.theme-edit-modal-content{max-width:350px;width:95%}.theme-modal-header,.theme-modal-body,.theme-modal-footer{padding:16px 20px}.theme-modal-header h3{font-size:16px}.theme-cancel-button,.theme-save-button{font-size:14px;padding:10px 12px}.pr-modal-content{max-width:350px;width:95%}.pr-modal-header,.pr-modal-body,.pr-modal-footer{padding:16px 20px}.pr-modal-header h3{font-size:16px}.pr-cancel-button,.pr-save-button{font-size:14px;padding:10px 12px}.flower-section{min-height:475px}}.flower-description,.calendar-description{font-size:16px;color:#666;margin-bottom:16px;text-align:center}.progress-text{font-size:18px;color:#000;font-weight:600;text-align:center;margin-top:8px}.calendar-container{display:flex;justify-content:center}.mypage-footer{text-align:center;padding:20px}.copyright{font-size:14px;color:#999}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#fdf2f8,#fce7f3,#fbcfe8);min-height:100vh}.app{min-height:100vh;background:inherit}button{cursor:pointer;border:none;outline:none;font-family:inherit}input{outline:none;font-family:inherit}a{text-decoration:none;color:inherit}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
