:root { color-scheme: light; --bg:#f7f8f4; --paper:#fff; --ink:#26362d; --muted:#64736b; --line:#d8dfd7; --accent:#536c5f; --accent-dark:#3c5949; --subtle:#f0f3ee; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif; word-break:keep-all; -webkit-font-smoothing:antialiased; }
button,select,input,textarea { font:inherit; }
button { cursor:pointer; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible { outline:3px solid #8caa91; outline-offset:3px; }
.site-shell { max-width:1270px; margin:0 auto; padding:36px 32px 28px; }
.topbar { display:flex; gap:20px; justify-content:space-between; align-items:center; padding:10px 0 33px; }
.eyebrow { font-size:12px; color:var(--accent); letter-spacing:.09em; margin:0 0 10px; }
h1 { font-family:Georgia,"Batang",serif; font-size:32px; font-weight:600; margin:0; letter-spacing:-.035em; }
.subtitle { font-size:13px; color:var(--muted); margin:9px 0 0; }
.ghost-button { background:transparent; color:var(--accent-dark); border:1px solid var(--line); padding:11px 15px; border-radius:11px; font-size:13px; transition:background .15s; }
.ghost-button:hover,.secondary-button:hover { background:var(--subtle); }
.today-button { min-width:144px; }
.picker { display:flex; align-items:center; gap:11px; background:var(--paper); border:1px solid var(--line); padding:13px 20px; border-radius:15px; margin-bottom:22px; }
.picker label { font-size:13px; color:var(--muted); }
.picker select { min-width:94px; background:#fff; color:var(--ink); padding:10px 32px 10px 12px; border-radius:9px; border:1px solid var(--line); }
.picker-guide { margin-left:auto; font-size:13px; color:var(--muted); }
.content-grid { display:grid; grid-template-columns:minmax(0,1.12fr) minmax(340px,.88fr); gap:22px; align-items:stretch; }
.wisdom-card,.memo-card { background:var(--paper); border:1px solid var(--line); border-radius:19px; min-width:0; box-shadow:0 9px 35px rgba(30,50,35,.035); }
.wisdom-card { display:flex; flex-direction:column; min-height:575px; padding:28px 36px 22px; }
.date-heading { display:flex; justify-content:space-between; align-items:flex-start; }
.date-heading>div { display:flex; flex-direction:column; }
.month-label { color:var(--accent); font-size:18px; }
.day-label { color:var(--ink); font-size:100px; line-height:1.04; letter-spacing:-.09em; font-family:Georgia,"Batang",serif; font-weight:500; padding-left:0; }
.date-description { font-size:12px; color:var(--muted); padding-top:5px; }
.quote-area { text-align:center; flex:1; display:flex; flex-direction:column; justify-content:center; align-items:center; padding:9px 4px 28px; }
#quoteText { max-width:620px; font-family:Georgia,"Batang",serif; font-size:clamp(25px,2.5vw,36px); line-height:1.63; font-weight:500; letter-spacing:-.045em; margin:0 0 31px; overflow-wrap:anywhere; }
.citation { color:var(--accent); font-size:14px; display:flex; gap:8px; justify-content:center; flex-wrap:wrap; line-height:1.7; }
.source-link { color:var(--muted); text-underline-offset:3px; font-size:12px; margin-top:12px; }
.original { width:100%; margin:24px auto 0; padding-top:11px; border-top:1px solid var(--line); color:var(--muted); text-align:center; }
.original summary { cursor:pointer; font-size:13px; }
.original-text { font-size:15px; font-family:"Batang",serif; line-height:1.8; }
.reading-text { font-size:12px; line-height:1.6; }
.day-navigation { border-top:1px solid var(--line); padding-top:16px; display:flex; align-items:center; justify-content:space-between; gap:8px; }
#dateNumber { color:var(--muted); font-variant-numeric:tabular-nums; font-size:12px; }
.memo-card { padding:29px 32px; }
.memo-header h2 { margin:0 0 9px; font-size:25px; letter-spacing:-.04em; font-weight:600; }
.memo-helper { color:var(--muted); font-size:13px; line-height:1.75; margin:0 0 23px; }
.note-form { display:flex; flex-direction:column; gap:8px; }
.note-form label { font-size:13px; color:var(--muted); }
#yearField { padding:12px 14px; width:125px; border:1px solid var(--line); border-radius:9px; margin:0 0 10px; font-variant-numeric:tabular-nums; }
#noteField { width:100%; min-height:142px; padding:14px 16px; border:1px solid var(--line); border-radius:11px; line-height:1.7; resize:vertical; font-size:14px; color:var(--ink); background:#fcfdfa; }
#noteField::placeholder { color:#8a9890; }
.save-row { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:8px; }
#savedState { font-size:12px; color:var(--accent); }
.primary-button { border:1px solid var(--accent-dark); background:var(--accent-dark); color:#fff; padding:11px 20px; border-radius:10px; font-size:13px; }
.primary-button:hover { background:#2d4638; }
.history { margin-top:29px; padding-top:20px; border-top:1px solid var(--line); }
.history-title { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.history h3 { font-size:15px; margin:0 0 13px; font-weight:600; }
#noteCount { font-size:12px; color:var(--muted); }
.note-history { max-height:265px; overflow:auto; }
.empty-note { font-size:13px; color:#88968d; margin:8px 0; }
.history-entry { padding:12px 0; border-bottom:1px solid #e9ede8; }
.history-entry:last-child { border-bottom:0; }
.history-year { background:transparent; color:var(--accent-dark); text-decoration:underline; text-underline-offset:3px; padding:0; border:0; font-size:13px; font-weight:600; }
.history-entry p { margin:8px 0 0; white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.65; font-size:13px; }
.tools-panel,.print-panel { display:flex; align-items:center; justify-content:space-between; gap:24px; border:1px solid var(--line); background:var(--paper); border-radius:16px; padding:22px 26px; margin-top:22px; }
.tools-panel h2,.print-panel h2 { margin:0 0 6px; font-size:17px; }
.tools-panel p,.print-panel p { margin:0; color:var(--muted); line-height:1.7; font-size:13px; max-width:610px; }
.tool-buttons,.print-links { display:flex; flex-wrap:wrap; gap:9px; justify-content:flex-end; flex-shrink:0; }
.secondary-button,.print-links a { display:inline-flex; align-items:center; justify-content:center; border-radius:10px; padding:11px 14px; font-size:13px; color:var(--accent-dark); text-decoration:none; border:1px solid var(--line); background:#fff; cursor:pointer; }
.print-links a:hover { background:var(--subtle); }
.visually-hidden { position:absolute!important; width:1px;height:1px; padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0; }
footer { text-align:center; padding:32px 10px 10px; color:var(--muted); font-size:12px; line-height:1.9; }
footer p { margin:5px 0; }
.toast { position:fixed; left:50%; bottom:25px; transform:translateX(-50%); padding:12px 18px; border-radius:12px; background:var(--ink); color:white; font-size:13px; box-shadow:0 8px 28px #0002; z-index:10; }
@media (max-width:870px) { .site-shell { padding:22px 16px; } .content-grid { grid-template-columns:1fr; } .wisdom-card { min-height:520px; } .picker-guide { display:none; } .tools-panel,.print-panel { align-items:flex-start; flex-direction:column; } .tool-buttons,.print-links { justify-content:flex-start; flex-shrink:1; } }
@media (max-width:540px) { .site-shell { padding:16px 12px; } .topbar { padding:7px 5px 20px; align-items:flex-start; } h1 { font-size:25px; } .subtitle { font-size:11px; } .today-button { min-width:0; font-size:12px; padding:10px; } .picker { padding:11px 13px; gap:7px; margin-bottom:13px; } .picker select { min-width:0; padding:9px 21px 9px 9px; } .content-grid { gap:13px; } .wisdom-card { border-radius:14px; min-height:470px; padding:23px 23px 17px; } .day-label { font-size:75px; } .month-label { font-size:16px; } #quoteText { font-size:clamp(23px,6vw,29px); line-height:1.63; } .quote-area { padding-top:15px; padding-bottom:21px; } .day-navigation .ghost-button { padding:10px 9px; font-size:12px; } .memo-card { border-radius:14px; padding:23px; } .tools-panel,.print-panel { padding:19px; border-radius:13px; } .secondary-button,.print-links a { flex:1; min-width:140px; } .tool-buttons,.print-links { width:100%; } footer { padding:25px 12px; } }
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; transition:none!important; } }
