@import"https://fonts.googleapis.com/css2?family=Dancing+Script:wght@600;700&family=Quicksand:wght@400;500;600;700&display=swap";:root{--primary-pink: #ff758f;--primary-dark-pink: #ff4d6d;--soft-pink: #ffccd5;--bg-creamy: #fff5f7;--bg-card: rgba(255, 255, 255, .88);--bg-card-hover: rgba(255, 255, 255, .95);--lavender: #e2d4f9;--mint: #d8f3dc;--text-dark: #2b2d42;--text-muted: #6c757d;--shadow-cute: 0 12px 30px -5px rgba(255, 117, 143, .2), 0 6px 12px -4px rgba(255, 117, 143, .1);--shadow-card: 0 10px 25px rgba(0, 0, 0, .04);--shadow-hover: 0 15px 35px rgba(255, 77, 109, .25);--glass-border: 1px solid rgba(255, 255, 255, .7);--glass-border-pink: 1px solid rgba(255, 117, 143, .25);--radius-xl: 24px;--radius-lg: 18px;--radius-md: 14px;--radius-sm: 10px;--sidebar-width: 250px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Quicksand,sans-serif;background:linear-gradient(135deg,#fff0f3,#ffe3e8,#f0e6ff 80%,#fff0f3);background-attachment:fixed;color:var(--text-dark);min-height:100vh;overflow-x:hidden;position:relative}.heart-bg{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;overflow:hidden}.heart-particle{position:absolute;font-size:1.2rem;opacity:.35;animation:floatUp 12s infinite linear}@keyframes floatUp{0%{transform:translateY(100vh) rotate(0) scale(.8);opacity:0}20%{opacity:.4}80%{opacity:.4}to{transform:translateY(-10vh) rotate(360deg) scale(1.2);opacity:0}}#root{min-height:100vh;display:flex;position:relative;z-index:1}.app-layout{display:flex;width:100%;min-height:100vh;max-width:1600px;margin:0 auto;padding:1rem;gap:1.25rem}.app-sidebar{width:var(--sidebar-width);flex-shrink:0;background:var(--bg-card);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:var(--glass-border);border-radius:var(--radius-xl);padding:1.25rem 1rem;box-shadow:var(--shadow-cute);display:flex;flex-direction:column;height:calc(100vh - 2rem);position:sticky;top:1rem;z-index:10}.sidebar-brand{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem;padding-bottom:.75rem;border-bottom:1px dashed rgba(255,117,143,.3)}.brand-logo-icon{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,#ff758f,#ff4d6d);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 6px 15px #ff4d6d59;animation:pulseLogo 3s infinite ease-in-out}@keyframes pulseLogo{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.brand-text{font-family:Dancing Script,cursive;font-size:1.6rem;font-weight:700;background:linear-gradient(45deg,#ff4d6d,#9d4edd);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;line-height:1.2}.sidebar-menu{display:flex;flex-direction:column;gap:.5rem;flex:1;overflow-y:auto}.sidebar-nav-item{border:none;background:transparent;padding:11px 12px;border-radius:var(--radius-md);font-family:Quicksand,sans-serif;font-weight:600;font-size:.9rem;color:var(--text-dark);cursor:pointer;display:flex;align-items:center;gap:10px;transition:all .25s ease;text-align:left;width:100%}.sidebar-nav-item:hover{background:#ffffffe6;transform:translate(3px);color:var(--primary-dark-pink)}.sidebar-nav-item.active{background:#fff;color:var(--primary-dark-pink);font-weight:700;box-shadow:0 6px 18px #ff758f33;border-left:4px solid var(--primary-dark-pink)}.sidebar-nav-icon{font-size:1.15rem;display:flex;align-items:center;justify-content:center}.sidebar-widget{background:linear-gradient(135deg,#ffe5ec,#f0e6ff);border-radius:var(--radius-md);padding:12px;text-align:center;margin-top:auto;border:var(--glass-border-pink)}.sidebar-widget-title{font-size:.75rem;font-weight:700;color:var(--primary-dark-pink);text-transform:uppercase;letter-spacing:.5px}.sidebar-widget-value{font-family:Dancing Script,cursive;font-size:1.4rem;font-weight:700;color:#7209b7;margin-top:2px}.app-main-wrapper{flex:1;display:flex;flex-direction:column;min-width:0}.app-header{background:var(--bg-card);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:var(--glass-border);border-radius:var(--radius-xl);padding:.85rem 1.25rem;box-shadow:var(--shadow-cute);margin-bottom:1.25rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem;position:relative;z-index:50}.header-welcome{display:flex;align-items:center;gap:.75rem;min-width:0}.header-title{font-size:1.25rem;font-weight:700;color:var(--text-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-subtitle{font-size:.8rem;color:var(--text-muted);display:flex;align-items:center;gap:6px}.header-right{display:flex;align-items:center;gap:.65rem;flex-shrink:0}.time-pill{background:#fffffff2;border:1px solid var(--soft-pink);border-radius:30px;padding:6px 14px;font-size:.825rem;font-weight:600;color:var(--text-dark);display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.view-mode-selector-container{position:relative;display:inline-block;z-index:60}.view-mode-trigger{border:1px solid var(--soft-pink);background:#fffffff2;padding:6px 14px;border-radius:30px;font-family:Quicksand,sans-serif;font-weight:700;font-size:.85rem;color:var(--text-dark);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:all .25s ease;white-space:nowrap;box-shadow:0 2px 8px #ff758f1f}.view-mode-trigger.girl{background:linear-gradient(135deg,#fff0f3,#ffe5ec);border-color:#ffb3c1;color:var(--primary-dark-pink)}.view-mode-trigger.boy{background:linear-gradient(135deg,#f0f4ff,#e2eafc);border-color:#abc4ff;color:#4361ee}.view-mode-trigger:hover{transform:translateY(-1px);box-shadow:0 4px 12px #ff758f33}.view-mode-trigger .chevron-icon{transition:transform .2s ease}.view-mode-trigger .chevron-icon.open{transform:rotate(180deg)}.view-mode-dropdown{position:absolute;top:calc(100% + 6px);right:0;background:#fffffffa;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--soft-pink);border-radius:16px;padding:6px;box-shadow:0 10px 25px #ff4d6d40;z-index:999;min-width:140px;display:flex;flex-direction:column;gap:4px;animation:fadeInDown .2s ease-out}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.dropdown-item{border:none;background:transparent;padding:8px 12px;border-radius:10px;font-family:Quicksand,sans-serif;font-weight:600;font-size:.85rem;color:var(--text-dark);cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px;transition:all .15s ease;width:100%}.dropdown-item:hover{background:#ff758f1a;color:var(--primary-dark-pink)}.dropdown-item.selected{font-weight:700;background:#ff758f26}.calendar-month-picker{display:flex;align-items:center;gap:8px;flex-shrink:0}.calendar-month-title{font-weight:700;font-size:.95rem;white-space:nowrap;color:var(--text-dark);text-align:center}.btn-icon-nav{background:#fff;color:var(--primary-dark-pink);border:1px solid var(--soft-pink);padding:6px 10px;border-radius:20px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease;width:auto!important;flex-shrink:0}.btn-icon-nav:hover{background:#fff0f3;transform:translateY(-1px)}.app-content{flex:1;padding-bottom:2rem}.dashboard-grid-main-side{display:grid;grid-template-columns:1.35fr 1fr;gap:1.25rem;align-items:start}.dashboard-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem}.dashboard-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}.dashboard-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.card{background:var(--bg-card);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:var(--glass-border);border-radius:var(--radius-xl);padding:1.35rem;box-shadow:var(--shadow-cute);margin-bottom:1.25rem;transition:all .3s ease}.card:hover{background:var(--bg-card-hover);box-shadow:var(--shadow-hover)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.15rem;flex-wrap:wrap;gap:.5rem}.card-title{font-size:1.2rem;font-weight:700;color:#2b2d42;display:flex;align-items:center;gap:8px}.hero-card-status{background:linear-gradient(135deg,#fffffff2,#ffe6ebe6);border:1.5px solid var(--soft-pink);border-radius:var(--radius-xl);padding:1.5rem;text-align:center;box-shadow:var(--shadow-cute);position:relative;overflow:hidden}.hero-card-status:before{content:"";position:absolute;top:-50px;right:-50px;width:150px;height:150px;background:radial-gradient(circle,rgba(255,117,143,.25) 0%,transparent 70%);border-radius:50%;pointer-events:none}.btn-primary{background:linear-gradient(135deg,#ff758f,#ff4d6d);color:#fff;border:none;padding:11px 22px;border-radius:30px;font-weight:700;font-size:.9rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 6px 18px #ff4d6d59;transition:all .25s ease;min-height:42px}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px #ff4d6d73}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:#fff;color:var(--primary-dark-pink);border:1px solid var(--primary-pink);padding:9px 18px;border-radius:30px;font-weight:700;font-size:.85rem;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:all .25s ease;min-height:38px}.btn-secondary:hover{background:#fff0f3;transform:translateY(-1px)}.badge{padding:5px 12px;border-radius:20px;font-size:.8rem;font-weight:700;display:inline-flex;align-items:center;gap:5px}.badge-period{background:#ffe5ec;color:#ff0054}.badge-ovulation{background:#e2d4f9;color:#7209b7}.badge-safe{background:#d8f3dc;color:#2b9348}.input-group{margin-bottom:1rem}.input-label{display:block;font-size:.85rem;font-weight:700;color:var(--text-dark);margin-bottom:.4rem}.input-control,select.input-control,textarea.input-control{width:100%;padding:10px 14px;border-radius:var(--radius-sm);border:1.5px solid #ffccd5;background:#ffffffe6;font-family:Quicksand,sans-serif;font-size:.9rem;outline:none;transition:border-color .2s ease}.input-control:focus{border-color:var(--primary-dark-pink);box-shadow:0 0 0 3px #ff758f33}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-top:1rem}.calendar-day-head{text-align:center;font-weight:700;font-size:.8rem;color:var(--text-muted);padding:4px}.calendar-day{aspect-ratio:1;border-radius:12px;background:#fff;border:1px solid #ffe5ec;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:clamp(.75rem,2.5vw,.9rem);font-weight:600;position:relative;cursor:pointer;transition:all .2s ease;padding:2px}.calendar-day:hover{transform:scale(1.06);border-color:var(--primary-pink);box-shadow:0 4px 10px #ff758f33}.calendar-day.is-period{background:linear-gradient(135deg,#ff758f,#ff4d6d);color:#fff;font-weight:700;box-shadow:0 4px 10px #ff4d6d4d}.calendar-day.is-predicted{background:#ffe5ec;color:#ff0054;border:1.5px dashed #ff4d6d}.calendar-day.is-ovulation{background:#e2d4f9;color:#7209b7;font-weight:700}.calendar-day.is-today{outline:2.5px solid #2b2d42;outline-offset:-2px}.mobile-bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:#fffffff5;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid var(--soft-pink);padding:6px 4px;z-index:100;box-shadow:0 -5px 20px #00000014;display:flex;align-items:center;justify-content:space-between}.mobile-nav-item{flex:1;min-width:0;border:none;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-family:Quicksand,sans-serif;color:var(--text-muted);cursor:pointer;padding:6px 2px;border-radius:12px;transition:all .2s ease}.mobile-nav-item.active{color:var(--primary-dark-pink);font-weight:700;background:#ff758f1f}.mobile-nav-icon{font-size:1.2rem;line-height:1}.mobile-nav-label{font-size:.7rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-align:center;line-height:1.2}.mobile-nav-item.active .mobile-nav-label{font-weight:700}.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#2b2d4273;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fadeIn .2s ease-out}.modal-content-card{background:#fffffffa;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1.5px solid var(--soft-pink);border-radius:var(--radius-xl);padding:1.5rem;width:100%;max-width:440px;box-shadow:0 20px 40px #ff4d6d4d;animation:popIn .25s cubic-bezier(.175,.885,.32,1.275)}@keyframes popIn{0%{opacity:0;transform:scale(.9) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@media (max-width: 1024px){.app-sidebar{width:220px}.dashboard-grid-main-side{grid-template-columns:1fr}.dashboard-grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width: 899px){.app-layout{flex-direction:column;padding:.65rem;gap:.75rem}.app-sidebar{display:none}.mobile-bottom-nav{display:flex}.app-header{padding:.75rem 1rem;flex-wrap:wrap}.header-welcome{width:100%;justify-content:space-between;margin-bottom:.4rem}.header-right{width:100%;justify-content:space-between}.app-content{padding-bottom:4.5rem}.dashboard-grid-2,.dashboard-grid-3{grid-template-columns:1fr}.dashboard-grid-4{grid-template-columns:repeat(2,1fr)}.card{padding:1.15rem;border-radius:var(--radius-lg)}.btn-primary,.btn-secondary{width:100%}}@media (max-width: 480px){.calendar-grid{gap:3px}.calendar-day{border-radius:8px;font-size:.75rem}.card-title{font-size:1.1rem}.time-pill{font-size:.75rem;padding:4px 8px}.view-pill-btn{padding:4px 10px;font-size:.775rem}}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.25rem;margin-top:1.25rem}@media (max-width: 640px){.gallery-grid{grid-template-columns:1fr;gap:1rem}}.gallery-card{background:#ffffffeb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1.5px solid var(--soft-pink);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-cute);transition:transform .25s ease,box-shadow .25s ease;display:flex;flex-direction:column}.gallery-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px #ff758f40}.gallery-card-media{position:relative;width:100%;height:220px;background:#f8f9fa;overflow:hidden}.gallery-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#ffe5ec,#e2d4f9);display:flex;align-items:center;justify-content:center}.media-tile{width:100%;height:100%;cursor:pointer;position:relative}.media-tile.single img,.media-tile.single video{width:100%;height:100%;object-fit:cover}.media-tile.split-2{display:grid;grid-template-columns:1fr 1fr;gap:2px;height:100%}.media-tile.split-2 img,.media-tile.split-2 video{width:100%;height:100%;object-fit:cover}.media-tile.grid-album{display:grid;grid-template-columns:2fr 1fr;gap:2px;height:100%}.album-main{width:100%;height:100%;overflow:hidden;position:relative}.album-main img,.album-main video{width:100%;height:100%;object-fit:cover}.album-sub-column{display:grid;grid-template-rows:1fr 1fr;gap:2px;height:100%}.tile-item{position:relative;width:100%;height:100%;overflow:hidden}.tile-item img,.tile-item video{width:100%;height:100%;object-fit:cover}.more-media-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000008c;color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:700}.video-thumb-wrapper{position:relative;width:100%;height:100%;background:#1e1e24}.video-thumb-wrapper video{width:100%;height:100%;object-fit:cover}.video-play-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center}.video-play-overlay.mini{background:#00000040}.media-zoom-badge{position:absolute;bottom:8px;right:8px;background:#0000008c;padding:4px;border-radius:6px;display:flex;align-items:center;justify-content:center}.gallery-card-content{padding:1.25rem;display:flex;flex-direction:column;gap:.5rem;flex:1}.gallery-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.gallery-card-title{font-size:1.15rem;font-weight:700;color:#2b2d42;margin:0;line-height:1.3}.btn-icon-danger{background:transparent;border:none;color:#ef4444;cursor:pointer;padding:4px;border-radius:6px;transition:background .2s}.btn-icon-danger:hover{background:#fee2e2}.gallery-card-meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:.825rem;color:var(--text-muted)}.meta-item{display:inline-flex;align-items:center;gap:4px}.meta-stars{letter-spacing:1px}.gallery-card-notes{font-size:.875rem;color:#4b5563;margin-top:.5rem;background:#fff5f7;padding:10px 12px;border-radius:12px;border-left:3px solid #ff758f;line-height:1.4}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:#0f111aeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:1rem;animation:fadeIn .2s ease-out}.lightbox-content{position:relative;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;align-items:center}.lightbox-close{position:absolute;top:-45px;right:0;background:#fff3;color:#fff;border:none;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s}.lightbox-close:hover{background:#fff6}.lightbox-media-wrapper{position:relative;max-width:100%;max-height:70vh;display:flex;align-items:center;justify-content:center;border-radius:16px;overflow:hidden;box-shadow:0 10px 30px #00000080}.lightbox-img{max-width:100%;max-height:70vh;object-fit:contain;border-radius:12px}.lightbox-video{max-width:100%;max-height:70vh;border-radius:12px;outline:none}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:#00000080;color:#fff;border:none;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s}.lightbox-nav.prev{left:12px}.lightbox-nav.next{right:12px}.lightbox-nav:hover{background:#ff4d6dcc}.lightbox-footer{margin-top:1rem;color:#fff;width:100%;display:flex;justify-content:space-between;align-items:flex-end;gap:1rem}.lightbox-info h4{font-size:1.1rem;font-weight:700;margin:0;color:#fff}.lightbox-info p{font-size:.85rem;color:#cbd5e1;margin:2px 0 0}.lightbox-notes{font-style:italic;color:#f472b6!important;margin-top:4px!important}.lightbox-counter{background:#ffffff26;padding:4px 12px;border-radius:20px;font-size:.85rem;font-weight:600;white-space:nowrap}@keyframes fadeIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}
