@font-face{font-family:Fraunces;src:url(/app/assets/fonts/fraunces-normal-latin.woff2) format("woff2");font-style:normal;font-weight:300 900;font-display:swap}@font-face{font-family:Fraunces;src:url(/app/assets/fonts/fraunces-italic-latin.woff2) format("woff2");font-style:italic;font-weight:300 900;font-display:swap}@font-face{font-family:DM Sans;src:url(/app/assets/fonts/dm-sans-normal-latin.woff2) format("woff2");font-style:normal;font-weight:100 1000;font-display:swap}:root{--forest: #263e2b;--ink: #2e4a2f;--pink: #efb9c5;--blush: #f9e2e7;--rose: #a45268;--rose-dark: #8a3f54;--cream: #fff9f5;--paper: #fffdfa;--line: #e6dcd4;--muted: #5b6b5c;--focus: #a45268;--radius: 14px;--shadow: 0 1px 2px rgba(38, 62, 43, .06), 0 6px 20px rgba(38, 62, 43, .06);--serif: "Fraunces", Georgia, "Times New Roman", serif;--sans: "DM Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:18px;line-height:1.55;overflow-wrap:anywhere}h1,h2,h3{font-family:var(--serif);font-weight:500;color:var(--forest);line-height:1.2;margin:0 0 .5em}h1{font-size:clamp(1.75rem,5vw,2.5rem)}h2{font-size:1.35rem;margin-top:1.2em}p{margin:0 0 .8em}a{color:var(--rose-dark);text-underline-offset:3px}:focus-visible{outline:3px solid var(--focus);outline-offset:3px;border-radius:4px}h1:focus{outline:none}img,video{max-width:100%}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}#root{min-height:100vh}.page{max-width:760px;margin:0 auto;padding:24px 16px 64px}.page.narrow{max-width:560px}.page-header{margin-bottom:20px}.lede{color:var(--muted);font-size:1.05rem}.center{text-align:center;margin:24px 0}.nowrap{white-space:nowrap}.muted{color:var(--muted)}.skip{position:absolute;left:-9999px;top:8px;background:var(--forest);color:#fff;padding:8px 14px;border-radius:8px;z-index:20}.skip:focus{left:8px}.topbar{background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.topbar-inner{max-width:960px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.wordmark{font-family:var(--serif);font-size:1.6rem;font-weight:600;color:var(--forest);text-decoration:none;letter-spacing:-.01em}.liine-id{display:flex;flex-direction:column;line-height:1.2;min-width:0;flex:1}.child-name{font-weight:600}.liine-id select{font-weight:600;padding:4px 8px;min-height:36px;max-width:180px}.liine-number{font-size:.85rem;color:var(--muted)}.topbar-actions{display:flex;gap:4px 14px;flex-wrap:wrap;justify-content:flex-end}.tabs{max-width:960px;margin:0 auto;padding:0 8px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.tab{text-align:center;padding:12px 2px 10px;font-size:.95rem;font-weight:500;color:var(--ink);text-decoration:none;border-bottom:3px solid transparent;min-height:44px}.tab:hover{background:var(--blush)}.tab.active{border-bottom-color:var(--rose);color:var(--forest);font-weight:700}@media(min-width:640px){.tabs{display:flex;gap:6px;padding:0 16px}.tab{padding:12px 16px 10px;font-size:1rem}}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 22px;border-radius:999px;border:2px solid var(--forest);background:var(--forest);color:#fff;font:inherit;font-weight:600;text-decoration:none;cursor:pointer}.button:hover{background:var(--ink)}.button.secondary{background:transparent;color:var(--forest)}.button.secondary:hover{background:var(--blush)}.button.danger{background:var(--rose-dark);border-color:var(--rose-dark);color:#fff}.button.danger:hover{background:#74344a}.button.small{min-height:44px;padding:6px 16px;font-size:.95rem}.button.wide{width:100%}.button:disabled{opacity:.6;cursor:progress}.link-button{background:none;border:0;padding:8px 2px;min-height:44px;font:inherit;font-size:.95rem;color:var(--rose-dark);text-decoration:underline;text-underline-offset:3px;cursor:pointer;display:inline-flex;align-items:center}.actions,.row-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.actions{margin-top:20px}fieldset{border:0;padding:0;margin:0 0 20px;min-width:0}legend{font-family:var(--serif);font-size:1.3rem;color:var(--forest);margin-bottom:8px;padding:0}.field{margin-bottom:16px}.field label{display:block;font-weight:600;margin-bottom:4px}.hint{color:var(--muted);font-size:.95rem;margin:0 0 6px}input[type=text],input[type=tel],input[type=date],input:not([type]),select,textarea{width:100%;min-height:48px;padding:10px 14px;border:1.5px solid #8a978b;border-radius:10px;background:#fff;color:var(--ink);font:inherit}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--forest)}.inline-input{display:flex;gap:10px}.inline-input input{max-width:120px}.error{color:#8f2a3f;background:var(--blush);border-left:4px solid var(--rose);padding:10px 14px;border-radius:8px;font-weight:500}.notice{background:#eaf1ea;border-left:4px solid var(--forest);padding:10px 14px;border-radius:8px}.loading{color:var(--muted);padding:24px 16px;text-align:center}.auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:linear-gradient(180deg,var(--blush) 0%,var(--cream) 60%)}.auth-card{width:100%;max-width:420px;background:var(--paper);border-radius:22px;padding:28px 22px;box-shadow:var(--shadow)}.auth .wordmark{margin:0 0 12px}.auth .row-actions{justify-content:space-between;margin-top:8px}.number-options{display:grid;gap:8px;margin-top:8px}.number-option{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;min-height:52px}.number-option:hover{border-color:var(--pink)}.number-option.selected{border-color:var(--forest);background:#eef3ee}.number-option:focus-within{outline:3px solid var(--focus);outline-offset:2px}.number-option input{width:20px;height:20px;accent-color:var(--forest);margin:0}.number-option .num{font-weight:700;font-variant-numeric:tabular-nums}.number-option .place{color:var(--muted);font-size:.95rem}.big-number{font-family:var(--serif);font-size:clamp(1.8rem,8vw,2.6rem);color:var(--rose-dark);margin:4px 0 16px;font-variant-numeric:tabular-nums}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:20px 18px;margin:20px 0;box-shadow:var(--shadow)}.card h2{margin-top:0}.card.attention{background:var(--blush);border-color:var(--pink)}.rows{list-style:none;padding:0;margin:0;display:grid;gap:10px}.row{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between}.row-main{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 220px}.row.removed{background:transparent}.approve-form{flex:1 1 100%}.empty{background:var(--paper);border:1.5px dashed var(--pink);border-radius:var(--radius);padding:24px 20px;text-align:center}.empty h2{margin-top:0}.badge{display:inline-block;font-size:.8rem;font-weight:700;padding:2px 10px;border-radius:999px;background:#eef3ee;color:var(--forest);width:fit-content}.badge.status-sealed{background:var(--blush);color:#7a2f45}.badge.status-deleted{background:#eee9e4;color:#4f4a45}.badge.flagged{background:#7a2f45;color:#fff}.envelope-top{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.filters{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:14px 14px 0;margin-bottom:20px}.filters .field:first-child{grid-column:1 / -1}.filters .field label{font-size:.9rem}.filters .clear{grid-column:1 / -1;justify-self:start;margin-bottom:8px}@media(max-width:420px){.filters{grid-template-columns:1fr}}@media(min-width:640px){.filters{grid-template-columns:2fr 1fr 1fr}.filters .field:first-child{grid-column:auto}}.memory-list{display:grid;gap:22px}.memory{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:16px;box-shadow:var(--shadow)}.memory-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 12px;margin-bottom:12px;font-size:.95rem}.memory-head .meta{color:var(--muted)}.age{color:var(--rose-dark);font-weight:600}.who .rel{color:var(--muted)}.conversation{list-style:none;padding:0;margin:0;display:grid;gap:10px}.msg{background:var(--cream);border-radius:14px;padding:10px 14px;max-width:100%}.msg.anchor{background:var(--blush)}.msg-head{display:flex;gap:4px 10px;flex-wrap:wrap;justify-content:space-between;font-size:.9rem}.msg-head time{color:var(--muted)}.msg-body{margin:4px 0 0;white-space:pre-wrap}.media-grid{display:grid;gap:8px;margin-bottom:8px}.memory-media{display:block;width:100%;border-radius:10px;background:#efe7e0}img.memory-media,video.memory-media{max-height:70vh;object-fit:contain}.memory-media.audio{background:transparent;min-height:44px}.memory.quote{background:var(--blush);border-color:var(--pink)}.quote-body{margin:0 0 12px;padding:0 0 0 16px;border-left:4px solid var(--rose)}.quote-body p{font-family:var(--serif);font-style:italic;font-size:1.35rem;line-height:1.4;color:var(--forest);margin:0;white-space:pre-wrap}.memory.quote .msg{background:var(--paper)}.meter{margin-bottom:16px}.meter label{font-weight:600;display:block}.meter p{margin:4px 0 0}progress{-webkit-appearance:none;appearance:none;width:100%;height:14px;border:0;border-radius:999px;background:var(--blush);overflow:hidden}progress::-webkit-progress-bar{background:var(--blush);border-radius:999px}progress::-webkit-progress-value{background:var(--forest);border-radius:999px}progress::-moz-progress-bar{background:var(--forest);border-radius:999px}.dialog{border:0;border-radius:18px;padding:24px 20px;width:min(440px,calc(100vw - 32px));background:var(--paper);color:var(--ink);box-shadow:0 20px 60px #263e2b40}.dialog::backdrop{background:#263e2b73}.dialog h2{margin-top:0}.filters .field,.field{min-width:0}input,select,textarea{min-width:0;max-width:100%}
