:root{--paper:#F5F1EA;--surface:#FFFFFF;--ink:#22201C;--ink2:#5E574E;--muted:#9B9184;--line:#E7E0D5;--line2:#D8CFC1;--accent:#C95138;--accent-d:#A63C27;--gold:#B8860B;--hoy:#C95138;--semana:#B8860B;--ok:#3E7A4E;--wait:#7A6E9E;--arte:#C95138;--cafe:#8A5A2B;--tec:#2F6DB0;--pers:#3E7A4E;--enc:#B8860B;--shadow:0 1px 2px rgba(34,32,28,.06),0 6px 16px rgba(34,32,28,.06);--shadow-lift:0 8px 24px rgba(34,32,28,.16);--r:14px;--safe-top:env(safe-area-inset-top);--safe-bot:env(safe-area-inset-bottom)}@media (prefers-color-scheme: dark){:root{--paper:#1C1A17;--surface:#26231F;--ink:#F1EBE1;--ink2:#C3B9AC;--muted:#8A8073;--line:#39342D;--line2:#453F36;--accent:#E07B5F;--gold:#E4B34A;--shadow:0 1px 2px rgba(0,0,0,.3),0 8px 20px rgba(0,0,0,.25)}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 -apple-system,Segoe UI,Roboto,system-ui,sans-serif;overscroll-behavior:none}button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}input,textarea,select{font:inherit}.login{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px}.login .box{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:32px 26px;width:100%;max-width:360px;box-shadow:var(--shadow)}.login .logo{font-size:2.4rem;text-align:center}.login h1{font-size:1.3rem;margin:6px 0 2px;text-align:center}.login p{color:var(--ink2);text-align:center;margin:0 0 22px;font-size:.9rem}.login label{font-size:.78rem;font-weight:700;color:var(--ink2);margin:12px 0 4px;display:block}.login input{width:100%;padding:12px 14px;border:1px solid var(--line2);border-radius:12px;background:var(--paper);color:var(--ink)}.login button{width:100%;margin-top:20px;background:var(--accent);color:#fff;padding:13px;border-radius:12px;font-weight:700}.login .err{color:var(--accent);font-size:.85rem;margin-top:12px;text-align:center;min-height:18px}.app{display:flex;flex-direction:column;height:100%}.topbar{padding:calc(10px + var(--safe-top)) 14px 8px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.topbar .row1{display:flex;align-items:center;gap:10px;margin-bottom:10px}.brand{font-weight:800;font-size:1.05rem;letter-spacing:-.01em}.brand small{font-weight:600;color:var(--muted);font-size:.7rem;margin-left:6px}.spacer{flex:1}.iconbtn{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:var(--paper);border:1px solid var(--line);font-size:1rem}.iconbtn.on{background:var(--accent);color:#fff;border-color:var(--accent)}.views{display:flex;gap:4px;background:var(--paper);border:1px solid var(--line);border-radius:11px;padding:3px}.views button{padding:6px 12px;border-radius:8px;font-size:.82rem;font-weight:700;color:var(--ink2)}.views button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.spaces{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.spaces::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;border:1px solid var(--line);background:var(--paper);border-radius:99px;padding:6px 13px;font-size:.83rem;font-weight:700;color:var(--ink2);display:flex;gap:6px;align-items:center}.chip.on{color:#fff;border-color:transparent}.chip .dot{width:8px;height:8px;border-radius:50%}.chip .n{font-size:.72rem;opacity:.75;font-weight:800}.board{flex:1;overflow-x:auto;overflow-y:hidden;display:flex;gap:12px;padding:14px;align-items:flex-start}.col{flex:0 0 82vw;max-width:320px;background:transparent;display:flex;flex-direction:column;max-height:100%}@media (min-width:720px){.col{flex:0 0 300px}}.col h3{font-size:.82rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--ink2);margin:0 0 10px;padding:0 4px;display:flex;align-items:center;gap:7px}.col h3 .c{background:var(--line);color:var(--ink2);border-radius:99px;padding:1px 8px;font-size:.72rem}.col.hoy h3{color:var(--accent)}.cards{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:9px;padding:2px 3px 80px;scrollbar-width:none;min-height:40px}.cards::-webkit-scrollbar{display:none}.note{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 13px;box-shadow:var(--shadow);position:relative;border-left:4px solid var(--sp,var(--accent));cursor:grab}.note.sortable-chosen{box-shadow:var(--shadow-lift);cursor:grabbing}.note.sortable-ghost{opacity:.35}.note.prio{background:linear-gradient(180deg,color-mix(in srgb,var(--sp) 8%,var(--surface)),var(--surface))}.note .t{font-weight:600;line-height:1.35;font-size:.94rem}.note .meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.tag{font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:99px;background:var(--paper);color:var(--ink2);border:1px solid var(--line);display:inline-flex;gap:4px;align-items:center}.tag.cli{color:var(--tec)}.tag.dl{color:var(--semana)}.tag.dl.hoy{color:#fff;background:var(--accent);border-color:var(--accent)}.tag.dl.vencido{color:#fff;background:var(--accent-d);border-color:var(--accent-d)}.tag.enc{color:var(--gold)}.star{position:absolute;top:10px;right:11px;font-size:.9rem;color:var(--gold)}.note .nota{color:var(--ink2);font-size:.82rem;margin-top:6px;white-space:pre-wrap}.addcard{margin:2px 3px;padding:10px;border:1.5px dashed var(--line2);border-radius:12px;color:var(--muted);font-weight:700;font-size:.85rem;text-align:center;background:transparent}.fab{position:fixed;right:16px;bottom:calc(16px + var(--safe-bot));width:56px;height:56px;border-radius:50%;background:var(--accent);color:#fff;font-size:1.8rem;box-shadow:var(--shadow-lift);z-index:30;line-height:1}.foco{flex:1;overflow-y:auto;padding:16px;max-width:640px;margin:0 auto;width:100%}.foco h2{font-size:1.1rem;margin:18px 0 8px}.foco h2:first-child{margin-top:2px}.foco .empty{color:var(--muted);text-align:center;padding:30px}.foco .note{margin-bottom:9px;cursor:pointer}.cal{flex:1;overflow-y:auto;padding:14px;max-width:720px;margin:0 auto;width:100%}.cal .head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.cal .head b{font-size:1.05rem}.cal .head button{width:38px;height:38px;border-radius:11px;background:var(--surface);border:1px solid var(--line)}.grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.grid .dow{text-align:center;font-size:.68rem;font-weight:800;color:var(--muted);padding:3px 0;text-transform:uppercase}.day{aspect-ratio:1;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:5px 4px;display:flex;flex-direction:column;gap:2px;overflow:hidden;min-height:0}.day.out{opacity:.35}.day.today{border-color:var(--accent);border-width:2px}.day .dn{font-size:.72rem;font-weight:700;color:var(--ink2)}.day .ev{font-size:.6rem;line-height:1.2;background:var(--sp,var(--accent));color:#fff;border-radius:4px;padding:1px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day .more{font-size:.6rem;color:var(--muted);font-weight:700}.mbg{position:fixed;top:0;right:0;bottom:0;left:0;background:#14120f80;z-index:40;display:flex;align-items:flex-end;justify-content:center;padding:0}@media (min-width:560px){.mbg{align-items:center;padding:20px}}.modal{background:var(--surface);width:100%;max-width:520px;border-radius:20px 20px 0 0;padding:20px 18px calc(20px + var(--safe-bot));max-height:92vh;overflow-y:auto}@media (min-width:560px){.modal{border-radius:20px}}.modal h2{margin:0 0 14px;font-size:1.1rem}.modal label{display:block;font-size:.76rem;font-weight:700;color:var(--ink2);margin:12px 0 4px}.modal input,.modal textarea,.modal select{width:100%;padding:11px 13px;border:1px solid var(--line2);border-radius:11px;background:var(--paper);color:var(--ink)}.modal .r{display:flex;gap:10px}.modal .r>*{flex:1}.pchips{display:flex;gap:8px;margin-top:4px}.pchip{flex:1;padding:9px;border:1px solid var(--line2);border-radius:10px;text-align:center;font-weight:700;font-size:.82rem;color:var(--ink2)}.pchip.on{background:var(--gold);color:#fff;border-color:var(--gold)}.modal .acc{display:flex;gap:10px;margin-top:20px}.modal .acc button{flex:1;padding:13px;border-radius:12px;font-weight:700}.bcancel{background:var(--paper);border:1px solid var(--line)!important;color:var(--ink2)}.bok{background:var(--accent);color:#fff}.bdel{flex:0 0 48px!important;background:transparent;border:1px solid var(--line)!important;color:var(--accent)}.banner{background:var(--gold);color:#fff;text-align:center;font-size:.8rem;font-weight:700;padding:6px}
