:root{--plum:#3f2148;--plum2:#30183a;--accent:#1f796c;--bg:#f7f7fa;--border:#e7e5ea;--ink:#282632;--muted:#777480;--yellow:#f2d47e;--shadow:0 16px 50px #21132922}*{box-sizing:border-box}html,body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:white;font-size:14px}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}.muted,.subtle{color:var(--muted)}.full{width:100%}.btn{border:1px solid transparent;border-radius:8px;min-height:39px;padding:8px 16px;background:#fff;color:var(--ink);font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;white-space:nowrap}.btn:hover{filter:brightness(.97)}.btn.primary{background:var(--accent);color:white}.btn.light{background:#f8f7fa;border-color:var(--border)}.btn.danger{color:#af3542;background:#fff0f1}.iconbtn{display:grid;place-items:center;border:0;background:none;width:34px;height:34px;border-radius:7px;color:inherit;font-size:19px}.iconbtn:hover{background:#0000000b}.authbody{min-height:100vh;display:grid;place-items:center;background:linear-gradient(145deg,#eae2ed,#faf8f8 58%,#e0f0eb);padding:20px}.authcard{width:min(430px,100%);border-radius:18px;box-shadow:var(--shadow);background:white;padding:36px}.authbrand{display:flex;align-items:center;gap:12px;font-size:17px}.mark{height:37px;width:45px;display:inline-grid;place-items:center;background:#f6d97b;color:var(--plum);font-size:19px;letter-spacing:-2px;border-radius:9px;font-weight:900;line-height:1}.authcard h1{font-size:27px;margin:34px 0 7px;letter-spacing:-.6px}.authcard p{color:#77717d;line-height:1.6}.authform{display:grid;gap:18px;margin-top:25px}.authform h3{font-size:15px;margin:10px 0 -4px}.authform label,.modalform label{display:grid;gap:7px;font-weight:630;color:#484451}.authform input,.modalform input,.modalform select,.modalform textarea{width:100%;min-height:40px;border:1px solid #d8d4dc;border-radius:8px;padding:10px 12px;background:white;color:var(--ink);outline:none}.authform input:focus,.modalform input:focus,.modalform select:focus,.modalform textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #1f796c22}.footnote{text-align:center;font-size:12px;margin:22px 0 0}.formerror{background:#fff0f1;padding:12px;border-radius:9px;color:#9b2835;margin-top:15px}.appbody{overflow:hidden}.shell{height:100dvh;display:flex;flex-direction:column;min-height:420px}.topbar{height:59px;flex:0 0 59px;background:var(--plum2);color:white;display:flex;align-items:center;gap:20px;padding:0 22px}.brand{display:flex;align-items:center;gap:11px;font-weight:750;font-size:16px;white-space:nowrap;min-width:235px}.brand .mark{height:34px;width:42px}.topsearch{margin:auto;display:flex;align-items:center;gap:11px;border:1px solid #ffffff35;border-radius:9px;background:#ffffff16;max-width:480px;width:100%;padding:0 13px;color:#ece0ef}.topsearch span{font-size:22px}.topsearch input{color:white;background:transparent;border:0;height:37px;width:100%;outline:0}.topsearch input::placeholder{color:#e4d8e7bb}.userarea{display:flex;align-items:center;gap:10px;white-space:nowrap}.presence{height:8px;width:8px;background:#7ed1ac;border-radius:50%}.avatarbtn,.avatar{height:34px;width:34px;border:0;border-radius:50%;background:#ead6f2;color:#3f2148;font-weight:800;display:inline-grid;place-items:center}.avatar.small{height:32px;width:32px}.belowtop{display:flex;flex:1;min-height:0}.sidebar{background:var(--plum);color:#ded1e2;display:flex;flex-direction:column;flex:0 0 265px;min-width:0}.workspace{height:67px;padding:16px 21px;border-bottom:1px solid #ffffff1b;display:flex;gap:11px;align-items:center;font-weight:800;color:white;font-size:15px}.workicon{background:#684770;border-radius:7px;width:30px;height:30px;display:grid;place-items:center;color:#fae08e}.workspace .muted{margin-left:auto}.sideScroll{overflow-y:auto;padding:22px 12px;flex:1}.sideheading{color:#c8accf;font-size:10px;font-weight:800;letter-spacing:1.6px;margin:0 11px 11px}.spacehead{display:flex;align-items:center;gap:9px;color:#f4eef7;font-weight:800;margin:14px 11px 5px;white-space:nowrap}.spacehead .spacedot{height:8px;width:8px;border-radius:50%;background:#e8c57a}.spacehead .spacedot.wellness{background:#82c3ae}.sideitem{display:flex;align-items:center;gap:8px;border:0;background:transparent;color:#d1c4d6;min-height:34px;width:100%;border-radius:6px;padding:7px 11px 7px 21px;text-align:left;font-size:13px}.sideitem:hover{background:#ffffff10}.sideitem.active{background:#745a7d;color:#fff;font-weight:780}.sideitem .hash{font-size:15px;opacity:.7}.sideadd{border:0;background:transparent;color:#d4c2da;padding:10px 15px;font-size:12px;text-align:left}.sideadd:hover{color:white}.sidefoot{margin:35px 12px;font-size:11px;opacity:.65}.sideprofile{padding:14px 19px;border-top:1px solid #ffffff1e;display:flex;gap:10px;align-items:center;color:#fff}.sideprofile strong{display:block;font-size:12px}.sideprofile small{display:block;color:#a3dfb5;margin-top:3px;font-size:11px}.main{display:flex;flex-direction:column;flex:1;min-width:0;background:#fff}.sectiontabs{height:54px;flex-shrink:0;display:flex;align-items:stretch;gap:5px;padding:0 21px;border-bottom:1px solid var(--border)}.tab{background:transparent;border:0;color:#817a85;display:flex;align-items:center;gap:10px;padding:0 20px;font-weight:700;border-bottom:3px solid transparent}.tab.active{color:var(--plum);border-bottom-color:#ba9156}.tab:hover{background:#f7f4f8}.view{display:flex;flex-direction:column;flex:1;min-height:0}.view[hidden],.overlay[hidden],.replybar[hidden]{display:none!important}.paneHead{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:19px 29px;border-bottom:1px solid var(--border);min-height:91px}.crumb{color:#908a95;font-size:10px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:6px}.paneHead h2{font-size:22px;letter-spacing:-.6px;margin:0}.headActions{display:flex;gap:10px}.messageList{flex:1;overflow-y:auto;padding:26px 28px 15px;display:flex;flex-direction:column;gap:18px}.message{display:flex;gap:12px;align-items:flex-start}.message .bubbleavatar{height:36px;width:36px;flex:none;border-radius:10px;background:#ecdeed;display:grid;place-items:center;color:#5a3563;font-weight:800}.message.mine .bubbleavatar{background:#d9eee6;color:#246052}.message .msgcontent{max-width:calc(100% - 55px);flex:1;min-width:0}.message .msgmeta{display:flex;align-items:baseline;gap:10px}.message .msgmeta strong{font-size:13px}.message .msgmeta span{font-size:11px;color:#9c95a0}.message .body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65;margin:5px 0 6px;font-size:13px}.msgactions{display:flex;gap:12px}.msgactions button{background:none;border:0;color:#8b8190;font-size:11px;padding:2px 0}.msgactions button:hover{color:#227565}.quote{border-left:3px solid #cbbacf;background:#f7f4f8;border-radius:4px;padding:7px 11px;font-size:12px;color:#716a75;margin:7px 0}.empty{color:#8a8490;margin:auto;text-align:center;max-width:330px;line-height:1.7}.empty .emptyicon{display:block;font-size:42px;margin-bottom:8px}.composer{border:1px solid #dcd5df;border-radius:11px;margin:0 28px 22px;padding:11px 15px 9px;box-shadow:0 3px 14px #36213908}.composer textarea{width:100%;height:62px;resize:vertical;padding:6px 0;border:0;outline:0;line-height:1.5;color:var(--ink)}.composer textarea::placeholder{color:#b1aab5}.composebottom{display:flex;justify-content:space-between;align-items:center;gap:10px}.composebottom span{color:#aaa3ad;font-size:11px}.replybar{border-bottom:1px solid var(--border);padding-bottom:7px;margin-bottom:7px;color:#59515d;font-size:12px}.replybar button{border:0;background:none;color:#b04757;margin-left:8px}.content{padding:24px 29px;overflow-y:auto;flex:1;background:#fdfcfd}.filterrow,.caltoolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.filterrow select,.caltoolbar select{padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:#fff;max-width:100%;min-height:39px}.taskList{display:grid;gap:11px}.taskCard{background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:15px;box-shadow:0 2px 6px #281b3305}.taskCard:hover{border-color:#cbbecf}.taskTitle{font-weight:730;font-size:14px;margin-bottom:8px;line-height:1.4}.taskTitle button{border:0;background:transparent;color:var(--ink);font-weight:750;font-size:14px;text-align:left;padding:0}.taskTitle button:hover{color:var(--accent)}.taskMeta{display:flex;flex-wrap:wrap;gap:12px;color:#8d8692;font-size:11px}.chip{display:inline-flex;align-items:center;padding:5px 9px;border-radius:5px;font-size:11px;font-weight:700;white-space:nowrap}.chip.pending{background:#fff3db;color:#95651e}.chip.progress{background:#e6f0ff;color:#3a6098}.chip.done{background:#e2f6e8;color:#347b4a}.taskright{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.taskright select{font-size:11px;border:1px solid var(--border);border-radius:7px;padding:7px}.taskright .btn{font-size:11px;min-height:32px}.calcontrols{display:flex;align-items:center;gap:14px}.calcontrols h3{margin:0;text-transform:capitalize;min-width:160px;text-align:center}.calcontrols .btn{min-width:34px;padding:0 8px}.calendarGrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid var(--border);border-top:1px solid var(--border);border-radius:8px;overflow:hidden;background:white}.calheader{background:#f6f3f6;text-align:center;font-size:11px;font-weight:750;padding:10px;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.calday{min-height:94px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:8px;overflow:hidden}.calday.outside{background:#faf9fa;color:#b9b3bd}.calday.today .daynum{background:var(--plum);color:white}.daynum{height:23px;width:23px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;margin-bottom:5px}.calevent{font-size:10px;background:#e9f2f0;color:#2c7367;padding:4px 5px;border-radius:4px;margin:3px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.calevent.task{background:#fff2d7;color:#885d20}.calendarLegend{display:flex;gap:18px;color:#777180;font-size:11px;margin-top:14px}.calendarLegend span:first-child{color:#a26c20}.calendarLegend span:last-child{color:#2c7367}.fileList{display:grid;gap:10px}.fileCard{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--border);border-radius:10px;padding:15px;min-width:0}.fileIcon{width:44px;height:44px;border-radius:10px;background:#f3edf4;color:var(--plum);display:grid;place-items:center;font-size:21px;flex:none}.fileInfo{min-width:0;flex:1}.fileInfo strong{display:block;overflow-wrap:anywhere;margin-bottom:6px}.fileInfo small{color:#8d8791}.searchgroup{margin-bottom:25px}.searchgroup h3{font-size:14px;border-bottom:1px solid var(--border);padding-bottom:9px}.searchitem{padding:12px;border:1px solid var(--border);margin:8px 0;border-radius:10px;cursor:pointer;white-space:pre-wrap;overflow-wrap:anywhere}.searchitem:hover{background:#f5f2f5}.overlay{position:fixed;inset:0;background:#24132997;z-index:70;display:grid;place-items:center;padding:15px}.modal{background:#fff;border-radius:16px;width:min(530px,100%);max-height:93vh;display:flex;flex-direction:column;box-shadow:var(--shadow)}.modalhead{padding:19px 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}.modalhead h2{margin:0;font-size:20px}.modalform{display:grid;gap:15px;padding:22px 24px;overflow-y:auto}.modalform textarea{min-height:84px;resize:vertical}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.formactions{display:flex;justify-content:flex-end;gap:9px;margin-top:4px}.helper{font-size:12px;color:#88808b;line-height:1.5}.toast{display:none;position:fixed;right:20px;bottom:20px;max-width:min(420px,calc(100vw - 30px));z-index:99;background:#2c683e;color:white;padding:13px 20px;border-radius:10px;box-shadow:var(--shadow)}.toast.show{display:block}.toast.error{background:#b74250}.mobileonly,.mobileNav{display:none}.accountmenu{display:grid;gap:10px;padding:20px 24px}.accountmenu p{color:var(--muted)}
@media(max-width:900px){.sidebar{flex-basis:226px}.brand{min-width:auto}.topbar{gap:11px}.userarea #userName{display:none}.tab{padding:0 13px}}
@media(max-width:680px){.appbody{overflow:hidden}.topbar{height:54px;flex-basis:54px;padding:0 12px;gap:10px}.brand{font-size:13px;gap:7px}.brand .mark{width:34px;height:30px;font-size:16px}.topsearch{width:100%;min-width:0;padding:0 8px}.topsearch input{font-size:12px}.userarea{gap:0}.userarea .presence{display:none}.avatarbtn{height:31px;width:31px}.mobileonly{display:grid}.sidebar{position:fixed;left:0;top:54px;bottom:61px;width:270px;z-index:45;transform:translateX(-100%);transition:transform .2s;box-shadow:none}.sidebar.open{transform:translateX(0);box-shadow:4px 0 30px #291a3e38}.sectiontabs{display:none}.mobileNav{height:61px;display:flex;justify-content:space-around;align-items:center;background:#fff;border-top:1px solid var(--border);flex:0 0 61px}.mnav{background:none;border:0;color:#8d8490;font-size:20px;display:flex;flex-direction:column;align-items:center;gap:1px;min-width:65px}.mnav small{font-size:10px}.mnav.active{color:var(--plum);font-weight:750}.paneHead{min-height:77px;padding:13px 16px}.paneHead h2{font-size:19px}.paneHead .btn{padding:7px 9px;font-size:11px;min-height:35px}.messageList{padding:19px 15px 12px;gap:15px}.composer{margin:0 12px 12px;padding:9px 10px}.composer textarea{height:58px}.composebottom span{font-size:10px;max-width:200px}.content{padding:18px 12px}.taskCard{padding:13px;display:block}.taskright{margin-top:10px;justify-content:flex-start}.calday{min-height:65px;padding:3px}.daynum{width:19px;height:19px}.calevent{font-size:9px;padding:3px;margin:2px 0}.calcontrols{gap:5px}.calcontrols h3{font-size:13px;min-width:125px}.caltoolbar select{font-size:11px;max-width:123px}.filterrow{flex-wrap:wrap}.formgrid{grid-template-columns:1fr}.modalhead{padding:15px}.modalform{padding:18px}.authcard{padding:25px 22px}}

/* Tablero de tareas: ampliación de la app existente, sin cambiar sus datos. */
.srOnly{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.taskModeToggle{display:flex;gap:3px;align-items:center;background:#f0edf1;border:1px solid var(--border);border-radius:9px;padding:3px;margin-left:auto;white-space:nowrap}
.taskModeToggle button{background:transparent;border:0;border-radius:6px;color:#756e7b;font-size:12px;font-weight:700;padding:8px 12px}
.taskModeToggle button.active{background:#fff;color:var(--plum);box-shadow:0 1px 4px #00000012}
.taskBoardHost{display:block}
.kanbanBoard{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:stretch;padding-bottom:12px}
.kanbanColumn{background:#f6f5f8;border:1px solid #e7e5ea;border-radius:14px;min-height:380px;min-width:0;display:flex;flex-direction:column;transition:background .16s,border-color .16s,box-shadow .16s}
.kanbanColumn.dragover{background:#e6f5f0;border-color:#2d937c;box-shadow:inset 0 0 0 2px #2d937c44}
.kanbanColumnHead{display:flex;align-items:center;justify-content:space-between;padding:17px 15px 11px}
.kanbanColumnHead>div{display:flex;gap:9px;align-items:center}
.kanbanColumnHead strong{font-size:13px;color:#3b3741}
.kanbanColumnDot{display:inline-block;width:9px;height:9px;border-radius:50%}
.kanbanColumnDot.pending{background:#e0ad4a}.kanbanColumnDot.progress{background:#6795dc}.kanbanColumnDot.done{background:#4dae82}
.kanbanCount{font-size:11px;border-radius:7px;padding:4px 8px;color:#696171;background:#e9e6ed;font-weight:700}
.kanbanColumnBody{padding:3px 10px 12px;display:grid;gap:10px;align-content:start;flex:1}
.kanbanEmpty{border:1px dashed #d8d4df;border-radius:10px;padding:26px 8px;text-align:center;font-size:12px;color:#aaa3af;line-height:1.6}
.kanbanCard{background:#fff;border:1px solid #e4e0e8;border-radius:11px;padding:13px;box-shadow:0 3px 11px #281b3307;cursor:grab;min-width:0}
.kanbanCard.dragging{opacity:.45;cursor:grabbing}
.kanbanCard.saving{opacity:.67;cursor:progress}
.kanbanCard:hover{border-color:#c4bccd;box-shadow:0 5px 18px #281b330e}
.kanbanCardTop,.kanbanCardBottom{display:flex;align-items:center;justify-content:space-between;gap:8px}
.kanbanPriority{font-size:10px;font-weight:750;border-radius:5px;padding:3px 7px;background:#f2f0f3;color:#77717e}
.kanbanPriority.priorityAlta{background:#ffebe9;color:#bd524a}.kanbanPriority.priorityMedia{background:#fff3db;color:#95651e}.kanbanPriority.priorityBaja{background:#e8f5ed;color:#277553}
.kanbanGrip{color:#bcb5c2;font-size:17px;line-height:1}
.kanbanCardTitle{display:block;margin:10px 0 7px;max-width:100%;padding:0;text-align:left;border:0;background:none;font-weight:750;font-size:13px;line-height:1.5;color:#302b36;overflow-wrap:anywhere}
.kanbanCardTitle:hover{color:var(--accent)}
.kanbanDescription{font-size:11px;line-height:1.5;color:#837d88;margin:0 0 10px;white-space:pre-line;overflow-wrap:anywhere}
.kanbanCardDetails{display:grid;gap:6px;margin:10px 0 12px;color:#6d6572;font-size:11px}
.kanbanCardBottom{border-top:1px solid #f0edf1;padding-top:10px;flex-wrap:wrap}
.kanbanProject{font-size:10px;font-weight:650;color:#746a78;overflow-wrap:anywhere;min-width:0;flex:1}
.kanbanMove select{max-width:126px;font-size:11px;cursor:pointer;color:#574d5d;border:1px solid #e5e1e8;background:#fcfbfd;border-radius:6px;padding:5px 4px}
.kanbanMove select:focus-visible,.taskModeToggle button:focus-visible,.kanbanCardTitle:focus-visible{outline:2px solid #258874;outline-offset:2px}
@media(max-width:1060px){.kanbanBoard{grid-template-columns:repeat(3,minmax(205px,1fr));gap:9px}.kanbanColumnBody{padding:3px 8px 10px}.kanbanCard{padding:11px}}
@media(max-width:760px){.kanbanBoard{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;padding-bottom:16px;gap:10px}.kanbanColumn{flex:0 0 min(82vw,315px);scroll-snap-align:start;min-height:420px}.taskModeToggle{order:2;margin-left:0}.filterrow #taskSummary{order:3;flex-basis:100%}}
