:root{--ink:#172a46;--muted:#758298;--brand:#345de3;--line:#e5eaf2;--sidebar:246px;--paper:#f6f8fc}*{box-sizing:border-box}body{font-family:Inter,"Segoe UI",system-ui,sans-serif;background:var(--paper);color:var(--ink);font-size:14px}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}h1{font-size:29px;font-weight:750;letter-spacing:-.8px}h2{font-size:19px;font-weight:700}h3{font-size:16px;font-weight:650}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:#fff;border-right:1px solid var(--line);padding:30px 20px;display:flex;flex-direction:column;z-index:50}.brand{display:flex;gap:10px;align-items:center;color:var(--ink);font-size:16px;font-weight:750}.brand small{display:block;font-size:9px;letter-spacing:1.7px;color:var(--muted);margin-top:4px}.brand-symbol{height:36px;width:36px;background:var(--brand);border-radius:10px;color:#fff;font-size:24px;text-align:center;line-height:36px;position:relative}.brand-symbol span{font-size:16px;color:#aff0d4;position:absolute;top:-8px;right:2px}.workspace-label{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:9px;padding:12px;margin:34px 0 20px;font-size:12px;font-weight:650}.workspace-label small,.user-profile small{display:block;color:var(--muted);font-size:11px;font-weight:400;margin-top:3px}.workspace-dot{background:#eaf0ff;color:var(--brand);padding:8px;border-radius:7px}.nav-caption{font-size:10px;font-weight:750;color:#8c98a9;letter-spacing:1.6px;margin:18px 10px 10px}.nav-item{display:flex;gap:13px;align-items:center;padding:11px 13px;border-radius:7px;color:#617088;margin:4px 0;font-weight:550}.nav-item>span{font-size:20px;width:22px}.nav-item.active{background:#eaf0ff;color:var(--brand)}.nav-item:hover{background:#f3f6fc;text-decoration:none}.sidebar-bottom{margin-top:auto;padding-top:30px}.team-note{font-size:11px;color:#57706b;background:#f2f9f6;padding:14px 10px;border-radius:8px}.team-note small{display:block;font-size:10px;margin:6px 0 0 12px;color:#7b918b}.status-dot{display:inline-block;width:6px;height:6px;background:#47aa87;border-radius:50%;margin-right:5px}.user-profile{display:flex;gap:10px;margin-top:25px;align-items:center;font-size:12px}.avatar{width:32px;height:32px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#e9e5fc;color:#7563a5;font-size:11px;font-weight:700}.logout-button{border:0;background:none;color:#7b8799;font-size:11px;margin:10px 0 0 40px}.workspace{margin-left:var(--sidebar);min-height:100vh;display:flex;flex-direction:column}.topbar{height:76px;border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 38px;gap:16px}.breadcrumb-label{font-size:12px;color:#7d899c}.breadcrumb-label span{padding:0 12px;color:#c5ccda}.top-actions{display:flex;align-items:center;gap:26px}.search-shortcut{color:#8a96a8;font-size:18px}.search-shortcut span{font-size:12px;margin-left:8px}.page-content{padding:34px 38px;max-width:1680px;width:100%;margin:0 auto;flex:1}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:28px}.eyebrow{font-size:10px;letter-spacing:1.8px;color:var(--brand);font-weight:750;margin-bottom:10px}.subtitle{color:var(--muted);margin:8px 0 0;font-size:13px}.btn{font-size:12px;font-weight:600;padding:10px 17px;border-radius:7px}.btn-primary{background:var(--brand);border-color:var(--brand);box-shadow:0 3px 7px #345de318}.btn-light{background:white;border:1px solid var(--line);color:#5d6d84}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-bottom:28px}.stat-card{background:white;border:1px solid var(--line);border-radius:10px;padding:22px}.stat-label{color:#748197;font-size:12px}.stat-value{font-size:30px;font-weight:700;margin:13px 0 7px;line-height:1}.stat-note{font-size:11px;color:#8c97a6}.stat-icon{float:right;background:#edf1fd;color:var(--brand);padding:7px 10px;border-radius:8px}.panel{border:1px solid var(--line);border-radius:10px;background:#fff;margin-bottom:24px;overflow:hidden}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;border-bottom:1px solid #f0f2f7}.panel-heading h2{margin:0;font-size:16px}.panel-heading a{font-size:12px}.panel-body{padding:24px}.dashboard-columns{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr);gap:24px}.table{--bs-table-color:var(--ink);font-size:12px;margin:0}.table th{font-size:10px;font-weight:650;color:#8b97a8;text-transform:uppercase;letter-spacing:.8px;background:#fbfcfe;padding:14px 20px;white-space:nowrap}.table td{padding:17px 20px;vertical-align:middle;border-color:#f0f2f7}.task-title{font-weight:600;color:var(--ink);display:block;margin-bottom:4px}.task-code{font-size:10px;color:#8c98a9}.badge-soft{display:inline-block;border-radius:5px;background:#eef1f7;color:#718096;font-size:10px;font-weight:600;padding:5px 8px;white-space:nowrap}.priority-alta,.priority-urgente{background:#fff0ed;color:#c66351}.priority-media{background:#fff7e5;color:#ad8b37}.priority-baja{background:#eaf7f0;color:#4d9775}.done{background:#e8f6ef;color:#39916e}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.project-card{padding:23px;border:1px solid var(--line);border-radius:10px;background:#fff}.project-icon{display:inline-flex;align-items:center;justify-content:center;height:40px;width:40px;background:#edf1fd;color:var(--brand);font-weight:750;border-radius:10px;margin-bottom:18px}.project-card h2{font-size:16px;margin-bottom:8px}.project-card p{font-size:12px;color:var(--muted);min-height:36px}.project-card-footer{border-top:1px solid var(--line);padding-top:15px;margin-top:20px;display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.empty-state{text-align:center;padding:45px 20px;color:#8290a4}.empty-state strong{display:block;font-size:15px;color:#4b5e7a;margin-bottom:8px}.empty-symbol{font-size:32px;color:#b2c0de;display:block;margin-bottom:10px}.filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px;padding:16px 20px;background:#fff;border:1px solid var(--line);border-radius:9px;margin-bottom:24px}.filters label{font-size:10px;color:#8090a5;display:block;margin-bottom:5px}.filters .form-control,.filters .form-select{font-size:12px;min-width:130px}.filter-search{flex:1;min-width:160px}.form-label{font-size:12px;font-weight:600;color:#52627a}.form-control,.form-select{border-color:#dfe5ef;font-size:13px;padding:10px 12px;color:#314460}.form-control:focus,.form-select:focus{box-shadow:0 0 0 3px #345de31a;border-color:#8ea5ef}.form-text{font-size:11px}.form-panel{max-width:850px}.form-actions{display:flex;gap:12px;margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}.board{display:grid;grid-auto-columns:minmax(255px,1fr);grid-auto-flow:column;gap:20px;overflow-x:auto;padding-bottom:15px}.board-column{background:#edf1f7;border-radius:10px;padding:14px;min-height:440px}.column-title{font-size:12px;font-weight:650;display:flex;align-items:center;gap:9px;padding:5px 3px 16px}.column-count{background:#dfe5ef;padding:1px 6px;border-radius:5px;color:#7b8899;font-size:10px}.column-list{min-height:340px;display:flex;flex-direction:column;gap:12px}.task-card{background:white;border:1px solid #e2e7ef;border-radius:8px;padding:16px;box-shadow:0 2px 4px #223a5810;cursor:grab}.task-card.locked{cursor:default}.task-card h3{font-size:13px;line-height:1.5;font-weight:600;margin:10px 0 20px}.card-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.card-meta .avatar{width:25px;height:25px;font-size:9px}.ghost{opacity:.35}.view-tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);margin-bottom:24px}.view-tabs a{padding:13px 2px;color:var(--muted);font-size:12px}.view-tabs a.active{border-bottom:2px solid var(--brand);color:var(--brand);font-weight:650}.event-item{display:flex;gap:14px;padding:18px 0;border-bottom:1px solid #f0f2f7}.event-item:last-child{border-bottom:0}.date-tile{min-width:42px;height:48px;text-align:center;border:1px solid var(--line);border-radius:7px;padding:4px;color:var(--brand);font-weight:700;font-size:17px}.date-tile small{display:block;font-size:9px;text-transform:uppercase;color:#8593a7}.event-item h3{font-size:12px;margin:3px 0 7px}.event-item p{font-size:11px;color:var(--muted);margin:0}.page-footer{padding:15px 38px 25px;display:flex;justify-content:space-between;color:#9ba7b8;font-size:10px}.page-footer span:first-child{font-weight:650}.comment{padding:18px 0;border-bottom:1px solid var(--line)}.comment p,.description{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}.comment small{color:var(--muted)}.activity-item{font-size:12px;padding:12px 0;border-bottom:1px solid var(--line)}.activity-item small{display:block;color:var(--muted);margin-top:5px}.activity-values{color:#6e7f95;white-space:pre-wrap;overflow-wrap:anywhere;margin-top:5px;font-size:11px}.detail-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:24px}.detail-property{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #f0f2f7;font-size:12px}.detail-property span:first-child{color:var(--muted)}.public-workspace{max-width:1000px;margin:auto;padding-top:7vh}.login-layout{display:grid;grid-template-columns:1fr 1fr;border-radius:18px;overflow:hidden;box-shadow:0 15px 60px #21395e12;border:1px solid var(--line)}.login-branding{background:#1d3657;color:white;padding:50px 38px;display:flex;flex-direction:column;justify-content:space-between;min-height:450px}.login-branding h1{font-size:36px;line-height:1.25}.login-branding p{color:#a8bacd;line-height:1.8}.login-form{background:white;padding:48px 36px}.login-form h2{font-size:24px;margin-bottom:12px}.login-form .btn{width:100%;margin-top:10px}.mobile-menu{display:none}.skip-link{position:fixed;top:-100px;left:20px;z-index:100;background:white;padding:10px}.skip-link:focus{top:10px}:focus-visible{outline:3px solid #829cf0;outline-offset:3px}.fc{font-size:12px}.fc .fc-toolbar-title{font-size:20px}.fc .fc-button-primary{background:var(--brand);border-color:var(--brand)}.fc .fc-daygrid-event{padding:3px 5px}.fc-event-turno{box-shadow:inset 3px 0 0 0 #d4950a}.danger-zone{border-top:1px solid var(--line);padding-top:20px;margin-top:30px}textarea{min-height:110px}#app-feedback{scroll-margin-top:20px}@media(min-width:1600px){.page-content{padding-top:45px}.stat-card{padding:26px}}@media(max-width:1200px){:root{--sidebar:220px}.sidebar{padding:25px 14px}.page-content{padding:28px 24px}.dashboard-columns{grid-template-columns:1fr}.project-grid{grid-template-columns:repeat(2,1fr)}.topbar{padding:0 24px}}@media(max-width:850px){:root{--sidebar:0px}.sidebar{width:246px;transform:translateX(-100%);transition:transform .2s;box-shadow:10px 0 30px #19375620}.menu-open .sidebar{transform:translateX(0)}.mobile-menu{display:block}.breadcrumb-label{flex:1}.topbar{height:64px;padding:0 18px}.page-content{padding:24px 18px}.stats-grid{grid-template-columns:repeat(2,1fr);gap:12px}.stat-card{padding:18px}.page-heading{align-items:flex-start}.project-grid{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}.search-shortcut span{display:none}.top-actions{gap:16px}.page-footer{padding:15px 18px}.login-layout{grid-template-columns:1fr}.login-branding{min-height:180px;padding:25px}.login-branding h1{font-size:27px}.login-branding p{display:none}.login-form{padding:28px}.public-workspace{padding-top:0}.fc .fc-toolbar{flex-wrap:wrap;gap:12px}.table td,.table th{padding:14px}h1{font-size:25px}.board{grid-auto-columns:280px}.page-heading .btn{white-space:nowrap}.form-actions{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
:root[data-theme="dark"]{--ink:#e7ecf6;--muted:#94a1b8;--brand:#6d8dff;--line:#2b3650;--paper:#0e1420;color-scheme:dark}
[data-theme="dark"] body{background:var(--paper);color:var(--ink)}
[data-theme="dark"] .sidebar,[data-theme="dark"] .topbar,[data-theme="dark"] .panel,[data-theme="dark"] .stat-card,[data-theme="dark"] .project-card,[data-theme="dark"] .task-card,[data-theme="dark"] .btn-light,[data-theme="dark"] .filters,[data-theme="dark"] .login-form,[data-theme="dark"] .skip-link,[data-theme="dark"] .fc-list-day-cushion{background:#161d2c}
[data-theme="dark"] .btn-light{color:#c3cce0;border-color:var(--line)}
[data-theme="dark"] .theme-toggle{color:#e7ecf6}
[data-theme="dark"] .workspace-dot,[data-theme="dark"] .nav-item.active,[data-theme="dark"] .fc-day-today{background:#24304d!important}
[data-theme="dark"] .nav-item{color:#aab6cb}
[data-theme="dark"] .nav-item:hover{background:#1c2436}
[data-theme="dark"] .team-note{background:#122a1f;color:#8fb3a6}
[data-theme="dark"] .team-note small{color:#72917f}
[data-theme="dark"] .avatar{background:#2a2350;color:#c3b5f0}
[data-theme="dark"] .logout-button{color:#8d9ab0}
[data-theme="dark"] .breadcrumb-label{color:#93a0b8}
[data-theme="dark"] .breadcrumb-label span{color:#4a5670}
[data-theme="dark"] .search-shortcut{color:#93a0b8}
[data-theme="dark"] .stat-label{color:#8d9ab0}
[data-theme="dark"] .stat-note{color:#8d9ab0}
[data-theme="dark"] .stat-icon,[data-theme="dark"] .project-icon{background:#202c4c}
[data-theme="dark"] .panel-heading,[data-theme="dark"] .event-item,[data-theme="dark"] .detail-property{border-color:#243049}
[data-theme="dark"] .table{--bs-table-bg:transparent;--bs-table-color:var(--ink);--bs-table-striped-bg:#1a2234;--bs-table-striped-color:var(--ink);--bs-table-hover-bg:#1c2436;--bs-table-hover-color:var(--ink)}
[data-theme="dark"] .table th{background:#1a2234;color:#8d9ab0}
[data-theme="dark"] .table td{border-color:#243049}
[data-theme="dark"] .task-code{color:#8d9ab0}
[data-theme="dark"] .badge-soft{background:#232c42;color:#aab6cc}
[data-theme="dark"] .priority-alta,[data-theme="dark"] .priority-urgente{background:#3a1f1c;color:#ff9a85}
[data-theme="dark"] .priority-media{background:#3a2f12;color:#f0c674}
[data-theme="dark"] .priority-baja{background:#163626;color:#7bd9ab}
[data-theme="dark"] .done{background:#14301f;color:#5fcf98}
[data-theme="dark"] .empty-state{color:#8d9ab0}
[data-theme="dark"] .empty-state strong{color:#c7d0e3}
[data-theme="dark"] .empty-symbol{color:#3c4863}
[data-theme="dark"] .form-label{color:#aab6cc}
[data-theme="dark"] .form-text,[data-theme="dark"] .text-muted{color:#8d9ab0!important}
[data-theme="dark"] .filters label{color:#8d9ab0}
[data-theme="dark"] .form-control,[data-theme="dark"] .form-select{background:#0e1420;border-color:#2d3850;color:#e7ecf6}
[data-theme="dark"] .form-control:focus,[data-theme="dark"] .form-select:focus{background:#0e1420;color:#e7ecf6;border-color:#4c6bd6}
[data-theme="dark"] .board-column{background:#121a29}
[data-theme="dark"] .column-count{background:#27314a;color:#9aa7bd}
[data-theme="dark"] .task-card{border-color:#2a3650;box-shadow:0 2px 6px #00000040}
[data-theme="dark"] .activity-values{color:#8d9ab0}
[data-theme="dark"] .date-tile small{color:#8d9ab0}
[data-theme="dark"] .login-layout{box-shadow:0 15px 60px #00000040}
[data-theme="dark"] .alert-success{background:#122a1f;color:#7bd9ab;border-color:#1e4631}
[data-theme="dark"] .alert-danger{background:#301417;color:#ff9a9a;border-color:#52232a}
[data-theme="dark"] .alert-info{background:#122840;color:#8fc4ff;border-color:#1d3a5c}
[data-theme="dark"] .fc{color:var(--ink);--fc-border-color:#2b3650;--fc-page-bg-color:#161d2c;--fc-neutral-bg-color:#1a2234;--fc-list-event-hover-bg-color:#1c2436;--fc-today-bg-color:#24304d;--fc-button-text-color:#fff;--fc-button-bg-color:#345de3;--fc-button-border-color:#345de3;--fc-button-hover-bg-color:#4c6bd6;--fc-button-hover-border-color:#4c6bd6;--fc-button-active-bg-color:#2847b8;--fc-event-bg-color:#345de3;--fc-event-border-color:#345de3;--fc-neutral-text-color:#8d9ab0}
[data-theme="dark"] .fc-theme-standard .fc-scrollgrid,[data-theme="dark"] .fc-theme-standard td,[data-theme="dark"] .fc-theme-standard th{border-color:var(--line)}
[data-theme="dark"] .fc-daygrid-day-number,[data-theme="dark"] .fc-col-header-cell-cushion,[data-theme="dark"] .fc-toolbar-title,[data-theme="dark"] .fc-list-event-title,[data-theme="dark"] .fc-list-event-time{color:var(--ink)}
[data-theme="dark"] .fc-list-table{background:#161d2c}
[data-theme="dark"] .fc-event-turno{box-shadow:inset 3px 0 0 0 #e3ad3e}
.tag-swatch{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:8px;vertical-align:middle;border:1px solid #00000022}
.legend-bar{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:12px 18px;background:#fff;border:1px solid var(--line);border-radius:9px;margin-bottom:18px;font-size:12px}
.legend-label{font-weight:650;color:var(--muted)}
.legend-item{display:inline-flex;align-items:center;color:#52627a}
[data-theme="dark"] .legend-bar{background:#161d2c}
[data-theme="dark"] .legend-item{color:#c3cce0}
.schedule-day-people{border:1px solid var(--line);border-radius:8px;padding:10px;max-height:230px;overflow-y:auto}
.schedule-person-row{padding:6px 0;border-bottom:1px solid #f0f2f7}
.schedule-person-row:last-child{border-bottom:0}
.schedule-person-row .form-check{display:flex;align-items:center;gap:7px;margin:0 0 4px}
.schedule-person-row .form-check-label{font-size:12px;overflow-wrap:break-word}
.schedule-person-row .form-select{width:100%;font-size:11px;padding:4px 24px 4px 8px}
[data-theme="dark"] .schedule-day-people{background:#10182a}
[data-theme="dark"] .schedule-person-row{border-color:#243049}
.back-button{margin-right:16px;flex-shrink:0;display:inline-flex;align-items:center;gap:6px}
@media(max-width:850px){.back-button span{display:none}.back-button{padding:10px 12px}}
