:root{--bg-beige:#f6f3ed;--card-bg:#fff;--coral-accent:#f0745e;--sandstone-dark:#2d2825;--sandstone-muted:#847a75;--border-sep:#e8ded2}body{background-color:var(--bg-beige);min-height:100vh;color:var(--sandstone-dark);-webkit-font-smoothing:antialiased;margin:0;padding:1rem .75rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.dashboard-container{max-width:480px;padding-bottom:calc(110px + env(safe-area-inset-bottom,0px));margin:0 auto}.dashboard-header{border-bottom:1px solid var(--border-sep);justify-content:space-between;align-items:center;margin-top:.5rem;margin-bottom:1.5rem;padding-bottom:1rem;display:flex}.header-title{letter-spacing:-.02em;color:var(--sandstone-dark);align-items:center;gap:8px;margin:0;font-size:1.4rem;font-weight:800;display:flex}.records-badge{color:var(--coral-accent);background:#fff0ec;border:1px solid #fbd9d1;border-radius:16px;align-items:center;gap:4px;padding:5px 12px;font-size:.75rem;font-weight:700;display:flex}.day-group{margin-bottom:2rem}.day-header{background-color:var(--bg-beige);color:var(--sandstone-dark);border-bottom:1px solid var(--border-sep);z-index:10;margin:0 0 1rem;padding:.5rem .25rem;font-size:1.1rem;font-weight:700;position:sticky;top:0}.memory-feed{flex-direction:column;gap:1.25rem;display:flex}.memory-card{background:var(--card-bg);border:1px solid var(--border-sep);border-radius:18px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 2px 12px #2d28250a}.card-header{border-bottom:1px solid var(--border-sep);background-color:#faf8f5;justify-content:space-between;align-items:center;gap:8px;padding:.65rem 1rem;display:flex}.card-time{color:var(--sandstone-muted);align-items:center;gap:5px;font-size:.8rem;font-weight:600;display:flex}.card-body{flex-direction:column;gap:.85rem;padding:1rem;display:flex}.memory-summary-text{color:var(--sandstone-dark);margin:0;font-size:1.05rem;font-weight:600;line-height:1.4}.media-image-container{aspect-ratio:16/9;background-color:#faf8f5;border-radius:10px;width:100%;overflow:hidden}.media-image{object-fit:cover;width:100%;height:100%;transition:transform .3s cubic-bezier(.25,.46,.45,.94)}.memory-card:hover .media-image{transform:scale(1.06)}.media-unavailable-fallback{color:var(--sandstone-muted);align-items:center;gap:6px;padding:4px 0;font-size:.85rem;font-style:italic;display:flex}.media-audio-container{width:100%;padding:2px 0}.audio-player{width:100%;height:36px}.transcript-container{border-top:1px dashed var(--border-sep);padding-top:.85rem}.section-title{text-transform:uppercase;color:var(--coral-accent);letter-spacing:.06em;margin:0 0 4px;font-size:.7rem;font-weight:700}.transcript-text{color:#534c48;margin:0;font-size:.88rem;font-style:italic;line-height:1.4}.query-result{color:var(--sandstone-dark);box-shadow:none;background:#f9ece6;border:1px solid #f6cfc3;border-radius:24px;flex-direction:column;gap:1rem;margin-bottom:2.25rem;padding:1rem;scroll-margin-top:.75rem;display:flex}.qr-head{justify-content:space-between;align-items:center;display:flex}.qr-title{color:var(--sandstone-dark);align-items:center;gap:6px;margin:0;font-size:1.05rem;font-weight:700;display:flex}.qr-title svg{color:var(--coral-accent)}.qr-clear{font:inherit;color:var(--sandstone-dark);cursor:pointer;background:#2d282512;border:none;border-radius:14px;padding:5px 12px;font-size:.8rem;font-weight:600}.qr-clear:hover{background:#2d282521}.qr-clear:focus-visible{outline:2px solid var(--coral-accent);outline-offset:2px}.qr-asked{box-sizing:border-box;background:#fff;border:1px solid #f6cfc3;border-radius:18px 18px 6px;flex-direction:column;align-self:flex-end;align-items:flex-start;gap:.55rem;width:fit-content;min-width:55%;max-width:92%;padding:.75rem .9rem;display:flex}.qr-label{color:var(--sandstone-muted);font-size:.75rem;font-weight:600}.qr-asked-text{color:var(--sandstone-dark);margin:0;font-size:1rem;font-weight:500;line-height:1.4}.qr-asked-img{object-fit:cover;border-radius:10px;width:84px;height:84px}.qr-reply{border-left:2px solid var(--coral-accent);flex-direction:column;gap:.75rem;padding-left:.75rem;display:flex}.qr-answer-text{color:var(--sandstone-dark);margin:0;font-size:1.02rem;font-weight:500;line-height:1.5}.qr-state{color:#6b605b;align-items:center;gap:10px;font-size:.92rem;line-height:1.4;display:flex}.qr-state svg{flex-shrink:0}.qr-state--error{color:#b3402c}.memory-card--match{box-shadow:none}.match-score{color:var(--coral-accent);background:#fff0ec;border:1px solid #fbd9d1;border-radius:12px;padding:2px 9px;font-size:.72rem;font-weight:700}.query-bar{box-sizing:border-box;max-width:calc(480px + 1.5rem);padding:1.75rem .75rem calc(.75rem + env(safe-area-inset-bottom,0px));background:linear-gradient(to top, var(--bg-beige) 60%, #f6f3ed00);pointer-events:none;z-index:20;margin:0 auto;position:fixed;bottom:0;left:0;right:0}.query-bar>*{pointer-events:auto}.query-row{background:var(--card-bg);border:1px solid var(--border-sep);border-radius:26px;align-items:center;gap:6px;padding:5px;display:flex;box-shadow:0 1px 6px #2d282514}.query-row:focus-within{border-color:var(--coral-accent)}.query-input{min-width:0;font:inherit;color:var(--sandstone-dark);background:0 0;border:none;outline:none;flex:1;padding:8px 4px;font-size:16px}.query-input::placeholder{color:var(--sandstone-muted)}.icon-btn{width:40px;height:40px;color:var(--sandstone-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover:not(:disabled){color:var(--sandstone-dark);background:#faf8f5}.icon-btn:disabled{opacity:.4;cursor:default}.icon-btn:focus-visible,.text-btn:focus-visible,.attachment-remove:focus-visible{outline:2px solid var(--coral-accent);outline-offset:2px}.icon-btn--send{background:var(--coral-accent);color:#fff}.icon-btn--send:hover:not(:disabled){color:#fff;background:#e5634c}.icon-btn--send:disabled{background:var(--border-sep);color:#fff;opacity:1}.query-attachments{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.attachment{position:relative}.attachment--image img{object-fit:cover;border:1px solid var(--border-sep);border-radius:10px;width:56px;height:56px;display:block}.attachment-remove{background:var(--sandstone-dark);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;padding:0;display:flex;position:absolute;top:-6px;right:-6px}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spin{animation:none}.media-image{transition:none}}.feed-state{text-align:center;color:var(--sandstone-muted);padding:3rem 0}.feed-state p{margin:0 0 4px;font-weight:600}.feed-state--loading{color:var(--coral-accent);padding-top:4rem}.feed-state--loading svg{margin:0 auto 12px;display:block}.feed-state--empty{font-style:italic}.pulse{animation:1.4s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.pulse{animation:none}}.login-screen{justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.login-card,.login-form{flex-direction:column;gap:10px;width:100%;max-width:360px;display:flex}.login-brand{text-align:center;flex-direction:column;align-items:center;gap:6px;margin-bottom:18px;display:flex}.login-title{margin:0;font-size:1.6rem}.login-subtitle{opacity:.7;margin:0;font-size:.95rem;line-height:1.4}.login-notice{background:#f0745e1a;border-radius:8px;margin:0;padding:10px 12px;font-size:.875rem}.login-label{font-size:.85rem;font-weight:600}.login-input{color:inherit;font:inherit;letter-spacing:.1em;background:0 0;border:1px solid #80808059;border-radius:10px;padding:12px;font-size:1rem}.login-input:focus{border-color:#f0745e;outline:none;box-shadow:0 0 0 3px #f0745e33}.login-submit{color:#fff;font:inherit;cursor:pointer;background:#f0745e;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:12px;font-weight:600;display:flex}.login-submit:disabled{opacity:.5;cursor:not-allowed}.login-submit:focus-visible{outline-offset:2px;outline:2px solid #f0745e}.login-error{color:#d64545;align-items:flex-start;gap:6px;margin:0;font-size:.85rem;line-height:1.4;display:flex}.login-error svg{flex-shrink:0;margin-top:2px}.login-link{color:inherit;font:inherit;opacity:.75;text-underline-offset:3px;cursor:pointer;background:0 0;border:none;align-self:center;padding:6px 8px;font-size:.875rem;text-decoration:underline}.login-link:hover,.login-link:focus-visible{opacity:1}.header-actions{align-items:center;gap:8px;display:flex}.lock-btn{color:inherit;font:inherit;cursor:pointer;background:0 0;border:1px solid #80808059;border-radius:999px;align-items:center;gap:5px;padding:5px 10px;font-size:.8rem;display:flex}.lock-btn:hover,.lock-btn:focus-visible{border-color:#f0745e}
