:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#282b25;background:#f6f5ef;--paper:#fffef9;--muted:#73766b;--line:#e4e5dc;--accent:#355d49;--soft:#eaf0e7;--rose:#ad6175;--trip:#6c83a0;--ink:#282b25}
*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{opacity:.45;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #9bb8a3;outline-offset:3px}[hidden]{display:none!important}.shell{max-width:780px;margin:auto;padding:24px 22px calc(20px + env(safe-area-inset-bottom))}.brand{display:flex;justify-content:space-between;align-items:center}.eyebrow{font-size:9px;letter-spacing:1.6px;font-weight:650;color:var(--muted)}h1{font-size:44px;letter-spacing:-2px;font-weight:650;margin:6px 0 0}.brand-dot{color:var(--rose)}.intro{font-size:14px;color:var(--muted);margin:8px 0 23px}h2{font-size:25px;letter-spacing:-.7px;margin:7px 0 15px;font-weight:600}h3{font-size:18px;letter-spacing:-.3px;margin:0}.tabs{display:flex;gap:4px;padding:5px;background:#eaece4;border-radius:14px;margin-bottom:26px}.tabs button{flex:1;border:0;background:none;padding:11px 3px;font-size:13px;color:var(--muted);border-radius:10px}.tabs button.active{color:var(--accent);background:var(--paper);box-shadow:0 1px 4px #0000000b;font-weight:650}.month-heading,.section-heading,.agenda-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.month-controls{display:flex;gap:7px}.icon-btn{border:1px solid var(--line);background:var(--paper);color:var(--ink);width:38px;height:38px;border-radius:50%;font-size:23px;display:inline-flex;align-items:center;justify-content:center}.calendar-card{border:1px solid var(--line);border-radius:20px;background:var(--paper);padding:17px 13px 13px}.weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.weekdays{text-align:center;font-size:11px;color:var(--muted);margin-bottom:13px}.month-grid .day{border:0;color:var(--ink);background:transparent;height:54px;border-radius:12px;display:flex;flex-direction:column;gap:7px;align-items:center;justify-content:center;font-size:14px;min-width:0}.day:hover{background:var(--soft)}.month-grid .day.selected{background:var(--accent);color:white}.month-grid .day.today:not(.selected){box-shadow:inset 0 0 0 1px var(--accent);font-weight:700}.dots{display:flex;gap:3px;height:5px}.dot{width:5px;height:5px;border-radius:50%;display:inline-block;flex-shrink:0}.date-dot{background:#bf788a}.flower-dot{background:#b9a272}.trip-dot{background:var(--trip)}.event-dot{background:#7a9780}.selected .dot{background:#e5ead6}.legend{display:flex;flex-wrap:wrap;gap:12px;margin:14px 0 25px;font-size:10px;color:var(--muted)}.legend span{display:flex;gap:5px;align-items:center}.primary,.secondary{border:0;border-radius:11px;padding:12px 18px;background:var(--accent);color:#fff;font-size:14px;font-weight:550}.small{font-size:12px;padding:10px 13px}.secondary{background:var(--soft);color:var(--accent);border:1px solid var(--line)}.text-btn{background:none;border:0;color:var(--accent);font-size:12px;padding:8px 3px}.filter-row{display:flex;gap:10px;align-items:center;margin:13px 0}.filter-row select{margin-right:auto;font-size:12px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--muted);max-width:47%}.task-list{display:flex;flex-direction:column;gap:10px}.task{width:100%;border:1px solid var(--line);border-radius:16px;background:var(--paper);padding:15px;text-align:left;color:var(--ink);display:flex;gap:13px;align-items:center}.task-date{min-width:38px;text-align:center;border-right:1px solid var(--line);padding-right:12px}.task-date strong{display:block;font-size:21px;line-height:1.2;font-weight:600}.task-date small{font-size:10px;color:var(--muted)}.task-text{flex:1;min-width:0}.task-text strong{display:block;font-size:14px;font-weight:550;line-height:1.45;overflow-wrap:anywhere}.task-text small{font-size:11px;color:var(--muted);display:block;margin-top:5px}.task-arrow{font-size:20px;color:var(--muted)}.task.closed{opacity:.65}.empty{font-size:13px;color:var(--muted);text-align:center;padding:26px 18px;background:var(--paper);border:1px dashed var(--line);border-radius:16px;line-height:1.6}.footnote{font-size:11px;color:var(--muted);line-height:1.6;margin:18px 0}.section-note{font-size:13px;color:var(--muted);line-height:1.7;margin:0 0 21px}.memory-card,.setting-row{background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:16px;margin-bottom:10px}.memory-card p{font-size:14px;line-height:1.65;margin:7px 0 10px;white-space:pre-wrap;overflow-wrap:anywhere}.memory-actions{display:flex;gap:15px}.memory-card small{color:var(--muted);font-size:10px}.danger{color:#a65254}.romance-card{border:1px solid var(--line);border-radius:20px;padding:20px;background:var(--paper);margin-bottom:16px}.romance-card pre{white-space:pre-wrap;overflow-wrap:anywhere;font:14px/1.8 inherit;margin:0}.setting-row{display:flex;align-items:center;gap:12px;justify-content:space-between}.setting-row span{font-size:13px}.setting-row small{display:block;color:var(--muted);font-size:11px;margin-top:5px}.notice{font-size:12px;line-height:1.6;background:#f5e8d0;border-radius:12px;padding:12px;margin-bottom:16px;color:#705b34}#status:not(:empty){padding:12px;background:var(--soft);border-radius:12px;font-size:13px;margin-bottom:16px;line-height:1.6}#status.error,#editor-error{color:#a54a4d}#editor-error{font-size:13px;line-height:1.6}footer{color:#999c90;font-size:11px;text-align:center;margin-top:35px}.overdue{margin-top:20px}.overdue summary{font-size:13px;color:#9a6364;cursor:pointer;margin-bottom:12px}dialog{width:min(540px,calc(100% - 24px));max-height:85dvh;overflow:auto;border:1px solid var(--line);border-radius:22px;background:var(--paper);color:var(--ink);padding:22px}dialog::backdrop{background:#1c302f66;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.dialog-heading h2{font-size:21px}.dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}label{display:block;font-size:12px;color:var(--muted);margin:15px 0 7px}input,textarea,select.editor-input{width:100%;border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--paper);color:var(--ink)}textarea{resize:vertical;min-height:105px}.detail-note{font-size:13px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere}.step-btn{display:block;width:100%;text-align:left;background:var(--soft);border:0;border-radius:9px;padding:12px;margin:7px 0;font-size:13px;color:var(--ink)}.detail-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.detail-actions button{font-size:12px}.detail-tag{font-size:12px;color:var(--muted)}
@media(min-width:660px){.shell{padding:36px 42px}.month-grid .day{height:70px;font-size:16px}.calendar-card{padding:24px}.task{padding:18px}.intro{margin-bottom:28px}}
.romance-card pre{font-family:inherit;font-size:14px;line-height:1.8}
.date-idea-card{margin-top:18px}.date-idea-card h3{margin-top:10px}.idea-source{display:block;font-size:12px;line-height:1.7;color:var(--accent);overflow-wrap:anywhere;margin-top:5px}
@media(max-width:370px){.shell{padding:20px 14px}.tabs button{font-size:11px}.legend{gap:8px}.filter-row{gap:6px}.month-grid .day{height:48px}}
@media(prefers-color-scheme:dark){:root{color:#e7e8df;background:#1d2420;--paper:#28312a;--muted:#a6b1a3;--line:#3b483e;--accent:#8fb89c;--soft:#354437;--ink:#e7e8df}.tabs{background:#303b32}.primary,.month-grid .day.selected{color:#17281d}.notice{background:#443d2b;color:#e7c994}}
