@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f1f5f9;--bg-subtle: #f8fafc;--bg-muted: #eef2f7;--bg-hover: #e2e8f0;--panel: #ffffff;--border: #e2e8f0;--border-strong: #cbd5e1;--text: #0f172a;--muted: #64748b;--primary: #2563eb;--primary-dark: #1d4ed8;--primary-soft: #e0ecff;--danger: #dc2626;--danger-soft: #fee2e2;--warn: #b45309;--warn-soft: #fef3c7;--success: #15803d;--success-soft: #dcfce7;--success-border: #86efac;--radius: 10px;--shadow: 0 1px 3px rgba(15, 23, 42, .08), 0 1px 2px rgba(15, 23, 42, .04);--shadow-pop: 0 14px 40px rgba(15, 23, 42, .22);--toast-bg: #1e293b;--toast-text: #f1f5f9;--toast-muted: #94a3b8;--toast-action: #93c5fd;color-scheme:light}[data-theme=dark]{--bg: #0f172a;--bg-subtle: #14203a;--bg-muted: #1c2a44;--bg-hover: #2a3a55;--panel: #16223b;--border: #243350;--border-strong: #35466b;--text: #e2e8f0;--muted: #8fa3bd;--primary: #3b82f6;--primary-dark: #2563eb;--primary-soft: rgba(59, 130, 246, .18);--danger: #f87171;--danger-soft: rgba(248, 113, 113, .14);--warn: #fbbf24;--warn-soft: rgba(251, 191, 36, .14);--success: #4ade80;--success-soft: rgba(74, 222, 128, .12);--success-border: rgba(74, 222, 128, .35);--shadow: 0 1px 3px rgba(0, 0, 0, .4), 0 1px 2px rgba(0, 0, 0, .3);--shadow-pop: 0 14px 40px rgba(0, 0, 0, .55);--toast-bg: #f1f5f9;--toast-text: #0f172a;--toast-muted: #475569;--toast-action: #1d4ed8;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html,body{overscroll-behavior-y:none}body{font-family:Inter Variable,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px;-webkit-text-size-adjust:100%;transition:background .15s,color .15s}button{font:inherit;cursor:pointer;border:1px solid var(--border-strong);background:var(--panel);color:var(--text);border-radius:8px;padding:7px 12px;transition:background .12s,border-color .12s;display:inline-flex;align-items:center;justify-content:center;gap:6px}button:hover{background:var(--bg-subtle)}button.primary{background:var(--primary);border-color:var(--primary);color:#fff}button.primary:hover{background:var(--primary-dark)}button.danger{background:var(--danger);border-color:var(--danger);color:#fff}button.ghost{border-color:transparent;background:transparent}button.ghost:hover{background:var(--bg-hover)}button.small{padding:4px 8px;font-size:13px}button.icon-btn{padding:7px}input,select,textarea{font:inherit;color:var(--text);border:1px solid var(--border-strong);border-radius:8px;padding:7px 9px;background:var(--panel);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--primary)}input::placeholder{color:var(--muted);opacity:.8}.muted{color:var(--muted)}.small{font-size:12.5px}.center{height:100%;display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-wrap{height:100%;display:flex;align-items:center;justify-content:center;padding:20px;background:radial-gradient(1200px 500px at 50% -10%,var(--primary-soft),transparent 60%),var(--bg)}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-pop);padding:36px 32px;width:100%;max-width:350px;display:flex;flex-direction:column;gap:12px;text-align:center}.login-logo{width:60px;height:60px;margin:0 auto 4px;border-radius:16px;background:linear-gradient(135deg,var(--primary),#4f46e5);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px #2563eb59}.login-card h1{margin:0;font-size:23px;letter-spacing:-.01em}.login-card p{margin:0 0 6px}.login-card input{padding:11px;text-align:center}.login-btn{padding:11px;font-weight:600}.login-error{color:var(--danger);font-size:13px}.app{display:flex;flex-direction:column;height:100%}.topbar{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--panel);border-bottom:1px solid var(--border);padding-top:max(10px,env(safe-area-inset-top))}.brand{display:flex;align-items:center;gap:8px;font-weight:700}.brand-logo{width:27px;height:27px;border-radius:8px;background:linear-gradient(135deg,var(--primary),#4f46e5);color:#fff;display:flex;align-items:center;justify-content:center;flex:none}.brand-name{font-size:16px;letter-spacing:-.01em}.view-toggle{display:flex;gap:4px;margin-left:6px;background:var(--bg-muted);padding:3px;border-radius:9px}.view-toggle button{border:none;background:transparent;padding:6px 12px;border-radius:7px;color:var(--muted)}.view-toggle button.active{background:var(--panel);color:var(--text);box-shadow:var(--shadow)}.topbar-actions{margin-left:auto;display:flex;gap:6px}.filterbar{display:flex;align-items:center;gap:10px;padding:9px 14px;background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap}.filterbar label{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}.filterbar select{padding:5px 8px}.filterbar .count{margin-left:auto;white-space:nowrap}.search-box{display:flex;align-items:center;gap:6px;background:var(--bg-muted);border:1px solid transparent;border-radius:9px;padding:4px 9px;color:var(--muted);min-width:170px}.search-box:focus-within{border-color:var(--primary);background:var(--panel)}.search-box input{border:none;background:transparent;padding:3px 0;flex:1;min-width:50px;color:var(--text)}.search-clear{border:none;background:transparent;color:var(--muted);padding:2px}.search-clear:hover{color:var(--text);background:transparent}.due-chips{display:inline-flex;gap:4px}.due-chip{border-radius:999px;padding:4px 11px;font-size:12.5px;border:1px solid var(--border-strong);background:transparent;color:var(--muted)}.due-chip:hover{background:var(--bg-muted)}.due-chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.due-chip.overdue.active{background:var(--danger);border-color:var(--danger);color:#fff}.quickadd{display:flex;align-items:center;gap:8px;padding:7px 14px;background:var(--panel);border-bottom:1px solid var(--border);position:relative}.quickadd-help-btn{padding:5px;color:var(--muted);flex:none}.quickadd-help-btn.active,.quickadd-help-btn:hover{color:var(--text)}.quickadd-help{position:absolute;right:10px;top:calc(100% + 4px);z-index:30;width:min(360px,calc(100vw - 20px));background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-pop);padding:12px;display:flex;flex-direction:column;gap:8px}.qh-head{font-weight:600;font-size:13px}.qh-grid{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;align-items:baseline}.qh-grid code{font-size:12px;background:var(--bg-muted);border-radius:5px;padding:1px 6px;white-space:nowrap}.qh-grid span{font-size:12.5px;color:var(--muted)}.qh-example{font-size:12px}.quickadd-icon{color:var(--primary);flex:none}.quickadd input{flex:1;border:1px solid transparent;background:var(--bg-muted);padding:6px 10px;border-radius:9px}.quickadd input:focus{background:var(--panel);border-color:var(--primary)}.content{flex:1;overflow:auto;padding:14px;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}.table-wrap{display:flex;flex-direction:column;gap:8px}.table-toolbar{display:flex;align-items:center;gap:8px;justify-content:flex-end}.col-menu-wrap{position:relative}.col-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9}.col-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:10;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-pop);padding:10px;width:250px}.col-menu-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;font-weight:600;font-size:13px}.col-menu-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:3px 0}.col-menu-name{display:flex;align-items:center;gap:8px;font-size:13px}.col-menu-name input[type=checkbox]{width:15px;height:15px}.col-menu-move{display:flex;gap:2px}.col-menu-move button{padding:2px 7px}.col-menu-move button:disabled{opacity:.35;cursor:default}.table-scroll{overflow-x:auto}.otable{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.otable-head,.otable-row{display:grid;align-items:center}.otable-head{background:var(--bg-subtle);border-bottom:1px solid var(--border);font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.ohead-cell{position:relative;display:flex;align-items:center;padding:0 2px 0 8px;min-width:0}.ohead-label{flex:1;min-width:0;display:flex;align-items:center;gap:4px;border:none;background:transparent;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;padding:9px 4px;border-radius:6px;text-align:left;justify-content:flex-start}.ohead-label.sortable{cursor:pointer}.ohead-label.sortable:hover{color:var(--text);background:var(--bg-muted)}.ohead-label:disabled{cursor:default}.sort-ind{color:var(--primary);display:inline-flex}.col-resizer{width:9px;align-self:stretch;flex:none;cursor:col-resize;touch-action:none;margin-right:-2px}.col-resizer:hover{background:linear-gradient(transparent 25%,var(--border-strong) 25%,var(--border-strong) 75%,transparent 75%)}.otable-rowgroup{border-bottom:1px solid var(--border);background:var(--panel)}.otable-rowgroup:hover{background:var(--bg-subtle)}.otable-row>.oc-cell{padding:4px 6px;min-width:0}.oc-handle{display:flex;align-items:center;justify-content:center;color:var(--border-strong);border:none;background:transparent;cursor:grab;touch-action:none}.oc-handle:hover{background:transparent;color:var(--muted)}.oc-handle:active{cursor:grabbing}.oc-handle.disabled{cursor:default;opacity:.35}.cell-input,.cell-select{width:100%;border:1px solid transparent;background:transparent;padding:6px 7px;border-radius:6px}.cell-input:hover,.cell-select:hover{border-color:var(--border)}.cell-input:focus,.cell-select:focus{border-color:var(--primary);background:var(--panel)}.title-input{font-weight:500}.oc-status{display:flex;align-items:center;gap:6px}.oc-status .dot{flex:none}.oc-status .cell-select{min-width:0}.prio-select{font-weight:600;border-radius:999px!important;text-align:center}.prio-select:hover{filter:brightness(.97)}.prio-select.p0{color:var(--muted)}.prio-select.p1{color:#0369a1;background:#e0f2fe;border-color:#7dd3fc}.prio-select.p2{color:#b45309;background:#fef3c7;border-color:#fcd34d}.prio-select.p3{color:#b91c1c;background:#fee2e2;border-color:#fca5a5}[data-theme=dark] .prio-select.p1{color:#7dd3fc;background:#0ea5e924;border-color:#0ea5e966}[data-theme=dark] .prio-select.p2{color:#fcd34d;background:#f59e0b24;border-color:#f59e0b66}[data-theme=dark] .prio-select.p3{color:#fca5a5;background:#ef444424;border-color:#ef444466}.prio-dot.p1{background:#0ea5e9}.prio-dot.p2{background:#f59e0b}.prio-dot.p3{background:#ef4444}.oc-due{display:flex;align-items:center;gap:4px}.due-icon{flex:none}.oc-due.due-overdue .due-icon,.due-input.due-overdue{color:var(--danger);font-weight:600}.oc-due.due-today .due-icon,.due-input.due-today{color:var(--warn);font-weight:600}input.due-overdue,input.due-today{font-weight:600}input[type=date].due-overdue{color:var(--danger)}input[type=date].due-today{color:var(--warn)}.oc-tags{display:flex;gap:4px;flex-wrap:wrap;overflow:hidden}.oc-sub{display:flex;align-items:center;justify-content:center}.sub-badge{display:inline-flex;align-items:center;gap:3px;border:none;background:transparent;color:var(--muted);padding:4px 5px;border-radius:7px;font-size:11.5px;font-weight:600;line-height:1;white-space:nowrap}.sub-badge:hover{background:var(--bg-hover);color:var(--text)}.sub-badge.open{background:var(--primary-soft);color:var(--primary)}.sub-badge.none{opacity:.35}.sub-badge.none:hover{opacity:1}.sub-grip{border:none;background:transparent;color:var(--border-strong);padding:2px;flex:none;line-height:1;cursor:grab;touch-action:none}.sub-grip:hover{color:var(--muted);background:transparent}.sub-grip:active{cursor:grabbing}.subtask-pop{position:fixed;z-index:81;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-pop);padding:10px 12px 12px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;overscroll-behavior:contain}.subtask-pop-head{display:flex;align-items:baseline;gap:8px;font-weight:600;font-size:13px}.subtask-pop-head>span:first-child{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty{padding:28px;text-align:center}.empty-state{padding:56px 20px;display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--muted);text-align:center}.empty-state p{margin:0;font-size:15px}.chip{display:inline-flex;align-items:center;gap:3px;font-size:11.5px;font-weight:600;color:#fff;background:var(--muted);padding:2px 8px;border-radius:999px;white-space:nowrap;border:1px solid transparent}.chip.outline{background:transparent;border:1px solid currentColor}.chip.subtle{background:var(--bg-muted);color:var(--muted)}.chip.toggle{cursor:pointer;background:transparent;border:1px solid var(--border-strong);color:var(--muted)}.chip.toggle.on{color:#fff}.due-chip-card.due-overdue{background:var(--danger-soft);color:var(--danger)}.due-chip-card.due-today{background:var(--warn-soft);color:var(--warn)}.prio-dot,.dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none}.kanban{display:flex;gap:12px;align-items:flex-start;height:100%;overflow-x:auto;padding-bottom:6px}.kanban-col{flex:0 0 280px;background:var(--bg-muted);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;max-height:100%}.kanban-col.over{outline:2px dashed var(--primary);outline-offset:-2px}.kanban-col-head{display:flex;align-items:center;gap:8px;padding:11px 12px;font-weight:600;border-bottom:1px solid var(--border)}.kanban-col-count{margin-left:auto;color:var(--muted);font-weight:600;font-size:12px}.kanban-col-body{padding:10px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;overscroll-behavior-y:contain}.kanban-empty{padding:14px;text-align:center;font-size:12px}.kanban-card{background:var(--panel);border:1px solid var(--border);border-radius:9px;padding:10px;box-shadow:var(--shadow);cursor:grab;touch-action:manipulation}.kanban-card.dragging{box-shadow:var(--shadow-pop);transform:rotate(1.5deg)}.kanban-card-top{display:flex;align-items:center;gap:7px}.kanban-card-title{font-weight:500;flex:1;min-width:0}.card-open{border:none;background:transparent;color:var(--muted);line-height:1;padding:0 2px;cursor:pointer}.card-open:hover{color:var(--primary);background:transparent}.kanban-card-meta{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#02061773;display:flex;justify-content:flex-end;z-index:50}.drawer{width:min(380px,100%);background:var(--panel);height:100%;overflow-y:auto;overscroll-behavior:contain;padding:16px;display:flex;flex-direction:column;gap:16px;box-shadow:-4px 0 24px #02061740;animation:slideIn .16s ease-out}@keyframes slideIn{0%{transform:translate(20px);opacity:.6}to{transform:none;opacity:1}}@media (max-width: 560px){.drawer-backdrop{align-items:flex-end}.drawer{width:100%;height:88%;border-radius:16px 16px 0 0;box-shadow:0 -8px 30px #02061759;animation:sheetUp .18s ease-out}@keyframes sheetUp{0%{transform:translateY(28px);opacity:.7}to{transform:none;opacity:1}}}.drawer-head{display:flex;gap:8px;align-items:center}.drawer-title{flex:1;font-size:17px;font-weight:600;border-color:transparent;background:transparent}.drawer-title:hover{border-color:var(--border)}.drawer-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.drawer-grid label,.drawer-section .drawer-label{font-size:12px;color:var(--muted)}.drawer-grid label{display:flex;flex-direction:column;gap:4px}.drawer-section{display:flex;flex-direction:column;gap:8px}.drawer-label{font-weight:600;text-transform:uppercase;letter-spacing:.03em}.tag-toggles{display:flex;gap:6px;flex-wrap:wrap}.rec-label{display:inline-flex;align-items:center;gap:4px}.rec-hint{margin:-6px 0 0}.subtasks{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.subtasks li{display:flex;align-items:center;gap:8px}.subtask-input{flex:1;border-color:transparent;background:transparent}.subtask-input:hover{border-color:var(--border)}.subtask-add{display:flex;gap:6px;margin-top:4px}.subtask-add input{flex:1}.drawer-footer{margin-top:auto;padding-top:8px}.drawer-footer .danger{width:100%}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#02061780;display:flex;align-items:center;justify-content:center;padding:16px;z-index:60}.modal{background:var(--panel);border-radius:14px;width:min(520px,100%);max-height:90vh;overflow-y:auto;padding:18px;box-shadow:var(--shadow-pop)}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.modal-head h2{margin:0;font-size:18px}.manage-section{margin-top:10px;border-top:1px solid var(--border)}.manage-section-head{width:100%;display:flex;align-items:center;gap:6px;border:none;background:transparent;color:var(--muted);padding:10px 2px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.manage-section-head:hover{color:var(--text)}.manage-section-body{padding-bottom:8px}.manage-subsection{margin-top:4px}.manage-subsection .manage-section-head{text-transform:none;font-size:12px;padding:6px 2px}.manage-row,.manage-add{display:flex;align-items:center;gap:8px;margin-bottom:6px}.manage-name,.manage-add input{flex:1}.color-swatch{width:38px;height:34px;padding:2px;border-radius:8px;cursor:pointer}.push-settings{display:flex;flex-direction:column;gap:8px}.push-status{font-size:13px}.push-status .push-on{color:var(--success);display:inline-flex;align-items:center;gap:5px;font-weight:600}.push-status .muted{display:inline-flex;align-items:center;gap:5px}.push-actions{display:flex;gap:6px;flex-wrap:wrap}.bidi{unicode-bidi:plaintext;text-align:start}.scope-toggle{display:inline-flex;gap:2px;background:var(--bg-muted);padding:3px;border-radius:9px}.scope-toggle button{border:none;background:transparent;color:var(--muted);padding:5px 11px;border-radius:7px;font-size:13px}.scope-toggle button:hover{background:var(--bg-hover)}.scope-toggle button.active{background:var(--panel);color:var(--text);box-shadow:var(--shadow)}.open-btn{border:none;background:transparent;color:var(--primary);line-height:1;padding:4px 6px;border-radius:6px}.open-btn:hover{background:var(--primary-soft)}.oc-menu{display:flex;align-items:center;justify-content:center}.action-menu-btn{border:none;background:transparent;color:var(--muted);line-height:1;padding:4px 6px;border-radius:6px}.action-menu-btn:hover{background:var(--bg-hover);color:var(--text)}.action-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80}.action-menu{position:fixed;z-index:81;width:300px;max-width:calc(100vw - 48px);background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-pop);padding:6px;display:flex;flex-direction:column;gap:1px;overflow-y:auto;overscroll-behavior:contain}.action-menu .am-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:6px 8px 2px}.action-menu .am-item{display:flex;align-items:center;gap:8px;border:none;background:transparent;text-align:left;padding:8px;border-radius:7px;font-size:14px;width:100%;justify-content:flex-start}.action-menu .am-item:hover{background:var(--bg-muted)}.action-menu .am-item.current{font-weight:600}.action-menu .am-name{flex:1;min-width:0}.action-menu .am-check{color:var(--primary);display:inline-flex}.action-menu .am-danger{color:var(--danger)}.action-menu .am-danger:hover{background:var(--danger-soft)}.action-menu .am-sep{height:1px;background:var(--border);margin:4px 2px}.action-menu .am-row{display:flex;align-items:center;gap:8px;padding:3px 8px}.action-menu .am-row-label{font-size:12px;color:var(--muted);width:46px;flex:none}.action-menu .am-input{flex:1;min-width:0;padding:5px 7px;font-size:13px}.action-menu .am-prio{display:flex;gap:4px;flex:1}.action-menu .am-prio-btn{flex:1;padding:4px 0;font-size:12px;font-weight:700;border-radius:7px;border:1px solid var(--border-strong);background:transparent;color:var(--muted)}.action-menu .am-prio-btn.on.p0{background:var(--bg-muted);color:var(--text)}.action-menu .am-prio-btn.on.p1{color:#0369a1;background:#e0f2fe;border-color:#7dd3fc}.action-menu .am-prio-btn.on.p2{color:#b45309;background:#fef3c7;border-color:#fcd34d}.action-menu .am-prio-btn.on.p3{color:#b91c1c;background:#fee2e2;border-color:#fca5a5}[data-theme=dark] .action-menu .am-prio-btn.on.p1{color:#7dd3fc;background:#0ea5e924;border-color:#0ea5e966}[data-theme=dark] .action-menu .am-prio-btn.on.p2{color:#fcd34d;background:#f59e0b24;border-color:#f59e0b66}[data-theme=dark] .action-menu .am-prio-btn.on.p3{color:#fca5a5;background:#ef444424;border-color:#ef444466}.action-menu .am-tags{padding:2px 8px 6px}.action-menu .am-hint{font-size:12px;color:var(--muted);padding:2px 8px 6px}.action-menu .am-rich{padding:2px 8px 6px}.action-menu .rich-editor{min-height:72px;max-height:180px;overflow-y:auto}.kanban-card-wrap{position:relative}.kanban-wrap{display:flex;flex-direction:column;height:100%;gap:8px}.kanban-toolbar{display:flex;align-items:center;gap:6px}.zoom-val{min-width:38px;text-align:center;color:var(--muted)}.kanban{flex:1;min-height:0}.kanban-col{flex:0 0 calc(280px * var(--k-scale, 1))}.kanban-col-body{min-height:60px}.rich{border:1px solid var(--border-strong);border-radius:8px;overflow:hidden;background:var(--panel)}.rich:focus-within{border-color:var(--primary)}.rich-toolbar{display:flex;gap:4px;padding:6px;flex-wrap:wrap;background:var(--bg-subtle);border-bottom:1px solid var(--border)}.rich-btn{padding:4px 8px;font-size:13px;line-height:1.4}.rich-btn.on{background:var(--primary-soft);color:var(--primary)}.rich-palette{display:flex;gap:4px;padding:4px 6px 6px;flex-wrap:wrap;background:var(--bg-subtle);border-bottom:1px solid var(--border)}.rich-swatch{width:28px;height:26px;border-radius:6px;border:1px solid var(--border-strong);background:var(--panel);display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;line-height:1}.rich-swatch:hover{border-color:var(--primary)}.rich-editor{min-height:120px;padding:10px;line-height:1.55;outline:none}.rich-editor:empty:before{content:attr(data-placeholder);color:var(--muted)}.rich-editor ul,.rich-editor ol{margin:4px 0;padding-inline-start:22px}.rich-editor:focus{outline:none}.myday-topbtn{display:inline-flex;align-items:center;gap:6px;background:var(--warn-soft);color:var(--warn);border:1px solid transparent;border-radius:8px}.myday-topbtn:hover{border-color:var(--warn)}.myday-mark{color:var(--warn);flex:none;vertical-align:-2px}.modal.myday{width:min(560px,100%);max-height:90vh;display:flex;flex-direction:column;gap:0;overflow:hidden;padding-bottom:0}.modal.myday .modal-head h2{display:inline-flex;align-items:center;gap:7px}.myday-bar{flex:none;border:1px solid var(--border);border-radius:12px;background:var(--bg-subtle);padding:10px 12px;margin-bottom:10px}.myday-bar.active{border-color:var(--primary);background:var(--primary-soft)}.myday-bar-hint{font-size:13px;padding:4px 2px}.myday-bar-title{font-weight:600;font-size:14px;margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.myday-bar-actions{display:flex;gap:6px;flex-wrap:wrap}.md-act{display:inline-flex;align-items:center;gap:5px;padding:7px 11px;border-radius:8px;font-size:13px;font-weight:600;border:1px solid var(--border-strong);background:var(--panel);color:var(--text)}.md-act:hover{border-color:var(--primary)}.md-act.on{background:var(--warn-soft);color:var(--warn);border-color:var(--warn)}.md-act.done:hover{border-color:var(--success);color:var(--success)}.md-act.danger{color:var(--danger)}.md-act.danger:hover{border-color:var(--danger)}.myday-bar-fields{display:flex;gap:10px;margin-top:9px}.myday-bar-fields label{flex:1;display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--muted)}.myday-bar-fields input,.myday-bar-fields select{width:100%}.myday-scroll{flex:1;overflow-y:auto;overscroll-behavior:contain;min-height:80px}.md-group{margin:12px 0 4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.md-group.danger{color:var(--danger)}.md-group.today{color:var(--warn)}.md-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.md-row2{display:flex;align-items:center;gap:9px;padding:8px;border-radius:8px;cursor:pointer;border:1px solid transparent}.md-row2:hover{background:var(--bg-muted)}.md-row2.selected{background:var(--primary-soft);border-color:var(--primary)}.md-dot{flex:none;width:9px;height:9px;border-radius:50%;background:var(--border-strong)}.md-dot.due-overdue{background:var(--danger)}.md-dot.due-today{background:var(--warn)}.md-dot.due-soon{background:var(--primary)}.md-row2 .md-title{flex:1;min-width:0;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.md-proj{flex:none;font-size:12px;color:var(--muted);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.myday-foot{flex:none;background:var(--panel);padding:10px 0 16px}.myday-big{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:12px 10px;font-size:14.5px;border-radius:10px;width:100%}.oc-title{display:flex;align-items:center;gap:4px}.oc-title .cell-input{flex:1;min-width:0}.done-banner{background:var(--success-soft);color:var(--success);border:1px solid var(--success-border);border-radius:8px;padding:8px 10px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:6px}.manage-done{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--muted);white-space:nowrap}.manage-done input{width:15px;height:15px}.manage-hint{margin:4px 2px 0}.toaster{position:fixed;bottom:calc(16px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:200;width:min(440px,calc(100vw - 24px))}.toast{display:flex;align-items:center;gap:9px;background:var(--toast-bg);color:var(--toast-text);padding:11px 12px;border-radius:12px;box-shadow:var(--shadow-pop);animation:toastIn .18s ease-out;font-size:13.5px}@keyframes toastIn{0%{transform:translateY(10px);opacity:0}to{transform:none;opacity:1}}.toast-icon{flex:none}.toast-success .toast-icon{color:#4ade80}.toast-error .toast-icon{color:#f87171}.toast-info .toast-icon{color:var(--toast-action)}.toast-msg{flex:1;min-width:0}.toast-action{border:none;background:transparent;color:var(--toast-action);font-weight:700;padding:4px 6px;flex:none}.toast-action:hover{background:#94a3b826}.toast-close{border:none;background:transparent;color:var(--toast-muted);padding:3px;flex:none}.toast-close:hover{color:var(--toast-text);background:transparent}.skeleton-page{padding:22px;display:flex;flex-direction:column;gap:12px;max-width:980px;margin:0 auto;width:100%}.skeleton-bar,.skeleton-row{background:linear-gradient(90deg,var(--bg-muted) 25%,var(--bg-hover) 50%,var(--bg-muted) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:8px}.skeleton-bar{height:18px}.skeleton-bar.w40{width:40%}.skeleton-row{height:46px}.skeleton-row.dim{opacity:.55}@keyframes shimmer{to{background-position:-200% 0}}.error-screen{padding:20px}.error-card{background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:28px;max-width:420px;text-align:center;display:flex;flex-direction:column;gap:10px;align-items:center}.error-card h2{margin:0;font-size:18px}.error-card p{margin:0}.sched-rec{display:flex;flex-direction:column;gap:7px;width:100%}.sched-line{display:flex;align-items:center;gap:6px}.sched-ic{color:var(--muted);flex:none}.sched-ic.on{color:var(--primary)}.sched-select{flex:1;min-width:0}.sched-lbl{font-size:12.5px;color:var(--muted);flex:none}.sched-num{width:56px;text-align:center}.sched-weekdays{display:flex;flex-wrap:wrap;gap:4px}.sched-wd{flex:none;min-width:32px;padding:5px 7px;font-size:12px;font-weight:600;border:1px solid var(--border-strong);background:var(--panel);color:var(--muted);border-radius:7px}.sched-wd:hover{border-color:var(--primary)}.sched-wd.on{background:var(--primary);border-color:var(--primary);color:#fff}.sched-preset{flex:none;padding:5px 9px;font-size:12px;border-radius:7px;border:1px dashed var(--border-strong);background:transparent;color:var(--muted)}.sched-preset.on{border-style:solid;border-color:var(--primary);color:var(--primary)}.sched-reminder{gap:6px}.sched-datetime{flex:1;min-width:0}.sched-clear{flex:none}.action-menu .am-row-block{flex-direction:column;align-items:stretch;gap:6px}.action-menu .am-row-block .am-row-label{width:auto}.muted-chip{border-color:var(--border-strong)!important;color:var(--muted)!important}.rich-swatch-default{color:var(--text);border:1px solid var(--border-strong);border-radius:6px}@media (max-width: 720px){.vt-label{display:none}.view-toggle button{padding:6px 10px}}@media (max-width: 560px){.brand-name{display:none}.drawer-grid{grid-template-columns:1fr 1fr}.search-box{flex:1 1 100%}.filterbar .count{margin-left:0}}.topbar{gap:8px;padding:8px 12px;padding-top:max(8px,env(safe-area-inset-top))}.view-toggle.seg3{margin-left:0}.topbar-gear{margin-left:auto;color:var(--muted)}.topbar-gear:hover{color:var(--text)}.fb-select{padding:5px 8px;font-size:13px;max-width:160px}.far-chip{border:1px solid var(--border-strong);border-radius:999px;color:var(--muted)}.far-chip.on{color:var(--primary);border-color:var(--primary)}.list-wrap{display:flex;flex-direction:column;gap:8px;height:100%}.list-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.list-sort{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}.list-sort select{padding:5px 8px}.list-fields-wrap{position:relative;margin-left:auto}.list-scroll{flex:1;min-height:0}.task-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.task-card{display:flex;align-items:stretch;gap:2px;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow)}.task-card:hover{border-color:var(--border-strong)}.tc-grip{display:flex;align-items:center;justify-content:center;padding:0 3px;color:var(--border-strong);border:none;background:transparent;cursor:grab;touch-action:none;border-radius:10px 0 0 10px}.tc-grip:hover{color:var(--muted);background:transparent}.tc-grip.disabled{cursor:default;opacity:.35}.tc-main{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:6px;border:none;background:transparent;text-align:start;padding:10px 12px 10px 2px;border-radius:0 10px 10px 0}.tc-main:hover{background:transparent}.tc-title{font-weight:500;font-size:14.5px;line-height:1.35;color:var(--text);width:100%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal}.tc-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.tc-status{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--muted)}.tc-proj{font-size:11.5px}.tc-ic{display:inline-flex;color:var(--muted)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#02061773;display:flex;align-items:center;justify-content:center;padding:16px;z-index:70}.sheet{background:var(--panel);border-radius:16px;width:min(440px,100%);max-height:92vh;overflow-y:auto;overscroll-behavior:contain;box-shadow:var(--shadow-pop);padding:14px;display:flex;flex-direction:column;gap:12px;animation:sheetUp .16s ease-out}@keyframes sheetUp{0%{transform:translateY(28px);opacity:.7}to{transform:none;opacity:1}}.sheet-head{display:flex;align-items:flex-start;gap:8px}.sheet-title{flex:1;min-width:0;resize:none;overflow:hidden;font-size:17px;font-weight:600;line-height:1.3;border-color:transparent;background:transparent;padding:6px 8px}.sheet-title:hover{border-color:var(--border)}.sheet-del{flex:none;border:none;background:transparent;color:var(--danger);padding:7px;border-radius:8px}.sheet-del:hover{background:var(--danger-soft)}.sheet-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px}.sheet-field{display:flex;flex-direction:column;gap:3px}.sheet-field>:is(select,input){width:100%}.sheet-status{display:flex;align-items:center;gap:6px}.sheet-status select{flex:1;min-width:0}.sheet-lbl{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.sheet-sched{display:flex;flex-direction:column;gap:8px;padding:2px 0}.sheet-desc{display:flex;flex-direction:column}.sheet-desc .rich-editor{min-height:150px;max-height:44vh;overflow-y:auto}.sheet-subs{display:flex;flex-direction:column;gap:6px}@media (max-width: 560px){.sheet-backdrop{align-items:flex-end;padding:0}.sheet{width:100%;max-height:92vh;border-radius:16px 16px 0 0}}.myday-view{display:flex;flex-direction:column;height:100%}.myday-view .myday-bar{position:sticky;top:0;z-index:5;margin-bottom:10px;box-shadow:0 6px 14px -10px #02061766}.myday-bar-row1{display:flex;align-items:center;gap:8px;margin-bottom:8px}.myday-bar-row1 .myday-bar-title{margin-bottom:0;flex:1}.md-edit{flex:none;border:none;background:transparent;color:var(--muted);padding:5px;border-radius:7px}.md-edit:hover{color:var(--primary);background:var(--panel)}.myday-empty{padding:24px 8px;text-align:center}.md-icons{flex:none;display:inline-flex;gap:3px;color:var(--muted)}.md-del{flex:none;border:none;background:transparent;color:var(--danger);padding:5px;border-radius:7px}.md-del:hover{background:var(--danger-soft)}.md-row2 .md-title.scroll-x{overflow-x:auto;white-space:nowrap;text-overflow:clip}.scroll-x{-webkit-overflow-scrolling:touch;touch-action:pan-x;scrollbar-width:none}.scroll-x::-webkit-scrollbar{display:none}.color-dot-btn{width:30px;height:28px;border-radius:8px;border:1px solid var(--border-strong);padding:0;flex:none}.color-pop{position:fixed;z-index:81;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-pop);padding:10px;display:flex;flex-direction:column;gap:8px}.color-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.color-swatch2{width:28px;height:28px;border-radius:7px;border:1px solid rgba(0,0,0,.12);padding:0;display:flex;align-items:center;justify-content:center;color:#fff}.color-swatch2.on{outline:2px solid var(--text);outline-offset:1px}.color-custom{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted);border-top:1px solid var(--border);padding-top:8px}.color-custom input[type=color]{width:38px;height:28px;padding:2px;border-radius:7px}.settings-block{display:flex;flex-direction:column;gap:10px}.set-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.set-label{display:flex;flex-direction:column;gap:1px;font-size:13.5px}.set-sub{font-weight:400}.toggle-row{cursor:pointer}.toggle-row input[type=checkbox]{width:18px;height:18px;flex:none}.set-num{width:72px;text-align:center}.seg{display:inline-flex;gap:2px;background:var(--bg-muted);padding:3px;border-radius:9px}.seg button{border:none;background:transparent;color:var(--muted);padding:5px 9px;border-radius:7px;font-size:12.5px}.seg button.active{background:var(--panel);color:var(--text);box-shadow:var(--shadow)}.manage-count{flex:none;min-width:20px;text-align:center}.rich-swatch-reset{color:var(--muted)}.rt-task{display:flex;align-items:flex-start;gap:6px}.rt-box{cursor:pointer;-webkit-user-select:none;user-select:none;flex:none;font-size:16px;line-height:1.4;color:var(--primary)}.rt-task.done{color:var(--muted);text-decoration:line-through}.kanban-card{cursor:pointer}.kanban-card-ics{flex:none;display:inline-flex;gap:4px;color:var(--muted)}.view-toggle.seg4 button{padding:6px 9px}.view-toggle.seg4 .vt-label{font-size:13px}@media (max-width: 560px){.view-toggle.seg4 .vt-label{display:none}.view-toggle.seg4 button{padding:7px 11px}}.due-chip.focus-chip{display:inline-flex;align-items:center;gap:4px}.due-chip.focus-chip.active{background:var(--warn, #f59e0b);border-color:var(--warn, #f59e0b);color:#fff}.tc-check{flex:none;display:flex;align-items:center;justify-content:center;width:34px;border:none;background:transparent;color:var(--border-strong);border-radius:10px 0 0 10px}.tc-check:hover{color:var(--success, #22c55e);background:transparent}.tc-check.on{color:var(--success, #22c55e)}.tc-star{flex:none;display:flex;align-items:center;justify-content:center;width:32px;border:none;background:transparent;color:var(--border-strong)}.tc-star:hover{color:var(--warn, #f59e0b);background:transparent}.tc-star.on{color:var(--warn, #f59e0b)}.tc-main{padding-left:2px}.tc-title-row{display:flex;align-items:flex-start;gap:6px;width:100%}.tc-title-row .tc-title{flex:1}.tc-desc-ic{flex:none;margin-top:2px;opacity:.75}.tc-noproj{font-size:13px}.task-card.is-done .tc-title{text-decoration:line-through;color:var(--muted)}.kc-check{flex:none;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:none;background:transparent;color:var(--border-strong);border-radius:50%}.kc-check:hover{color:var(--success, #22c55e);background:transparent}.kc-check.on{color:var(--success, #22c55e)}.kc-star{flex:none;display:inline-flex;align-items:center;justify-content:center;padding:2px;border:none;background:transparent;color:var(--border-strong)}.kc-star:hover{color:var(--warn, #f59e0b);background:transparent}.kc-star.on{color:var(--warn, #f59e0b)}.kanban-card.is-done .kanban-card-title{text-decoration:line-through;color:var(--muted)}.md-star{flex:none;border:none;background:transparent;color:var(--border-strong);padding:5px;border-radius:7px}.md-star:hover{color:var(--warn, #f59e0b);background:transparent}.md-star.on{color:var(--warn, #f59e0b)}.sheet-star{flex:none;border:none;background:transparent;color:var(--border-strong);padding:6px;border-radius:8px}.sheet-star:hover{color:var(--warn, #f59e0b);background:var(--bg-muted)}.sheet-star.on{color:var(--warn, #f59e0b)}.sheet-meta{grid-template-columns:1fr 1fr}.sheet-notes{display:flex;flex-direction:column;gap:6px;margin-top:4px}.sheet-notes-head{display:flex;align-items:center;justify-content:space-between}.note-item{border:1px solid var(--border);border-radius:9px;overflow:hidden}.note-item.open{border-color:var(--border-strong)}.note-head{display:flex;align-items:center;gap:4px;padding:4px 4px 4px 2px;background:var(--bg-subtle)}.note-toggle{border:none;background:transparent;color:var(--muted);padding:4px;border-radius:6px;flex:none}.note-title{flex:1;min-width:0;border:none;background:transparent;padding:6px 4px;font-weight:500;font-size:13.5px}.note-title:focus{background:var(--panel);border-radius:6px}.note-del{color:var(--danger);flex:none}.note-body{padding:6px}.note-body .rich-editor{min-height:100px}.sheet-done-btn{width:100%;margin-top:6px;padding:13px;border-radius:11px;background:var(--primary);border-color:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;gap:8px;font-size:15px;font-weight:600;position:sticky;bottom:0}.sheet-done-btn:hover{background:var(--primary-dark)}.rich-block{padding:4px 6px;font-size:12.5px;border-radius:7px}.rich-sep{display:inline-block;width:1px;align-self:stretch;margin:2px 3px;background:var(--border)}.rich-editor h1{font-size:1.45em;font-weight:700;margin:.3em 0}.rich-editor h2{font-size:1.25em;font-weight:700;margin:.3em 0}.rich-editor h3{font-size:1.1em;font-weight:600;margin:.3em 0}.rich-editor ol{padding-inline-start:1.4em;margin:.3em 0}.quickadd{position:relative}.quickadd-preview{position:absolute;left:34px;right:12px;bottom:calc(100% - 2px);background:var(--panel);border:1px solid var(--border);border-radius:9px;box-shadow:var(--shadow-pop);padding:8px 10px;z-index:30;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.quickadd-preview .qa-title{font-weight:500;font-size:13.5px;color:var(--text);flex:1;min-width:60px}.quickadd-preview .qa-chips{display:flex;gap:6px;flex-wrap:wrap}.projects-view{max-width:640px;margin:0 auto}.pv-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.pv-row{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--panel);border:1px solid var(--border);border-radius:10px}.pv-row:hover{border-color:var(--border-strong)}.pv-name{flex:1;min-width:0;border:none;background:transparent;font-size:14.5px;font-weight:500;color:var(--text);padding:4px 2px}.pv-name:focus{background:var(--bg-muted);border-radius:6px}.pv-open{flex:none;display:inline-flex;align-items:center;gap:6px;border:none;background:var(--bg-muted);color:var(--muted);padding:5px 9px;border-radius:8px;font-size:13px}.pv-open:hover{color:var(--primary);background:var(--primary-soft)}.pv-count{font-variant-numeric:tabular-nums;font-weight:600}.pv-row-none{cursor:pointer}.pv-dash{flex:none;width:22px;text-align:center;color:var(--muted);font-size:16px}.pv-row-none .pv-name{cursor:pointer}.pv-chev{flex:none;color:var(--muted);margin-left:auto}.pv-add{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px dashed var(--border-strong);border-radius:10px}.pv-add input{flex:1;min-width:0;border:none;background:transparent}.pv-archived{margin-top:14px}.pv-archived summary{cursor:pointer;color:var(--muted);font-size:13px;padding:6px 2px}.pv-archived .pv-list{margin-top:8px;opacity:.85}.set-row .seg button{font-size:13px}.task-card .tc-grip{border-radius:0 10px 10px 0}
