*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--sidebar-bg:#111827;--sidebar-hover:#1f2937;--sidebar-active:#374151;--sidebar-text:#d1d5db;--sidebar-muted:#6b7280;--bg:#f3f4f6;--surface:#fff;--border:#e5e7eb;--text:#111827;--text-muted:#6b7280;--text-light:#9ca3af;--cat-contenido:#16a34a;--cat-contenido-bg:#dcfce7;--cat-metaads:#7c3aed;--cat-metaads-bg:#ede9fe;--cat-reporte:#d97706;--cat-reporte-bg:#fef3c7;--cat-reunión:#0891b2;--cat-reunión-bg:#cffafe;--cat-web:#2563eb;--cat-web-bg:#dbeafe;font-family:var(--sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:14px}body{height:100vh;margin:0;overflow:hidden}#root{height:100vh;display:flex}button{cursor:pointer;font-family:var(--sans);background:0 0;border:none;font-size:13px}input,textarea,select{font-family:var(--sans);outline:none;font-size:14px}input:focus,textarea:focus,select:focus{outline-offset:1px;outline:2px solid #6366f1}.sidebar{background:var(--sidebar-bg);flex-direction:column;width:240px;min-width:240px;height:100vh;display:flex;overflow:hidden}.sidebar-header{border-bottom:1px solid #1f2937;align-items:center;gap:10px;padding:20px 16px;display:flex}.sidebar-logo{color:#fff;background:#6366f1;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;font-weight:700;display:flex}.sidebar-brand{flex-direction:column;display:flex;overflow:hidden}.sidebar-title{color:#f9fafb;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.sidebar-sub{color:var(--sidebar-muted);font-size:11px}.sidebar-home-btn{width:calc(100% - 16px);color:var(--sidebar-text);border-radius:6px;align-items:center;gap:8px;margin:8px 8px 0;padding:8px 10px;font-size:13px;font-weight:500;transition:background .15s;display:flex}.sidebar-home-btn:hover{background:var(--sidebar-hover)}.sidebar-home-btn.active{background:var(--sidebar-active);color:#f9fafb}.sidebar-section-label{letter-spacing:.08em;color:var(--sidebar-muted);padding:16px 16px 6px;font-size:10px;font-weight:600}.sidebar-nav{flex:1;padding:4px 8px;overflow-y:auto}.sidebar-item{cursor:pointer;color:var(--sidebar-text);border-radius:6px;align-items:center;gap:8px;padding:8px 10px;transition:background .15s;display:flex;position:relative}.sidebar-item:hover{background:var(--sidebar-hover)}.sidebar-item:hover .delete-btn{opacity:1}.sidebar-item.active{background:var(--sidebar-active);color:#f9fafb}.client-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.client-name{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;overflow:hidden}.client-badge.overdue{background:#dc2626}.client-badge{color:#fff;text-align:center;background:#6366f1;border-radius:99px;flex-shrink:0;min-width:18px;padding:1px 6px;font-size:10px;font-weight:600}.edit-btn,.delete-btn{opacity:0;width:18px;height:18px;color:var(--sidebar-muted);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;line-height:1;transition:opacity .15s,background .15s,color .15s;display:flex}.sidebar-item:hover .edit-btn,.sidebar-item:hover .delete-btn{opacity:1}.edit-btn:hover{color:#a5b4fc;background:#374151}.delete-btn:hover{color:#f87171;background:#374151}.delete-btn.confirm{opacity:1;color:#fff;background:#dc2626;font-size:11px}.edit-client-form{background:#1f2937;border-radius:6px;flex-direction:column;gap:6px;margin-bottom:2px;padding:6px 4px;display:flex}.edit-color-swatches{flex-wrap:wrap;gap:5px;padding:2px 4px;display:flex}.color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;flex-shrink:0;width:18px;height:18px;transition:border-color .15s,transform .1s}.color-swatch:hover{transform:scale(1.15)}.color-swatch.selected{border-color:#6366f1;transform:scale(1.15)}.sidebar-footer{border-top:1px solid #1f2937;padding:12px 8px}.add-client-btn{width:100%;color:var(--sidebar-muted);text-align:left;border-radius:6px;padding:8px 10px;font-size:13px;transition:background .15s,color .15s}.add-client-btn:hover{background:var(--sidebar-hover);color:var(--sidebar-text)}.add-client-form{flex-direction:column;gap:6px;padding:4px 2px;display:flex}.add-client-input{color:#f9fafb;background:#1f2937;border:1px solid #374151;border-radius:6px;width:100%;padding:7px 10px;font-size:13px}.add-client-input::placeholder{color:var(--sidebar-muted)}.add-client-input:focus{border-color:#6366f1;outline:none}.add-client-actions{gap:6px;display:flex}.btn-confirm{color:#fff;background:#6366f1;border-radius:5px;flex:1;padding:6px 8px;font-size:12px;font-weight:500;transition:background .15s}.btn-confirm:hover{background:#4f46e5}.btn-cancel{color:var(--sidebar-text);background:#374151;border-radius:5px;flex:1;padding:6px 8px;font-size:12px;transition:background .15s}.btn-cancel:hover{background:#4b5563}.sidebar-user{border-top:1px solid #1f2937;align-items:center;gap:8px;margin-top:6px;padding:8px 6px 0;display:flex}.user-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:24px;height:24px}.user-name{color:var(--sidebar-muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.logout-btn{width:26px;height:26px;color:var(--sidebar-muted);border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.logout-btn:hover{color:#f87171;background:#374151}.task-item{background:var(--surface);transition:background .1s;position:relative}.task-item:hover{background:#fafafa}.task-item.resolved .task-main{opacity:.6}.task-main{align-items:center;gap:10px;min-height:44px;padding:10px 14px;display:flex}.task-checkbox{background:#fff;border:1.5px solid #d1d5db;border-radius:5px;justify-content:center;align-items:center;width:18px;min-width:18px;height:18px;transition:background .15s,border-color .15s;display:flex}.task-checkbox:hover{border-color:#6366f1}.task-checkbox.checked{background:#6366f1;border-color:#6366f1}@keyframes checkbox-bounce{0%{transform:scale(1)}40%{transform:scale(1.35)}70%{transform:scale(.85)}to{transform:scale(1)}}.task-checkbox.bounce{animation:.35s checkbox-bounce}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.task-toast{color:#f9fafb;pointer-events:none;z-index:20;white-space:nowrap;background:#1f2937;border-radius:6px;padding:4px 10px;font-size:11px;animation:.2s toast-in;position:absolute;top:-30px;right:16px}.priority-pill{white-space:nowrap;border-radius:10px;flex-shrink:0;padding:2px 7px;font-size:10px;font-weight:600}.priority-pill.pri-alta{color:#dc2626;background:#fee2e2}.priority-pill.pri-baja{color:#9ca3af;background:#f3f4f6}.task-text-group{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.task-text{color:var(--text);font-size:14px;line-height:1.4}.task-text.done{color:var(--text-muted);text-decoration:line-through}.task-description{color:var(--text-muted);font-size:12px;line-height:1.4}.resolved-by{border-radius:99px;padding:2px 8px;font-size:11px;font-weight:500}.resolved-by--admin{color:#64748b;background:#f1f5f9}.resolved-by--client{color:#166534;background:#dcfce7}.task-meta{flex-shrink:0;align-items:center;gap:6px;display:flex}.due-badge{white-space:nowrap;border-radius:10px;padding:2px 7px;font-size:11px;font-weight:600}.due-soon{color:#2563eb;background:#dbeafe}.task-date{color:var(--text-light);font-size:11px}.notes-toggle{width:26px;height:26px;color:var(--text-light);border-radius:5px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.notes-toggle:hover,.notes-toggle.open{color:var(--text-muted);background:#f3f4f6}.notes-toggle.has-notes{color:#6366f1}.edit-task-btn{width:26px;height:26px;color:var(--text-light);opacity:0;border-radius:5px;justify-content:center;align-items:center;transition:background .15s,color .15s,opacity .15s;display:flex}.task-item:hover .edit-task-btn{opacity:1}.edit-task-btn:hover{color:#7c3aed;background:#ede9fe}.delete-task-btn{width:26px;height:26px;color:var(--text-light);opacity:0;border-radius:5px;justify-content:center;align-items:center;transition:background .15s,color .15s,opacity .15s;display:flex}.task-item:hover .delete-task-btn{opacity:1}.delete-task-btn:hover{color:#dc2626;background:#fee2e2}.task-notes{padding:0 14px 10px 42px}.notes-display{cursor:text;border-radius:5px;min-height:32px;padding:6px 8px;transition:background .1s}.notes-display:hover{background:#f3f4f6}.notes-text{color:var(--text-muted);white-space:pre-wrap;font-size:13px;line-height:1.5}.notes-placeholder{color:var(--text-light);font-size:12px;font-style:italic}.notes-edit{flex-direction:column;gap:6px;display:flex}.notes-textarea{width:100%;color:var(--text);resize:vertical;background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:8px;font-size:13px;line-height:1.5}.notes-textarea:focus{border-color:#6366f1;outline:none}.notes-actions{gap:6px;display:flex}.notes-save{color:#fff;background:#6366f1;border-radius:5px;padding:5px 12px;font-size:12px;font-weight:500;transition:background .15s}.notes-save:hover{background:#4f46e5}.notes-cancel{color:var(--text-muted);background:#f3f4f6;border-radius:5px;padding:5px 12px;font-size:12px;transition:background .15s}.notes-cancel:hover{background:#e5e7eb}.modal-overlay{z-index:100;background:#00000073;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;width:100%;max-width:480px;overflow:hidden;box-shadow:0 20px 60px #0003}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 20px 16px;display:flex}.modal-title-row{align-items:center;gap:8px;display:flex}.modal-client-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.modal-title{color:var(--text);margin:0;font-size:15px;font-weight:600}.modal-close{width:28px;height:28px;color:var(--text-muted);border-radius:6px;justify-content:center;align-items:center;font-size:18px;line-height:1;transition:background .15s;display:flex}.modal-close:hover{color:var(--text);background:#f3f4f6}.modal-form{flex-direction:column;gap:16px;padding:20px;display:flex}.form-field{flex-direction:column;gap:6px;display:flex}.form-label{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:600}.task-input{border:1.5px solid var(--border);color:var(--text);border-radius:7px;width:100%;padding:10px 12px;font-size:14px;transition:border-color .15s}.task-input:focus{border-color:#6366f1;outline:none}.task-input::placeholder{color:var(--text-light)}.cat-options{flex-wrap:wrap;gap:6px;display:flex}.cat-option{opacity:.6;border:1.5px solid #0000;border-radius:20px;padding:5px 12px;font-size:12px;font-weight:500;transition:opacity .15s,border-color .15s}.cat-option.selected{opacity:1;border-color:currentColor}.cat-option:hover{opacity:1}.cat-option.cat-contenido{background:var(--cat-contenido-bg);color:var(--cat-contenido)}.cat-option.cat-metaads{background:var(--cat-metaads-bg);color:var(--cat-metaads)}.cat-option.cat-reporte{background:var(--cat-reporte-bg);color:var(--cat-reporte)}.cat-option.cat-reunión{background:var(--cat-reunión-bg);color:var(--cat-reunión)}.cat-option.cat-web{background:var(--cat-web-bg);color:var(--cat-web)}.notes-input{border:1.5px solid var(--border);color:var(--text);resize:vertical;border-radius:7px;width:100%;padding:10px 12px;font-size:13px;line-height:1.5;transition:border-color .15s}.notes-input:focus{border-color:#6366f1;outline:none}.notes-input::placeholder{color:var(--text-light)}.form-row{gap:20px;display:flex}.form-row .form-field{flex:1}.priority-options{gap:6px;display:flex}.priority-option{opacity:.55;border:1.5px solid #0000;border-radius:20px;align-items:center;gap:5px;padding:5px 11px;font-size:12px;font-weight:500;transition:opacity .15s,border-color .15s;display:flex}.priority-option.selected{opacity:1;border-color:currentColor}.priority-option:hover{opacity:1}.priority-dot{background:currentColor;border-radius:50%;width:7px;height:7px}.pri-alta{color:#dc2626;background:#fee2e2}.pri-media{color:#d97706;background:#fef3c7}.pri-baja{color:#6b7280;background:#f3f4f6}.date-row{align-items:center;gap:10px;display:flex}.date-input{border:1.5px solid var(--border);color:var(--text);cursor:pointer;background:#fff;border-radius:7px;padding:8px 12px;font-size:14px;transition:border-color .15s}.date-input:focus{border-color:#6366f1;outline:none}.date-clear{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:12px;text-decoration:underline}.date-clear:hover{color:#dc2626}.modal-footer{justify-content:flex-end;gap:8px;padding-top:4px;display:flex}.btn-primary{color:#fff;background:#111827;border-radius:7px;padding:9px 18px;font-size:13px;font-weight:500;transition:background .15s}.btn-primary:hover:not(:disabled){background:#1f2937}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{color:var(--text-muted);background:#f3f4f6;border-radius:7px;padding:9px 18px;font-size:13px;font-weight:500;transition:background .15s}.btn-secondary:hover{background:#e5e7eb}.client-view{flex-direction:column;min-height:100vh;display:flex}.client-header{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;padding:24px 32px 0;position:sticky;top:0}.client-header-top{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.client-title-row{align-items:center;gap:10px;display:flex}.client-color-dot{border-radius:50%;flex-shrink:0;width:12px;height:12px}.client-title{color:var(--text);font-size:20px;font-weight:700;line-height:1}.header-actions{align-items:center;gap:8px;display:flex}.add-task-btn{color:#fff;background:#111827;border-radius:7px;align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:500;transition:background .15s;display:flex}.add-task-btn:hover{background:#1f2937}.add-task-btn kbd{background:#ffffff26;border-radius:3px;padding:1px 5px;font-family:inherit;font-size:11px}.share-btn{color:#5b21b6;cursor:pointer;background:#ede9fe;border:none;border-radius:7px;padding:8px 14px;font-size:13px;font-weight:500;transition:background .15s}.share-btn:hover{background:#ddd6fe}.archive-btn{color:#92400e;background:#fef3c7;border-radius:7px;padding:8px 14px;font-size:13px;font-weight:500;transition:background .15s}.archive-btn:hover{background:#fde68a}.progress-row{align-items:center;gap:12px;margin-bottom:16px;display:flex}.progress-bar-wrap{background:#e5e7eb;border-radius:10px;flex:1;height:5px;overflow:hidden}.progress-bar-fill{background:#6366f1;border-radius:10px;height:100%;transition:width .4s}.progress-label{color:var(--text-muted);white-space:nowrap;text-align:right;min-width:160px;font-size:12px}.filter-tabs{border-bottom:none;gap:0;display:flex}.filter-tab{color:var(--text-muted);border-bottom:2px solid #0000;align-items:center;gap:6px;padding:10px 16px;font-size:13px;font-weight:500;transition:color .15s,border-color .15s;display:flex}.filter-tab:hover{color:var(--text)}.filter-tab.active{color:#111827;border-bottom-color:#6366f1}.filter-count{color:var(--text-muted);background:#f3f4f6;border-radius:10px;padding:1px 6px;font-size:11px;font-weight:600}.filter-tab.active .filter-count{color:#6366f1;background:#ede9fe}.subfilters-row{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:16px;margin-top:2px;padding:10px 0 14px;display:flex}.subfilters-group{align-items:center;gap:8px;display:flex}.subfilters-label{color:var(--text-light);letter-spacing:.04em;white-space:nowrap;font-size:11px;font-weight:600}.subfilters-divider{background:var(--border);flex-shrink:0;width:1px;height:20px}.priority-filters{align-items:center;gap:6px;display:flex}.priority-chip{color:var(--text-muted);background:#f3f4f6;border:1.5px solid #0000;border-radius:20px;align-items:center;gap:5px;padding:4px 11px;font-size:12px;font-weight:500;transition:all .15s;display:flex}.priority-chip:hover{background:#e5e7eb}.priority-chip.active{color:#fff;background:#111827}.pchip-dot{border-radius:50%;width:7px;height:7px}.pf-alta .pchip-dot{background:#dc2626}.pf-media .pchip-dot{background:#d97706}.pf-baja .pchip-dot{background:#9ca3af}.pf-alta.active{color:#dc2626;background:#fee2e2;border-color:#fca5a5}.pf-media.active{color:#d97706;background:#fef3c7;border-color:#fcd34d}.pf-baja.active{color:#6b7280;background:#f3f4f6;border-color:#d1d5db}.tasks-body{flex-direction:column;gap:24px;padding:24px 32px;display:flex}.resolved-separator{align-items:center;gap:12px;margin:24px 0 8px;display:flex}.resolved-separator:before,.resolved-separator:after{content:"";background:var(--border);flex:1;height:1px}.resolved-separator-label{color:var(--text-muted);white-space:nowrap;letter-spacing:.04em;font-size:11px;font-weight:600}.no-tasks{color:var(--text-muted);text-align:center;padding:40px 0;font-size:14px}.category-group{flex-direction:column;gap:8px;display:flex}.category-header{align-items:center;gap:8px;margin-bottom:4px;display:flex}.category-badge{letter-spacing:.03em;border-radius:12px;padding:3px 10px;font-size:11px;font-weight:600}.category-count{color:var(--text-light);font-size:11px}.task-list{background:var(--border);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:1px;display:flex;overflow:hidden}.filter-tab--archive{color:var(--text-light);margin-left:auto;font-size:12px}.archived-list{flex-direction:column;gap:2px;display:flex}.archived-info{color:var(--text-muted);padding:0 2px 12px;font-size:12px}.archived-info-sub{color:var(--text-light)}.archived-row{background:var(--surface);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;display:flex}.archived-row-left{align-items:center;gap:10px;min-width:0;display:flex}.archived-row-text{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;text-decoration:line-through;overflow:hidden}.archived-row-right{flex-shrink:0;align-items:center;gap:8px;display:flex}.restore-btn{color:#6366f1;white-space:nowrap;background:#ede9fe;border-radius:6px;padding:4px 12px;font-size:12px;font-weight:500;transition:background .15s}.restore-btn:hover{background:#ddd6fe}.delete-task-archived-btn{width:26px;height:26px;color:var(--text-light);border-radius:5px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.delete-task-archived-btn:hover{color:#dc2626;background:#fee2e2}.topic-filters{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.topic-chip{color:var(--text-muted);cursor:pointer;background:#f3f4f6;border:1.5px solid #0000;border-radius:20px;padding:4px 11px;font-size:12px;font-weight:500;transition:all .15s}.topic-chip:hover{background:#e5e7eb}.topic-chip.active{color:#fff;background:#111827;border-color:#0000}.cat-chip-contenido.active{background:var(--cat-contenido-bg);color:var(--cat-contenido);border-color:var(--cat-contenido)}.cat-chip-metaads.active{background:var(--cat-metaads-bg);color:var(--cat-metaads);border-color:var(--cat-metaads)}.cat-chip-reporte.active{background:var(--cat-reporte-bg);color:var(--cat-reporte);border-color:var(--cat-reporte)}.cat-chip-reunión.active{background:var(--cat-reunión-bg);color:var(--cat-reunión);border-color:var(--cat-reunión)}.cat-chip-web.active{background:var(--cat-web-bg);color:var(--cat-web);border-color:var(--cat-web)}.dashboard{background:var(--bg);min-height:100vh}.dash-header{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:28px 32px;display:flex}.dash-greeting{color:var(--text);margin:0 0 4px;font-size:22px;font-weight:700}.dash-date{color:var(--text-muted);margin:0;font-size:13px}.dash-summary{gap:24px;display:flex}.dash-stat{flex-direction:column;align-items:center;gap:2px;display:flex}.dash-stat-num{color:var(--text);font-size:24px;font-weight:700;line-height:1}.dash-stat-num.red{color:#dc2626}.dash-stat-num.amber{color:#d97706}.dash-stat-label{color:var(--text-muted);font-size:11px}.dash-loading{color:var(--text-muted);padding:48px 32px;font-size:14px}.dash-body{flex-direction:column;gap:28px;padding:24px 32px;display:flex}.dash-section{flex-direction:column;gap:8px;display:flex}.dash-section-header{align-items:center;gap:8px;margin-bottom:4px;display:flex}.dash-section-icon{border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:flex}.overdue-icon{color:#dc2626;background:#fee2e2}.today-icon{color:#d97706;background:#fef3c7;font-size:14px}.high-icon{color:#7c3aed;background:#ede9fe;font-size:10px}.dash-section-title{color:var(--text);margin:0;font-size:13px;font-weight:600}.dash-section-count{color:var(--text-muted);background:#f3f4f6;border-radius:10px;padding:1px 7px;font-size:11px;font-weight:600}.dash-empty{color:var(--text-muted);padding:12px 0;font-size:13px}.dash-task-list{background:var(--border);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:1px;display:flex;overflow:hidden}.dash-task-row{background:var(--surface);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:11px 14px;transition:background .1s;display:flex}.dash-task-row:hover{background:#f9fafb}.dash-task-left{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.dash-client-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.dash-task-info{flex-direction:column;gap:2px;min-width:0;display:flex}.dash-task-text{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.dash-task-client{color:var(--text-muted);font-size:11px}.dash-task-right{flex-shrink:0;align-items:center;gap:6px;display:flex}.dash-pri-badge{color:#dc2626;background:#fee2e2;border-radius:10px;padding:2px 7px;font-size:10px;font-weight:600}.dash-due-badge{white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.due-overdue{color:#dc2626;background:#fee2e2}.due-today{color:#d97706;background:#fef3c7}.due-tomorrow{color:#2563eb;background:#dbeafe}.due-future{color:#6b7280;background:#f3f4f6}.dash-cat{border-radius:10px;padding:2px 8px;font-size:10px;font-weight:600}.cat-contenido{background:var(--cat-contenido-bg);color:var(--cat-contenido)}.cat-metaads{background:var(--cat-metaads-bg);color:var(--cat-metaads)}.cat-reporte{background:var(--cat-reporte-bg);color:var(--cat-reporte)}.cat-reunión{background:var(--cat-reunión-bg);color:var(--cat-reunión)}.cat-web{background:var(--cat-web-bg);color:var(--cat-web)}.app{width:100%;height:100vh;display:flex}.main{background:var(--bg);flex:1;overflow-y:auto}.empty-state{height:100%;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.empty-icon{margin-bottom:8px;font-size:40px}.hint{color:var(--text-light);font-size:12px}.auth-loading{height:100vh;color:var(--text-muted);justify-content:center;align-items:center;font-size:14px;display:flex}.login-screen{background:#f3f4f6;justify-content:center;align-items:center;height:100vh;display:flex}.login-card{background:#fff;border:1px solid #e5e7eb;border-radius:16px;flex-direction:column;align-items:center;gap:8px;width:100%;max-width:340px;padding:48px 40px;display:flex}.login-logo{color:#fff;background:#6366f1;border-radius:12px;justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:8px;font-size:16px;font-weight:700;display:flex}.login-title{color:#111827;margin:0;font-size:20px;font-weight:700}.login-sub{color:#6b7280;margin:0 0 24px;font-size:13px}.google-btn{color:#111827;cursor:pointer;background:#fff;border:1.5px solid #e5e7eb;border-radius:8px;justify-content:center;align-items:center;gap:10px;width:100%;padding:11px 20px;font-size:14px;font-weight:500;transition:background .15s,border-color .15s;display:flex}.google-btn:hover{background:#f9fafb;border-color:#d1d5db}body:has(.portal-wrap){height:auto;overflow:auto}#root:has(.portal-wrap){height:auto;display:block}.portal-wrap{background:#f8fafc;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.portal-loading{background:#f8fafc;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.portal-spinner{border:3px solid #e2e8f0;border-top-color:#6366f1;border-radius:50%;width:36px;height:36px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.portal-notfound{color:#64748b;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:100vh;display:flex}.portal-notfound h2{color:#1e293b;margin:0;font-size:20px;font-weight:600}.portal-header{background:#fff;border-bottom:1px solid #e2e8f0;align-items:center;height:52px;padding:0 24px;display:flex}.portal-brand{align-items:center;gap:10px;display:flex}.portal-logo{color:#fff;letter-spacing:.05em;background:#6366f1;border-radius:8px;justify-content:center;align-items:center;width:30px;height:30px;font-size:11px;font-weight:700;display:flex}.portal-brand-name{color:#1e293b;font-size:14px;font-weight:600}.portal-sticky{z-index:20;background:#f8fafc;border-bottom:1px solid #e2e8f0;position:sticky;top:0;box-shadow:0 2px 8px #0000000a}.portal-sticky-inner{max-width:720px;margin:0 auto;padding:16px 24px}.portal-main{max-width:720px;margin:0 auto;padding:24px 24px 80px}.portal-client-header{align-items:center;gap:12px;margin-bottom:10px;display:flex}.portal-dot{border-radius:50%;flex-shrink:0;width:14px;height:14px}.portal-client-name{color:#0f172a;margin:0;font-size:22px;font-weight:700}.portal-top-row{align-items:center;gap:16px;margin-bottom:20px;display:flex}.portal-progress-row{flex:1;align-items:center;gap:12px;display:flex}.portal-progress-bar{background:#e2e8f0;border-radius:99px;flex:1;height:6px;overflow:hidden}.portal-progress-fill{background:#22c55e;border-radius:99px;height:100%;transition:width .4s}.portal-progress-label{color:#64748b;white-space:nowrap;font-size:12px}.portal-subfilters{border-top:1px solid #e2e8f0;flex-wrap:wrap;align-items:center;gap:14px;margin-top:10px;padding-top:12px;display:flex}.portal-subfilters-group{align-items:center;gap:8px;display:flex}.portal-subfilters-label{color:#94a3b8;letter-spacing:.04em;white-space:nowrap;font-size:11px;font-weight:600}.portal-subfilters-divider{background:#e2e8f0;flex-shrink:0;width:1px;height:20px}.portal-filter-chips{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.portal-chip{color:#64748b;cursor:pointer;background:#f1f5f9;border:1.5px solid #0000;border-radius:20px;align-items:center;gap:4px;padding:3px 10px;font-size:12px;font-weight:500;transition:all .15s;display:flex}.portal-chip:hover{background:#e2e8f0}.portal-chip.active{color:#fff;background:#1e293b}.portal-chip .pchip-dot{border-radius:50%;width:6px;height:6px}.ppf-alta .pchip-dot{background:#dc2626}.ppf-media .pchip-dot{background:#d97706}.ppf-baja .pchip-dot{background:#9ca3af}.ppf-alta.active{color:#dc2626;background:#fee2e2;border-color:#fca5a5}.ppf-media.active{color:#d97706;background:#fef3c7;border-color:#fcd34d}.ppf-baja.active{color:#6b7280;background:#f1f5f9;border-color:#d1d5db}.pcat-contenido.active{background:var(--cat-contenido-bg);color:var(--cat-contenido);border-color:var(--cat-contenido)}.pcat-metaads.active{background:var(--cat-metaads-bg);color:var(--cat-metaads);border-color:var(--cat-metaads)}.pcat-reporte.active{background:var(--cat-reporte-bg);color:var(--cat-reporte);border-color:var(--cat-reporte)}.pcat-reunión.active{background:var(--cat-reunión-bg);color:var(--cat-reunión);border-color:var(--cat-reunión)}.pcat-web.active{background:var(--cat-web-bg);color:var(--cat-web);border-color:var(--cat-web)}.portal-category{margin-bottom:24px}.portal-category-header{align-items:center;gap:8px;margin-bottom:8px;display:flex}.portal-badge{letter-spacing:.04em;text-transform:uppercase;border-radius:99px;padding:3px 9px;font-size:11px;font-weight:600}.portal-badge.cat-contenido{color:#0369a1;background:#e0f2fe}.portal-badge.cat-metaads{color:#be185d;background:#fce7f3}.portal-badge.cat-reporte{color:#92400e;background:#fef3c7}.portal-badge.cat-reunión{color:#0e7490;background:#cffafe}.portal-badge.cat-web{color:#166534;background:#dcfce7}.portal-cat-count{color:#94a3b8;font-size:12px}.portal-task-list{flex-direction:column;gap:6px;display:flex}.portal-task{background:#fff;border:1px solid #e2e8f0;border-radius:10px;gap:12px;padding:14px 16px;transition:opacity .2s;display:flex}.portal-task--done{opacity:.6}.portal-task-check{cursor:pointer;background:0 0;border:none;flex-shrink:0;align-items:flex-start;margin-top:2px;padding:0;display:flex}.portal-task-body{flex:1;min-width:0}.portal-task-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.portal-task-title{color:#0f172a;letter-spacing:-.01em;font-size:15px;font-weight:600;line-height:1.4}.portal-task-title--done{color:#94a3b8;font-weight:500;text-decoration:line-through}.portal-priority{text-transform:uppercase;border-radius:99px;flex-shrink:0;padding:2px 7px;font-size:10px;font-weight:600}.portal-priority--alta{color:#b91c1c;background:#fee2e2}.portal-priority--media{color:#92400e;background:#fef3c7}.portal-priority--baja{color:#64748b;background:#f1f5f9}.portal-task-desc{color:#64748b;margin:6px 0 0;font-size:13px;line-height:1.5}.portal-notes-toggle{color:#6366f1;cursor:pointer;background:0 0;border:none;margin-top:8px;padding:0;font-size:12px;font-weight:500}.portal-notes-toggle:hover{text-decoration:underline}.portal-notes-area{flex-direction:column;gap:6px;margin-top:8px;display:flex}.portal-notes-input{color:#1e293b;resize:vertical;box-sizing:border-box;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;width:100%;padding:8px 10px;font-family:inherit;font-size:13px}.portal-notes-input:focus{border-color:#6366f1;outline:none}.portal-notes-save{color:#fff;cursor:pointer;background:#6366f1;border:none;border-radius:7px;align-self:flex-end;padding:5px 14px;font-size:12px;font-weight:600}.portal-notes-save:disabled{opacity:.45;cursor:default}.portal-empty{text-align:center;padding:56px 0}.portal-empty-icon{margin-bottom:12px;font-size:40px}.portal-empty-title{color:#1e293b;margin-bottom:4px;font-size:16px;font-weight:600}.portal-empty-sub{color:#94a3b8;font-size:13px}.portal-resolved-divider{align-items:center;gap:12px;margin:28px 0 16px;display:flex}.portal-resolved-divider:before,.portal-resolved-divider:after{content:"";background:#e2e8f0;flex:1;height:1px}.portal-resolved-divider span{color:#94a3b8;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;font-size:12px;font-weight:600}.portal-fab{color:#fff;cursor:pointer;z-index:50;background:#6366f1;border:none;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;transition:transform .15s,background .15s;display:none;position:fixed;bottom:24px;right:24px;box-shadow:0 4px 16px #6366f166}.portal-fab:hover{background:#4f46e5;transform:scale(1.07)}@keyframes bounce-check{0%{transform:scale(1)}40%{transform:scale(1.35)}70%{transform:scale(.9)}to{transform:scale(1)}}.portal-task-check--bounce{animation:.3s bounce-check}.portal-toast{color:#fff;z-index:100;white-space:nowrap;text-overflow:ellipsis;background:#1e293b;border-radius:99px;max-width:90vw;padding:10px 18px;font-size:13px;font-weight:500;animation:.2s toast-in;position:fixed;bottom:88px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 4px 16px #00000026}@media (width>=640px){.portal-add-btn--desktop{display:flex}.portal-fab{display:none!important}.portal-toast{bottom:32px}}@media (width<=639px){.portal-add-btn--desktop{display:none}.portal-fab{display:flex}.portal-main{padding:20px 16px 80px}.portal-client-name{font-size:18px}.portal-sticky-inner{padding:12px 16px}.portal-task{padding:12px 14px}.portal-task-title{font-size:14px}.portal-progress-label{font-size:11px}}.portal-add-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#6366f1;border:none;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:600;transition:background .15s}.portal-add-btn:hover{background:#4f46e5}.portal-add-form{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:24px;padding:16px;box-shadow:0 2px 8px #0000000f}.portal-add-input{color:#0f172a;box-sizing:border-box;border:1px solid #e2e8f0;border-radius:8px;width:100%;margin-bottom:12px;padding:10px 12px;font-family:inherit;font-size:16px}.portal-add-input:focus{border-color:#6366f1;outline:none}.portal-add-row{flex-wrap:wrap;gap:12px;margin-bottom:12px;display:flex}.portal-add-group{flex-wrap:wrap;gap:6px;display:flex}.portal-add-chip{color:#64748b;cursor:pointer;background:#f8fafc;border:1px solid #e2e8f0;border-radius:99px;padding:4px 12px;font-size:12px;font-weight:500;transition:all .15s}.portal-add-chip.active{color:#4f46e5;background:#ede9fe;border-color:#6366f1}.portal-add-chip.portal-pri-alta.active{color:#b91c1c;background:#fee2e2;border-color:#f87171}.portal-add-chip.portal-pri-media.active{color:#92400e;background:#fef3c7;border-color:#fbbf24}.portal-add-chip.portal-pri-baja.active{color:#475569;background:#f1f5f9;border-color:#cbd5e1}.portal-add-actions{justify-content:flex-end;gap:8px;display:flex}.portal-add-cancel{color:#64748b;cursor:pointer;background:0 0;border:1px solid #e2e8f0;border-radius:8px;padding:7px 14px;font-size:13px}.portal-add-submit{color:#fff;cursor:pointer;background:#6366f1;border:none;border-radius:8px;padding:7px 16px;font-size:13px;font-weight:600;transition:background .15s}.portal-add-submit:hover:not(:disabled){background:#4f46e5}.portal-add-submit:disabled{opacity:.45;cursor:default}
