:root{--ink:#23212c;--muted:#7c7b89;--line:#e9e8ee;--paper:#fbfafc;--card:#fff;--purple:#635bff;--purple-dark:#5047e8;--green:#31a47a;--orange:#ed9254;--yellow:#f4c84e;--shadow:0 10px 35px rgba(31,27,60,.06);--sidebar-width:246px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px 'DM Sans',sans-serif}button,input,select{font:inherit}button{border:0;background:none;color:inherit;cursor:pointer}.app-shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:#f4f3f8;border-right:1px solid #e7e5ed;padding:28px 16px 20px;display:flex;flex-direction:column;flex-shrink:0}.sidebar-resizer{width:9px;flex:0 0 9px;cursor:col-resize;position:relative;z-index:2;background:transparent}.sidebar-resizer::after{content:"";position:absolute;inset:0 3px;border-left:1px solid transparent;border-right:1px solid transparent;transition:.15s}.sidebar-resizer:hover::after,.sidebar-resizer:focus-visible::after{border-color:#d7d3ff;background:#ebe9ff}.sidebar-resizer:focus-visible{outline:0}.is-resizing,.is-resizing *{cursor:col-resize!important;user-select:none!important}.brand{font:700 23px 'Space Grotesk';letter-spacing:-1px;display:flex;align-items:center;gap:8px;padding:0 12px 32px}.brand-mark{width:28px;height:28px;border-radius:9px;background:var(--purple);color:#fff;display:grid;place-items:center;font:700 15px 'Space Grotesk'}.brand-dot{color:var(--purple)}.workspace-switcher{border:1px solid #e5e3ec;background:#fff;border-radius:12px;padding:10px 9px;display:flex;align-items:center;gap:9px;margin-bottom:24px;box-shadow:0 3px 12px #25203c05}.workspace-switcher strong,.workspace-switcher small{display:block}.workspace-switcher strong{font-size:12px}.workspace-switcher small{font-size:11px;color:var(--muted);margin-top:2px}.chevron{margin-left:auto;color:var(--muted)}.avatar{width:31px;height:31px;border-radius:50%;background:#f1c3a1;color:#654630;font-size:11px;font-weight:700;display:grid;place-items:center}.avatar-small{width:30px;height:30px}.main-nav,.project-nav{display:grid;gap:4px}.nav-item,.project-nav button,.sidebar-bottom>button{width:100%;text-align:left;padding:10px 12px;border-radius:9px;color:#6f6d79;display:flex;align-items:center;gap:11px}.nav-item.active{background:#e9e7ff;color:var(--purple-dark);font-weight:600}.nav-item:hover,.project-nav button:hover{background:#ebeaf1}.nav-icon{font-size:17px;width:16px;text-align:center}.nav-count{margin-left:auto;background:#dedcff;color:var(--purple-dark);border-radius:20px;padding:2px 7px;font-size:11px}.muted-count{background:none;color:#a3a1ad}.nav-section-label{font-size:10px;color:#a29faa;text-transform:uppercase;letter-spacing:1.1px;margin:29px 12px 9px;font-weight:700}.project-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin:0 4px}.dot-blue{background:#5979e9}.dot-yellow{background:#e3b841}.dot-purple{background:#9d70d3}.sidebar-bottom{margin-top:auto}.sync-status{margin:18px 8px 0;border-top:1px solid #e5e3eb;padding:17px 3px 0;color:#7f7d88;font-size:11px;display:grid;grid-template-columns:10px 1fr;gap:4px 7px}.sync-status small{grid-column:2;color:#aaa8b2;font-size:10px}.sync-dot{width:7px;height:7px;background:var(--green);border-radius:50%;margin-top:3px}.main-content{flex:1;min-width:0}.topbar{height:79px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 5.2vw}.breadcrumbs{display:flex;gap:11px;color:#9b99a4;font-size:12px}.breadcrumbs strong{color:#393641}.slash{color:#d0ced7}.top-actions{display:flex;align-items:center;gap:12px}.icon-button{font-size:22px;color:#777482;position:relative;width:30px}.notification-dot{position:absolute;right:3px;top:2px;width:5px;height:5px;background:#f07861;border-radius:50%}.page-content{max-width:1240px;margin:auto;padding:48px 5.2vw 70px}.welcome-row{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:36px}.eyebrow{font-size:10px;letter-spacing:1.4px;color:#aaa8b3;font-weight:700;margin:0 0 11px}.welcome-row h1{font:600 32px 'Space Grotesk';letter-spacing:-1.2px;margin:0}.wave{font-size:24px;color:var(--yellow);display:inline-block;margin-left:5px}.subtitle{color:var(--muted);margin:10px 0 0}.primary-button{background:var(--purple);color:#fff;padding:12px 17px;border-radius:9px;font-weight:600;box-shadow:0 6px 15px #635bff2e}.primary-button:hover{background:var(--purple-dark);transform:translateY(-1px)}.primary-button span{font-size:18px;line-height:0;margin-right:7px}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:48px}.metric-card{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:19px 21px 17px;box-shadow:var(--shadow);min-height:174px}.metric-top{display:flex;justify-content:space-between;color:#777581;font-size:12px;margin-bottom:13px}.metric-icon{color:#a09da9;font-size:17px}.metric-card strong{display:block;font:600 29px 'Space Grotesk';letter-spacing:-1px;margin-bottom:4px}.metric-note{font-size:11px;color:#9a98a3}.metric-note.positive{color:var(--green)}.progress,.time-track{height:5px;border-radius:4px;background:#eeedf3;margin:17px 0 9px;overflow:hidden}.progress span,.time-track span{height:100%;display:block;border-radius:4px;background:var(--purple)}.metric-card small{color:#aaa8b2;font-size:10px}.mini-bars{height:35px;display:flex;align-items:end;gap:6px;margin:12px 0 8px}.mini-bars i{width:10px;border-radius:2px 2px 0 0;background:#dedcf1}.mini-bars .bar-active{background:var(--purple)}.section-block{margin-bottom:48px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:18px}.section-heading h2{font:600 19px 'Space Grotesk';margin:0 0 5px;letter-spacing:-.4px}.section-heading p{margin:0;color:var(--muted);font-size:12px}.text-button{color:var(--purple);font-size:12px;font-weight:600}.text-button span{font-size:17px;margin-left:4px}.focus-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.focus-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;min-height:155px;box-shadow:var(--shadow);position:relative}.focus-card:hover,.task-row:hover{border-color:#d7d3ff;box-shadow:0 8px 25px rgba(99,91,255,.1)}.focus-card .tag,.task-tag{font-size:10px;padding:4px 8px;border-radius:20px;background:#f0efff;color:var(--purple-dark);font-weight:600}.focus-card h3{font-size:14px;line-height:1.35;margin:15px 0 11px;max-width:240px}.focus-meta{display:flex;justify-content:space-between;color:#aaa8b1;font-size:11px}.priority{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:6px;background:#e6b43e}.priority.high{background:#ed7963}.priority.low{background:#6eb39b}.check{width:19px;height:19px;border:1px solid #d7d5df;border-radius:50%;display:inline-grid;place-items:center;color:transparent;vertical-align:middle;margin-right:8px;font-size:11px}.check.done{background:var(--green);border-color:var(--green);color:#fff}.view-controls{display:flex;align-items:center;gap:7px}.search-box{height:34px;border:1px solid var(--line);background:#fff;border-radius:8px;display:flex;align-items:center;padding:0 10px;gap:7px;color:#a5a2ad}.search-box input{border:0;outline:0;width:135px;color:var(--ink);background:transparent;font-size:12px}.view-controls select{height:34px;border:1px solid var(--line);border-radius:8px;color:#777581;background:#fff;padding:0 8px;font-size:11px}.view-toggle{height:32px;width:32px;border-radius:7px;color:#a3a1ac}.view-toggle.active{background:#ebe9ff;color:var(--purple-dark)}.task-list{display:grid;gap:7px}.task-row{display:grid;grid-template-columns:25px minmax(180px,1fr) 130px 90px 90px;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px;transition:.15s}.task-title{font-weight:600;font-size:13px}.task-title.completed{text-decoration:line-through;color:#aaa8b2}.task-project{color:#878590;font-size:11px}.task-date,.task-time{font-size:11px;color:#9e9ba7}.task-date.today{color:#e67c5d;font-weight:600}.board{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.board-column{background:#f4f3f8;padding:13px;border-radius:12px;min-height:180px}.board-column h3{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:#777581;margin:0 0 10px}.board .task-row{display:block;margin-bottom:8px}.board .task-project,.board .task-date,.board .task-time{display:block;margin-top:9px}.modal-backdrop{position:fixed;inset:0;background:#29253c66;display:grid;place-items:center;z-index:5}.modal-backdrop[hidden]{display:none}.modal{width:min(470px,calc(100% - 32px));background:#fff;border-radius:16px;padding:31px;position:relative;box-shadow:0 20px 70px #251c4c33}.modal h2{font:600 22px 'Space Grotesk';margin:0 0 25px}.modal-close{position:absolute;right:17px;top:14px;font-size:24px;color:#9d9aa6}.modal label{display:block;color:#767480;font-size:11px;font-weight:600;margin-bottom:15px}.modal input,.modal select{width:100%;border:1px solid var(--line);border-radius:8px;background:#fbfbfd;padding:11px 12px;margin-top:6px;outline-color:var(--purple);color:var(--ink)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.full-width{width:100%;margin-top:6px}@media(max-width:900px){.sidebar{width:210px}.metric-grid,.focus-grid{grid-template-columns:1fr}.metric-card{min-height:140px}.task-row{grid-template-columns:25px 1fr 90px}.task-row .task-project,.task-row .task-time{display:none}.page-content{padding-left:4vw;padding-right:4vw}}@media(max-width:650px){.sidebar{display:none}.sidebar-resizer{display:none}.topbar{padding:0 20px}.page-content{padding:32px 20px}.welcome-row{display:block}.welcome-row .primary-button{margin-top:20px}.view-controls{margin-top:15px;flex-wrap:wrap}.section-heading{display:block}.task-row{grid-template-columns:25px 1fr 80px;padding:13px 10px}.task-row .task-date{font-size:10px}.task-tag{display:inline-block}}
/* Enlaces seguros a la ficha original de cada tarea en Odoo. */
.task-link{color:inherit;text-decoration:none}.task-link:hover{text-decoration:underline;text-decoration-color:#a09aff;text-underline-offset:3px}.task-link:focus-visible{outline:2px solid var(--purple);outline-offset:2px;border-radius:3px}.task-external{margin-left:6px;color:var(--purple);font-size:11px;opacity:.7}
.calendar-section[hidden],.focus-section[hidden],.tasks-section[hidden]{display:none}.calendar-summary{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}.calendar-summary span{padding:7px 11px;border:1px solid var(--line);border-radius:999px;background:#fff;color:#777581;font-size:12px;font-weight:600}.calendar-summary-alert{color:#b95d55!important}.calendar-summary-today{color:#c97831!important}.calendar-agenda{display:grid;gap:12px}.agenda-day{overflow:hidden;border:1px solid var(--line);border-radius:13px;background:#fff}.agenda-day-header{display:flex;align-items:center;justify-content:space-between;padding:14px 17px;border-bottom:1px solid var(--line);background:#f7f6fb}.agenda-day-header h3{margin:0;color:var(--ink);font-size:14px}.agenda-count{display:grid;place-items:center;min-width:24px;height:24px;border-radius:999px;background:#eae8f4;color:var(--purple-dark);font-size:12px;font-weight:700}.agenda-task{display:grid;grid-template-columns:8px minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:13px 17px;border-bottom:1px solid #f0eef4}.agenda-task:last-child{border-bottom:0}.task-status-dot{width:8px;height:8px;border-radius:50%;background:#8190b9}.task-status-dot.overdue{background:#c45b52}.task-status-dot.today{background:#d27b35}.task-status-dot.done{background:#70a27e}.agenda-task-client{margin-top:5px;color:var(--purple-dark);font-size:11px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agenda-task-meta{color:#8a8793;font-size:12px;white-space:nowrap}.calendar-empty{padding:28px 0;color:#8a8793;text-align:center}@media (max-width:650px){.agenda-task{grid-template-columns:8px minmax(0,1fr) auto}.agenda-task .task-tag{grid-column:2}.agenda-task-meta{grid-column:3;grid-row:1/3;align-self:start}}
.calendar-controls{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.calendar-controls select{min-width:190px;padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font:inherit;font-size:12px}@media (max-width:650px){.calendar-controls select{flex:1 1 100%;min-width:0}}
.page-content{max-width:1600px}
.check{cursor:default}.focus-card h3 .task-link{color:inherit;text-decoration:none}.focus-card h3 .task-link:hover{text-decoration:underline;text-decoration-color:#b9b4ff;text-underline-offset:3px}
