:root{--bg:#eeeae3;--card:#f8f6f1;--ink:#3a372f;--soft:#97907f;--line:#ddd7cb;--sage:#7d8b74;--clay:#b4826a;--serif:"Fraunces", serif;--sans:"Karla", sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--sans);background:var(--bg);color:var(--ink);min-height:100vh}button{font-family:var(--sans)}.page{grid-template-columns:1fr 252px;gap:44px;max-width:960px;margin:0 auto;padding:44px 26px 150px;display:grid}.header-date{letter-spacing:.28em;text-transform:uppercase;color:var(--soft);font-size:12px}.header-title{font-family:var(--serif);margin-top:10px;font-size:36px;font-weight:340}.header-title em{color:var(--sage);font-style:italic}.header-sub{color:var(--soft);margin-top:9px;font-size:14px}.header-sub b{color:var(--clay);font-weight:600}.header-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-top:22px;display:flex}.views{background:var(--card);border:1px solid var(--line);border-radius:999px;gap:5px;width:fit-content;padding:5px;display:flex}.views button{color:var(--soft);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:8px 18px;font-size:13px}.views button.active{background:var(--ink);color:var(--card);font-weight:500}.btn{cursor:pointer;border:none;border-radius:12px;padding:10px 18px;font-size:13px;font-weight:600}.btn-sage{background:var(--sage);color:var(--card)}.btn-ghost{border:1px solid var(--line);color:var(--soft);background:0 0}.btn-clay{background:var(--clay);color:var(--card)}.new-event-btn{border-radius:999px;padding:11px 20px}.grouplabel{font-family:var(--serif);color:var(--soft);align-items:center;gap:16px;margin:30px 0 14px;font-size:19px;font-style:italic;display:flex}.grouplabel.urgent{color:var(--clay)}.grouplabel:after{content:"";background:var(--line);flex:1;height:1px}.card{background:var(--card);border:1px solid var(--line);cursor:pointer;text-align:left;border-radius:18px;align-items:center;gap:16px;width:100%;margin-bottom:12px;padding:18px 20px;display:flex}.card:hover{border-color:#c9c1b0}.card.urgent{border-left:4px solid var(--clay)}.card.past{opacity:.5}.card .time{flex-shrink:0;width:74px}.card .time b{font-size:16px;font-weight:600;display:block}.card .time span{color:var(--soft);font-size:11px}.card h3{margin-bottom:4px;font-size:16px;font-weight:600}.card h3.done{color:var(--soft);text-decoration:line-through}.card .meta{color:var(--soft);font-size:13px}.card .meta b{color:var(--sage);font-weight:600}.card.urgent .meta b{color:var(--clay)}.card .body{flex:1;min-width:0}.toggle{background:var(--line);cursor:pointer;border:none;border-radius:999px;flex-shrink:0;width:44px;height:26px;position:relative}.toggle:after{content:"";background:var(--card);border-radius:50%;width:20px;height:20px;transition:left .15s;position:absolute;top:3px;left:3px}.toggle.on{background:var(--sage)}.toggle.on:after{left:21px}.empty-note{font-family:var(--serif);color:var(--soft);padding:26px 4px;font-size:16px;font-style:italic}.week-day-label{letter-spacing:.22em;text-transform:uppercase;color:var(--soft);align-items:center;gap:14px;margin:28px 0 12px;font-size:12px;display:flex}.week-day-label.today{color:var(--clay);font-weight:600}.week-day-label:after{content:"";background:var(--line);flex:1;height:1px}.month-grid{grid-template-columns:repeat(7,1fr);gap:8px;margin-top:26px;display:grid}.month-grid .dow{text-align:center;letter-spacing:.18em;text-transform:uppercase;color:var(--soft);padding-bottom:6px;font-size:10px}.month-cell{background:var(--card);border:1px solid var(--line);cursor:pointer;text-align:left;min-height:86px;font-family:var(--sans);border-radius:12px;padding:8px 9px}.month-cell:hover{border-color:#c9c1b0}.month-cell.other{opacity:.4}.month-cell.today{border-color:var(--clay);border-width:2px}.month-cell .num{color:var(--soft);font-size:12px;font-weight:600}.month-cell.today .num{color:var(--clay)}.month-cell .pip{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:10.5px;display:block;overflow:hidden}.month-cell .pip:before{content:"·";color:var(--sage);margin-right:4px;font-weight:700}.month-cell .more{color:var(--soft);margin-top:3px;font-size:10px;display:block}.year-grid{grid-template-columns:repeat(3,1fr);gap:14px;margin-top:26px;display:grid}.year-month{background:var(--card);border:1px solid var(--line);cursor:pointer;text-align:left;font-family:var(--sans);border-radius:16px;padding:16px 18px}.year-month:hover{border-color:#c9c1b0}.year-month.now{border-color:var(--sage);border-width:2px}.year-month .name{font-family:var(--serif);font-size:18px}.year-month .count{color:var(--soft);margin-top:3px;font-size:12px}.year-month .bar{background:var(--line);border-radius:3px;height:6px;margin-top:10px;overflow:hidden}.year-month .bar i{background:var(--sage);border-radius:3px;height:100%;display:block}aside.side{padding-top:8px}.mini{background:var(--card);border:1px solid var(--line);border-radius:18px;margin-bottom:15px;padding:18px}.mini .t{letter-spacing:.24em;text-transform:uppercase;color:var(--soft);justify-content:space-between;align-items:baseline;margin-bottom:13px;font-size:11px;display:flex}.mini .t button{color:var(--sage);cursor:pointer;text-transform:none;letter-spacing:.02em;background:0 0;border:none;font-size:11px}.cal{text-align:center;grid-template-columns:repeat(7,1fr);gap:3px;font-size:12px;display:grid}.cal .dow{color:var(--soft);padding:3px 0 7px;font-size:10px}.cal button{color:var(--soft);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:6px 0;font-size:12px;position:relative}.cal button.has{color:var(--ink);font-weight:500}.cal button.has:after{content:"";background:var(--sage);border-radius:50%;width:4px;height:4px;position:absolute;bottom:1px;left:50%;transform:translate(-50%)}.cal button.now{background:var(--clay);color:var(--card);font-weight:600}.cal button.now:after{display:none}.cal button.sel{outline:1.5px solid var(--sage)}.yearline{align-items:flex-end;gap:4px;height:44px;display:flex}.yearline button{background:var(--line);cursor:pointer;border:none;border-radius:3px 3px 0 0;flex:1;min-height:4px}.yearline button.q{background:#c6bfae}.yearline button.now{background:var(--sage)}.ylabels{gap:4px;margin-top:6px;display:flex}.ylabels span{text-align:center;color:var(--soft);text-transform:uppercase;flex:1;font-size:8.5px}.goalrow{margin-bottom:12px}.goalrow:last-child{margin-bottom:0}.goalrow .k{justify-content:space-between;font-size:12px;font-weight:500;display:flex}.goalrow .k em{color:var(--soft);font-style:normal;font-weight:400}.goalrow .bar{background:var(--line);border-radius:3px;height:6px;margin-top:4px;overflow:hidden}.goalrow .bar i{background:var(--sage);border-radius:3px;height:100%;display:block}.ai-dock{background:var(--card);border:1px solid var(--line);z-index:40;border-radius:20px;width:min(580px,100% - 40px);position:fixed;bottom:26px;left:50%;transform:translate(-50%);box-shadow:0 14px 38px #3a372f24}.ai-inner{padding:14px 16px}.ai-label{letter-spacing:.22em;text-transform:uppercase;color:var(--soft);justify-content:space-between;margin-bottom:8px;font-size:10px;display:flex}.ai-label button{color:var(--sage);cursor:pointer;letter-spacing:.06em;background:0 0;border:none;font-size:10px}.ai-row{align-items:center;gap:12px;display:flex}.btn-mic{border:1px solid var(--line);width:36px;height:36px;color:var(--soft);cursor:pointer;background:0 0;border-radius:999px;flex:none;justify-content:center;align-items:center;transition:color .15s,border-color .15s;display:inline-flex}.btn-mic:hover{color:var(--ink);border-color:var(--soft)}.btn-mic.listening{color:var(--clay);border-color:var(--clay);animation:1.4s ease-in-out infinite mic-pulse}@keyframes mic-pulse{0%,to{box-shadow:0 0 #b4826a66}50%{box-shadow:0 0 0 7px #b4826a00}}.ai-row input{font-family:var(--serif);color:var(--ink);background:0 0;border:none;outline:none;flex:1;min-width:0;font-size:15px;font-style:italic}.ai-row input::placeholder{color:var(--soft)}.ai-thread{border-bottom:1px solid var(--line);max-height:260px;padding:14px 16px 4px;overflow-y:auto}.ai-msg{margin-bottom:12px;font-size:13.5px;line-height:1.55}.ai-msg .who{letter-spacing:.2em;text-transform:uppercase;color:var(--soft);margin-bottom:2px;font-size:9.5px;display:block}.ai-msg.assistant{color:var(--ink)}.ai-msg.assistant .who{color:var(--sage)}.ai-msg.error{color:var(--clay)}.ai-thinking{font-family:var(--serif);color:var(--soft);margin-bottom:12px;font-size:13.5px;font-style:italic}.overlay{z-index:50;background:#3a372f59;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--card);border:1px solid var(--line);border-radius:20px;width:min(460px,100%);max-height:90vh;padding:26px;overflow-y:auto}.modal h2{font-family:var(--serif);margin-bottom:20px;font-size:24px;font-weight:500}.field{margin-bottom:15px}.field label{letter-spacing:.2em;text-transform:uppercase;color:var(--soft);margin-bottom:6px;font-size:10.5px;display:block}.field input,.field select,.field textarea{background:var(--bg);border:1px solid var(--line);width:100%;font-family:var(--sans);color:var(--ink);border-radius:10px;outline:none;padding:10px 12px;font-size:14px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--sage)}.field-row{gap:12px;display:flex}.field-row .field{flex:1}.check-row{align-items:center;gap:10px;margin-bottom:15px;display:flex}.check-row label{cursor:pointer;font-size:13.5px}.modal-actions{justify-content:flex-end;gap:10px;margin-top:22px;display:flex}.modal-actions .spacer{flex:1}.hint{color:var(--soft);margin-bottom:16px;font-size:12px;line-height:1.55}@media (width<=880px){.page{grid-template-columns:1fr;gap:8px;padding-top:30px}aside.side{order:2}.year-grid{grid-template-columns:repeat(2,1fr)}.month-cell{min-height:62px}.month-cell .pip{display:none}.month-cell .dots{color:var(--sage);letter-spacing:2px;margin-top:2px;font-size:10px;display:block}}
