@font-face{font-family:Barlow;font-weight:400;font-display:swap;src:url(barlow-400.woff2) format("woff2")}
@font-face{font-family:Barlow;font-weight:500;font-display:swap;src:url(barlow-500.woff2) format("woff2")}
@font-face{font-family:Barlow;font-weight:600;font-display:swap;src:url(barlow-600.woff2) format("woff2")}
@font-face{font-family:Barlow;font-weight:700;font-display:swap;src:url(barlow-700.woff2) format("woff2")}
/* Usendi Licencias · PRIVADO · Propiedad intelectual exclusiva de Usendi. Misma paleta que la consola de Task Flow (claro y oscuro). */
:root{--accent:#ff5000;--accent-ink:#fff;--bg:#f4f1ea;--card:#fff;--soft:#faf8f3;--ink:#14161c;--muted:#5f6573;--line:#dedad0;--line2:#eee9de;--field:#fff;--field-line:#c9c4b8;--chip:#f1eee6;--ok:#1f9d55;--bad:#d1242f;--dark:#0f1116;--side-ink:#cfd2da;--side-hover:#222633;--warn-bg:#fff6e0;--warn-line:#e8b04a;--warn-ink:#7a4a00;--err-bg:#fdecea;--err-line:#e3a7a1;--err-ink:#8b2330;--ok-bg:#eaf6ee;--ok-ink:#14683a;--zebra:#faf8f3;--overlay:rgba(15,17,22,.55);--shadow:0 8px 24px rgba(0,0,0,.25);color-scheme:light}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--accent:#ff6a1f;--bg:#0f1218;--card:#171b23;--soft:#1d222c;--ink:#e9ebf0;--muted:#a3abb9;--line:#2c3441;--line2:#252b37;--field:#0f131a;--field-line:#3b4455;--chip:#262c38;--ok:#3ecf80;--bad:#ff7b7b;--dark:#080a0e;--side-hover:#1c212b;--warn-bg:#3a2e12;--warn-line:#8a6a1f;--warn-ink:#ffd48a;--err-bg:#3a1a1c;--err-line:#8a3a3f;--err-ink:#ffb4b4;--ok-bg:#12301f;--ok-ink:#7ee0a8;--zebra:#1b2029;--overlay:rgba(0,0,0,.7);color-scheme:dark}}
:root[data-theme="dark"]{--accent:#ff6a1f;--bg:#0f1218;--card:#171b23;--soft:#1d222c;--ink:#e9ebf0;--muted:#a3abb9;--line:#2c3441;--line2:#252b37;--field:#0f131a;--field-line:#3b4455;--chip:#262c38;--ok:#3ecf80;--bad:#ff7b7b;--dark:#080a0e;--side-hover:#1c212b;--warn-bg:#3a2e12;--warn-line:#8a6a1f;--warn-ink:#ffd48a;--err-bg:#3a1a1c;--err-line:#8a3a3f;--err-ink:#ffb4b4;--ok-bg:#12301f;--ok-ink:#7ee0a8;--zebra:#1b2029;--overlay:rgba(0,0,0,.7);color-scheme:dark}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
h1,h2,h3{margin:0;color:var(--ink)} h1{font-size:1.35rem} h2{font-size:1.05rem;margin:22px 0 8px} h3{font-size:.95rem}
.muted{color:var(--muted)} .small{font-size:.82rem} .right{text-align:right} .nowrap{white-space:nowrap}
.shell{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100vh}
.side{font-family:Barlow,"Segoe UI",system-ui,Arial,sans-serif;background:var(--dark);color:#f4f1ea;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;min-height:0}
.side img.logo{height:24px;width:auto;margin:14px 14px 4px;align-self:flex-start;flex:none}
.side .tag{font-size:10px;color:#7f8797;padding:0 14px 6px;letter-spacing:.09em;text-transform:uppercase;font-weight:700}
.side nav{flex:1;min-height:0;display:flex;flex-direction:column;gap:1px;padding:2px 8px 8px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#3b4354 transparent}
.side .nav-h{font:700 10px Barlow,sans-serif;text-transform:uppercase;letter-spacing:.09em;color:#7f8797;padding:10px 8px 3px}
.side a{color:var(--side-ink);text-decoration:none;padding:6px 10px;border-radius:7px;font-weight:600;font-size:13px;min-height:32px;display:flex;align-items:center;gap:8px;cursor:pointer}
.side a:hover{background:var(--side-hover)} .side a.on{background:var(--accent);color:#fff;font-weight:700}
.side .ico{width:18px;height:18px;flex:none}
.side .aviso-pi{color:#7f8797;margin:10px 8px 0;font-size:10.5px;line-height:1.35}
.side .foot{flex:none;padding:8px;border-top:1px solid #2a3040;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.side .foot button{min-height:30px;padding:0 9px;background:transparent;border:1px solid #3b4354;color:#f4f1ea;border-radius:8px;cursor:pointer;font:inherit;font-size:12px;font-weight:600}
.side .foot button:hover{background:var(--side-hover)}
.side .theme-seg{display:flex;width:100%}.side .theme-seg button{flex:1;border-radius:0;border-right-width:0}
.side .theme-seg button:first-child{border-radius:8px 0 0 8px}.side .theme-seg button:last-child{border-radius:0 8px 8px 0;border-right-width:1px}
.side .theme-seg button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}
.side .foot .salir{width:100%}
.menu-btn{display:none;background:var(--card);border:1px solid var(--line);border-radius:8px;min-height:34px;min-width:38px;color:var(--ink);cursor:pointer;align-items:center;justify-content:center;margin-bottom:10px}.menu-btn .ico{width:20px;height:20px}
.velo{position:fixed;inset:0;background:rgba(18,22,28,.45);z-index:35}.velo.hide{display:none}
.main{padding:22px 28px 60px;max-width:1200px;width:100%}
.top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}.top .grow{flex:1}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.grid{display:grid;gap:12px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g5{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:959px){.shell{grid-template-columns:1fr}.side{position:fixed;z-index:40;top:0;left:0;bottom:0;width:224px;height:100vh;transform:translateX(-100%);transition:transform .18s}.side.open{transform:none}.menu-btn{display:inline-flex}}
@media (max-width:900px){.g3,.g4,.g5{grid-template-columns:repeat(2,minmax(0,1fr))}.main{padding:16px}}
.tile{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer}.tile b{display:block;font-size:1.6rem;line-height:1.1}.tile span{color:var(--muted);font-size:.8rem}.tile.on{outline:2px solid var(--accent)}
.btn{min-height:34px;padding:0 14px;border-radius:9px;border:1px solid var(--ink);background:var(--card);color:var(--ink);font:inherit;font-weight:600;cursor:pointer}
.btn:hover{background:var(--chip)} .btn.pri{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)} .btn.pri:hover{filter:brightness(1.06)}
.btn.bad{border-color:var(--bad);color:var(--bad)} .btn.sm{min-height:28px;padding:0 10px;font-size:.82rem} .btn:disabled{opacity:.5;cursor:not-allowed}
input,select,textarea{width:100%;min-height:36px;padding:7px 10px;border:1px solid var(--field-line);border-radius:9px;background:var(--field);color:var(--ink);font:inherit}
textarea{min-height:120px;resize:vertical;font-family:inherit}
input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:1px}
label{display:block;font-weight:600;font-size:.84rem;margin:0 0 4px} .field{margin-bottom:12px} .hint{font-weight:400;color:var(--muted);font-size:.78rem}
table{width:100%;border-collapse:collapse} th{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}
td{padding:9px 10px;border-bottom:1px solid var(--line2);vertical-align:middle} tbody tr:nth-child(even){background:var(--zebra)} tr.click{cursor:pointer} tr.click:hover{background:var(--chip)}
.tablewrap{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:12px}
.chip{display:inline-block;padding:2px 9px;border-radius:99px;font-size:.76rem;font-weight:700;background:var(--chip);white-space:nowrap}
.chip.al_dia{background:var(--ok-bg);color:var(--ok-ink)} .chip.por_vencer{background:var(--warn-bg);color:var(--warn-ink)} .chip.en_gracia{background:#ffe0c2;color:#7a3a00} .chip.vencido,.chip.cancelado{background:var(--err-bg);color:var(--err-ink)} .chip.suspendido{background:var(--chip);color:var(--muted)}
.keybox{font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all;background:var(--soft);border:1px dashed var(--field-line);border-radius:10px;padding:10px 12px;max-height:96px;overflow:auto;user-select:all}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px}.kv dt{color:var(--muted);font-size:.82rem}.kv dd{margin:0;font-weight:600}
.alert{border-radius:10px;padding:10px 12px;margin:10px 0;border:1px solid var(--warn-line);background:var(--warn-bg);color:var(--warn-ink)} .alert.err{border-color:var(--err-line);background:var(--err-bg);color:var(--err-ink)} .alert.ok{border-color:#8fcfa8;background:var(--ok-bg);color:var(--ok-ink)}
.veil{position:fixed;inset:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}
.modal{background:var(--card);border-radius:14px;padding:20px;max-width:560px;width:100%;max-height:92vh;overflow:auto;box-shadow:var(--shadow)} .modal h2{margin:0 0 12px} .modal .acts{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}
.toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:var(--dark);color:#fff;padding:10px 16px;border-radius:10px;z-index:99;box-shadow:var(--shadow);max-width:90vw}
.login{max-width:380px;margin:12vh auto;padding:0 16px}.login .card{padding:24px}.login img{height:28px;margin-bottom:14px}
.tabs{display:flex;gap:4px;margin-bottom:10px;flex-wrap:wrap}.tabs button{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:8px;padding:5px 12px;cursor:pointer;font:inherit;font-weight:600}.tabs button.on{background:var(--accent);border-color:var(--accent);color:#fff}
.bar{height:8px;background:var(--chip);border-radius:6px;overflow:hidden}.bar i{display:block;height:100%;background:var(--accent)}
.notice{margin-top:34px;font-size:.72rem;color:var(--muted)}
code{background:var(--chip);padding:1px 6px;border-radius:5px;font-size:.85em}
