:root{--bg:#e9edf9;--sidebar:#0c0f17;--surface:#fff;--surface2:#f1f4fc;--surface3:#e6ebf8;--input:#fff;--border:#dde3f2;--border-2:#cdd6ec;--text:#1b2230;--muted:#586277;--faint:#8b93a5;--primary:#3b5bdb;--primary-hover:#2f49b3;--primary-soft:#eef1fd;--green:#1f9d57;--green-soft:#e6f6ed;--amber:#bd8311;--amber-soft:#faf0d9;--red:#db4a55;--red-soft:#fceced;--radius:11px;--radius-sm:8px;--shadow-sm:0 1px 2px rgba(20,30,50,.05);--shadow-lg:0 16px 48px rgba(20,30,50,.15);--side-w:248px}*{box-sizing:border-box;margin:0;padding:0}#__nuxt,body,html{background:var(--bg);color:var(--text);font-family:Plus Jakarta Sans,-apple-system,sans-serif;height:100%;-webkit-font-smoothing:antialiased}button{cursor:pointer}button,input,select,textarea{font-family:inherit}a{color:inherit;text-decoration:none}.tnum{font-variant-numeric:tabular-nums}.shell{display:flex;min-height:100vh}.sidebar{background:var(--sidebar);color:#eef1f7;display:flex;flex-direction:column;flex-shrink:0;height:100vh;left:0;position:fixed;top:0;width:var(--side-w)}.side-brand{align-items:center;border-bottom:1px solid hsla(0,0%,100%,.08);display:flex;font-size:18px;font-weight:800;gap:11px;height:64px;letter-spacing:-.02em;padding:0 20px}.side-brand b{color:#8597ff}.side-brand .sub{color:#98a1b5;font-size:13px;font-weight:600}.brand-img{filter:drop-shadow(0 1px 3px rgba(0,0,0,.35));flex-shrink:0;height:32px;-o-object-fit:contain;object-fit:contain;width:32px}.brand-text{white-space:nowrap}.side-nav{display:flex;flex:1;flex-direction:column;gap:3px;padding:14px 12px}.side-link{align-items:center;border-radius:var(--radius-sm);color:#98a1b5;display:flex;font-size:14px;font-weight:500;gap:12px;padding:10px 12px;transition:background .12s,color .12s}.side-link i{text-align:center;width:20px}.side-link:hover{background:#ffffff0d;color:#eef1f7}.side-link.router-link-active{background:#8597ff26;color:#8597ff}.side-foot{align-items:center;border-top:1px solid hsla(0,0%,100%,.08);display:flex;gap:10px;padding:14px}.side-avatar{background:linear-gradient(140deg,#8b5cf6,#6172f3);border-radius:50%;color:#fff;display:grid;font-size:13px;font-weight:700;height:36px;place-items:center;width:36px}.side-foot .meta{flex:1;line-height:1.3;overflow:hidden}.side-foot .meta b{display:block;font-size:13px;white-space:nowrap}.side-foot .meta span{color:#98a1b5;font-size:12px}.side-foot button{background:none;border:none;border-radius:6px;color:#98a1b5;padding:6px}.side-foot button:hover{background:#ffffff0f;color:#fff}.main{flex:1;margin-left:var(--side-w);min-width:0}.topbar{align-items:center;background:linear-gradient(180deg,#f4f7ff,#eef2fd);border-bottom:1px solid var(--border);display:flex;gap:14px;height:64px;padding:0 26px}.topbar h1{font-size:18px;font-weight:800;letter-spacing:-.02em}.topbar .spacer{flex:1}.content{max-width:1400px;padding:26px}.kpis{display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin-bottom:22px}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:18px}.kpi .label{color:var(--muted);font-size:12.5px;font-weight:600}.kpi .value{font-size:27px;font-weight:800;letter-spacing:-.03em;margin-top:8px}.kpi.blue .value{color:var(--primary)}.kpi.green .value{color:var(--green)}.kpi.amber .value{color:var(--amber)}.kpi.red .value{color:var(--red)}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.panel-head{align-items:center;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:15px 20px}.panel-head h3{font-size:14.5px;font-weight:700}table.tbl{border-collapse:collapse;font-size:13.5px;width:100%}.tbl th{color:var(--faint);font-size:11px;font-weight:700;letter-spacing:.05em;padding:12px 16px;text-align:left;text-transform:uppercase}.tbl td,.tbl th{border-bottom:1px solid var(--border)}.tbl td{padding:11px 16px;white-space:nowrap}.tbl tbody tr:hover{background:var(--surface2)}.tbl tbody tr:last-child td{border-bottom:none}.tbl .num{text-align:right}.badge{align-items:center;border-radius:7px;display:inline-flex;font-size:11.5px;font-weight:700;gap:5px;padding:3px 9px}.badge.demo{background:var(--amber-soft);color:var(--amber)}.badge.activa{background:var(--green-soft);color:var(--green)}.badge.suspendida,.badge.vencida{background:var(--red-soft);color:var(--red)}.btn{align-items:center;background:var(--surface2);border:1px solid var(--border-2);border-radius:var(--radius-sm);color:var(--text);display:inline-flex;font-size:13.5px;font-weight:600;gap:8px;height:40px;justify-content:center;padding:0 16px;transition:background .12s,border-color .12s}.btn:hover{background:var(--surface3)}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-sm{font-size:12.5px;height:32px;padding:0 11px}.btn-danger{color:var(--red)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.inp{background:var(--input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:14px;height:40px;outline:none;padding:0 12px;width:100%}.inp:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}select.inp{-webkit-appearance:none;-moz-appearance:none;appearance:none}.modal-overlay{background:#0f141e73;display:grid;inset:0;padding:20px;place-items:center;position:fixed;z-index:1000}.modal{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);max-height:90vh;max-width:480px;overflow-y:auto;width:100%}.modal-head{border-bottom:1px solid var(--border);font-size:16px;font-weight:800;padding:18px 22px}.modal-body{padding:22px}.modal-foot{border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end;padding:16px 22px}.login-wrap{background:var(--sidebar);display:grid;min-height:100vh;place-items:center}.login-card{background:var(--surface);border-radius:16px;box-shadow:var(--shadow-lg);max-width:360px;padding:34px;width:100%}.login-brand{align-items:center;display:flex;gap:12px;margin-bottom:6px}.login-logo{filter:drop-shadow(0 2px 6px rgba(0,0,0,.25));height:40px;-o-object-fit:contain;object-fit:contain;width:40px}.login-card h1{font-size:22px;font-weight:800;letter-spacing:-.02em}.login-card .sub{color:var(--muted);font-size:13.5px;margin-bottom:24px}.login-card .btn{height:46px;width:100%}.err{color:var(--red);font-size:13px;margin-top:10px;text-align:center}.empty-state{color:var(--muted);padding:50px;text-align:center}
