*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#0d2c5a;background:#edf5ff}body{margin:0;min-height:100vh;background:linear-gradient(180deg,#e8f3ff,#f7fbff)}a{color:inherit}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{position:sticky;top:0;height:100vh;padding:22px 16px;background:#0d2c5a;color:#fff;display:flex;flex-direction:column;z-index:20}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;padding:4px 8px 22px}.brand img{width:46px;height:46px;object-fit:contain;border-radius:12px;background:#fff}.brand-mark{width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,#ff7464,#ff9c74);display:grid;place-items:center;font-weight:900}.brand strong,.brand small{display:block}.brand small{margin-top:3px;color:#b8cae4;font-size:.75rem}.side-nav{display:grid;gap:4px;overflow:auto}.side-nav a{display:flex;gap:12px;align-items:center;padding:11px 12px;border-radius:11px;text-decoration:none;color:#cfe0f6;font-weight:700;font-size:.93rem}.side-nav a:hover,.side-nav a.active{background:#fff;color:#245dcc}.side-nav a span{width:20px;text-align:center}.sidebar-user{margin-top:auto;padding:16px 10px 2px;border-top:1px solid rgba(255,255,255,.14)}.sidebar-user strong,.sidebar-user small{display:block}.sidebar-user small{margin:4px 0 10px;color:#b8cae4;word-break:break-all}.sidebar-user a{font-size:.85rem;color:#ffb0a6}.main-area{min-width:0}.topbar{min-height:88px;padding:18px clamp(18px,3vw,38px);display:flex;gap:16px;align-items:center;justify-content:space-between;background:rgba(255,255,255,.88);border-bottom:1px solid #dbe7f8;backdrop-filter:blur(12px);position:sticky;top:0;z-index:10}.topbar h1{margin:0;font-size:1.55rem}.topbar p{margin:4px 0 0;color:#65748a}.topbar-user{padding:9px 13px;border-radius:12px;background:#eef4ff;font-weight:800}.menu-toggle{display:none;border:0;background:#eef4ff;border-radius:10px;padding:10px 12px;color:#0d2c5a;font-size:1.2rem}.content{padding:28px clamp(16px,3vw,38px) 60px;max-width:1500px}.alert{padding:14px 16px;margin-bottom:18px;border-radius:12px;font-weight:700}.alert.success{background:#e8f8f0;color:#16794e}.alert.warning{background:#fff6df;color:#8a5b08}.alert.danger{background:#fff0ed;color:#a63c31}.alert.info{background:#eaf2ff;color:#245dcc}.grid{display:grid;gap:18px}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:#fff;border:1px solid #dce8fa;border-radius:20px;box-shadow:0 14px 38px rgba(29,76,133,.08);overflow:hidden}.card-header{padding:20px 22px;border-bottom:1px solid #e7eef8;display:flex;justify-content:space-between;gap:16px;align-items:center}.card-header h2,.card-header h3{margin:0}.card-header p{margin:5px 0 0;color:#65748a}.card-body{padding:22px}.metric-card{position:relative;padding:22px;min-height:145px}.metric-card .label{color:#65748a;text-transform:uppercase;letter-spacing:.05em;font-weight:800;font-size:.78rem}.metric-card .value{display:block;margin:15px 0 8px;font-size:clamp(1.55rem,3vw,2.3rem);font-weight:900;letter-spacing:-.04em}.metric-card .detail{color:#65748a;font-size:.9rem}.metric-card.accent .value{color:#ff7464}.metric-card.success .value{color:#20a66a}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-bottom:18px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.field{min-width:0}.field.full{grid-column:1/-1}.field label{display:block;margin-bottom:7px;font-weight:800}.field small{display:block;margin-top:6px;color:#65748a}.input,.select,.textarea{width:100%;border:2px solid #d4e1f7;border-radius:12px;padding:12px 13px;background:#fff;color:#0d2c5a;outline:none}.textarea{min-height:100px;resize:vertical}.input:focus,.select:focus,.textarea:focus{border-color:#3f7cff;box-shadow:0 0 0 4px rgba(63,124,255,.11)}.check-row{display:flex;align-items:center;gap:8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 16px;border-radius:11px;border:1px solid transparent;text-decoration:none;cursor:pointer;font-weight:850}.btn.primary{background:#3f7cff;color:#fff}.btn.primary:hover{background:#245dcc}.btn.secondary{background:#fff;border-color:#c8d9fb;color:#0d2c5a}.btn.danger{background:#fff0ed;color:#a83c31;border-color:#ffd3cd}.btn.success{background:#e8f8f0;color:#16794e;border-color:#bdebd4}.btn.small{padding:7px 10px;font-size:.84rem}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:760px}.table th,.table td{padding:13px 14px;border-bottom:1px solid #e8eef7;text-align:left;vertical-align:top}.table th{background:#f4f8ff;color:#65748a;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.table tr:hover td{background:#fbfdff}.actions{display:flex;flex-wrap:wrap;gap:7px}.badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:.78rem;font-weight:850;background:#edf2f8;color:#52647c}.badge.success{background:#e7f8ef;color:#16794e}.badge.warning{background:#fff5dc;color:#946106}.badge.danger{background:#fff0ed;color:#a83c31}.badge.neutral{background:#edf2f8;color:#52647c}.empty{padding:36px;text-align:center;color:#65748a}.quick-form{padding:18px;background:#f4f8ff;border:1px solid #dce8fa;border-radius:16px}.quick-form .form-grid{grid-template-columns:1.2fr 1fr 2fr .8fr auto}.split{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.8fr);gap:20px}.list{display:grid;gap:10px}.list-item{padding:13px;border:1px solid #e1eaf7;border-radius:12px;background:#fff}.list-item strong,.list-item small{display:block}.list-item small{margin-top:4px;color:#65748a}.days{font-weight:900;color:#ff7464}.credential-secret{display:flex;gap:8px;align-items:center}.credential-value{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#f2f5fa;padding:8px 10px;border-radius:8px;min-width:150px}.chart{display:flex;gap:10px;align-items:end;height:210px;padding:20px 10px 0;border-bottom:1px solid #dce8fa}.bar-wrap{flex:1;min-width:38px;text-align:center}.bar{width:100%;min-height:3px;background:linear-gradient(180deg,#3f7cff,#245dcc);border-radius:8px 8px 0 0}.bar-label{font-size:.72rem;color:#65748a;margin-top:6px}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top left,rgba(63,124,255,.18),transparent 36%),linear-gradient(180deg,#e7f2ff,#f8fbff)}.login-card{width:min(460px,100%);background:#fff;border-radius:24px;padding:34px;box-shadow:0 24px 70px rgba(22,65,119,.16)}.login-logo{display:flex;gap:13px;align-items:center;margin-bottom:26px}.login-logo .brand-mark{color:#fff}.login-card h1{margin:0;font-size:1.7rem}.login-card p{color:#65748a}.login-card .field{margin-bottom:15px}.muted{color:#65748a}.text-right{text-align:right}.mb-0{margin-bottom:0}.mt-2{margin-top:16px}.danger-zone{border-color:#ffd5cf}.pagination{display:flex;gap:7px;flex-wrap:wrap;margin-top:18px}.pagination a{padding:8px 11px;background:#fff;border:1px solid #dce8fa;border-radius:9px;text-decoration:none}.pagination a.active{background:#3f7cff;color:#fff}.print-only{display:none}@media(max-width:1100px){.grid.cols-4{grid-template-columns:repeat(2,1fr)}.quick-form .form-grid{grid-template-columns:1fr 1fr}.quick-form .field.full-mobile{grid-column:1/-1}.split{grid-template-columns:1fr}}@media(max-width:820px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-280px;width:260px;transition:left .2s}.sidebar.open{left:0}.menu-toggle{display:block}.topbar-user{display:none}.grid.cols-2,.grid.cols-3,.grid.cols-4,.form-grid,.form-grid.cols-3{grid-template-columns:1fr}.content{padding:20px 14px 50px}.card-header{align-items:flex-start;flex-direction:column}.quick-form .form-grid{grid-template-columns:1fr}}@media print{.sidebar,.topbar,.btn,.toolbar,.alert{display:none!important}.app-shell{display:block}.content{padding:0}.card{box-shadow:none}.print-only{display:block}}

