:root{color-scheme:light;--paper:#f7f1e8;--card:#fffdf9;--ink:#393a34;--muted:#89867e;--line:#ece6db;--accent:#c47b67;--accent-dark:#a55f4c;--sage:#87917b;--shadow:0 14px 40px rgba(66,53,38,.055)}
:root[data-theme="dark"]{color-scheme:dark;--paper:#191a1b;--card:#242526;--ink:#ece8e1;--muted:#aaa49a;--line:#3b3b39;--accent:#d4947f;--accent-dark:#e3aa95;--sage:#a4b095;--shadow:0 14px 40px rgba(0,0,0,.18)}
*{box-sizing:border-box}html{min-height:100%;background:var(--paper)}body{margin:0;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC",sans-serif;font-size:16px;-webkit-font-smoothing:antialiased;background:var(--paper);transition:background-color .2s,color .2s}.app-shell{width:min(100% - 36px,680px);margin:0 auto;padding:calc(env(safe-area-inset-top) + 12px) 0 calc(env(safe-area-inset-bottom) + 36px)}button,textarea{font:inherit}.topbar{display:flex;align-items:center;justify-content:space-between;position:relative;margin-bottom:20px}.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-weight:750;font-size:17px;letter-spacing:.04em}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:50% 50% 45% 45%;background:#d5a58f;color:white;font-family:serif;font-size:19px}.top-actions{display:flex;gap:8px}.icon-button{display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;width:38px;height:38px;background:var(--card);color:var(--ink);font-size:22px;cursor:pointer}.theme-button{font-size:18px}.menu{position:absolute;z-index:3;right:0;top:46px;width:205px;padding:7px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.menu button{width:100%;padding:11px 12px;text-align:left;background:none;border:0;border-radius:9px;color:var(--ink);cursor:pointer}.menu button:hover{background:color-mix(in srgb,var(--muted) 12%,transparent)}.hidden{display:none}.section-label{color:var(--sage);font-size:10px;font-weight:700;letter-spacing:.12em}.calendar-card,.editor-card{background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow)}.calendar-card{padding:22px 21px 14px}.calendar-heading,.editor-heading{display:flex;align-items:center;justify-content:space-between}.calendar-heading h2,.editor-heading h2{margin:5px 0 0;font-family:"Noto Serif TC",Georgia,serif;font-size:20px;font-weight:600}.month-controls{display:flex;gap:8px}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-top:11px}.weekday-row{margin-top:20px;color:var(--muted);font-size:11px;text-align:center}.weekday-row span{padding:3px}.day{position:relative;display:grid;place-items:center;justify-self:center;width:min(39px,10vw);height:min(39px,10vw);border:0;border-radius:50%;background:transparent;color:var(--ink);font-size:13px;cursor:pointer}.day:hover{background:color-mix(in srgb,var(--muted) 12%,transparent)}.day.outside{color:var(--muted);opacity:.58}.day.today:not(.selected){box-shadow:inset 0 0 0 1px var(--accent)}.day.selected{background:var(--accent);color:white}.day.has-note:after{content:"";position:absolute;bottom:3px;width:4px;height:4px;border-radius:50%;background:var(--sage)}.day.selected.has-note:after{background:white}.calendar-legend{display:flex;align-items:center;gap:7px;margin-top:11px;color:var(--muted);font-size:10px}.legend-dot{width:5px;height:5px;border-radius:50%;background:var(--sage)}.editor-card{margin-top:16px;padding:22px 21px 15px}.editor-heading{align-items:flex-end;margin-bottom:17px}.editor-heading h2{font-size:16px}.save-status{color:var(--sage);font-size:11px}.save-status.error{color:#e08f7f}textarea{display:block;width:100%;min-height:180px;padding:5px 0;border:0;outline:0;resize:vertical;background:transparent;color:var(--ink);font-size:16px;line-height:1.85}textarea::placeholder{color:var(--muted);opacity:.75}.editor-footer{display:flex;justify-content:space-between;align-items:center;padding-top:11px;border-top:1px solid var(--line)}.editor-tools{display:flex;align-items:center;gap:14px}.text-button{padding:4px 0;border:0;background:none;color:var(--accent-dark);font-size:12px;cursor:pointer}.text-button span{font-size:17px;vertical-align:-1px}.privacy-note,.word-count{color:var(--muted);font-size:10px}.photo-strip{display:flex;flex-wrap:wrap;gap:9px;margin:2px 0 13px}.photo-wrap{position:relative;width:74px;height:74px}.photo-wrap img{width:100%;height:100%;object-fit:cover;border-radius:11px}.photo-remove{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border:2px solid var(--card);border-radius:50%;background:#514c46;color:white;line-height:16px;cursor:pointer}.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}dialog{width:min(calc(100% - 40px),360px);padding:0;border:1px solid var(--line);border-radius:20px;background:var(--card);color:var(--ink);box-shadow:0 20px 80px #30251d33}dialog::backdrop{background:#28241f66;backdrop-filter:blur(3px)}.dialog-body{padding:28px;text-align:center}.dialog-flower{color:var(--accent);font-size:24px}.dialog-body h2{font-family:"Noto Serif TC",Georgia,serif;font-size:20px}.dialog-body p{color:var(--muted);font-size:13px;line-height:1.8;white-space:pre-line}.primary-button{margin-top:10px;padding:10px 23px;border:0;border-radius:999px;background:var(--accent);color:white;cursor:pointer}@media(min-width:700px){.app-shell{padding-top:32px}}

.search-card{margin-top:14px;padding:17px 20px;background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.search-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.search-heading label{color:var(--ink);font-size:13px;font-weight:650}.search-heading button{width:28px;height:28px;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:22px;cursor:pointer}.search-field{display:flex;align-items:center;gap:9px;padding:0 12px;border:1px solid var(--line);border-radius:11px;background:var(--paper);color:var(--muted)}.search-field>span{font-size:21px}.search-field input{width:100%;height:42px;border:0;outline:0;background:transparent;color:var(--ink);font-size:16px}.search-field input::placeholder{color:var(--muted);opacity:.8}.search-field button{border:0;background:none;color:var(--muted);font-size:22px;cursor:pointer}.search-summary{margin:8px 0 0;color:var(--muted);font-size:11px}.search-results{display:grid;gap:7px;margin-top:8px}.search-result{display:grid;grid-template-columns:82px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:10px 11px;border:1px solid var(--line);border-radius:11px;background:var(--card);color:var(--ink);text-align:left;cursor:pointer}.search-result:hover{border-color:var(--accent)}.search-result-date{color:var(--accent-dark);font-size:12px;font-weight:650}.search-result-excerpt{overflow:hidden;color:var(--ink);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.search-result-photos{color:var(--muted);font-size:10px;white-space:nowrap}@media(max-width:420px){.search-result{grid-template-columns:68px minmax(0,1fr)}.search-result-photos{grid-column:2}}
.back-button{margin:0 0 16px;padding:7px 10px;border:0;border-radius:8px;background:transparent;color:var(--accent-dark);font-size:14px;cursor:pointer}.back-button:hover{background:color-mix(in srgb,var(--muted) 12%,transparent)}
.records-card{margin-top:16px;padding:19px 20px;background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.selected-day-record{padding:0}.selected-day-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.selected-day-heading h3{margin:0;font-family:"Noto Serif TC",Georgia,serif;font-size:16px;font-weight:600}.selected-day-edit{padding:6px 10px;border:1px solid var(--line);border-radius:9px}.selected-day-content{margin:0;color:var(--ink);font-size:14px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.selected-day-photos{display:flex;gap:8px;overflow-x:auto;margin-top:10px}.selected-day-photos img{flex:0 0 auto;width:76px;height:76px;object-fit:cover;border-radius:10px}
/* Larger, more comfortable reading and writing sizes on iPhone. */
html{-webkit-text-size-adjust:100%}
body{font-size:18px}
.section-label{font-size:13px}
.weekday-row{font-size:14px}
.day{font-size:16px}
.calendar-legend{font-size:13px}
textarea#noteInput{font-size:20px!important;line-height:1.8;}
.search-field input{font-size:18px}
.search-heading label,.search-result-excerpt{font-size:15px}
.search-summary{font-size:13px}
.search-result-date{font-size:14px}
.search-result-photos{font-size:12px}
.back-button{font-size:16px}
.text-button{font-size:15px}
.privacy-note,.word-count,.save-status{font-size:13px}
.selected-day-heading h3{font-size:19px}
.selected-day-content,.record-content{font-size:17px}
.records-heading h2{font-size:19px}
.brand-mark{overflow:hidden;background:transparent;border-radius:10px}
.brand-mark img{display:block;width:100%;height:100%;object-fit:cover;border-radius:10px}
