/* Layout independiente. En el sistema Nifty se reutilizan solo componentes vc-. */
.vc-shell, .vc-auth { box-sizing:border-box; font-family:system-ui,-apple-system,sans-serif; color:var(--vc-text); font-size:calc(14px * var(--vc-font-scale)); }
.vc-shell *, .vc-auth * { box-sizing:border-box; }
.vc-shell { margin:0; background:var(--vc-bg); display:grid; grid-template-columns:240px minmax(0,1fr); min-height:100vh; }
.vc-sidebar { background:var(--vc-sidebar,#132c47); color:#fff; padding:24px 16px; }
.vc-brand { display:grid; gap:5px; }
.vc-brand img { width:210px; max-width:100%; height:auto; }
.vc-brand strong { font-size:22px; }
.vc-brand small { font-size:12px; opacity:.8; }
.vc-sidebar nav { margin-top:32px; }
.vc-sidebar nav p { text-transform:uppercase; font-size:11px; letter-spacing:1px; color:#b8cadf; margin:24px 12px 10px; }
.vc-sidebar a { display:flex; align-items:center; gap:12px; color:#e7f0fa; text-decoration:none; padding:12px; margin:4px 0; border-radius:8px; }
.vc-sidebar a[aria-current=page], .vc-sidebar a:hover { background:#ffffff20; }
.vc-sidebar svg { width:20px; height:20px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.7; }
.vc-workspace { min-width:0; }
.vc-topbar { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 26px; background:var(--vc-surface); border-bottom:1px solid var(--vc-border); }
.vc-topbar small { display:block; color:var(--vc-muted); }
.vc-shell #page-content { max-width:1500px; margin:auto; }
.vc-page-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; margin:0 0 24px; }
.vc-page-heading h1 { font-size:calc(28px * var(--vc-font-scale)); line-height:1.25; margin:0 0 10px; color:var(--vc-text); }
.vc-page-heading p { margin:0; color:var(--vc-muted); }
.vc-page-heading .vc-eyebrow { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:1px; margin-bottom:8px; color:var(--vc-primary); }
.vc-button { display:inline-flex; justify-content:center; align-items:center; gap:8px; font:inherit; padding:11px 16px; border:1px solid var(--vc-border); border-radius:8px; background:var(--vc-surface); color:var(--vc-text); text-decoration:none; cursor:pointer; min-height:44px; }
.vc-button-primary { background:var(--vc-primary); border-color:var(--vc-primary); color:var(--vc-on-primary,#fff); }
.vc-button[disabled] { opacity:.55; cursor:not-allowed; }
.vc-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-bottom:20px; }
.vc-inicio-accesos { margin-bottom:24px; }
.vc-editor { margin:20px 0; border:1px solid var(--vc-border); border-radius:var(--vc-radius); background:var(--vc-surface); }
.vc-editor > summary { cursor:pointer; font-weight:700; padding:16px 20px; color:var(--vc-text); font-size:inherit; }
.vc-editor > .panel { margin-bottom:0; }
.vc-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-top:20px; }
.vc-card { background:var(--vc-surface); border:1px solid var(--vc-border); border-radius:var(--vc-radius); padding:22px; min-width:0; }
.vc-card h2 { font-size:calc(18px * var(--vc-font-scale)); margin:0 0 16px; }
.vc-field { display:grid; gap:8px; margin-bottom:18px; font-weight:600; }
.vc-field input, .vc-field select, .vc-field textarea { width:100%; min-height:44px; padding:11px; font:inherit; border:1px solid var(--vc-border); border-radius:8px; background:var(--vc-surface); color:var(--vc-text); }
.vc-field small, .vc-muted { color:var(--vc-muted); font-weight:400; }
.vc-table-wrap { overflow-x:auto; }
.vc-table { width:100%; border-collapse:collapse; text-align:left; }
.vc-table th, .vc-table td { padding:14px 12px; border-bottom:1px solid var(--vc-border); }
.vc-table th { color:var(--vc-muted); background:var(--vc-bg); }
.vc-badge { display:inline-block; padding:5px 9px; border:1px solid var(--vc-border); border-radius:20px; font-size:12px; }
.vc-notice { background:var(--vc-surface); border:1px solid var(--vc-border); border-left:4px solid var(--vc-primary); padding:16px; border-radius:8px; margin:16px 0; }
.vc-notice-warning { border-left-color:#ad6900; }
.vc-empty { text-align:center; padding:36px 20px; border:1px dashed var(--vc-border); border-radius:12px; color:var(--vc-muted); }
.vc-skip { position:absolute; top:-100px; left:16px; z-index:2000; background:var(--vc-surface); color:var(--vc-text); padding:12px; }
.vc-skip:focus { top:12px; }
.vc-menu-toggle { display:none; }
.vc-auth { margin:0; background:var(--vc-bg); min-height:100vh; display:grid; place-items:center; padding:24px; }
.vc-auth-card { width:min(460px,100%); background:var(--vc-surface); border:1px solid var(--vc-border); border-radius:20px; padding:32px; box-shadow:var(--vc-shadow); }
.vc-auth-card h1 { font-size:26px; margin-top:28px; }
.vc-auth-card .vc-button-primary { width:100%; }
body.venta-auth-page .venta-auth-card, body.venta-auth-page .cls-content .venta-auth-card { background:var(--vc-surface); color:var(--vc-text); font-size:calc(14px * var(--vc-font-scale)); }
body.venta-auth-page .venta-auth-card label, body.venta-auth-page .venta-auth-card h1, body.venta-auth-page .venta-auth-card h3 { color:var(--vc-text); }
body.venta-auth-page .venta-auth-card .btn { font-size:inherit; white-space:normal; }
body.venta-auth-page .venta-auth-card h1 { font-size:calc(22px * var(--vc-font-scale)); }
body.venta-auth-page .registro-head .venta-brand { background:var(--vc-surface); color:var(--vc-text); }
body.venta-auth-page .precio-prueba { background:var(--vc-bg); color:var(--vc-text); }
html[data-vc-theme="oscuro"] .vc-brand img { background:#fff; border-radius:8px; padding:6px; }
body.venta-auth-page .venta-auth-card .form-control { background:var(--vc-surface); color:var(--vc-text); border-color:var(--vc-border); font-size:calc(14px * var(--vc-font-scale)); height:auto; }
body.venta-auth-page .venta-auth-card .text-muted { color:var(--vc-muted); }
body.venta-auth-page .vc-auth-options { display:flex; justify-content:flex-end; margin-bottom:16px; }
body.venta-auth-page .vc-brand { text-align:center; }
body.venta-auth-page .vc-brand img { margin:auto; width:285px; }
body.venta-auth-page .vc-field { text-align:left; }
/* Acceso coherente con canvas; conserva logos configurados y autenticación existente. */
body.venta-auth-page { --vc-bg:#f7f6f2; --vc-surface:#ffffff; --vc-text:#25222b; --vc-muted:#625b6a; --vc-border:#e5e2df; background:var(--vc-bg); font-family:system-ui,-apple-system,"Segoe UI",sans-serif; }
html[data-vc-theme="oscuro"] body.venta-auth-page { --vc-bg:#17131d; --vc-surface:#241d2d; --vc-text:#f5f0fa; --vc-muted:#bdb3c9; --vc-border:#43364f; }
body.venta-auth-page #bg-overlay { background:var(--vc-bg); background-image:none; }
body.venta-auth-page .venta-auth-content { display:flex; align-items:center; justify-content:center; padding:32px 16px; }
body.venta-auth-page .cls-content .venta-auth-card { border:1px solid var(--vc-border); box-shadow:0 12px 40px #0001; border-radius:24px; }
body.venta-auth-page .vc-brand img { width:150px; }
body.venta-auth-page .venta-btn-primary { background:var(--vc-primary); color:var(--vc-on-primary); border:1px solid var(--vc-primary); border-radius:12px; box-shadow:none; }
body.venta-auth-page .venta-btn-primary:hover { filter:brightness(.95); color:var(--vc-on-primary); }
body.venta-auth-page .venta-auth-link { color:var(--vc-text); }
body.venta-auth-page .btn-registro { border:1px solid var(--vc-border); color:var(--vc-text); border-radius:12px; }
body.venta-auth-page .btn-registro:hover, body.venta-auth-page .btn-registro:focus { background:var(--vc-bg); color:var(--vc-text)!important; }
.vc-password-toggle { display:block; margin:6px 0 0 auto; padding:8px 10px; font:inherit; color:var(--vc-text); background:var(--vc-surface); border:1px solid var(--vc-border); border-radius:8px; cursor:pointer; }
body.venta-auth-page :focus-visible { outline:3px solid #9b78bd; outline-offset:3px; }
body.venta-auth-page .modal-content { background:var(--vc-surface); color:var(--vc-text); border-color:var(--vc-border); }
body.venta-auth-page .modal-content .form-control { background:var(--vc-surface); color:var(--vc-text); border-color:var(--vc-border); }
body.venta-auth-page .modal-title, body.venta-auth-page .close { color:var(--vc-text); }
@media(max-width:820px) {
    .vc-shell { grid-template-columns:1fr; }
    .vc-sidebar { display:none; }
    .vc-sidebar.vc-sidebar-open { display:block; }
    .vc-menu-toggle { display:inline-flex; }
    .vc-grid { grid-template-columns:1fr; }
    .vc-topbar { padding:14px; flex-wrap:wrap; }
    .vc-page-heading h1 { font-size:calc(24px * var(--vc-font-scale)); }
    .vc-auth-card { padding:24px; }
}
@media print { .vc-sidebar, .vc-topbar, .vc-toolbar, .vc-skip { display:none!important; } .vc-shell { display:block; } }
