@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,500;0,600;0,700;1,400&family=JetBrains+Mono:wght@400;500;600;700&display=swap";.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.input-group select,select{width:100%;padding:8px 30px 8px 10px;border:1.5px solid var(--surface-border-strong);border-radius:var(--border-radius);background-color:var(--surface-color);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23586e75' stroke-width='2.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:12px;color:var(--text-primary);font-family:var(--font-mono);font-size:.85rem;outline:none;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}:root,[data-theme=solarized-latex]{--bg-color: #fdf6e3;--sidebar-bg: #eee8d5;--surface-color: #fffdfa;--surface-hover: #f7f0dc;--surface-border: #d3cbb7;--surface-border-strong: #93a1a1;--text-primary: #073642;--text-secondary: #586e75;--text-muted: #93a1a1;--accent-color: #cb4b16;--accent-hover: #dc322f;--accent-light: #eee8d5;--status-pending-bg: #eee8d5;--status-pending-text: #586e75;--status-ready-bg: #e8f4f8;--status-ready-text: #268bd2;--status-progress-bg: #fdf8e2;--status-progress-text: #b58900;--status-completed-bg: #edf7ed;--status-completed-text: #859900;--status-blocked-bg: #fdf0ed;--status-blocked-text: #dc322f;--font-heading: "IBM Plex Mono", "JetBrains Mono", monospace;--font-body: "IBM Plex Mono", "JetBrains Mono", monospace;--font-mono: "IBM Plex Mono", "JetBrains Mono", monospace;--border-radius: 0px;--edge-color: #cb4b16;--grid-color: #dcd4be}[data-theme=manuscript]{--bg-color: #f5f2e9;--sidebar-bg: #ece7db;--surface-color: #ffffff;--surface-hover: #fbf9f4;--surface-border: #c8c2b0;--surface-border-strong: #8a8270;--text-primary: #1c1917;--text-secondary: #57534e;--text-muted: #8c857b;--accent-color: #7c2d12;--accent-hover: #9a3412;--accent-light: #fef3c7;--status-pending-bg: #f5f5f4;--status-pending-text: #57534e;--status-ready-bg: #eff6ff;--status-ready-text: #1d4ed8;--status-progress-bg: #fefce8;--status-progress-text: #a16207;--status-completed-bg: #f0fdf4;--status-completed-text: #15803d;--status-blocked-bg: #fef2f2;--status-blocked-text: #b91c1c;--font-heading: "IBM Plex Mono", monospace;--font-body: "IBM Plex Mono", monospace;--font-mono: "IBM Plex Mono", monospace;--border-radius: 0px;--edge-color: #7c2d12;--grid-color: #dcd7c9}[data-theme=technical]{--bg-color: #f4f6f8;--sidebar-bg: #eaeff4;--surface-color: #ffffff;--surface-hover: #f0f4f8;--surface-border: #94a3b8;--surface-border-strong: #334155;--text-primary: #0f172a;--text-secondary: #334155;--text-muted: #64748b;--accent-color: #0369a1;--accent-hover: #075985;--accent-light: #e0f2fe;--status-pending-bg: #f1f5f9;--status-pending-text: #334155;--status-ready-bg: #e0f2fe;--status-ready-text: #0284c7;--status-progress-bg: #fef3c7;--status-progress-text: #d97706;--status-completed-bg: #dcfce7;--status-completed-text: #15803d;--status-blocked-bg: #fee2e2;--status-blocked-text: #dc2626;--font-heading: "JetBrains Mono", "IBM Plex Mono", monospace;--font-body: "JetBrains Mono", "IBM Plex Mono", monospace;--font-mono: "JetBrains Mono", monospace;--border-radius: 0px;--edge-color: #0369a1;--grid-color: #cbd5e1}[data-theme=oxford]{--bg-color: #f8fafc;--sidebar-bg: #f1f5f9;--surface-color: #ffffff;--surface-hover: #f8fafc;--surface-border: #cbd5e1;--surface-border-strong: #64748b;--text-primary: #0f172a;--text-secondary: #334155;--text-muted: #64748b;--accent-color: #1e3a8a;--accent-hover: #172554;--accent-light: #e0e7ff;--status-pending-bg: #f1f5f9;--status-pending-text: #475569;--status-ready-bg: #e0f2fe;--status-ready-text: #0369a1;--status-progress-bg: #fef9c3;--status-progress-text: #854d0e;--status-completed-bg: #dcfce7;--status-completed-text: #166534;--status-blocked-bg: #fee2e2;--status-blocked-text: #991b1b;--font-heading: "IBM Plex Mono", monospace;--font-body: "IBM Plex Mono", monospace;--font-mono: "IBM Plex Mono", monospace;--border-radius: 0px;--edge-color: #1e3a8a;--grid-color: #e2e8f0}*{box-sizing:border-box}body{margin:0;padding:0;min-height:100vh;background-color:var(--bg-color);color:var(--text-primary);font-family:var(--font-body);font-size:14px;line-height:1.5;overflow:hidden;color-scheme:light}h1,h2,h3,h4,h5{font-family:var(--font-heading);color:var(--text-primary);font-weight:600;letter-spacing:-.01em}.app-container{display:flex;height:100vh;width:100vw;overflow:hidden;background:var(--bg-color)}.sidebar{width:280px;background:var(--sidebar-bg);border-right:1.5px solid var(--surface-border);display:flex;flex-direction:column;padding:1.25rem 1rem;z-index:10}.sidebar-header{display:flex;align-items:center;gap:8px;font-family:var(--font-heading);font-size:1.15rem;font-weight:700;padding-bottom:.85rem;border-bottom:1.5px solid var(--surface-border);margin-bottom:1rem;color:var(--accent-color)}.project-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:4px}.project-item{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;cursor:pointer;color:var(--text-secondary);border:1px solid transparent;border-radius:var(--border-radius);font-size:.88rem;transition:all .15s ease}.project-item:hover{background:var(--surface-hover);color:var(--text-primary);border-color:var(--surface-border)}.project-item.active{background:var(--surface-color);border:1.5px solid var(--surface-border-strong);color:var(--text-primary);font-weight:600;box-shadow:2px 2px #0000000f}.project-item .actions{display:none;gap:3px}.project-item:hover .actions{display:flex}.sidebar-section-title{display:flex;align-items:center;gap:6px;font-size:.72rem;font-family:var(--font-mono);color:var(--text-secondary);text-transform:uppercase;margin-top:1rem;margin-bottom:6px;letter-spacing:.5px}.task-type-badge{font-family:var(--font-mono);font-size:.65rem;font-weight:700;text-transform:uppercase;padding:1px 5px;border-radius:var(--border-radius);border:1px solid currentColor}.task-type-badge[data-type=lecture]{color:#268bd2;background:#268bd214}.task-type-badge[data-type=quiz]{color:#d33682;background:#d3368214}.task-type-badge[data-type=assignment]{color:#b58900;background:#b5890014}.task-type-badge[data-type=exam]{color:#dc322f;background:#dc322f1f;font-weight:800}.task-type-badge[data-type=feature]{color:#859900;background:#85990014}.task-type-badge[data-type=bug]{color:#dc322f;background:#dc322f14}.academic-gate-node{position:relative;min-width:230px;background:var(--surface-color);border:2px solid #dc322f;border-radius:var(--border-radius);padding:12px 14px;color:var(--text-primary);box-shadow:4px 4px #dc322f26;transition:all .2s ease}.academic-gate-node.quiz-gate{border-color:#d33682;box-shadow:4px 4px #d3368226}.academic-gate-node.unlocked{border-color:#2aa198;box-shadow:4px 4px #2aa19833}.academic-gate-node.selected{outline:2px solid var(--accent-color)}.academic-vertical-bar{position:absolute;left:50%;top:-1200px;bottom:-1200px;width:2px;border-left:2px dashed rgba(220,50,47,.35);pointer-events:none;z-index:-1;transform:translate(-50%)}.academic-gate-node.quiz-gate .academic-vertical-bar{border-left:2px dashed rgba(211,54,130,.35)}.academic-gate-node.unlocked .academic-vertical-bar{border-left:2px solid rgba(42,161,152,.5)}.academic-gate-flag{position:absolute;top:-34px;left:50%;transform:translate(-50%);background:#dc322f;color:#fff;padding:3px 10px;font-family:var(--font-mono);font-size:.72rem;font-weight:700;white-space:nowrap;letter-spacing:.5px;border-radius:var(--border-radius);box-shadow:0 2px 6px #00000026;display:flex;align-items:center;gap:5px;z-index:10}.academic-gate-node.quiz-gate .academic-gate-flag{background:#d33682}.academic-gate-node.unlocked .academic-gate-flag{background:#2aa198}.main-content{flex:1;display:flex;flex-direction:column;position:relative;background:var(--bg-color)}.top-bar{height:58px;border-bottom:1.5px solid var(--surface-border);display:flex;align-items:center;padding:0 1.5rem;justify-content:space-between;background:var(--surface-color);position:relative;z-index:50}.top-bar-title{display:flex;align-items:center;gap:12px}.top-bar-title h2{margin:0;font-size:1.2rem;font-family:var(--font-heading)}.project-stats-bar{display:flex;align-items:center;gap:1.25rem;padding:6px 1.5rem;background:var(--surface-color);border-bottom:1.5px solid var(--surface-border);font-family:var(--font-mono);font-size:.78rem;color:var(--text-primary);box-shadow:0 1px 3px #0000000a;flex-wrap:wrap;position:relative;z-index:10}.stat-item{display:flex;align-items:center;gap:6px;white-space:nowrap}.stat-item .stat-label{color:var(--text-secondary);font-size:.72rem;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.stat-item .stat-val{font-weight:700;color:var(--text-primary)}.stat-item .stat-sub{color:var(--text-muted);font-size:.72rem}.stat-divider{width:1px;height:14px;background:var(--surface-border-strong)}.progress-track{width:100px;height:8px;background:var(--sidebar-bg);border:1px solid var(--surface-border-strong);border-radius:999px;overflow:hidden;position:relative}.progress-fill{height:100%;background:linear-gradient(90deg,#268bd2,#2aa198);border-radius:999px;transition:width .4s cubic-bezier(.4,0,.2,1)}.top-actions{display:flex;align-items:center;gap:8px}.theme-selector{display:flex;align-items:center;gap:6px;font-size:.82rem;font-family:var(--font-mono);color:var(--text-secondary);background:var(--sidebar-bg);padding:4px 8px;border:1.5px solid var(--surface-border);border-radius:var(--border-radius)}.theme-selector select{background:transparent;border:none;font-family:inherit;font-size:.82rem;color:var(--text-primary);font-weight:600;outline:none;cursor:pointer}.hamburger-menu-container{position:relative}.hamburger-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border-radius:var(--border-radius);background:var(--surface-color);border:1.5px solid var(--surface-border-strong);color:var(--text-primary);cursor:pointer;transition:all .15s ease}.hamburger-btn:hover,.hamburger-btn.active{background:var(--sidebar-bg);border-color:var(--accent-color);color:var(--accent-color)}.actions-dropdown-menu{position:absolute;top:calc(100% + 8px);right:0;width:270px;background:var(--surface-color);border:1.5px solid var(--surface-border-strong);border-radius:var(--border-radius);box-shadow:0 8px 24px #0000002e;padding:6px;z-index:1000;display:flex;flex-direction:column;gap:3px;animation:fadeIn .12s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.dropdown-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;font-size:.82rem;font-family:var(--font-body);color:var(--text-primary);background:transparent;border:1px solid transparent;border-radius:var(--border-radius);cursor:pointer;text-align:left;width:100%;transition:all .15s ease}.dropdown-item:hover{background:var(--sidebar-bg);border-color:var(--surface-border);color:var(--accent-color)}.dropdown-item.active-flag{background:#268bd21a;border-color:#268bd24d;color:#268bd2}.dropdown-item-left{display:flex;align-items:center;gap:8px}.dropdown-divider{height:1px;background:var(--surface-border);margin:4px 0}.dropdown-theme-row{padding:6px 8px;display:flex;flex-direction:column;gap:4px}.dropdown-theme-row label{font-size:.72rem;font-family:var(--font-mono);color:var(--text-secondary);text-transform:uppercase}.dropdown-theme-row select{width:100%;padding:6px 8px;font-size:.8rem;background:var(--sidebar-bg);border:1px solid var(--surface-border);border-radius:var(--border-radius);color:var(--text-primary)}.graph-container{flex:1;position:relative;background:var(--bg-color)}.task-node{padding:12px 14px;background:var(--surface-color);border:1.5px solid var(--surface-border-strong);border-radius:var(--border-radius);color:var(--text-primary);min-width:240px;max-width:280px;cursor:pointer;box-shadow:2px 2px #00000014;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.task-node:hover{transform:translate(-2px,-2px);box-shadow:4px 4px #00000024;border-color:var(--accent-color);background:var(--surface-hover)}.task-node.selected{border:2px solid var(--accent-color);box-shadow:4px 4px 0 var(--accent-color)}.task-node.orphan{border-style:dashed;border-color:var(--text-muted);opacity:.9}.task-node .node-header,.academic-gate-node .node-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;gap:8px}.status-badge{font-family:var(--font-mono);font-size:.68rem;font-weight:600;padding:1px 6px;border-radius:var(--border-radius);text-transform:uppercase;border:1px solid currentColor}.status-badge[data-status=Pending]{background:var(--status-pending-bg);color:var(--status-pending-text)}.status-badge[data-status=Ready]{background:var(--status-ready-bg);color:var(--status-ready-text)}.status-badge[data-status="In Progress"]{background:var(--status-progress-bg);color:var(--status-progress-text)}.status-badge[data-status=Completed]{background:var(--status-completed-bg);color:var(--status-completed-text)}.status-badge[data-status=Blocked]{background:var(--status-blocked-bg);color:var(--status-blocked-text)}.priority-indicator{font-family:var(--font-mono);font-size:.72rem;font-weight:600;color:var(--text-secondary)}.task-node .title,.academic-gate-node .title{font-family:var(--font-heading);font-weight:600;font-size:.95rem;line-height:1.35;margin-bottom:6px;color:var(--text-primary)}.task-node .tags,.academic-gate-node .tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}.tag-badge{font-family:var(--font-mono);background:var(--sidebar-bg);border:1px solid var(--surface-border);font-size:.68rem;padding:0 4px;border-radius:var(--border-radius);color:var(--text-secondary)}.task-node .meta,.academic-gate-node .meta{font-family:var(--font-mono);font-size:.72rem;color:var(--text-muted);display:flex;align-items:center;justify-content:space-between;padding-top:6px;border-top:1px solid var(--surface-border)}.graph-navigator-bar{position:absolute;bottom:1.25rem;left:50%;transform:translate(-50%);max-width:92%;padding:6px 12px;background:var(--surface-color);border:1.5px solid var(--surface-border-strong);border-radius:var(--border-radius);display:flex;align-items:center;gap:8px;z-index:10;box-shadow:0 4px 16px #0000001f}.nav-jump-btn{background:var(--sidebar-bg);border:1px solid var(--surface-border);color:var(--text-primary);font-size:.76rem;padding:4px 10px;border-radius:var(--border-radius);cursor:pointer;display:flex;align-items:center;gap:5px;white-space:nowrap;font-family:var(--font-mono);transition:all .15s ease}.nav-jump-btn:hover{background:var(--accent-color);color:#fff;border-color:var(--accent-color)}.nav-jump-btn.primary-jump{background:#268bd21f;color:#268bd2;border-color:#268bd2;font-weight:700}.nav-jump-btn.primary-jump:hover{background:#268bd2;color:#fff}.week-pills-container{display:flex;align-items:center;gap:4px;overflow-x:auto;max-width:520px;padding:2px 0;scrollbar-width:none}.week-pills-container::-webkit-scrollbar{display:none}.week-pill{padding:3px 8px;font-size:.72rem;font-family:var(--font-mono);background:var(--sidebar-bg);border:1px solid var(--surface-border);border-radius:var(--border-radius);color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:all .12s ease}.week-pill:hover{background:var(--surface-border-strong);color:var(--text-primary)}.week-pill.gate-pill{background:#d336821a;color:#d33682;border-color:#d33682;font-weight:700}.week-pill.gate-pill:hover{background:#d33682;color:#fff}button{background:var(--accent-color);color:#fff;border:1.5px solid var(--accent-color);border-radius:var(--border-radius);padding:6px 12px;font-family:var(--font-body);font-weight:600;font-size:.82rem;cursor:pointer;display:inline-flex;align-items:center;gap:6px;box-shadow:1px 1px #0000001a;transition:all .15s ease}button:hover{background:var(--accent-hover);border-color:var(--accent-hover)}button.secondary{background:var(--surface-color);color:var(--text-primary);border:1.5px solid var(--surface-border-strong)}button.secondary:hover{background:var(--surface-hover);border-color:var(--text-primary)}button.danger{background:#fef2f2;color:#b91c1c;border:1.5px solid #f87171}button.danger:hover{background:#fee2e2;border-color:#ef4444}button.icon-btn{padding:4px;background:transparent;border:none;box-shadow:none;color:var(--text-secondary)}button.icon-btn:hover{color:var(--text-primary);background:var(--surface-hover)}.panel{position:absolute;right:0;top:0;bottom:0;width:360px;border-left:1.5px solid var(--surface-border-strong);padding:1.5rem;background:var(--surface-color);box-shadow:-3px 0 10px #0000000d;transform:translate(100%);transition:transform .2s ease;z-index:20;overflow-y:auto}.panel.open{transform:translate(0)}.input-group{margin-bottom:1rem}.input-group label{display:block;font-family:var(--font-mono);font-size:.72rem;font-weight:600;text-transform:uppercase;color:var(--text-secondary);margin-bottom:4px}.input-group input:not([type=checkbox]):not([type=radio]),.input-group textarea{width:100%;padding:8px 10px;border:1.5px solid var(--surface-border-strong);border-radius:var(--border-radius);background:var(--surface-color);color:var(--text-primary);font-family:var(--font-mono);font-size:.85rem;outline:none;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}.input-group select,select{width:100%;padding:8px 30px 8px 10px;border:1.5px solid var(--surface-border-strong);border-radius:var(--border-radius);background-color:var(--surface-color);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23586e75' stroke-width='2.5' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:12px;color:var(--text-primary);font-family:var(--font-mono);font-size:.85rem;outline:none;cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}.input-group input:not([type=checkbox]):not([type=radio]):focus,.input-group select:focus,.input-group textarea:focus,select:focus{border-color:var(--accent-color);box-shadow:2px 2px 0 var(--accent-color)}option{background:var(--surface-color);color:var(--text-primary);font-family:var(--font-mono);padding:6px 10px}.form-row{display:flex;gap:10px}.form-row .input-group{flex:1}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:50;padding:1rem}.modal{width:100%;max-width:540px;max-height:88vh;overflow-y:auto;padding:1.5rem;background:var(--surface-color);border:2px solid var(--surface-border-strong);border-radius:var(--border-radius);box-shadow:4px 4px #00000026;box-sizing:border-box}.toast{position:fixed;bottom:2rem;right:2rem;padding:10px 16px;border-radius:var(--border-radius);background:var(--surface-color);border:1.5px solid var(--surface-border-strong);font-family:var(--font-mono);font-size:.82rem;box-shadow:3px 3px #00000026;z-index:100;display:flex;align-items:center;gap:8px}.toast.error{border-color:#dc2626;background:#fef2f2;color:#991b1b}.toast.success{border-color:#16a34a;background:#f0fdf4;color:#166534}.nav-tabs-wrapper{display:flex;flex-direction:column;gap:6px;margin-bottom:1.25rem;padding-bottom:.85rem;border-bottom:1.5px solid var(--surface-border)}.nav-tab-hero{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:9px 12px;font-size:.86rem;font-family:var(--font-mono);background:var(--surface-color);color:var(--text-secondary);border:1.5px solid var(--surface-border-strong);border-radius:var(--border-radius);cursor:pointer;transition:all .15s ease;font-weight:600}.nav-tab-hero:hover{background:var(--surface-hover);color:var(--text-primary);border-color:var(--accent-color)}.nav-tab-hero.active{background:var(--accent-color);color:#fff;border-color:var(--accent-color);font-weight:700;box-shadow:2px 2px #00000014}.nav-tabs-subrow{display:flex;gap:6px;width:100%}.nav-tab-btn{flex:1;padding:7px 8px;font-size:.78rem;font-family:var(--font-mono);background:var(--surface-color);color:var(--text-secondary);border:1.5px solid var(--surface-border);border-radius:var(--border-radius);display:flex;align-items:center;justify-content:center;gap:5px;cursor:pointer;transition:all .15s ease}.nav-tab-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.nav-tab-btn.active{background:var(--accent-color);color:#fff;border-color:var(--accent-color);font-weight:700}.timesheet-view{flex:1;padding:1.5rem 2rem;overflow-y:auto;background:var(--bg-color)}.metrics-row{display:flex;gap:1rem;margin-bottom:1rem}.all-time-category-bar{display:flex;align-items:center;gap:12px;background:var(--surface-color);border:1.5px solid var(--surface-border-strong);border-radius:var(--border-radius);padding:.75rem 1.25rem;margin-bottom:1.5rem;box-shadow:2px 2px #0000000f;flex-wrap:wrap}.all-time-category-title{font-family:var(--font-mono);font-size:.75rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.all-time-category-chips{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:1}.category-chip{display:inline-flex;align-items:center;gap:8px;background:var(--sidebar-bg);border:1px solid var(--surface-border);border-radius:var(--border-radius);padding:4px 10px;font-family:var(--font-mono);font-size:.78rem;transition:all .15s ease}.category-chip:hover{border-color:var(--accent-color)}.category-chip .cat-name{font-weight:600;color:var(--text-primary)}.category-chip .cat-hours{background:#268bd226;color:var(--accent-color);padding:1px 6px;border-radius:var(--border-radius);font-weight:700}.metric-card{flex:1;background:var(--surface-color);border:1.5px solid var(--surface-border-strong);border-radius:var(--border-radius);padding:.9rem 1.25rem;box-shadow:2px 2px #0000000f}.metric-label{font-family:var(--font-mono);font-size:.72rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.metric-val{font-family:var(--font-heading);font-size:1.7rem;font-weight:700;color:var(--accent-color);line-height:1.1}.timesheet-split{display:grid;grid-template-columns:460px 1fr;gap:1.5rem;align-items:start}.daily-detail-panel{background:var(--surface-color);border:1.5px solid var(--surface-border-strong);border-radius:var(--border-radius);box-shadow:2px 2px #0000000f;padding:1.25rem}.daily-detail-header{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:.85rem;border-bottom:1.5px solid var(--surface-border);margin-bottom:1rem}.daily-detail-title{font-family:var(--font-heading);font-size:1.2rem;font-weight:700;color:var(--text-primary);margin:0}.daily-detail-total{text-align:right}.daily-detail-total-val{font-family:var(--font-heading);font-size:1.4rem;font-weight:700;color:var(--accent-color)}.day-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:.82rem;margin-bottom:1.25rem}.day-table th{background:var(--sidebar-bg);color:var(--text-primary);text-align:left;padding:7px 10px;border-bottom:1.5px solid var(--surface-border);font-weight:600;text-transform:uppercase;font-size:.7rem}.day-table td{padding:7px 10px;border-bottom:1px solid var(--surface-border);color:var(--text-primary)}.day-table tr:hover td{background:var(--surface-hover)}.day-log-form{background:var(--sidebar-bg);border:1.5px solid var(--surface-border);border-radius:var(--border-radius);padding:1rem;margin-top:1rem}.day-log-form h4{margin:0 0 10px;font-size:.9rem;font-family:var(--font-heading);color:var(--text-primary)}.calendar-panel{background:var(--surface-color);border:1.5px solid var(--surface-border-strong);border-radius:var(--border-radius);box-shadow:2px 2px #0000000f;padding:1.25rem}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1.5px solid var(--surface-border)}.calendar-month-title{font-family:var(--font-heading);font-size:1.25rem;font-weight:700;margin:0}.calendar-nav-buttons{display:flex;gap:6px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.calendar-weekday-header{font-family:var(--font-mono);font-size:.72rem;font-weight:700;text-align:center;padding:6px 0;color:var(--text-secondary);background:var(--sidebar-bg);border:1px solid var(--surface-border);border-radius:var(--border-radius)}.calendar-day-tile{background:var(--sidebar-bg);border:1.5px solid var(--surface-border);border-radius:var(--border-radius);padding:8px 6px;min-height:72px;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;transition:all .15s ease}.calendar-day-tile:hover{border-color:var(--accent-color);background:var(--surface-hover);transform:translate(-1px,-1px)}.calendar-day-tile.selected{border:2px solid var(--accent-color);background:var(--surface-color);box-shadow:2px 2px 0 var(--accent-color)}.calendar-day-tile.today{border-color:var(--accent-color)}.calendar-day-tile.today .day-num{color:var(--accent-color);font-weight:700}.calendar-day-tile.empty{background:transparent;border-color:transparent;cursor:default}.calendar-day-tile.empty:hover{transform:none;background:transparent;border-color:transparent}.day-num{font-family:var(--font-mono);font-size:.78rem;font-weight:600;color:var(--text-primary)}.day-hours-pill{font-family:var(--font-mono);font-size:.7rem;font-weight:700;background:var(--surface-color);color:var(--accent-color);border:1px solid var(--accent-color);border-radius:var(--border-radius);padding:2px 4px;text-align:center;align-self:flex-end;margin-top:4px}.action-board-view{flex:1;padding:1.5rem 2.25rem 3rem;overflow-y:auto;background:var(--bg-color);display:flex;flex-direction:column;gap:1.5rem}.action-board-header{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:1rem;border-bottom:1.5px solid var(--surface-border-strong);padding-bottom:1rem}.action-board-title h2{margin:0 0 4px;font-size:1.45rem;font-family:var(--font-heading);display:flex;align-items:center;gap:10px}.action-board-title p{margin:0;font-size:.84rem;color:var(--text-secondary);font-family:var(--font-mono)}.action-board-metrics{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.board-stat-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--border-radius);font-family:var(--font-mono);font-size:.8rem;font-weight:700;border:1.5px solid var(--surface-border-strong);background:var(--surface-color)}.board-stat-chip.urgent{border-color:#dc322f;background:#dc322f14;color:#dc322f}.board-stat-chip.crunch{border-color:#b58900;background:#b5890014;color:#b58900}.board-stat-chip.ready{border-color:#859900;background:#85990014;color:#859900}.board-stat-chip.hours{border-color:var(--accent-color);background:#268bd214;color:var(--accent-color)}.triage-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.triage-box{background:var(--surface-color);border-radius:var(--border-radius);padding:1.2rem;box-shadow:2px 3px #0000000f;display:flex;flex-direction:column}.triage-box.urgent-box{border:2px solid #dc322f;background:linear-gradient(180deg,rgba(220,50,47,.05) 0%,var(--surface-color) 120px)}.triage-box.crunch-box{border:2px solid #b58900;background:linear-gradient(180deg,rgba(181,137,0,.05) 0%,var(--surface-color) 120px)}.triage-box-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1.5px solid var(--surface-border)}.triage-box-header h3{margin:0;font-size:1rem;font-family:var(--font-heading);display:flex;align-items:center;gap:8px}.urgent-box .triage-box-header h3{color:#dc322f}.crunch-box .triage-box-header h3{color:#b58900}.formula-tag{font-family:var(--font-mono);font-size:.68rem;padding:2px 6px;border-radius:4px;background:var(--sidebar-bg);border:1px solid var(--surface-border-strong);color:var(--text-secondary)}.triage-card-list{display:flex;flex-direction:column;gap:10px;max-height:420px;overflow-y:auto;padding-right:4px}.triage-empty-placeholder{text-align:center;padding:2rem 1rem;color:var(--text-muted);font-family:var(--font-mono);font-size:.82rem}.action-card{background:var(--bg-color);border:1.5px solid var(--surface-border-strong);border-radius:var(--border-radius);padding:10px 14px;transition:all .15s ease;display:flex;flex-direction:column;gap:8px}.action-card:hover{transform:translateY(-1px);box-shadow:2px 3px #00000014;border-color:var(--accent-color)}.action-card-header{display:flex;justify-content:space-between;align-items:center;gap:8px}.action-project-tag{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:.68rem;font-weight:700;text-transform:uppercase;color:var(--text-secondary);background:var(--surface-color);border:1px solid var(--surface-border);padding:1px 6px;border-radius:4px}.action-card-title{font-family:var(--font-heading);font-size:.95rem;font-weight:700;color:var(--text-primary);line-height:1.25}.action-card-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-family:var(--font-mono);font-size:.74rem;color:var(--text-secondary)}.burn-rate-chip{font-weight:700;padding:1px 6px;border-radius:4px}.burn-rate-chip.urgent{background:#dc322f;color:#fff}.burn-rate-chip.crunch{background:#b5890033;color:#b58900;border:1px solid #b58900}.action-card-actions{display:flex;align-items:center;gap:6px;margin-top:2px}.action-btn-mini{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;font-size:.72rem;font-family:var(--font-mono);border-radius:var(--border-radius);cursor:pointer;border:1px solid var(--surface-border-strong);background:var(--surface-color);color:var(--text-primary);transition:all .12s ease}.action-btn-mini:hover{background:var(--sidebar-bg);border-color:var(--accent-color)}.action-btn-mini.start{background:#268bd21f;color:var(--accent-color);border-color:var(--accent-color);font-weight:600}.action-btn-mini.complete{background:#85990026;color:#859900;border-color:#859900;font-weight:600}.action-board-section{display:flex;flex-direction:column;gap:1.2rem}.action-board-section-title{margin:0;font-size:1.15rem;font-family:var(--font-heading);display:flex;align-items:center;gap:8px}.project-task-cluster{background:var(--surface-color);border:1.5px solid var(--surface-border-strong);border-radius:var(--border-radius);padding:1.25rem;box-shadow:2px 2px #0000000a}.cluster-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:6px;border-bottom:1px dashed var(--surface-border-strong)}.cluster-title{display:flex;align-items:center;gap:8px;font-family:var(--font-heading);font-size:1.05rem;font-weight:700}.cluster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.preset-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(95px,1fr));gap:8px;margin-bottom:1.25rem}.preset-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:10px 8px;background:var(--surface-color);border:1.5px solid var(--surface-border);border-radius:var(--border-radius);cursor:pointer;transition:all .15s ease;-webkit-user-select:none;user-select:none}.preset-card:hover{border-color:var(--accent-color);background:var(--surface-hover);transform:translateY(-1px)}.preset-card.active{border-color:var(--accent-color);background:#cb4b1614;box-shadow:0 0 0 1px var(--accent-color)}.preset-icon{font-size:1.25rem;margin-bottom:4px}.preset-name{font-weight:700;font-size:.8rem;color:var(--text-primary)}.preset-desc{font-size:.68rem;color:var(--text-muted);margin-top:2px;line-height:1.2}.features-config-list{display:flex;flex-direction:column;gap:8px;margin-bottom:1.25rem}.feature-toggle-card{display:flex;flex-direction:row;align-items:flex-start;gap:12px;padding:10px 14px;background:var(--surface-color);border:1.5px solid var(--surface-border);border-radius:var(--border-radius);cursor:pointer;transition:all .12s ease;-webkit-user-select:none;user-select:none;width:100%;box-sizing:border-box}.feature-toggle-card:hover{background:var(--surface-hover);border-color:var(--surface-border-strong)}.feature-toggle-card.enabled{border-color:var(--accent-color);background:#cb4b160a}.feature-toggle-checkbox,.input-group input[type=checkbox].feature-toggle-checkbox{width:18px!important;height:18px!important;min-width:18px!important;max-width:18px!important;padding:0!important;margin:2px 0 0!important;cursor:pointer;accent-color:var(--accent-color);flex-shrink:0;box-shadow:none!important;outline:none!important;-moz-appearance:auto!important;appearance:auto!important;-webkit-appearance:checkbox!important}.feature-info{flex:1;min-width:0}.feature-header-row{display:flex;align-items:center;gap:8px;font-weight:700;font-size:.84rem;color:var(--text-primary)}.feature-header-row svg{flex-shrink:0}.feature-desc{font-size:.72rem;color:var(--text-secondary);margin-top:3px;line-height:1.35}.feature-badge-row{display:inline-flex;align-items:center;gap:4px;margin-left:6px}.mini-badge{font-size:.62rem;font-family:var(--font-mono);padding:1px 4px;border-radius:2px;background:var(--surface-border);color:var(--text-secondary);border:1px solid var(--surface-border-strong)}.mini-badge.gates{background:#dc322f1a;color:#dc322f;border-color:#dc322f4d}.mini-badge.recurring{background:#268bd21a;color:#268bd2;border-color:#268bd24d}.mini-badge.meters{background:#8599001a;color:#859900;border-color:#8599004d}.mini-badge.time{background:#b589001a;color:#b58900;border-color:#b589004d}.mini-badge.pomodoro{background:#d336821a;color:#d33682;border-color:#d336824d}.sidebar-category-header{display:flex;justify-content:space-between;align-items:center;padding:6px 4px 4px;font-size:.72rem;font-family:var(--font-mono);font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px dashed var(--surface-border-strong);margin-top:.75rem;margin-bottom:4px}.mobile-menu-btn{display:none}@media (max-width: 768px){.mobile-menu-btn{display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-primary);cursor:pointer;padding:4px;border-radius:4px}.mobile-menu-btn:hover{background:#0000000d}}[data-theme=custom]{--bg-color: #fdf6e3;--sidebar-bg: #eee8d5;--surface-color: #ffffff;--surface-hover: #f9f8f5;--surface-border: #d3cbb7;--surface-border-strong: #93a1a1;--text-primary: #073642;--text-secondary: #586e75;--text-muted: #93a1a1;--accent-color: #cb4b16;--accent-hover: #dc322f;--status-pending-bg: #eee8d5;--status-pending-text: #586e75;--status-ready-bg: #e8f4f8;--status-ready-text: #268bd2;--status-progress-bg: #fdf8e2;--status-progress-text: #b58900;--status-completed-bg: #edf7ed;--status-completed-text: #859900;--status-blocked-bg: #fdf0ed;--status-blocked-text: #dc322f;--font-heading: "IBM Plex Mono", monospace;--font-body: "IBM Plex Mono", monospace;--font-mono: "IBM Plex Mono", monospace;--border-radius: 0px;--edge-color: #cb4b16;--grid-color: #dcd4be}
