:root{--bg: #f7f6f2;--surface: #ffffff;--text: #1f2a2e;--muted: #5b6b70;--line: #e2e0d8;--good: #2f6b4f;--bad: #9a3b2e;--accent: #3d6b7a;font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:var(--text);background:var(--bg)}@media(prefers-color-scheme:dark){:root{--bg: #161a1c;--surface: #1f2427;--text: #e8ebe9;--muted: #9aa7aa;--line: #30383b;--good: #7cc5a0;--bad: #e59a8d;--accent: #8fb9c6}}body{margin:0}.page{max-width:720px;margin:0 auto;padding:32px 16px 64px}h1{margin:0;font-size:1.75rem}.muted{color:var(--muted);margin:4px 0 24px}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 20px;margin-bottom:16px}.card h2{margin:0 0 12px;font-size:1.1rem}.checks{list-style:none;padding:0;margin:0;line-height:1.9}.good{color:var(--good);font-weight:600}.bad{color:var(--bad);font-weight:600}.tag{margin-left:8px;font-size:.75rem;padding:2px 8px;border-radius:999px;border:1px solid var(--accent);color:var(--accent)}.story-list{list-style:none;padding:0;display:grid;gap:12px}.story-link{width:100%;display:flex;justify-content:space-between;align-items:center;padding:16px 20px;font:inherit;font-size:1.1rem;font-weight:600;text-align:left;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:12px;cursor:pointer}.story-link .muted{margin:0;font-weight:400;font-size:.95rem}.page.wide{max-width:1000px}button{font:inherit;padding:8px 14px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.small{padding:4px 10px;font-size:.9rem}button.icon{padding:4px 9px}button.link{border:none;background:none;padding:0;color:var(--accent)}button.danger{color:var(--bad);border-color:var(--bad)}input,textarea,select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:6px 8px}.editor-head{display:grid;gap:8px;margin-bottom:16px}.editor-head .muted{margin:0}.title-input{font-size:1.5rem;font-weight:700;padding:6px 10px}.toolbar{position:sticky;top:0;z-index:5;display:flex;gap:8px;align-items:center;justify-content:flex-end;padding:10px 0;background:var(--bg);border-bottom:1px solid var(--line);margin-bottom:16px}.status{margin-right:auto;color:var(--muted)}.status.unsaved{color:var(--text);font-weight:600}.note{padding:10px 14px;border-radius:10px;border:1px solid var(--line);background:var(--surface)}.note ul{margin:6px 0 0;padding-left:20px}.warn{color:#8a5a00;margin:6px 0}@media(prefers-color-scheme:dark){.warn{color:#e2b25c}}.checker p{margin:4px 0}.page-card{margin-bottom:16px}.page-head{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.spacer{flex:1}.page-body{display:grid;grid-template-columns:260px 1fr;gap:16px}@media(max-width:720px){.page-body{grid-template-columns:1fr}}.thumb img,.no-picture{width:100%;aspect-ratio:3 / 2;object-fit:cover;border-radius:10px;display:block}.no-picture{display:grid;place-items:center;background:var(--bg);color:var(--muted);border:1px dashed var(--line)}.stale{margin-top:8px;display:grid;gap:6px;font-size:.9rem;color:#8a5a00}@media(prefers-color-scheme:dark){.stale{color:#e2b25c}}.page-words{display:grid;gap:10px;align-content:start}.sentences{list-style:none;margin:0;padding:0;display:grid;gap:6px;min-height:40px}.sentence{display:grid;grid-template-columns:auto 1fr auto auto;gap:6px;align-items:start;background:var(--surface)}.sentence.dragging{opacity:.6}.sentence textarea{resize:vertical;min-height:38px;field-sizing:content}.handle{cursor:grab;touch-action:none;padding:6px 8px}.drop-here{padding:10px;border:1px dashed var(--line);border-radius:8px;color:var(--muted)}.brief{display:grid;gap:4px;font-size:.9rem;color:var(--muted)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{padding:4px 10px;border-radius:999px;font-size:.85rem}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.page-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.note-input{flex:1;min-width:200px}.handle{user-select:none;-webkit-user-select:none}body.dragging-sentence{user-select:none;-webkit-user-select:none;cursor:grabbing}.title-label{font-size:.85rem;color:var(--muted)}.toolbar{flex-wrap:wrap}.rewrite-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px;padding:10px;border:1px solid var(--accent);border-radius:10px}.small-note{flex-basis:100%;margin:0;font-size:.85rem}.note p{margin:0 0 8px}.editor-head .link{justify-self:start}.muted-line{color:var(--muted);font-size:.9rem}.form{display:grid;gap:14px;margin-bottom:16px}.form h2{margin:0;font-size:1.2rem}.form label{display:grid;gap:4px}.form label>span{font-size:.9rem;color:var(--muted)}.form label.short input{max-width:120px}.form fieldset{border:1px solid var(--line);border-radius:10px;padding:10px 14px;display:grid;gap:6px}.form legend{padding:0 6px;font-weight:600}.form label.choice{display:flex;gap:8px;align-items:baseline}.form label.choice>span{color:var(--text);font-size:1rem}.form small{color:var(--muted)}.form .row{display:flex;gap:8px;align-items:center}.form .row input,.form .way{flex:1}.hint{margin:0;padding:10px 12px;border-radius:10px;background:var(--bg);border:1px dashed var(--line)}.toolbar.bottom{position:static;border:none}.story-link.add{font-weight:400;color:var(--accent)}h2{margin:28px 0 10px}.interview{display:grid;gap:16px}.interview-top{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.toggle{display:flex;gap:6px;align-items:center;font-size:.9rem;color:var(--muted)}.question-card{display:grid;gap:16px;padding:24px}.question{margin:0;font-size:clamp(1.3rem,3vw,1.7rem);line-height:1.35;font-weight:600}.hear{margin-left:8px;vertical-align:middle}.answer{font-size:1.15rem;padding:12px;resize:vertical}.answer-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.answer-actions .mic-button{min-width:180px;padding:12px 18px;font-size:1.1rem}.got-it{margin:0}.question-card.done .big{justify-self:start;padding:12px 22px;font-size:1.1rem}.interview-bottom{display:flex;gap:10px;justify-content:space-between}.so-far h2{margin:0 0 8px;font-size:1.05rem}.so-far ul{margin:0;padding-left:18px;display:grid;gap:4px}.add-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:600px){.add-row{grid-template-columns:1fr}}.mic{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.mic-button{min-width:110px}.mic-button.on{background:var(--bad);border-color:var(--bad);color:#fff}.mic-hint{color:var(--muted);font-size:.9rem}.mic-error{color:var(--bad);font-size:.9rem}.template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.template{display:grid;gap:4px;text-align:left;padding:14px;border-radius:12px}.template span{color:var(--muted);font-size:.9rem}.template.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent) inset}.person{display:grid;gap:6px;padding:10px 0;border-bottom:1px dashed var(--line)}.steps-edit{margin:0;padding-left:22px;display:grid;gap:12px}.steps-edit li{display:grid;gap:6px}.step-meta{flex-wrap:wrap;align-items:center}.photo-todo{margin:0;padding-left:18px;display:grid;gap:8px}.tips{color:var(--muted);font-size:.9rem}.usual-steps{margin:0;padding:10px 10px 10px 30px;background:var(--bg);border-radius:10px;display:grid;gap:4px}.interview-title{margin:0;font-size:.95rem;color:var(--muted);font-weight:600}.keep-list{display:flex;gap:8px;flex-wrap:wrap}a.button{font:inherit;padding:8px 14px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--text);text-decoration:none}.photo-todo{list-style:none;padding-left:0}.photo-todo .box{margin-right:8px}.story-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}@media print{body.print-photos main>*:not(.photo-section){display:none!important}body.print-photos .no-print{display:none!important}body.print-photos{background:#fff;color:#000}body.print-photos .photo-section{border:none;box-shadow:none;padding:0}body.print-photos .muted,body.print-photos small{color:#333}body.print-photos .photo-todo li{break-inside:avoid;margin-bottom:6px}}.letter-section{display:grid;gap:10px;line-height:1.55}.letter-section h2{margin:6px 0 0}.letter-section h3{margin:8px 0 0;font-size:1.05rem}.letter-section ul{margin:0;padding-left:20px;display:grid;gap:4px}.letter-section p{margin:0}.letter-section .signature{margin-top:18px}.letter-section.big{font-size:1.45rem}.letter-section.big h2{font-size:1.9rem}.letter-section.big h3{font-size:1.5rem}@media print{body.print-letter main>*:not(.letter-section){display:none!important}body.print-letter .no-print{display:none!important}body.print-letter{background:#fff;color:#000}body.print-letter .letter-section{border:none;box-shadow:none;padding:0;font-size:12pt}}.photo-todo>li{display:grid;gap:6px;padding-bottom:8px;border-bottom:1px dashed var(--line)}.todo-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}label.button{cursor:pointer;font:inherit;padding:6px 12px;border-radius:8px;border:1px solid var(--line);background:var(--surface)}label.button.disabled{opacity:.5;cursor:default}.added{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.added li{display:grid;gap:6px;grid-template-columns:1fr 1fr;align-items:start}.added li>img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px}.added li>span,.added li>button{grid-column:1 / -1}.cutout{margin:0;display:grid;gap:2px}.cutout img{width:100%;aspect-ratio:1;object-fit:contain;border-radius:8px;background:repeating-conic-gradient(#ddd 0% 25%,#fff 0% 50%) 50% / 16px 16px}.cutout figcaption{font-size:.75rem;color:var(--muted);text-align:center}.look-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}.look{display:grid;gap:6px;text-align:left;padding:8px;border-radius:12px}.look img{width:100%;aspect-ratio:3 / 2;object-fit:cover;border-radius:8px}.look span{color:var(--muted);font-size:.85rem}.look.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent) inset}.child-photo{display:grid;grid-template-columns:160px 160px;gap:10px}.child-photo>img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px}.unlock{max-width:420px;margin:12vh auto;padding:0 16px;display:grid;gap:12px}.unlock form{display:grid;gap:10px}.unlock label{display:grid;gap:6px}.unlock .error{color:#9a3b2e;margin:0}
