:root,[data-theme=dark]{--bg: #111317;--card: #1d2026;--card-2: #272b33;--line: #2f343d;--tx: #f5f6f7;--tx-2: #8d929c;--lime: #c8f135;--lime-2: #a9d21c;--on-lime: #1a2100;--panel: #f4f5f2;--panel-tx: #14161a;--panel-tx-2: #6b707a;--panel-line: #e1e3de;--panel-row: #e8e9e5;--detail: #1d2026;--detail-tx: #ffffff;--detail-tx-2: #8d929c;--detail-card: #2a2e35;--detail-line: #3a3f48;--seg: #1d2026;--seg-tx: #c9ccd2;--shadow: none;--overlay: rgba(0, 0, 0, .6);color-scheme:dark}[data-theme=light]{--bg: #eceef1;--card: #ffffff;--card-2: #f2f3f5;--line: #e2e4e8;--tx: #14161a;--tx-2: #6e737d;--panel: #ffffff;--panel-tx: #14161a;--panel-tx-2: #6e737d;--panel-line: #e6e8eb;--panel-row: #f2f3f5;--detail: #f4f5f7;--detail-tx: #14161a;--detail-tx-2: #6e737d;--detail-card: #ffffff;--detail-line: #dfe2e6;--seg: #14161a;--seg-tx: #c9ccd2;--shadow: 0 4px 18px rgba(20, 22, 26, .07);--overlay: rgba(20, 22, 26, .35);color-scheme:light}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--tx);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased;transition:background .2s}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}input,select,textarea{outline:none}:focus-visible{outline:2px solid var(--lime);outline-offset:2px}.app{max-width:1280px;margin:0 auto;padding:18px 24px 40px}.topbar{display:flex;align-items:center;gap:12px;margin-bottom:22px}.brand{display:flex;align-items:center;gap:8px;font-weight:600;font-size:15px}.nav-wrap{flex:1;min-width:0;display:flex;justify-content:center}.nav{display:flex;gap:2px;padding:4px;border-radius:999px;background:#f4f5f2;overflow-x:auto;scrollbar-width:none;max-width:100%}[data-theme=light] .nav{background:#fff;box-shadow:var(--shadow)}.nav::-webkit-scrollbar{display:none}.nav button{border:none;background:transparent;color:#14161a;padding:8px 16px;border-radius:999px;font-size:13px;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.nav button:hover{background:#e7e8e4}.nav button.active{background:var(--lime);color:var(--on-lime);font-weight:600}.nav .badge{background:#14161a;color:#fff;border-radius:999px;font-size:11px;padding:0 7px;line-height:18px}.nav button.active .badge{background:var(--on-lime);color:var(--lime)}.icon-btn{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:transparent;display:inline-flex;align-items:center;justify-content:center;color:var(--tx);flex:none}.icon-btn:hover{background:var(--card-2)}.icon-btn.sm{width:32px;height:32px}.pill-btn{border-radius:999px;padding:9px 16px;border:1px solid var(--line);background:transparent;color:var(--tx);display:inline-flex;align-items:center;gap:8px;font-size:13px;white-space:nowrap}.pill-btn:hover{background:var(--card-2)}.lime-btn{border:none;border-radius:999px;padding:10px 18px;background:var(--lime);color:var(--on-lime);font-weight:600;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.lime-btn:hover{background:var(--lime-2)}.lime-btn:disabled{opacity:.45;cursor:default}.title-row{display:flex;align-items:center;gap:14px;margin-bottom:18px;flex-wrap:wrap}.title-row h1{font-size:44px;font-weight:500;letter-spacing:-1.5px;margin:0;line-height:1}.title-row .date{color:var(--tx-2);font-size:14px}.spacer{flex:1}.card{background:var(--card);border-radius:28px;padding:22px;box-shadow:var(--shadow)}.label{font-size:12px;color:var(--tx-2);margin:0 0 6px}.big{font-size:36px;font-weight:500;letter-spacing:-1px;line-height:1.1}.big small{font-size:15px;color:var(--tx-2);font-weight:400;letter-spacing:0}.top-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(0,1fr);gap:14px;margin-bottom:18px}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.bars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:26px}.bar-head{display:flex;justify-content:space-between;font-size:12px;color:var(--tx-2);margin-bottom:8px}.bar{height:9px;border-radius:9px;background:var(--card-2);overflow:hidden}.bar>i{display:block;height:100%;border-radius:9px;transition:width .4s;background:repeating-linear-gradient(-45deg,var(--lime) 0 5px,var(--lime-2) 5px 9px)}.focus-card{display:flex;flex-direction:column;gap:12px}.focus-card .row{display:flex;align-items:center;justify-content:space-between;gap:8px}.chip{font-size:11px;border-radius:999px;padding:3px 10px;border:1px solid var(--line);color:var(--tx-2);white-space:nowrap}.mini-blocks{display:flex;gap:8px;align-items:flex-end;flex:1;min-height:96px}.mini{flex:1;min-width:0;background:var(--card-2);border-radius:18px;padding:10px;font-size:11px;color:var(--tx-2);height:74px;overflow:hidden;border:none;text-align:left}.mini b{display:block;color:var(--tx);font-weight:500;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini.current{background:var(--lime);color:var(--on-lime);height:96px;flex:1.3}.mini.current b{color:var(--on-lime);white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.mini.empty{background:transparent;border:1px dashed var(--line)}.week{display:flex;align-items:center;gap:8px;margin-bottom:34px;flex-wrap:wrap}.week .label{margin:0 6px 0 0;font-size:14px;color:var(--tx)}.day-pill{border-radius:999px;padding:8px 14px;font-size:13px;border:1px solid var(--line);background:transparent;color:var(--tx-2);display:inline-flex;gap:6px;align-items:center}.day-pill:hover{background:var(--card-2)}.day-pill.today{color:var(--tx);border-color:var(--tx-2)}.day-pill.sel{background:var(--tx);color:var(--bg);border-color:var(--tx)}.day-pill .count{font-size:11px;opacity:.7}.panel{background:var(--panel);color:var(--panel-tx);border-radius:32px;padding:0 18px 18px;box-shadow:var(--shadow)}.seg-wrap{display:flex;justify-content:center;transform:translateY(-50%);margin-bottom:-6px}.seg{display:flex;gap:4px;padding:5px;background:var(--seg);border-radius:999px;max-width:100%;overflow-x:auto;scrollbar-width:none}.seg button{border:none;background:transparent;color:var(--seg-tx);border-radius:999px;padding:8px 16px;font-size:13px;white-space:nowrap}.seg button:hover{color:#fff}.seg button.active{background:var(--lime);color:var(--on-lime);font-weight:600}.panel-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.35fr);gap:16px;align-items:start}.panel h3{font-size:15px;font-weight:600;margin:4px 6px 12px}.add-row{display:flex;gap:8px;margin-bottom:10px}.add-row input{flex:1;min-width:0;border:1px solid var(--panel-line);background:transparent;color:var(--panel-tx);border-radius:999px;padding:10px 16px}.add-row input::placeholder{color:var(--panel-tx-2)}.add-row button{border:none;border-radius:999px;background:var(--panel-tx);color:var(--panel);padding:0 16px}.task-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:22px;cursor:pointer;width:100%;border:none;background:transparent;color:var(--panel-tx);text-align:left}.task-row:hover{background:var(--panel-row)}.task-row.sel{background:#1d2026;color:#fff}.task-row .ico{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none;background:var(--panel-row);color:var(--panel-tx)}.task-row.sel .ico{background:#2f343d;color:#fff}.task-row.focus .ico{background:var(--lime);color:var(--on-lime)}.task-row .t-main{flex:1;min-width:0}.task-row .t-title{font-weight:500;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-row .t-sub{font-size:11px;opacity:.6}.task-row.done .t-title{text-decoration:line-through;opacity:.55}.task-row .chip{border-color:#80808059;color:inherit}.task-row.sel .chip{background:#fff;color:#14161a;border-color:#fff}.task-row .dur{font-weight:600;font-size:14px;min-width:52px;text-align:right}.empty-msg{color:var(--panel-tx-2);font-size:13px;padding:18px 8px;text-align:center}.tl-unsched{display:flex;flex-wrap:wrap;gap:6px;margin:0 4px 12px}.tl-chip{border:1px dashed var(--panel-tx-2);background:transparent;color:var(--panel-tx);border-radius:999px;padding:6px 12px;font-size:12px}.tl-chip.sel{border-style:solid;background:var(--panel-tx);color:var(--panel)}.tl-hint{font-size:12px;color:var(--panel-tx-2);margin:0 6px 10px}.timeline{position:relative;max-height:560px;overflow-y:auto;border-radius:18px;padding-right:4px}.tl-inner{position:relative}.tl-slot{position:absolute;left:0;right:0;display:flex;border-top:1px solid var(--panel-line)}.tl-slot.half{border-top-style:dashed}.tl-slot span{font-size:11px;color:var(--panel-tx-2);width:46px;padding-top:2px}.tl-slot button{position:absolute;left:48px;right:0;top:0;bottom:0;border:none;background:transparent;border-radius:10px}.tl-slot button:hover{background:var(--panel-row)}.tl-block{position:absolute;left:52px;right:4px;border-radius:14px;padding:6px 10px;font-size:12px;background:#1d2026;color:#fff;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;overflow:hidden;display:flex;gap:6px;align-items:flex-start;border:2px solid transparent}[data-theme=light] .tl-block{background:#e9ebee;color:#14161a}.tl-block.focus{background:var(--lime);color:var(--on-lime)}.tl-block.sel{border-color:var(--lime)}[data-theme=light] .tl-block.sel{border-color:#14161a}.tl-block.done{opacity:.5}.tl-block.dragging{cursor:grabbing;opacity:.85;z-index:3}.tl-block .grip{opacity:.5;flex:none;margin-top:1px}.tl-block .tb-t{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl-block .tb-s{font-size:10px;opacity:.7}.tl-now{position:absolute;left:46px;right:0;height:2px;background:#ff5a4f;z-index:2;pointer-events:none}.tl-now:before{content:"";position:absolute;left:-4px;top:-3px;width:8px;height:8px;border-radius:50%;background:#ff5a4f}.notes-area{width:100%;min-height:260px;border-radius:22px;border:1px solid var(--panel-line);background:transparent;color:var(--panel-tx);padding:16px;resize:vertical}.detail{background:var(--detail);color:var(--detail-tx);border-radius:28px;padding:20px}.detail .muted{color:var(--detail-tx-2);font-size:12px}.detail-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.title-input{width:100%;background:transparent;border:none;color:var(--detail-tx);font-size:26px;font-weight:500;letter-spacing:-.6px;padding:4px 0;margin:2px 0 8px;border-bottom:1px solid transparent}.title-input:focus{border-bottom-color:var(--detail-line)}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}.field{display:flex;flex-direction:column;gap:4px}.field.full{grid-column:1 / -1}.field label{font-size:11px;color:var(--detail-tx-2)}.field input,.field select,.field textarea{background:var(--detail-card);border:1px solid var(--detail-line);color:var(--detail-tx);border-radius:14px;padding:9px 12px;width:100%}.field textarea{resize:vertical;min-height:64px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chips button{border-radius:999px;padding:6px 12px;font-size:12px;border:1px solid var(--detail-line);background:transparent;color:var(--detail-tx)}.chips button.on{background:var(--detail-tx);color:var(--detail);border-color:var(--detail-tx)}.subtasks{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin:6px 0 12px}.sub{background:var(--detail-card);border-radius:18px;padding:10px 12px;min-height:74px;display:flex;flex-direction:column;justify-content:space-between;gap:6px;font-size:12px;border:1px solid var(--detail-line);position:relative}.sub .sub-top{display:flex;justify-content:space-between;align-items:center}.sub button{background:none;border:none;color:var(--detail-tx-2);padding:0;display:inline-flex}.sub button.chk.on{color:var(--lime)}[data-theme=light] .sub button.chk.on{color:#5b7a00}.sub.done .sub-text{text-decoration:line-through;opacity:.6}.sub-add{border:1px dashed var(--detail-line);border-radius:18px;display:flex;align-items:center;padding:0 10px;min-height:74px;gap:6px}.sub-add input{flex:1;min-width:0;border:none;background:transparent;color:var(--detail-tx);font-size:12px}.sub-add input::placeholder{color:var(--detail-tx-2)}.detail-foot{background:var(--detail-card);border-radius:22px;padding:12px 14px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;border:1px solid var(--detail-line)}.detail-foot .nums{display:flex;gap:22px;flex:1}.detail-foot .nums b{display:block;font-size:20px;font-weight:500;color:var(--detail-tx)}.detail .icon-btn{border-color:var(--detail-line);color:var(--detail-tx)}.detail .icon-btn:hover{background:var(--detail-card)}.detail .icon-btn.on{background:var(--lime);color:var(--on-lime);border-color:var(--lime)}.detail .icon-btn.danger:hover{color:#ff5a4f}.detail-empty{color:var(--detail-tx-2);text-align:center;padding:60px 20px}.inbox-wrap{max-width:760px;margin:0 auto}.capture-big{display:flex;gap:8px;margin-bottom:18px}.capture-big input{flex:1;min-width:0;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--tx);padding:14px 20px;font-size:15px;box-shadow:var(--shadow)}.inbox-item{display:flex;flex-direction:column;gap:10px;padding:16px 18px;border-radius:22px;background:var(--card);margin-bottom:10px;box-shadow:var(--shadow)}.inbox-item .top{display:flex;gap:10px;align-items:flex-start}.inbox-item .txt{flex:1;font-size:14px;white-space:pre-wrap;word-break:break-word}.inbox-item .when{font-size:11px;color:var(--tx-2)}.classify{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:8px;align-items:end}.classify select,.classify input{width:100%;background:var(--card-2);border:1px solid var(--line);border-radius:12px;padding:8px 10px;color:var(--tx)}.classify label{font-size:11px;color:var(--tx-2);display:flex;flex-direction:column;gap:4px}.capture-pop-wrap{position:relative}.capture-pop{position:absolute;right:0;top:calc(100% + 8px);width:min(360px,calc(100vw - 32px));z-index:20;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:12px;box-shadow:0 12px 40px #00000040}.capture-pop input{width:100%;border-radius:999px;border:1px solid var(--line);background:var(--card-2);color:var(--tx);padding:10px 14px}.capture-pop p{font-size:11px;color:var(--tx-2);margin:8px 4px 0}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);background:var(--tx);color:var(--bg);border-radius:999px;padding:10px 18px;font-size:13px;z-index:100;box-shadow:0 8px 30px #00000040}.focus-mode{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;overflow-y:auto;text-align:center}.focus-mode .fm-area{color:var(--tx-2);font-size:13px}.focus-mode h2{font-size:30px;font-weight:500;letter-spacing:-.8px;margin:6px 0 4px;max-width:640px}.focus-mode .fm-obj{color:var(--tx-2);font-size:14px;margin-bottom:26px;max-width:560px}.ring{position:relative;width:260px;height:260px;margin:0 auto}.ring svg{transform:rotate(-90deg)}.ring .time{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.ring .time b{font-size:60px;font-weight:500;letter-spacing:-2px;font-variant-numeric:tabular-nums}.ring .time span{color:var(--tx-2);font-size:13px}.fm-controls{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:26px 0 16px}.fm-durations{display:flex;gap:18px;justify-content:center;color:var(--tx-2);font-size:13px;margin-bottom:22px;flex-wrap:wrap}.stepper{display:inline-flex;align-items:center;gap:8px}.stepper button{width:28px;height:28px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--tx);display:inline-flex;align-items:center;justify-content:center}.stepper b{color:var(--tx);font-weight:500;min-width:48px}.fm-subs{width:100%;max-width:420px;text-align:left;margin-bottom:22px}.fm-subs button{width:100%;display:flex;gap:10px;align-items:center;padding:10px 14px;border-radius:16px;border:none;background:var(--card);color:var(--tx);margin-bottom:6px;text-align:left}.fm-subs button.done span{text-decoration:line-through;opacity:.55}.fm-subs button.done svg{color:var(--lime)}[data-theme=light] .fm-subs button.done svg{color:#5b7a00}.fm-capture{width:100%;max-width:420px;display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:999px;padding:4px 6px 4px 16px}.fm-capture input{flex:1;min-width:0;background:transparent;border:none;color:var(--tx);padding:8px 0}.soon{text-align:center;padding:80px 20px;color:var(--tx-2)}.soon h2{color:var(--tx);font-weight:500;font-size:26px;margin:12px 0 6px}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);z-index:40;display:flex;align-items:flex-end}.sheet{width:100%;max-height:92vh;overflow-y:auto;border-radius:28px 28px 0 0}.sheet .detail{border-radius:28px 28px 0 0;padding-bottom:calc(24px + env(safe-area-inset-bottom))}.sheet-handle{width:44px;height:5px;border-radius:9px;background:var(--detail-line);margin:0 auto 12px}@media(max-width:900px){.app{padding:12px 16px 32px}.top-grid,.panel-grid{grid-template-columns:minmax(0,1fr)}.panel-grid>.detail{display:none}}@media(max-width:640px){.brand span{display:none}.nav-wrap{justify-content:flex-start}.nav button{padding:8px 12px}.title-row h1{font-size:34px}.card{padding:18px;border-radius:24px}.big{font-size:28px}.stats,.bars{gap:12px}.stats .label{font-size:11px}.panel{padding:0 10px 12px;border-radius:26px}.seg button{padding:8px 12px}.classify{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.ring{width:220px;height:220px}.ring .time b{font-size:50px}.focus-mode h2{font-size:24px}.week{gap:6px}.day-pill{padding:7px 10px;font-size:12px}}.login{min-height:80vh;display:flex;align-items:center;justify-content:center}.login-card{width:100%;max-width:400px}.login-card h1{font-size:34px;font-weight:500;letter-spacing:-1px;margin:0 0 8px}.login-input{width:100%;border-radius:999px;border:1px solid var(--line);background:var(--card-2);color:var(--tx);padding:12px 18px;font-size:15px}.login-error{color:#ff5a4f;font-size:13px;margin:8px 6px 0}.sync-wrap{position:relative}.sync-dot{position:absolute;right:6px;top:6px;width:8px;height:8px;border-radius:50%;border:2px solid var(--bg)}.sync-dot.ok{background:var(--lime)}.sync-dot.syncing{background:#f5b642}.sync-dot.offline,.sync-dot.error{background:#ff5a4f}.account-pop{right:0;width:min(300px,calc(100vw - 32px))}.account-pop .acc-email{font-size:13px;font-weight:500;word-break:break-all}.account-pop .acc-status{font-size:12px;color:var(--tx-2);margin:4px 0 12px}
