:root{--background: #F4F5F0;--foreground: #2E3136;--card: #FFFFFF;--card-foreground: #2E3136;--popover: #FFFFFF;--popover-foreground: #2E3136;--primary: #2E3136;--primary-foreground: #F4F5F0;--secondary: #E8E9E3;--secondary-foreground: #2E3136;--muted: #F0F1EC;--muted-foreground: #5B6778;--accent: #F29D38;--accent-foreground: #1E2024;--destructive: #C84B3C;--destructive-foreground: #FFFFFF;--border: #D8D9D3;--input: #E0E1DB;--ring: #F29D38;--font-display: "DM Sans", system-ui, sans-serif;--font-body: "Work Sans", system-ui, sans-serif;--radius: 4px}.dark{--background: #1E2024;--foreground: #E8E9E3;--card: #2A2D34;--card-foreground: #E8E9E3;--popover: #2A2D34;--popover-foreground: #E8E9E3;--primary: #E8E9E3;--primary-foreground: #1E2024;--secondary: #34373E;--secondary-foreground: #E8E9E3;--muted: #34373E;--muted-foreground: #8A9099;--accent: #F29D38;--accent-foreground: #1E2024;--destructive: #D9645A;--destructive-foreground: #FFFFFF;--border: #3A3D44;--input: #3A3D44;--ring: #F29D38}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-body);background:var(--background);color:var(--foreground);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}#root{min-height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;padding:0 24px;height:56px;background:var(--card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100}.topbar-brand{font-family:var(--font-display);font-size:17px;font-weight:600;color:var(--foreground);letter-spacing:-.01em;display:flex;align-items:center;gap:8px}.topbar-brand-dot{width:8px;height:8px;background:var(--accent);border-radius:1px;transform:rotate(45deg)}.topbar-actions{display:flex;align-items:center;gap:12px}.theme-toggle{background:none;border:1px solid var(--border);border-radius:var(--radius);width:32px;height:32px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--muted-foreground);transition:color .15s,border-color .15s}.theme-toggle:hover{color:var(--foreground);border-color:var(--muted-foreground)}.btn{font-family:var(--font-body);font-size:13px;font-weight:500;padding:8px 16px;border-radius:var(--radius);cursor:pointer;border:1px solid var(--border);background:var(--card);color:var(--foreground);transition:background .12s,border-color .12s,opacity .12s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.btn:hover{background:var(--muted)}.btn-primary{background:var(--accent);color:var(--accent-foreground);border-color:var(--accent);font-weight:600}.btn-primary:hover{background:#e08828;border-color:#e08828}.btn-danger{background:var(--destructive);color:var(--destructive-foreground);border-color:var(--destructive);font-weight:600}.btn-danger:hover{background:#b83e30;border-color:#b83e30}.btn-ghost{border:none;background:none;padding:6px 10px;color:var(--muted-foreground)}.btn-ghost:hover{background:var(--muted);color:var(--foreground)}.btn-sm{padding:5px 10px;font-size:12px}.dashboard{display:flex;gap:12px;padding:24px;flex-wrap:wrap}.metric-card{flex:1;min-width:160px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px}.metric-card.overdue{border-color:var(--accent)}.metric-label{font-size:12px;font-weight:500;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}.metric-value{font-family:var(--font-display);font-size:32px;font-weight:600;color:var(--foreground);line-height:1.1}.metric-value.accent{color:var(--accent)}.filter-bar{display:flex;align-items:center;gap:12px;padding:0 24px 12px;flex-wrap:wrap}.filter-group{display:flex;align-items:center;gap:6px}.filter-label{font-size:12px;color:var(--muted-foreground);font-weight:500}.filter-select,.filter-input{font-family:var(--font-body);font-size:13px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);color:var(--foreground);cursor:pointer}.filter-select:focus,.filter-input:focus{outline:none;border-color:var(--accent)}.filter-input{cursor:text;min-width:180px}.task-table-wrap{padding:0 24px 24px}.task-table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.task-table th{text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted-foreground);padding:10px 12px;border-bottom:1px solid var(--border);background:var(--muted);white-space:nowrap}.task-table td{padding:0 12px;height:40px;border-bottom:1px solid var(--border);font-size:13px;color:var(--foreground);vertical-align:middle}.task-table tr:last-child td{border-bottom:none}.task-table tbody tr{transition:background .08s}.task-table tbody tr:hover{background:var(--muted)}.task-row-done .task-title{text-decoration:line-through;color:var(--muted-foreground)}.task-title{font-weight:500}.priority-diamond{display:inline-block;width:10px;height:10px;transform:rotate(45deg);border-radius:1px}.priority-diamond.high{background:var(--accent);animation:pulse 3s ease-in-out infinite}.priority-diamond.medium{background:var(--muted-foreground)}.priority-diamond.low{background:var(--border)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.status-chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:3px 8px;border-radius:10px;white-space:nowrap;cursor:pointer;border:none;font-family:var(--font-body);transition:opacity .12s}.status-chip:hover{opacity:.8}.status-chip.todo{background:var(--secondary);color:var(--muted-foreground)}.status-chip.in-progress{background:#f29d3826;color:#c97e1e}.status-chip.done{background:#4c915026;color:#4c9150}.dark .status-chip.in-progress{color:var(--accent)}.dark .status-chip.done{color:#6bb46f}.status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.status-dot.todo{background:var(--muted-foreground)}.status-dot.in-progress{background:var(--accent)}.status-dot.done{background:#4c9150}.assignee-badge{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--secondary);color:var(--muted-foreground);font-size:10px;font-weight:600;flex-shrink:0}.assignee-cell{display:flex;align-items:center;gap:8px}.row-actions{display:flex;gap:4px;opacity:0;transition:opacity .12s}.task-table tbody tr:hover .row-actions{opacity:1}.icon-btn{background:none;border:none;cursor:pointer;padding:4px;border-radius:var(--radius);color:var(--muted-foreground);display:flex;align-items:center;justify-content:center;transition:color .12s,background .12s}.icon-btn:hover{color:var(--foreground);background:var(--secondary)}.icon-btn.danger:hover{color:var(--destructive)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:200;padding:20px}.modal{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #0000001f}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-title{font-family:var(--font-display);font-size:16px;font-weight:600}.modal-body{padding:20px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px;border-top:1px solid var(--border)}.form-field{margin-bottom:16px}.form-label{display:block;font-size:12px;font-weight:600;color:var(--muted-foreground);margin-bottom:4px;text-transform:uppercase;letter-spacing:.03em}.form-input,.form-textarea,.form-select{width:100%;font-family:var(--font-body);font-size:14px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);color:var(--foreground)}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--accent)}.form-textarea{resize:vertical;min-height:72px}.form-row{display:flex;gap:12px}.form-row .form-field{flex:1}.empty-state{text-align:center;padding:48px 24px;color:var(--muted-foreground)}.empty-state-title{font-size:15px;font-weight:500;margin-bottom:4px;color:var(--foreground)}.empty-state-text{font-size:13px}.confirm-text{font-size:14px;color:var(--foreground);margin-bottom:4px}.confirm-subtext{font-size:13px;color:var(--muted-foreground)}.due-overdue{color:var(--destructive);font-weight:500}.due-soon{color:var(--accent);font-weight:500}.loading{text-align:center;padding:48px;color:var(--muted-foreground);font-size:14px}
