*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f5f5f7;--surface:#fff;--surface-dim:#f0f0f2;--border:#e5e5e7;--text:#1d1d1f;--text-secondary:#86868b;--primary:#0071e3;--primary-hover:#0077ed;--accent:#34c759;--tag-bg:#e8f0fe;--tag-text:#1967d2;--sidebar-width:clamp(300px, 28vw, 460px);--timeline-width:clamp(248px, 24vw, 340px);--header-height:48px;--radius:8px;--shadow:0 1px 3px #00000014;--shadow-hover:0 2px 8px #0000001f;--shadow-toolbar:0 1px 4px #0000000f}html,body{height:100%;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:14px;overflow:hidden}.hidden{display:none!important}.welcome{background:var(--bg);justify-content:center;align-items:center;height:100vh;display:flex}.welcome-card{text-align:center;background:var(--surface);box-shadow:var(--shadow);border-radius:16px;padding:48px}.welcome-card h1{margin-bottom:12px;font-size:28px;font-weight:600}.welcome-card p{color:var(--text-secondary);margin-bottom:24px}.welcome-lead{max-width:420px;margin-left:auto;margin-right:auto}.welcome-hint{color:var(--text-secondary);margin-bottom:16px;font-size:13px}.welcome-steps{text-align:left;max-width:420px;color:var(--text-secondary);margin:0 auto 28px;padding-left:22px;font-size:14px;line-height:1.65}.welcome-steps li{margin-bottom:8px}.welcome-steps code{background:var(--bg);border-radius:4px;padding:2px 6px;font-size:12px}.btn-primary{background:var(--primary);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;padding:10px 24px;font-size:15px;font-weight:500;transition:background .2s;display:inline-block}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--surface);color:var(--primary);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;padding:8px 16px;font-size:14px;font-weight:500;transition:background .15s,border-color .15s;display:inline-block}.btn-secondary:hover{background:var(--bg);border-color:var(--text-secondary)}.btn-small{padding:6px 10px;font-size:13px}#app{grid-template-columns:var(--sidebar-width) var(--timeline-width) minmax(0, 1fr);grid-template-rows:var(--header-height) minmax(0, 1fr);height:100vh;transition:grid-template-columns .2s;display:grid}.sidebar-collapsed #app{grid-template-columns:48px var(--timeline-width) minmax(0, 1fr)}.app-top-bar{background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-toolbar);z-index:2;grid-area:1/1/auto/-1;align-items:center;padding:0 12px 0 8px;display:flex}.app-top-bar-inner{grid-template-columns:1fr auto 1fr;align-items:center;column-gap:12px;width:100%;min-width:0;display:grid}.app-top-bar-brand{color:var(--text);flex-shrink:0;justify-self:start;padding-left:4px;font-size:15px;font-weight:600}.app-top-search{grid-column:2;justify-content:center;justify-self:center;width:min(420px,100%);min-width:0;display:flex}.app-search-inner{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);cursor:text;align-items:center;gap:8px;width:100%;max-width:min(420px,100%);padding:6px 10px;transition:border-color .15s,box-shadow .15s;display:flex}.app-search-inner:focus-within{border-color:var(--primary);box-shadow:0 0 0 2px #0071e326}.app-search-icon{color:var(--text-secondary);flex-shrink:0;display:flex}.app-search-input{min-width:0;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:13px}.app-search-input::placeholder{color:var(--text-secondary);opacity:.85}#sidebar{grid-area:2/1}#timeline{grid-area:2/2}#editor-area{grid-area:2/3}#sidebar,#analysis-sidebar{background:var(--surface-dim);border-right:1px solid var(--border);flex-direction:column;transition:width .2s;display:flex;overflow-y:auto}.sidebar-toggle-btn{cursor:pointer;width:100%;height:32px;color:var(--text-secondary);border:none;border-bottom:1px solid var(--border);background:0 0;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;transition:transform .2s;display:flex}.sidebar-toggle-btn:hover{background:var(--bg)}.sidebar-collapsed #sidebar{width:48px;min-width:48px}.sidebar-collapsed .sidebar-calendar-stack{display:none}.sidebar-collapsed .sidebar-toggle-btn{transform:rotate(180deg)}.sidebar-collapsed #sidebar-nav .nav-btn span{display:none}.sidebar-collapsed #sidebar-nav .nav-btn{justify-content:center;padding:8px}.sidebar-collapsed #sidebar-nav{width:100%;padding:8px 4px}.sidebar-body{flex-direction:row;flex:1;min-width:0;min-height:0;display:flex}.sidebar-calendar-stack{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}#sidebar #calendar{box-sizing:border-box;flex-direction:column;flex:0 auto;width:100%;min-width:0;min-height:0;padding:12px 10px 10px;display:flex}#analysis-calendar{box-sizing:border-box;flex-direction:column;flex:1;min-width:0;min-height:0;padding:12px;display:flex;overflow:auto}#sidebar-nav{box-sizing:border-box;border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;justify-content:flex-start;align-items:stretch;gap:4px;width:100px;padding:8px;display:flex}#analysis-nav{border-top:1px solid var(--border);flex-direction:column;gap:4px;padding:8px;display:flex}.nav-btn{border-radius:var(--radius);color:var(--text);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:8px 12px;font-size:14px;transition:background .15s;display:flex}.nav-btn:hover{background:var(--bg)}.nav-icon{text-align:center;width:20px;font-size:16px}.nav-icon-svg{flex-shrink:0;width:18px;height:18px}#timeline{background:var(--surface-dim);border-right:1px solid var(--border);flex-direction:column;display:flex;overflow:hidden}#timeline-header{border-bottom:1px solid color-mix(in srgb, var(--border) 55%, transparent);background:color-mix(in srgb, var(--border) 16%, var(--surface-dim));box-shadow:var(--shadow-toolbar);z-index:1;padding:12px 16px;position:relative}.timeline-header-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.timeline-header-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.btn-timeline-batch{border:1px solid color-mix(in srgb, var(--border) 70%, transparent);border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 45%, var(--surface-dim));color:var(--text-secondary);cursor:pointer;padding:4px 10px;font-size:12px;font-weight:500;transition:background .15s,border-color .15s}.btn-timeline-batch:hover{background:color-mix(in srgb, var(--surface) 62%, var(--surface-dim));border-color:var(--primary);color:var(--text)}.timeline-batch-btn.btn-danger{padding:4px 10px;font-size:12px}.btn-text{border-radius:var(--radius);color:var(--primary);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:4px 8px;font-size:12px;font-weight:500;text-decoration:underline}.btn-text:hover{color:var(--text)}#timeline-header h2{min-width:0;font-size:15px;font-weight:600}.search-result-title{color:var(--text);word-break:break-word;margin-bottom:4px;font-size:14px;font-weight:600;line-height:1.4}.search-result-snippet mark.search-highlight,.search-result-title mark.search-highlight{color:inherit;background:#fff3bf;border-radius:2px;padding:0 1px}#timeline-list{flex:1;padding:8px;overflow-y:auto}.entry-card{background:color-mix(in srgb, var(--surface) 62%, var(--surface-dim));border-radius:var(--radius);cursor:pointer;border:1px solid color-mix(in srgb, var(--border) 42%, transparent);align-items:flex-start;gap:8px;margin-bottom:6px;padding:12px;transition:box-shadow .15s,background .15s,border-color .15s,transform .1s;display:flex}.entry-batch-cb-label{cursor:pointer;flex-shrink:0;align-items:flex-start;padding-top:2px;display:flex}.entry-batch-cb{cursor:pointer;width:16px;height:16px;accent-color:var(--primary)}.entry-card-main{flex:1;min-width:0}.entry-card:hover{box-shadow:var(--shadow-hover);background:color-mix(in srgb, var(--surface) 78%, var(--surface-dim));border-color:color-mix(in srgb, var(--border) 65%, transparent)}.entry-card.active{border-color:var(--primary);box-shadow:0 0 0 1px color-mix(in srgb, var(--primary) 75%, transparent);background:color-mix(in srgb, var(--surface) 72%, var(--surface-dim))}.entry-date{color:var(--text);margin-bottom:4px;font-size:14px;font-weight:600}.entry-tags{flex-wrap:wrap;gap:4px;margin-bottom:6px;display:flex}.tag{background:var(--tag-bg);color:var(--tag-text);border-radius:10px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.entry-summary{color:var(--text-secondary);opacity:.88;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}#editor-area{flex-direction:column;display:flex;overflow:hidden}#editor-header{height:var(--header-height);background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-toolbar);z-index:1;justify-content:space-between;align-items:center;padding:8px 16px;display:flex;position:relative}.editor-date-wrap{flex-direction:column;gap:2px;min-width:0;display:flex}#editor-date{letter-spacing:-.01em;font-size:18px;font-weight:700}.editor-lunar{color:var(--text-secondary);font-size:12px;font-weight:500;line-height:1.25}.editor-lunar.hidden{display:none}.cal-lunar-tooltip{z-index:10050;max-width:min(320px,100vw - 24px);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius,8px);box-shadow:var(--shadow-popover,0 8px 24px #0000001f);pointer-events:none;box-sizing:border-box;padding:8px 10px;font-size:13px;line-height:1.4;position:fixed}#editor-status{color:var(--text-secondary);font-size:12px}#editor-container{--editor-font-size:16px;flex:1;overflow:hidden}#editor-container .toastui-editor-contents,#editor-container .toastui-editor-contents .ProseMirror,#editor-container .ProseMirror{font-size:var(--editor-font-size)!important;line-height:1.75!important}#editor-container .toastui-editor-dark.toastui-editor-defaultUI{border-color:var(--border);color:var(--text)}#editor-container .toastui-editor-dark .toastui-editor-main-container{color:var(--text)}#editor-container .toastui-editor-dark .toastui-editor-md-container,#editor-container .toastui-editor-dark .toastui-editor-ww-container{background-color:var(--surface)}#editor-container .toastui-editor-dark .toastui-editor-contents ul,#editor-container .toastui-editor-dark .toastui-editor-contents ol,#editor-container .toastui-editor-dark .toastui-editor-contents menu,#editor-container .toastui-editor-dark .toastui-editor-contents dir{color:var(--text-secondary)}#editor-container .toastui-editor-dark .toastui-editor-contents li,#editor-container .toastui-editor-dark .toastui-editor-contents th.toastui-editor-md-preview-highlight{color:var(--text)}#analysis-page{grid-template-columns:var(--sidebar-width) 1fr;height:100vh;display:grid}#analysis-content{flex-direction:column;display:flex;overflow:hidden}#analysis-tabs{background:var(--surface);border-bottom:1px solid var(--border);gap:0;padding:0 16px;display:flex}.tab-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:12px 20px;font-size:14px;transition:all .15s}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:500}#analysis-body{flex:1;padding:24px;overflow-y:auto}.analysis-tab-panel.hidden{display:none!important}.analysis-shared-toolbar{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;padding:12px 24px 8px}.analysis-shared-row{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.stats-toolbar{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:8px;display:flex}.stats-toolbar--inner{margin-bottom:16px}.stats-field{color:var(--text);align-items:center;gap:8px;font-size:14px;display:inline-flex}.stats-field select{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:6px 10px;font-size:13px}.analysis-custom-range{align-items:center;gap:8px;display:inline-flex}.analysis-custom-range input[type=date]{border:1px solid var(--border);border-radius:var(--radius);padding:5px 8px;font-size:13px}.analysis-range-sep{color:var(--text-secondary);font-size:13px}.analysis-range-hint{color:var(--text-secondary);margin-top:8px;margin-bottom:0;font-size:12px}.stats-section{margin-bottom:24px}.analysis-overview-section{margin-bottom:20px}.analysis-overview-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.analysis-overview-card{border:1px solid color-mix(in srgb, var(--primary) 16%, var(--border));background:radial-gradient(circle at top right, color-mix(in srgb, var(--primary) 12%, transparent), transparent 64%), var(--surface);border-radius:12px;padding:12px 14px;position:relative;box-shadow:0 2px 10px #0071e30f}.analysis-overview-label{color:var(--text-secondary);font-size:12px}.analysis-overview-value{letter-spacing:-.01em;color:var(--text);align-items:center;gap:6px;margin-top:6px;font-size:20px;font-weight:650;line-height:1.2;display:inline-flex}.analysis-overview-value--up{color:#15803d}.analysis-overview-value--down{color:#dc2626}.analysis-overview-note{color:var(--text-secondary);margin-top:4px;font-size:12px}.analysis-overview-trend-icon{font-size:14px;line-height:1;transform:translateY(-1px)}.stats-section-title{margin-bottom:12px;font-size:15px;font-weight:600}.stats-empty{color:var(--text-secondary);padding:16px 0;font-size:14px}.stats-charts-row{grid-template-columns:1fr 1fr;gap:20px;display:grid}@media (width<=900px){.stats-charts-row{grid-template-columns:1fr}.analysis-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.analysis-overview-grid{grid-template-columns:1fr}}@media (width<=768px){#sidebar{width:48px;min-width:48px}#sidebar .sidebar-calendar-stack{display:none}.sidebar-toggle-btn{transform:rotate(180deg)}#sidebar-nav .nav-btn span{display:none}#sidebar-nav .nav-btn{justify-content:center;padding:8px}#sidebar-nav{width:100%;padding:8px 4px}#app{grid-template-columns:48px minmax(160px,200px) minmax(0,1fr)}}@media (width<=600px){#app{grid-template-columns:48px 1fr}#timeline{display:none}#editor-area{grid-area:2/2}}.stats-chart-box .chart-canvas-wrap{height:260px;position:relative}.stats-chart-box .chart-canvas-wrap--tags{height:340px}.chart-canvas-wrap canvas{max-height:100%}.analysis-placeholder{color:var(--text-secondary);padding:24px 0;font-size:14px}.ai-config-hint{color:var(--text-secondary);margin-bottom:16px;font-size:13px;line-height:1.65}.ai-config-hint code{background:var(--bg);border-radius:4px;padding:2px 6px;font-size:12px}.ai-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.ai-status{color:var(--text-secondary);font-size:13px}.ai-error{color:#c62828;margin-bottom:12px;font-size:13px;line-height:1.5}.ai-result{margin-top:8px}.ai-result-block{margin-bottom:20px}.ai-result-title{color:var(--text);margin-bottom:8px;font-size:14px;font-weight:600}.ai-result-body{color:var(--text);white-space:pre-wrap;font-size:14px;line-height:1.65}.ai-result-body--md{white-space:normal}.ai-result-body--md p{margin:.5em 0}.ai-result-body--md p:first-child{margin-top:0}.ai-result-body--md p:last-child{margin-bottom:0}.ai-result-body--md ul,.ai-result-body--md ol{margin:.5em 0;padding-left:1.35em}.ai-result-body--md strong{font-weight:600}.ai-result-body--md code{background:color-mix(in srgb, var(--text) 8%, transparent);border-radius:4px;padding:.12em .35em;font-size:.92em}.ai-result-body--md pre{background:color-mix(in srgb, var(--text) 6%, transparent);border-radius:8px;margin:.6em 0;padding:10px 12px;font-size:13px;line-height:1.5;overflow-x:auto}.ai-result-body--md pre code{background:0 0;padding:0}.ai-result-body--md blockquote{border-left:3px solid color-mix(in srgb, var(--text) 25%, transparent);color:color-mix(in srgb, var(--text) 88%, transparent);margin:.5em 0;padding-left:.9em}.heatmap-wrap{border:1px solid var(--border);background:var(--surface);border-radius:12px;margin-bottom:8px;padding:18px 20px;display:inline-block}.heatmap-cal{border-collapse:separate;border-spacing:6px}.heatmap-cal-corner{width:40px}.heatmap-cal-wdh{color:var(--text-secondary);text-align:center;width:36px;padding-bottom:4px;font-size:13px;font-weight:500}.heatmap-cal-row-label{color:var(--text-secondary);text-align:right;white-space:nowrap;vertical-align:middle;padding-right:6px;font-size:12px}.heatmap-day{border-radius:6px;width:36px;height:36px;display:block}.heatmap-day.level-0{background:#ebedf0}.heatmap-day.level-1{background:#9be9a8}.heatmap-day.level-2{background:#40c463}.heatmap-day.level-3{background:#30a14e}.heatmap-day.level-4{background:#216e39}.heatmap-day.out{background:var(--border);opacity:.45}.heatmap-legend{color:var(--text-secondary);align-items:center;gap:6px;margin-top:14px;font-size:13px;display:flex}.heatmap-legend .heatmap-day{width:16px;height:16px}#settings-page{background:var(--bg);height:100vh;overflow-y:auto}.settings-toolbar{z-index:1;background:var(--surface);border-bottom:1px solid var(--border);padding:8px 16px;position:sticky;top:0}.settings-inner{max-width:640px;margin:0 auto;padding:24px 32px 48px}.settings-title{margin-bottom:8px;font-size:22px;font-weight:600}.settings-intro{color:var(--text-secondary);margin-bottom:24px;font-size:14px;line-height:1.5}.settings-intro code{background:var(--bg);border-radius:4px;padding:2px 6px;font-size:12px}.settings-section{border-bottom:1px solid var(--border);margin-bottom:28px;padding-bottom:24px}.settings-section:last-of-type{border-bottom:none}.settings-section-title{margin-bottom:12px;font-size:16px;font-weight:600}.settings-row{margin-bottom:10px;font-size:14px;line-height:1.5}.settings-hint{color:var(--text-secondary);margin-bottom:12px;font-size:13px;line-height:1.5}.settings-hint--warning{color:#9a3412;border-left:3px solid #ea580c;padding-left:10px}.settings-actions-inline--wrap{margin-top:12px}.settings-hint kbd{background:var(--bg);border:1px solid var(--border);border-radius:4px;margin:0 2px;padding:2px 6px;font-family:inherit;font-size:12px}.settings-presets{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.settings-label{color:var(--text-secondary);margin-right:4px;font-size:13px}.settings-field{margin-bottom:14px}.settings-field label{color:var(--text-secondary);margin-bottom:6px;font-size:13px;display:block}.settings-field input[type=text],.settings-field input[type=url],.settings-field input[type=password],.settings-field input[type=number],.settings-field select{border:1px solid var(--border);border-radius:var(--radius);box-sizing:border-box;width:100%;max-width:480px;padding:8px 10px;font-size:14px}.settings-field--inline{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.settings-field--inline label{margin-bottom:0}.settings-field--inline input[type=number]{width:100px;max-width:none}.settings-field--checkbox label{cursor:pointer;color:var(--text);align-items:center;gap:8px;display:flex}.settings-actions-inline{flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px;display:flex}.settings-actions-inline--wrap .settings-inline-status{flex-basis:100%}.settings-help{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-dim);max-width:520px;margin:12px 0 16px;overflow:hidden}.settings-help-summary{cursor:pointer;color:var(--text);padding:10px 12px;font-size:14px;font-weight:600;list-style:none}.settings-help-summary::-webkit-details-marker{display:none}.settings-help-summary:before{content:"▸";color:var(--text-secondary);margin-right:8px;transition:transform .15s;display:inline-block}.settings-help[open] .settings-help-summary:before{transform:rotate(90deg)}.settings-help-body{border-top:1px solid var(--border);color:var(--text);padding:0 12px 12px;font-size:13px;line-height:1.55}.settings-help-block{margin-top:12px}.settings-help-title{color:var(--text);margin-bottom:8px;font-size:13px;font-weight:600}.settings-help-list{margin:0 0 8px;padding-left:1.25em}.settings-help-list li{margin-bottom:6px}.settings-help-list li:last-child{margin-bottom:0}.settings-help-sublist{margin:8px 0 0;padding-left:1.25em;list-style:outside}.settings-help-sublist li{margin-bottom:6px}.settings-help-tip{color:var(--text-secondary);background:var(--surface);border:1px solid var(--border);border-radius:6px;margin:10px 0 0;padding:8px 10px;font-size:12px;line-height:1.5}.settings-help-perm-summary{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);margin:14px 0 0;padding:10px 12px}.settings-help-perm-summary-title{color:var(--text);margin-bottom:8px;font-size:13px;font-weight:600}.settings-help-perm-summary-list{color:var(--text-secondary);margin:0;padding-left:1.2em;font-size:12px;line-height:1.55}.settings-help-perm-summary-list li{margin-bottom:6px}.settings-help-perm-summary-list li:last-child{margin-bottom:0}.settings-help-links{margin:0 0 4px;font-size:13px}.settings-help-links a{color:var(--primary);text-decoration:none}.settings-help-links a:hover{text-decoration:underline}.settings-help-sep{color:var(--text-secondary);margin:0 6px}.settings-help-footnote{border-top:1px dashed var(--border);color:var(--text-secondary);margin:12px 0 0;padding-top:10px;font-size:12px}.settings-footer{flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px;padding-top:8px;display:flex}.settings-inline-status{color:var(--text-secondary);font-size:13px}.settings-placeholder{color:var(--text-secondary);font-size:14px;line-height:1.6}.onboarding-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.onboarding-card{background:var(--surface);border-radius:16px;width:100%;max-width:440px;padding:28px;box-shadow:0 8px 32px #0000002e}.onboarding-card h2{margin-bottom:16px;font-size:18px;font-weight:600}.onboarding-list{color:var(--text-secondary);margin:0 0 20px;padding-left:20px;font-size:14px;line-height:1.65}.onboarding-list li{margin-bottom:10px}.onboarding-list code{background:var(--bg);border-radius:4px;padding:1px 5px;font-size:12px}.onboarding-card .btn-primary{width:100%}.cal-root{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}#sidebar #calendar .cal-root{flex:0 auto}.cal-header{flex-shrink:0;justify-content:space-between;align-items:center;gap:6px;min-width:0;margin-bottom:8px;display:flex}.cal-title{text-align:center;letter-spacing:.02em;flex:1;min-width:0;font-size:15px;font-weight:600}.cal-nav{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:6px 8px;font-size:17px;line-height:1}.cal-nav:hover{background:var(--bg);color:var(--text)}.cal-grid{background:color-mix(in srgb, var(--border) 38%, transparent);border:1px solid color-mix(in srgb, var(--border) 58%, transparent);border-radius:var(--radius,8px);box-sizing:border-box;flex:1;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;width:100%;min-height:0;display:grid;overflow:hidden}#sidebar #calendar .cal-grid{flex:0 auto;grid-auto-rows:minmax(36px,auto);align-content:start}#analysis-calendar .cal-grid{grid-auto-rows:minmax(44px,auto)}.cal-weekday{color:var(--text-secondary);text-align:center;background:color-mix(in srgb, var(--border) 22%, var(--surface-dim));box-sizing:border-box;padding:6px 2px;font-size:10px;font-weight:600}.cal-day{cursor:pointer;background:var(--surface-dim);box-sizing:border-box;flex-direction:column;min-width:0;min-height:0;padding:5px 5px 4px;font-size:13px;transition:background .12s;display:flex;position:relative}.cal-day-inner{flex-direction:column;width:100%;min-width:0;height:100%;min-height:0;display:flex}.cal-row-top{flex-direction:row;flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:4px;width:100%;display:flex}.cal-day-lunar{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:auto;min-width:0;font-size:10px;line-height:1.2;overflow:hidden}.cal-day-lunar--empty{visibility:hidden}.cal-day-num{text-align:right;color:var(--text);flex:none;font-size:13px;font-weight:500;line-height:1.2}.cal-day.today .cal-day-num{font-variant-numeric:tabular-nums;background:#ff3b30;border-radius:999px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 5px;font-weight:600;display:inline-flex;color:#fff!important}.cal-day.other-month .cal-day-num{color:var(--text-secondary);font-weight:400}.cal-day.other-month.today .cal-day-num{background:#ff3b3073;color:#fff!important}.cal-day.selected{background:color-mix(in srgb, var(--primary) 18%, var(--surface-dim));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--primary) 50%, transparent)}.cal-day.selected .cal-day-lunar{color:var(--text-secondary)}.cal-day.selected .cal-day-entry-mark{color:var(--primary)}.cal-day.selected .cal-day-pill--todo{background:color-mix(in srgb, var(--primary) 22%, var(--surface-dim));color:var(--primary)}.cal-day:hover{filter:none;background:color-mix(in srgb, var(--border) 32%, var(--surface-dim))}.cal-day.selected:hover{background:color-mix(in srgb, var(--primary) 22%, var(--surface-dim))}.cal-day.other-month{opacity:.48}.cal-day.other-month .cal-day-lunar{opacity:.9}.cal-day-foot{flex-wrap:wrap;align-items:center;gap:3px 4px;width:100%;min-height:0;margin-top:auto;padding-top:3px;display:flex}.cal-day-pill{text-overflow:ellipsis;white-space:nowrap;border-radius:4px;max-width:100%;padding:2px 5px;font-size:9px;font-weight:500;line-height:1.25;overflow:hidden}.cal-day-entry-mark{color:color-mix(in srgb, var(--primary) 82%, var(--text));flex:none;justify-content:center;align-items:center;font-size:14px;font-weight:800;line-height:1;display:inline-flex;transform:translateY(-1px)}.cal-day-pill--todo{background:color-mix(in srgb, var(--primary) 16%, var(--surface-dim));color:var(--primary)}.cal-day-more{color:var(--text-secondary);flex:none;font-size:9px;line-height:1.2}#sidebar .sidebar-todos{border-top:1px solid var(--border);flex-direction:column;flex:auto;min-height:0;margin-top:0;padding:10px 12px 12px;display:flex;overflow:hidden}.sidebar-todos-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.sidebar-todos-title{color:var(--text);font-size:13px;font-weight:600}.btn-todo-add{background:var(--bg);width:26px;height:26px;color:var(--text);cursor:pointer;border:none;border-radius:6px;flex-shrink:0;padding:0;font-size:18px;line-height:1}.btn-todo-add:hover{background:var(--border)}.sidebar-todos-hint{color:var(--text-secondary);margin:0 0 8px;font-size:12px;line-height:1.4}.sidebar-todos-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}#sidebar .sidebar-todos-list{flex:1;min-height:0;max-height:min(220px,35vh)}.sidebar-todo-item{background:var(--bg);border-radius:6px;align-items:flex-start;gap:6px;padding:6px 8px;font-size:12px;display:flex}.sidebar-todo-item.done{opacity:.55}.sidebar-todo-item input[type=checkbox]{flex-shrink:0;margin-top:2px}.sidebar-todo-body{flex:1;min-width:0}.sidebar-todo-title{word-break:break-word;cursor:pointer;text-align:left;font:inherit;color:inherit;background:0 0;border:none;width:100%;padding:0;display:block}.sidebar-todo-title:hover{text-decoration:underline}.sidebar-todo-del{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:14px;line-height:1.2}.sidebar-todo-del:hover{color:#c0392b}.empty-state{height:100%;color:var(--text-secondary);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex}.empty-state .icon{opacity:.5;margin-bottom:12px;font-size:48px}.empty-state p{font-size:14px;line-height:1.5}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}#goals-page{grid-template-columns:var(--sidebar-width) 1fr;height:100vh;display:grid;overflow:hidden}#goals-sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;padding:16px;display:flex;overflow-y:auto}#goals-nav{flex-direction:column;gap:4px;margin-top:auto;display:flex}#goals-content{padding:24px 32px;overflow-y:auto}.goals-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.goals-title{font-size:20px;font-weight:600}.goals-overview{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px;display:grid}.goals-overview-card{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:10px 12px}.goals-overview-label{color:var(--text-secondary);font-size:12px}.goals-overview-value{color:var(--text);margin-top:4px;font-size:20px;font-weight:600;line-height:1.15}.goals-filter{gap:8px;margin-bottom:14px;display:flex}.goals-filter-btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text-secondary);border-radius:999px;padding:6px 12px;font-size:12px;transition:all .15s}.goals-filter-btn:hover{border-color:var(--primary);color:var(--primary)}.goals-filter-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.goal-node{margin-bottom:8px}.goal-node-header{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:10px;flex-direction:column;align-items:stretch;gap:8px;padding:11px 12px;transition:border-color .15s,background .15s;display:flex}.goal-node-header:hover{background:#fbfcff;border-color:#d8e4ff}.goal-main-row{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.goal-main-left{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.goal-main-right{flex-shrink:0}.goal-sub-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.goal-sub-left{align-items:center;gap:12px;min-width:0;display:flex}.goal-sub-right{flex-shrink:0;align-items:center;gap:10px;display:flex}.goal-toggle{width:18px;height:18px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;transition:transform .15s;display:flex}.goal-toggle:hover{background:var(--border)}.goal-toggle.expanded{transform:rotate(90deg)}.goal-toggle.leaf{visibility:hidden}.goal-type-badge{border-radius:999px;flex-shrink:0;padding:3px 7px;font-size:10px;font-weight:600}.goal-type-badge.long{color:#1e40af;background:#dbeafe}.goal-type-badge.mid{color:#c2410c;background:#fed7aa}.goal-type-badge.short{color:#065f46;background:#d1fae5}.goal-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;font-size:14px;font-weight:600;line-height:1.4;display:-webkit-box;overflow:hidden}.goal-status-badge{border-radius:999px;flex-shrink:0;padding:2px 8px;font-size:11px;font-weight:600}.goal-status-badge.active{color:#1d4ed8;background:#dbeafe}.goal-status-badge.completed{color:#166534;background:#dcfce7}.goal-status-badge.abandoned{color:#6b7280;background:#f3f4f6}.goal-title.completed{color:#166534}.goal-title.abandoned{color:var(--text-secondary);opacity:.85}.goal-dates,.goal-linked-count{color:var(--text-secondary);white-space:nowrap;font-size:12px}.goal-progress-wrap{flex-shrink:0;align-items:center;gap:0;min-width:132px;display:flex}.goal-progress-bar{background:#e5e7eb;border-radius:999px;flex:1;height:8px;overflow:hidden}.goal-progress-fill{background:var(--primary);border-radius:999px;height:100%;transition:width .3s}.goal-progress-fill.done{background:var(--accent)}.goal-progress-text{color:#1f2937;text-align:right;min-width:34px;font-size:12px;font-weight:600}.goal-actions{flex-shrink:0;gap:6px;display:flex}.goal-action-btn{border:1px solid var(--border);cursor:pointer;color:#4b5563;white-space:nowrap;background:#fff;border-radius:6px;justify-content:center;align-items:center;height:24px;padding:0 8px;font-size:12px;display:flex}.goal-action-btn:hover{color:var(--text);background:#f8fafc;border-color:#cbd5e1}.goal-children{margin-top:6px;padding-left:18px}.goal-children.collapsed{display:none}.goal-body-preview{color:var(--text-secondary);padding:2px 12px 8px;font-size:12px;line-height:1.5}.goals-empty{text-align:center;color:var(--text-secondary);padding:48px 24px;font-size:14px}@media (width<=1080px){.goals-overview{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){#goals-content{padding:18px 16px}.goals-overview{grid-template-columns:1fr}.goal-sub-row{flex-direction:column;align-items:flex-start;gap:8px}.goal-sub-right{justify-content:space-between;width:100%}.goal-progress-wrap{flex:1;min-width:0}}.goal-modal{z-index:1000;background:#00000073;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.goal-modal-card{background:var(--surface);border-radius:16px;width:100%;max-width:500px;max-height:90vh;padding:24px;overflow-y:auto;box-shadow:0 8px 32px #0000002e}.goal-modal-card h2{margin-bottom:20px;font-size:18px;font-weight:600}.goal-modal-body{margin-bottom:20px}.goal-modal-body textarea{border:1px solid var(--border);border-radius:var(--radius);resize:vertical;width:100%;max-width:480px;padding:8px 10px;font-family:inherit;font-size:14px}.goal-modal-footer{justify-content:space-between;align-items:center;display:flex}.goal-modal-footer-right{gap:8px;display:flex}.btn-danger{border-radius:var(--radius);color:#ef4444;cursor:pointer;background:#fff;border:1px solid #ef4444;padding:8px 16px;font-size:14px;transition:all .15s}.btn-danger:hover{background:#fef2f2}.editor-work-hours-wrap{flex-shrink:0;align-items:center;gap:4px;margin-left:16px;display:flex}.editor-work-hours-label{cursor:default;font-size:14px;line-height:1}.editor-work-hours-input{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:52px;color:var(--text);text-align:center;-moz-appearance:textfield;padding:2px 6px;font-family:inherit;font-size:13px;transition:border-color .15s}.editor-work-hours-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.editor-work-hours-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.editor-work-hours-input:focus{border-color:var(--accent);outline:none}.editor-work-hours-unit{color:var(--text-secondary);font-size:12px}.editor-goals-wrap{flex:1;align-items:center;gap:8px;min-width:0;margin-left:16px;display:flex}.editor-goals-label{color:var(--text-secondary);flex-shrink:0;font-size:13px;font-weight:600}.editor-goals-tags{flex-wrap:wrap;gap:4px;min-width:0;display:flex}.editor-goal-tag{background:var(--tag-bg);color:var(--tag-text);white-space:nowrap;border-radius:12px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;display:inline-flex}.editor-goal-tag-remove{cursor:pointer;color:var(--tag-text);opacity:.6;background:0 0;border:none;padding:0;font-size:12px;line-height:1}.editor-goal-tag-remove:hover{opacity:1}.editor-goals-add-wrap{flex-shrink:0;position:relative}.editor-goals-add-btn{border:1px dashed var(--border);cursor:pointer;width:24px;height:24px;color:var(--text-secondary);background:0 0;border-radius:12px;justify-content:center;align-items:center;font-size:14px;transition:all .15s;display:flex}.editor-goals-add-btn:hover{border-color:var(--primary);color:var(--primary)}.editor-goals-dropdown{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:220px;max-height:240px;box-shadow:var(--shadow-hover);z-index:100;margin-top:4px;position:absolute;top:100%;left:0;overflow-y:auto}.editor-goals-option{cursor:pointer;align-items:center;gap:8px;padding:8px 12px;font-size:13px;transition:background .1s;display:flex}.editor-goals-option:hover{background:var(--bg)}.editor-goals-option.selected{color:var(--primary);font-weight:500}.editor-goals-option .goal-type-badge{padding:1px 6px;font-size:10px}.editor-goals-empty{color:var(--text-secondary);text-align:center;padding:12px;font-size:13px}.editor-toolbar{border-bottom:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-toolbar);z-index:1;justify-content:flex-start;padding:4px 12px;display:flex;position:relative}.editor-delete-btn{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;padding:4px 10px;font-size:13px;transition:all .15s}.editor-delete-btn:hover{color:#ef4444;background:#fef2f2}.editor-template-btn{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;padding:4px 10px;font-size:13px;transition:all .15s}.editor-template-btn:hover{color:var(--accent);background:var(--hover)}.template-modal{z-index:1000;background:#00000073;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.template-modal.hidden{display:none}.template-modal-card{background:var(--surface);border-radius:16px;width:100%;max-width:600px;max-height:85vh;padding:24px;overflow-y:auto;box-shadow:0 8px 32px #0000002e}.template-modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.template-modal-header h2{margin:0;font-size:18px;font-weight:600}.template-modal-close{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:22px;line-height:1;transition:all .15s}.template-modal-close:hover{color:var(--text);background:var(--hover)}.template-section-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-top:4px;margin-bottom:10px;font-size:12px;font-weight:600}.template-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px;display:grid}.template-card{border:1px solid var(--border);background:var(--surface);cursor:pointer;text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:16px 10px;transition:all .15s;display:flex;position:relative}.template-card:hover{border-color:var(--accent);background:var(--hover);box-shadow:0 2px 8px #0000000f}.template-card-icon{font-size:28px;line-height:1}.template-card-name{color:var(--text);font-size:13px;font-weight:600}.template-card-desc{color:var(--text-secondary);font-size:11px;line-height:1.4}.template-card-delete{cursor:pointer;color:var(--text-secondary);opacity:0;background:0 0;border:none;border-radius:4px;padding:2px 6px;font-size:16px;line-height:1;transition:all .15s;position:absolute;top:4px;right:4px}.template-card:hover .template-card-delete{opacity:1}.template-card-delete:hover{color:#ef4444;background:#fef2f2}.template-empty-hint{color:var(--text-secondary);text-align:center;padding:16px 0;font-size:13px}.template-modal-footer{border-top:1px solid var(--border);justify-content:center;padding-top:16px;display:flex}.btn-save-template{border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text-secondary);border-radius:8px;padding:8px 16px;font-size:13px;transition:all .15s}.btn-save-template:hover{color:var(--accent);border-color:var(--accent);background:var(--hover)}.template-prompt-overlay{z-index:1100}.template-prompt-card{background:var(--surface);border-radius:16px;width:100%;max-width:400px;padding:24px;box-shadow:0 8px 32px #00000038}.template-prompt-card h3{margin:0 0 18px;font-size:16px;font-weight:600}.template-prompt-field{margin-bottom:14px}.template-prompt-field label{color:var(--text-secondary);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.template-prompt-field .required{color:#ef4444}.template-prompt-field input{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;color:var(--text);padding:8px 10px;font-family:inherit;font-size:14px;transition:border-color .15s}.template-prompt-field input:focus{border-color:var(--accent);outline:none}.template-prompt-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}@media (width<=600px){.template-grid{grid-template-columns:repeat(2,1fr)}.template-modal-card{max-width:100%;margin:8px;padding:16px}}#theme-page{grid-template-columns:var(--sidebar-width) 1fr;height:100vh;display:grid;overflow:hidden}#theme-sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;padding:16px;display:flex;overflow-y:auto}#theme-nav{flex-direction:column;gap:4px;display:flex}#theme-content{background:var(--bg);padding:24px 32px;overflow-y:auto}.theme-page-header{margin-bottom:24px}.theme-page-title{color:var(--text);font-size:20px;font-weight:600}.theme-page-lead{color:var(--text-secondary);margin-top:8px;font-size:13px;line-height:1.5}.theme-page-lead code{background:var(--surface-dim);color:var(--text);border-radius:4px;padding:1px 5px;font-size:12px}.theme-sections{flex-direction:column;gap:8px;display:flex}.theme-section{margin-bottom:20px}.theme-section-title{color:var(--text);margin-bottom:12px;font-size:15px;font-weight:600}.theme-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.theme-card{text-align:left;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;font:inherit;color:inherit;flex-direction:column;align-items:stretch;padding:14px;transition:border-color .15s,box-shadow .15s;display:flex}.theme-card:hover{border-color:var(--primary);box-shadow:var(--shadow-hover)}.theme-card:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.theme-card--active{border-color:var(--primary);box-shadow:var(--shadow);outline:2px solid var(--primary);outline-offset:0}.theme-card-preview{gap:6px;margin-bottom:10px;display:flex}.theme-swatch{border:1px solid var(--border);border-radius:6px;flex:1;height:28px}.theme-card-name{color:var(--text);margin-bottom:4px;font-size:14px;font-weight:600}.theme-card-desc{color:var(--text-secondary);font-size:12px;line-height:1.35}.theme-page-status{min-height:1.25em;color:var(--text-secondary);margin-top:16px;font-size:13px}@media (width<=600px){#theme-page{grid-template-rows:auto 1fr;grid-template-columns:1fr}#theme-sidebar{border-right:none;border-bottom:1px solid var(--border);flex-direction:row;align-items:center}}
