:root{--paper: #f5f0e6;--paper-deep: #ede6d6;--paper-card: #faf7ef;--ink: #2b2620;--ink-soft: #5c5347;--ink-faint: #9a8f7d;--rule: #d8cfba;--gold: #3d5a73;--gold-deep: #2c4357;--gold-soft: #bccfdc;--terra: #b65c38;--ink-write: #1e2a40;--sage: #6e7d5c;--serif: "Noto Serif TC", "Songti TC", serif;--hand: "LXGW WenKai TC", "Noto Serif TC", serif;--eng: "EB Garamond", Georgia, serif;--shadow-page: 0 1px 2px rgba(60, 48, 30, .08), 0 8px 32px rgba(60, 48, 30, .12)}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--serif);background:var(--paper-deep);color:var(--ink);line-height:1.6;background-image:radial-gradient(ellipse at 20% 0%,rgba(255,252,244,.7),transparent 60%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0.45 0 0 0 0 0.38 0 0 0 0 0.26 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}#root{max-width:1180px;margin:0 auto;padding:clamp(8px,2vw,28px);padding-bottom:120px}button{font-family:inherit;border:none;background:none;cursor:pointer;color:inherit;-webkit-tap-highlight-color:transparent}input,textarea{font-family:var(--hand);font-size:17.5px;color:var(--ink-write);-webkit-text-stroke:.25px currentColor;background:transparent;border:none;outline:none;width:100%}input::placeholder,textarea::placeholder{color:var(--ink-faint);opacity:.7;font-size:15px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:6px 4px 14px;gap:12px}.brand{font-family:var(--eng);font-style:italic;font-size:15px;letter-spacing:.08em;color:var(--gold-deep);white-space:nowrap}.tabs{display:flex;gap:4px;background:#2b26200f;border-radius:999px;padding:4px}.tabs button{font-family:var(--serif);font-size:14px;font-weight:500;letter-spacing:.12em;padding:7px 16px;border-radius:999px;color:var(--ink-soft);transition:all .25s ease}.tabs button.active{background:var(--ink);color:var(--paper);box-shadow:0 2px 8px #2b262040}.streak{font-family:var(--eng);font-size:14px;color:var(--ink-soft);white-space:nowrap}.streak strong{font-size:19px;color:var(--terra);font-style:italic}.page{background:var(--paper-card);border-radius:6px;box-shadow:var(--shadow-page);position:relative;overflow:hidden;animation:pageIn .45s cubic-bezier(.2,.7,.3,1) both}@keyframes pageIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.page:before{content:"";position:absolute;top:10px;right:10px;bottom:10px;left:10px;border:1px solid rgba(184,146,62,.35);border-radius:3px;pointer-events:none}.page-inner{padding:clamp(22px,4vw,44px);position:relative}.day-head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:6px}.day-title{display:flex;align-items:baseline;gap:14px}.day-weekday{font-family:var(--eng);font-size:clamp(26px,4.5vw,36px);font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--ink)}.day-date{font-family:var(--eng);font-size:17px;color:var(--ink-faint);letter-spacing:.06em}.day-nav{display:flex;gap:4px;align-items:center}.day-nav button{font-size:18px;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:var(--ink-soft);transition:background .2s}.day-nav button:hover{background:#2b262012}.day-nav .today-btn{width:auto;font-size:13px;letter-spacing:.15em;padding:0 14px;border-radius:999px;border:1px solid var(--rule)}.quote{font-family:var(--hand);font-size:15.5px;color:var(--ink-soft);text-align:center;margin:14px auto 26px;max-width:560px;line-height:1.7}.quote .author{font-family:var(--eng);font-style:italic;font-size:13px;color:var(--gold-deep);display:block;margin-top:2px;letter-spacing:.08em}.label{font-family:var(--serif);font-size:12.5px;font-weight:600;letter-spacing:.28em;color:var(--gold-deep);display:flex;align-items:center;gap:7px;margin:26px 0 4px}.label .hint{font-weight:400;letter-spacing:.05em;color:var(--ink-faint);font-size:12px}.label .star{color:var(--gold);font-size:15px}.line-input{border-bottom:1px solid var(--rule);padding:7px 2px 5px;transition:border-color .25s}.line-input:focus-within{border-bottom-color:var(--gold)}textarea.line-area{border-bottom:1px solid var(--rule);padding:7px 2px 5px;resize:none;line-height:1.8;background-image:repeating-linear-gradient(transparent,transparent calc(1.8em - 1px),var(--rule) calc(1.8em - 1px),var(--rule) 1.8em)}.task-row{display:flex;align-items:center;gap:10px;padding:9px 0 7px;border-bottom:1px solid var(--rule);transition:opacity .3s}.task-row.done-task{opacity:.55}.task-row.done-task .task-text input{text-decoration:line-through;text-decoration-color:var(--gold-deep)}.task-num{font-family:var(--eng);font-size:15px;color:var(--ink-faint);width:16px;flex-shrink:0;text-align:right}.task-text{flex:1;min-width:120px}.task-check{width:30px;height:30px;border-radius:50%;border:1.5px solid var(--rule);display:grid;place-items:center;font-size:15px;color:transparent;flex-shrink:0;transition:all .25s}.task-check.on{border-color:var(--sage);background:var(--sage);color:var(--paper-card)}.drag-handle{color:var(--ink-faint);font-size:17px;cursor:grab;touch-action:none;padding:4px 2px;flex-shrink:0;user-select:none;-webkit-user-select:none}.drag-handle:active{cursor:grabbing;color:var(--gold-deep)}.focus-track{display:flex;align-items:center;gap:5px;flex-shrink:0}.ft-box{width:26px;height:26px;border:1.5px solid var(--ink-soft);border-radius:4px;font-family:var(--hand);font-size:15px;display:grid;place-items:center;color:var(--ink);-webkit-user-select:none;user-select:none}.ft-box.empty{color:var(--ink-faint)}.ft-box.actual{border-style:dashed;border-color:var(--ink-faint)}.ft-circles{display:flex;gap:4px}.ft-circle{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--ink-soft);position:relative;transition:transform .15s}.ft-circle:active{transform:scale(.85)}.ft-circle:after{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:50%;background:var(--ink);transform:scale(0);transition:transform .25s cubic-bezier(.34,1.56,.64,1)}.ft-circle.filled:after{transform:scale(1)}.ft-circle.overflow-dot{border-color:var(--gold)}.ft-circle.overflow-dot:after{background:var(--gold)}.task-play{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:13px;color:var(--terra);border:1.5px solid transparent;flex-shrink:0;transition:all .2s}.task-play:hover{border-color:var(--terra)}.task-play.running{background:var(--terra);color:#fff;animation:pulse 2s infinite}@keyframes pulse{0%,to{box-shadow:0 0 #b65c3859}50%{box-shadow:0 0 0 9px #b65c3800}}.day-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(20px,3vw,40px);align-items:start}@media (max-width: 860px){.day-grid{grid-template-columns:1fr}}.timeline-wrap{position:relative}.timeline-head{display:flex;justify-content:space-between;align-items:baseline}.timeline-hint{font-size:11.5px;color:var(--ink-faint);letter-spacing:.05em;margin-bottom:8px}.timeline{position:relative;border-top:1px solid var(--rule);user-select:none;-webkit-user-select:none}.tl-row{display:flex;height:26px;border-bottom:1px solid transparent}.tl-row.hour{border-bottom-color:transparent}.tl-time{width:44px;flex-shrink:0;font-family:var(--eng);font-size:11px;color:var(--ink-faint);text-align:right;padding-right:8px;transform:translateY(-6px)}.tl-cell{flex:1;border-bottom:1px dotted var(--rule);border-left:1px solid var(--rule);cursor:copy}.tl-row.half .tl-cell{border-bottom-style:solid}.tl-blocks{position:absolute;top:0;left:44px;right:0;bottom:0;pointer-events:none}.tl-block{position:absolute;left:4px;right:4px;background:linear-gradient(135deg,#b8923e2e,#b8923e4d);border:1px solid var(--gold);border-left:3px solid var(--gold-deep);border-radius:5px;padding:3px 8px;font-family:var(--hand);font-size:13px;line-height:1.35;color:var(--ink);overflow:hidden;pointer-events:auto;cursor:grab;touch-action:none;box-shadow:0 1px 4px #3c301e1f;transition:box-shadow .2s}.tl-block:active{cursor:grabbing}.tl-block.dragging{box-shadow:0 6px 18px #3c301e47;opacity:.92;z-index:5}.tl-block.linked{background:linear-gradient(135deg,#6e7d5c29,#6e7d5c4d);border-color:var(--sage);border-left-color:var(--sage)}.tl-block .tl-block-time{font-family:var(--eng);font-size:10.5px;color:var(--ink-soft);display:block}.tl-resize{position:absolute;left:0;right:0;bottom:-5px;height:12px;cursor:ns-resize;touch-action:none}.tl-resize:after{content:"";position:absolute;left:50%;bottom:6px;transform:translate(-50%);width:26px;height:3px;border-radius:2px;background:var(--gold);opacity:0;transition:opacity .2s}.tl-block:hover .tl-resize:after,.tl-block.dragging .tl-resize:after{opacity:.9}.tl-ghost{position:absolute;left:4px;right:4px;background:#b65c3824;border:1.5px dashed var(--terra);border-radius:5px;pointer-events:none;z-index:4}.now-line{position:absolute;left:44px;right:0;height:0;border-top:2px solid var(--terra);z-index:3;pointer-events:none}.now-line:before{content:"";position:absolute;left:-5px;top:-5px;width:8px;height:8px;border-radius:50%;background:var(--terra)}.task-ghost{position:fixed;z-index:100;background:var(--paper-card);border:1px solid var(--gold);border-radius:6px;padding:6px 14px;font-family:var(--hand);font-size:14px;box-shadow:0 8px 24px #3c301e4d;pointer-events:none;transform:translate(-50%,-120%);white-space:nowrap;max-width:240px;overflow:hidden;text-overflow:ellipsis}.block-pop{position:absolute;z-index:20;background:var(--paper-card);border:1px solid var(--gold);border-radius:8px;box-shadow:0 10px 30px #3c301e4d;padding:12px;width:230px}.block-pop input{font-size:15px;border-bottom:1px solid var(--rule);padding-bottom:4px;margin-bottom:10px}.block-pop .pop-actions{display:flex;justify-content:space-between;align-items:center}.block-pop .pop-time{font-family:var(--eng);font-size:12px;color:var(--ink-soft)}.block-pop .pop-del{color:var(--terra);font-size:13px;letter-spacing:.1em}.wk-search{max-width:460px;margin:0 auto 14px;border:1px solid var(--rule);border-radius:999px;padding:8px 18px;background:#fffdf899;transition:border-color .25s}.wk-search:focus-within{border-color:var(--gold)}.wk-search input{font-size:15px}.wk-results{margin-bottom:18px;border:1px dashed var(--rule);border-radius:8px;padding:4px 10px;max-height:260px;overflow-y:auto}.wk-noresult{font-family:var(--hand);color:var(--ink-faint);text-align:center;padding:12px}.wk-kind{font-size:10.5px;letter-spacing:.1em;color:var(--gold-deep);border:1px solid var(--gold-soft);border-radius:999px;padding:1px 8px;flex-shrink:0}.wk-scroll{overflow-x:auto;margin:6px -6px 0;padding:0 6px;-webkit-overflow-scrolling:touch}.wk-grid{display:flex;min-width:700px;border:1px solid var(--rule);border-radius:4px;background:#fffdf880}.wk-gutter{width:30px;flex-shrink:0}.wk-hour{height:32px;font-family:var(--eng);font-size:10.5px;color:var(--ink-faint);text-align:right;padding-right:5px;transform:translateY(-6px)}.wk-col{flex:1;min-width:0;border-left:1px solid var(--rule)}.wk-head{display:block;width:100%;height:34px;font-family:var(--eng);font-size:11px;letter-spacing:.12em;color:var(--ink-soft);border-bottom:1px solid var(--rule);text-align:left;padding:6px 0 0 7px;white-space:nowrap;overflow:hidden;transition:background .2s}button.wk-head:hover{background:#b8923e14}.wk-daynum{font-size:17px;font-weight:500;color:var(--ink)}.wk-col.today .wk-head{background:#b8923e21}.wk-col.today .wk-daynum{color:var(--gold-deep)}.wk-body{position:relative;cursor:copy}.wk-cell{height:16px;border-bottom:1px dotted var(--rule)}.wk-cell.hour-end{border-bottom-style:solid}.wk-block{position:absolute;left:2px;right:2px;background:linear-gradient(135deg,#b8923e33,#b8923e52);border-left:2.5px solid var(--gold-deep);border-radius:3px;font-family:var(--hand);font-size:11.5px;line-height:1.25;padding:1px 5px;overflow:hidden;cursor:pointer;z-index:2;transition:opacity .2s,box-shadow .2s}.wk-block:hover{box-shadow:0 2px 8px #3c301e33}.wk-block.linked{background:linear-gradient(135deg,#6e7d5c2e,#6e7d5c52);border-left-color:var(--sage)}.wk-block.hit{outline:2px solid var(--terra);z-index:3}.wk-block.dim{opacity:.3}.wk-now{left:0;right:0}.wk-pop{left:-40px;right:auto;width:220px}.wk-col:first-child .wk-pop,.wk-col:nth-child(2) .wk-pop{left:0}.wk-col:last-child .wk-pop,.wk-col:nth-last-child(2) .wk-pop{left:auto;right:0}.dur-btn{font-family:var(--eng);font-size:14px;width:24px;height:24px;border-radius:50%;border:1px solid var(--rule);margin-left:6px;line-height:1}.dur-btn:hover{border-color:var(--gold);color:var(--gold-deep)}.rollover{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:#b8923e1a;border:1px dashed var(--gold);border-radius:8px;padding:9px 14px;margin-top:18px;font-size:13.5px;color:var(--ink-soft);font-family:var(--hand)}.rollover-btn{font-family:var(--serif);font-size:13px;letter-spacing:.1em;color:var(--gold-deep);border:1px solid var(--gold);border-radius:999px;padding:4px 14px;transition:all .2s}.rollover-btn:hover{background:var(--gold);color:#fff}.rollover-dismiss{color:var(--ink-faint);margin-left:8px;font-size:13px}.yr-scroll{overflow-x:auto;margin:8px -6px 0;padding:0 6px;-webkit-overflow-scrolling:touch}.yr-grid{display:flex;min-width:760px;border:1px solid var(--rule);border-radius:4px;background:#fffdf880}.yr-col{flex:1;display:flex;flex-direction:column;border-left:1px solid var(--rule)}.yr-col:first-child{border-left:none}.yr-mhead{text-align:center;font-size:11.5px;letter-spacing:.1em;color:var(--ink-soft);padding:6px 0;border-bottom:1px solid var(--rule);background:#b8923e0f}.yr-cell{height:19px;font-family:var(--eng);font-size:9.5px;color:var(--ink-faint);border-bottom:1px dotted var(--rule);text-align:left;padding-left:5px;transition:background .15s}.yr-cell.void{background:repeating-linear-gradient(45deg,transparent,transparent 3px,rgba(154,143,125,.12) 3px,rgba(154,143,125,.12) 4px)}.yr-cell:not(.void):hover{outline:1.5px solid var(--gold);outline-offset:-1.5px}.yr-cell.today{outline:2px solid var(--terra);outline-offset:-2px}.yr-cell.lv0,.yr-swatch.lv0{background:#b8923e1a}.yr-cell.lv1,.yr-swatch.lv1{background:#b8923e33}.yr-cell.lv2,.yr-swatch.lv2{background:#b8923e57}.yr-cell.lv3,.yr-swatch.lv3{background:#b8923e80;color:var(--ink)}.yr-cell.lv4,.yr-swatch.lv4{background:#96732ba8;color:#fff}.yr-cell.lv5,.yr-swatch.lv5{background:var(--gold-deep);color:#fff}.yr-focus{font-size:11px;font-family:var(--hand);border-top:1px solid var(--rule);padding:5px;background:#b8923e0d}.yr-legend{display:flex;align-items:center;justify-content:center;gap:5px;margin-top:12px;font-size:11.5px;color:var(--ink-faint)}.yr-swatch{width:16px;height:12px;border-radius:2px;display:inline-block;border:1px solid var(--rule)}.yr-swatch.lv-1{background:transparent}.yr-cell{display:flex;align-items:center;gap:4px;overflow:hidden;white-space:nowrap}.yr-d{flex-shrink:0}.yr-note{font-family:var(--hand);font-size:10px;color:var(--gold-deep);overflow:hidden;text-overflow:ellipsis;min-width:0}.yr-cell.lv4 .yr-note,.yr-cell.lv5 .yr-note{color:#fff}.yr-cell.noted .yr-d{font-weight:600;color:var(--ink)}.yr-col{position:relative}.yr-pop{width:232px}.pop-times{display:flex;align-items:center;gap:8px;margin-bottom:10px}.pop-times select{font-family:var(--eng);font-size:14px;background:transparent;border:1px solid var(--rule);border-radius:6px;padding:4px 8px;color:var(--ink);flex:1}.mo-grid{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--rule);border-radius:4px;overflow:hidden;background:#fffdf880;margin-top:8px}.mo-wd{font-size:11px;letter-spacing:.2em;color:var(--ink-soft);text-align:center;padding:7px 0;border-bottom:1px solid var(--rule);background:#b8923e0f}.mo-cell{min-height:76px;border-bottom:1px solid var(--rule);border-right:1px dotted var(--rule);padding:4px 6px;text-align:left;display:flex;flex-direction:column;align-items:flex-start;gap:1px;transition:background .2s;overflow:hidden}.mo-cell:not(.blank):hover{background:#b8923e14}.mo-cell.today{background:#b8923e24}.mo-daynum{font-family:var(--eng);font-size:14px;color:var(--ink-soft)}.mo-cell.today .mo-daynum{color:var(--gold-deep);font-weight:600}.mo-meta{font-size:11px;display:flex;gap:4px;align-items:center}.mo-meta em{font-family:var(--eng);font-style:normal;color:var(--terra);font-size:11.5px}.mo-mit{font-family:var(--hand);font-size:10.5px;line-height:1.3;color:var(--ink-soft);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media (max-width: 560px){.mo-cell{min-height:56px}.mo-mit{display:none}}.sync-box{max-width:520px;margin:0 auto;border:1px dashed var(--rule);border-radius:10px;padding:16px 20px}.sync-help{font-size:13px;color:var(--ink-soft);line-height:1.7}.sync-help a{color:var(--gold-deep)}.sync-help code{font-family:var(--eng);background:#b8923e1f;padding:0 5px;border-radius:4px}.sync-token{margin-top:10px}.sync-token input{font-family:var(--eng);font-size:14px}.sync-status{text-align:center;font-size:12.5px;color:var(--ink-soft);margin-top:10px;font-family:var(--hand)}.data-actions button:disabled{opacity:.4;cursor:default}.eval-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-top:30px;padding-top:18px;border-top:1.5px solid var(--ink)}.eval-group{display:flex;align-items:center;gap:9px}.eval-label{font-size:11.5px;font-weight:600;letter-spacing:.2em;color:var(--ink-soft)}.mood-btn{font-size:21px;filter:grayscale(1) opacity(.45);transition:all .2s;padding:2px}.mood-btn.on{filter:none;transform:scale(1.18)}.score-btn{font-family:var(--eng);font-size:16px;width:32px;height:32px;border-radius:50%;border:1.5px solid transparent;color:var(--ink-soft);transition:all .2s}.score-btn.on{border-color:var(--terra);color:var(--terra);font-weight:600;transform:scale(1.1)}.habit-dot{width:26px;height:26px;border-radius:50%;border:1.5px solid var(--ink-soft);transition:all .25s}.habit-dot.on{background:var(--gold);border-color:var(--gold-deep);box-shadow:0 0 0 3px #b8923e40}.habit-name-input{font-size:13px;width:110px;border-bottom:1px dashed var(--rule)}.timer-bar{position:fixed;left:50%;bottom:max(14px,env(safe-area-inset-bottom));transform:translate(-50%);background:var(--ink);color:var(--paper);border-radius:18px;padding:14px 22px;display:flex;align-items:center;gap:18px;box-shadow:0 12px 40px #1e181073;z-index:50;animation:timerIn .4s cubic-bezier(.34,1.3,.64,1) both;max-width:calc(100vw - 24px)}@keyframes timerIn{0%{opacity:0;transform:translate(-50%,30px)}to{opacity:1;transform:translate(-50%)}}.timer-clock{font-family:var(--eng);font-size:38px;font-weight:500;letter-spacing:.04em;font-variant-numeric:tabular-nums;line-height:1}.timer-clock.break-mode{color:var(--gold-soft)}.timer-task{font-family:var(--hand);font-size:13.5px;color:#f5f0e6bf;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timer-phase{font-size:10.5px;letter-spacing:.25em;color:var(--gold-soft);display:block}.timer-actions{display:flex;gap:8px}.timer-actions button{width:40px;height:40px;border-radius:50%;border:1px solid rgba(245,240,230,.3);color:var(--paper);font-size:14px;display:grid;place-items:center;transition:all .2s}.timer-actions button:hover{background:#f5f0e61f}.timer-actions .stop{border-color:#e6785a8c;color:#e89b7d}.timer-ring{width:54px;height:54px;transform:rotate(-90deg)}.timer-ring circle{fill:none;stroke-width:4}.timer-ring .ring-bg{stroke:#f5f0e626}.timer-ring .ring-fg{stroke:var(--terra);stroke-linecap:round;transition:stroke-dashoffset 1s linear}.timer-ring.break-mode .ring-fg{stroke:var(--gold)}.section-title{font-family:var(--eng);font-size:clamp(22px,3.5vw,28px);letter-spacing:.2em;text-transform:uppercase;text-align:center;margin-bottom:4px}.section-sub{font-family:var(--eng);font-style:italic;text-align:center;font-size:14px;color:var(--ink-faint);margin-bottom:20px;letter-spacing:.06em}.week-task-row{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--rule);padding:7px 0 5px}.week-check{width:22px;height:22px;border:1.5px solid var(--ink-soft);border-radius:4px;display:grid;place-items:center;font-size:13px;color:transparent;flex-shrink:0;transition:all .2s}.week-check.on{background:var(--ink);color:var(--paper-card)}.week-task-row.done input{text-decoration:line-through;color:var(--ink-faint)}.hist-summary{display:flex;gap:clamp(14px,4vw,40px);justify-content:center;margin:10px 0 24px;flex-wrap:wrap}.hist-stat{text-align:center}.hist-stat .num{font-family:var(--eng);font-size:34px;font-style:italic;color:var(--gold-deep);line-height:1.1}.hist-stat .cap{font-size:11px;letter-spacing:.2em;color:var(--ink-soft)}.mood-stats{display:flex;justify-content:center;gap:18px;margin:-6px 0 18px}.mood-stat{font-size:19px}.mood-stat em{font-family:var(--eng);font-style:normal;font-size:13px;color:var(--ink-soft);margin-left:3px}.chart{display:flex;align-items:flex-end;gap:5px;height:90px;margin:18px 0 6px;padding:0 4px;border-bottom:1px solid var(--ink-soft)}.chart .bar{flex:1;background:linear-gradient(to top,var(--gold-deep),var(--gold));border-radius:3px 3px 0 0;min-height:3px;position:relative;opacity:.85}.chart .bar.empty-bar{background:var(--rule)}.chart-labels{display:flex;gap:5px;padding:0 4px;margin-bottom:20px}.chart-labels span{flex:1;text-align:center;font-family:var(--eng);font-size:9.5px;color:var(--ink-faint)}.hist-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:11px 6px;border-bottom:1px solid var(--rule);transition:background .2s;border-radius:4px}.hist-row:hover{background:#b8923e12}.hist-date{font-family:var(--eng);font-size:13.5px;color:var(--ink-soft);width:92px;flex-shrink:0}.hist-mit{flex:1;font-family:var(--hand);font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hist-mit.empty{color:var(--ink-faint);font-style:italic}.hist-score{font-family:var(--eng);font-size:13px;color:var(--terra);flex-shrink:0}.data-actions{display:flex;gap:10px;justify-content:center;margin-top:26px;flex-wrap:wrap}.data-actions button,.data-actions label{font-size:12.5px;letter-spacing:.15em;padding:9px 18px;border:1px solid var(--rule);border-radius:999px;color:var(--ink-soft);cursor:pointer;transition:all .2s}.data-actions button:hover,.data-actions label:hover{border-color:var(--gold);color:var(--gold-deep)}.settings-row{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:14px;font-size:13px;color:var(--ink-soft);flex-wrap:wrap}.settings-row select{font-family:var(--eng);font-size:14px;background:transparent;border:1px solid var(--rule);border-radius:6px;padding:4px 8px;color:var(--ink)}@keyframes celebrate{0%{transform:scale(1)}40%{transform:scale(1.35) rotate(8deg)}to{transform:scale(1)}}.celebrate{animation:celebrate .5s ease}@media (max-width: 600px){.task-row{flex-wrap:wrap;row-gap:2px}.task-text{flex:1 1 0;min-width:150px}.task-play{order:2}.task-check{order:3}.drag-handle{order:4;margin-left:20px}.focus-track{order:5;flex:1}}@media (max-width: 560px){.topbar{flex-wrap:wrap}.focus-track{gap:3px}.ft-circle{width:20px;height:20px}.timer-clock{font-size:30px}.timer-task{display:none}}.cloud-badge{font-size:12px;letter-spacing:.08em;border:1px solid var(--gold);color:var(--gold-deep);border-radius:999px;padding:4px 12px;margin-right:12px;transition:all .2s;animation:pulse-soft 2.5s infinite}.cloud-badge.on{border-color:var(--sage);color:var(--sage);animation:none}@keyframes pulse-soft{0%,to{box-shadow:0 0 #b8923e4d}50%{box-shadow:0 0 0 6px #b8923e00}}.habit-chip{font-family:var(--hand);font-size:13px;border:1px solid var(--rule);border-radius:999px;padding:4px 12px;color:var(--ink-soft);transition:all .2s}.habit-chip.on{background:var(--gold);border-color:var(--gold-deep);color:#fff}.hw-scroll{overflow-x:auto}.hw-table{width:100%;min-width:540px;border-collapse:collapse;margin-top:6px}.hw-table th{font-size:12px;font-weight:500;letter-spacing:.08em;color:var(--ink-soft);padding:7px 4px;border-bottom:1.5px solid var(--ink);text-align:center}.hw-date{display:block;font-family:var(--eng);font-size:10.5px;color:var(--ink-faint)}.hw-table td{text-align:center;padding:6px 4px;border-bottom:1px solid var(--rule)}.hw-table .today{background:#b8923e1a}.hw-name-col{text-align:left!important;font-family:var(--hand);font-size:15px;color:var(--ink);white-space:nowrap}.hw-del{color:var(--ink-faint);font-size:11px;margin-left:8px;opacity:0;transition:opacity .2s}.hw-table tr:hover .hw-del{opacity:1}.hw-check{width:26px;height:26px;border:1.5px solid var(--rule);border-radius:6px;color:transparent;font-size:14px;transition:all .2s}.hw-check.on{background:var(--sage);border-color:var(--sage);color:#fff}.hw-add{display:flex;gap:10px;align-items:flex-end;margin-top:12px;max-width:420px}.hw-add .rollover-btn:disabled{opacity:.4}.hw-heat-scroll{overflow-x:auto;padding:4px 0}.hw-heat{display:flex;gap:3px;min-width:560px}.hw-heat-col{display:flex;flex-direction:column;gap:3px}.hw-heat-cell{width:13px;height:13px;border-radius:3px;background:#9a8f7d26}.hw-heat-cell.none{background:#9a8f7d1f}.hw-heat-cell.h0{background:#b8923e1f}.hw-heat-cell.h1{background:#b8923e4d}.hw-heat-cell.h2{background:#b8923e80}.hw-heat-cell.h3{background:#96732bb3}.hw-heat-cell.h4{background:var(--gold-deep)}.hw-heat-cell.today{outline:1.5px solid var(--terra)}.habit-hint{font-family:var(--hand);font-size:12.5px;color:var(--ink-faint)}.eval-bar{flex-direction:column;align-items:stretch;gap:14px}.eval-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px}.habits-row{justify-content:flex-start;gap:8px}.habit-chip.ghost{border-style:dashed;color:var(--ink-faint)}.habit-chip.ghost:hover{border-color:var(--gold);color:var(--gold-deep)}.habit-add-input{font-family:var(--hand);font-size:13px;border:1px dashed var(--gold);border-radius:999px;padding:4px 12px;width:150px}.mit-focus-row{display:flex;align-items:center;gap:14px;margin:12px 0 4px}.mit-focus{display:inline-flex;align-items:center;gap:10px;padding:8px 22px 8px 10px;border-radius:999px;background:linear-gradient(135deg,#c0633c,#9e4c2c);color:#fff;font-size:14.5px;font-weight:600;letter-spacing:.12em;box-shadow:0 5px 16px #9e4c2c52;transition:all .22s}.mit-focus:hover{transform:translateY(-1px);box-shadow:0 9px 24px #9e4c2c6b}.mit-focus:active{transform:translateY(0)}.mit-focus-ring{width:28px;height:28px;border-radius:50%;background:#fffffff2;color:#9e4c2c;display:grid;place-items:center;font-size:11px;flex-shrink:0}.mit-focus-sub{font-size:12.5px;letter-spacing:.06em;color:var(--ink-faint)}@media (max-width: 560px){.mit-focus-sub{display:none}}.zen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:var(--paper-deep);background-image:radial-gradient(ellipse at 38% 28%,rgba(255,252,244,.85),transparent 65%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0.45 0 0 0 0 0.38 0 0 0 0 0.26 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;animation:zenIn .5s cubic-bezier(.2,.7,.3,1) both}@keyframes zenIn{0%{opacity:0;transform:scale(1.04)}to{opacity:1;transform:none}}.zen-collapse{position:absolute;top:max(14px,env(safe-area-inset-top));right:22px;font-size:26px;color:var(--ink-faint);width:44px;height:44px;border-radius:50%;transition:all .2s}.zen-collapse:hover{background:#2b262012;color:var(--ink)}.zen-stage{position:relative;width:min(72vmin,420px);height:min(72vmin,420px)}.zen-enso{width:100%;height:100%}.zen-enso-fg{stroke:#2b2620;transition:stroke-dashoffset 1s linear}.zen-break .zen-enso-fg{stroke:var(--gold)}.zen-dot{animation:dotDrop .6s cubic-bezier(.34,1.56,.64,1) both}@keyframes dotDrop{0%{opacity:0;transform:scale(3)}to{opacity:1;transform:scale(1)}}.zen-center{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}.zen-clock{font-family:var(--eng);font-size:clamp(56px,13vmin,84px);font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:.03em;color:var(--ink);line-height:1}.zen-phase{font-size:13px;letter-spacing:.35em;color:var(--gold-deep);margin-left:.35em}.zen-break .zen-clock{color:var(--gold-deep)}.zen-task{font-family:var(--hand);font-size:clamp(17px,2.6vmin,21px);color:var(--ink-write);max-width:80vw;text-align:center}.zen-actions{display:flex;gap:12px;margin-top:8px}.zen-actions button{font-size:14px;letter-spacing:.12em;padding:10px 22px;border:1px solid var(--rule);border-radius:999px;color:var(--ink-soft);background:#fffdf899;transition:all .2s}.zen-actions button:hover{border-color:var(--gold);color:var(--gold-deep)}.zen-actions .zen-stop:hover{border-color:var(--terra);color:var(--terra)}.zen-break .zen-stage{animation:breathe 4s ease-in-out infinite}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.035)}}.tl-block.slim{display:flex;align-items:center;padding:0 8px;font-size:12.5px;white-space:nowrap;text-overflow:ellipsis}.tl-block.slim .tl-block-time{display:none}.zheng-btn{width:38px;height:38px;display:grid;place-items:center;border-radius:8px;transition:background .2s;flex-shrink:0}.zheng-btn:hover{background:#b8923e1a}.zheng-btn:active{transform:scale(.92)}.zheng{width:30px;height:30px;overflow:visible}.zheng line{stroke-width:2.8;stroke-linecap:round;transition:stroke .25s}.zheng .zs-done{stroke:var(--ink-write);animation:strokeIn .3s cubic-bezier(.34,1.4,.64,1)}@keyframes strokeIn{0%{stroke-width:6;opacity:.4}to{stroke-width:2.8;opacity:1}}.zheng .zs-target{stroke:#cfc4a8}.zheng .zs-ghost{stroke:#9a8f7d2e}.tally-chip{font-family:var(--eng);font-size:13.5px;color:var(--ink-soft);border:1px dashed var(--rule);border-radius:999px;padding:3px 10px;flex-shrink:0;transition:all .2s}.tally-chip span{color:var(--ink-faint);margin:0 1px}.tally-chip:hover{border-color:var(--gold);color:var(--gold-deep)}.tally-minus{width:22px;height:22px;border-radius:50%;border:1px solid var(--rule);color:var(--ink-faint);font-size:13px;flex-shrink:0;opacity:0;transition:opacity .2s}.task-row:hover .tally-minus{opacity:1}@media (hover: none){.tally-minus{opacity:.6}}.pie-btn{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;transition:background .2s;flex-shrink:0}.pie-btn:hover{background:#b8923e1a}.pie-btn:active{transform:scale(.9)}.pie{width:30px;height:30px;overflow:visible}.pie path{fill:none;stroke-width:5.5;stroke-linecap:round;transition:stroke .3s}.pie .pg-done{stroke:#5e7a4e}.pie .pg-rest{stroke:#9a8f7d47}.pie .pg-dot{fill:var(--gold);animation:dotDrop .5s cubic-bezier(.34,1.56,.64,1) both}.pie .pg-over{stroke:var(--gold)}.tally-chip.over{border-color:var(--gold);color:var(--gold-deep);border-style:solid}.focus-track{position:relative}.target-pop{position:absolute;top:42px;right:0;z-index:30;background:var(--paper-card);border:1px solid var(--gold);border-radius:10px;box-shadow:0 10px 30px #3c301e47;padding:12px 14px;width:218px}.tp-label{font-size:11.5px;letter-spacing:.08em;color:var(--ink-soft);margin-bottom:8px}.tp-nums{display:flex;gap:6px;margin-bottom:10px}.tp-num{width:28px;height:28px;border-radius:50%;border:1px solid var(--rule);font-family:var(--eng);font-size:14px;color:var(--ink-soft);transition:all .15s}.tp-num:hover{border-color:var(--gold);color:var(--gold-deep)}.tp-num.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}.tp-start{width:100%;padding:8px 0;border-radius:999px;background:linear-gradient(135deg,#c0633c,#9e4c2c);color:#fff;font-size:13.5px;letter-spacing:.12em;transition:all .2s}.tp-start:hover{box-shadow:0 6px 16px #9e4c2c66}.tp-start:disabled{opacity:.4}.sq-track{gap:8px}.sq-row{display:flex;gap:5px;align-items:center}.sq{width:16px;height:16px;border:1.5px solid #a4977f;border-radius:3px;padding:0;position:relative;transition:all .18s;flex-shrink:0}.sq:hover{border-color:var(--ink-soft);transform:scale(1.12)}.sq.fill{background:var(--ink-write);border-color:var(--ink-write);animation:sqFill .25s cubic-bezier(.34,1.45,.64,1)}.sq.gold{background:var(--gold);border-color:var(--gold-deep);animation:sqFill .25s cubic-bezier(.34,1.45,.64,1)}@keyframes sqFill{0%{transform:scale(.6)}to{transform:scale(1)}}.sq-adj{display:inline-flex;gap:3px;opacity:0;transition:opacity .2s}.task-row:hover .sq-adj{opacity:1}@media (hover: none){.sq-adj{opacity:.55}}.sq-adj button{width:20px;height:20px;border-radius:50%;border:1px solid var(--rule);color:var(--ink-faint);font-size:12px;line-height:1}.sq-adj button:hover{border-color:var(--gold);color:var(--gold-deep)}.week-no{color:var(--gold-deep);font-style:italic}.mc{display:inline-block}.mc-month{font-family:var(--eng);font-size:30px;font-weight:500;color:var(--ink-soft);line-height:1;margin-bottom:6px}.mc-grid{display:grid;grid-template-columns:15px repeat(7,19px);gap:1px 0}.mc-wk{font-family:var(--eng);font-size:7.5px;color:#9a8f7dbf;text-align:right;padding-right:4px;line-height:17px}.mc-dow{font-family:var(--eng);font-size:9px;color:var(--ink-faint);text-align:center;padding-bottom:2px}.mc-day{font-family:var(--eng);font-size:10.5px;color:var(--ink-soft);height:17px;text-align:center;border-radius:3px;padding:0;transition:background .15s}.mc-day:not(.blank):hover{background:#b8923e26}.mc-day.blank{pointer-events:none}.mc-day.in-week{background:#b8923e29;border-radius:0}.mc-day.in-week:first-of-type{border-radius:3px 0 0 3px}.mc-day.today{color:var(--terra);font-weight:700}.mc-day.sel{background:var(--ink);color:var(--paper);border-radius:50%}.mc-strip{display:flex;gap:clamp(18px,4vw,44px);justify-content:center;margin:4px 0 20px;flex-wrap:wrap}.day-side{display:flex;flex-direction:column;gap:18px}.day-side .mc{align-self:center}.act-table{width:100%;border-collapse:collapse;font-size:14px;margin-top:4px}.act-table th{font-size:11.5px;letter-spacing:.15em;font-weight:600;color:var(--ink-soft);text-align:left;padding:7px 8px;border-bottom:1.5px solid var(--ink)}.act-table td{padding:8px;border-bottom:1px solid var(--rule);color:var(--ink-soft);font-family:var(--eng)}.act-table .act-name{font-family:var(--hand);font-size:15px;color:var(--ink-write)}.yr-strip{display:grid;grid-template-columns:repeat(6,max-content);justify-content:center;gap:14px 26px;padding:2px 4px 12px;margin-bottom:8px}@media (max-width: 1024px){.yr-strip{grid-template-columns:repeat(4,max-content)}}@media (max-width: 700px){.yr-strip{grid-template-columns:repeat(3,max-content)}}button.mc-month:disabled{cursor:default}.mc-micro{flex-shrink:0;padding:4px 5px 5px;border-radius:6px}.mc-micro.mc-cur{outline:1.5px solid var(--gold);background:#b8923e12}.mc-micro .mc-month{font-family:var(--eng);font-size:15px;font-weight:600;color:var(--ink-soft);line-height:1;margin-bottom:3px;padding:0}.mc-micro .mc-month:hover{color:var(--gold-deep)}.mc-micro .mc-grid{grid-template-columns:15px repeat(7,17px);gap:1px 0}.mc-micro .mc-wk{font-size:8px;line-height:14.5px;padding-right:3px}.mc-micro .mc-dow{display:none}.mc-micro .mc-day{font-size:10px;height:14.5px;line-height:14.5px;border-radius:2.5px;color:var(--ink-soft)}.mc-micro .mc-day.today{color:var(--terra);font-weight:700}.gantt{border:1px solid var(--rule);border-radius:6px;background:#fffdf880;user-select:none;-webkit-user-select:none;touch-action:pan-y;overflow:hidden}.g-row{display:grid;grid-template-columns:150px repeat(7,1fr);position:relative;border-bottom:1px solid var(--rule);min-height:34px}.g-row:last-child{border-bottom:none}.g-head{min-height:30px;background:#b8923e0f;cursor:default}.g-day{font-size:11.5px;letter-spacing:.1em;color:var(--ink-soft);text-align:center;align-self:center}.g-day span{font-family:var(--eng);font-size:10px;color:var(--ink-faint);margin-left:3px}.g-day.today{color:var(--gold-deep);font-weight:700}.g-label{font-family:var(--hand);font-size:13.5px;color:var(--ink-write);padding:7px 10px;border-right:1px solid var(--rule);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;align-self:center}.g-label.done{text-decoration:line-through;color:var(--ink-faint)}.g-cell{border-right:1px dotted var(--rule);cursor:crosshair}.g-cell:last-child{border-right:none}.g-cell.today{background:#b8923e14}.g-bar{grid-row:1;align-self:center;margin:0 4px;height:20px;line-height:20px;border-radius:999px;background:linear-gradient(135deg,#33415e,#1e2a40);color:#f5f0e6;font-family:var(--hand);font-size:11.5px;padding:0 10px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;box-shadow:0 2px 8px #1e2a404d;pointer-events:auto;z-index:2}.g-bar.done{background:linear-gradient(135deg,#76905f,#5e7a4e)}.g-bar.dragging{opacity:.85;box-shadow:0 6px 16px #1e2a4066}@media (max-width: 640px){.g-row{grid-template-columns:96px repeat(7,1fr)}.g-label{font-size:12px;padding:6px}}.g-empty{padding:16px 18px;font-family:var(--hand);font-size:14px;color:var(--ink-faint);display:flex;align-items:center;gap:10px;border-style:dashed}.g-demo{display:inline-block;width:110px;height:18px;border-radius:999px;background:linear-gradient(135deg,#33415e,#1e2a40);opacity:.65}.gantt .g-day{font-size:10px;overflow:hidden}.gantt .g-bar{min-width:0}:root{--proj-terra: #b65c38;--proj-sage: #6e7d5c;--proj-gold: #b8923e;--proj-indigo: #3d5a73;--proj-plum: #7d5a6e;--proj-slate: #5c6670}.proj-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;font-family:var(--serif);font-size:12px;color:var(--proj, var(--ink-faint));background:transparent;border:1px solid color-mix(in srgb,var(--proj, var(--ink-faint)) 45%,transparent);border-radius:999px;padding:1px 10px;max-width:110px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;cursor:pointer;flex-shrink:0}.proj-select.unset{border-style:dashed;opacity:.6}.proj-select:hover{opacity:1;border-color:var(--proj, var(--ink-soft))}.proj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin-top:16px}.proj-card{position:relative;background:var(--paper-card);border:1px solid var(--rule);border-left:4px solid var(--proj, var(--ink-faint));border-radius:8px;padding:14px 16px;cursor:pointer;text-align:left;transition:transform .15s,box-shadow .15s;display:block;width:100%}.proj-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-page)}.proj-card .proj-name{font-weight:600;font-size:16.5px;display:flex;align-items:center;gap:8px}.proj-card .proj-goal{font-family:var(--hand);color:var(--ink-soft);font-size:14px;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proj-card .proj-mini{margin-top:10px;font-size:12.5px;color:var(--ink-faint);display:flex;gap:14px}.proj-card .proj-mini b{color:var(--proj, var(--ink-soft));font-family:var(--eng);font-size:15px}.proj-new{border-style:dashed;border-left-width:1px;color:var(--ink-faint);display:grid;place-items:center;min-height:96px;font-size:15px}.proj-new:hover{color:var(--gold-deep)}.proj-archived-toggle{margin-top:26px;font-size:13px;color:var(--ink-faint);text-decoration:underline dotted}.proj-card.archived{opacity:.55}.proj-form{background:var(--paper-card);border:1px solid var(--rule);border-radius:8px;padding:16px 18px;margin-top:16px;display:flex;flex-direction:column;gap:12px;max-width:480px}.proj-form-row{display:flex;align-items:center;gap:10px}.proj-form-row .label{margin:0;min-width:56px}.color-dots{display:flex;gap:8px}.color-dot{width:22px;height:22px;border-radius:50%;background:var(--proj);border:2px solid transparent;transition:transform .15s}.color-dot.on{border-color:var(--ink);transform:scale(1.15)}.emoji-input{width:46px!important;text-align:center;font-size:20px!important;border:1px solid var(--rule)!important;border-radius:6px;padding:3px 0}.proj-form-actions{display:flex;gap:10px;justify-content:flex-end}.proj-form-actions .danger{margin-right:auto;color:var(--terra);font-size:13px;text-decoration:underline dotted}.pd-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.pd-head h2{font-size:24px;display:flex;align-items:center;gap:10px}.pd-goal{font-family:var(--hand);color:var(--ink-soft);font-size:15.5px}.pd-back{font-size:14px;color:var(--ink-faint);padding:4px 8px}.pd-back:hover{color:var(--gold-deep)}.pd-edit{font-size:13px;color:var(--ink-faint);text-decoration:underline dotted}.pd-stats{display:flex;gap:0;margin:18px 0 6px;border:1px solid var(--rule);border-radius:8px;background:var(--paper-card);overflow:hidden}.pd-stat{flex:1;text-align:center;padding:12px 6px}.pd-stat+.pd-stat{border-left:1px solid var(--rule)}.pd-stat b{display:block;font-family:var(--eng);font-size:22px;color:var(--proj, var(--gold-deep))}.pd-stat span{font-size:12px;color:var(--ink-faint)}.plog{margin-top:18px;border-left:2px solid var(--rule);padding-left:18px}.plog-day{position:relative;padding:10px 0 16px}.plog-day:before{content:"";position:absolute;left:-23.5px;top:19px;width:9px;height:9px;border-radius:50%;background:var(--proj, var(--ink-faint));border:2px solid var(--paper)}.plog-date{font-family:var(--eng);font-size:13px;letter-spacing:.08em;color:var(--ink-faint);display:flex;align-items:baseline;gap:10px}.plog-date .plog-min{color:var(--proj, var(--gold-deep))}.plog-task{font-family:var(--hand);font-size:16px;color:var(--ink-write);margin-top:4px;display:flex;align-items:baseline;gap:8px}.plog-task.done-task{text-decoration:line-through;text-decoration-color:var(--ink-faint);color:var(--ink-soft)}.plog-task .plog-sq{font-size:12px;color:var(--ink-faint);letter-spacing:.15em}.plog-learn{font-family:var(--hand);font-size:15px;color:var(--ink-soft);margin-top:4px;padding-left:2px}.plog-learn:before{content:"✦ ";color:var(--proj, var(--gold))}.plog-learn .plog-src{font-size:12.5px;color:var(--ink-faint)}.plog-empty{margin-top:24px;color:var(--ink-faint);font-family:var(--hand);font-size:15px}.learn-row{display:flex;align-items:baseline;gap:8px;padding:5px 0;border-bottom:1px dashed var(--rule)}.learn-row .learn-text{font-family:var(--hand);font-size:16px;color:var(--ink-write);flex:1}.learn-row .learn-src{font-size:12.5px;color:var(--ink-faint);max-width:30%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.learn-row .learn-del{color:var(--ink-faint);font-size:13px;opacity:0}.learn-row:hover .learn-del{opacity:1}@media (hover: none){.learn-row .learn-del{opacity:.5}}.learn-add{display:flex;gap:8px;align-items:center;margin-top:6px}.learn-add .line-input{flex:1}.learn-add .learn-src-input{flex:0 0 28%}.learn-add .learn-src-input input{font-size:14px}.data-bar{margin-top:32px;padding-top:14px;border-top:1px solid var(--rule);display:flex;gap:14px;align-items:center;font-size:13px;color:var(--ink-faint)}.data-bar button{text-decoration:underline dotted}.data-bar button:hover{color:var(--gold-deep)}.tl-block.proj{background:linear-gradient(135deg,color-mix(in srgb,var(--proj) 16%,transparent),color-mix(in srgb,var(--proj) 30%,transparent));border-color:var(--proj);border-left-color:var(--proj)}.tl-block .tl-block-proj{margin-right:4px}.cloud-wrap{position:relative;display:inline-block}.cloud-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.cloud-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:50;width:248px;background:var(--paper-card);border:1px solid var(--rule);border-radius:10px;box-shadow:var(--shadow-page);padding:14px;display:flex;flex-direction:column;gap:8px;text-align:left}.cloud-title{font-weight:600;font-size:14.5px;color:var(--ink)}.cloud-email{font-family:var(--eng);font-size:14px;color:var(--gold-deep);word-break:break-all}.cloud-input{border:1px solid var(--rule)!important;border-radius:6px;padding:7px 9px;font-size:14.5px!important;font-family:var(--serif)!important;background:var(--paper)!important;-webkit-text-stroke:0!important}.cloud-signin{background:var(--gold);color:#fff;border-radius:6px;padding:8px;font-size:14px;font-weight:600}.cloud-signin:disabled{opacity:.55}.cloud-actions{display:flex;gap:8px}.cloud-actions .cloud-signin{flex:1}.cloud-out{border:1px solid var(--rule);border-radius:6px;padding:8px 12px;font-size:14px;color:var(--ink-soft)}.cloud-hint{font-size:12px;color:var(--ink-faint);line-height:1.5}.cloud-msg{font-size:12.5px;color:var(--terra);border-top:1px dashed var(--rule);padding-top:8px}.wk-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:14.5px}.wk-table th{text-align:left;font-weight:500;font-size:12px;color:var(--ink-faint);padding:4px 8px;border-bottom:1px solid var(--rule)}.wk-table th:not(:first-child),.wk-table td:not(:first-child){text-align:center;width:64px}.wk-table td{padding:8px;border-bottom:1px dashed var(--rule);font-family:var(--eng);color:var(--ink)}.wk-table td:first-child{font-family:var(--serif)}.wk-proj{display:inline-flex;align-items:center;gap:6px;border-left:3px solid var(--proj, var(--ink-faint));padding-left:8px}.wk-review{margin-top:6px}.wk-q{font-size:13px;color:var(--ink-soft);margin:12px 0 4px}.wk-review textarea{width:100%;border:1px solid var(--rule);border-radius:6px;background:var(--paper-card);padding:8px 10px;font-family:var(--hand);font-size:16px;color:var(--ink-write);resize:vertical;line-height:1.6}.set-section{margin-top:18px}.set-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.set-chip{border:1px solid var(--rule);border-radius:999px;padding:6px 16px;font-size:14px;color:var(--ink-soft);background:var(--paper-card)}.set-chip.on{border-color:var(--gold);background:var(--gold);color:#fff}.set-stat{font-size:15px;color:var(--ink-soft)}.set-stat b{font-family:var(--eng);font-size:19px;color:var(--gold-deep)}.set-hint{font-size:12.5px;color:var(--ink-faint);line-height:1.6;margin:4px 0 10px}.set-actions{display:flex;gap:10px}.set-btn{background:var(--gold);color:#fff;border-radius:6px;padding:8px 16px;font-size:14px}.set-btn.ghost{background:transparent;border:1px solid var(--rule);color:var(--ink-soft)}.pd-trend-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:4px}.pd-spark{display:flex;align-items:center;gap:8px}.pd-spark-label{font-size:11.5px;color:var(--ink-faint)}
