:root{color-scheme:light dark;--bg: #ffffff;--bg-sunken: #f7f7f9;--bg-raised: #ffffff;--bg-hover: #f2f3f5;--bg-active: #e9eaee;--overlay: rgb(15 18 25 / 45%);--fg: #14161c;--fg-soft: #4a4f5a;--fg-muted: #8b909b;--line: #e5e6eb;--line-strong: #d3d5dc;--accent: #5b5bd6;--chart-1: #5b5bd6;--chart-2: #10b981;--accent-soft: #eeeefc;--accent-fg: #ffffff;--danger: #dc2626;--warn: #d97706;--ok: #059669;--radius: 10px;--radius-sm: 7px;--radius-lg: 16px;--shadow-sm: 0 1px 2px rgb(15 18 25 / 6%);--shadow: 0 8px 28px -12px rgb(15 18 25 / 22%), 0 1px 2px rgb(15 18 25 / 6%);--sidebar-width: 248px;--header-height: 52px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0e1014;--chart-1: #7a7ae8;--chart-2: #059669;--bg-sunken: #0a0c10;--bg-raised: #15181e;--bg-hover: #1b1f27;--bg-active: #232833;--overlay: rgb(0 0 0 / 60%);--fg: #e8eaef;--fg-soft: #a7adba;--fg-muted: #6f7684;--line: #22262f;--line-strong: #2e333e;--accent: #7c7cf0;--accent-soft: #1d1f3d;--accent-fg: #0b0c10;--shadow-sm: 0 1px 2px rgb(0 0 0 / 40%);--shadow: 0 12px 32px -12px rgb(0 0 0 / 70%), 0 1px 2px rgb(0 0 0 / 40%)}}:root[data-theme=dark]{--bg: #0e1014;--chart-1: #7a7ae8;--chart-2: #059669;--bg-sunken: #0a0c10;--bg-raised: #15181e;--bg-hover: #1b1f27;--bg-active: #232833;--overlay: rgb(0 0 0 / 60%);--fg: #e8eaef;--fg-soft: #a7adba;--fg-muted: #6f7684;--line: #22262f;--line-strong: #2e333e;--accent: #7c7cf0;--accent-soft: #1d1f3d;--accent-fg: #0b0c10;--shadow-sm: 0 1px 2px rgb(0 0 0 / 40%);--shadow: 0 12px 32px -12px rgb(0 0 0 / 70%), 0 1px 2px rgb(0 0 0 / 40%)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior-y:none}button,input,textarea,select{font:inherit;color:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.01em}p{margin:0 0 .75em}::placeholder{color:var(--fg-muted)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:8px;border:3px solid transparent;background-clip:content-box}::-webkit-scrollbar-track{background:transparent}.shell{display:grid;grid-template-columns:1fr;height:100dvh;overflow:hidden}.sidebar{display:none;flex-direction:column;gap:2px;background:var(--bg-sunken);border-inline-end:1px solid var(--line);padding:10px 8px;overflow-y:auto}.main{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--bg)}.content{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-bottom:env(safe-area-inset-bottom)}.header{display:flex;align-items:center;gap:8px;height:var(--header-height);padding:0 10px;padding-top:env(safe-area-inset-top);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:20;flex:none}.header h1{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:72px}.header{overflow-x:auto;scrollbar-width:none}.header::-webkit-scrollbar{display:none}.hide-sm{display:none}@media(min-width:700px){.hide-sm{display:inline}}.only-sm.only-sm{display:inline-flex}@media(min-width:700px){.only-sm.only-sm{display:none}}.not-sm.not-sm{display:none}@media(min-width:700px){.not-sm.not-sm{display:flex}}.header .spacer{flex:1}.tabbar{display:flex;justify-content:space-around;align-items:stretch;border-top:1px solid var(--line);background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding-bottom:env(safe-area-inset-bottom);flex:none}.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 0 7px;font-size:10px;color:var(--fg-muted);position:relative}.tabbar a[aria-current=page]{color:var(--accent)}.tabbar .badge-dot{position:absolute;top:6px;inset-inline-end:50%;margin-inline-end:-14px}@media(min-width:900px){.shell{grid-template-columns:var(--sidebar-width) 1fr}.sidebar{display:flex}.tabbar{display:none}.header{padding:0 16px}}.brand{display:flex;align-items:center;gap:8px;padding:6px 8px 12px;font-weight:650;letter-spacing:-.015em}.brand img{width:22px;height:22px;border-radius:6px}.nav-item{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:var(--radius-sm);color:var(--fg-soft);font-size:13.5px;min-height:34px;cursor:pointer;-webkit-user-select:none;user-select:none;border:none;background:none;width:100%;text-align:left}.nav-item:hover{background:var(--bg-hover);color:var(--fg)}.nav-item[aria-current=page],.nav-item.active{background:var(--bg-active);color:var(--fg);font-weight:550}.nav-item .count{margin-inline-start:auto;font-size:11.5px;color:var(--fg-muted);font-variant-numeric:tabular-nums}.nav-section{display:flex;align-items:center;gap:6px;padding:14px 9px 4px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-muted)}.nav-section button{margin-inline-start:auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 11px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--bg-raised);color:var(--fg);font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .12s ease,border-color .12s ease}.btn:hover{background:var(--bg-hover)}.btn:active{background:var(--bg-active)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{filter:brightness(1.08)}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover{background:var(--bg-hover)}.btn.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,var(--line))}.btn.icon{width:32px;padding:0}.btn.sm{height:27px;font-size:12.5px;padding:0 8px}.btn.lg{height:40px;font-size:14px;padding:0 16px}.btn.block{width:100%}.input,.textarea,.select{width:100%;border:1px solid var(--line-strong);background:var(--bg-raised);border-radius:var(--radius-sm);padding:7px 10px;min-height:34px;font-size:14px}.textarea{min-height:90px;resize:vertical}.input:focus,.textarea:focus,.select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}@media(max-width:899px){.input,.textarea,.select{font-size:16px}}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.field label{font-size:12.5px;font-weight:550;color:var(--fg-soft)}.field .hint{font-size:12px;color:var(--fg-muted)}.hint.warn{color:var(--danger)}.check-row{display:flex;gap:9px;align-items:flex-start;padding:7px 0;font-size:13px;cursor:pointer}.check-row input{margin-top:2px;flex:none}.check-row .hint{display:block;font-size:12px;color:var(--fg-muted);margin-top:1px}.icon-choices{gap:4px;margin-top:2px}.icon-choices .btn{padding:0;width:32px;height:32px;justify-content:center}.dot-modified{width:6px;height:6px;border-radius:50%;background:var(--accent);flex:none;margin-left:1px}.select-box{display:inline-flex;align-items:center;flex:none;padding:2px;margin-inline-end:-2px;cursor:pointer}.select-box input{width:15px;height:15px;cursor:pointer}@media(hover:hover)and (pointer:fine){.task-row .select-box.idle,.task-group .select-box.idle{opacity:0;transition:opacity .12s}.task-row:hover .select-box,.task-group:hover .select-box,.task-row.selected .select-box,.select-box:focus-within{opacity:1}}@media(hover:none){.task-row .select-box.idle,.task-group .select-box.idle{display:none}}.selection-bar{position:fixed;inset-inline:12px;bottom:calc(62px + env(safe-area-inset-bottom));z-index:40;display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--line-strong);border-radius:12px;background:color-mix(in srgb,var(--bg) 94%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 8px 28px #0000001f}.selection-bar .count{font-size:12.5px;font-weight:600;margin-inline-end:4px}@media(max-width:700px){.saved-view-name{max-width:84px}}@media(min-width:900px){.selection-bar{inset-inline:calc(var(--sidebar-width) + 20px) 20px;bottom:18px}}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.task-table{width:100%;border-collapse:collapse;font-size:13px}.task-table th,.task-table td{text-align:start;padding:8px 10px;white-space:nowrap}.task-table thead th{position:sticky;top:0;z-index:1;background:var(--bg);border-bottom:1px solid var(--line-strong);font-size:11.5px;font-weight:600;color:var(--fg-soft)}.task-table tbody tr{border-bottom:1px solid var(--line);cursor:pointer}.task-table tbody tr:hover{background:var(--bg-hover)}.task-table tbody tr.selected{background:var(--accent-soft)}.task-table tbody tr.done .title{color:var(--fg-muted);text-decoration:line-through}.task-table tr.group th{position:static;padding-top:14px;border-bottom:1px solid var(--line);font-size:12px}.task-table tr.group .count{color:var(--fg-muted);font-weight:500;margin-inline-start:6px}.task-table tr.group .state-dot{margin-inline-end:6px;vertical-align:-1px}.task-table .title{white-space:normal;min-width:240px}.task-table .identifier{font-family:var(--mono);font-size:11.5px;color:var(--fg-muted)}.task-table .pick{width:30px}.task-table .custom{max-width:220px;overflow:hidden;text-overflow:ellipsis}.task-table .sort{display:inline-flex;align-items:center;gap:3px;border:none;background:none;padding:0;font:inherit;color:inherit;cursor:pointer}.task-table .sort[aria-pressed=true]{color:var(--fg)}@media(max-width:700px){.task-table .narrow{display:none}}.trash-row{gap:9px;padding:8px 12px;border-bottom:1px solid var(--line);font-size:13px}.trash-row:last-child{border-bottom:none}.import-drop{display:flex;flex-direction:column;align-items:center;gap:6px;padding:30px 18px;border:1px dashed var(--line-strong);border-radius:12px;text-align:center;cursor:pointer}.import-drop:hover{background:var(--bg-hover)}.import-drop input{position:absolute;width:1px;height:1px;opacity:0}.import-drop .hint{max-width:46ch}.import-map,.import-problems{max-height:320px;overflow-y:auto}.import-map>.row{padding:5px 0;border-bottom:1px solid var(--line)}.import-problems>.row{padding:4px 0;border-top:1px solid var(--line)}.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:16px}.stat{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}.stat-label{font-size:12px;color:var(--fg-soft)}.stat-value{font-size:26px;font-weight:620;line-height:1.1;letter-spacing:-.4px}.stat-hint{font-size:11.5px;color:var(--fg-muted)}.chart-title{font-size:14px;margin-bottom:4px}.chart{margin:10px 0 0}.chart figcaption{font-size:11.5px;color:var(--fg-muted);margin-top:8px}.chart-plot{position:relative;display:flex;align-items:flex-end;gap:0}.chart-scale{display:flex;justify-content:space-between;flex-direction:column;float:inline-start;height:150px;margin-inline-end:8px;font-size:11px;color:var(--fg-muted)}.chart-axis{display:flex;margin-top:5px;font-size:11px;color:var(--fg-muted)}.chart-axis span{overflow:hidden;white-space:nowrap}.chart-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--fg-soft);margin-bottom:8px}.chart-legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-inline-end:5px}.col-slot{position:relative;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%}.col-bar{width:100%;max-width:24px;border-radius:4px 4px 0 0;min-height:2px;transition:opacity .12s}.col-slot:hover .col-bar,.col-slot:focus-visible .col-bar{opacity:.8}.col-slot:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.col-value{font-size:11px;color:var(--fg-soft);margin-bottom:3px}.lines-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.lines-svg .grid{stroke:var(--line);stroke-width:1}.lines-svg .crosshair{stroke:var(--line-strong);stroke-width:1}.line-end{position:absolute;transform:translate(6px,-50%);width:9px;height:9px;border-radius:50%;box-shadow:0 0 0 2px var(--bg)}.line-end b{position:absolute;inset-inline-start:13px;top:-6px;font-size:11px;font-weight:600;color:var(--fg-soft)}.chart-tip{position:absolute;bottom:100%;left:50%;transform:translate(-50%,-6px);padding:4px 8px;border-radius:6px;font-size:11.5px;white-space:nowrap;background:var(--fg);color:var(--bg);pointer-events:none;z-index:2}.chart-tip.pinned{bottom:auto;top:0}.gantt{display:flex;flex-direction:column;min-height:0}.gantt-toolbar{padding:0 0 8px;gap:6px}.gantt-scroll{display:flex;overflow:auto;border:1px solid var(--line);border-radius:var(--radius-sm)}.gantt-names{position:sticky;inset-inline-start:0;z-index:2;flex:none;width:210px;background:var(--bg);border-inline-end:1px solid var(--line)}.gantt-head{height:26px;position:relative;border-bottom:1px solid var(--line);background:var(--bg)}.gantt-name{display:flex;align-items:center;gap:6px;height:34px;width:100%;padding:0 10px;border:none;background:none;font:inherit;font-size:12.5px;color:var(--fg);text-align:start;cursor:pointer;overflow:hidden}.gantt-name .truncate{min-width:0}.gantt-name .state-dot{flex:none}.gantt-name:hover{background:var(--bg-hover)}.gantt-plot{position:relative;flex:none}.gantt-month{position:absolute;top:0;height:26px;display:flex;align-items:center;padding-inline-start:6px;font-size:11.5px;color:var(--fg-muted);border-inline-start:1px solid var(--line);white-space:nowrap;overflow:hidden}.gantt-rows{position:relative}.gantt-off{position:absolute;top:0;bottom:0;background:var(--bg-active);opacity:.5;pointer-events:none}.gantt-today{position:absolute;inset-block:0;width:1px;background:var(--accent);opacity:.55;z-index:1}.gantt-links{position:absolute;inset:0;overflow:visible;color:var(--fg-muted);pointer-events:none}.gantt-links .link{fill:none;stroke:var(--fg-muted);stroke-width:1.2;opacity:.65}.gantt-links .link.late{stroke:var(--danger);color:var(--danger);opacity:.9}.gantt-links marker path{fill:currentColor}.gantt-bar{position:absolute;height:18px;border-radius:4px;z-index:1;display:flex;align-items:center;padding:0 6px;background:color-mix(in srgb,var(--chart-1) 82%,transparent);color:#fff;font-size:11px;cursor:grab;touch-action:none;overflow:hidden;box-shadow:0 0 0 2px var(--bg)}.gantt-bar.dragging{cursor:grabbing;opacity:.9}.gantt-bar.done{background:color-mix(in srgb,var(--chart-2) 78%,transparent)}.gantt-bar.late{background:var(--danger)}.gantt-bar:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.gantt-label{pointer-events:none}.gantt-grip{position:absolute;inset-block:0;width:9px;cursor:ew-resize}.gantt-grip.start{inset-inline-start:-2px}.gantt-grip.end{inset-inline-end:-2px}.gantt-plan{position:absolute;height:4px;border-radius:2px;background:color-mix(in srgb,var(--fg-muted) 45%,transparent)}.gantt-undated{margin-top:12px}.wip{font-size:11.5px;color:var(--fg-muted)}.wip.over{color:var(--danger);font-weight:600}.annotatable{position:relative}mark.anchor{background:none;color:inherit;border-bottom:2px solid color-mix(in srgb,var(--accent) 55%,transparent);cursor:pointer;padding-bottom:1px}mark.anchor:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}mark.anchor.active{background:color-mix(in srgb,var(--accent) 18%,transparent);border-radius:2px}.anchor-bubble{position:absolute;transform:translate(-50%,-130%);z-index:5;display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px;border-radius:999px;background:var(--fg);color:var(--bg);border:none;font:inherit;font-size:11.5px;cursor:pointer;white-space:nowrap;box-shadow:var(--shadow)}.quoted{display:inline-flex;align-items:center;gap:5px;max-width:100%;margin:2px 0 6px;padding:3px 8px;border-radius:6px;border:none;background:color-mix(in srgb,var(--accent) 9%,transparent);border-inline-start:2px solid color-mix(in srgb,var(--accent) 55%,transparent);font:inherit;font-size:12px;color:var(--fg-soft);text-align:start;cursor:pointer}.quoted.orphan{background:var(--bg-hover);border-inline-start-color:var(--line-strong);color:var(--fg-muted)}.quoted em{font-style:normal;color:var(--fg-muted)}.quoted-draft{gap:6px;margin-bottom:6px;padding:4px 6px 4px 10px;border-radius:6px;background:color-mix(in srgb,var(--accent) 9%,transparent);border-inline-start:2px solid color-mix(in srgb,var(--accent) 55%,transparent);font-size:12px;color:var(--fg-soft)}.planner-scroll{display:flex;overflow:auto;border:1px solid var(--line);border-radius:var(--radius-sm)}.planner-names{position:sticky;inset-inline-start:0;z-index:2;flex:none;width:180px;background:var(--bg);border-inline-end:1px solid var(--line)}.planner-head{height:24px;position:relative;border-bottom:1px solid var(--line);background:var(--bg)}.planner-name{display:flex;align-items:center;gap:7px;padding:0 10px;font-size:12.5px;overflow:hidden;border-bottom:1px solid var(--line)}.planner-name .truncate{min-width:0;flex:1}.planner-plot{position:relative;flex:none}.planner-week{position:absolute;top:0;height:24px;display:flex;align-items:center;padding-inline-start:5px;font-size:11px;color:var(--fg-muted);border-inline-start:1px solid var(--line);overflow:hidden;white-space:nowrap}.planner-rows{position:relative}.planner-today{position:absolute;inset-block:0;width:1px;background:var(--accent);opacity:.55;z-index:3}.planner-lane{position:absolute;border-bottom:1px solid var(--line)}.planner-load{position:absolute;bottom:2px;height:5px;background:var(--chart-1)}.planner-load.over{background:var(--danger)}.planner-bar{position:absolute;height:20px;z-index:1;display:flex;align-items:center;gap:5px;padding:0 7px;border-radius:5px;border:1px solid var(--line-strong);background:var(--bg-raised);font:inherit;font-size:11.5px;color:var(--fg);cursor:grab;touch-action:none;overflow:hidden;white-space:nowrap}.planner-bar.dragging{cursor:grabbing;box-shadow:var(--shadow);z-index:4}.planner-bar:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.roadmap{--roadmap-label: 160px}.roadmap-axis{position:relative;height:18px;margin-inline-start:var(--roadmap-label);font-size:11px;color:var(--fg-muted)}.roadmap-axis span{position:absolute;transform:translate(-50%);white-space:nowrap}.roadmap-rows{position:relative}.roadmap-overlay{position:absolute;inset-block:0;inset-inline:var(--roadmap-label) 0;pointer-events:none}.roadmap-today{position:absolute;inset-block:0;width:1px;background:var(--accent);opacity:.55}.roadmap-row{display:flex;align-items:center;height:30px}.roadmap-name{width:var(--roadmap-label);flex:none;font-size:12.5px;padding-inline-end:10px;display:flex;align-items:center;gap:4px;min-width:0}.roadmap-name .truncate{min-width:0}.late-flag{color:var(--danger);font-size:11px;white-space:nowrap;flex:none}.late-flag svg{vertical-align:-1px}.roadmap-track{position:relative;flex:1;height:100%}.roadmap-bar{position:absolute;top:7px;height:16px;border-radius:4px;background:color-mix(in srgb,var(--chart-1) 26%,transparent);border:1px solid color-mix(in srgb,var(--chart-1) 45%,transparent);overflow:visible;cursor:default}.roadmap-bar:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.roadmap-fill{position:absolute;inset-block:0;inset-inline-start:0;background:var(--chart-1);border-radius:3px}.roadmap-bar.late{border-color:var(--danger)}.roadmap-bar.late .roadmap-fill{background:var(--danger)}@media(max-width:700px){.roadmap{--roadmap-label: 96px}.roadmap-name{font-size:11.5px}}.bars{display:flex;flex-direction:column;gap:7px}.bar-row{display:flex;align-items:center;gap:9px;font-size:12.5px}.bar-label{flex:0 0 34%;color:var(--fg-soft)}.bar-track{flex:1;height:10px;border-radius:5px;background:var(--bg-hover);overflow:hidden}.bar-fill{display:block;height:100%;border-radius:5px;min-width:2px}.bar-value{flex:none;min-width:24px;text-align:end;color:var(--fg-soft)}.chart-table{margin-top:10px}.chart-table summary{font-size:12px;color:var(--fg-muted);cursor:pointer}.chart-table .task-table{margin-top:6px}.lightbox{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;padding:24px;background:#000000c7;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.lightbox img{max-width:100%;max-height:100%;border-radius:8px;object-fit:contain}.lightbox-close{position:absolute;top:14px;inset-inline-end:14px;color:#fff}.lightbox-open{position:absolute;bottom:16px}.drop-line{height:2px;border-radius:2px;background:var(--accent);margin:2px 0}.recovery-codes{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px;margin-top:8px}.recovery-codes code{padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:var(--bg-sunken);font-family:var(--mono);font-size:12.5px;text-align:center}.reactions{margin-top:5px}.reaction{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border:1px solid var(--line);border-radius:999px;background:var(--bg);font-size:12px;color:var(--fg-soft);cursor:pointer}.reaction:hover{background:var(--bg-hover)}.reaction.mine{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.reaction.add{padding:2px 6px;color:var(--fg-muted)}.mention-menu{position:absolute;inset-inline-start:8px;bottom:8px;z-index:20;min-width:220px;max-width:320px;padding:4px;border:1px solid var(--line-strong);border-radius:9px;background:var(--bg-raised);box-shadow:0 10px 30px #00000024}.mention-menu button{display:flex;align-items:center;gap:7px;width:100%;padding:5px 7px;border:none;border-radius:6px;background:none;font:inherit;font-size:12.5px;color:inherit;text-align:start;cursor:pointer}.mention-menu button:hover,.mention-menu button.active{background:var(--bg-hover)}.diff{border:1px solid var(--line);border-radius:8px;overflow:hidden;font-family:var(--mono);font-size:12px}.diff-line{display:flex;align-items:baseline;gap:0;padding:1px 0;white-space:pre-wrap;word-break:break-word}.diff-no{flex:none;width:34px;text-align:end;padding-inline-end:6px;color:var(--fg-muted);-webkit-user-select:none;user-select:none}.diff-mark{flex:none;width:16px;text-align:center;color:var(--fg-muted);-webkit-user-select:none;user-select:none}.diff-text{flex:1;padding-inline-end:8px}.diff-line.added{background:color-mix(in srgb,var(--chart-2) 12%,transparent)}.diff-line.removed{background:color-mix(in srgb,var(--danger) 12%,transparent)}.diff-skip{padding:4px 10px;background:var(--bg-sunken);color:var(--fg-muted);font-size:11.5px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.chip{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:999px;background:var(--bg-hover);border:1px solid var(--line);font-size:11.5px;color:var(--fg-soft);white-space:nowrap;max-width:100%}.chip .dot{width:7px;height:7px;border-radius:50%;flex:none}.chip.button{cursor:pointer}.chip.button:hover{background:var(--bg-active)}.chip.on{background:color-mix(in srgb,var(--accent) 14%,transparent);border-color:color-mix(in srgb,var(--accent) 45%,var(--line));color:var(--accent)}.field-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,300px));gap:12px 16px}.field-grid .textarea{min-width:0}.stack-card{border:1px solid var(--line);border-radius:var(--radius-sm);padding:9px 10px;margin-bottom:8px;background:var(--bg-raised)}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-size:10px;font-weight:600;flex:none;-webkit-user-select:none;user-select:none;background-size:cover;background-position:center}.avatar-stack{display:inline-flex}.avatar-stack .avatar+.avatar{margin-inline-start:-6px;box-shadow:0 0 0 2px var(--bg)}.badge-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);display:inline-block}.divider{height:1px;background:var(--line);margin:8px 0}.divider-text{display:flex;align-items:center;gap:10px;margin:14px 0;color:var(--fg-muted);font-size:12px}.divider-text:before,.divider-text:after{content:"";flex:1;height:1px;background:var(--line)}.muted{color:var(--fg-muted)}.soft{color:var(--fg-soft)}.mono{font-family:var(--mono);font-size:12px}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row{display:flex;align-items:center;gap:8px}.col{display:flex;flex-direction:column;gap:8px}.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.page{max-width:1180px;margin:0 auto;padding:16px 12px 80px}@media(min-width:900px){.page{padding:22px 24px 60px}}.page-title{font-size:20px;margin-bottom:4px}.page-header{margin-bottom:18px}.empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:44px 16px;color:var(--fg-muted);text-align:center}.empty .emoji{font-size:26px}.card{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-raised);padding:14px}.grid{display:grid;gap:12px;grid-template-columns:1fr}@media(min-width:700px){.grid.two{grid-template-columns:1fr 1fr}}@media(min-width:1000px){.grid.three{grid-template-columns:repeat(3,1fr)}}.task-group{display:flex;align-items:center;gap:8px;padding:10px 12px 6px;font-size:12.5px;font-weight:600;color:var(--fg-soft);position:sticky;top:0;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2}.task-group .count{color:var(--fg-muted);font-weight:500}.task-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--line);cursor:pointer;min-height:46px;background:var(--bg);touch-action:pan-y}.task-row:hover{background:var(--bg-hover)}.task-row.selected{background:var(--accent-soft)}.task-row .id{font-family:var(--mono);font-size:11.5px;color:var(--fg-muted);flex:none;min-width:58px}.task-row .title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-row.done .title{color:var(--fg-muted);text-decoration:line-through}.task-row .meta{display:flex;align-items:center;gap:6px;flex:none}@media(max-width:700px){.task-row{flex-wrap:wrap;align-items:flex-start}.task-row .title{flex-basis:100%;white-space:normal}.task-row .id{min-width:0}}.state-dot{width:12px;height:12px;border-radius:50%;border:2px solid currentColor;flex:none;display:inline-block}.state-dot.filled{background:currentColor}.state-dot.half{background:linear-gradient(90deg,currentColor 50%,transparent 50%)}.priority-bars{display:inline-flex;align-items:flex-end;gap:1.5px;height:11px}.priority-bars i{width:3px;background:currentColor;border-radius:1px;opacity:.28}.priority-bars i.on{opacity:1}.priority-bars i:nth-child(1){height:4px}.priority-bars i:nth-child(2){height:7.5px}.priority-bars i:nth-child(3){height:11px}.due-overdue{color:var(--danger)}.due-today{color:var(--warn)}.board{display:flex;gap:12px;padding:12px;overflow-x:auto;align-items:flex-start;height:100%;scroll-snap-type:x proximity}.board-column{flex:0 0 84vw;max-width:320px;background:var(--bg-sunken);border:1px solid var(--line);border-radius:var(--radius);display:flex;flex-direction:column;max-height:100%;scroll-snap-align:start}@media(min-width:700px){.board-column{flex:0 0 300px}}.board-column.drop-target{border-color:var(--accent);background:var(--accent-soft)}.board-column header{display:flex;align-items:center;gap:7px;padding:10px 11px;font-size:12.5px;font-weight:600}.board-column .items{padding:0 8px 8px;overflow-y:auto;display:flex;flex-direction:column;gap:7px}.task-card{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-sm);padding:9px 10px;cursor:pointer;box-shadow:var(--shadow-sm)}.task-card:hover{border-color:var(--line-strong)}.task-card.dragging{opacity:.45}.task-card .title{font-size:13.5px;margin-bottom:7px;overflow-wrap:anywhere}.task-card .footer{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.calendar .weekday{background:var(--bg-sunken);padding:6px;font-size:11px;text-align:center;color:var(--fg-muted);font-weight:600}.calendar .day{background:var(--bg);min-height:78px;padding:5px;display:flex;flex-direction:column;gap:3px}.calendar .day.other{background:var(--bg-sunken)}.calendar .day .num{font-size:11px;color:var(--fg-muted)}.calendar .day.today .num{color:var(--accent);font-weight:700}.calendar .pill{font-size:10.5px;padding:2px 5px;border-radius:4px;background:var(--bg-hover);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overlay{position:fixed;inset:0;background:var(--overlay);z-index:60;display:flex;align-items:flex-end;justify-content:center;animation:fade .14s ease}@media(min-width:700px){.overlay{align-items:center;padding:24px}}.sheet{background:var(--bg-raised);width:100%;max-height:92dvh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow);display:flex;flex-direction:column;overflow:hidden;animation:slide-up .18s cubic-bezier(.22,1,.36,1);padding-bottom:env(safe-area-inset-bottom)}@media(min-width:700px){.sheet{max-width:620px;border-radius:var(--radius-lg);max-height:86dvh;animation:fade .14s ease}.sheet.wide{max-width:860px}}.sheet header{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line);flex:none}.sheet .body{padding:14px;overflow-y:auto;flex:1}.sheet footer{padding:12px 14px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end;flex:none}.grabber{width:36px;height:4px;border-radius:99px;background:var(--line-strong);margin:8px auto 0;flex:none}@media(min-width:700px){.grabber{display:none}}.menu{position:fixed;z-index:80;min-width:190px;max-height:60dvh;overflow-y:auto;background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:5px;animation:fade .1s ease}.menu button{display:flex;align-items:center;gap:8px;width:100%;border:none;background:none;padding:7px 9px;border-radius:var(--radius-sm);cursor:pointer;font-size:13.5px;text-align:left;min-height:34px}.menu button:hover,.menu button.highlight{background:var(--bg-hover)}.menu .section{padding:7px 9px 3px;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted);font-weight:600}.menu input.search{width:100%;border:none;border-bottom:1px solid var(--line);border-radius:0;padding:8px;background:none;margin-bottom:4px}.menu input.search:focus{outline:none}.palette{position:fixed;inset:0;z-index:90;background:var(--overlay);display:flex;align-items:flex-start;justify-content:center;padding:8vh 12px}.palette .box{width:min(620px,100%);background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column;max-height:70dvh}.palette input{border:none;border-bottom:1px solid var(--line);padding:14px 16px;font-size:15px;background:none;border-radius:0}.palette input:focus{outline:none}.palette .results{overflow-y:auto;padding:6px}.toast-host{position:fixed;left:50%;transform:translate(-50%);bottom:calc(74px + env(safe-area-inset-bottom));z-index:100;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}@media(min-width:900px){.toast-host{bottom:24px}}.toast{background:var(--fg);color:var(--bg);padding:9px 14px;border-radius:999px;font-size:13px;box-shadow:var(--shadow);animation:slide-up .16s ease;pointer-events:auto;display:flex;align-items:center;gap:10px}.toast button{background:none;border:none;color:inherit;font-weight:600;cursor:pointer;text-decoration:underline}.md{line-height:1.62;overflow-wrap:anywhere}.md h1{font-size:22px;margin:22px 0 10px}.md h2{font-size:18px;margin:20px 0 8px}.md h3{font-size:15.5px;margin:16px 0 6px}.md h1:first-child,.md h2:first-child,.md h3:first-child{margin-top:0}.md p{margin:0 0 11px}.md ul,.md ol{margin:0 0 11px;padding-inline-start:22px}.md li{margin:3px 0}.md li.md-task{list-style:none;margin-inline-start:-18px;display:flex;gap:7px;align-items:flex-start}.md li.md-task input{margin-top:4px}.md .md-done{color:var(--fg-muted);text-decoration:line-through}.md a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.md code{background:var(--bg-hover);padding:1.5px 4px;border-radius:4px;font-family:var(--mono);font-size:.88em}.md pre{background:var(--bg-sunken);border:1px solid var(--line);padding:11px 13px;border-radius:var(--radius);overflow-x:auto;margin:0 0 12px}.md pre code{background:none;padding:0;font-size:12.5px;line-height:1.55}.md blockquote{margin:0 0 12px;padding-block:2px;padding-inline-start:13px;border-inline-start:3px solid var(--line-strong);color:var(--fg-soft)}.md img{cursor:zoom-in}.md img{max-width:100%;border-radius:var(--radius);border:1px solid var(--line);display:block;margin:10px 0}.md hr{border:none;border-top:1px solid var(--line);margin:18px 0}.md .md-tag{color:var(--accent)}.md table{border-collapse:collapse;width:100%;margin-bottom:12px}.md th,.md td{border:1px solid var(--line);padding:6px 9px;text-align:left}.editor{position:relative}.editor-toolbar{display:flex;gap:2px;flex-wrap:wrap;padding:5px;border:1px solid var(--line-strong);border-bottom:none;border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--bg-sunken)}.editor-toolbar .btn{height:27px}.editor textarea{border-radius:0 0 var(--radius-sm) var(--radius-sm);font-family:var(--mono);font-size:13px;line-height:1.6;min-height:160px}.editor.dropping textarea{border-color:var(--accent);background:var(--accent-soft)}.detail-props{display:grid;grid-template-columns:96px 1fr;gap:8px 10px;align-items:center;font-size:13px}.detail-props .key{color:var(--fg-muted);font-size:12.5px}.comment{display:flex;gap:9px;padding:10px 0;border-top:1px solid var(--line)}.comment .body{flex:1;min-width:0}.comment .who{font-size:12.5px;font-weight:600}.comment .when{font-size:11.5px;color:var(--fg-muted)}.attachment{display:flex;align-items:center;gap:9px;padding:7px 9px;border:1px solid var(--line);border-radius:var(--radius-sm);font-size:12.5px}.attachment img{width:38px;height:38px;object-fit:cover;border-radius:5px;flex:none}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.gallery img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--line);cursor:pointer}.progress{height:5px;border-radius:99px;background:var(--bg-active);overflow:hidden}.progress>i{display:block;height:100%;background:var(--accent);border-radius:99px;transition:width .2s ease}.status-pill{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--fg-muted);padding:3px 8px;border-radius:999px;border:1px solid var(--line);cursor:pointer;background:none}.status-pill .dot{width:6px;height:6px;border-radius:50%;background:var(--ok)}.status-pill.offline .dot{background:var(--warn)}.status-pill.error .dot{background:var(--danger)}.status-pill.syncing .dot{background:var(--accent);animation:pulse 1.1s ease-in-out infinite}.auth{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:var(--bg-sunken)}.auth .box{width:min(400px,100%);background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-lg);padding:26px 22px;box-shadow:var(--shadow)}.auth h1{font-size:19px;margin-bottom:4px}.auth .error{color:var(--danger);font-size:13px;margin-bottom:10px}.tabs{display:flex;gap:3px;border-bottom:1px solid var(--line);overflow-x:auto}.tabs button{border:none;background:none;padding:8px 11px;font-size:13.5px;color:var(--fg-muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.tabs button.active{color:var(--fg);border-bottom-color:var(--accent);font-weight:550}.tab-count{display:inline-block;margin-inline-start:6px;min-width:17px;padding:0 5px;font-size:11px;font-weight:600;line-height:17px;text-align:center;color:#fff;background:var(--accent);border-radius:999px}.skeleton{background:linear-gradient(90deg,var(--bg-hover) 25%,var(--bg-active) 37%,var(--bg-hover) 63%);background-size:400% 100%;animation:shimmer 1.3s ease infinite;border-radius:var(--radius-sm)}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{transform:translateY(14px);opacity:0}to{transform:none;opacity:1}}@keyframes pulse{50%{opacity:.35}}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}.guide{max-width:940px}.guide-lead{font-size:14.5px;color:var(--fg-soft);line-height:1.6;margin:0 0 18px;max-width:68ch}.guide-h2{font-size:16px;margin:30px 0 6px}.guide-h2:first-child{margin-top:0}.guide-icon{width:28px;height:28px;border-radius:8px;flex:none;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}.guide-principle{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.guide-principle strong{font-size:13.5px}.guide-principle .soft{font-size:12.5px;line-height:1.55}.guide-feature{padding:22px 0;border-top:1px solid var(--line)}.guide-feature:first-of-type{border-top:none;padding-top:4px}.guide-feature-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}.guide-feature-head h3{font-size:15.5px;margin:0}.guide-feature>p{margin:0 0 14px;font-size:13.5px;line-height:1.6;max-width:68ch}.guide-steps{margin:14px 0;padding-inline-start:20px;font-size:13.5px;line-height:1.62;color:var(--fg-soft)}.guide-steps li{margin:4px 0}.guide-steps li::marker{color:var(--accent);font-weight:600}.guide-steps.big{font-size:14px}.guide-rules{margin:10px 0 0;padding-inline-start:20px;font-size:13.5px;line-height:1.65;color:var(--fg-soft)}.guide-rules li{margin:6px 0}.guide-roles{display:grid;gap:8px;grid-template-columns:1fr}@media(min-width:700px){.guide-roles{grid-template-columns:1fr 1fr}}.guide-role{display:flex;flex-direction:column;gap:3px}.guide-role strong{font-size:13px;text-transform:capitalize}.guide-role .soft{font-size:12.5px;line-height:1.5}.guide-keys{display:flex;flex-direction:column}.guide-key-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-top:1px solid var(--line);font-size:13.5px}.guide-key-row:first-child{border-top:none}.guide-key-caps{display:flex;gap:4px;min-width:92px;flex:none}.stage{margin:0 0 4px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-sunken);overflow:hidden}.stage .scene{position:relative;overflow:hidden;padding:14px}.stage-foot{padding:10px 12px 11px;border-top:1px solid var(--line);background:var(--bg-raised)}.stage .caption{margin:0 0 8px;font-size:13px;line-height:1.55;color:var(--fg-soft);display:flex;gap:8px;align-items:baseline;min-height:2.6em}.stage .ordinal{font-family:var(--mono);font-size:11px;color:var(--fg-muted);flex:none}.stage .controls{display:flex;align-items:center;gap:4px}.stage .dots{display:flex;gap:5px;align-items:center}.stage .dots button{width:7px;height:7px;padding:0;border:none;border-radius:99px;background:var(--line-strong);cursor:pointer;transition:background .18s ease,width .18s ease}.stage .dots button.on{background:var(--accent);width:18px}.stage [data-on]{transition:opacity .4s ease,transform .4s ease}.stage [data-on=false]{opacity:0;transform:translateY(7px)}.stage [data-on=true]{opacity:1;transform:none}.gx-scene{position:relative;height:100%;display:flex;flex-direction:column;gap:8px}.gx-conn{display:flex;align-items:center;justify-content:center;gap:5px;flex:none;color:var(--accent)}.gx-conn.ok{color:var(--ok)}.gx-conn.right,.gx-conn.left{flex-direction:row;min-width:34px}.gx-conn.down,.gx-conn.up{flex-direction:column;min-height:26px}.gx-conn>i{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.22;animation:gx-travel 1.15s ease-in-out infinite}.gx-conn[data-on=false]>i{animation:none;opacity:.16;background:var(--line-strong)}.gx-conn.right>i:nth-child(2),.gx-conn.down>i:nth-child(2){animation-delay:.14s}.gx-conn.right>i:nth-child(3),.gx-conn.down>i:nth-child(3){animation-delay:.28s}.gx-conn.left>i:nth-child(2),.gx-conn.up>i:nth-child(2){animation-delay:.14s}.gx-conn.left>i:nth-child(1),.gx-conn.up>i:nth-child(1){animation-delay:.28s}@keyframes gx-travel{40%{opacity:1;transform:scale(1.35)}}.gx-frame{background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px;display:flex;flex-direction:column;gap:6px;transition:opacity .4s ease,transform .4s ease}.gx-row{display:flex;align-items:center;gap:6px}.gx-row.gx-wrap{flex-wrap:wrap}.gx-strong{font-size:12.5px;font-weight:600}.gx-muted{color:var(--fg-muted);font-size:11.5px}.gx-tiny{font-size:10.5px}.gx-mono{font-family:var(--mono);font-size:11px}.gx-task{display:flex;align-items:center;gap:7px;font-size:12px;padding:5px 6px;border-radius:6px;background:var(--bg);border:1px solid transparent;transition:all .32s ease}.gx-task.dim{opacity:.55}.gx-task.accent{border-color:var(--accent);background:var(--accent-soft);opacity:1}.gx-task.done .gx-title{color:var(--fg-muted);text-decoration:line-through}.gx-task .gx-id{font-family:var(--mono);font-size:10.5px;color:var(--fg-muted);flex:none}.gx-task .gx-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.gx-dot{width:9px;height:9px;border-radius:50%;border:1.6px solid var(--fg-muted);flex:none;transition:all .32s ease}.gx-dot[data-done=true]{background:var(--ok);border-color:var(--ok)}.gx-chip{display:inline-flex;align-items:center;gap:3px;flex:none;font-size:10.5px;padding:1px 6px;border-radius:99px;border:1px solid var(--line-strong);color:var(--fg-soft);background:var(--bg);transition:all .32s ease;white-space:nowrap}.gx-chip.accent{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.gx-chip.warn{border-color:var(--warn);color:var(--warn)}.gx-chip.ok{border-color:var(--ok);color:var(--ok)}.gx-chip.danger{border-color:var(--danger);color:var(--danger)}.gx-box{border:1px dashed var(--line-strong);border-radius:var(--radius-sm);padding:8px;display:flex;flex-direction:column;gap:6px;background:var(--bg-raised)}.gx-box.muted{background:transparent}.gx-box-title{display:flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--fg-soft)}.gx-line{display:block;height:5px;border-radius:3px;background:var(--bg-active)}.gx-key{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:5px;background:var(--bg-raised);font-family:var(--mono);font-size:11px;color:var(--fg-soft);transition:all .16s ease}.gx-key.pressed{background:var(--accent);border-color:var(--accent);color:#fff;transform:translateY(1px)}.gx-btn{font-size:11px;padding:3px 9px;border-radius:6px;border:1px solid var(--line-strong);color:var(--fg-soft);background:var(--bg)}.gx-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.gx-field{font-size:12px;padding:6px 8px;border-radius:6px;border:1px solid var(--line-strong);background:var(--bg);color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gx-field.small{font-size:11.5px;padding:5px 7px}.gx-field[data-typing=true]{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.gx-avatar{width:20px;height:20px;border-radius:50%;flex:none;display:grid;place-items:center;background:var(--accent);color:#fff;font-size:9px;font-weight:700}.gx-avatar.sm{width:16px;height:16px;font-size:8px}.gx-badge{background:var(--accent);color:#fff;font-size:10px;padding:0 5px;border-radius:99px}.gx-progress{flex:1;height:5px;border-radius:99px;background:var(--bg-active);overflow:hidden}.gx-progress>i{display:block;height:100%;background:var(--accent);transition:width .6s ease}.gx-overview .gx-ws{flex:none;gap:8px}.gx-overview .gx-proj{gap:6px}.gx-overview .gx-stack{display:flex;flex-direction:column;gap:4px}.gx-overview .gx-page{gap:4px}.gx-overview .gx-feet{gap:8px;justify-content:center}.gx-overview .gx-foot{flex-direction:row;align-items:center;gap:6px;font-size:11.5px;padding:5px 10px;color:var(--fg-soft)}.gx-capture{display:block}.gx-capture .gx-app{position:absolute;inset:14px}.gx-capture .gx-appbar{padding-bottom:4px;border-bottom:1px solid var(--line);margin-bottom:2px}.gx-capture .gx-sheet{position:absolute;inset-inline:24px;bottom:14px;box-shadow:var(--shadow);border-color:var(--line-strong)}.gx-capture .gx-sheet[data-on=false]{transform:translateY(24px)}.gx-capture .gx-sheet-head{border-bottom:1px solid var(--line);padding-bottom:5px}.gx-capture .gx-sheet-foot{justify-content:flex-end}.gx-views .gx-toolbar{flex-wrap:wrap;gap:4px}.gx-tool{display:inline-flex;align-items:center;gap:4px;font-size:11px;padding:3px 8px;border-radius:6px;color:var(--fg-muted);border:1px solid transparent;transition:all .26s ease}.gx-tool.on{color:var(--accent);background:var(--accent-soft);border-color:var(--accent)}.gx-views .gx-list{display:flex;flex-direction:column;gap:3px}.gx-grouphead{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted);padding:5px 2px 1px}.gx-columns{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;flex:1}.gx-col{background:var(--bg-sunken);border:1px solid var(--line);border-radius:7px;padding:6px;display:flex;flex-direction:column;gap:5px;transition:all .26s ease}.gx-col[data-target=true]{border-color:var(--accent);background:var(--accent-soft)}.gx-col-head{font-size:10.5px;font-weight:600;color:var(--fg-soft)}.gx-card{background:var(--bg-raised);border:1px solid var(--line);border-radius:6px;padding:6px 7px;font-size:11.5px;line-height:1.35}.gx-card.done{color:var(--fg-muted);text-decoration:line-through}.gx-card.travelling{position:absolute;top:26px;width:calc(33.333% - 12px);border-color:var(--accent);box-shadow:var(--shadow);transition:left .62s cubic-bezier(.4,0,.2,1),border-color .3s ease}.gx-card.travelling .gx-id{display:block;font-family:var(--mono);font-size:10px;color:var(--fg-muted)}.gx-planning .gx-timeline{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.gx-week{height:26px;border-radius:6px;background:var(--bg-active);display:grid;place-items:center}.gx-week-label{font-size:10.5px;color:var(--fg-soft);font-weight:600}.gx-module{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--ok);border:1px dashed var(--ok);border-radius:6px;padding:4px 8px}.gx-planning .gx-cycle-body{display:flex;flex-direction:column;gap:4px;flex:1}.gx-planning .gx-burn{gap:10px}.gx-sync-devices,.gx-sync-wires{display:grid;grid-template-columns:1fr 1fr;gap:10px}.gx-sync .gx-server{align-self:center;width:min(320px,100%);margin:0 auto}.gx-stamps{display:flex;flex-direction:column;gap:4px}.gx-device-head{font-size:11.5px}.gx-pill{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:var(--ok);transition:color .3s ease}.gx-pill>i{width:6px;height:6px;border-radius:50%;background:currentColor}.gx-pill.offline{color:var(--warn)}.gx-server-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted);text-align:center}.gx-stamp{display:flex;justify-content:space-between;gap:8px;font-size:10.5px;padding:3px 6px;border-radius:5px;background:var(--bg-sunken)}.gx-stamp-key{color:var(--fg-muted);font-family:var(--mono)}.gx-stamp-owner{color:var(--accent);font-weight:600}.gx-pages{flex-direction:row;gap:10px}.gx-pages .gx-tree{width:40%;align-self:flex-start}.gx-tree-item{font-size:11.5px;padding:4px 6px;border-radius:5px;color:var(--fg-soft);transition:opacity .4s ease,transform .4s ease}.gx-tree-item.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.gx-pages .gx-doc{flex:1;gap:5px}.gx-doc-title{font-size:13px;font-weight:700;margin-bottom:2px}.gx-image{height:40px;border-radius:6px;background:var(--bg-sunken);border:1px solid var(--line);display:grid;place-items:center;color:var(--fg-muted)}.gx-versions{font-size:11px;margin-top:auto;padding-top:6px;border-top:1px solid var(--line);color:var(--fg-soft)}.gx-collab{flex-direction:row;align-items:center;gap:4px}.gx-collab .gx-comment-box{flex:1;align-self:flex-start}.gx-collab-right{flex:1;display:flex;flex-direction:column;gap:4px}.gx-mention{color:var(--accent);font-weight:600}.gx-notif{display:flex;align-items:center;gap:6px;font-size:11.5px;padding:5px 6px;border-radius:6px;background:var(--accent-soft)}@media(max-width:699px){.gx-collab{flex-direction:column;align-items:stretch}.gx-collab .gx-conn.right{flex-direction:column;min-height:22px}}.gx-assistant{flex-direction:row;align-items:center;gap:4px}.gx-assistant .gx-agent,.gx-assistant .gx-instance{flex:1;align-self:stretch}.gx-assistant-wires{display:flex;flex-direction:column;gap:14px;flex:none}.gx-token{display:flex;align-items:center;gap:6px;justify-content:space-between;padding:4px 6px;border-radius:6px;background:var(--bg-sunken)}.gx-call{font-family:var(--mono);font-size:10.5px;padding:4px 7px;border-radius:5px;background:var(--bg-sunken);border-inline-start:2px solid var(--line-strong);color:var(--fg-soft)}.gx-call.ok{border-color:var(--ok);color:var(--ok)}.gx-call.denied{border-color:var(--danger);color:var(--danger)}@media(max-width:699px){.gx-assistant{flex-direction:column;align-items:stretch}.gx-assistant-wires{flex-direction:row;justify-content:center}.gx-assistant .gx-conn.right,.gx-assistant .gx-conn.left{flex-direction:column;min-height:22px}}.gx-hierarchy{display:grid;gap:12px;grid-template-columns:1fr;align-items:start}@media(min-width:800px){.gx-hierarchy{grid-template-columns:minmax(0,260px) 1fr}}.gx-tree-pane{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-sunken);padding:6px;display:flex;flex-direction:column;gap:1px}.gx-node{display:flex;align-items:center;gap:7px;width:100%;padding:5px 8px;border:1px solid transparent;border-radius:6px;background:none;cursor:pointer;font:inherit;font-size:12.5px;color:var(--fg-soft);text-align:start;transition:background .16s ease,color .16s ease}.gx-node:hover{background:var(--bg-hover);color:var(--fg)}.gx-node.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.gx-node-glyph{width:16px;display:grid;place-items:center;flex:none;font-size:12px}.gx-node-glyph.big{width:26px;height:26px;border-radius:7px;background:var(--accent-soft);color:var(--accent);font-size:15px}.gx-node-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gx-node-count{font-size:10.5px;color:var(--fg-muted);font-variant-numeric:tabular-nums}.gx-node-group{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted);padding:12px 8px 4px}.gx-detail{border:1px solid var(--line);border-radius:var(--radius);padding:14px;background:var(--bg-raised)}.gx-detail-head{display:flex;align-items:center;gap:9px;margin-bottom:8px}.gx-detail-head strong{font-size:15px}.gx-detail>p{margin:0 0 12px;font-size:13.5px;line-height:1.6;color:var(--fg-soft)}.gx-detail-facts{display:grid;grid-template-columns:auto 1fr;gap:5px 12px;margin:0 0 12px;font-size:12.5px;align-items:baseline}.gx-detail-facts dt{color:var(--fg-muted)}.gx-detail-facts dd{margin:0;color:var(--fg-soft)}.gx-chip-row{display:flex;flex-wrap:wrap;gap:4px}.gx-link{background:none;border:none;padding:0;font:inherit;font-size:inherit;color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.gx-link.chip{text-decoration:none;border:1px solid var(--line-strong);border-radius:99px;padding:1px 8px;font-size:11.5px;color:var(--fg-soft)}.gx-link.chip:hover{border-color:var(--accent);color:var(--accent)}.gx-rule{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;line-height:1.55;color:var(--fg-soft);background:var(--bg-sunken);border-radius:var(--radius-sm);padding:9px 11px}.gx-rule svg{color:var(--warn);flex:none;margin-top:2px}[dir=rtl] .icon-dir{transform:scaleX(-1)}.guide-hint{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--fg-muted);text-decoration:none;padding:3px 0;transition:color .16s ease}.guide-hint:hover{color:var(--accent)}.empty .guide-hint{margin-top:2px}.guide-feature.flash{animation:guide-flash 1.6s ease-out}@keyframes guide-flash{0%{background:var(--accent-soft);box-shadow:0 0 0 8px var(--accent-soft)}to{background:transparent;box-shadow:0 0 0 8px transparent}}.tour-h{font-size:15px;margin:0 0 6px}.sheet .tour-h+p{margin:0 0 14px;font-size:13.5px;line-height:1.6}.tour-ok{display:flex;align-items:center;gap:7px;margin:0;font-size:13.5px;color:var(--ok);background:color-mix(in srgb,var(--ok) 9%,transparent);border-radius:var(--radius-sm);padding:10px 12px}.setup{margin-bottom:18px}.setup-item{display:flex;align-items:center;gap:10px;padding:7px 0;border-top:1px solid var(--line)}.setup-item:first-of-type{border-top:none}.setup-tick{width:18px;height:18px;border-radius:50%;flex:none;border:1.5px solid var(--line-strong);display:grid;place-items:center;color:var(--accent-fg);transition:background .2s ease,border-color .2s ease}.setup-item.done .setup-tick{background:var(--ok);border-color:var(--ok)}.setup-label{display:block;font-size:13px}.setup-hint{display:block;font-size:12px;color:var(--fg-muted)}.setup-item.done .setup-label{color:var(--fg-muted);text-decoration:line-through}.setup-item.done .setup-hint{display:none}.auto-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line)}.auto-row:first-of-type{border-top:none}.auto-row.off{opacity:.6}.auto-glyph{width:22px;text-align:center;font-size:15px;flex:none}.auto-name{display:block;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auto-meta{display:block;font-size:11.5px;color:var(--fg-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auto-switch{width:34px;height:20px;flex:none;padding:0;cursor:pointer;border:1px solid var(--line-strong);border-radius:99px;background:var(--bg-active);display:flex;align-items:center;transition:background .18s ease,border-color .18s ease}.auto-switch>i{width:14px;height:14px;border-radius:50%;background:var(--bg-raised);margin-inline-start:2px;box-shadow:var(--shadow-sm);transition:margin-inline-start .18s ease}.auto-switch.on{background:var(--accent);border-color:var(--accent)}.auto-switch.on>i{margin-inline-start:16px}.auto-switch:disabled{cursor:not-allowed;opacity:.6}.auto-h{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted);margin:18px 0 8px}.auto-run{display:flex;align-items:center;gap:9px;padding:8px 0;border-top:1px solid var(--line)}.auto-run:first-of-type{border-top:none}.auto-run-dot{width:7px;height:7px;border-radius:50%;background:var(--ok);flex:none}.auto-run-dot.skipped{background:var(--line-strong)}.auto-when{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--fg-muted);flex:none}.gx-auto{flex-direction:row;align-items:stretch;gap:8px}.gx-auto .gx-tpl,.gx-auto .gx-auto-out{flex:1;min-width:0}.gx-auto-middle{display:flex;flex-direction:column;justify-content:center;gap:6px;flex:0 0 34%}.gx-auto .gx-rule{gap:5px}.gx-auto-out{display:flex;flex-direction:column;gap:6px}.gx-checks{display:flex;flex-direction:column;gap:5px}.gx-check{display:flex;align-items:center;gap:6px}.gx-check>i{width:11px;height:11px;border-radius:3px;border:1.4px solid var(--line-strong);flex:none}.gx-made{border-color:var(--accent);gap:5px}.gx-runlog{font-size:11px;gap:6px}.gx-run-dot{width:6px;height:6px;border-radius:50%;background:var(--ok);flex:none}@media(max-width:699px){.gx-auto{flex-direction:column}.gx-auto-middle{flex:none}.gx-auto .gx-conn.right{flex-direction:column;min-height:20px}}.content:has(.chat){overflow:hidden}.chat{display:grid;grid-template-columns:1fr;min-height:0;height:100%}.page.chat{padding-bottom:10px}.chat-back{display:inline-flex}@media(min-width:900px){.chat-back{display:none}}.chat-list{min-width:0}.chat-main{display:flex;flex-direction:column;min-height:0;min-width:0}.chat:has(.chat-header) .chat-list{display:none}.chat:not(:has(.chat-header)) .chat-main{display:none}@media(min-width:900px){.chat{grid-template-columns:260px 1fr;gap:18px;height:100%}.chat:has(.chat-header) .chat-list{display:block}.chat:not(:has(.chat-header)) .chat-main{display:flex}.chat-list{overflow-y:auto;border-inline-end:1px solid var(--line);padding-inline-end:12px}}.chat-header{gap:8px;padding-bottom:10px;border-bottom:1px solid var(--line);flex:none}.chat-stream{flex:1;overflow-y:auto;padding:10px 0;min-height:0;display:flex;flex-direction:column;justify-content:flex-end}.chat-message{display:flex;gap:9px;padding:3px 0;position:relative}.chat-message:not(.grouped){padding-top:10px}.chat-message .body{flex:1;min-width:0}.chat-message .who{font-size:12.5px;font-weight:600}.chat-message .when{font-size:11.5px;color:var(--fg-muted)}.chat-message .gutter{width:26px;flex:none}.chat-message p:last-child{margin-bottom:0}.chat-actions{position:absolute;inset-inline-end:0;top:0;display:flex;gap:2px;background:var(--bg-raised);border:1px solid var(--line);border-radius:var(--radius-sm);padding:1px;opacity:0;transition:opacity .12s ease}.chat-message:hover .chat-actions,.chat-actions:focus-within{opacity:1}@media(hover:none){.chat-actions{opacity:1;position:static;border:0;background:none}}.chat-composer{flex:none;border-top:1px solid var(--line);padding-top:10px;display:flex;flex-direction:column;gap:8px;padding-bottom:env(safe-area-inset-bottom)}.chat-composer>.btn{align-self:flex-end}
