:root{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(circle at 20% 20%,rgba(94,40,81,.35),transparent 40%),radial-gradient(circle at 80% 10%,rgba(168,70,130,.22),transparent 36%),#09070c;color:#f6e8f2}.page{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.panel{width:min(900px,100%);background:linear-gradient(145deg,#0e0a12f0,#1c1324f0);border:1px solid rgba(255,173,205,.25);border-radius:20px;box-shadow:0 20px 50px #00000073;color:#f6e8f2}.login-panel{max-width:460px;padding:2rem}.home-panel{padding:1.5rem}.heart-title{letter-spacing:.08em;text-transform:uppercase;color:#ffb3d1;margin-bottom:.35rem;font-size:.8rem}h1{margin:0;font-size:clamp(2rem,4vw,2.6rem)}h2{margin-top:0}.subtitle{color:#dab6cb;margin:.6rem 0 1.2rem}.form{display:grid;gap:.7rem}label{font-size:.9rem;text-align:left}input{width:100%;border-radius:10px;border:1px solid rgba(255,182,216,.36);background:#0a070eb3;color:#ffe8f5;padding:.72rem .85rem}input::placeholder{color:#c9a6ba}select{width:100%;border-radius:10px;border:1px solid rgba(255,182,216,.36);background:#0a070eb3;color:#ffe8f5;padding:.72rem .85rem}button{border:1px solid rgba(255,185,220,.45);background:linear-gradient(180deg,#411d36,#2d1528);color:#ffe8f5;border-radius:10px;padding:.7rem 1rem;font-weight:600}button:hover{border-color:#ffc7e2}button:disabled{opacity:.7;cursor:wait}.ghost-button{background:transparent}.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.1rem}.topbar-left{display:flex;align-items:center;gap:.75rem}.nav-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin-bottom:1rem}.icon-nav-button{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:.55rem;font-size:1.05rem}.home-float-button{border-radius:999px}.music-section,.content-section{border:1px solid rgba(255,173,205,.2);border-radius:14px;padding:1rem;background:#08060b73}.active-tab{border-color:#ffd2e6;background:linear-gradient(180deg,#5f2e4f,#351a2f)}.row-form{grid-template-columns:1fr 180px 120px;align-items:center}textarea{width:100%;border-radius:10px;border:1px solid rgba(255,182,216,.36);background:#0a070eb3;color:#ffe8f5;padding:.72rem .85rem;resize:vertical}.daily-message-box{display:grid;gap:.7rem}.daily-message-row{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:.6rem;align-items:center}.today-message{margin-top:1rem;border:1px dashed rgba(255,173,205,.35);border-radius:12px;padding:.85rem;background:#140d1b73}.today-message p{margin:.2rem 0}.message-history{margin-top:1rem;border:1px dashed rgba(255,173,205,.35);border-radius:12px;padding:.85rem;background:#140d1b73}.message-history h3{margin:0 0 .6rem}.message-list{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}.message-item{border:1px solid rgba(255,173,205,.2);border-radius:10px;padding:.6rem;background:#0e0a12a6}.message-meta{margin:0;color:#d6b6c9;font-size:.85rem}.message-body{margin:.4rem 0 0;white-space:pre-wrap}.history-toggle{margin-top:1rem}.message-edit-wrap{margin-top:.4rem}.message-edit-actions{display:flex;gap:.5rem;margin-top:.5rem}.memory-form{grid-template-columns:1fr 220px 140px;align-items:center}.memory-picker-row{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.memory-pick-button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem}.memory-file-note{grid-column:1 / -1;margin:0;color:#d6b6c9;font-size:.9rem}.memory-hidden-file{display:none}.memory-upload-preview{grid-column:1 / -1;border:1px solid rgba(255,173,205,.25);border-radius:12px;overflow:hidden;max-width:240px}.memory-upload-preview img{width:100%;display:block;aspect-ratio:1 / 1;object-fit:cover}.memory-grid{margin-top:1rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.7rem}.memory-template{min-height:180px;border:1px dashed rgba(255,173,205,.35);border-radius:12px;display:grid;place-items:center;color:#d6b6c9;background:#140d1b4d}.memory-card{padding:0;border:1px solid rgba(255,173,205,.25);border-radius:12px;overflow:hidden;text-align:left;background:#140d1bcc}.memory-card img{width:100%;aspect-ratio:1 / 1;object-fit:cover;display:block}.memory-card span{display:block;padding:.55rem .65rem;font-size:.9rem;color:#f0d7e7}.fullscreen-overlay{position:fixed;inset:0;background:#050407d9;display:grid;place-items:center;padding:1rem;z-index:20}.fullscreen-content{max-width:min(920px,100%);max-height:min(90vh,100%);border:1px solid rgba(255,173,205,.35);border-radius:16px;background:#0e0a12fa;padding:.8rem}.fullscreen-content img{width:100%;max-height:72vh;object-fit:contain;border-radius:10px}.fullscreen-content p{margin:.65rem 0}.fullscreen-caption-edit{margin-top:.7rem}.fullscreen-actions{display:flex;gap:.55rem;margin-top:.6rem}.link-list{list-style:none;padding:0;margin:1rem 0 0;display:grid;gap:.7rem}.link-item{border:1px solid rgba(255,173,205,.15);border-radius:12px;padding:.8rem;background:#140d1bcc}.song-item{display:flex;justify-content:space-between;align-items:flex-start;gap:.8rem}.song-main{display:flex;gap:.75rem;align-items:flex-start}.song-art{width:78px;height:78px;border-radius:10px;object-fit:cover;border:1px solid rgba(255,173,205,.2)}.song-art-placeholder{display:grid;place-items:center;color:#ffd0e6;background:#0e0a12a6}.song-details h3{margin:0;font-size:1rem}.song-details p{margin:.25rem 0}.song-open-link{display:inline-flex;align-items:center;gap:.4rem;margin-top:.3rem;color:#ffd0e6}.link-item a{color:#ffd0e6;word-break:break-all}.link-item p{margin:.45rem 0 .55rem;color:#c7a3b9;font-size:.9rem}.mini-button{padding:.35rem .65rem;font-size:.85rem}.error-text{color:#ff9dc8;font-size:.9rem;margin:0}.empty-state{color:#d6b6c9;border:1px dashed rgba(255,173,205,.35);border-radius:12px;padding:.85rem}@media(max-width:760px){.row-form,.nav-buttons,.memory-form,.daily-message-row,.memory-picker-row{grid-template-columns:1fr}.song-item,.song-main{flex-direction:column}}
