*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 100%;--foreground: 240 10% 3.9%;--card: 0 0% 100%;--card-foreground: 240 10% 3.9%;--popover: 0 0% 100%;--popover-foreground: 240 10% 3.9%;--primary: 240 5.9% 10%;--primary-foreground: 0 0% 98%;--secondary: 240 4.8% 95.9%;--secondary-foreground: 240 5.9% 10%;--muted: 240 4.8% 95.9%;--muted-foreground: 240 3.8% 46.1%;--accent: 240 4.8% 95.9%;--accent-foreground: 240 5.9% 10%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 0 0% 98%;--border: 240 5.9% 90%;--input: 240 5.9% 90%;--ring: 240 5.9% 10%;--radius: .625rem}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}.visible{visibility:visible}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.resize{resize:both}.border{border-width:1px}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{--paper: #f6f2e9;--ink: #1d1a16;--pink: #fe99d9;--pink-soft: #ffe3f3;--orange: #ff6502;--orange-soft: #ffe4d1;--green: #1f9540;--green-soft: #dcf2e2;--yellow: #ffe14d;--blue-soft: #def4ff;--lime: #cdddbb;--card: #fffdf7;--muted: #8a8071}body{background:var(--paper);background-image:radial-gradient(#e3dcc9 1.2px,transparent 1.2px);background-size:22px 22px;color:var(--ink);font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,Source Han Sans SC,sans-serif;min-height:100vh}#root{min-height:100vh}.kb-btn{font-family:inherit;font-size:15px;font-weight:800;cursor:pointer;border-radius:999px;padding:11px 24px;border:1.5px solid var(--ink);background:var(--ink);color:#fff;transition:transform .15s ease,box-shadow .15s ease}.kb-btn:hover{transform:translateY(-2px);box-shadow:0 4px #1d1a1640}.kb-btn:active{transform:translateY(0);box-shadow:none}.kb-btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.kb-btn.ghost{background:transparent;color:var(--ink);border-style:dotted}.kb-btn.ghost:hover{border-style:solid;background:var(--yellow)}.kb-btn.small{font-size:13px;padding:7px 16px}.kb-chip{font-size:13px;font-weight:700;padding:5px 14px;border-radius:999px;cursor:pointer;border:1.5px dotted var(--ink);background:var(--card);transition:all .15s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.kb-chip:hover{border-style:solid;transform:translateY(-1px)}.kb-chip.active{background:var(--ink);color:#fff;border-style:solid}.kb-header{max-width:1280px;margin:0 auto;padding:32px 28px 6px;display:flex;flex-wrap:wrap;align-items:flex-end;gap:18px}.kb-title{font-size:42px;font-weight:900;letter-spacing:1px;line-height:1.1}.kb-title .hl{background:var(--yellow);padding:0 10px;border-radius:8px}.kb-date{margin-top:8px;font-size:15px;font-weight:600;color:#6b6353;border-bottom:2px dotted #b8ad93;display:inline-block;padding-bottom:2px}.kb-nav{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap;align-items:center}.kb-nav .kb-chip{font-size:14px;padding:8px 20px}.kb-progress{background:var(--card);border:1.5px dotted var(--ink);border-radius:999px;padding:8px 18px;display:flex;align-items:center;gap:12px;font-weight:700;font-size:14px}.kb-progress-bar{width:130px;height:10px;border-radius:99px;background:#eee5d2;overflow:hidden}.kb-progress-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--pink),var(--orange),var(--green));transition:width .5s cubic-bezier(.34,1.56,.64,1)}.kb-board{max-width:1280px;margin:20px auto 40px;padding:0 28px;display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:start}@media(max-width:900px){.kb-board{grid-template-columns:1fr}}.kb-col{border-radius:22px;padding:16px 14px 14px;min-height:280px;transition:box-shadow .2s ease}.kb-col[data-status=todo]{background:var(--pink-soft)}.kb-col[data-status=doing]{background:var(--orange-soft)}.kb-col[data-status=done]{background:var(--green-soft)}.kb-col.drag-over{box-shadow:inset 0 0 0 3px var(--ink)}.kb-col-head{display:flex;align-items:center;gap:10px;padding:4px 6px 14px}.kb-col-dot{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--ink)}.kb-col[data-status=todo] .kb-col-dot{background:var(--pink)}.kb-col[data-status=doing] .kb-col-dot{background:var(--orange)}.kb-col[data-status=done] .kb-col-dot{background:var(--green)}.kb-col-head h2{font-size:19px;font-weight:900;letter-spacing:1px}.kb-col-count{margin-left:auto;font-size:13px;font-weight:800;background:var(--card);border:1.5px dotted var(--ink);border-radius:999px;padding:2px 12px}.kb-col-add{width:100%;margin-top:10px;font-family:inherit;font-size:14px;font-weight:800;padding:10px;border-radius:14px;border:1.5px dashed #b8ad93;background:transparent;color:var(--muted);cursor:pointer;transition:all .15s ease}.kb-col-add:hover{border-color:var(--ink);color:var(--ink);background:#ffffff8c}.kb-card{background:var(--card);border:1.5px dotted var(--ink);border-radius:16px;padding:14px 14px 12px;margin-bottom:12px;cursor:grab;position:relative;transition:transform .18s ease,box-shadow .18s ease,border .18s ease,opacity .3s ease}.kb-card:hover{border-style:solid;transform:translateY(-3px) rotate(-.4deg);box-shadow:0 5px #1d1a1624}.kb-card.dragging{opacity:.45;transform:rotate(2deg) scale(.98);border-style:solid}.kb-card.done-card{opacity:.75}.kb-card-top{display:flex;align-items:flex-start;gap:10px}.kb-check{flex:none;width:22px;height:22px;margin-top:1px;border-radius:50%;border:2px solid var(--ink);background:#fff;cursor:pointer;position:relative;transition:background .2s ease,transform .2s cubic-bezier(.34,1.8,.64,1);padding:0}.kb-check:hover{transform:scale(1.15)}.kb-check.on{background:var(--green);border-color:var(--green)}.kb-check.on:after{content:"";position:absolute;left:6px;top:2.5px;width:5px;height:9px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}.kb-card-title{font-size:15.5px;font-weight:800;line-height:1.45;flex:1;word-break:break-word}.kb-card.done-card .kb-card-title{text-decoration:line-through;text-decoration-thickness:2px;text-decoration-color:var(--green);color:#7a7263}.kb-card-actions{flex:none;display:flex;gap:4px;opacity:0;transition:opacity .15s ease}.kb-card:hover .kb-card-actions{opacity:1}.kb-icon-btn{width:26px;height:26px;border-radius:8px;border:1.5px dotted transparent;background:transparent;cursor:pointer;font-size:13px;display:grid;place-items:center;color:var(--muted)}.kb-icon-btn:hover{border-color:var(--ink);color:var(--ink);background:var(--yellow)}.kb-card-note{margin-top:8px;font-size:13px;line-height:1.6;color:#7a7263;border-left:3px solid #eee5d2;padding-left:9px;word-break:break-word}.kb-card-meta{margin-top:10px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.kb-prio{font-size:11.5px;font-weight:900;padding:2.5px 10px;border-radius:999px;border:1.5px solid var(--ink);letter-spacing:1px}.kb-prio.high{background:var(--orange);color:#fff}.kb-prio.mid{background:var(--yellow)}.kb-prio.low{background:var(--lime)}.kb-tag{font-size:11.5px;font-weight:700;padding:2.5px 10px;border-radius:999px;border:1.5px dotted var(--ink)}.kb-tag.t-work{background:var(--blue-soft)}.kb-tag.t-life{background:var(--pink-soft)}.kb-tag.t-study{background:var(--yellow)}.kb-tag.t-other{background:#efe9f7}.kb-pomo{font-size:11.5px;font-weight:800;padding:2.5px 10px;border-radius:999px;border:1.5px dotted var(--ink);background:#fff}.kb-empty{text-align:center;color:#a99f8a;font-size:13.5px;font-weight:600;padding:26px 10px;border:1.5px dashed #cfc5ab;border-radius:14px;line-height:1.8}.kb-mask{position:fixed;inset:0;background:#1d1a1673;display:flex;align-items:center;justify-content:center;z-index:50;padding:20px;animation:kbFadeIn .18s ease}@keyframes kbFadeIn{0%{opacity:0}to{opacity:1}}.kb-modal{background:var(--card);border:2px solid var(--ink);border-radius:22px;width:100%;max-width:480px;padding:26px 26px 22px;box-shadow:8px 8px #1d1a1633;animation:kbPop .25s cubic-bezier(.34,1.56,.64,1);max-height:90vh;overflow-y:auto}@keyframes kbPop{0%{transform:scale(.9) translateY(14px);opacity:0}to{transform:none;opacity:1}}.kb-modal h3{font-size:21px;font-weight:900;margin-bottom:18px}.kb-modal h3 span{background:var(--yellow);padding:0 8px;border-radius:6px}.kb-field{margin-bottom:15px}.kb-field label{display:block;font-size:13px;font-weight:800;color:var(--muted);margin-bottom:6px;letter-spacing:1px}.kb-field input[type=text],.kb-field textarea{width:100%;font-family:inherit;font-size:15px;font-weight:600;color:var(--ink);border:1.5px dotted var(--ink);border-radius:12px;padding:10px 13px;background:#fff;outline:none;transition:border .15s ease}.kb-field input:focus,.kb-field textarea:focus{border-style:solid;box-shadow:3px 3px 0 var(--yellow)}.kb-field textarea{resize:vertical;min-height:70px}.kb-seg{display:flex;gap:8px;flex-wrap:wrap}.kb-opt{font-size:13px;font-weight:800;padding:6px 16px;border-radius:999px;cursor:pointer;border:1.5px dotted var(--ink);background:#fff;transition:all .12s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.kb-opt:hover,.kb-opt.sel{border-style:solid}.kb-opt.sel.p-high{background:var(--orange);color:#fff}.kb-opt.sel.p-mid{background:var(--yellow)}.kb-opt.sel.p-low{background:var(--lime)}.kb-opt.sel.tag-work{background:var(--blue-soft)}.kb-opt.sel.tag-life{background:var(--pink-soft)}.kb-opt.sel.tag-study{background:var(--yellow)}.kb-opt.sel.tag-other{background:#efe9f7}.kb-modal-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.kb-calendar{max-width:900px;margin:20px auto 40px;padding:0 28px}.kb-cal-frame{background:var(--card);border:2px solid var(--ink);border-radius:22px;padding:22px;box-shadow:8px 8px #1d1a161f}.kb-cal-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}.kb-cal-head h2{font-size:24px;font-weight:900}.kb-cal-head h2 span{background:var(--pink);padding:0 10px;border-radius:8px}.kb-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.kb-cal-week{text-align:center;font-size:12.5px;font-weight:900;color:var(--muted);letter-spacing:2px;padding:4px 0}.kb-cal-cell{min-height:84px;border:1.5px dotted #cfc5ab;border-radius:14px;padding:8px;cursor:pointer;transition:all .15s ease;background:#fff;display:flex;flex-direction:column}.kb-cal-cell:hover{border-style:solid;border-color:var(--ink);transform:translateY(-2px)}.kb-cal-cell.out{opacity:.35}.kb-cal-cell.today{border:2px solid var(--ink);background:var(--yellow)}.kb-cal-cell.selected{box-shadow:0 0 0 3px var(--pink)}.kb-cal-day{font-size:15px;font-weight:900}.kb-cal-dots{margin-top:auto;display:flex;gap:4px;flex-wrap:wrap;align-items:center}.kb-dot{width:9px;height:9px;border-radius:50%;border:1px solid var(--ink)}.kb-dot.todo{background:var(--pink)}.kb-dot.doing{background:var(--orange)}.kb-dot.done{background:var(--green)}.kb-cal-more{font-size:10.5px;font-weight:800;color:var(--muted)}.kb-cal-badge{margin-left:auto;font-size:10.5px;font-weight:900;background:var(--ink);color:#fff;border-radius:999px;padding:1px 7px}.kb-cal-legend{display:flex;gap:16px;margin-top:16px;font-size:12.5px;font-weight:700;color:var(--muted);align-items:center;flex-wrap:wrap}.kb-pomo-wrap{max-width:640px;margin:20px auto 40px;padding:0 28px}.kb-pomo-card{background:var(--card);border:2px solid var(--ink);border-radius:26px;padding:30px 30px 26px;box-shadow:8px 8px #1d1a161f;text-align:center}.kb-pomo-mode{display:flex;justify-content:center;gap:8px;margin-bottom:20px;flex-wrap:wrap}.kb-pomo-time{font-size:84px;font-weight:900;letter-spacing:2px;line-height:1;font-variant-numeric:tabular-nums}.kb-pomo-time.break{color:var(--green)}.kb-pomo-state{margin-top:6px;font-size:14px;font-weight:800;color:var(--muted);letter-spacing:2px}.kb-pomo-ring{width:100%;height:12px;border-radius:99px;background:#eee5d2;overflow:hidden;margin:22px 0 8px}.kb-pomo-ring i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--pink),var(--orange));transition:width .4s linear}.kb-pomo-ring.break i{background:linear-gradient(90deg,var(--lime),var(--green))}.kb-pomo-controls{display:flex;justify-content:center;gap:12px;margin-top:18px;flex-wrap:wrap}.kb-pomo-task{margin-top:22px;text-align:left}.kb-pomo-linked{margin-top:10px;border:1.5px dotted var(--ink);border-radius:14px;padding:12px 14px;background:#fff;display:flex;align-items:center;gap:10px}.kb-pomo-linked .t{flex:1;font-weight:800;font-size:15px;text-align:left}.kb-pomo-select{width:100%;font-family:inherit;font-size:14px;font-weight:700;border:1.5px dotted var(--ink);border-radius:12px;padding:10px 13px;background:#fff;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.kb-pomo-select:focus{border-style:solid;box-shadow:3px 3px 0 var(--yellow)}.kb-pomo-count{margin-top:14px;font-size:13px;font-weight:800;color:var(--muted)}.kb-pomo-count b{color:var(--orange);font-size:16px}.kb-toast{position:fixed;left:50%;bottom:34px;transform:translate(-50%) translateY(80px);background:var(--ink);color:#fff;font-size:14px;font-weight:700;padding:11px 24px;border-radius:999px;z-index:80;opacity:0;transition:all .3s cubic-bezier(.34,1.56,.64,1);pointer-events:none}.kb-toast.show{transform:translate(-50%) translateY(0);opacity:1}.kb-confetti{position:fixed;inset:0;pointer-events:none;z-index:70}.kb-footer{max-width:1280px;margin:0 auto;padding:0 28px 40px;color:#a99f8a;font-size:12.5px;font-weight:600}.kb-footer b{color:var(--muted)}.kb-daynav{display:flex;align-items:center;gap:10px}.kb-daynav .arrow{width:34px;height:34px;border-radius:50%;border:1.5px dotted var(--ink);background:var(--card);font-size:16px;font-weight:900;cursor:pointer;display:grid;place-items:center;transition:all .15s ease}.kb-daynav .arrow:hover{border-style:solid;background:var(--yellow);transform:translateY(-1px)}.kb-boot{min-height:100vh;display:grid;place-items:center;font-size:16px;font-weight:800;color:var(--muted);letter-spacing:2px}
