:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{box-sizing:border-box;width:100%;min-height:100svh}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}#app{box-sizing:border-box;text-align:left;width:100%;padding:24px}.app-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.app-header h1{margin:0;font-size:28px}.app-title{align-items:center;gap:10px;display:flex}.local-badge{white-space:nowrap;text-transform:uppercase;letter-spacing:.5px;color:var(--text);border:1px dashed var(--border);border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:11px;display:inline-flex}.app-header-actions{align-items:center;gap:10px;display:flex}.search-box{border:1px solid var(--border);color:var(--text);border-radius:6px;align-items:center;gap:6px;padding:0 10px;display:flex}.search-box input{min-width:160px;color:inherit;font:inherit;background:0 0;border:none;outline:none;padding:8px 0}.quick-add{gap:8px;display:flex}.quick-add input{border:1px solid var(--border);border-radius:6px;min-width:240px;padding:8px 12px}.quick-add button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;width:36px}.project-filter-bar{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.chip{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-size:14px;display:inline-flex}.chip-active{border-color:var(--chip-color,var(--accent));color:var(--chip-color,var(--accent));background:var(--accent-bg)}.kanban-board{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.kanban-column{background:var(--code-bg);border-radius:8px;min-height:400px;padding:12px}.kanban-column-over{outline:2px dashed var(--accent-border);outline-offset:-2px}.kanban-column-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text);justify-content:space-between;align-items:center;margin:0 0 12px;font-size:14px;display:flex}.kanban-column-count{background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:1px 8px;font-size:12px}.kanban-empty{color:var(--text);opacity:.5;text-align:center;padding:24px 0;font-size:13px}.kanban-hidden{color:var(--text);opacity:.55;text-align:center;padding:20px 0;font-size:12px;font-style:italic}.kanban-column-body{flex-direction:column;gap:8px;display:flex}.task-card{background:var(--bg);border:1px solid var(--border);cursor:pointer;text-align:left;border-left:3px solid #999;border-radius:6px;padding:10px;transition:box-shadow .15s,transform .15s,border-color .15s}.task-card:hover{border-color:var(--accent-border);box-shadow:var(--shadow);transform:translateY(-1px)}.task-card-project{text-transform:uppercase;align-items:center;gap:5px;font-size:11px;font-weight:600;display:inline-flex}.task-card-title{color:var(--text-h);margin:4px 0;font-size:14px}.task-card-meta{flex-wrap:wrap;gap:6px;display:flex}.task-tag{background:var(--accent-bg);color:var(--accent);border-radius:4px;align-items:center;gap:3px;padding:2px 6px;font-size:11px;display:inline-flex}.task-tag-stack{background:var(--code-bg);color:var(--text-h)}.task-tag-assignee,.task-tag-subtasks{background:var(--code-bg);color:var(--text)}.modal-overlay{z-index:10;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.search-box,.quick-add input,.chip,.view-btn,.task-card{transition:border-color .15s,background .15s,box-shadow .15s,color .15s}.search-box:focus-within,.quick-add input:focus,.modal-field input:focus,.modal-field select:focus,.modal-field textarea:focus,.comment-add input:focus,.subtask-add input:focus{border-color:var(--accent);outline:none}.chip:hover,.view-btn:hover{border-color:var(--accent-border)}.quick-add button:hover,.comment-add button:hover,.btn-primary:hover{filter:brightness(1.08)}.btn-danger:hover{background:#e639461a}.calendar-nav button:hover{border-color:var(--accent-border);color:var(--accent)}.calendar-task:hover{filter:brightness(.97)}.modal{background:var(--bg);border:1px solid var(--border);text-align:left;width:480px;max-width:90vw;max-height:85vh;box-shadow:var(--shadow);border-radius:10px;padding:24px;position:relative;overflow-y:auto}.modal-close{cursor:pointer;color:var(--text);background:0 0;border:none;position:absolute;top:16px;right:16px}.modal-field{flex-direction:column;flex:1;gap:4px;margin-bottom:12px;font-size:13px;display:flex}.modal-field input,.modal-field select,.modal-field textarea{border:1px solid var(--border);font:inherit;border-radius:6px;padding:8px}.modal-field-row{gap:10px;display:flex}.modal-subtasks{border-top:1px solid var(--border);margin-top:4px;padding-top:12px}.modal-subtasks h4{margin:0 0 8px;font-size:13px}.subtask-row{align-items:center;gap:8px;margin-bottom:6px;font-size:13px;display:flex}.subtask-row select{font-size:11px}.subtask-row span{flex:1}.subtask-row button{cursor:pointer;color:var(--text);background:0 0;border:none}.subtask-add input{border:1px solid var(--border);border-radius:6px;flex:1;padding:6px 8px}.modal-thread{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}.modal-thread h4{margin:0 0 8px;font-size:13px}.thread-empty{opacity:.6;margin:0 0 8px;font-size:12px}.thread-scroll{max-height:200px;margin-bottom:8px;padding-right:4px;overflow-y:auto}.thread-scroll-expanded{max-height:60vh}.thread-toggle{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0 0 8px;font-size:12px}.thread-toggle:hover{text-decoration:underline}.thread-count{background:var(--code-bg);min-width:16px;color:var(--text);text-align:center;border-radius:8px;padding:0 5px;font-size:11px;font-weight:600;display:inline-block}.comment{background:var(--code-bg);border-radius:6px;margin-bottom:8px;padding:8px 10px;font-size:13px}.comment-head{justify-content:space-between;align-items:baseline;margin-bottom:3px;display:flex}.comment-head span{opacity:.6;font-size:11px}.comment p{white-space:pre-wrap;margin:0}.comment-add{align-items:center;gap:8px;display:flex}.comment-add input{border:1px solid var(--border);font:inherit;border-radius:6px;flex:1;padding:8px}.comment-add button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;align-items:center;padding:8px 10px;display:flex}.activity-row{opacity:.85;justify-content:space-between;gap:10px;padding:3px 0;font-size:12px;display:flex}.activity-date{opacity:.6;white-space:nowrap}.modal-actions{justify-content:space-between;margin-top:16px;display:flex}.btn-primary,.btn-danger{cursor:pointer;border:none;border-radius:6px;padding:8px 16px;font-size:14px}.btn-primary{background:var(--accent);color:#fff}.btn-danger{color:#e63946;background:0 0}.auth-loading{min-height:60vh;color:var(--text);justify-content:center;align-items:center;display:flex}.login-screen{box-sizing:border-box;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--bg);border:1px solid var(--border);text-align:left;border-radius:12px;flex-direction:column;gap:12px;width:320px;max-width:90vw;padding:28px;display:flex}.login-card h1{margin:0;font-size:22px}.login-card p{color:var(--text);opacity:.7;margin:0 0 4px;font-size:13px}.login-card input{border:1px solid var(--border);font:inherit;border-radius:6px;padding:10px 12px}.login-card button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:10px;font-size:14px}.login-card button:disabled{opacity:.6;cursor:default}.logout-btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.login-toggle{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:4px;font-size:13px}.task-card{position:relative}.task-card-priority{border-radius:50%;width:8px;height:8px;position:absolute;top:9px;right:9px}.task-tag-due{background:var(--code-bg);color:var(--text)}.task-tag-due.due-ok{color:#16a34a;background:#16a34a22}.task-tag-due.due-soon{color:#b45309;background:#f59e0b22}.task-tag-due.due-overdue{color:#dc2626;background:#dc262622;font-weight:600}.task-tag-label{background:var(--accent-bg);color:var(--accent)}.view-switcher{gap:6px;margin-bottom:16px;display:flex}.view-btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;display:inline-flex}.view-btn-active{background:var(--accent-bg);color:var(--accent);border-color:var(--accent-border)}.view-btn-toggle{margin-left:auto}.calendar-nav{justify-content:center;align-items:center;gap:16px;margin-bottom:12px;display:flex}.calendar-nav button{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:6px;padding:4px 8px}.calendar-title{text-transform:capitalize;text-align:center;min-width:160px;font-size:15px;font-weight:600}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.calendar-weekday{text-align:center;opacity:.6;padding:4px 0;font-size:12px;font-weight:600}.calendar-cell{border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:3px;min-height:92px;padding:4px;display:flex}.calendar-cell-empty{border:none}.calendar-cell-today{border-color:var(--accent)}.calendar-daynum{opacity:.7;font-size:12px}.calendar-task{border:none;border-left:3px solid var(--chip-color,var(--accent));background:var(--code-bg);cursor:pointer;color:var(--text);text-align:left;border-radius:4px;align-items:center;gap:4px;padding:2px 4px;font-size:11px;display:flex}.calendar-task-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.calendar-task-overdue{border-left-color:#e5484d}.dash-tiles{gap:12px;margin-bottom:20px;display:flex}.dash-tile{border:1px solid var(--border);border-radius:8px;flex-direction:column;flex:1;align-items:flex-start;gap:4px;padding:16px;display:flex}.dash-tile-warn{border-color:#e5484d}.dash-num{color:var(--text-h);font-size:28px;font-weight:700}.dash-label{opacity:.7;font-size:12px}.dash-cols{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.dash-section h4{align-items:center;gap:6px;margin:0 0 8px;font-size:13px;display:flex}.dash-row{width:100%;font:inherit;color:var(--text);border:none;border-bottom:1px solid var(--border);cursor:pointer;text-align:left;background:0 0;border-radius:4px;align-items:center;gap:8px;padding:5px 6px;font-size:13px;display:flex}.dash-row:hover{background:var(--code-bg)}.dash-row-active{background:var(--accent-bg);color:var(--accent)}.dash-drill{margin-top:20px}.dash-drill-title{text-overflow:ellipsis;white-space:nowrap;flex:1;align-items:center;gap:6px;display:flex;overflow:hidden}.dash-row span:not(.dash-dot){flex:1}.dash-dot{border-radius:50%;flex:none;width:8px;height:8px}.dash-overdue{margin-top:20px}.dash-overdue-row{width:100%;color:var(--text);cursor:pointer;border:none;border-bottom:1px solid var(--border);text-align:left;background:0 0;justify-content:space-between;gap:10px;padding:5px 0;font-size:13px;display:flex}.dash-overdue-date{color:#e5484d;white-space:nowrap}
