:root{font-family:Outfit,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;--bg-color: #0b0c10;--bg-grid: rgba(255, 255, 255, .02);--card-bg: rgba(31, 33, 40, .6);--card-border: rgba(255, 255, 255, .08);--card-hover-border: rgba(255, 255, 255, .2);--text-primary: #f5f6f8;--text-secondary: #9aa0a6;--text-muted: #5f6368;--color-primary: #9d4edd;--color-primary-glow: rgba(157, 78, 221, .35);--color-happy: #ff9e00;--color-neutral: #a2d2ff;--color-sad: #7209b7;--color-angry: #f72585;--color-anxious: #4cc9f0;--color-tired: #9ca3af;--transition-smooth: all .3s cubic-bezier(.25, .8, .25, 1)}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);background-image:radial-gradient(at 0% 0%,rgba(157,78,221,.1) 0px,transparent 50%),radial-gradient(at 100% 100%,rgba(76,201,240,.08) 0px,transparent 50%),linear-gradient(var(--bg-grid) 1px,transparent 1px),linear-gradient(90deg,var(--bg-grid) 1px,transparent 1px);background-size:100% 100%,100% 100%,40px 40px,40px 40px;color:var(--text-primary);min-height:100vh;overflow-x:hidden;padding:2rem 1rem}.container{max-width:1200px;margin:0 auto}.app-header{text-align:center;margin-bottom:3rem;animation:fadeInDown .8s ease}.app-title{font-size:3rem;font-weight:800;background:linear-gradient(135deg,#f5f6f8 30%,#9d4edd);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:.5rem;letter-spacing:-1px}.app-subtitle{color:var(--text-secondary);font-size:1.1rem;font-weight:300}.main-grid{display:grid;grid-template-columns:1fr;gap:2rem}@media (min-width: 900px){.main-grid{grid-template-columns:1.2fr 1.8fr}}.glass-card{background:var(--card-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--card-border);border-radius:24px;padding:2.2rem;box-shadow:0 8px 32px #0000004d;transition:var(--transition-smooth);position:relative;overflow:hidden}.glass-card:before{content:"";position:absolute;top:0;left:-100%;width:50%;height:100%;background:linear-gradient(to right,#fff0,#ffffff08);transform:skew(-25deg);transition:.75s}.glass-card:hover:before{left:125%}.glass-card:hover{border-color:var(--card-hover-border);box-shadow:0 12px 40px #9d4edd14}.card-title{font-size:1.5rem;font-weight:600;margin-bottom:1.5rem;display:flex;align-items:center;gap:.75rem;color:var(--text-primary)}.form-group{margin-bottom:1.5rem}.form-label{display:block;font-size:.95rem;color:var(--text-secondary);margin-bottom:.5rem;font-weight:500}.mood-selector{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1.5rem}.mood-btn{background:#ffffff08;border:1px solid var(--card-border);border-radius:16px;padding:1rem .5rem;cursor:pointer;transition:var(--transition-smooth);display:flex;flex-direction:column;align-items:center;gap:.5rem}.mood-emoji{font-size:1.8rem;transition:var(--transition-smooth)}.mood-name{font-size:.75rem;color:var(--text-secondary);font-weight:500}.mood-btn:hover{transform:translateY(-4px);background:#ffffff14}.mood-btn:hover .mood-emoji{transform:scale(1.2)}.mood-btn.active-HAPPY{border-color:var(--color-happy);box-shadow:0 0 15px #ff9e0033;background:#ff9e001a}.mood-btn.active-HAPPY .mood-name{color:var(--color-happy)}.mood-btn.active-NEUTRAL{border-color:var(--color-neutral);box-shadow:0 0 15px #a2d2ff33;background:#a2d2ff1a}.mood-btn.active-NEUTRAL .mood-name{color:var(--color-neutral)}.mood-btn.active-SAD{border-color:var(--color-sad);box-shadow:0 0 15px #7209b733;background:#7209b71a}.mood-btn.active-SAD .mood-name{color:var(--color-sad)}.mood-btn.active-ANGRY{border-color:var(--color-angry);box-shadow:0 0 15px #f7258533;background:#f725851a}.mood-btn.active-ANGRY .mood-name{color:var(--color-angry)}.mood-btn.active-ANXIOUS{border-color:var(--color-anxious);box-shadow:0 0 15px #4cc9f033;background:#4cc9f01a}.mood-btn.active-ANXIOUS .mood-name{color:var(--color-anxious)}.mood-btn.active-TIRED{border-color:var(--color-tired);box-shadow:0 0 15px #9ca3af33;background:#9ca3af1a}.mood-btn.active-TIRED .mood-name{color:var(--color-tired)}.input-control{width:100%;background:#ffffff08;border:1px solid var(--card-border);border-radius:12px;padding:.9rem 1.1rem;color:var(--text-primary);font-family:inherit;font-size:.95rem;transition:var(--transition-smooth)}.input-control:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-glow);background:#ffffff0d}textarea.input-control{resize:vertical;min-height:100px}.btn-submit{background:linear-gradient(135deg,var(--color-primary) 0%,#7209b7 100%);color:#fff;border:none;border-radius:12px;padding:1rem;width:100%;font-size:1rem;font-weight:600;cursor:pointer;box-shadow:0 4px 15px #9d4edd4d;transition:var(--transition-smooth);display:flex;justify-content:center;align-items:center;gap:.5rem}.btn-submit:hover{transform:translateY(-2px);box-shadow:0 6px 20px #9d4edd80;filter:brightness(1.1)}.btn-submit:active{transform:translateY(0)}.nav-bar{display:inline-flex;align-items:center;gap:.5rem;background:#ffffff0a;border:1px solid var(--card-border);border-radius:40px;padding:.35rem;margin-top:1.5rem}.nav-btn{display:flex;align-items:center;gap:.45rem;background:transparent;border:none;border-radius:32px;padding:.55rem 1.2rem;font-size:.92rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:var(--transition-smooth);font-family:inherit;position:relative}.nav-btn:hover{color:var(--text-primary);background:#ffffff0f}.nav-btn.active{background:linear-gradient(135deg,var(--color-primary) 0%,#7209b7 100%);color:#fff;box-shadow:0 2px 12px #9d4edd66}.nav-badge{background:#ffffff40;border-radius:10px;padding:.1rem .5rem;font-size:.72rem;font-weight:700;margin-left:.1rem}.calendar-nav{display:flex;align-items:center;gap:.5rem}.cal-nav-btn{background:#ffffff0d;border:1px solid var(--card-border);border-radius:8px;color:var(--text-secondary);cursor:pointer;padding:.25rem .4rem;display:flex;align-items:center;transition:var(--transition-smooth)}.cal-nav-btn:hover{background:#ffffff1a;color:var(--text-primary)}.cal-nav-label{font-size:.85rem;font-weight:500;color:var(--text-secondary);min-width:120px;text-align:center}.diary-page{animation:fadeInUp .4s ease}.diary-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.diary-page-title{display:flex;align-items:center;gap:.6rem;font-size:1.8rem;font-weight:700;background:linear-gradient(135deg,#f5f6f8 30%,#9d4edd);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.diary-page-subtitle{font-size:.9rem;color:var(--text-muted);margin-top:.25rem;margin-left:2.1rem}.diary-entry-count{font-size:.85rem;color:var(--text-secondary);background:#ffffff0d;border:1px solid var(--card-border);border-radius:20px;padding:.4rem 1rem}.filter-bar{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem}.mood-filter-btn{background:#ffffff0a;border:1px solid var(--card-border);border-radius:20px;padding:.4rem 1rem;font-size:.85rem;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:var(--transition-smooth);font-family:inherit}.mood-filter-btn:hover{background:#ffffff14;color:var(--text-primary)}.mood-filter-btn.active-filter{border-color:var(--color-primary);color:var(--color-primary);background:#9d4edd1f}.month-group{margin-bottom:3rem}.month-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.2rem;padding-bottom:.75rem;border-bottom:1px solid var(--card-border)}.month-header-label{font-size:1.1rem;font-weight:700;color:var(--text-primary);text-transform:capitalize}.month-header-count{font-size:.8rem;color:var(--text-muted);background:#ffffff0a;border:1px solid var(--card-border);border-radius:12px;padding:.2rem .7rem}.diary-grid{display:grid;grid-template-columns:1fr;gap:1.2rem}@media (min-width: 700px){.diary-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width: 1100px){.diary-grid{grid-template-columns:repeat(3,1fr)}}.diary-card{background:var(--card-bg);border:1px solid var(--card-border);border-top:3px solid var(--mood-color, var(--color-primary));border-radius:18px;padding:1.4rem 1.4rem 1.2rem;position:relative;transition:var(--transition-smooth);animation:fadeInUp .4s ease;overflow:hidden;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.diary-card:before{content:"";position:absolute;top:0;left:0;right:0;height:60px;background:linear-gradient(to bottom,color-mix(in srgb,var(--mood-color, var(--color-primary)) 8%,transparent),transparent);pointer-events:none}.diary-card:hover{transform:translateY(-3px);border-color:var(--mood-color, var(--color-primary));box-shadow:0 8px 24px #0000004d,0 0 0 1px color-mix(in srgb,var(--mood-color, var(--color-primary)) 30%,transparent)}.diary-card-flame{position:absolute;top:.85rem;right:.9rem;font-size:1rem;filter:drop-shadow(0 0 4px rgba(255,100,0,.5))}.diary-card-header{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.diary-card-mood-badge{display:flex;align-items:center;gap:.75rem}.diary-card-emoji{font-size:2rem;line-height:1}.diary-card-mood-label{font-size:1rem;font-weight:700}.diary-card-score{font-size:.75rem;letter-spacing:1px;opacity:.7;margin-top:.1rem}.diary-card-date{font-size:.78rem;color:var(--text-muted);font-weight:500;text-transform:capitalize}.diary-card-body{font-size:.9rem;color:var(--text-secondary);line-height:1.6;min-height:40px}.diary-card-notes{font-style:italic;color:var(--text-primary);margin-top:.5rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.diary-card-empty{color:var(--text-muted);font-style:italic;font-size:.85rem}.reason-tag{display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;padding:.25rem .6rem;border-radius:8px;margin-right:.5rem;margin-bottom:.5rem;font-weight:500}.reason-sad{background:#7209b726;color:#c77dff;border:1px solid rgba(114,9,183,.3)}.reason-angry{background:#f7258526;color:#ff758f;border:1px solid rgba(247,37,133,.3)}.btn-delete-log{position:absolute;bottom:1rem;right:1rem;background:transparent;border:none;color:var(--text-muted);cursor:pointer;opacity:0;transition:var(--transition-smooth);padding:.3rem;border-radius:6px}.diary-card:hover .btn-delete-log{opacity:1}.btn-delete-log:hover{color:var(--color-angry);background:#f725851a}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.loading-spinner{border:3px solid rgba(255,255,255,.1);width:40px;height:40px;border-radius:50%;border-left-color:var(--color-primary);animation:spin 1s linear infinite;margin:2rem auto}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.no-logs{text-align:center;color:var(--text-muted);padding:3rem 1rem}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem;margin-top:1rem}.calendar-day-header{text-align:center;font-size:.8rem;font-weight:600;color:var(--text-secondary);padding-bottom:.5rem;border-bottom:1px solid var(--card-border);margin-bottom:.5rem}.calendar-day{aspect-ratio:1;display:flex;flex-direction:column;justify-content:center;align-items:center;border-radius:12px;background:#ffffff05;border:1px solid var(--card-border);cursor:pointer;transition:var(--transition-smooth);position:relative}.calendar-day.empty{background:transparent;border:none;cursor:default}.calendar-day:not(.empty):hover{background:#ffffff0f;transform:translateY(-2px)}.calendar-day.selected{border-color:var(--color-primary);box-shadow:0 0 10px var(--color-primary-glow);background:#9d4edd26}.calendar-day.has-entry .day-number{font-weight:800;color:var(--text-primary)}.day-number{font-size:1rem;font-weight:500;color:var(--text-secondary)}.intimacy-indicator{position:absolute;bottom:4px;right:4px;font-size:.8rem;animation:scaleIn .3s ease}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}.intimacy-btn{background:transparent;border:1px solid var(--card-border);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.2rem;filter:grayscale(100%) opacity(.5);transition:var(--transition-smooth)}.intimacy-btn:hover{filter:grayscale(50%) opacity(.8);background:#ffffff0d}.intimacy-btn.active{filter:grayscale(0%) opacity(1);background:#ff00001a;border-color:#ff00004d;box-shadow:0 0 10px #f003;animation:heartbeat 1.5s infinite}@keyframes heartbeat{0%{transform:scale(1)}14%{transform:scale(1.1)}28%{transform:scale(1)}42%{transform:scale(1.1)}70%{transform:scale(1)}}
