:root{--bg: #f4f6fb;--sur: #fff;--sur2: #f8f9fc;--bor: #e4e7ef;--bor2: #ced3e8;--tx: #1a1d2e;--tx2: #5a6080;--tx3: #9499b8;--ac: #1a4fd6;--acl: #eef2fd;--ach: #1340b0;--red: #c7253e;--rbg: #fef0f2;--rb: #f9c0c8;--amb: #b45309;--abg: #fffbeb;--ab: #fcd34d;--grn: #166534;--gbg: #f0fdf4;--gb: #bbf7d0;--blu: #1e40af;--bbg: #eff6ff;--bb: #bfdbfe;--pur: #6d28d9;--pbg: #f5f3ff;--pb: #ddd6fe;--gry: #f1f5f9;--grb: #cbd5e1;--sh: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);--shm: 0 4px 20px rgba(0,0,0,.1);--r: 8px;--rl: 12px;--rxl: 16px;--sidebar-w: 232px}.cc0{background:#fff8f0!important;border-left:3px solid #f97316!important}.cc1{background:#f0f9ff!important;border-left:3px solid #0ea5e9!important}.cc2{background:#fdf4ff!important;border-left:3px solid #a855f7!important}.cc3{background:#f0fdf4!important;border-left:3px solid #22c55e!important}.cc4{background:#fff1f2!important;border-left:3px solid #f43f5e!important}.cc5{background:#fefce8!important;border-left:3px solid #eab308!important}.cc6{background:#f0f9ff!important;border-left:3px solid #06b6d4!important}.cc7{background:#faf5ff!important;border-left:3px solid #8b5cf6!important}.cc8{background:#fff7ed!important;border-left:3px solid #ea580c!important}.cc9{background:#ecfdf5!important;border-left:3px solid #10b981!important}.cc10{background:#fef2f2!important;border-left:3px solid #ef4444!important}.cc11{background:#f8fafc!important;border-left:3px solid #64748b!important}.cc12{background:#fdf2f8!important;border-left:3px solid #ec4899!important}.cc13{background:#f0fdfa!important;border-left:3px solid #14b8a6!important}.cc14{background:#fffbeb!important;border-left:3px solid #f59e0b!important}.cc15{background:#eef2ff!important;border-left:3px solid #6366f1!important}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Plus Jakarta Sans,sans-serif;background:var(--bg);color:var(--tx);min-height:100vh;font-size:13.5px}a{color:inherit;text-decoration:none}.shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--sur);border-right:1px solid var(--bor);display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:0;z-index:20;overflow-y:auto}.main{margin-left:var(--sidebar-w);flex:1;padding:24px 26px;min-width:0}.brand{padding:16px 15px 13px;border-bottom:1px solid var(--bor);display:flex;align-items:center;gap:10px}.brand-logo{width:34px;height:34px;flex-shrink:0}.brand-n{font-size:15px;font-weight:700;color:var(--tx);line-height:1.15;letter-spacing:-.01em}.brand-n .plus{color:var(--ac);font-weight:700;margin-left:1px}.brand-s{font-size:10px;color:var(--tx3)}.nav{padding:9px 7px;flex:1}.ns{font-size:10px;font-weight:700;color:var(--tx3);letter-spacing:.08em;text-transform:uppercase;padding:9px 9px 3px}.ni{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:var(--r);cursor:pointer;color:var(--tx2);font-size:12.5px;font-weight:500;transition:all .15s;border:none;background:transparent;width:100%;text-align:left}.ni:hover{background:var(--bg);color:var(--tx)}.ni.active{background:var(--acl);color:var(--ac)}.ni svg{width:14px;height:14px;flex-shrink:0}.ni-badge{margin-left:auto;background:var(--rbg);color:var(--red);font-size:9px;font-weight:700;padding:1px 5px;border-radius:99px;border:1px solid var(--rb)}.ni-soon{margin-left:auto;font-size:9px;font-weight:600;color:var(--tx3);background:var(--gry);border:1px solid var(--grb);padding:1px 5px;border-radius:99px}.sf{padding:12px 15px;border-top:1px solid var(--bor);background:var(--sur2)}.sf-l{font-size:10px;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}.sf-v{font-family:JetBrains Mono,monospace;font-size:13px;font-weight:500;color:var(--tx2)}.topbar{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px;flex-wrap:wrap;gap:9px}.pt{font-size:19px;font-weight:700}.ps{font-size:11.5px;color:var(--tx3);margin-top:2px}.ta{display:flex;gap:6px;flex-wrap:wrap}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}.metric{background:var(--sur);border:1px solid var(--bor);border-radius:var(--rl);padding:14px 15px;box-shadow:var(--sh)}.ml{font-size:10px;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.mv{font-family:JetBrains Mono,monospace;font-size:18px;font-weight:500}.mv.red{color:var(--red)}.mv.amb{color:var(--amb)}.mv.blu{color:var(--blu)}.mv.grn{color:var(--grn)}.mv.gry{color:var(--tx2)}.ms{font-size:10px;color:var(--tx3);margin-top:2px}.filter-card{background:var(--sur);border:1px solid var(--bor);border-radius:var(--rl);padding:14px 16px;margin-bottom:14px;box-shadow:var(--sh)}.filter-title{font-size:11px;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;display:flex;align-items:center;gap:6px}.filter-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:8px;align-items:end}.fg2{display:flex;flex-direction:column;gap:4px}.fg2 label{font-size:10px;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:.04em}.fg2 input,.fg2 select{width:100%;background:var(--sur);border:1px solid var(--bor);border-radius:var(--r);color:var(--tx);font-family:Plus Jakarta Sans,sans-serif;font-size:12.5px;padding:6px 9px;outline:none;transition:border .15s}.fg2 input:focus,.fg2 select:focus{border-color:var(--ac);box-shadow:0 0 0 2px #1a4fd614}.btn-clear{padding:6px 10px;border-radius:var(--r);border:1px solid var(--bor);background:var(--sur);color:var(--tx2);font-family:Plus Jakarta Sans,sans-serif;font-size:12px;font-weight:600;cursor:pointer}.btn-clear:hover{background:var(--bg)}.btn{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:var(--r);font-family:Plus Jakarta Sans,sans-serif;font-size:12.5px;font-weight:600;cursor:pointer;border:1px solid var(--bor);background:var(--sur);color:var(--tx2);transition:all .15s;white-space:nowrap}.btn:hover{background:var(--bg);border-color:var(--bor2);color:var(--tx)}.btn svg{width:13px;height:13px}.btn.primary{background:var(--ac);border-color:var(--ac);color:#fff}.btn.primary:hover{background:var(--ach)}.btn.success{background:var(--gbg);border-color:var(--gb);color:var(--grn)}.btn:disabled{opacity:.5;cursor:not-allowed}.tc{background:var(--sur);border:1px solid var(--bor);border-radius:var(--rl);overflow:hidden;box-shadow:var(--sh)}.tw{overflow-x:auto}table{width:100%;border-collapse:collapse}thead th{font-size:10.5px;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:.06em;padding:9px 12px;text-align:left;background:var(--sur2);border-bottom:1px solid var(--bor);white-space:nowrap;-webkit-user-select:none;user-select:none}thead th.sortable{cursor:pointer}thead th.sortable:hover{color:var(--tx);background:#eff1f8}thead th.sort-asc:after{content:" ↑";color:var(--ac)}thead th.sort-desc:after{content:" ↓";color:var(--ac)}tbody td{padding:9px 12px;border-bottom:1px solid var(--bor);font-size:13px;vertical-align:middle;transition:background .1s}tbody tr:last-child td{border-bottom:none}.mono{font-family:JetBrains Mono,monospace;font-size:11.5px}.cn{font-weight:700;max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nb{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--tx3);background:var(--bg);padding:2px 5px;border-radius:4px}.badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:99px;font-size:10.5px;font-weight:700;white-space:nowrap;border:1px solid}.bv{background:var(--rbg);color:var(--red);border-color:var(--rb)}.bp{background:var(--gbg);color:var(--grn);border-color:var(--gb)}.bpe{background:var(--abg);color:var(--amb);border-color:var(--ab)}.bc{background:var(--pbg);color:var(--pur);border-color:var(--pb)}.bb{background:var(--gry);color:var(--tx2);border-color:var(--grb)}.ba{background:var(--bbg);color:var(--blu);border-color:var(--bb)}.bpr{background:#fdf2f8;color:#9d174d;border-color:#fbcfe8}.sh2{padding:12px 14px;border-bottom:1px solid var(--bor);display:flex;align-items:center;justify-content:space-between}.sh2-t{font-size:13.5px;font-weight:700}.sh2-c{font-size:11.5px;color:var(--tx3)}.acts{display:flex;gap:3px}.ib{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;border:1px solid var(--bor);background:transparent;cursor:pointer;color:var(--tx3);transition:all .15s}.ib:hover{background:var(--bg);color:var(--tx)}.ib.del:hover{background:var(--rbg);color:var(--red);border-color:var(--rb)}.ib svg{width:12px;height:12px}.mo{display:none;position:fixed;inset:0;background:#0f142873;z-index:100;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.mo.open{display:flex}.modal{background:var(--sur);border:1px solid var(--bor);border-radius:var(--rxl);padding:22px;width:520px;max-width:96vw;max-height:90vh;overflow-y:auto;box-shadow:var(--shm)}.mh{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.mh-t{font-size:16px;font-weight:700}.fr{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.fr.full{grid-template-columns:1fr}.fgg{display:flex;flex-direction:column;gap:4px}.fgg label{font-size:10px;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:.05em}.fgg input,.fgg select,.fgg textarea{width:100%;background:var(--sur);border:1px solid var(--bor);border-radius:var(--r);color:var(--tx);font-family:Plus Jakarta Sans,sans-serif;font-size:13px;padding:7px 9px;outline:none;transition:border .15s}.fgg input:focus,.fgg select:focus,.fgg textarea:focus{border-color:var(--ac);box-shadow:0 0 0 2px #1a4fd614}.fgg textarea{min-height:58px;resize:vertical}.mf{display:flex;justify-content:flex-end;gap:7px;margin-top:16px;padding-top:14px;border-top:1px solid var(--bor)}.notice{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--rl);border:1px solid;font-size:12.5px;line-height:1.5;margin-bottom:16px}.notice strong{font-weight:700}.notice.info{background:var(--acl);border-color:var(--bb);color:var(--blu)}.notice.warn{background:var(--abg);border-color:var(--ab);color:var(--amb)}.notice.ok{background:var(--gbg);border-color:var(--gb);color:var(--grn)}.notice code{font-family:JetBrains Mono,monospace;font-size:11.5px;background:#fff9;padding:1px 4px;border-radius:4px}.wip{background:var(--sur);border:1px solid var(--bor);border-radius:var(--rl);box-shadow:var(--sh);padding:40px 24px;text-align:center}.wip svg{width:36px;height:36px;color:var(--tx3);margin:0 auto 12px;display:block;opacity:.6}.wip-t{font-size:14px;font-weight:700;margin-bottom:4px}.wip-s{font-size:12.5px;color:var(--tx2);max-width:460px;margin:0 auto}.wip-etapa{display:inline-block;margin-top:12px;font-size:11px;font-weight:700;color:var(--ac);background:var(--acl);border:1px solid var(--bb);padding:3px 9px;border-radius:99px}.empty{text-align:center;padding:36px;color:var(--tx3)}.empty svg{width:30px;height:30px;margin:0 auto 9px;opacity:.35;display:block}.empty p{font-size:12.5px}.menu-toggle{display:none}@media(max-width:900px){.sidebar{transform:translate(-100%);transition:transform .2s;box-shadow:var(--shm)}.sidebar.open{transform:none}.main{margin-left:0;padding:16px}.menu-toggle{display:inline-flex;margin-bottom:12px}.metrics{grid-template-columns:repeat(2,1fr)}.filter-grid{grid-template-columns:1fr 1fr}}.ph{display:none}@media print{.sidebar,.ta,.filter-card,.acts,.no-print,.menu-toggle{display:none!important}.main{margin-left:0!important;padding:10px!important}.shell{display:block}body{font-size:11px;background:#fff}.tc{box-shadow:none;border:1px solid #ccc}.metric{border:1px solid #ccc;box-shadow:none;break-inside:avoid}thead th{background:#f0f0f0!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}tr{break-inside:avoid}.ph{display:block!important;text-align:center;margin-bottom:14px;padding-bottom:10px;border-bottom:2px solid #333}.ph h1{font-size:16px}.ph p{font-size:11px;color:#666}}