.calculator-host-card{padding:0;overflow:hidden}.calculator-host-card>.card-header{padding:22px 24px;border-bottom:1px solid #e3ecf8}.calculator-frame{display:block;width:100%;min-height:1800px;border:0;background:#eaf4ff}@media(max-width:700px){.calculator-frame{min-height:2350px}}


/* === Componentes V4 compartidos por ambos temas === */
.topbar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.theme-picker{display:flex;align-items:center;gap:8px}
.theme-picker label{font-size:.78rem;font-weight:800;color:#65748a}
.theme-select{min-width:150px;border:1px solid #c8d9fb;border-radius:999px;padding:8px 12px;background:#fff;color:#0d2c5a;font-weight:800;outline:none}
.login-theme-picker{position:fixed;top:18px;right:18px;z-index:10;padding:8px 10px;border-radius:14px;background:rgba(255,255,255,.86);box-shadow:0 10px 30px rgba(29,76,133,.12);backdrop-filter:blur(12px)}
.client-hero{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:22px}
.client-hero h2{margin:0 0 6px;font-size:1.55rem}.client-hero p{margin:4px 0;color:#65748a}.client-hero .actions{justify-content:flex-end}
.client-tabs{display:flex;gap:8px;flex-wrap:wrap;padding:10px;margin:18px 0;background:#fff;border:1px solid #dce8fa;border-radius:16px;box-shadow:0 10px 28px rgba(29,76,133,.06)}
.client-tabs a{padding:9px 13px;border-radius:11px;text-decoration:none;font-weight:850;color:#52647c;border:1px solid transparent}
.client-tabs a:hover{background:#f4f8ff;color:#245dcc}.client-tabs a.active{background:#3f7cff;color:#fff}
.stat-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
.stat-tile{padding:18px;border:1px solid #dce8fa;border-radius:17px;background:#fff;box-shadow:0 10px 28px rgba(29,76,133,.05)}
.stat-tile span{display:block;color:#65748a;text-transform:uppercase;font-size:.69rem;letter-spacing:.08em;font-weight:900}.stat-tile strong{display:block;margin-top:8px;font-size:1.55rem;letter-spacing:-.03em}.stat-tile small{display:block;margin-top:5px;color:#65748a}
.client-contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.contact-block{padding:16px;border:1px solid #e1eaf7;border-radius:14px;background:#fbfdff}.contact-block strong,.contact-block span{display:block}.contact-block span{margin-top:6px;color:#65748a;word-break:break-word}
.tools-frame{display:block;width:100%;min-height:1850px;border:0;background:#061622}.tools-host-card{overflow:hidden}.tools-host-card>.card-header{align-items:flex-start}
.catalog-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.btn.ghost-danger{background:transparent;color:#a83c31;border-color:#efb8b1}.btn.ghost-danger:hover{background:#fff0ed}
@media(max-width:1250px){.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.topbar-actions{justify-content:flex-start}.theme-picker label{display:none}.theme-select{min-width:132px}.client-hero{flex-direction:column}.client-hero .actions{justify-content:flex-start}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.client-contact-grid{grid-template-columns:1fr}.tools-frame{min-height:2400px}}
@media(max-width:520px){.stat-grid{grid-template-columns:1fr}.login-theme-picker{top:10px;right:10px}.client-tabs{display:grid;grid-template-columns:1fr 1fr}.client-tabs a{text-align:center}}

/* === V5: orden configurable y navegación de cliente === */
.drag-handle{margin-left:auto;font-style:normal;opacity:.46;letter-spacing:-2px;cursor:grab;user-select:none}
.side-nav a[draggable="true"]{cursor:grab}.side-nav a[draggable="true"]:active,.client-tabs a[draggable="true"]:active{cursor:grabbing}
.side-nav a.is-dragging,.client-tabs a.is-dragging{opacity:.42;outline:2px dashed #3f7cff;outline-offset:2px}
.side-nav.is-sorting,.client-tabs.is-sorting{user-select:none}
.side-nav.order-saved,.client-tabs.order-saved{outline:2px solid rgba(32,166,106,.28);outline-offset:3px}
.nav-sort-hint{display:block;padding:9px 12px 12px;color:#8ea4b7;font-size:.72rem;line-height:1.35}
.client-tabs a[draggable="true"]{display:inline-flex;align-items:center;gap:8px;cursor:grab}
.client-tabs .pinned-tab{cursor:default}.client-tabs .drag-handle{margin-left:3px}
.sort-help{margin:-8px 3px 18px;color:#65748a;font-size:.8rem}
@media(max-width:820px){.nav-sort-hint{display:none}.drag-handle{display:none}.side-nav a[draggable="true"],.client-tabs a[draggable="true"]{cursor:pointer}}

/* === V6: histórico, credenciales ordenables y Tools consolidado === */
.history-grid{grid-template-columns:minmax(0,2.25fr) minmax(270px,.75fr);align-items:start}
.history-detail-card{min-width:0}.history-months-card{min-width:0}
.history-detail-card .table{min-width:820px}
.credentials-admin-split{grid-template-columns:minmax(0,1.9fr) minmax(300px,.72fr)}
.credential-status-card .card-header h2{margin:7px 0 0;font-size:2rem}
.credential-status-list{display:grid;gap:10px;max-height:560px;overflow:auto}
.credential-status-item{padding:14px;border:1px solid #e1eaf7;border-radius:14px;background:#fbfdff}
.credential-status-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.credential-status-heading strong,.credential-status-heading small{display:block}.credential-status-heading small{margin-top:4px;color:#65748a}
.stat-grid-five{grid-template-columns:repeat(5,minmax(0,1fr))}
.credential-sort-table tr[draggable="true"]{cursor:grab}.credential-sort-table tr[draggable="true"]:active{cursor:grabbing}
.credential-sort-table tr.is-dragging{opacity:.42;outline:2px dashed #3f7cff;outline-offset:-2px}
.credential-sort-table tbody.order-saved{outline:2px solid rgba(32,166,106,.28);outline-offset:-2px}
.row-drag-cell{width:72px;text-align:center!important;vertical-align:middle!important}.row-drag-handle{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid #c8d9fb;border-radius:10px;color:#65748a;font-weight:900;letter-spacing:-2px;user-select:none}
.tools-subnav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;padding:10px;background:#fff;border:1px solid #dce8fa;border-radius:16px;box-shadow:0 10px 28px rgba(29,76,133,.06)}
.tools-subnav a{padding:10px 14px;border-radius:11px;text-decoration:none;font-weight:850;color:#52647c;border:1px solid transparent}.tools-subnav a:hover{background:#f4f8ff;color:#245dcc}.tools-subnav a.active{background:#3f7cff;color:#fff}
@media(max-width:1250px){.stat-grid-five{grid-template-columns:repeat(3,minmax(0,1fr))}.history-grid{grid-template-columns:minmax(0,2fr) minmax(250px,.72fr)}}
@media(max-width:1100px){.history-grid,.credentials-admin-split{grid-template-columns:1fr}.history-months-card{order:2}}
@media(max-width:820px){.stat-grid-five{grid-template-columns:repeat(2,minmax(0,1fr))}.row-drag-handle{display:none}.credential-sort-table tr[draggable="true"]{cursor:default}}
@media(max-width:520px){.stat-grid-five{grid-template-columns:1fr}.tools-subnav{display:grid;grid-template-columns:1fr}.tools-subnav a{text-align:center}}

/* V7 · filas ordenables de activos */
.asset-sort-table tr[draggable="true"]{cursor:grab}
.asset-sort-table tr[draggable="true"]:active{cursor:grabbing}
.asset-sort-table tr.is-dragging{opacity:.42;outline:2px dashed #3f7cff;outline-offset:-2px}
.asset-sort-table tbody.order-saved{outline:2px solid rgba(32,166,106,.28);outline-offset:-2px}
@media(max-width:820px){.asset-sort-table tr[draggable="true"]{cursor:default}}

/* V8 · logo horizontal CloudNetwork */
.brand.brand-has-logo{display:block}
.brand-logo-stack{display:block}
.brand-logo-stack img{display:block;width:100%;max-width:190px;height:54px;object-fit:contain;object-position:center;background:#fff;border-radius:11px;padding:5px 8px}
.brand-logo-stack small{display:block;margin-top:7px;font-size:.68rem;font-weight:900;letter-spacing:.16em;text-transform:uppercase}
.input[readonly]{opacity:.78;cursor:not-allowed}
.login-logo-full{display:block;text-align:center}
.login-logo-full img{display:block;width:min(310px,100%);height:auto;max-height:86px;object-fit:contain;margin:0 auto 14px;background:#fff;border-radius:12px;padding:8px 12px}
.login-logo-full p{text-align:center}
