:root{color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:14px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:#fff;color:#1f2937}.app{display:flex;flex-direction:column;height:100vh;position:relative}.storage-indicator{position:fixed;bottom:12px;left:12px;z-index:100}.storage-button{display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 12px;border-radius:15px;background:#fff;border:1px solid #d1d5db;color:#374151;font:inherit;font-size:12px;font-weight:500;cursor:pointer;box-shadow:0 2px 6px #00000014}.storage-button:hover{background:#f9fafb}.storage-dot{width:8px;height:8px;border-radius:50%;background:#9ca3af;flex-shrink:0}.storage-dot--local{background:#9ca3af}.storage-dot--idle{background:#22c55e}.storage-dot--syncing,.storage-dot--connecting{background:#f59e0b;animation:storage-pulse 1s ease-in-out infinite}.storage-dot--error{background:#ef4444}@keyframes storage-pulse{0%,to{opacity:.5}50%{opacity:1}}.bottom-right-stack{position:fixed;bottom:12px;right:12px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;z-index:101}.top-right-stack{position:fixed;top:12px;right:12px;display:flex;flex-direction:column;align-items:flex-end;gap:8px;z-index:101}.workspace-selector{position:relative}.workspace-trigger{display:inline-flex;align-items:center;gap:4px;max-width:180px;height:30px;padding:0 10px;border-radius:15px;background:#fffc;border:1px solid #e5e7eb;color:#6b7280;font:inherit;font-size:12px;font-weight:500;cursor:pointer;box-shadow:0 1px 3px #0000000d}.workspace-trigger:hover{background:#fff;color:#1f2937;border-color:#d1d5db}.workspace-trigger-icon{font-size:10px;opacity:.7}.workspace-trigger-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-menu{position:absolute;bottom:calc(100% + 6px);right:0;min-width:220px;background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:4px;box-shadow:0 6px 18px #0000001f;font-size:12px}.workspace-menu-list{display:flex;flex-direction:column;max-height:240px;overflow-y:auto}.workspace-item{display:flex;align-items:center;gap:4px;border-radius:4px}.workspace-item:hover{background:#f3f4f6}.workspace-item--active .workspace-item-name{color:#111827;font-weight:600}.workspace-item-name{flex:1;min-width:0;text-align:left;padding:6px 8px;border:none;background:transparent;color:#374151;font:inherit;cursor:pointer;border-radius:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-item-delete{border:none;background:transparent;color:#9ca3af;cursor:pointer;width:22px;height:22px;border-radius:4px;font-size:14px;line-height:1;margin-right:4px;padding:0}.workspace-item-delete:hover{background:#fee2e2;color:#b91c1c}.workspace-rename-input{flex:1;margin:4px;padding:4px 6px;font:inherit;border:1px solid #d1d5db;border-radius:4px;outline:none}.workspace-add{width:100%;margin-top:4px;padding:6px 8px;border:none;background:transparent;color:#4f6df5;font:inherit;font-weight:500;cursor:pointer;border-radius:4px;text-align:left;border-top:1px solid #f3f4f6}.workspace-add:hover{background:#eef2ff}.help-button{width:30px;height:30px;border-radius:50%;background:#fff;border:1px solid #d1d5db;color:#4b5563;font:inherit;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 6px #00000014;padding:0}.help-button:hover{background:#f9fafb}.help-panel{position:relative;background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:10px 28px 10px 12px;box-shadow:0 6px 18px #0000001f;font-size:12px;color:#1f2937;font-weight:500;min-width:280px}.help-panel strong{display:block;font-size:12px;color:#111827;margin-bottom:6px}.help-panel ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}.help-panel li{display:flex;gap:10px;align-items:baseline}.help-close{position:absolute;top:4px;right:4px;width:22px;height:22px;border:none;background:transparent;color:#6b7280;font-size:18px;line-height:1;border-radius:4px;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center}.help-close:hover{background:#f3f4f6;color:#111827}.help-keys{flex-shrink:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:#111827;background:#f3f4f6;padding:1px 6px;border-radius:4px;border:1px solid #e5e7eb}.help-desc{color:#4b5563;font-weight:400}.scroll-area{flex:1;overflow:auto;position:relative;background-color:#fff;background-image:linear-gradient(to right,#e5e7eb 1px,transparent 1px),linear-gradient(to bottom,#e5e7eb 1px,transparent 1px);background-size:24px 24px;background-attachment:local}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:#6b7280;gap:8px}.empty kbd{background:#f3f4f6;border:1px solid #d1d5db;border-radius:4px;padding:2px 6px;font-family:inherit;font-size:12px;color:#1f2937}.graph-canvas{position:relative}.graph-edges{position:absolute;left:0;top:0;pointer-events:none}.graph-root-plus{position:absolute;left:0;top:0;border:1px solid #d1d5db;border-radius:50%;background:#fff;color:#374151;box-shadow:0 1px 2px #00000014,0 3px 10px #0000001f;cursor:pointer;display:flex;align-items:center;justify-content:center;font:inherit;font-size:0;line-height:0;padding:0;z-index:2}.graph-root-plus:before,.graph-root-plus:after{content:"";position:absolute;left:50%;top:50%;width:16px;height:2px;border-radius:1px;background:currentColor;transform:translate(-50%,-50%)}.graph-root-plus:after{transform:translate(-50%,-50%) rotate(90deg)}.graph-root-plus:hover{border-color:#9ca3af;color:#111827}.graph-root-plus:active{background:#f3f4f6}.task-node{position:absolute;left:0;top:0;border-radius:8px;display:flex;align-items:center;gap:8px;padding:0 12px;box-shadow:0 1px 2px #0000000f,0 2px 8px #00000014;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:500;transition:box-shadow .12s ease,transform .12s ease;overflow:hidden}.task-node--has-progress:before{content:"";position:absolute;top:0;left:0;height:20%;width:var(--progress);background:#22c55e;border-top-left-radius:8px;pointer-events:none;transition:width .25s ease}.task-title{flex:1;min-width:0;position:relative;white-space:normal;overflow-wrap:anywhere;word-break:break-word;line-height:1.15;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.task-input{flex:1;width:100%;background:#fff;color:#1f2937;border:1px solid #d1d5db;border-radius:4px;padding:4px 6px;font:inherit;outline:none;position:relative}.task-node--selected{z-index:3;box-shadow:0 0 0 2px #fff,0 0 0 5px #f59e0b,0 0 14px 3px #f59e0b73,0 2px 6px #0000001a}.task-node--framed{border-radius:0 0 8px 8px}.task-node--selected.task-node--framed{box-shadow:none}.task-node--framed.task-node--has-progress:before{border-top-left-radius:0}.task-node--root{font-weight:700;letter-spacing:.01em}.task-node--root:not(.task-node--selected):not(.task-node--done){box-shadow:inset 0 0 0 1.5px #0000002e,0 1px 2px #00000014,0 3px 10px #0000001a}.task-node--done{font-weight:600}.task-node--ready:not(.task-node--selected):after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:10px;border:2px solid rgba(34,197,94,.95);box-shadow:0 0 10px 1px #22c55e73;pointer-events:none;animation:ready-pulse 1.8s ease-in-out infinite}@keyframes ready-pulse{0%,to{opacity:.55}50%{opacity:1}}.root-rail{position:fixed;top:0;right:0;bottom:0;width:180px;pointer-events:none;background:linear-gradient(to left,rgba(255,255,255,.95),rgba(255,255,255,.55) 70%,transparent);overflow:hidden}.rail-chip{position:absolute;right:10px;width:160px;pointer-events:auto;border:2px dashed rgba(55,65,81,.7);border-radius:6px;padding:0 10px 0 8px;font:inherit;font-weight:500;cursor:pointer;text-align:left;display:flex;align-items:center;gap:6px;box-shadow:0 0 0 2px #ffffffe6,0 2px 8px #0000001f}.rail-chip:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:4px;background:repeating-linear-gradient(45deg,transparent 0 6px,rgba(0,0,0,.06) 6px 12px);pointer-events:none}.rail-chip-arrow{font-size:18px;line-height:1;font-weight:700;opacity:.7;flex-shrink:0}.rail-chip-text{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.task-selection-frame{position:absolute;left:0;top:0;border-radius:8px;box-shadow:0 0 0 2px #fff,0 0 0 5px #f59e0b,0 0 14px 3px #f59e0b73,0 2px 6px #0000001a;z-index:1;pointer-events:none}.task-action-bar{position:absolute;left:0;top:0;display:flex;align-items:stretch;border-radius:8px 8px 0 0;border-bottom:2px solid rgba(0,0,0,.15);z-index:2;overflow:hidden}.task-action-btn{flex:1;background:transparent;border:none;color:inherit;cursor:pointer;font:inherit;font-size:16px;line-height:1;padding:0;display:flex;align-items:center;justify-content:center;opacity:.85}.task-action-btn:hover,.task-action-btn:active{background:#0000001a;opacity:1}.task-action-btn+.task-action-btn{border-left:2px solid rgba(0,0,0,.15)}.task-action-plus{position:absolute;left:0;top:0;border:none;border-radius:50%;cursor:pointer;font:inherit;font-size:0;line-height:0;padding:0;display:flex;align-items:center;justify-content:center;box-shadow:0 1px 2px #00000014,0 2px 6px #0000001f;z-index:2}.task-action-plus svg{display:block;flex:none}.task-action-plus:active{filter:brightness(.92)}@media (hover: none) and (pointer: coarse){.root-rail{display:none}}
