/* Pulso · administration workspace. Semantic tokens shared with the app. */
body.modo-admin { --adm-side:232px; --adm-top:72px; --ch1:var(--p-success); --ch2:var(--p-chart-home); --ch-warn:var(--p-warning); --ch-bad:var(--p-danger); }
body.modo-admin main.wrap { width:100%; max-width:none; margin:0; padding:0; min-height:100dvh; }
body.modo-admin main.wrap > footer { display:none; }
.p-console { color:var(--p-text); min-height:100dvh; font-variant-numeric:tabular-nums; }
/* A transformed view would contain the fixed header/sidebar while scrolling. */
[data-pulso] #vistaAdmin.p-console { animation:none; transform:none; }
.p-console * { box-sizing:border-box; }
.p-console [hidden] { display:none!important; }
.p-console-top { height:var(--adm-top); position:fixed; z-index:120; inset:0 0 auto; display:flex; align-items:center; gap:16px; padding:0 24px; border-bottom:1px solid var(--p-border); background:var(--p-surface); }
.p-console-brand { display:flex; gap:10px; align-items:center; text-decoration:none; color:var(--p-text); font-size:20px; font-weight:800; letter-spacing:-.8px; flex-shrink:0; }
.p-console-brand img { width:30px; height:30px; }
.p-console-workspace { border-left:1px solid var(--p-border); padding-left:20px; font-size:12px; color:var(--p-text-muted); }
.p-console-workspace b { color:var(--p-text); font-weight:600; }
.p-console-top-actions { display:flex; align-items:center; gap:12px; margin-left:auto; }
.p-console-identity { display:flex; align-items:center; gap:10px; border-left:1px solid var(--p-border); padding-left:18px; font-size:12px; }
.p-console-avatar { width:32px; height:32px; display:grid; place-items:center; border-radius:50%; background:var(--p-surface-raised); color:var(--p-text); font-weight:700; }
.p-console .p-button { box-shadow:none; font-size:12px; }
.p-console .p-button.icon { width:36px; height:36px; min-height:36px; border-color:transparent; background:transparent; border-radius:8px; }
.p-console .p-button.icon:hover { background:var(--p-surface-hover); }
.p-console .p-button svg { width:18px; height:18px; }
.p-console-side { position:fixed; left:0; top:var(--adm-top); bottom:0; width:var(--adm-side); padding:28px 14px 18px; border-right:1px solid var(--p-border); background:var(--p-surface); display:flex; flex-direction:column; gap:24px; overflow-y:auto; z-index:110; }
.p-console-nav { display:grid; gap:26px; }
.p-console-nav-group { display:grid; gap:4px; }
.p-console-nav-label { color:var(--p-text-muted); font-size:10px; letter-spacing:1.1px; font-weight:650; padding:0 14px 8px; text-transform:uppercase; }
.p-console-nav a { display:flex; gap:12px; align-items:center; min-height:44px; padding:10px 14px; border-radius:10px; color:var(--p-text-muted); font-weight:600; font-size:13px; text-decoration:none; transition:background var(--p-motion-fast); }
.p-console-nav a svg { width:18px; height:18px; flex-shrink:0; }
.p-console-nav a:hover { color:var(--p-text); background:var(--p-surface-hover); }
.p-console-nav a[aria-current=page] { background:var(--p-highlight); color:var(--p-highlight-ink); }
.p-console-nav a[aria-current=page]::after { content:""; width:5px; height:5px; background:currentColor; border-radius:50%; margin-left:auto; }
.p-console-side-foot { margin-top:auto; padding:18px 14px 0; border-top:1px solid var(--p-border); color:var(--p-text-muted); font-size:11px; line-height:1.7; }
.p-console-side-foot a { color:inherit; }
.p-console-main { margin-left:var(--adm-side); padding:calc(var(--adm-top) + 32px) 32px 32px; min-width:0; }
.p-console-heading { display:flex; justify-content:space-between; gap:24px; align-items:flex-end; margin-bottom:28px; }
.p-console-eyebrow { font-size:10px; font-weight:650; text-transform:uppercase; letter-spacing:1.3px; color:var(--p-text-muted); margin:0 0 8px; }
.p-console-heading h1 { font-size:28px; line-height:1.3; letter-spacing:-1px; margin:0 0 8px; font-weight:700; }
.p-console-heading p:not(.p-console-eyebrow) { color:var(--p-text-muted); font-size:13px; margin:0; line-height:1.6; }
.p-console-update { display:flex; gap:12px; align-items:center; flex-shrink:0; }
.p-console-update small { font-size:10px; color:var(--p-text-muted); }
.p-console-body { display:grid; gap:24px; min-width:0; }
.p-console-body:focus,.p-console #adminBody:focus { outline:none; }
.p-console-footer { display:flex; justify-content:space-between; gap:12px; margin-top:24px; color:var(--p-text-muted); font-size:10px; }
body.modo-admin.p-console-collapsed { --adm-side:72px; }
.p-console-collapsed .p-console-nav-label,.p-console-collapsed .p-console-nav a span,.p-console-collapsed .p-console-side-foot,.p-console-collapsed .p-console-nav a::after { display:none; }
.p-console-collapsed .p-console-nav a { padding:12px; }
.p-console-collapsed .p-console-side { padding:28px 10px; }
.p-admin-panel { padding:24px; min-width:0; border:1px solid var(--p-border); border-radius:16px; background:var(--p-surface); }
.p-admin-panel-head { display:flex; align-items:flex-start; gap:16px; justify-content:space-between; margin-bottom:20px; }
.p-admin-panel h2 { font-size:15px; line-height:1.4; margin:0 0 6px; font-weight:700; letter-spacing:-.3px; }
.p-admin-panel-head p,.p-admin-caption { font-size:11px; color:var(--p-text-muted); line-height:1.6; margin:0; }
.p-admin-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.p-admin-stat { display:grid; gap:14px; padding:20px 22px; background:var(--p-surface); border:1px solid var(--p-border); border-radius:14px; }
.p-admin-stat-top { display:flex; justify-content:space-between; align-items:center; gap:10px; color:var(--p-text-muted); font-size:12px; }
.p-admin-stat-top svg { width:18px; height:18px; }
.p-admin-stat strong { font-size:32px; line-height:1.2; font-weight:700; letter-spacing:-1px; }
.p-admin-stat small { font-size:11px; line-height:1.5; color:var(--p-text-muted); }
.p-admin-stat:first-child { border-top:3px solid var(--p-chart-home); padding-top:18px; }
.p-admin-grid { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr); gap:24px; }
.p-admin-grid.equal { grid-template-columns:repeat(2,minmax(0,1fr)); }
.p-admin-chart { position:relative; }
.p-admin-chart svg { display:block; width:100%; height:240px; overflow:visible; }
.p-admin-chart text { fill:var(--p-text-muted); font:11px var(--p-font-body); }
.p-admin-chart .p-chart-point:focus-visible { outline:2px solid var(--p-focus); outline-offset:3px; }
.p-admin-chart .p-chart-hit { fill:transparent; }
.p-admin-chart .p-chart-point:hover .p-chart-hit,.p-admin-chart .p-chart-point:focus .p-chart-hit { fill:var(--p-text); opacity:.035; }
.p-admin-chart-legend { display:flex; align-items:center; gap:18px; flex-wrap:wrap; margin-bottom:12px; font-size:11px; color:var(--p-text-muted); }
.p-admin-chart-legend i { width:8px; height:8px; border-radius:2px; display:inline-block; margin-right:6px; background:var(--p-chart-home); }
.p-admin-chart-legend .secondary i { background:var(--p-info); }
.p-admin-chart-readout { font-size:11px; color:var(--p-text-muted); min-height:30px; padding:8px 0 0; border-top:1px solid var(--p-border); }
.p-admin-chart-data { margin-top:12px; color:var(--p-text-muted); font-size:11px; }
.p-admin-chart-data summary { cursor:pointer; width:fit-content; }
.p-admin-chart-data .p-table-scroll { margin-top:12px; max-height:280px; }
.p-admin-ring-layout { display:grid; grid-template-columns:160px 1fr; align-items:center; gap:20px; min-height:220px; }
.p-admin-ring { width:160px; height:160px; position:relative; }
.p-admin-ring svg { width:100%; height:100%; transform:rotate(-90deg); }
.p-admin-ring-label { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.p-admin-ring-label strong { font-size:30px; letter-spacing:-1px; }
.p-admin-ring-label small { font-size:10px; color:var(--p-text-muted); margin-top:6px; }
.p-admin-breakdown { display:grid; gap:18px; }
.p-admin-breakdown > div { display:grid; grid-template-columns:1fr auto; gap:10px; align-items:center; font-size:12px; }
.p-admin-breakdown span { color:var(--p-text-muted); }
.p-admin-breakdown i { display:inline-block; width:7px; height:7px; border-radius:50%; margin-right:7px; }
.p-admin-operations { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.p-admin-operation { display:flex; flex-direction:column; gap:8px; padding-left:20px; border-left:1px solid var(--p-border); }
.p-admin-operation:first-child { border-left:0; padding-left:0; }
.p-admin-operation strong { font-size:23px; letter-spacing:-.6px; }
.p-admin-operation small { color:var(--p-text-muted); font-size:11px; line-height:1.6; }
.p-admin-operation .p-badge { width:fit-content; font-size:10px; }
.p-admin-toolbar { display:flex; flex-wrap:wrap; align-items:end; gap:12px; padding-bottom:20px; }
.p-admin-toolbar label { display:grid; gap:6px; font-size:10px; color:var(--p-text-muted); min-width:130px; }
.p-admin-toolbar label:first-child { flex:1; min-width:200px; }
.p-console .p-input,.p-console .p-select { min-height:40px; font-size:12px; border-radius:8px; background:var(--p-surface); }
.p-admin-toolbar .p-select { width:auto; }
.p-admin-table-shell { padding:0; overflow:hidden; }
.p-admin-table-shell > .p-admin-panel-head { padding:24px 24px 0; }
.p-admin-table-shell > .p-admin-toolbar { padding:0 24px 20px; }
.p-admin-table-scroll { overflow:auto; max-height:620px; border-top:1px solid var(--p-border); }
.p-console .adm-tabla { border-collapse:separate; border-spacing:0; background:var(--p-surface); font-size:12px; }
.p-console .adm-tabla th { position:sticky; top:0; z-index:2; background:var(--p-surface); padding:12px 18px; color:var(--p-text-muted); font-size:11px; font-weight:700; letter-spacing:.4px; text-transform:uppercase; }
.p-console .adm-tabla td { padding:15px 18px; border-bottom:1px solid var(--p-border); height:52px; }
.p-console .adm-tabla td.num { text-align:right; }
.p-console .adm-tabla th.num { text-align:right; }
.p-console .adm-tabla tbody tr:hover td { background:var(--p-surface-hover); }
.p-console .adm-tabla .adm-sort { appearance:none; display:inline-flex; align-items:center; gap:7px; padding:0; margin:0; border:0; border-radius:0; background:none; box-shadow:none; color:inherit; font:inherit; line-height:inherit; text-transform:inherit; letter-spacing:inherit; min-height:0; cursor:pointer; }
.p-console .adm-tabla .adm-sort:hover { color:var(--p-text); background:none; }
.p-console .adm-tabla th[aria-sort] .adm-sort { color:inherit; }
.p-console .adm-tabla .adm-sort:focus-visible { outline:2px solid var(--p-focus); outline-offset:5px; }
.p-sort-arrows { display:inline-grid; gap:3px; width:8px; }
.p-sort-arrows i { width:0; height:0; border-left:3px solid transparent; border-right:3px solid transparent; opacity:.38; }
.p-sort-arrows i:first-child { border-bottom:4px solid currentColor; }
.p-sort-arrows i:last-child { border-top:4px solid currentColor; }
th[aria-sort=ascending] .p-sort-arrows i:first-child,th[aria-sort=descending] .p-sort-arrows i:last-child { opacity:1; color:var(--p-text); }
.p-admin-table-scroll[data-density=compact] td { height:40px; padding-top:8px; padding-bottom:8px; }
.p-admin-pagination { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; padding:16px 24px; font-size:11px; color:var(--p-text-muted); }
.p-admin-page-controls { display:flex; align-items:center; gap:10px; }
.p-admin-page-controls label { display:flex; align-items:center; gap:8px; }
.p-admin-page-controls .p-select { width:68px; min-height:32px; padding:4px 8px; }
.p-admin-page-controls .p-button { min-height:32px; padding:6px 10px; }
.p-admin-rate { display:flex; gap:14px; align-items:center; min-width:170px; }
.p-admin-rate b { min-width:36px; }
.p-admin-rate-track { position:relative; background:var(--p-surface-raised); width:100%; height:5px; border-radius:3px; }
.p-admin-rate-track i { display:block; height:100%; border-radius:3px; background:var(--p-success); }
.p-admin-rate-track::after { content:""; position:absolute; left:70%; top:-3px; bottom:-3px; width:1px; background:var(--p-text-muted); }
.p-admin-hbars { display:grid; gap:17px; padding:4px 0; }
.p-admin-hbar { display:grid; grid-template-columns:125px minmax(40px,1fr) 50px; align-items:center; gap:12px; font-size:11px; }
.p-admin-hbar > span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--p-text-muted); }
.p-admin-hbar > b { text-align:right; font-weight:600; }
.p-admin-hbar-track { height:9px; border-radius:3px; background:var(--p-surface-raised); overflow:hidden; }
.p-admin-hbar-track i { display:block; height:100%; border-radius:3px; background:var(--p-chart-home); }
.p-admin-status-strip { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; padding:14px 18px; font-size:11px; line-height:1.6; color:var(--p-text-muted); background:var(--p-surface); border:1px solid var(--p-border); border-radius:10px; }
.p-admin-status-strip strong { color:var(--p-text); }
.p-console-body .adm-card,.p-console-body .p-model-monitor,.p-console-body .p-admin-team { box-shadow:none; }
.p-console-body .p-model-monitor { width:100%; }
.p-console-body .p-model-heading h2 { font-size:20px; }
.p-console-body .p-model-metrics { gap:16px; }
.p-console-body .p-model-filters { background:var(--p-surface); padding:20px; border:1px solid var(--p-border); border-radius:14px; }
.p-console-body .p-model-section,.p-console-body .p-model-monitor > details { background:var(--p-surface); padding:24px; border:1px solid var(--p-border); border-radius:14px; }
.p-console-body .p-admin-team { padding:24px; background:var(--p-surface); border:1px solid var(--p-border); border-radius:16px; }
.p-console-body .p-admin-account { gap:24px; }
.p-console-body .p-empty { margin:8px 0; }
.p-admin-loading { display:grid; gap:24px; }
.p-admin-loading .p-skeleton { height:130px; }
.p-admin-loading > .p-skeleton { height:330px; }
.p-admin-error { padding:24px; }
.p-admin-error .p-button { margin-top:16px; }
@media (min-width:1600px) { .p-console-main { padding-right:40px; padding-left:40px; } .p-admin-chart svg { height:280px; } }
@media (max-width:1200px) { .p-admin-grid { grid-template-columns:1fr 1fr; } .p-admin-ring-layout { grid-template-columns:1fr; justify-items:center; } .p-admin-breakdown { width:100%; } .p-console-identity #adminIdentity { max-width:130px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } }
@media (max-width:1000px) { body.modo-admin { --adm-side:200px; } .p-console-main { padding:calc(var(--adm-top) + 24px) 24px 24px; } .p-admin-stats { grid-template-columns:repeat(2,minmax(0,1fr)); } .p-admin-grid,.p-admin-grid.equal { grid-template-columns:1fr; } .p-admin-ring-layout { grid-template-columns:160px 1fr; } .p-console-update small,.p-console-workspace { display:none; } body.p-console-collapsed { --adm-side:72px; } }
@media (max-width:760px) { body.modo-admin { --adm-side:0px; --adm-top:64px; } .p-console-top { padding:0 16px; gap:10px; } .p-console-brand { font-size:18px; } .p-console-top-actions { gap:4px; } .p-console-identity,.p-console-app-link { display:none; } .p-console-main { margin-left:0; padding:calc(var(--adm-top) + 24px) 16px 20px; } .p-console-side { display:none; width:100%; max-height:calc(100dvh - var(--adm-top)); bottom:auto; padding:20px; box-shadow:var(--p-shadow-card); } .p-console-menu-open .p-console-side { display:flex; } .p-console-nav { grid-template-columns:1fr 1fr; gap:16px; } .p-console-side-foot { display:none; } .p-console-heading { align-items:flex-start; gap:12px; margin-bottom:20px; } .p-console-heading h1 { font-size:24px; } .p-console-heading p:not(.p-console-eyebrow) { font-size:12px; } .p-console-update .p-button span { display:none; } .p-admin-stats { gap:12px; } .p-admin-stat { padding:16px; } .p-admin-stat:first-child { padding-top:14px; } .p-admin-stat strong { font-size:28px; } .p-admin-panel { padding:20px; } .p-admin-table-shell { padding:0; } .p-admin-table-shell > .p-admin-panel-head { padding:20px 16px 0; } .p-admin-table-shell > .p-admin-toolbar { padding:0 16px 16px; } .p-admin-pagination { padding:14px 16px; } .p-admin-toolbar label { min-width:calc(50% - 6px); flex:1; } .p-admin-toolbar label:first-child { min-width:100%; } .p-admin-toolbar .p-select { width:100%; } .p-admin-toolbar .p-button { flex:1; } .p-admin-operations { grid-template-columns:1fr 1fr; gap:20px; } .p-admin-operation:nth-child(3) { border-left:0; padding-left:0; } .p-admin-ring-layout { grid-template-columns:135px 1fr; gap:12px; } .p-admin-ring { width:135px; height:135px; } .p-admin-grid,.p-console-body { gap:16px; } .p-console-footer { flex-direction:column; line-height:1.5; } .p-admin-chart svg { height:210px; } .p-admin-hbar { grid-template-columns:100px 1fr 40px; gap:8px; } .p-admin-panel-head { gap:12px; } .p-admin-panel-head .p-button { padding:8px; } .p-console-body .p-admin-account { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce) { .p-console *, .p-console *::after { animation:none!important; transition:none!important; } }
@media (max-width:760px) { .p-console .p-console-app-link { display:none; } }
@media (max-width:760px) { .p-console-collapsed .p-console-nav-label { display:block; } .p-console-collapsed .p-console-nav a span { display:inline; } .p-console-collapsed .p-console-side { padding:20px; } }
