:root{color:#262626;background:#f9f9f9;--task-row-height: 56px;--task-card-radius: 10px;--task-card-shadow: rgba(31, 34, 37, .08) 0 0 0 1px, rgba(0, 0, 0, .04) 0 1px 4px 0;font-family:-apple-system,system-ui,Segoe UI,Roboto,Helvetica Neue,PingFang SC,Noto Sans,Noto Sans CJK SC,Microsoft YaHei,微软雅黑,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;overflow:hidden;font-size:14px;line-height:20px}button,input{font:inherit}button{cursor:pointer}.app-shell{min-height:100dvh;background:#f9f9f9;color:#262626}.center-state{display:grid;place-content:center;gap:16px}.login-shell{display:grid;place-items:center;padding:24px}.login-panel{width:min(360px,100%);display:grid;gap:16px;padding:28px;background:#fff;border:1px solid #e0e4ea;border-radius:8px;box-shadow:0 10px 30px #1f232914}.login-panel h1{margin:0;font-size:22px}.login-panel input{width:100%;height:42px;padding:0 12px;border:1px solid #dfe3e8;border-radius:8px;outline:0}.login-panel p{margin:0;color:#d93025}.login-panel .login-help{color:#2626269e;line-height:22px}.spin{animation:spin .9s linear infinite;color:#2474dc}@keyframes spin{to{transform:rotate(360deg)}}.task-main{display:flex;align-items:center}.project-icon{width:34px;height:34px;display:grid;place-items:center;color:#1677ff;background:#dff0ff;border-radius:8px}.board{height:100dvh;display:flex;flex-wrap:nowrap;gap:12px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;padding:16px 24px 12px;background:#f9f9f9;animation:boardFade .12s ease-out}.board.is-dragging-column,.board.is-dragging-task{scroll-behavior:auto}.board::-webkit-scrollbar,.task-list::-webkit-scrollbar{width:10px;height:10px}.board::-webkit-scrollbar-thumb,.task-list::-webkit-scrollbar-thumb{background:#828b966b;border:3px solid transparent;border-radius:10px;background-clip:content-box}@keyframes boardFade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.column-shell{width:276px;min-width:276px;flex:0 0 276px;height:100%;outline:0;will-change:transform}.column-shell.is-column-dragging{z-index:90}.column-shell.is-column-dragging .column,.column-shell.is-active-column .column{visibility:hidden}.column-drag-overlay{width:276px;min-width:276px;height:calc(100dvh - 28px);pointer-events:none;cursor:grabbing;transform:translateZ(0)}.column-drag-overlay .column{background:#26262608;box-shadow:0 10px 28px #1f22251a}.column-drag-overlay .column-header,.column-drag-overlay .task-card,.column-drag-overlay .quick-add,.column-name-preview{cursor:grabbing}.column{width:100%;min-width:0;height:100%;display:flex;flex-direction:column;overflow:hidden;background:#26262608;border:0;border-radius:12px;transition:background .16s ease,box-shadow .16s ease}.column.drop-target{background:#26262608;box-shadow:none}.column-header{position:relative;z-index:30;height:48px;min-height:48px;display:flex;align-items:center;justify-content:space-between;padding:4px 8px;cursor:grab;touch-action:manipulation}.column-header:active{cursor:grabbing}.column-title{min-width:0;height:40px;display:flex;align-items:center;gap:0;margin-right:8px}.column-header h2{margin:0;font-size:14px;line-height:20px;font-weight:700;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.column-name-button,.column-name-input{min-width:0;margin:0;padding:0;color:#262626;background:transparent;border:0;outline:0;font-size:14px;line-height:20px;font-weight:700;text-align:left}.column-name-button{max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:text;-webkit-tap-highlight-color:transparent}.column-name-input{width:min(180px,100%);height:24px;border-bottom:1px solid #8ec5ff}.column-header span{margin-left:12px;color:#26262666;font-size:12px;line-height:20px;font-weight:400}.column-actions{position:relative;display:grid;place-items:center}.add-column{width:276px;min-width:276px;flex:0 0 276px;height:100%;position:relative;padding-top:48px}.add-column-trigger{height:44px;display:flex;align-items:center;gap:10px;padding:0 18px;color:#2626268a;background:transparent;border:0;border-radius:8px;font-size:17px;line-height:24px;font-weight:400}.add-column-trigger:hover{color:#262626b8;background:#2626260a}.add-column-version{margin:6px 18px 0;color:#26262652;font-size:11px;line-height:16px;font-weight:400}.add-column-panel{width:100%;display:grid;gap:14px;padding:18px 16px 16px;background:#fff;border:1px solid rgba(31,34,37,.08);border-radius:8px;box-shadow:#1f222514 0 0 0 1px,#0000001f 0 12px 28px}.add-column-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.add-column-title h2{margin:0;color:#262626;font-size:18px;line-height:26px;font-weight:700}.add-column-panel input{width:100%;height:40px;padding:0 12px;color:#262626;background:#fff;border:1px solid #8ec5ff;border-radius:6px;outline:0;font-size:16px;line-height:24px}.add-column-panel input::placeholder{color:#2626266b}.add-column-submit{width:100%;height:42px;color:#fff;background:#1677ff;border:0;border-radius:8px;font-size:16px;line-height:24px;font-weight:600}.add-column-submit:disabled{color:#ffffffb8;background:#26262638;cursor:default}.task-list{position:relative;flex:1;overflow-x:hidden;overflow-y:auto;overscroll-behavior-x:none;padding:2px 8px 0;scroll-behavior:auto}.task-list.has-drop-after:after{content:"";display:none;width:264px;height:2px;margin:-22px 0 20px 4px;background:#0091ff;border-radius:2px;pointer-events:none}.column-end-drop-zone{position:relative;width:260px;height:36px;margin:-4px 0 4px}.column-end-drop-zone.is-empty{height:72px;margin-top:0}.column-end-drop-zone.has-drop-before:before{content:"";display:none;position:absolute;left:4px;top:2px;z-index:2;width:264px;height:2px;background:#0091ff;border-radius:2px;pointer-events:none}.completed-toggle{width:260px;height:36px;display:grid;place-items:center;margin:0 0 8px;padding:0 12px;color:#26262694;background:#ffffffb8;border:1px solid rgba(31,34,37,.08);border-radius:8px;font-size:13px;line-height:20px;box-shadow:#00000008 0 1px 3px}.completed-toggle:hover{color:#262626c7;background:#fff;box-shadow:#1f22251a 0 0 0 1px,#0000000a 0 1px 4px}.task-shell{position:relative;width:260px;min-height:var(--task-row-height);margin-bottom:8px;outline:none;cursor:grab;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;will-change:transform}.task-shell:last-child{margin-bottom:4px}.task-shell.has-drop-before:before{content:"";display:none;position:absolute;left:4px;top:-5px;z-index:2;width:264px;height:2px;background:#0091ff;border-radius:2px;pointer-events:none}.task-shell.sortable-dragging .task-card{opacity:0;box-shadow:#1f222514 0 0 0 1px,#0000000a 0 1px 4px}.task-shell.is-active-drag-source .task-card{visibility:hidden;opacity:0!important;animation:none}.task-shell.has-open-menu{z-index:80}.task-card{position:relative;width:100%;min-height:var(--task-row-height);display:block;padding:0;background:#fff;border:1px solid rgba(0,0,0,0);border-radius:var(--task-card-radius);box-shadow:var(--task-card-shadow);transition:opacity 128ms ease,box-shadow 167ms cubic-bezier(.2,0,0,1);cursor:grab;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.task-card.has-open-menu{z-index:80}.task-card.pending{cursor:default;opacity:.72}.task-card.pending:hover{box-shadow:var(--task-card-shadow)}.task-card.pending .check-button{cursor:default}.task-sync-status{display:inline-flex;flex:0 0 auto;align-items:center;gap:4px;margin-left:8px;color:#2626268c;font-size:12px;line-height:20px;white-space:nowrap}.task-sync-status svg{animation:taskSyncSpin .8s linear infinite}@keyframes taskSyncSpin{to{transform:rotate(360deg)}}@keyframes taskCardAdd{0%{opacity:0;transform:translateY(5px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes taskShellAdd{0%{max-height:0;margin-bottom:0}to{max-height:640px}}@keyframes taskCardRemove{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-4px) scale(.985)}}@keyframes taskShellRemove{0%{max-height:640px}to{max-height:0;margin-bottom:0}}.task-shell.is-appearing{overflow:hidden;animation:taskShellAdd .22s cubic-bezier(.2,0,0,1) both}.task-shell.is-appearing .task-card{animation:taskCardAdd .22s cubic-bezier(.2,0,0,1) both}.task-shell.is-removing{min-height:0;overflow:hidden;pointer-events:none;animation:taskShellRemove .22s cubic-bezier(.4,0,.2,1) both}.task-shell.is-removing .task-card{animation:taskCardRemove .22s cubic-bezier(.4,0,.2,1) both}.task-card:hover{box-shadow:#1f222514 0 0 0 1px,#0000000a 0 1px 4px}.task-shell:active,.task-card:active{cursor:grabbing}.task-card.drag-overlay{pointer-events:none;cursor:grabbing;opacity:.96;box-shadow:#1f22251a 0 0 0 1px,#0000001f 0 8px 24px;transform:translateZ(0)}.drag-overlay-wrapper{pointer-events:none;z-index:1000}.task-card.done{opacity:1}.task-main{width:100%;min-height:calc(var(--task-row-height) - 2px);display:flex;align-items:center;padding:16px 12px;overflow:visible}.task-title{display:block;flex:1;min-width:0;margin:0;padding-right:0;color:#262626;font-size:14px;line-height:20px;font-weight:500;overflow:visible;overflow-wrap:anywhere;white-space:normal;text-overflow:clip;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.task-title-button{width:auto;min-height:24px;padding:0;text-align:left;background:transparent;border:0;cursor:text;-webkit-tap-highlight-color:transparent}.task-title-button:active{background:transparent}.task-title-input{flex:1;min-width:0;height:24px;margin:0;padding:0;color:#262626;background:transparent;border:0;outline:0;font-size:14px;line-height:20px;font-weight:500;user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}.task-card.done .task-title{color:#26262699}.task-more{position:static;flex:0 0 24px;margin-left:8px;z-index:3;width:24px;height:24px;display:grid;place-items:center;padding:0;color:#262626;background:#fff;border:0;border-radius:6px;opacity:1;pointer-events:auto;transition:opacity .218s}.task-more:focus-visible,.task-more.is-open{opacity:1}.task-more-dots{width:4px;height:4px;display:block;color:currentColor;background:currentColor;border-radius:50%;box-shadow:7px 0 0 currentColor,14px 0 0 currentColor;transform:translate(-7px)}.action-menu{position:absolute;top:34px;right:8px;z-index:120;min-width:92px;padding:4px;background:#fff;border:1px solid rgba(31,34,37,.08);border-radius:8px;box-shadow:#1f222514 0 0 0 1px,#0000001f 0 8px 24px}.column-actions .action-menu{top:30px;right:0}.action-menu-item{width:100%;height:30px;display:flex;align-items:center;gap:8px;padding:0 8px;color:#262626;background:transparent;border:0;border-radius:6px;text-align:left}.action-menu-item:hover{background:#2626260f}.action-menu-item.danger{color:#d93025}.task-details-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:grid;place-items:center;padding:20px;background:#1f222547}.task-details-dialog{width:min(360px,calc(100vw - 40px));overflow:hidden;color:#262626;background:#fff;border:1px solid rgba(31,34,37,.1);border-radius:8px;box-shadow:#0000002e 0 18px 48px}.task-details-header{height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 14px 0 18px;border-bottom:1px solid rgba(31,34,37,.08)}.task-details-header h2{margin:0;font-size:16px;line-height:24px;font-weight:700}.task-details-times{margin:0;padding:6px 18px 12px}.task-details-times>div{min-height:48px;display:grid;grid-template-columns:72px 1fr;align-items:center;gap:12px;border-bottom:1px solid rgba(31,34,37,.06)}.task-details-times>div:last-child{border-bottom:0}.task-details-times dt,.task-details-times dd{margin:0;font-size:13px;line-height:20px}.task-details-times dt{color:#26262685}.task-details-times dd{min-height:20px;color:#262626;font-variant-numeric:tabular-nums}.quick-add{width:260px;height:var(--task-row-height);min-height:var(--task-row-height);display:flex;align-items:center;justify-content:center;gap:0;margin:4px 8px 8px;padding:0;background:#fff;border:1px solid rgba(0,0,0,0);border-radius:var(--task-card-radius);box-shadow:var(--task-card-shadow);color:#26262699;transition:all}.quick-add:hover,.quick-add:focus-within{box-shadow:#1f222529 0 0 0 1px,#0000000a 0 1px 4px}.quick-add.is-open{justify-content:flex-start;padding:0 2px 0 10px}.quick-add input{width:0;min-width:0;opacity:0;pointer-events:none;color:#262626;background:transparent;border:0;outline:0;font-size:14px;line-height:20px;transition:width .218s,opacity .218s}.quick-add.is-open input{width:100%;opacity:1;pointer-events:auto}.quick-add input::placeholder{color:#26262666}@media(hover:hover)and (pointer:fine){.quick-add{justify-content:flex-start;padding:0 2px 0 10px}.quick-add input{width:100%;opacity:1;pointer-events:auto}}.icon-button,.check-button,.primary-button{border:0;background:transparent;color:inherit}.icon-button,.check-button{width:24px;height:24px;display:grid;place-items:center;padding:0;border-radius:6px;color:#26262666}.icon-button:hover,.check-button:hover{background:#2626260f}.icon-button:disabled{cursor:not-allowed;color:#b0b6bf}.icon-button.muted{color:#26262666}.check-button{margin:0 4px 0 -2px;padding:2px;color:#26262699;border-radius:50%}.check-glyph{width:16px;height:16px;display:grid;place-items:center;color:#2626268a;border:2px solid rgba(38,38,38,.36);border-radius:3px}.check-glyph.is-checked{border-color:#2626264d}.check-icon{color:#2626268a}.primary-button{height:38px;padding:0 16px;border-radius:8px;font-weight:680}.primary-button{color:#fff;background:#1677ff}.toast{position:fixed;left:50%;bottom:24px;z-index:50;transform:translate(-50%);padding:8px 14px;color:#fff;background:#1f2225e0;border-radius:8px;box-shadow:0 8px 24px #00000029;font-size:13px;line-height:20px}@media(max-width:760px)and (hover:none)and (pointer:coarse){:root{--task-row-height: 48px;--task-card-radius: 8px;--task-card-shadow: rgba(31, 34, 37, .1) 0 0 0 1px, rgba(0, 0, 0, .06) 0 4px 12px 0}.app-shell{height:var(--app-viewport-height, 100vh);min-height:var(--app-viewport-height, 100vh);overflow:hidden;background:#f6f6f6}.board{flex-wrap:nowrap;height:var(--app-viewport-height, 100vh);min-height:var(--app-viewport-height, 100vh);padding:max(28px,env(safe-area-inset-top)) 23px max(18px,env(safe-area-inset-bottom));gap:24px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-left:23px;background:#f6f6f6;transform:translateY(calc(var(--task-editor-lift, 0px) * -1));transition:transform .18s cubic-bezier(.2,0,0,1)}.board.is-touch-dragging{scroll-snap-type:none;scroll-padding-left:0}.column-shell{width:calc(100vw - 46px);min-width:calc(100vw - 46px);flex-basis:calc(100vw - 46px);height:100%;min-height:0;scroll-snap-align:start}.column-drag-overlay{width:calc(100vw - 46px);min-width:calc(100vw - 46px);height:calc(var(--app-viewport-height, 100vh) - max(28px,env(safe-area-inset-top)) - max(18px,env(safe-area-inset-bottom)))}.column{width:100%;min-width:0;height:100%;min-height:0;background:transparent;border-radius:0}.add-column{width:calc(100vw - 46px);min-width:calc(100vw - 46px);flex-basis:calc(100vw - 46px);height:100%;padding-top:34px;scroll-snap-align:start}.add-column-trigger{height:44px;padding:0 4px;font-size:16px;line-height:24px}.add-column-version{margin:5px 4px 0}.add-column-panel{padding:16px}.add-column-title h2{font-size:17px;line-height:24px}.add-column-panel input,.add-column-submit{height:44px}.column-header{height:34px;min-height:34px;padding:0 14px 8px}.column-title{height:26px}.column-header h2,.column-name-button,.column-name-input{font-size:16px;line-height:24px;font-weight:500}.column-name-input{height:26px}.column-header span{margin-left:10px;font-size:12px;line-height:22px}.column-header .icon-button{color:#26262659}.task-list{padding:2px 12px 8px 0;scrollbar-gutter:stable}.task-list.has-drop-after:after{width:calc(100% - 12px);margin:-28px 0 26px}.column-end-drop-zone{width:calc(100vw - 74px);height:44px;margin:-6px 0 6px 14px}.column-end-drop-zone.is-empty{height:80px}.column-end-drop-zone.has-drop-before:before{left:0;top:0;width:100%}.completed-toggle{width:calc(100vw - 74px);height:40px;margin:0 0 8px 14px;font-size:14px}.task-shell{width:calc(100vw - 74px);min-height:48px;margin:0 0 8px 14px}.task-shell.has-drop-before:before{left:0;top:-7px;width:100%}.task-card{min-height:48px;border-radius:var(--task-card-radius);box-shadow:var(--task-card-shadow)}.task-main{min-height:46px;align-items:center;padding:11px 16px}.task-title{margin:0;padding-right:0;font-size:15px;line-height:22px;font-weight:500;overflow:visible;overflow-wrap:anywhere;white-space:normal;text-overflow:clip}.task-title-input{height:22px;padding-right:0;font-size:15px;line-height:22px}.task-title-button{min-height:22px}.check-button{width:24px;height:24px;margin:0 12px 0 0;padding:1px}.check-glyph{width:18px;height:18px;border-color:#26262657;border-radius:3px}.task-more{position:static;flex:0 0 28px;width:28px;height:28px;margin-left:8px;z-index:10;display:grid;opacity:1;color:#262626;transform:none}.task-more svg{width:20px;height:20px}.action-menu{top:42px;right:10px}.task-details-backdrop{padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom))}.task-details-dialog{width:100%}.quick-add{position:relative;z-index:20;width:calc(100vw - 74px);height:48px;min-height:48px;margin:0 0 2px 14px;border-radius:var(--task-card-radius);box-shadow:var(--task-card-shadow);color:#26262675;transform:translateY(calc(var(--keyboard-inset, 0px) * -1));transition:box-shadow 167ms cubic-bezier(.2,0,0,1),transform .18s cubic-bezier(.2,0,0,1)}.quick-add:focus-within{z-index:140}.quick-add .icon-button{width:40px;height:40px;color:#2626266b}.quick-add .icon-button svg{width:22px;height:22px;stroke-width:1.8}.quick-add.is-open{padding:0 10px 0 16px}.quick-add input{font-size:16px;line-height:22px}}
