:root{--bg:#f4f5f7;--surface:#fff;--sidebar-bg:#fff;--border:#e2e4ea;--text:#5c6370;--text-h:#1a1d24;--accent:#6366f1;--sans:Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{font-family:var(--sans);background:var(--bg);color:var(--text)}button,input,select{font:inherit}.appShell{background:var(--bg);max-width:1320px;min-height:100svh;color:var(--text);grid-template-columns:260px 1fr;margin:0 auto;display:grid}.sidebar{background:var(--sidebar-bg);border-right:1px solid var(--border);align-content:start;gap:16px;padding:28px;display:grid}.sidebar h1{color:var(--text-h);margin:0;font-size:28px}.sidebar p{margin:0}.sourceTag{opacity:.9;font-size:13px}.content{align-content:start;gap:16px;padding:24px;display:grid}.topBar{justify-content:space-between;align-items:center;gap:12px;display:flex}.viewToggles,.headerActions{align-items:center;gap:8px;display:flex}.viewToggles button,.headerActions button{border:1px solid var(--border);background:var(--surface);color:var(--text-h);cursor:pointer;border-radius:10px;align-items:center;gap:6px;padding:8px 10px;display:inline-flex}.viewToggles .active{border-color:var(--accent)}.logoSlot{border:1px dashed var(--border);background:var(--surface);width:120px;height:44px;color:var(--text-h);cursor:pointer;border-radius:10px;place-items:center;display:grid;position:relative;overflow:hidden}.logoSlot img{object-fit:contain;width:100%;height:100%}.logoSlot input{display:none}.themePanel,.taskFormCard,.taskTable,.kanbanColumn{background:var(--surface);border:1px solid var(--border);border-radius:14px}.themePanel,.taskFormCard{padding:14px}.themePanel h3,.taskFormCard h3{color:var(--text-h);margin:0 0 12px}.presetRow{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.presetRow button{border:1px solid var(--border);cursor:pointer;color:var(--text-h);background:0 0;border-radius:8px;padding:6px 10px}.presetRow .active{border-color:var(--accent)}.colorGrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.colorGrid label{text-transform:capitalize;gap:4px;font-size:12px;display:grid}.colorGrid input[type=color]{border:1px solid var(--border);background:0 0;border-radius:6px;width:100%;height:34px}.legend{flex-wrap:wrap;gap:8px;display:flex}.legendItem{border:1px solid #0000;border-radius:999px;padding:6px 10px;font-size:13px}.legendItem.overdue{color:#8b3338;background:#f8e6e7;border-color:#ebc8cb}.legendItem.stuck{color:#8a6b2f;background:#f7f0df;border-color:#e6d6ac}.legendItem.on_track{color:#35684a;background:#e4f2e9;border-color:#bdd8c6}.error{color:#8b3338;background:#f8e6e7;border:1px solid #ebc8cb;border-radius:10px;padding:10px}.loading{border:1px dashed var(--border);background:var(--surface);border-radius:12px;padding:14px}.taskForm{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;display:grid}.taskForm input,.taskForm select{border:1px solid var(--border);background:var(--surface);color:var(--text-h);border-radius:10px;padding:9px 10px}.taskForm .primaryButton{grid-column:span 1}.checkboxLabel{align-items:center;gap:6px;font-size:14px;display:inline-flex}.primaryButton{background:var(--accent);color:#fff;cursor:pointer;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:10px 12px;display:inline-flex}.taskTable{border-collapse:collapse;width:100%;overflow:hidden}.taskTable th,.taskTable td{border-bottom:1px solid var(--border);text-align:left;padding:12px}.taskTable th{color:var(--text-h);font-weight:600}.taskTable select{border:1px solid var(--border);background:var(--surface);color:var(--text-h);border-radius:8px;padding:6px}.pill{border-radius:999px;padding:4px 8px;font-size:12px;font-weight:600}.pill.overdue{color:#8b3338;background:#f8e6e7}.pill.stuck{color:#8a6b2f;background:#f7f0df}.pill.on_track{color:#35684a;background:#e4f2e9}.actionRow{gap:8px;display:flex}.actionRow button{border:1px solid var(--border);color:var(--text-h);cursor:pointer;background:0 0;border-radius:8px;padding:6px 8px}.kanbanGrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.kanbanColumn{align-content:start;gap:8px;min-height:280px;padding:12px;display:grid}.kanbanColumn h4{color:var(--text-h);margin:0 0 8px}.kanbanCard{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 82%, var(--accent) 18%);border-radius:10px;gap:6px;padding:10px;display:grid}.kanbanCard strong{color:var(--text-h)}.kanbanCard small{opacity:.85}.cardFooter{justify-content:space-between;align-items:center;gap:6px;display:flex}.cardFooter select{border:1px solid var(--border);background:var(--surface);color:var(--text-h);border-radius:8px;padding:4px}.chatDock{z-index:40;position:fixed;bottom:20px;right:20px}.chatFab{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:999px;align-items:center;gap:6px;padding:10px 14px;display:inline-flex}.chatPanel{border:1px solid var(--border);background:var(--surface);border-radius:14px;grid-template-rows:auto 1fr auto;width:330px;height:420px;display:grid;box-shadow:0 10px 30px #00000029}.chatHeader{border-bottom:1px solid var(--border);color:var(--text-h);justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.chatHeader button{color:var(--text-h);cursor:pointer;background:0 0;border:0}.chatBody{align-content:start;gap:8px;padding:10px;display:grid;overflow:auto}.chatSuggestions{flex-wrap:wrap;gap:6px;display:flex}.chatSuggestions button{border:1px solid var(--border);color:var(--text-h);cursor:pointer;background:0 0;border-radius:999px;padding:6px 10px;font-size:12px}.bubble{border-radius:10px;max-width:92%;padding:8px 10px;font-size:13px;line-height:1.4}.bubble.user{background:color-mix(in srgb, var(--accent) 18%, var(--surface));color:var(--text-h);justify-self:end}.bubble.assistant{background:color-mix(in srgb, var(--border) 30%, var(--surface));justify-self:start}.chatInput{border-top:1px solid var(--border);grid-template-columns:1fr auto;gap:8px;padding:10px;display:grid}.chatInput input{border:1px solid var(--border);background:var(--surface);color:var(--text-h);border-radius:8px;padding:8px}.chatInput button{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:8px;padding:8px}@media (width<=1100px){.taskForm,.kanbanGrid,.colorGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=820px){.appShell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--border)}.taskTable{display:block;overflow-x:auto}.kanbanGrid{grid-template-columns:1fr}.chatDock{bottom:12px;left:12px;right:12px}.chatPanel{width:100%;height:55svh}}
