@import"https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap";.calendar-drawer-root{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:40}.calendar-overlay{position:absolute;top:0;right:0;bottom:0;left:0;border:none;background:#090a0c47;opacity:0;transition:opacity .22s ease}.calendar-drawer{position:absolute;left:0;top:0;height:100%;width:min(380px,92vw);padding:20px;background:var(--panel);border-right:1px solid color-mix(in srgb,var(--text) 10%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transform:translate(-100%);transition:transform .22s ease;overflow-y:auto}.calendar-drawer-root.is-open{pointer-events:auto}.calendar-drawer-root.is-open .calendar-overlay{opacity:1}.calendar-drawer-root.is-open .calendar-drawer{transform:translate(0)}.calendar-drawer-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.calendar-drawer-title{margin:0;font-size:17px;font-weight:700}.calendar-drawer-close,.calendar-nav-button,.calendar-install-button{border:1px solid color-mix(in srgb,var(--text) 14%,transparent);background:color-mix(in srgb,var(--panel) 78%,transparent);color:var(--text);border-radius:8px;padding:8px 10px;font-size:13px;cursor:pointer}.calendar-install-button{width:100%;margin-bottom:12px;text-align:left}.calendar-month-toolbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin-bottom:14px}.calendar-month-label{margin:0;text-align:center;font-size:14px;font-weight:600}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calendar-weekday{font-size:11px;font-weight:600;color:var(--text-muted);text-align:center}.calendar-day{border:1px solid color-mix(in srgb,var(--text) 10%,transparent);min-height:42px;border-radius:10px;background:color-mix(in srgb,var(--panel) 82%,transparent);color:var(--text);display:grid;place-items:center;gap:4px;font-size:13px;cursor:pointer;position:relative}.calendar-day.is-outside-month{opacity:.45}.calendar-day.is-today{outline:1px solid color-mix(in srgb,var(--accent) 65%,transparent)}.calendar-day.is-selected{background:color-mix(in srgb,var(--accent) 22%,var(--panel));border-color:color-mix(in srgb,var(--accent) 70%,transparent)}.calendar-content-dot{width:5px;height:5px;border-radius:999px;background:color-mix(in srgb,var(--accent) 80%,var(--text))}@media (max-width: 760px){.calendar-drawer{width:100%;height:min(82vh,640px);top:auto;bottom:0;border-right:none;border-top:1px solid color-mix(in srgb,var(--text) 10%,transparent);border-top-left-radius:16px;border-top-right-radius:16px;transform:translateY(100%)}.calendar-drawer-root.is-open .calendar-drawer{transform:translateY(0)}}.calendar-theme-toggle{margin-top:14px;padding-top:12px;border-top:1px solid color-mix(in srgb,var(--text) 10%,transparent);display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--text-muted);text-transform:capitalize}.calendar-export-controls{margin-top:12px;padding-top:12px;border-top:1px solid color-mix(in srgb,var(--text) 10%,transparent);display:grid;gap:8px;font-size:13px;color:var(--text-muted)}.calendar-export-buttons{display:grid;grid-template-columns:1fr;gap:8px}.calendar-export-buttons .calendar-nav-button{text-align:left}.palette-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--bg) 80%,transparent);display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;z-index:20}.palette{width:min(720px,92vw);background:var(--panel);border-radius:16px;box-shadow:0 16px 40px #00000026;padding:16px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid color-mix(in srgb,var(--text-muted) 20%,transparent)}.palette-input{width:100%;border:none;outline:none;font-size:16px;padding:12px 14px;border-radius:12px;background:color-mix(in srgb,var(--bg) 85%,transparent);color:var(--text)}.palette-list{list-style:none;padding:0;margin:12px 0 0;max-height:360px;overflow-y:auto}.palette-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:10px;cursor:pointer;color:var(--text)}.palette-item.is-active{background:color-mix(in srgb,var(--text) 8%,transparent)}.palette-note{display:flex;flex-direction:column;gap:4px}.palette-note__title{font-weight:600;display:flex;align-items:center;gap:8px}.palette-note__current{font-size:12px;color:var(--text-muted)}.palette-note__snippet{font-size:13px;color:var(--text-muted)}.palette-note__snippet mark{background:color-mix(in srgb,var(--accent) 25%,transparent);color:var(--text)}.palette-hint{font-size:12px;color:var(--text-muted)}.palette-footer{margin-top:12px;font-size:12px;color:var(--text-muted);text-align:right}.palette-empty{padding:16px;color:var(--text-muted)}.palette-confirm{display:flex;flex-direction:column;gap:12px}.palette-confirm__title{font-size:14px;color:var(--text)}.palette-actions{display:flex;gap:12px}.palette-actions button{border:none;border-radius:10px;padding:10px 14px;background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--text);cursor:pointer}.palette-file{display:none}.palette-error{margin-top:8px;color:#d34b4b;font-size:12px}.save-indicator{position:fixed;top:18px;right:22px;font-size:12px;color:var(--text-muted);opacity:0;transition:opacity .18s ease;pointer-events:none}.save-indicator--visible{opacity:1}:root{color-scheme:light dark;--bg: #f9f7f4;--text: #1f1b16;--text-muted: rgba(31, 27, 22, .55);--panel: rgba(255, 255, 255, .85);--accent: #7a6cff}:root[data-theme=dark]{--bg: #141312;--text: #f1eee9;--text-muted: rgba(241, 238, 233, .6);--panel: rgba(26, 26, 28, .92);--accent: #9b92ff}*{box-sizing:border-box}body{margin:0;font-family:Montserrat,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text)}#root{min-height:100vh}.app{min-height:100vh;display:flex;flex-direction:column}.top-bar{position:fixed;top:16px;left:16px;right:16px;z-index:30;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px}.top-bar-button,.top-bar-date{border:1px solid color-mix(in srgb,var(--text) 12%,transparent);background:color-mix(in srgb,var(--panel) 78%,transparent);color:var(--text);border-radius:999px;min-height:36px;padding:0 14px;font-size:14px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer;box-shadow:0 10px 20px #00000014}.top-bar-date{justify-self:center;width:min(100%,380px);border-radius:12px}.formatting-panel{position:fixed;bottom:32px;left:50%;transform:translate(-50%);display:inline-flex;align-items:center;gap:14px;padding:12px 18px;border-radius:999px;background:var(--panel);color:var(--text);border:1px solid color-mix(in srgb,var(--text) 10%,transparent);box-shadow:0 18px 40px #0000001f;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:15}.formatting-item{font-size:14px;font-weight:500;letter-spacing:.02em;color:var(--text);opacity:.85;border:none;background:none;padding:0;cursor:pointer}.formatting-item.is-bold{font-weight:700}.formatting-item.is-strike{text-decoration:line-through}.formatting-item.is-underline{text-decoration:underline}.formatting-item:hover{opacity:1}.formatting-divider{width:1px;height:18px;background:color-mix(in srgb,var(--text) 20%,transparent);opacity:.6}.editor-shell{flex:1;display:flex;justify-content:center;padding:64px 20px 80px}.editor{width:min(820px,100%);min-height:calc(100vh - 160px);border:none;resize:none;outline:none;background:transparent;color:var(--text);font-family:Montserrat,sans-serif;font-size:20px;line-height:1.7;font-weight:400;letter-spacing:.01em;white-space:pre-wrap;word-break:break-word}.editor::selection{background:color-mix(in srgb,var(--accent) 35%,transparent)}.writing-stats{position:fixed;bottom:20px;right:24px;display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:8px;font-size:12px;color:var(--text-muted);background:color-mix(in srgb,var(--panel) 75%,transparent);border:1px solid color-mix(in srgb,var(--text) 8%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none}.error-boundary{padding:48px;max-width:600px;margin:0 auto}
