:root{--bg: #f4f4f4;--panel: #ffffff;--border: #e3e3e3;--text: #1a1a1a;--muted: #8c8c8c;--accent: #1a1a1a;--accent-soft: #ededed;--danger: #9a3b3b;--font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-read: "Times New Roman", Times, "Songti SC", "Songti TC", SimSun, "宋体", serif;font-family:var(--font-ui)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:14px}button{font:inherit;cursor:pointer}.app{display:flex;height:100vh;overflow:hidden}.workspace{flex:1;display:flex;min-width:0}.splitter{width:6px;flex:0 0 6px;cursor:col-resize;background:transparent;border-left:1px solid var(--border);transition:background .15s}.splitter:hover{background:var(--accent-soft)}.sidebar{flex:0 0 auto;background:var(--panel);display:flex;flex-direction:column;overflow:hidden}.sidebar-header,.content-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border)}.sidebar-header h1{font-size:16px;margin:0}.book-list{list-style:none;margin:0;padding:8px;overflow-y:auto;flex:1}.book-item{padding:10px 12px;border-radius:8px;cursor:pointer;margin-bottom:4px}.book-item:hover{background:var(--bg)}.book-item.active{background:var(--accent-soft)}.book-item .book-title{font-weight:600}.book-item .book-meta{font-size:12px;color:var(--muted);margin-top:2px}.content{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}.content-body{overflow-y:auto}.content-body{padding:24px;max-width:720px}.budget{margin:4px 0 20px;color:var(--muted);font-size:13px}.progress{height:6px;background:var(--border);border-radius:3px;overflow:hidden;margin-top:6px}.progress>span{display:block;height:100%;background:var(--accent)}.chapter-list{list-style:none;margin:0;padding:0}.chapter-row{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--panel);border:1px solid var(--border);border-radius:8px;margin-bottom:8px}.chapter-row .drag-handle{cursor:grab;color:var(--muted);-webkit-user-select:none;user-select:none;padding:0 4px}.chapter-row .chapter-index{color:var(--muted);min-width:56px}.chapter-row .chapter-name{flex:1}.chapter-row .chapter-open{cursor:pointer}.chapter-row .chapter-open:hover{color:var(--accent)}.chapter-row input{flex:1;font:inherit;padding:4px 6px;border:1px solid var(--accent);border-radius:4px}.btn{border:1px solid var(--border);background:var(--panel);border-radius:6px;padding:6px 12px;color:var(--text)}.btn:hover{background:var(--bg)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{opacity:.9;background:var(--accent)}.btn-ghost{border:none;background:transparent;color:var(--muted);padding:4px 8px}.btn-ghost:hover{color:var(--text)}.btn-danger:hover{color:var(--danger)}.empty{color:var(--muted);padding:40px 0;text-align:center}.life-dashboard{flex:1;min-width:0;overflow-y:auto;background:#f5f5f2;color:#293033;padding:28px clamp(24px,4vw,64px) 36px;--life-border: #e1e4df;--life-muted: #89918d;--life-ink: #293033;--life-paper: #fffefa}.life-header,.life-day-panel,.life-grid,.life-footer{width:min(1180px,100%);margin-inline:auto}.life-header{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding-bottom:24px}.eyebrow,.section-kicker{margin:0 0 8px;color:var(--life-muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.life-header h2{margin:0;color:var(--life-ink);font-family:var(--font-read);font-size:clamp(24px,3vw,38px);font-weight:400;line-height:1.2}.life-subtitle,.card-helper{color:var(--life-muted);line-height:1.6}.life-subtitle{margin:10px 0 0}.life-header-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.sleep-chip{padding:6px 10px;border:1px solid;border-radius:999px;font-size:12px}.sleep-chip.blue{color:#648da6;background:#e6eff3;border-color:#c8dce5}.sleep-chip.green{color:#718b75;background:#edf2eb;border-color:#d2dfd0}.sleep-chip.orange{color:#b48455;background:#f5eee4;border-color:#ead8c0}.sleep-chip.red{color:#a86b67;background:#f5e9e7;border-color:#e4c8c4}.life-day-panel{display:grid;grid-template-columns:160px 1fr;border-top:1px solid var(--life-border);border-bottom:1px solid var(--life-border);background:#fffefa7a}.sleep-timeline{padding:22px 28px 24px 0;border-right:1px solid var(--life-border)}.timeline-caption{color:var(--life-muted);font-size:11px;letter-spacing:.08em}.timeline-scale{position:relative;height:460px;margin-top:12px;color:var(--life-muted);font-size:10px}.timeline-scale>span{position:absolute;left:0;top:0}.timeline-scale .timeline-bottom{top:auto;bottom:0}.timeline-track{position:absolute;left:61px;top:3px;width:15px;height:452px;overflow:hidden;background:#e8ece8;border-radius:10px}.timeline-track:after{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(to bottom,transparent 0,transparent 22.8%,rgba(255,255,255,.65) 23%,transparent 23.5%);content:""}.sleep-fill{position:absolute;z-index:1;inset-inline:0;top:0;border-radius:10px 10px 5px 5px}.timeline-track.blue .sleep-fill{background:#91b7c8}.timeline-track.green .sleep-fill{background:#a8bca1}.timeline-track.orange .sleep-fill{background:#d4ad7f}.timeline-track.red .sleep-fill{background:#cf9189}.timeline-day-fill{position:absolute;z-index:1;left:0;right:0;top:31%;height:36%;background:#c8cdca}.timeline-track.overtime .timeline-day-fill{background:#cfbbb3}.timeline-track.rest .timeline-day-fill{background:#c8d5c3}.timeline-transition-fill{position:absolute;z-index:1;left:0;right:0;top:67%;height:5%;background:#eceeea}.timeline-life-fill{position:absolute;z-index:1;left:0;right:0;top:72%;bottom:0;background:#eadfae}.timeline-meal-marker{position:absolute;z-index:3;left:56px;display:flex;align-items:center;gap:5px;transform:translateY(-50%);color:#7f8783;font-size:9px;white-space:nowrap}.timeline-scale>.timeline-meal-marker{left:56px}.timeline-meal-marker i{width:24px;height:2px;background:currentColor}.timeline-meal-marker b{padding:2px 4px;border-radius:3px;background:#fffefa;font-weight:500}.timeline-meal-marker.healthy{color:#78937a}.timeline-meal-marker.normal{color:#6f91a1}.timeline-meal-marker.less-healthy{color:#8e9692}.timeline-meal-marker.unhealthy{color:#a66f6a}.timeline-sleep-label{position:absolute;left:88px;top:78px;white-space:nowrap;color:var(--life-muted);line-height:1.4}.timeline-sleep-label strong{color:var(--life-ink);font-size:14px;font-weight:500}.timeline-state-label,.timeline-life-label{position:absolute;left:88px;width:64px;color:var(--life-muted);font-size:10px;line-height:1.35}.timeline-state-label{top:44%}.timeline-life-label{top:82%;color:#9d8b53}.timeline-input{display:flex;gap:4px;align-items:baseline;margin-top:10px;color:var(--life-muted);font-size:11px}.timeline-input input{width:42px;padding:3px 0;border:0;border-bottom:1px solid var(--life-border);background:transparent;color:var(--life-ink);text-align:center}.sleep-range-edit{display:grid;gap:6px;margin-top:12px}.sleep-range-edit label{display:grid;gap:2px;color:var(--life-muted);font-size:10px}.sleep-range-edit input{width:94px;padding:4px 2px;border:0;border-bottom:1px solid var(--life-border);background:transparent;color:var(--life-ink);font:inherit;font-size:11px}.sleep-range-edit strong{color:var(--life-ink);font-size:10px;font-weight:500}.day-mode-picker{display:grid;gap:4px;margin-top:14px}.day-mode-picker button{padding:6px 7px;border:1px solid var(--life-border);border-radius:4px;background:transparent;color:var(--life-muted);font:inherit;font-size:10px;text-align:left}.day-mode-picker button.active.workday{border-color:#c8cdca;background:#eef0ee;color:#646b67}.day-mode-picker button.active.overtime{border-color:#d7c4bd;background:#f4ece9;color:#8e6d63}.day-mode-picker button.active.rest{border-color:#c8d5c3;background:#edf3ea;color:#6e8268}.day-stream{padding:22px 0 0 32px}.stream-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding-right:24px}.schedule-time-editor{display:flex;gap:8px;flex-wrap:wrap;padding:14px 24px 14px 0}.schedule-time-editor label{display:flex;align-items:center;gap:6px;color:var(--life-muted);font-size:10px}.schedule-time-editor input{width:88px;padding:5px 6px;border:1px solid var(--life-border);border-radius:4px;background:#ffffffb8;color:var(--life-ink);font:inherit;font-size:11px}.schedule-editor-details,.personal-plan-details{margin-right:24px;color:var(--life-muted);font-size:11px}.schedule-editor-details summary,.personal-plan-details summary{padding:12px 0;cursor:pointer}.schedule-editor-details .schedule-time-editor{padding-top:2px}.stream-heading h3,.card-heading h3{margin:0;font-size:17px;font-weight:600}.muted-note{color:var(--life-muted);font-size:12px;line-height:1.5}.stream-row{display:grid;grid-template-columns:58px 1fr;gap:18px;border-top:1px solid var(--life-border)}.stream-row:first-of-type{margin-top:18px}.stream-row-quiet{padding:18px 24px 20px 0}.stream-row-work{min-height:210px;padding:20px 24px 22px 0}.stream-row-work{min-height:0}.stream-row-plan{min-height:48px;padding:14px 24px 14px 0}.stream-row-large{min-height:112px;padding:22px 24px 22px 0}.stream-time{color:var(--life-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;padding-top:3px}.stream-entry{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px;align-content:flex-start}.stream-entry strong{font-size:14px;font-weight:600}.stream-entry span:not(.stream-status){color:var(--life-muted);font-size:13px}.stream-status{margin-left:auto;color:#718b75;font-size:11px}.stream-status.soft{color:#b08e6d}.stream-entry-focus{padding-left:12px;border-left:2px solid #91b7c8}.stream-entry-life{padding-left:12px;border-left:2px solid #dfcd83}.work-todo-block{min-width:0;padding:14px 16px;border-left:3px solid #b8bfbb;background:#f1f2f0}.work-todo-block.overtime{border-left-color:#c8a99f;background:#f5efed}.work-todo-block.rest{border-left-color:#afc2a9;background:#f0f4ee}.work-todo-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:10px;border-bottom:1px solid rgba(83,92,87,.12)}.work-todo-heading strong{font-size:13px;font-weight:600}.work-todo-heading span{color:var(--life-muted);font-size:10px}.work-todo-list{display:grid;gap:8px;padding:12px 0}.work-todo-list label{display:flex;align-items:center;gap:8px;color:var(--life-ink);font-size:12px;cursor:pointer}.work-todo-list label.done span{color:var(--life-muted);text-decoration:line-through}.work-todo-list input{width:14px;height:14px;margin:0;accent-color:#7d8983}.work-todo-item{display:grid;grid-template-columns:14px minmax(0,1fr) 20px;gap:8px;align-items:center}.work-todo-item .todo-text-input{width:100%;height:auto;padding:3px 2px;border:0;border-bottom:1px solid transparent;background:transparent;color:var(--life-ink);font:inherit;font-size:12px}.work-todo-item .todo-text-input:focus{border-bottom-color:#b8bfbb;outline:0}.work-todo-item.done .todo-text-input{color:var(--life-muted);text-decoration:line-through}.work-todo-item button{padding:0;border:0;background:transparent;color:#aeb4b0;font:inherit;cursor:pointer}.work-todo-item button,.meal-remove,.expense-edit-row button,.study-edit-row button{display:grid;place-items:center;width:20px;height:20px;line-height:1}.work-todo-input{display:grid;grid-template-columns:1fr 34px;gap:6px}.work-todo-input input{min-width:0;padding:7px 8px;border:1px solid rgba(83,92,87,.18);border-radius:4px;background:#ffffffb3;color:var(--life-ink);font:inherit;font-size:11px}.work-todo-input .btn{padding:0}.personal-plan-details{margin-top:4px;border-top:1px solid var(--life-border)}.personal-plan-add,.personal-plan-list>div{display:grid;grid-template-columns:88px minmax(0,1fr) 34px;gap:6px;align-items:center}.personal-plan-add{padding-bottom:10px}.personal-plan-add input,.personal-plan-list input{min-width:0;padding:7px 8px;border:1px solid var(--life-border);border-radius:4px;background:#ffffffb8;color:var(--life-ink);font:inherit;font-size:11px}.personal-plan-add .btn,.personal-plan-list button{display:grid;place-items:center;width:34px;height:32px;padding:0}.personal-plan-list{display:grid;gap:5px;padding-bottom:14px}.personal-plan-list button{border:0;background:transparent;color:#aeb4b0;font:inherit}.life-grid{display:grid;gap:14px;margin-top:14px}.life-grid-three{grid-template-columns:repeat(3,minmax(0,1fr))}.life-grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}.solo-life-zone{width:min(1180px,100%);margin:14px auto 0;padding:18px;border-left:4px solid #dfcd83;background:#f4efd9}.solo-life-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:2px 2px 4px}.solo-life-heading h3{margin:0;font-size:18px;font-weight:600}.solo-life-heading>span{color:#9b8b57;font-size:11px}.life-card{min-width:0;padding:20px;border:1px solid var(--life-border);background:var(--life-paper)}.card-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.card-icon{color:var(--life-muted);font-size:20px;line-height:1}.card-helper{margin:10px 0 16px;font-size:12px}.meal-list{border-top:1px solid var(--life-border)}.meal-row{display:grid;grid-template-columns:12px 72px minmax(0,1fr) 18px;align-items:center;gap:6px;width:100%;padding:8px 0;border-bottom:1px solid var(--life-border);color:var(--life-ink)}.meal-row time{color:var(--life-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}.meal-name{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.meal-dot{display:block;width:9px;height:9px;padding:0;border:0;border-radius:50%;cursor:pointer}.meal-dot.healthy{color:#8ca184;background:#a8bca1}.meal-dot.normal{color:#7399aa;background:#91b7c8}.meal-dot.less-healthy{color:#8e9692;background:#aeb4b0}.meal-dot.unhealthy{color:#b77972;background:#cf9189}.meal-label{margin-left:auto;font-size:11px}.meal-label.healthy{color:#718b75}.meal-label.normal{color:#648da6}.meal-label.less-healthy{color:#b48455}.meal-label.unhealthy{color:#a86b67}.meal-remove{padding:0;border:0;background:transparent;color:#aeb4b0;font:inherit;cursor:pointer}.meal-empty{padding:12px 0;margin:0}.meal-inputs{display:grid;grid-template-columns:72px minmax(90px,1fr) 52px 34px;gap:6px;margin-top:10px}.meal-inputs input{width:100%;min-width:0;padding:6px;border:1px solid var(--life-border);border-radius:4px;background:#fff;color:var(--life-ink);font:inherit;font-size:11px}.meal-inputs .btn{padding:0}.meal-tone-picker{display:flex;align-items:center;justify-content:space-around;min-width:0;padding:0 4px;border:1px solid var(--life-border);border-radius:4px;background:#fff}.meal-tone-picker .meal-dot{width:8px;height:8px;opacity:.42}.meal-tone-picker .meal-dot.active{opacity:1;box-shadow:0 0 0 2px #fff,0 0 0 3px currentColor}.meal-add-details{color:var(--life-muted);font-size:11px}.meal-add-details summary{padding:11px 0 2px;cursor:pointer}.meal-row input{width:100%;min-width:0;padding:4px 2px;border:0;border-bottom:1px solid transparent;background:transparent;color:var(--life-ink);font:inherit;font-size:11px}.meal-row input:focus{border-bottom-color:var(--life-border);outline:0}.water-checkin{padding:14px 0 2px;border-bottom:1px solid var(--life-border)}.water-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;color:var(--life-muted);font-size:11px}.water-heading strong{color:#648da6;font-size:12px;font-weight:500}.water-progress{height:6px;margin:9px 0 11px;overflow:hidden;border-radius:3px;background:#e8eeef}.water-progress span{display:block;height:100%;border-radius:inherit;background:#8daec2;transition:width .2s ease}.water-actions{display:grid;grid-template-columns:30px 1fr auto 36px;gap:6px;align-items:center;padding-bottom:8px}.water-actions button{height:30px;border:1px solid #cfdee3;border-radius:4px;background:#f2f7f8;color:#648da6;font:inherit;font-size:12px}.water-actions .water-add{font-weight:500}.water-actions .water-reset{display:grid;place-items:center;padding:0;font-size:16px;line-height:1}.water-actions label{display:flex;align-items:center;gap:4px;color:var(--life-muted);font-size:10px}.water-actions input{width:70px;padding:6px 4px;border:1px solid var(--life-border);border-radius:4px;background:#fff;color:var(--life-ink);font:inherit;font-size:10px;text-align:center}.water-goal{display:flex;justify-content:flex-end;align-items:center;gap:5px;margin-right:42px;padding-bottom:10px;color:var(--life-muted);font-size:10px}.water-goal input{width:70px;padding:5px;border:1px solid var(--life-border);border-radius:4px;background:#fff;color:var(--life-ink);font:inherit;text-align:center}.water-edit-details,.expense-history,.expense-add-details,.study-add-details,.todo-add-details{color:var(--life-muted);font-size:11px}.water-edit-details summary,.expense-history summary,.expense-add-details summary,.study-add-details summary,.todo-add-details summary{padding:8px 0;cursor:pointer}.milk-tea-quota,.writing-footer{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding-top:16px;color:var(--life-muted);font-size:12px}.milk-tea-quota strong{color:var(--life-ink);font-weight:500}.milk-tea-quota>div{display:flex;gap:4px;margin-left:auto}.milk-tea-quota button{display:grid;place-items:center;width:28px;height:26px;padding:0;border:1px solid #e0d7bd;border-radius:4px;background:#fbf8ee;color:#9a8654;line-height:1}.milk-tea-quota label{display:flex;align-items:center;gap:4px;font-size:10px}.milk-tea-quota input{width:38px;padding:5px 3px;border:1px solid var(--life-border);border-radius:4px;text-align:center}.milk-tea-quota>strong{font-size:18px}.quota-locked{flex-basis:100%;color:var(--life-muted);font-size:10px}.quota-setting{flex-basis:100%;font-size:10px}.quota-setting summary{padding:5px 0;cursor:pointer}.milk-tea-quota .quota-setting button{width:auto;padding:0 8px;font-size:10px}.finance-range{margin-top:16px}.finance-total{display:flex;align-items:baseline;gap:8px;padding:18px 0 12px}.finance-total strong{font-size:28px;font-weight:500}.finance-total span{color:var(--life-muted);font-size:12px}.finance-total .check-mark{margin-left:auto;color:#718b75}.expense-breakdown{display:flex;gap:8px 12px;flex-wrap:wrap;padding:0 0 12px}.expense-breakdown>span{display:inline-flex;align-items:center;gap:5px;color:var(--life-muted);font-size:10px}.expense-breakdown i,.expense-row i{width:7px;height:7px;border-radius:50%}.expense-breakdown strong{color:var(--life-ink);font-weight:500}.expense-list{border-top:1px solid var(--life-border)}.expense-row{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--life-border);color:var(--life-muted);font-size:12px}.expense-row span{display:inline-flex;align-items:center;gap:7px}.expense-row strong{color:var(--life-ink);font-weight:500}.expense-inputs{display:grid;grid-template-columns:minmax(80px,1fr) 64px 90px 36px;gap:6px;margin-top:14px}.expense-inputs input,.expense-inputs select,.xhs-card input,.media-form input,.media-card textarea{width:100%;min-width:0;padding:8px 9px;border:1px solid var(--life-border);border-radius:5px;background:#fff;color:var(--life-ink);font:inherit;font-size:12px}.expense-inputs .btn{padding-inline:0}.expense-edit-row{display:grid;grid-template-columns:7px minmax(60px,1fr) 58px 78px 18px;gap:6px;align-items:center}.expense-edit-row input,.expense-edit-row select{min-width:0;padding:5px 3px;border:0;border-bottom:1px solid transparent;background:transparent;color:var(--life-ink);font:inherit;font-size:11px}.expense-edit-row input:focus,.expense-edit-row select:focus{border-bottom-color:var(--life-border);outline:0}.expense-edit-row button{padding:0;border:0;background:transparent;color:#aeb4b0;font:inherit}.energy-score{display:flex;align-items:baseline;gap:4px;margin-top:26px}.energy-score strong{font-size:42px;font-weight:400}.energy-score span{color:var(--life-muted);font-size:13px}.energy-score i{width:10px;height:10px;margin-left:5px;border-radius:50%}.happiness-slider{width:100%;accent-color:#8ba98d}.energy-meter{height:7px;margin:10px 0 18px;overflow:hidden;border-radius:4px;background:#edf0ec}.energy-meter span{display:block;height:100%;border-radius:inherit}.range-tabs button{padding:6px 8px;border:1px solid var(--life-border);border-radius:4px;background:transparent;color:var(--life-muted);font:inherit;font-size:11px}.range-tabs button.active{border-color:#b8cbc0;background:#edf2eb;color:#718b75}.language-card,.writing-card{min-height:300px}.range-tabs{display:flex;gap:4px}.language-summary{display:flex;align-items:center;gap:28px;padding:22px 0 16px}.language-donut{display:grid;flex:0 0 138px;place-items:center;width:138px;padding:0;aspect-ratio:1;border:0;border-radius:50%;color:var(--life-ink);cursor:pointer}.language-donut>span{display:grid;place-content:center;place-items:center;width:92px;aspect-ratio:1;border-radius:50%;background:var(--life-paper);text-align:center}.language-donut strong{font-size:14px;font-weight:500;line-height:1.1}.language-donut small{margin-top:3px;color:var(--life-muted);font-size:9px}.language-legend{display:grid;flex:1;gap:7px}.legend-row{display:grid;grid-template-columns:8px 1fr auto;gap:8px;align-items:center;width:100%;padding:5px 6px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--life-muted);font:inherit;font-size:12px;text-align:left}.legend-row.active{border-color:#d8ded9;background:#f4f6f2}.legend-row strong{color:var(--life-ink);font-weight:500}.legend-color{width:8px;height:8px;border-radius:50%}.empty-stat{color:var(--life-muted);font-size:12px}.study-log-input{display:grid;grid-template-columns:minmax(82px,1fr) 60px auto 72px;gap:6px;align-items:center;margin-bottom:14px}.study-log-input input{min-width:0;padding:7px 8px;border:1px solid var(--life-border);border-radius:4px;background:#fff;color:var(--life-ink);font:inherit;font-size:11px}.study-log-input>span{color:var(--life-muted);font-size:11px}.study-log-input .btn{padding-inline:8px;font-size:11px}.streak-note{display:flex;justify-content:space-between;align-items:baseline;padding:12px 14px;border-left:2px solid #b6a58d;background:#faf7f0;color:var(--life-muted);font-size:12px}.streak-note strong{color:#9f7f5f;font-size:16px;font-weight:500}.streak-chip{padding:5px 7px;border:1px solid #d7dfd3;border-radius:4px;background:#f1f5ef;color:#718b75;font-size:10px}.writing-list{margin-top:24px}.writing-row{display:grid;grid-template-columns:8px 116px minmax(50px,1fr) 78px 40px;gap:10px;align-items:center;min-height:50px;border-bottom:1px solid var(--life-border)}.book-color{width:8px;height:8px;border-radius:50%}.writing-name{display:grid;gap:3px}.writing-name strong{font-size:13px;font-weight:500}.writing-name span,.writing-change{color:var(--life-muted);font-size:11px}.writing-bar{height:5px;overflow:hidden;border-radius:3px;background:#edf0ec}.writing-bar span{display:block;height:100%;border-radius:inherit}.writing-words{color:var(--life-ink);font-size:12px;font-weight:500}.writing-change{text-align:right}.writing-footer{padding-top:18px}.writing-footer .btn{margin-left:auto}.optional-grid{padding-top:2px}.media-form{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:7px;margin:22px 0 8px}.media-card textarea{display:block;min-height:94px;resize:vertical;line-height:1.6}.media-actions{display:flex;justify-content:space-between;gap:8px;margin-top:10px}.xhs-title-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:22px 0 8px}.xhs-data-note{margin:0 0 12px;color:var(--life-muted);font-size:10px;line-height:1.5}.xhs-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.xhs-stats label{display:grid;gap:5px;color:var(--life-muted);font-size:11px}.xhs-stats input{padding-inline:5px}.xhs-insight{display:flex;align-items:flex-end;gap:18px;margin-top:18px}.xhs-insight>div{display:grid;gap:2px}.xhs-insight strong{font-size:19px;font-weight:500}.xhs-insight span{color:var(--life-muted);font-size:11px}.xhs-insight .btn{margin-left:auto}.analysis-result{margin:14px 0 0;padding:10px 12px;border-left:2px solid #8daec2;background:#f0f5f6;color:#5c737e;font-size:12px;line-height:1.6}.life-footer{display:flex;justify-content:space-between;gap:12px;padding-top:24px;color:var(--life-muted);font-size:11px}.optional-launchers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:min(1180px,100%);margin:14px auto 0}.optional-launchers>button{display:grid;grid-template-columns:30px 1fr 20px;gap:10px;align-items:center;min-width:0;padding:15px 18px;border:1px dashed #d4d9d3;background:#fffefa73;color:var(--life-ink);text-align:left}.optional-launchers>button:hover,.optional-launchers>button.active{border-style:solid;background:var(--life-paper)}.optional-launchers span:nth-child(2){display:grid;gap:2px}.optional-launchers small,.optional-launchers em{color:var(--life-muted);font-size:10px;font-style:normal}.optional-launchers strong{font-size:14px;font-weight:600}.optional-launchers b{color:var(--life-muted);font-size:18px;font-weight:400;text-align:right}.optional-launchers b{display:grid;place-items:center;width:20px;height:20px;line-height:1}.optional-launcher-icon{color:#8b958f;font-size:20px}.life-backup-controls{position:relative;margin-left:auto}.life-backup-controls summary{cursor:pointer;list-style:none}.life-backup-controls summary::-webkit-details-marker{display:none}.life-backup-controls>div{position:absolute;right:0;bottom:20px;z-index:4;display:flex;gap:4px;padding:5px;border:1px solid var(--life-border);background:var(--life-paper);box-shadow:0 5px 18px #262d2a14}.life-backup-controls button,.life-backup-controls label{position:relative;overflow:hidden;padding:5px 8px;border:0;background:#f1f3ee;color:var(--life-ink);font:inherit;font-size:10px;white-space:nowrap}.life-backup-controls input{position:absolute;width:1px;height:1px;opacity:0}@media (max-width: 940px){.life-grid-three{grid-template-columns:1fr 1fr}.energy-card{grid-column:span 2}.writing-row{grid-template-columns:8px 112px minmax(50px,1fr) 72px}.writing-change{display:none}}@media (max-width: 700px){.life-dashboard{padding:22px 16px 28px}.life-header{align-items:flex-start;flex-direction:column}.life-header-actions{justify-content:flex-start}.life-day-panel{grid-template-columns:90px 1fr}.sleep-timeline{padding-right:14px}.timeline-track{left:48px}.timeline-sleep-label{display:none}.day-stream{padding-left:18px}.stream-heading{display:block}.stream-heading .muted-note{display:block;margin-top:8px}.life-grid-three,.life-grid-two{grid-template-columns:1fr}.energy-card{grid-column:auto}.language-summary{gap:18px}.language-donut{flex-basis:112px;width:112px}.language-donut>div{width:76px}.writing-row{grid-template-columns:8px 100px minmax(40px,1fr) 66px;gap:7px}.writing-words{font-size:11px}.media-form{grid-template-columns:1fr 1fr}.media-form input:last-child{grid-column:span 2}.xhs-stats{grid-template-columns:repeat(3,1fr)}.xhs-insight{flex-wrap:wrap}.xhs-insight .btn{margin-left:0}.life-footer{align-items:center;flex-wrap:wrap}.life-footer .sync-indicator{flex-basis:100%}.life-backup-controls{margin-left:auto}}.study-history{margin:0 0 10px;color:var(--life-muted);font-size:11px}.study-history summary{padding:7px 0;cursor:pointer}.study-history>div{display:grid;gap:5px;padding:6px 0;border-top:1px solid var(--life-border)}.study-edit-row{display:grid;grid-template-columns:7px minmax(60px,1fr) 52px 18px 18px;gap:5px;align-items:center}.study-edit-row i{width:7px;height:7px;border-radius:50%}.study-edit-row input{min-width:0;padding:5px 3px;border:0;border-bottom:1px solid var(--life-border);background:transparent;color:var(--life-ink);font:inherit;font-size:11px}.study-edit-row button{border:0;background:transparent;color:#aeb4b0}.archive-launchers>button{grid-template-columns:58px 1fr 20px}.launcher-cover{display:grid;place-items:center;width:58px;aspect-ratio:1;overflow:hidden;background:#eef0eb;color:var(--life-muted)}.launcher-cover img{width:100%;height:100%;object-fit:cover}.launcher-cover i{font-size:20px;font-style:normal}.sync-indicator{display:inline-flex;align-items:center;gap:6px}.sync-indicator i{width:6px;height:6px;border-radius:50%;background:#a8bca1}.sync-indicator.connecting i{background:#d1aa7c}.sync-indicator.local i{background:#b9c0bb}.companion-shell{min-height:100vh;background:#f5f5f2}.life-auth-screen{display:grid;min-height:100vh;place-items:center;padding:24px;background:#f5f5f2;color:#293033}.life-auth-screen>span{margin-top:-40vh;color:#89918d;font-size:11px}.life-auth-panel{display:grid;width:min(300px,100%);gap:12px}.life-auth-panel h1{margin:2px 0 10px;font-size:20px;font-weight:600;text-align:center}.life-auth-mark{display:grid;place-items:center;width:56px;height:56px;margin:0 auto;border:1px solid #d9dfda;border-radius:8px;background:#fffefa;color:#748d82;font-size:18px;font-weight:600}.life-auth-fields{display:grid;gap:8px}.life-auth-fields input{width:100%;padding:10px;border:1px solid #d9dfda;border-radius:5px;background:#fff;color:#293033;font:inherit;font-size:14px}.life-auth-panel>p{margin:0;color:#a86b67;font-size:11px;text-align:center}.life-auth-panel>.btn{padding-block:9px}.companion-shell .life-dashboard,.companion-shell .life-calendar-page{width:100%;min-height:100vh;padding:18px 14px 28px}.companion-shell .life-header{align-items:flex-start;flex-direction:column;gap:12px;padding-bottom:18px}.companion-shell .life-header h2{font-family:var(--font-ui);font-size:21px;font-weight:600}.companion-shell .life-header h2,.companion-shell .archive-page-header h2{font-size:20px;line-height:1.3}.companion-shell .stream-heading h3,.companion-shell .card-heading h3,.companion-shell .solo-life-heading h3,.companion-shell .calendar-list-heading h3,.companion-shell .archive-library-heading h3{font-size:16px;line-height:1.35}.companion-shell .section-kicker,.companion-shell .eyebrow{font-size:10px}.companion-shell .finance-total strong{font-size:23px}.companion-shell .energy-score strong{font-size:30px}.companion-shell .calendar-month-title strong{font-family:var(--font-ui);font-size:19px;font-weight:600}.companion-shell .month-stat-grid strong{font-size:14px}.companion-shell .language-donut strong,.companion-shell .water-heading strong{font-size:18px}.companion-shell .writing-name strong,.companion-shell .archive-card-body strong{font-size:12px}.companion-shell .life-header-actions{width:100%;justify-content:space-between}.companion-shell .life-day-panel{grid-template-columns:76px minmax(0,1fr)}.companion-shell .life-day-panel{grid-template-columns:92px minmax(0,1fr)}.companion-shell .sleep-timeline{padding:18px 10px 20px 0}.companion-shell .timeline-track{left:43px}.companion-shell .timeline-sleep-label,.companion-shell .timeline-state-label,.companion-shell .timeline-life-label{display:none}.companion-shell .timeline-input{display:grid;grid-template-columns:1fr;gap:2px}.companion-shell .timeline-input input{width:46px;text-align:left}.companion-shell .day-mode-picker button{overflow:hidden;padding-inline:4px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.companion-shell .day-stream{min-width:0;padding:18px 0 0 14px}.companion-shell .stream-heading{display:block;padding-right:10px}.companion-shell .stream-heading h3{font-size:15px}.companion-shell .stream-heading .muted-note{display:block;margin-top:6px}.companion-shell .schedule-time-editor{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding-right:10px}.companion-shell .schedule-time-editor label{display:grid;gap:4px}.companion-shell .schedule-time-editor input{width:100%;min-width:0;padding-inline:3px}.companion-shell .stream-row{grid-template-columns:43px minmax(0,1fr);gap:8px}.companion-shell .stream-row-work,.companion-shell .stream-row-large,.companion-shell .stream-row-quiet{padding-right:10px}.companion-shell .work-todo-block{padding:12px}.companion-shell .work-todo-heading{align-items:flex-start;flex-direction:column;gap:3px}.companion-shell .stream-entry{align-items:flex-start;flex-direction:column;gap:5px}.companion-shell .stream-status{margin-left:0}.companion-shell .life-grid-three,.companion-shell .life-grid-two,.companion-shell .optional-launchers{grid-template-columns:1fr}.companion-shell .solo-life-zone{padding:14px 10px 10px;border-left-width:3px}.companion-shell .solo-life-heading{align-items:flex-start;flex-direction:column;gap:4px}.companion-shell .energy-card{grid-column:auto}.companion-shell .life-card{padding:17px}.companion-shell .optional-launchers{gap:8px}.companion-shell .language-summary{gap:16px}.companion-shell .language-donut{flex-basis:108px;width:108px}.companion-shell .language-donut>div{width:74px}.companion-shell .writing-row{grid-template-columns:8px 96px minmax(40px,1fr) 64px;gap:7px}.companion-shell .writing-change{display:none}.companion-shell .media-form{grid-template-columns:1fr}.companion-shell .media-form input:last-child{grid-column:auto}.companion-shell .xhs-stats{grid-template-columns:repeat(3,1fr)}.companion-shell .xhs-title-row{grid-template-columns:1fr}.companion-shell .study-log-input{grid-template-columns:76px 54px auto 66px}.companion-shell .calendar-page-header{align-items:flex-start;flex-direction:column;padding-bottom:14px}.companion-shell .calendar-layout{grid-template-columns:1fr}.companion-shell .calendar-surface{padding:10px}.companion-shell .calendar-toolbar{align-items:flex-start;flex-direction:column}.companion-shell .calendar-day{min-height:82px;padding:6px 3px}.companion-shell .calendar-event-stack{display:grid;gap:3px;margin-top:7px}.companion-shell .calendar-event-pill{display:block;width:100%;height:auto;overflow:hidden;padding:3px 2px;border-left-width:2px;border-radius:2px;font-size:8px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.companion-shell .calendar-side-panel,.companion-shell .calendar-list-heading{display:block}.companion-shell .calendar-list-row{grid-template-columns:10px 90px 1fr 18px}.companion-shell .calendar-list-detail{display:none}.life-archive-page{flex:1;min-width:0;min-height:100vh;overflow-y:auto;padding:24px clamp(18px,4vw,54px) 36px;background:#f5f5f2;color:#293033;--life-border: #e1e4df;--life-muted: #89918d;--life-ink: #293033;--life-paper: #fffefa}.archive-page-header,.archive-editor,.archive-library{width:min(1050px,100%);margin-inline:auto}.archive-page-header{display:grid;gap:18px;padding-bottom:18px}.archive-page-header .btn{justify-self:start;padding-left:0}.archive-page-header h2{margin:0;font-size:24px;font-weight:600}.archive-editor{display:grid;grid-template-columns:190px minmax(0,1fr);gap:20px;padding:20px;border:1px solid var(--life-border);background:var(--life-paper)}.archive-editor{display:grid;grid-template-columns:1fr}.archive-meta-editor{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px}.archive-cover-square{display:grid;place-items:center;width:100%;aspect-ratio:3 / 4;overflow:hidden;background:#eef0eb;color:var(--life-muted);font-size:11px;line-height:1.5;text-align:center}.archive-cover-square img{width:100%;height:100%;object-fit:cover}.archive-meta-fields{display:grid;align-content:start;gap:8px}.archive-meta-fields>input,.archive-fields input,.archive-fields textarea{width:100%;min-width:0;padding:8px 9px;border:1px solid var(--life-border);border-radius:4px;background:#fff;color:var(--life-ink);font:inherit;font-size:12px}.archive-upload-row{display:flex;align-items:center;gap:6px}.archive-upload{position:relative;overflow:hidden;text-align:center}.archive-upload input{position:absolute;width:1px;height:1px;opacity:0}.archive-fields{display:grid;gap:8px}.archive-fields textarea{min-height:150px;resize:vertical;line-height:1.6}.archive-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.archive-metrics label{display:grid;gap:4px;color:var(--life-muted);font-size:10px}.archive-editor-actions{display:flex;justify-content:flex-end;gap:7px}.archive-error{margin:0;color:#a86b67;font-size:11px}.archive-ai-result{padding:12px;border-left:2px solid #8daec2;background:#f2f6f6;color:#4f5d61;font-size:12px;line-height:1.7;white-space:pre-wrap}.archive-library{margin-top:14px;padding:20px;border:1px solid var(--life-border);background:var(--life-paper)}.archive-library-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding-bottom:14px}.archive-library-heading h3{margin:0;font-size:17px}.archive-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;border-top:1px solid var(--life-border);padding-top:14px}.archive-card{min-width:0;border:1px solid var(--life-border);background:#fff}.archive-card-cover{display:grid;place-items:center;width:100%;aspect-ratio:3 / 4;overflow:hidden;background:#eef0eb;color:var(--life-muted);font-size:11px}.archive-card-cover img{width:100%;height:100%;object-fit:cover}.archive-card-body{display:grid;gap:5px;padding:10px}.archive-card-body time,.archive-card-body span{overflow:hidden;color:var(--life-muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.archive-card-body strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.archive-card-body>div{display:flex;gap:8px;margin-top:4px}.archive-card-body button,.archive-card-body a{padding:0;border:0;background:transparent;color:#6c8490;font:inherit;font-size:10px;text-decoration:none}.archive-empty{color:var(--life-muted);font-size:12px}@media (max-width: 700px){.archive-editor{grid-template-columns:120px minmax(0,1fr)}.archive-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.companion-shell .life-archive-page{padding:18px 14px 28px}.companion-shell .archive-editor{grid-template-columns:1fr;gap:12px;padding:14px}.companion-shell .archive-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.companion-shell .archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.companion-shell .archive-meta-editor{grid-template-columns:104px minmax(0,1fr);gap:10px}.companion-shell .archive-meta-fields{gap:6px}.companion-shell .archive-meta-fields>input,.companion-shell .archive-fields input{padding-block:6px}.companion-shell .archive-upload-row{gap:2px}.companion-shell .archive-upload-row .btn{padding:5px 7px}.companion-shell .archive-fields textarea{min-height:210px}.companion-shell .archive-metrics{grid-template-columns:repeat(6,minmax(0,1fr))}.companion-shell .archive-metrics label{grid-column:span 2}.companion-shell .archive-metrics label:nth-last-child(-n+2){grid-column:span 3}.companion-shell input:not([type=checkbox]):not([type=range]):not([type=file]),.companion-shell select,.companion-shell textarea{font-size:13px!important}.companion-shell .btn{font-size:12px}.companion-shell .month-review-section .btn-primary{padding:5px 8px;font-size:11px;white-space:nowrap}.companion-shell .sleep-range-edit input{width:76px}.companion-shell .expense-edit-row{grid-template-columns:7px minmax(54px,1fr) 55px 18px}.companion-shell .expense-edit-row select{grid-column:2 / span 2}.life-calendar-page{flex:1;min-width:0;overflow-y:auto;background:#f5f5f2;color:#293033;padding:28px clamp(24px,4vw,64px) 36px;--life-border: #e1e4df;--life-muted: #89918d;--life-ink: #293033;--life-paper: #fffefa}.calendar-page-header,.calendar-layout,.calendar-list-section,.month-review-section{width:min(1180px,100%);margin-inline:auto}.month-review-section{margin-top:14px;padding:20px;border:1px solid var(--life-border);background:var(--life-paper)}.calendar-happiness-dot{position:absolute;top:11px;right:9px;width:8px;height:8px;border:1px solid rgba(255,255,255,.85);border-radius:50%;box-shadow:0 0 0 1px #3d454114}.month-stat-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-top:1px solid var(--life-border);border-bottom:1px solid var(--life-border)}.month-stat-grid>div{display:grid;gap:5px;min-width:0;padding:14px 12px;border-right:1px solid var(--life-border)}.month-stat-grid>div:last-child{border-right:0}.month-stat-grid span,.month-stat-grid small{color:var(--life-muted);font-size:10px}.month-stat-grid strong{overflow:hidden;font-size:16px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.ai-month-panel{padding-top:14px}.ai-month-panel>p{margin:0;color:var(--life-muted);font-size:11px;line-height:1.6}.month-ai-key{display:flex;gap:7px;margin-top:10px}.month-ai-key input{flex:1;min-width:0;padding:8px 9px;border:1px solid var(--life-border);border-radius:4px;font:inherit}.ai-month-error{margin-top:10px!important;color:#a86b67!important}.ai-month-report{margin-top:14px;padding:14px;border-left:2px solid #8daec2;background:#f2f6f6;color:#4f5d61;font-size:12px;line-height:1.75;white-space:pre-wrap}.calendar-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:24px}.calendar-back{margin-bottom:20px;padding-left:0}.calendar-page-header h2{max-width:680px;margin:0;font-family:var(--font-read);font-size:clamp(24px,3vw,38px);font-weight:400;line-height:1.2}.calendar-legend{display:flex;gap:14px;flex-wrap:wrap;color:var(--life-muted);font-size:11px}.calendar-legend span{display:inline-flex;align-items:center;gap:6px}.calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:14px}.calendar-surface,.calendar-side-panel,.calendar-list-section{border:1px solid var(--life-border);background:var(--life-paper)}.calendar-surface{min-width:0;padding:20px}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:18px}.calendar-surface.collapsed .calendar-toolbar{padding-bottom:0}.calendar-month-title{display:flex;align-items:baseline;gap:10px}.calendar-month-title strong{font-family:var(--font-read);font-size:24px;font-weight:400}.calendar-month-title span{color:var(--life-muted);font-size:12px}.calendar-nav{display:flex;gap:4px}.calendar-nav .btn-ghost{font-size:18px;padding-inline:8px}.calendar-expand{display:none}.calendar-board-scroll{overflow-x:auto;overscroll-behavior-inline:contain}.calendar-surface.collapsed .calendar-board-scroll{display:none}.calendar-board{min-width:0}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-grid{grid-auto-rows:94px}.calendar-weekdays{border-top:1px solid var(--life-border);border-bottom:1px solid var(--life-border)}.calendar-weekdays span{padding:10px 8px;color:var(--life-muted);font-size:11px;text-align:left}.calendar-day{position:relative;display:block;width:100%;height:94px;overflow:hidden;padding:0;border:0;border-right:1px solid var(--life-border);border-bottom:1px solid var(--life-border);background:transparent;color:var(--life-ink);text-align:left}.calendar-day:nth-child(7n){border-right:0}.calendar-day:hover,.calendar-day.selected{background:#f3f5f1}.calendar-day.outside{color:#c2c8c3;background:#fbfbf8}.calendar-day.today .calendar-day-number{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#8daec2;color:#fff}.calendar-day.selected{box-shadow:inset 0 0 0 2px #b8cbc0}.calendar-day-number{position:absolute;top:8px;left:8px;display:inline-block;font-size:12px}.calendar-event-stack{position:absolute;top:38px;right:7px;bottom:5px;left:7px;display:grid;align-content:start;gap:4px;overflow:hidden}.calendar-event-pill{display:block;overflow:hidden;padding:3px 5px;border-left:2px solid;border-radius:2px;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.calendar-event-pill.low{border-color:#8daec2;background:#edf3f5;color:#5f7e8b}.calendar-event-pill.medium{border-color:#d1aa7c;background:#f8f1e7;color:#9f7a52}.calendar-event-pill.high{border-color:#cf9189;background:#f7ebea;color:#9d6560}.calendar-more{color:var(--life-muted);font-size:10px}.calendar-side-panel{padding:20px}.selected-day-heading{padding-bottom:16px;border-bottom:1px solid var(--life-border)}.selected-day-heading h3,.calendar-list-heading h3{margin:0;font-size:17px;font-weight:600}.selected-events{min-height:102px;padding:14px 0}.selected-event{display:flex;justify-content:space-between;gap:10px;padding:10px 0 10px 10px;border-left:2px solid}.selected-event.low{border-color:#8daec2}.selected-event.medium{border-color:#d1aa7c}.selected-event.high{border-color:#cf9189}.selected-event div{display:grid;gap:4px}.selected-event strong{font-size:13px;font-weight:500}.selected-event span{color:var(--life-muted);font-size:11px;line-height:1.5}.selected-event .btn{flex:0 0 auto;padding:0 4px}.selected-event-edit{display:grid;grid-template-columns:minmax(0,1fr) 30px;align-items:start;gap:8px;padding-block:9px}.selected-event-fields input{width:100%;min-width:0;padding:5px 3px;border:0;border-bottom:1px solid var(--life-border);background:transparent;color:var(--life-ink);font:inherit;font-size:11px}.selected-event-fields>input:first-child{font-weight:600}.selected-event-meta{display:flex!important;align-items:center;justify-content:space-between;gap:6px!important}.selected-event-meta>input{width:120px;color:var(--life-muted);font-size:10px}.event-urgency-dots{display:flex!important;gap:2px!important}.event-urgency-dots button{display:grid;place-items:center;width:24px;height:24px;padding:0;border:1px solid transparent;border-radius:50%;background:transparent;opacity:.38}.event-urgency-dots button.active{border-color:var(--life-border);background:#fff;opacity:1}.selected-event-delete{display:grid;place-items:center;width:30px;height:30px;padding:0;border:0;background:transparent;color:#b87973;font:inherit;font-size:18px}.calendar-empty{color:var(--life-muted);font-size:12px;line-height:1.6}.calendar-add-form{display:grid;gap:8px;padding-top:16px;border-top:1px solid var(--life-border)}.calendar-add-form input{width:100%;padding:8px 9px;border:1px solid var(--life-border);border-radius:5px;background:#fff;color:var(--life-ink);font:inherit;font-size:12px}.urgency-picker{display:flex;gap:5px}.urgency-picker button{display:inline-flex;align-items:center;gap:4px;padding:6px 7px;border:1px solid var(--life-border);border-radius:4px;background:transparent;color:var(--life-muted);font:inherit;font-size:10px}.urgency-picker button.active{background:#f1f3ee;color:var(--life-ink)}.urgency-dot{display:inline-block;width:8px;height:8px;border-radius:50%}.urgency-dot.low{background:#8daec2}.urgency-dot.medium{background:#d1aa7c}.urgency-dot.high{background:#cf9189}.calendar-list-section{margin-top:14px;padding:20px}.calendar-list-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;padding-bottom:12px}.calendar-event-list{border-top:1px solid var(--life-border)}.calendar-list-row{display:grid;grid-template-columns:10px 112px 150px 1fr 18px;gap:10px;align-items:center;width:100%;padding:12px 0;border:0;border-bottom:1px solid var(--life-border);background:transparent;color:var(--life-ink);text-align:left}.calendar-list-row:hover{color:#648da6}.calendar-list-date,.calendar-list-detail{color:var(--life-muted);font-size:12px}.calendar-list-row strong{font-size:13px;font-weight:500}.calendar-list-arrow{color:var(--life-muted)}.life-calendar-page .life-footer{width:min(1180px,100%);margin:0 auto}@media (max-width: 840px){.calendar-layout{grid-template-columns:1fr}.calendar-side-panel{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.selected-day-heading{grid-column:span 2}.selected-events{min-height:0}.calendar-add-form{border-top:0;padding-top:14px}}@media (max-width: 620px){.life-calendar-page{padding:22px 16px 28px}.calendar-page-header{align-items:flex-start;flex-direction:column}.calendar-toolbar{align-items:center;flex-direction:row;flex-wrap:wrap}.calendar-surface{padding:12px}.calendar-expand{display:inline-flex}.calendar-board{min-width:672px}.calendar-grid{grid-auto-rows:82px}.calendar-day{height:82px}.calendar-day-number{top:6px;left:6px}.calendar-happiness-dot{top:8px;right:7px}.calendar-event-stack{top:32px;right:4px;left:4px}.calendar-event-pill{padding-inline:3px;font-size:9px}.calendar-weekdays span{padding-inline:6px}.calendar-side-panel,.calendar-list-heading{display:block}.calendar-list-heading .muted-note{display:block;margin-top:8px}.calendar-list-row{grid-template-columns:10px 94px 1fr 18px}.calendar-list-detail{display:none}}@media (max-width: 840px){.month-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.month-stat-grid>div:nth-child(3){border-right:0}}@media (max-width: 620px){.month-review-section{padding:14px}.month-review-section .calendar-list-heading{display:flex;align-items:center}.month-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.month-stat-grid>div:nth-child(3){border-right:1px solid var(--life-border)}.month-stat-grid>div:nth-child(2n){border-right:0}.month-ai-key{align-items:stretch;flex-direction:column}}.companion-shell .timeline-meal-marker{left:39px}.companion-shell .calendar-toolbar{align-items:center;flex-direction:row;flex-wrap:wrap}.optional-grid-single{grid-template-columns:1fr}.companion-shell .language-donut>span{width:74px}.companion-shell .timeline-meal-marker i{width:13px}.companion-shell .meal-inputs{grid-template-columns:68px minmax(0,1fr) 52px 30px}.companion-shell .meal-row{grid-template-columns:10px 68px minmax(0,1fr) 20px}.companion-shell .expense-inputs{grid-template-columns:minmax(0,1fr) 68px 36px}.companion-shell .expense-inputs select{grid-column:span 2}.companion-shell .study-log-input{grid-template-columns:minmax(72px,1fr) 52px auto 66px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:10}.modal{background:var(--panel);border-radius:12px;padding:24px;width:420px;max-width:90vw}.modal h2{margin:0 0 16px;font-size:16px}.field{margin-bottom:14px}.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:4px}.field input,.field textarea{width:100%;font:inherit;padding:8px 10px;border:1px solid var(--border);border-radius:6px}.field textarea{resize:vertical;min-height:64px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.editor{flex:1;min-width:0;display:flex;flex-direction:column;height:100%}.editor-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--panel)}.editor-header .editor-title{font-weight:600;flex:1;text-align:center}.editor-area{flex:1;border:none;outline:none;resize:none;padding:32px max(24px,calc((100% - 760px)/2));font-family:var(--font-read);font-size:17px;line-height:1.9;background:var(--bg);color:var(--text)}.editor-status{display:flex;gap:20px;padding:8px 16px;border-top:1px solid var(--border);background:var(--panel);color:var(--muted);font-size:13px}.editor-status .status-dirty{margin-left:auto}.editor-body{flex:1;display:flex;min-height:0}.editor-main{flex:1;display:flex;flex-direction:column;min-width:0}.readonly-banner{background:var(--accent-soft);border-bottom:1px solid var(--border);padding:8px 16px;font-size:13px;color:var(--muted);display:flex;align-items:center;gap:8px}.editor-versions{flex:0 0 auto;border-left:1px solid var(--border);background:var(--panel);overflow-y:auto;display:flex;flex-direction:column}.versions-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border);font-weight:600}.version-list{list-style:none;margin:0;padding:8px}.version-item{border:1px solid var(--border);border-radius:8px;padding:10px;margin-bottom:8px;cursor:pointer}.version-item:hover{border-color:var(--accent)}.version-item.active{background:var(--accent-soft);border-color:var(--accent)}.version-item.muted{opacity:.55}.version-line{display:flex;align-items:center;gap:6px}.version-meta{font-size:12px;color:var(--muted);margin-top:4px}.version-note{font-size:12px;margin-top:4px}.version-final-btn{margin-top:6px;font-size:12px}.badge{font-size:11px;padding:1px 6px;border-radius:10px;background:var(--bg);color:var(--muted);border:1px solid var(--border)}.badge-final{background:var(--accent);color:#fff;border-color:var(--accent)}.badge-type{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-soft)}.ver-tag,.ver-label{font-size:12px;color:var(--muted);margin-left:8px;font-weight:400}.final-tag{font-size:11px;color:#fff;background:var(--accent);border-radius:10px;padding:1px 8px;margin-left:8px}.new-version-form{padding:12px 14px;border-bottom:1px solid var(--border);background:var(--bg)}.seg{display:flex;gap:6px}.seg button{flex:1;padding:6px;border:1px solid var(--border);background:var(--panel);border-radius:6px}.seg button.on{background:var(--accent);color:#fff;border-color:var(--accent)}.right-tabs{display:flex;border-bottom:1px solid var(--border)}.right-tabs button{flex:1;padding:10px;border:none;background:transparent;color:var(--muted);border-bottom:2px solid transparent}.right-tabs button.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.fs-list{list-style:none;margin:0;padding:8px}.fs-item{border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin-bottom:8px}.fs-item.muted{opacity:.6}.fs-name{cursor:pointer;font-weight:600}.fs-name:hover{color:var(--accent)}.fs-actions{display:flex;gap:4px;margin-top:4px;flex-wrap:wrap}.fs-actions .btn-ghost{font-size:12px;padding:2px 6px}.fs-archived{padding:8px;border-top:1px solid var(--border)}.fs-caret{display:inline-block;width:12px;color:var(--muted)}.fs-detail{margin:6px 0}.fs-where{font-size:12px;color:var(--muted);margin-bottom:4px}.fs-excerpt{margin:0 0 8px;padding:8px 10px;border-left:3px solid var(--border);background:var(--bg);font-family:var(--font-read);font-size:14px;line-height:1.7;color:var(--text)}.tools-panel{flex:0 0 auto;border-left:1px solid var(--border);background:var(--panel);display:flex;flex-direction:column;overflow-y:auto}.tools-head{padding:16px;font-weight:600;border-bottom:1px solid var(--border)}.tools-section{padding:10px;display:flex;flex-direction:column;gap:8px}.tool-entry{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--panel);text-align:left}.tool-entry[disabled]{opacity:.55;cursor:not-allowed}.tool-entry .tool-ico{font-size:18px}.tool-entry em{display:block;font-style:normal;font-size:11px;color:var(--muted);margin-top:2px}.tools-cal{margin-top:auto;border-top:1px solid var(--border);padding:12px}.tools-subhead{font-weight:600;margin-bottom:8px}.calendar{font-size:12px}.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-weight:600}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.cal-wd{text-align:center;color:var(--muted);padding:2px 0}.cal-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:5px;border:1px solid transparent;color:var(--muted)}.cal-cell.blank{border:none}.cal-cell.written{background:var(--accent);color:#fff}.cal-cell.today{border-color:var(--accent);font-weight:700;color:var(--text)}.cal-cell.today.written{color:#fff}.cal-foot{margin-top:8px;color:var(--muted);text-align:center}.editor-typing{flex:1;display:flex;min-height:0}.editor-typing .editor-area{flex:1}.review-pane{flex:1;min-width:0;border-left:1px solid var(--border);background:var(--panel);overflow-y:auto;display:flex;flex-direction:column}.review-pane-head{padding:8px 12px;border-bottom:1px solid var(--border);font-weight:600;font-size:13px;position:sticky;top:0;background:var(--panel)}.review-toggle{display:flex;align-items:center;gap:8px;padding:8px 14px;font-size:13px;border-bottom:1px solid var(--border);cursor:pointer}.compare-box{display:flex;gap:6px;padding:8px 14px;border-bottom:1px solid var(--border);flex-wrap:wrap}.compare-box select{flex:1;min-width:80px;padding:5px;border:1px solid var(--border);border-radius:6px;font:inherit}.version-btns{display:flex;gap:4px;margin-top:6px}.diff-view{font-family:var(--font-read)}.diff-stat{display:flex;gap:12px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--border);font-family:var(--font-ui);font-size:12px}.diff-added{color:#2e7d32}.diff-removed{color:#b23b3b}.diff-body{padding:8px 12px;line-height:1.8;white-space:pre-wrap;word-break:break-word}.diff-line{padding:0 4px}.diff-line.add{background:#e7f4e8}.diff-line.del{background:#fbe9e9;text-decoration:line-through;color:#9a3b3b}.seg-add{background:#c8e6c9;border-radius:2px}.seg-del{background:#f3c9c9;text-decoration:line-through;color:#9a3b3b;border-radius:2px}.diff-modal .diff-view{max-height:64vh;overflow-y:auto;border:1px solid var(--border);border-radius:8px}.charmap{flex:1;min-width:0;display:flex;flex-direction:column;height:100%;position:relative}.charmap-header{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--panel)}.charmap-header strong{flex:1;text-align:center}.charmap-tools{display:flex;align-items:center;gap:6px}.charmap-scroll{flex:1;overflow:auto;background:var(--bg)}.charmap-canvas{position:relative}.rel-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.rel-label{fill:var(--text);font-size:11px;font-family:var(--font-ui);pointer-events:auto;cursor:pointer;paint-order:stroke;stroke:var(--bg);stroke-width:3px;stroke-linejoin:round}.charmap-legend{display:flex;align-items:center;gap:14px;padding:6px 16px;border-bottom:1px solid var(--border);background:var(--panel);flex-wrap:wrap;font-size:13px}.legend-item{display:flex;align-items:center;gap:6px;cursor:pointer}.legend-name{cursor:pointer}.legend-item.off{opacity:.4}.legend-item.off .legend-name{text-decoration:line-through}.legend-item input[type=color]{width:20px;height:20px;border:none;background:none;padding:0;cursor:pointer}.sparks-wrap{max-width:560px;margin:0 auto;padding:12px}.spark-list{list-style:none;margin:0;padding:8px}.spark-item{border:1px solid var(--border);border-radius:8px;margin-bottom:8px;background:var(--panel)}.spark-head{display:flex;align-items:center;gap:8px;padding:8px 10px;cursor:pointer}.spark-dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto}.spark-dot.empty-dot{background:transparent;border:1px dashed var(--muted)}.spark-name{flex:1;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spark-time{font-size:11px;color:var(--muted)}.spark-detail{padding:0 10px 10px}.spark-edit{width:100%;min-height:60px;font:inherit;font-family:var(--font-read);padding:8px;border:1px solid var(--border);border-radius:6px;resize:vertical}.spark-img{max-width:100%;border-radius:6px;margin-top:8px;display:block}.spark-actions{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}.spark-actions .btn-ghost,.spark-upload{font-size:12px;padding:2px 6px;cursor:pointer}.universe-entry{margin:8px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--panel);text-align:left;font-weight:600;cursor:pointer}.universe-entry:hover{background:var(--bg)}.universe-entry.active{background:var(--accent);color:#fff;border-color:var(--accent)}.uni-circle{position:absolute;display:flex;align-items:center;justify-content:center;border-radius:50%;z-index:3;cursor:grab;-webkit-user-select:none;user-select:none;font-size:12px;font-weight:600;text-align:center;line-height:1.05;overflow:hidden;padding:2px;box-shadow:0 1px 3px #00000038}.uni-circle.connecting{outline:2px solid var(--accent);outline-offset:2px}.graph-canvas{position:relative}.graph-inner{position:absolute;top:0;left:0;transform-origin:top left}.graph-node{position:absolute;display:flex;align-items:center;gap:4px;padding:0 4px 0 10px;border-radius:20px;z-index:3;cursor:grab;box-shadow:0 1px 3px #0000002e;-webkit-user-select:none;user-select:none}.graph-node.connecting{outline:2px solid var(--accent);outline-offset:2px}.graph-node-name{flex:1;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.graph-node-x{border:none;background:#ffffff40;color:#fff;border-radius:50%;width:20px;height:20px;flex:0 0 auto;cursor:pointer;font-size:11px}.char-band{position:absolute;left:0;height:20px;border-top:1px dashed var(--border);z-index:1}.char-band-name{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--muted);background:var(--bg);padding:0 8px 0 4px}.char-box{position:absolute;display:flex;flex-direction:column;justify-content:center;padding:0 4px 0 10px;border-radius:15px;z-index:3;cursor:pointer;box-shadow:0 1px 2px #0000001f;-webkit-user-select:none;user-select:none;overflow:hidden}.char-box.card{border-radius:10px;padding:8px 10px;justify-content:flex-start;cursor:grab}.char-box.connecting{outline:2px solid var(--accent);outline-offset:2px}.char-box-top{display:flex;align-items:center;gap:4px}.char-name{flex:1;font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:inherit}.char-edit{border:none;border-radius:50%;width:22px;height:22px;flex:0 0 auto;cursor:pointer;font-size:12px}.char-card-body{margin-top:6px;font-size:11px;line-height:1.5;opacity:.92}.char-card-years{font-weight:600}.char-card-desc{margin-top:3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.connect-hint{position:absolute;bottom:36px;left:50%;transform:translate(-50%);z-index:30;background:var(--accent);color:#fff;padding:8px 14px;border-radius:20px;font-size:13px;display:flex;align-items:center;gap:10px;box-shadow:0 2px 10px #0003}.connect-hint .btn-ghost{color:#fff;opacity:.85}.charmap-axis{flex:0 0 auto;height:24px;border-top:1px solid var(--border);background:var(--panel);overflow:hidden;position:relative}.axis-inner{position:absolute;top:0;left:0;height:100%}.axis-tick{position:absolute;top:0;transform:translate(-50%);line-height:24px;font-size:11px;color:var(--muted);white-space:nowrap}.role-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}.role-book{min-width:90px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.role-row input{flex:1}.ai-modal{max-height:88vh;overflow-y:auto}.ai-head{display:flex;align-items:center;justify-content:space-between}.ai-head h2{margin:0}.ai-settings{border:1px solid var(--border);border-radius:8px;padding:12px;margin-bottom:12px;background:var(--bg)}.ai-prompt{font-family:var(--font-read);white-space:pre;background:var(--bg)}.ai-actions{display:flex;gap:8px;margin-bottom:12px}.ai-error{white-space:pre-wrap;color:var(--danger);font-size:12px;background:var(--accent-soft);padding:8px;border-radius:6px}.ai-record{border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin-bottom:8px}.ai-record-head{display:flex;justify-content:space-between;align-items:center}.ai-qs{margin:6px 0 0;padding-left:20px;line-height:1.7}.rhythm{border-bottom:1px solid var(--border);background:var(--panel)}.rhythm-head{display:flex;align-items:center;gap:8px;padding:8px 12px;font-weight:600}.rhythm-head .hint{font-weight:400;margin-left:auto}.rhythm-body{padding:18px 24px 16px}.rhythm-track{position:relative;height:8px;background:var(--border);border-radius:4px;margin:28px 0 12px}.rhythm-fill{position:absolute;height:100%;background:var(--accent-soft);border-radius:4px}.rhythm-tick{position:absolute;top:-4px;width:1px;height:16px;background:var(--border)}.rhythm-marker{position:absolute;top:-3px;width:14px;height:14px;border-radius:50%;border:2px solid var(--panel);transform:translate(-50%);cursor:default}.rhythm-marker-label{position:absolute;bottom:18px;left:50%;transform:translate(-50%);white-space:nowrap;font-size:11px;color:var(--text);background:var(--panel);padding:0 2px}.outline{flex:1;min-width:0;display:flex;flex-direction:column;height:100%}.outline-header{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--panel)}.outline-header strong{flex:1;text-align:center}.outline-scroll{flex:1;overflow:auto;background:var(--bg)}.outline-canvas{position:relative;min-width:max-content;padding:16px 16px 80px}.chain-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:visible;z-index:5}.chain-label{fill:var(--muted);font-size:11px;font-family:var(--font-ui)}.lane{position:relative;z-index:2;margin-bottom:16px}.lane-head{display:flex;align-items:center;gap:8px;padding:6px 10px;border-left:4px solid var(--border);background:var(--panel);border-radius:0 6px 6px 0;width:max-content;min-width:240px}.lane-dot{width:10px;height:10px;border-radius:50%}.lane-name{font-weight:600;cursor:pointer;flex:1}.lane-head input[type=color]{width:22px;height:22px;border:none;background:none;padding:0;cursor:pointer}.lane-track{display:flex;gap:14px;padding:12px 4px;align-items:flex-start}.lane-empty{color:var(--muted);padding:16px;font-size:13px}.plot-card{width:200px;flex:0 0 auto;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px;box-shadow:0 1px 2px #0000000a}.plot-top{display:flex;align-items:center;justify-content:space-between;min-height:18px}.plot-drag{cursor:grab;color:var(--muted)}.plot-time{font-size:11px;color:var(--muted);background:var(--accent-soft);border-radius:8px;padding:1px 6px}.plot-title{font-weight:600;margin:4px 0;cursor:pointer}.plot-desc{font-size:12px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.plot-presence{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.presence-chip{font-size:11px;color:#fff;border-radius:8px;padding:1px 7px}.plot-anchor{margin-top:8px;font-size:11px;color:var(--muted);cursor:pointer}.plot-anchor.on{color:var(--text)}.modal-wide{width:560px;max-height:86vh;overflow-y:auto}.row2{display:flex;gap:12px}.row2 .field{flex:1}.field select,.field input[type=color]{font:inherit}.field select{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--panel)}.hint{color:var(--muted);font-size:12px;margin:4px 0}.presence-row,.chain-row{display:flex;align-items:center;gap:8px;margin-bottom:6px}.presence-name{font-weight:600;white-space:nowrap}.presence-react{flex:1}.presence-add,.chain-add{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap;align-items:center}.presence-add select,.chain-add select{width:auto;flex:0 0 auto}.presence-add input,.chain-add input{flex:1;min-width:100px}.presence-row input[type=color]{width:28px;height:28px;border:1px solid var(--border);border-radius:6px;padding:0}
