:root{--bg: #0d1117;--panel: #161b22;--panel2: #1c2128;--border: #21262d;--text: #e6edf3;--muted: #7d8590;--accent: #2dd4bf;--accent-d: #14b8a6;--on-accent: #03120f;--warn: #f59e0b;--danger: #ef4444;--shadow: 0 12px 32px rgba(0,0,0,.55);--accent-tint: rgba(45, 212, 191, .12)}:root[data-theme=light]{--bg: #ffffff;--panel: #f6f8fa;--panel2: #eaeef2;--border: #d0d7de;--text: #1f2328;--muted: #57606a;--accent: #0d9488;--accent-d: #0f766e;--on-accent: #ffffff;--warn: #b8860b;--danger: #cf222e;--shadow: 0 12px 28px rgba(15, 23, 42, .14);--accent-tint: rgba(13, 148, 136, .12)}html.debug-cal .calendar{outline:2px solid red;outline-offset:-2px}html.debug-cal .cal-header{outline:2px solid orange;outline-offset:-2px}html.debug-cal .cal-body{outline:2px solid #f59e0b;outline-offset:-2px}html.debug-cal .cal-mobile-agenda{outline:2px solid #2563eb;outline-offset:-2px}html.debug-cal .cal-day-pane{outline:2px solid #22c55e;outline-offset:-2px}html.debug-cal .cal-week-strip{outline:2px solid #9333ea;outline-offset:-2px}html.debug-cal .cal-day-cell{outline:1px dashed #9333ea}html.debug-cal .cal-day-title{outline:1px dashed #db2777}html.debug-cal .agenda-empty,html.debug-cal .agenda-list{outline:1px dashed #0891b2}html.debug-cal .main{outline:2px solid magenta;outline-offset:-2px}html.debug-cal [class^=cal-]:after,html.debug-cal [class*=" cal-"]:after,html.debug-cal .main:after,html.debug-cal .agenda-empty:after,html.debug-cal .agenda-list:after{content:attr(class);position:absolute;top:0;left:0;font:600 9px/1 monospace;background:#000000bf;color:#fff;padding:2px 4px;border-radius:0 0 4px;pointer-events:none;z-index:999;max-width:70%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}html.debug-cal .calendar,html.debug-cal .cal-header,html.debug-cal .cal-body,html.debug-cal .cal-mobile-agenda,html.debug-cal .cal-day-pane,html.debug-cal .cal-week-strip,html.debug-cal .cal-day-title,html.debug-cal .agenda-empty,html.debug-cal .agenda-list,html.debug-cal .main{position:relative}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}html{-webkit-text-size-adjust:100%}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:14px;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}button{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}input,textarea,select{font:inherit;background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:6px 8px;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--accent)}.loading{display:grid;place-items:center;height:100%;color:var(--muted)}.auth-screen{display:grid;place-items:center;height:100%}.auth-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:32px;width:320px;display:flex;flex-direction:column;gap:12px}.auth-brand{display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--accent)}.auth-card h1{margin:0;font-size:22px;text-align:center;color:var(--text)}.auth-sub{margin:0 0 8px;color:var(--muted);text-align:center}.auth-card button[type=submit]{background:var(--accent-d);color:var(--on-accent);border:none;border-radius:6px;padding:10px;font-weight:600}.auth-error{color:var(--danger);font-size:13px}.link{background:none;border:none;color:var(--accent);padding:4px}.app{display:flex;height:100%}.sidebar{width:250px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);padding:14px 10px;overflow:hidden;display:flex;flex-direction:column}.sidebar-scroll{flex:1;min-height:0;overflow-y:auto;margin:0 -6px 0 0;padding-right:4px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.sidebar-scroll::-webkit-scrollbar{width:6px}.sidebar-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.sidebar-scroll::-webkit-scrollbar-thumb:hover{background:var(--muted)}.sidebar-scroll::-webkit-scrollbar-track{background:transparent}.brand{font-weight:700;font-size:16px;padding:4px 8px 12px}.search-box input{width:100%}nav{display:flex;flex-direction:column;gap:1px;margin:4px 0}.nav-item{display:flex;align-items:center;gap:8px;background:none;border:none;color:var(--text);text-align:left;padding:7px 8px;border-radius:6px;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-item:hover{background:var(--panel2)}.nav-item.active{background:var(--accent-d);color:var(--on-accent);font-weight:600}.nav-item .icon{width:18px;text-align:center}.nav-row{display:flex;align-items:center}.nav-row .nav-item{flex:1}.del{background:none;border:none;color:var(--muted);font-size:16px;padding:2px 6px;border-radius:4px;opacity:0}.nav-row:hover .del,.checklist li:hover .del{opacity:1}.del:hover{color:var(--danger);background:var(--panel2)}.dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex-shrink:0}.section-title{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em;padding:14px 8px 4px}.add-inline input{width:100%;background:none;border:1px dashed var(--border)}.sidebar-bottom-views{padding-top:12px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:1px}.sidebar-footer{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.sidebar-footer .email{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis}.sidebar-settings{width:100%;display:flex;align-items:center;gap:8px;background:none;border:none;color:var(--text);padding:8px 10px;border-radius:6px;text-align:left;font:inherit}.sidebar-settings:hover{background:var(--panel2)}.sidebar-settings .settings-label{flex-shrink:0}.sidebar-settings .email{flex:1;min-width:0;text-align:right;font-size:11px;white-space:nowrap}.main{flex:1;overflow-y:auto;padding:24px 32px;min-width:0}.error-banner{background:var(--danger);color:#fff;padding:8px 12px;border-radius:6px;margin-bottom:12px;cursor:pointer}.tasklist{max-width:860px}.view-title{margin:0 0 16px;font-size:24px}.add-task input{width:100%;padding:10px 12px;margin-bottom:12px}.empty{color:var(--muted);padding:20px 4px}.row-wrap.kbd-focus>.row{box-shadow:inset 3px 0 0 var(--accent)}.done-toggle-wrap{list-style:none}.done-toggle{display:inline-flex;align-items:center;gap:8px;margin:6px 0 4px;padding:6px 10px;background:transparent;border:none;color:var(--muted);font:inherit;font-size:13px;border-radius:8px;cursor:pointer;-webkit-tap-highlight-color:transparent}.done-toggle:hover{background:var(--panel);color:var(--text)}.done-toggle .chevron{display:inline-flex;transition:transform .16s ease-out}.done-toggle .chevron.collapsed{transform:rotate(-90deg)}.swipe-wrap{position:relative;overflow:hidden;border-radius:8px}.swipe-bg{position:absolute;top:0;bottom:0;display:flex;align-items:center;padding:0 18px;color:#fff;font-weight:600;pointer-events:none}.swipe-bg-right{left:0;right:0;justify-content:flex-start;background:#22c55e}.swipe-bg-left{left:0;right:0;justify-content:flex-end;background:var(--warn);transition:background .12s linear}.swipe-bg-left.swipe-bg-far{background:var(--danger)}.swipe-bg-left.swipe-bg-none{background:var(--warn)}.swipe-content{position:relative;background:var(--bg);z-index:1;will-change:transform}.skeleton-row{display:flex;align-items:center;gap:12px;padding:12px 16px}.skeleton-circle,.skeleton-line{background:linear-gradient(90deg,var(--panel) 0%,var(--panel2) 50%,var(--panel) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite;border-radius:6px}.skeleton-circle{width:20px;height:20px;border-radius:50%;flex-shrink:0}.skeleton-line{height:14px}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.proj-activity{margin:0 0 14px}.proj-activity-head{display:inline-flex;align-items:center;gap:8px;background:transparent;border:none;padding:6px 8px;color:var(--muted);font:inherit;font-size:13px;border-radius:6px;cursor:pointer}.proj-activity-head:hover{background:var(--panel);color:var(--text)}.proj-activity-head .chevron{display:inline-flex;transition:transform .16s ease-out}.proj-activity-head .chevron.collapsed{transform:rotate(-90deg)}.proj-activity-body{margin:8px 0 4px;padding:10px 14px;background:var(--panel);border:1px solid var(--border);border-radius:8px;font-size:13px;max-height:280px;overflow-y:auto}.proj-activity-body ol{margin:0;padding-left:18px}.proj-activity-item{padding:3px 0;line-height:1.5}.proj-activity-item em{font-style:normal;color:var(--accent)}.proj-activity-when{font-size:12px}.proj-activity-err{color:var(--danger);font-size:13px}.toast-host{position:fixed;top:calc(20px + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:380;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{pointer-events:auto;background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:999px;padding:10px 16px;font:inherit;font-size:14px;box-shadow:0 6px 18px #00000040;cursor:pointer;max-width:min(86vw,480px);animation:toast-in .22s cubic-bezier(.2,.7,.3,1) both}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.toast-warn{background:var(--warn);color:#1a1100;border-color:transparent}.toast-error{background:var(--danger);color:#fff;border-color:transparent}.sync-badge{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:8px}.sync-badge:hover{background:var(--panel)}.sync-dot{width:9px;height:9px;border-radius:50%;background:var(--muted);transition:background .16s ease-out,transform .16s ease-out}.sync-badge.is-idle .sync-dot{background:#22c55e}.sync-badge.is-syncing .sync-dot{background:var(--accent);animation:sync-pulse .9s ease-in-out infinite}.sync-badge.is-offline .sync-dot{background:var(--warn)}.sync-badge.is-error .sync-dot{background:var(--danger)}.sync-badge.is-pending .sync-dot{background:var(--warn)}.sync-badge{position:relative}.sync-count{position:absolute;top:2px;right:2px;min-width:14px;height:14px;padding:0 3px;border-radius:7px;background:var(--warn);color:#1a1100;font-size:9px;font-weight:700;line-height:14px;text-align:center}@keyframes sync-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.4);opacity:.6}}.update-banner{position:fixed;left:50%;transform:translate(-50%);bottom:calc(20px + env(safe-area-inset-bottom));z-index:350;display:inline-flex;align-items:center;gap:12px;padding:10px 12px 10px 16px;background:var(--accent);color:var(--on-accent);border-radius:999px;box-shadow:0 8px 24px #00000059;font-size:14px;animation:update-banner-in .22s cubic-bezier(.2,.7,.3,1) both}@keyframes update-banner-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.update-banner button{background:#fff3;color:var(--on-accent);border:none;border-radius:999px;padding:6px 14px;font:inherit;font-weight:600;cursor:pointer}.update-banner button:hover{background:#ffffff52}.update-banner-dismiss{width:26px;height:26px;padding:0!important;display:inline-flex;align-items:center;justify-content:center;font-size:16px;background:transparent!important}.search-bar{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--panel);border:1px solid var(--border);border-radius:10px;margin-bottom:14px}.search-bar:focus-within{border-color:var(--accent)}.search-bar>svg{color:var(--muted);flex-shrink:0}.search-bar input{flex:1;background:transparent;border:none;outline:none;font-size:15px;padding:4px 0;color:var(--text)}.search-clear{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--muted);border-radius:6px;padding:0}.search-clear:hover{background:var(--panel2);color:var(--text)}.rows{list-style:none;margin:0;padding:0}.row{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:8px;cursor:pointer;border:1px solid transparent}.row:hover{background:var(--panel)}.row.selected{background:var(--panel);border-color:var(--accent-d)}.row-title{transition:color .2s ease-out,text-decoration-color .2s ease-out;text-decoration-color:transparent}.row.done .row-title{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--muted)}.check{width:20px;height:20px;flex-shrink:0;margin-top:1px;border:1.5px solid var(--muted);border-radius:50%;background:none;color:var(--on-accent);font-size:12px;line-height:1;padding:0;display:inline-flex;align-items:center;justify-content:center;transition:background-color .14s ease-out,border-color .14s ease-out}.check .icon polyline{stroke-dasharray:24;stroke-dashoffset:24;transition:stroke-dashoffset .18s cubic-bezier(.6,.2,.4,1)}.check.checked{background:var(--accent);border-color:var(--accent);animation:check-pop .22s cubic-bezier(.34,1.56,.64,1)}.check.checked .icon polyline{stroke-dashoffset:0}@keyframes check-pop{0%{transform:scale(1)}55%{transform:scale(1.22)}to{transform:scale(1)}}.row-body{flex:1;min-width:0}.row-title{display:block}.row-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:3px;font-size:12.5px;color:var(--muted)}.row-meta .dot{width:8px;height:8px;border-radius:50%;margin-right:4px}.prio-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.meta-time{color:var(--accent);font-variant-numeric:tabular-nums}.meta-countdown{opacity:.7;font-variant-numeric:tabular-nums}.meta-proj{display:inline-flex;align-items:center}.meta-tag{color:var(--accent)}.deadline{color:#f59e0b}.row-wrap{border-radius:8px;content-visibility:auto;contain-intrinsic-size:auto 56px}.row-wrap.open{content-visibility:visible}.row-wrap.open{background:var(--panel);border:1px solid var(--border)}.row-wrap.open .row:hover{background:transparent}.editor{padding:16px 14px 16px 42px;display:flex;flex-direction:column;gap:14px;border-top:1px solid var(--border);margin-top:6px;position:relative}.editor-saved{position:absolute;top:6px;right:10px;display:inline-flex;align-items:center;gap:3px;font-size:11.5px;color:var(--accent);background:var(--bg);padding:2px 8px;border-radius:999px;border:1px solid var(--border);opacity:0;pointer-events:none;transition:opacity .18s ease-out}.editor-saved.on{opacity:1}.row-title.editing{background:transparent;border:none;outline:none;padding:1px 2px;font:inherit;color:var(--text);width:100%;border-bottom:1px solid var(--border);transition:border-color .12s ease-out}.row-title.editing:focus{border-bottom-color:var(--accent)}.row-wrap.open .row-meta{display:none}.editor-note{min-height:54px;resize:vertical;width:100%}.editor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px}.editor-grid label{display:flex;flex-direction:column;gap:4px}.editor-grid label>span{font-size:12px;color:var(--muted)}.editor-section{display:flex;flex-direction:column;gap:6px}.editor-label{font-size:12px;color:var(--muted)}.editor-actions{display:flex;align-items:center;gap:10px;padding-top:4px;border-top:1px solid var(--border)}.editor-actions .spacer{flex:1}.editor-actions button{background:var(--panel2);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:7px 12px}.editor-actions .danger{color:var(--danger);border-color:var(--danger)}@media (max-width: 640px){.editor-grid{grid-template-columns:1fr 1fr}}.section{margin-bottom:18px}.section-head{display:flex;align-items:center;gap:8px;background:none;border:none;color:var(--muted);padding:8px 6px;width:100%;text-align:left;font-size:13px;letter-spacing:.01em;border-bottom:1px solid var(--border);cursor:pointer}.section-head:hover{color:var(--text)}.chevron{display:inline-flex;align-items:center;color:var(--muted);width:14px;transform-origin:center;transition:transform .18s cubic-bezier(.4,0,.2,1)}.chevron.collapsed{transform:rotate(-90deg)}.section-title{font-weight:500;color:var(--text)}.section-count{color:var(--muted);margin-left:4px}.add-task-bottom{margin-top:18px;display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--border);border-radius:22px;padding:6px 10px 6px 14px;max-width:460px}.add-task-bottom .plus{color:var(--accent);font-size:18px;line-height:1;width:18px;text-align:center}.add-task-bottom input{flex:1;background:none;border:none;padding:8px 4px}.add-task-bottom input:focus{border:none}.row{padding:9px 10px}.row-title{font-size:14.5px}.editor-summary{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;padding:0 2px}.editor-summary .sum{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:13px}.editor-summary .sum .dot{width:8px;height:8px;border-radius:50%}.editor-summary .sum.sum-tag{color:var(--accent)}.editor-summary .sum.deadline{color:var(--warn)}.checklist-inline{display:flex;flex-direction:column;gap:4px}.cl-item{display:flex;align-items:center;gap:8px;padding:2px 0}.cl-item span{flex:1}.cl-item span.done{color:var(--muted);text-decoration:line-through}.cl-add input{width:100%;background:none;border:1px dashed var(--border)}.cl-item:hover .del{opacity:1}.editor-toolbar{display:flex;align-items:center;gap:2px;padding-top:6px;border-top:1px solid var(--border)}.editor-toolbar .spacer{flex:1}.icon-btn{background:none;border:1px solid transparent;color:var(--muted);width:30px;height:30px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;font-size:15px;line-height:1}.icon-btn{transition:background-color .12s ease-out,color .12s ease-out,transform 90ms ease-out}.icon-btn:hover{background:var(--panel2);color:var(--text)}.icon-btn:active{transform:scale(.92)}.icon-btn.active{color:var(--accent);background:var(--accent-tint);border-color:var(--accent)}.icon-btn.danger{color:var(--danger);font-size:18px}.icon-btn.danger:hover{background:#ef44441f}.pop{z-index:500;min-width:220px;max-width:360px;max-height:80vh;overflow-x:hidden;overflow-y:auto;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:8px;box-shadow:var(--shadow);transform-origin:top left;animation:pop-in .13s cubic-bezier(.2,.7,.3,1) both}@keyframes pop-in{0%{opacity:0;transform:scale(.96) translateY(-3px)}to{opacity:1;transform:scale(1) translateY(0)}}.mobile-topbar,.mobile-tabbar,.sidebar-backdrop{display:none}@media (max-width: 768px){.sidebar{display:none;position:fixed;top:0;right:0;bottom:0;width:280px;max-width:88vw;z-index:200;box-shadow:-8px 0 32px #00000073;padding-top:max(12px,env(safe-area-inset-top));padding-bottom:max(12px,env(safe-area-inset-bottom))}.sidebar.open{display:flex;animation:drawer-in .18s cubic-bezier(.2,.7,.3,1) both}@keyframes drawer-in{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:150;animation:backdrop-fade .2s ease-out both}@keyframes backdrop-fade{0%{opacity:0}to{opacity:1}}.main{padding:0 14px;padding-bottom:calc(78px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch;display:flex;flex-direction:column}.mobile-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:50;margin:0 -14px 8px;padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top));background:var(--bg);border-bottom:1px solid var(--border);min-height:calc(52px + env(safe-area-inset-top))}.mobile-topbar-title{margin:0;font-size:20px;font-weight:700;line-height:1.2;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.mobile-topbar-actions{display:flex;align-items:center;gap:4px}.mobile-topbar-actions button{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text);border-radius:10px;padding:0}.mobile-tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:100;background:var(--panel);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -4px 16px #00000026}.mobile-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:8px 4px 6px;background:transparent;border:none;color:var(--muted);font-size:10.5px;line-height:1.1;-webkit-tap-highlight-color:transparent;min-height:56px;transition:color .12s ease-out}.mobile-tab svg{stroke-width:1.9}.mobile-tab.is-active{color:var(--accent)}.mobile-tab.is-active svg{stroke-width:2.4}.mobile-tab:active{background:var(--accent-tint)}.view-title{display:none}.search-bar input{font-size:16px}.row{padding:13px 10px}.check{width:24px;height:24px}.task-sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:var(--bg);display:flex;flex-direction:column;animation:sheet-up .24s cubic-bezier(.2,.7,.3,1) both}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.task-sheet-header{display:flex;align-items:center;gap:10px;padding:10px 12px;padding-top:calc(10px + env(safe-area-inset-top));border-bottom:1px solid var(--border);background:var(--bg);min-height:calc(52px + env(safe-area-inset-top))}.task-sheet-close{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text);border-radius:10px;padding:0;-webkit-tap-highlight-color:transparent}.task-sheet-close:active{background:var(--panel)}.task-sheet-title{margin:0;flex:1;min-width:0;font-size:16px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-sheet-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 14px calc(28px + env(safe-area-inset-bottom))}.task-sheet-body .editor{border:none;padding:0;background:transparent}.task-sheet-body .editor-actions button{min-width:40px;min-height:40px;padding:8px 10px}.task-sheet-body .editor-toolbar button{min-width:36px;min-height:36px}.update-banner{bottom:calc(76px + env(safe-area-inset-bottom))}.cal-agenda+.cal-unsched,.cal-mobile-agenda+.cal-unsched{display:none}.cal-modes{display:none!important}.cal-mobile-agenda{flex:1;min-width:0;min-height:100%;display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;touch-action:pan-y}.cal-day-pane{flex:1;min-height:0;display:flex;flex-direction:column;will-change:transform}.cal-week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;list-style:none;margin:0 0 14px;padding:4px 0 0}.cal-day-cell{width:100%;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0 8px;background:transparent;border:none;border-radius:12px;color:var(--text);-webkit-tap-highlight-color:transparent;position:relative;transition:background .12s ease-out}.cal-day-cell .dow{font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.cal-day-cell .num{font-size:18px;font-weight:500;line-height:1;margin-top:2px}.cal-day-cell .dot{width:5px;height:5px;border-radius:50%;background:var(--accent);margin-top:4px}.cal-day-cell.today .num{color:var(--accent);font-weight:700}.cal-day-cell.focused{background:var(--accent);color:var(--on-accent)}.cal-day-cell.focused .dow{color:var(--on-accent);opacity:.8}.cal-day-cell.focused .num{color:var(--on-accent)}.cal-day-cell.focused .dot{background:var(--on-accent)}.cal-day-cell.empty .num{color:var(--muted)}.cal-day-cell.focused.empty .num{color:var(--on-accent)}.cal-day-title{margin:0 0 10px;font-size:14px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--muted)}.cal-day-title.today{color:var(--accent)}.cal-compose{position:sticky;bottom:calc(8px + env(safe-area-inset-bottom));margin-top:12px;padding:10px 14px;background:var(--panel);border:1px solid var(--accent);border-radius:12px;box-shadow:0 4px 14px #00000040}.cal-compose input{width:100%;background:transparent;border:none;outline:none;color:var(--text);font-size:15px;padding:0}.bottom-bar .add-task-bottom{display:none}.mobile-fab{position:fixed;right:18px;bottom:calc(72px + env(safe-area-inset-bottom));width:56px;height:56px;border-radius:50%;background:var(--accent);color:var(--on-accent);border:none;box-shadow:0 6px 16px #00000059,0 2px 4px #00000040;display:inline-flex;align-items:center;justify-content:center;z-index:90;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .12s ease-out}.mobile-fab:active{transform:scale(.96)}.mobile-fab svg{stroke-width:2.4}.auth-screen{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:0}.auth-card{width:100%;max-width:none;height:100%;background:var(--bg);border:none;border-radius:0;padding:32px 22px;padding-top:max(48px,env(safe-area-inset-top));padding-bottom:max(28px,env(safe-area-inset-bottom));gap:14px}.auth-brand{margin:16px 0 28px;gap:12px}.auth-card h1{font-size:26px}.auth-card input{padding:14px;font-size:16px;border-radius:10px;border:1px solid var(--border);background:var(--panel);min-height:48px}.auth-card input:focus{border-color:var(--accent)}.auth-card button[type=submit]{padding:14px;font-size:16px;border-radius:10px;min-height:50px;margin-top:6px}.auth-card .link{font-size:14.5px;padding:10px;-webkit-tap-highlight-color:transparent}.auth-sub{font-size:15px;margin:-8px 0 4px}.settings-overlay{padding:0;align-items:stretch}.settings-card{width:100%;max-width:none;max-height:none;height:100%;border-radius:0;border:none;animation:sheet-up .22s cubic-bezier(.2,.7,.3,1) both}.settings-header{padding-top:calc(14px + env(safe-area-inset-top));min-height:calc(54px + env(safe-area-inset-top))}.settings-body{padding-bottom:calc(20px + env(safe-area-inset-bottom))}.settings-section{padding:14px 18px}.settings-row{padding:12px 0}.settings-row-text>span{font-size:15px}.settings-row-text>small{font-size:12.5px}.settings-primary,.settings-danger{padding:10px 16px}.editor-toolbar{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;padding-bottom:6px}.editor-toolbar::-webkit-scrollbar{height:4px}.editor-toolbar::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.editor{padding:14px 8px 14px 12px;gap:12px}.editor-grid{grid-template-columns:1fr 1fr}.compose,.add-task-bottom{max-width:none}.cal-header{grid-template-columns:1fr auto;gap:14px;align-items:center;margin-bottom:10px}.cal-month{font-size:18px;text-transform:capitalize;overflow:visible!important;text-overflow:clip!important}.cal-mode{padding:6px 10px;font-size:12px}.cal-nav{justify-self:end;gap:6px}.cal-nav .cal-today{font-size:12px;padding:6px 10px}.cal-body{flex-direction:column}.cal-unsched{width:100%;max-height:220px;margin-top:8px}.cal-cell{min-height:62px;padding:3px 4px}.cal-date{width:18px;height:18px;font-size:11px}.cal-cell.today .cal-date{width:20px;height:20px;font-size:11px}.cal-cell-tasks{gap:1px}.cal-chip{padding:1px 4px;font-size:10.5px}.cal-timed-body{font-size:11px}.cal-time-axis{font-size:10px}.pop{max-width:90vw;min-width:240px}.sidebar{width:280px}.sidebar .nav-item{padding:9px 10px;font-size:14px}.row-wrap[draggable=true]{cursor:default}}.note-editor{display:flex;flex-direction:column;gap:6px}.rich-note{min-height:64px;padding:9px 12px;background:var(--panel2);border:1px solid var(--border);border-radius:6px;outline:none;line-height:1.55;font-size:13.5px;word-wrap:break-word;transition:border-color .12s ease-out}.rich-note:focus{border-color:var(--accent)}.rich-note.is-empty:before{content:attr(data-placeholder);color:var(--muted);pointer-events:none}.rich-note>*:first-child{margin-top:0}.rich-note>*:last-child{margin-bottom:0}.rich-note p{margin:0 0 6px}.rich-note h1,.rich-note h2,.rich-note h3{margin:8px 0 4px;font-size:15px}.rich-note h1{font-size:17px}.rich-note ul,.rich-note ol{margin:4px 0;padding-left:22px}.rich-note code{background:var(--panel);padding:1px 5px;border-radius:4px;font-size:92%}.rich-note pre{background:var(--panel);padding:8px 10px;border-radius:6px;overflow-x:auto}.rich-note blockquote{border-left:3px solid var(--border);margin:6px 0;padding:2px 12px;color:var(--muted)}.rich-note a{color:var(--accent)}.compose{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;background:var(--panel);border:1px solid var(--accent);border-radius:12px;padding:8px 14px;max-width:640px;transition:border-color .12s ease-out}.compose-input{width:100%;background:none;border:none;outline:none;resize:none;overflow:hidden;padding:4px 0;font:inherit;font-size:14px;color:var(--text);line-height:1.45}.compose-input::placeholder{color:var(--muted)}.compose-hint{font-size:11px;color:var(--muted)}.calendar{display:flex;flex-direction:column;flex:1;min-height:0;max-width:none}.cal-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;margin-bottom:14px;padding-right:4px}.cal-month{margin:0;font-size:22px;font-weight:600;text-transform:capitalize;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-nav{display:flex;align-items:center;gap:4px}.cal-today{background:var(--panel2);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:5px 12px;font-size:13px;transition:background-color .12s,border-color .12s}.cal-today:hover{background:var(--panel);border-color:var(--muted)}.cal-body{display:flex;gap:14px;flex:1;min-height:0}.cal-agenda{flex:1;min-width:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:4px 2px 12px}.agenda-day{margin:0 0 16px}.agenda-day .agenda-date{margin:0 0 8px;font-size:13px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--muted)}.agenda-day.today .agenda-date{color:var(--accent)}.agenda-empty{font-size:13px;padding:4px 2px}.agenda-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.agenda-item{display:flex;gap:10px;align-items:stretch;padding:10px 12px 10px 8px;background:var(--panel);border:1px solid var(--border);border-radius:10px;cursor:pointer;-webkit-tap-highlight-color:transparent}.agenda-item:active{background:var(--panel2)}.agenda-item.done .agenda-title{color:var(--muted);text-decoration:line-through}.agenda-bar{width:3px;min-height:100%;border-radius:2px;flex:none}.agenda-body{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.agenda-title{font-size:14.5px;line-height:1.3;display:flex;align-items:baseline;gap:6px;overflow-wrap:anywhere}.agenda-time{font-size:12px}.cal-grid{flex:1;min-width:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:8px;overflow:hidden}.cal-dow{background:var(--panel);padding:6px 8px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.cal-cell{background:var(--bg);padding:4px 6px 6px;display:flex;flex-direction:column;gap:3px;min-height:88px;min-width:0;transition:background-color .12s}.cal-cell.other{background:var(--panel)}.cal-cell.other .cal-date{color:var(--muted);opacity:.6}.cal-cell.drop-over{background:var(--accent-tint);outline:2px solid var(--accent);outline-offset:-2px}.cal-date{font-size:12px;color:var(--text);align-self:flex-end;font-variant-numeric:tabular-nums;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%}.cal-cell.today .cal-date{background:var(--accent);color:var(--on-accent);font-weight:600}.cal-cell-tasks{display:flex;flex-direction:column;gap:2px;overflow:hidden;min-width:0}.cal-chip{display:flex;align-items:center;gap:4px;background:var(--panel);padding:2px 6px;border-radius:4px;font-size:11.5px;cursor:grab;border-left:3px solid var(--muted);white-space:nowrap;overflow:hidden;max-width:100%;min-width:0;transition:background-color .12s,transform 80ms}.cal-chip:hover{background:var(--panel2)}.cal-chip:active{cursor:grabbing}.cal-chip.dragging{opacity:.35}.cal-chip.done{opacity:.55;text-decoration:line-through;text-decoration-color:var(--muted)}.cal-chip.done .cal-time,.cal-chip.done .cal-title{color:var(--muted)}.cal-chip .prio-dot{flex-shrink:0}.cal-chip .cal-time{color:var(--accent);font-variant-numeric:tabular-nums;flex-shrink:0}.cal-chip .cal-title{overflow:hidden;text-overflow:ellipsis;min-width:0}.cal-more{font-size:11px;color:var(--muted);padding:0 4px}.cal-unsched{width:260px;flex-shrink:0;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:6px;overflow-y:auto;transition:background-color .12s,outline-color .12s}.cal-unsched.drop-over{background:var(--accent-tint);outline:2px solid var(--accent);outline-offset:-2px}.cal-unsched-head{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding-bottom:6px;border-bottom:1px solid var(--border);margin-bottom:2px}.cal-unsched-empty{padding:16px 6px;font-size:12.5px;text-align:center;line-height:1.5}.cal-unsched .cal-chip{font-size:12.5px;padding:5px 8px}@media (max-width: 900px){.cal-unsched{width:200px}}.cal-modes{display:flex;gap:2px;background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:2px;justify-self:center}.cal-nav{justify-self:end}.cal-mode{background:none;border:none;color:var(--muted);padding:5px 10px;border-radius:6px;font-size:13px;cursor:pointer;transition:background-color .12s,color .12s}.cal-mode:hover{color:var(--text)}.cal-mode.active{background:var(--accent-d);color:var(--on-accent)}.cal-timed{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--bg);border:1px solid var(--border);border-radius:8px;overflow:hidden}.cal-timed-head{display:grid;background:var(--panel);border-bottom:1px solid var(--border);overflow-y:auto;scrollbar-gutter:stable}.cal-time-axis-spacer{border-right:1px solid var(--border)}.cal-day-head{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 6px;font-size:12px;color:var(--muted);border-left:1px solid var(--border)}.cal-day-head .dow{text-transform:uppercase}.cal-day-head .day-num{font-size:16px;color:var(--text);font-weight:600;min-width:22px;text-align:center}.cal-day-head.today .day-num{background:var(--accent);color:var(--on-accent);border-radius:50%;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center}.cal-allday{display:grid;border-bottom:1px solid var(--border);min-height:38px;max-height:96px;overflow-y:auto;scrollbar-gutter:stable}.cal-allday-label{font-size:11px;color:var(--muted);display:flex;align-items:center;justify-content:center;border-right:1px solid var(--border)}.cal-allday-cell{padding:4px;border-left:1px solid var(--border);display:flex;flex-direction:column;gap:2px;min-width:0}.cal-allday-cell .cal-chip{font-size:11.5px}.cal-timed-body{display:grid;flex:1;min-height:0;overflow-y:auto;background:var(--bg);scrollbar-gutter:stable}.cal-time-axis{position:relative;background:var(--panel);border-right:1px solid var(--border);color:var(--muted);font-size:11px}.cal-hour-label{display:flex;align-items:flex-start;justify-content:center;padding-top:2px;border-top:1px solid var(--border)}.cal-hour-label:first-child{border-top:none}.cal-day-col{position:relative;border-left:1px solid var(--border);min-height:1056px;min-width:0}.cal-hour-line{position:absolute;left:0;right:0;height:0;border-top:1px solid var(--border);opacity:.55;pointer-events:none}.cal-timed-task{position:absolute;left:3px;right:3px;background:var(--panel2);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:4px;padding:3px 6px 4px;font-size:11.5px;overflow:hidden;cursor:grab;display:flex;flex-direction:column;gap:2px;-webkit-user-select:none;user-select:none;min-height:18px}.cal-timed-task.compact{padding:1px 6px;font-size:10.5px;gap:0}.cal-timed-task.compact .cal-tt-body{flex-direction:row;align-items:baseline;gap:6px;line-height:1.1}.cal-timed-task.compact .cal-tt-time{flex-shrink:0}.cal-timed-task.compact .t-sep,.cal-timed-task.compact .t-end{display:none}.cal-timed-task.compact .cal-tt-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);opacity:.85}.cal-timed-task:hover{background:var(--panel)}.cal-timed-task.dragging{opacity:.4}.cal-timed-task.done{opacity:.55;background:var(--panel);text-decoration:line-through;text-decoration-color:var(--muted)}.cal-timed-task.done .cal-tt-title{color:var(--muted)}.cal-tt-handle{position:absolute;left:0;right:0;height:6px;cursor:ns-resize;z-index:2}.cal-tt-handle.top{top:-3px}.cal-tt-handle.bottom{bottom:-3px}.cal-tt-handle:hover{background:var(--accent);opacity:.35}.cal-tt-body{display:flex;flex-direction:column;gap:1px;pointer-events:none;min-width:0}.cal-tt-time{font-variant-numeric:tabular-nums;color:var(--accent);display:flex;align-items:center;gap:4px}.cal-tt-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-timed-ghost{position:absolute;left:3px;right:3px;background:var(--accent-tint);border:1px dashed var(--accent);border-radius:4px;pointer-events:none}.md-toolbar{display:flex;align-items:center;gap:2px;flex-wrap:wrap;background:var(--panel2);border:1px solid var(--border);border-radius:6px;padding:3px}.md-toolbar button{background:none;border:none;color:var(--muted);width:26px;height:26px;padding:0;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;font-size:13px;cursor:pointer;transition:background-color .11s ease-out,color .11s ease-out}.md-toolbar button:hover{background:var(--panel);color:var(--text)}.md-toolbar button b,.md-toolbar button i,.md-toolbar button s{font-style:normal}.md-toolbar button b{font-weight:700}.md-toolbar button i{font-style:italic;font-family:serif}.md-toolbar button s{text-decoration:line-through}.md-sep{width:1px;height:18px;background:var(--border);margin:0 4px}.md-preview{background:var(--panel2);border:1px solid var(--border);border-radius:6px;padding:10px 14px;font-size:13.5px;line-height:1.55}.md-preview>*:first-child{margin-top:0}.md-preview>*:last-child{margin-bottom:0}.md-preview h1,.md-preview h2,.md-preview h3{font-size:15px;margin:10px 0 6px}.md-preview h1{font-size:17px}.md-preview p{margin:0 0 8px}.md-preview ul,.md-preview ol{margin:0 0 8px;padding-left:22px}.md-preview code{background:var(--panel);padding:1px 5px;border-radius:4px;font-size:90%}.md-preview pre{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:10px 12px;overflow-x:auto;margin:8px 0}.md-preview pre code{background:none;padding:0}.md-preview a{color:var(--accent)}.md-preview blockquote{border-left:3px solid var(--border);margin:6px 0;padding:2px 12px;color:var(--muted)}.md-preview hr{border:0;border-top:1px solid var(--border);margin:12px 0}.md-preview img{max-width:100%;height:auto;border-radius:4px}.attachments{display:flex;flex-direction:column;gap:6px}.attachment-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.attachment-list li{display:flex;align-items:center;gap:8px;padding:4px 8px;border:1px solid var(--border);border-radius:6px;background:var(--panel2)}.attachment-list a{color:var(--text);text-decoration:none;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attachment-list a:hover{color:var(--accent)}.attachment-list li:hover .del{opacity:1}.attachment-add{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px dashed var(--border);border-radius:6px;color:var(--muted);cursor:pointer;font-size:13px;align-self:flex-start;transition:color .12s ease-out,border-color .12s ease-out}.attachment-add:hover{color:var(--text);border-color:var(--muted)}.attachment-add input{display:none}.upload-error{color:var(--danger);font-size:12px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.pop-list{display:flex;flex-direction:column;gap:1px}.pop-item{display:flex;align-items:center;gap:8px;background:none;border:none;color:var(--text);text-align:left;padding:7px 8px;border-radius:6px;width:100%;font-size:13.5px}.pop-item:hover{background:var(--panel2)}.pop-item.active{background:var(--accent-tint);color:var(--accent)}.pop-item .dot{width:9px;height:9px;border-radius:50%}.pop-grid{display:flex;flex-direction:column;gap:8px;min-width:200px}.pop-grid label{display:flex;flex-direction:column;gap:4px}.pop-grid label>span{font-size:12px;color:var(--muted)}.pop-chips{display:flex;flex-wrap:wrap;gap:6px;max-width:280px}.pop-clear{background:none;border:1px solid var(--border);color:var(--muted);border-radius:6px;padding:5px 8px}.pop-clear:hover{color:var(--text)}body{font-size:13.5px;line-height:1.5;-webkit-font-smoothing:antialiased}.view-title{font-weight:600;font-size:22px;margin-bottom:18px}.sidebar{padding-top:16px}.nav-item{font-size:13.5px;padding:6px 8px}.brand{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:600;letter-spacing:.01em;padding:0 4px 18px}.brand .logo{color:inherit;flex-shrink:0}.brand .brand-theme{margin-left:auto}.icon{display:inline-block;vertical-align:-2px;flex-shrink:0}.row-meta .icon{vertical-align:-2px}.sum .icon,.nav-item .icon{vertical-align:-3px}.editor-toolbar .icon-btn .icon{vertical-align:0}.section-head .chevron{display:inline-flex;align-items:center;width:14px}.row-meta .meta-prio{display:inline-flex;align-items:center}.row-meta .meta-i,.row-meta .deadline{display:inline-flex;align-items:center;gap:3px}.row-wrap[draggable=true]{cursor:grab}.row-wrap.dragging{opacity:.35;cursor:grabbing}.row-wrap.drop-before{box-shadow:inset 0 2px 0 0 var(--accent)}.row-wrap.drop-after{box-shadow:inset 0 -2px 0 0 var(--accent)}.bottom-bar{margin-top:18px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.add-task-bottom{margin-top:0}.quick-actions{display:inline-flex;align-items:center;gap:2px;background:var(--panel);border:1px solid var(--border);border-radius:22px;padding:4px 6px}.quick-actions .icon-btn{width:28px;height:28px}.editor-toolbar{gap:4px;padding-top:8px}.editor-toolbar .icon-btn{width:32px;height:32px}.proj-row{display:flex;align-items:center;gap:2px}.proj-row .nav-item{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.proj-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.proj-emoji{line-height:1}.tree-toggle,.tree-toggle-spacer{width:18px;height:18px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.tree-toggle{background:none;border:none;color:var(--muted);border-radius:4px;padding:0}.tree-toggle:hover{color:var(--text);background:var(--panel2)}.row-action{background:none;border:none;color:var(--muted);width:24px;height:24px;border-radius:4px;padding:0;display:inline-flex;align-items:center;justify-content:center;opacity:0;flex-shrink:0}.nav-row:hover .row-action,.row-action.active{opacity:1}.row-action:hover{background:var(--panel2);color:var(--text)}.proj-menu{width:240px;display:flex;flex-direction:column;gap:8px}.proj-menu-field{display:flex;flex-direction:column;gap:4px}.proj-menu-field>span,.proj-menu-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.color-swatches{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.swatch{width:26px;height:26px;border-radius:50%;border:2px solid transparent;cursor:pointer;padding:0}.swatch.on{border-color:var(--text);box-shadow:0 0 0 1px var(--bg) inset}.swatch-clear{background:var(--panel2)!important;color:var(--muted);display:inline-flex;align-items:center;justify-content:center}.proj-menu-item{display:flex;align-items:center;gap:8px;background:none;border:1px solid var(--border);color:var(--text);padding:8px 10px;border-radius:6px;text-align:left;font-size:13px}.proj-menu-item:hover{background:var(--panel2)}.proj-menu-item.danger{color:var(--danger);border-color:#ef44444d}.proj-menu-item.danger:hover{background:#ef444414}.icon-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:4px}.icon-pick{width:100%;aspect-ratio:1 / 1;padding:0;min-width:0;background:var(--panel2);border:1px solid var(--border);color:var(--muted);border-radius:6px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.icon-pick:hover{background:var(--panel);color:var(--text);border-color:var(--muted)}.icon-pick.on{background:var(--bg);border-color:var(--text)}.proj-icon,.proj-emoji{display:inline-flex;align-items:center}.detail{width:360px;flex-shrink:0;background:var(--panel);border-left:1px solid var(--border);padding:16px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.detail-head{display:flex;justify-content:space-between;align-items:center}.check-lg{background:var(--panel2);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:6px 10px}.close{background:none;border:none;color:var(--muted);font-size:22px;line-height:1}.detail-title{font-size:17px;font-weight:600}.detail-note{min-height:70px;resize:vertical}.field{display:flex;flex-direction:column;gap:4px}.field>span{font-size:12px;color:var(--muted)}.field-row{display:flex;gap:10px}.field-row .field{flex:1}.check-line{display:flex;align-items:center;gap:8px;color:var(--text)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{background:var(--panel2);border:1px solid var(--border);color:var(--muted);border-radius:14px;padding:4px 10px}.chip.on{background:var(--accent-d);color:var(--on-accent);border-color:var(--accent-d);font-weight:600}.muted{color:var(--muted)}.checklist{list-style:none;margin:0 0 6px;padding:0;display:flex;flex-direction:column;gap:4px}.checklist li{display:flex;align-items:center;gap:8px}.checklist li span{flex:1}.checklist li span.done{color:var(--muted);text-decoration:line-through}.detail-actions{display:flex;gap:8px;margin-top:8px}.detail-actions button{flex:1;background:var(--panel2);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:8px}.detail-actions .danger{color:var(--danger);border-color:var(--danger)}.brand-planet{background:none;border:none;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:var(--accent-d);transition:color .25s ease,filter .25s ease}.brand-planet:hover{filter:brightness(1.15)}.brand-planet:focus-visible{outline:2px solid currentColor;outline-offset:2px}.brand[data-sync=idle] .brand-planet{color:var(--accent)}.brand[data-sync=syncing] .brand-planet{color:var(--warn);animation:brand-pulse 1s ease-in-out infinite}.brand[data-sync=offline] .brand-planet{color:var(--danger)}.brand[data-sync=error] .brand-planet{color:var(--danger);animation:brand-pulse 2s ease-in-out infinite}@keyframes brand-pulse{0%,to{filter:drop-shadow(0 0 0 transparent);opacity:1}50%{filter:drop-shadow(0 0 4px currentColor);opacity:.65}}.member-list{list-style:none;margin:0 0 6px;padding:0;display:flex;flex-direction:column;gap:4px}.member-row{display:flex;align-items:center;gap:8px;padding:4px 6px;background:var(--panel2);border:1px solid var(--border);border-radius:6px;font-size:12px}.member-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-role{font-size:11px;padding:1px 6px;border-radius:999px;background:var(--panel);color:var(--muted);border:1px solid var(--border)}.member-role.role-owner{color:var(--accent-d);border-color:#2dd4bf59}.member-empty{padding:4px 6px;font-size:12px}.invite-row{display:flex;gap:4px;margin-bottom:6px}.invite-row input{flex:1;min-width:0}.invite-row button{background:var(--panel2);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:4px 8px;cursor:pointer}.invite-row button:disabled{opacity:.5;cursor:not-allowed}.invite-error{color:var(--danger);font-size:11px;padding:2px 4px 6px}.proj-shared{display:inline-flex;align-items:center;margin-left:6px;color:var(--muted)}.proj-shared svg{opacity:.65}.push-toggle{padding:6px 10px 4px;border-top:1px solid var(--border)}.push-btn{width:100%;display:flex;align-items:center;gap:8px;padding:6px 8px;background:var(--panel2);border:1px solid var(--border);color:var(--muted);border-radius:6px;font-size:12px;text-align:left;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.push-btn:hover:not(:disabled){background:var(--panel);color:var(--text);border-color:var(--muted)}.push-btn.on{background:var(--accent-tint);color:var(--accent-d);border-color:#2dd4bf59}.push-btn.denied{color:var(--danger);border-color:#ef444459;cursor:not-allowed}.push-btn:disabled{opacity:.7}.push-error{color:var(--danger);font-size:11px;padding:2px 2px 4px}.install-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:install-fade .2s ease-out}@keyframes install-fade{0%{opacity:0}to{opacity:1}}.install-card{position:relative;width:min(440px,calc(100vw - 32px));background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:26px 24px 20px;box-shadow:var(--shadow);display:flex;flex-direction:column;align-items:center;gap:10px;animation:install-rise .22s cubic-bezier(.2,.7,.3,1.1)}@keyframes install-rise{0%{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}.install-close{position:absolute;top:8px;right:8px;background:none;border:none;color:var(--muted);width:28px;height:28px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.install-close:hover{background:var(--panel2);color:var(--text)}.install-logo{padding:4px 0 2px}.install-card h2{margin:0;font-size:19px;font-weight:600;color:var(--text);text-align:center}.install-sub{margin:0 0 4px;font-size:13px;color:var(--muted);text-align:center;line-height:1.45}.install-ios{list-style:decimal;padding-left:22px;margin:4px 0 6px;color:var(--muted);font-size:13px;line-height:1.6;align-self:stretch}.install-ios li strong{color:var(--text);font-weight:600}.install-key{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:5px;background:var(--panel2);border:1px solid var(--border);color:var(--text);vertical-align:-5px}.install-btn{width:100%;padding:10px 14px;background:var(--panel2);border:1px solid var(--border);color:var(--text);border-radius:8px;font-size:14px;cursor:pointer;transition:background .12s,border-color .12s}.install-btn:hover{background:var(--panel);border-color:var(--muted)}.install-btn.primary{background:var(--accent-d);border-color:var(--accent-d);color:var(--on-accent);font-weight:600}.install-btn.primary:hover{background:var(--accent);border-color:var(--accent)}.install-btn.link{background:none;border:none;color:var(--muted);padding:6px 10px;font-size:13px}.install-btn.link:hover{color:var(--text);background:none}@media (max-width: 480px){.install-card{padding:22px 18px 16px}.install-card h2{font-size:17px}}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-weight:600;letter-spacing:-.02em;font-family:inherit;flex-shrink:0;-webkit-user-select:none;user-select:none;vertical-align:middle}.avatar.ringed{box-shadow:0 0 0 2px var(--panel)}.meta-assignee{display:inline-flex;align-items:center}.comments{display:flex;flex-direction:column;gap:8px;padding-top:4px}.comments-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.comment-row{display:flex;gap:10px;align-items:flex-start}.comment-body{flex:1;min-width:0}.comment-head{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin-bottom:2px}.comment-author{color:var(--text);font-weight:600}.comment-time{font-variant-numeric:tabular-nums}.comment-del{background:none;border:none;color:var(--muted);padding:0;margin-left:auto;border-radius:4px;opacity:0}.comment-row:hover .comment-del{opacity:1}.comment-del:hover{color:var(--danger);background:var(--panel2)}.comment-text{white-space:pre-wrap;word-break:break-word;font-size:13.5px}.comment-compose{display:flex;align-items:flex-end;gap:6px;margin-top:4px}.comment-compose textarea{flex:1;min-height:32px;max-height:240px;resize:none;overflow-y:auto;background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:6px 10px;font-family:inherit;font-size:13px;color:var(--text)}.comment-send{background:var(--accent-d);border:none;color:var(--on-accent);border-radius:8px;padding:8px 10px;display:inline-flex;align-items:center;justify-content:center}.comment-send:disabled{opacity:.4;cursor:not-allowed}.comment-send:hover:not(:disabled){background:var(--accent)}.proj-menu-tabs{display:flex;gap:4px;margin:6px 0;border-bottom:1px solid var(--border)}.proj-menu-tabs .tab{background:none;border:none;color:var(--muted);padding:6px 8px;border-radius:6px 6px 0 0;font-size:12px;cursor:pointer;border-bottom:2px solid transparent}.proj-menu-tabs .tab:hover{color:var(--text)}.proj-menu-tabs .tab.on{color:var(--text);border-bottom-color:var(--accent-d);font-weight:600}.activity-feed{max-height:280px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding:4px 0}.activity-row{display:flex;gap:8px;align-items:flex-start;font-size:12.5px}.activity-text{flex:1;min-width:0}.activity-line{color:var(--text);line-height:1.35;word-break:break-word}.activity-time{color:var(--muted);font-size:11px;margin-top:1px}.task-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;animation:tm-fade .15s ease-out;overflow-y:auto}@keyframes tm-fade{0%{opacity:0}to{opacity:1}}.task-modal-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;width:min(720px,100%);max-width:100%;box-shadow:var(--shadow);display:flex;flex-direction:column;animation:tm-rise .18s cubic-bezier(.2,.7,.3,1.05)}@keyframes tm-rise{0%{transform:translateY(6px);opacity:0}to{transform:none;opacity:1}}.task-modal-head{display:flex;align-items:center;gap:8px;padding:14px 14px 10px;border-bottom:1px solid var(--border)}.task-modal-title{flex:1;min-width:0;font-size:16px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-modal-close{background:none;border:none;color:var(--muted);width:30px;height:30px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.task-modal-close:hover{background:var(--panel2);color:var(--text)}.task-modal-body{padding:6px 14px 14px}.task-modal-body .editor{padding-left:0;padding-right:0;border-top:none;margin-top:0}@media (max-width: 540px){.task-modal{padding:12px 8px}.task-modal-card{border-radius:10px}.task-modal-body{padding:6px 10px 12px}}.auth-info{background:var(--accent-tint);color:var(--accent-d);border:1px solid rgba(45,212,191,.35);padding:8px 10px;border-radius:6px;font-size:13px;line-height:1.4}.settings-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:16px;animation:backdrop-fade .16s ease-out both}.settings-card{width:100%;max-width:480px;max-height:calc(100vh - 32px);background:var(--bg);border:1px solid var(--border);border-radius:14px;box-shadow:0 18px 48px #0000008c;display:flex;flex-direction:column;overflow:hidden;animation:settings-pop .18s cubic-bezier(.2,.7,.3,1) both}@keyframes settings-pop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.settings-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border)}.settings-header h2{margin:0;font-size:18px;font-weight:600}.settings-close{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text);border-radius:8px;padding:0}.settings-close:hover{background:var(--panel)}.settings-body{padding:8px 4px 16px;overflow-y:auto}.settings-section{padding:12px 18px}.settings-section+.settings-section{border-top:1px solid var(--border)}.settings-section-title{margin:0 0 10px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 0}.settings-row+.settings-row{border-top:1px solid var(--border)}.settings-row-stack{flex-direction:column;align-items:flex-start;gap:8px}.settings-row-label{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.settings-row-label>svg{flex-shrink:0;color:var(--muted)}.settings-row-text{display:flex;flex-direction:column;gap:1px;min-width:0}.settings-row-text>span{font-size:14px}.settings-row-text>small{font-size:12px;line-height:1.3}.settings-error{margin-top:8px;color:var(--danger);font-size:12.5px}.settings-hint{margin:8px 0 0;color:var(--muted);font-size:12.5px;line-height:1.4}.settings-select{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:6px 10px;font-size:13.5px;min-width:220px;max-width:100%}.settings-select:disabled{opacity:.5;cursor:progress}.settings-segmented{display:inline-flex;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:2px;gap:2px}.settings-segmented .seg{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;background:transparent;border:none;border-radius:6px;color:var(--muted);font-size:12.5px;font-weight:500}.settings-segmented .seg.on{background:var(--bg);color:var(--text);box-shadow:0 1px 3px #00000026}.settings-toggle{width:44px;height:26px;border-radius:999px;background:var(--border);border:none;padding:2px;display:inline-flex;align-items:center;cursor:pointer;transition:background .16s ease-out;flex-shrink:0}.settings-toggle.on{background:var(--accent)}.settings-toggle.disabled{opacity:.5;cursor:not-allowed}.settings-toggle-knob{width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000059;transition:transform .18s cubic-bezier(.2,.7,.3,1)}.settings-toggle.on .settings-toggle-knob{transform:translate(18px)}.settings-primary{background:var(--accent);color:var(--on-accent);border:none;border-radius:8px;padding:8px 14px;font-weight:600;flex-shrink:0}.settings-danger{background:transparent;color:var(--danger);border:1px solid var(--danger);border-radius:8px;padding:6px 14px;font-weight:500;flex-shrink:0}.settings-danger:hover{background:#ef444414}.settings-secondary{background:transparent;color:var(--accent);border:1px solid var(--border);border-radius:8px;padding:8px 14px;font-weight:500;align-self:flex-start;margin-top:4px}.settings-secondary:hover{border-color:var(--accent)}.settings-account-name{font-size:15px;font-weight:500}.settings-account-email{font-size:12.5px;margin-top:2px}.settings-ios{margin:4px 0 0;padding-left:22px;font-size:13px;line-height:1.55;color:var(--muted)}.settings-ios li+li{margin-top:4px}.settings-ios strong{color:var(--text);font-weight:600}.settings-section-hint{margin:4px 0 12px;font-size:12.5px;line-height:1.45;color:var(--muted)}.messenger-row .messenger-link{display:inline-block;margin-top:2px;font-size:13px;color:var(--accent);text-decoration:none}.messenger-row .messenger-link:hover{text-decoration:underline}.messenger-code-row{display:flex;align-items:center;gap:6px;margin-top:10px}.messenger-code{flex:1;font:600 18px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:4px;text-align:center;background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;color:var(--text)}.messenger-code.loading{color:var(--muted)}.messenger-action{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:8px;cursor:pointer;flex-shrink:0}.messenger-action:hover:not(:disabled){background:var(--panel2)}.messenger-action:disabled{opacity:.5;cursor:not-allowed}.messenger-action.ok{background:var(--accent);color:var(--on-accent);border-color:transparent}
