:root{--text:#17283d;--muted:#66748a;--bg:#f5f7fb;--line:#e2e8ef;--card:white;--nav:#10243b;--gold:#ffdc42;--blue:#1456ad;--good:#0b806a}*{box-sizing:border-box}body{margin:0;font:14px/1.48 "Segoe UI",Arial,sans-serif;color:var(--text);background:var(--bg)}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.layout{min-height:100vh;display:flex}.sidebar{width:254px;min-width:254px;background:var(--nav);color:#ebf2fa;display:flex;flex-direction:column;padding:24px 14px;position:sticky;top:0;height:100vh}.brand{display:flex;gap:12px;align-items:center;padding:5px 10px 28px}.logo-mark{display:grid;place-items:center;width:38px;height:38px;background:var(--gold);border-radius:10px;font-size:25px;font-weight:900;color:#12253d}.brand strong{display:block;letter-spacing:2px;font-size:15px}.brand small,.identity small{display:block;color:#91a5be;font-size:11px}.side-section{font-weight:800;font-size:10px;letter-spacing:1.5px;color:#7f95b2;padding:20px 15px 10px}.nav-btn{color:#d5e1f0;display:flex;align-items:center;gap:11px;width:100%;padding:12px 14px;border:0;border-radius:8px;background:transparent;text-align:left;font-weight:600;margin-bottom:3px}.nav-btn:hover,.nav-btn.active{background:#263d57;color:white}.nav-btn.active{box-shadow:inset 3px 0 0 var(--gold)}.nav-ico{font-size:19px;width:20px;text-align:center}.sidebar-footer{border-top:1px solid #31465e;margin-top:auto;padding:20px 8px 0;display:flex;align-items:center;gap:10px}.identity-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:100%;background:#3a5371;font-weight:bold}.identity{flex:1;min-width:0}.logout{border:0;background:transparent;color:#c7d7eb;font-size:22px}.main{flex:1;min-width:0}.topbar{height:70px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;background:white;padding:0 38px}.breadcrumb{font-size:11px;letter-spacing:.9px;font-weight:700;color:#8c98a9}.breadcrumb span{color:#1d385b}.breadcrumb b{padding:0 13px;color:#b9c3d0}.access-pill{font-size:12px;color:#2f7b65;background:#eaf8f2;border-radius:20px;padding:6px 11px}.content{max-width:1400px;margin:auto;padding:34px 38px 80px}.page-heading{display:flex;gap:20px;align-items:center;justify-content:space-between;margin-bottom:25px}.page-heading h1{font-size:29px;margin:5px 0 6px;letter-spacing:-.8px}.page-heading p{color:var(--muted);margin:0}.kicker{font-size:10px;letter-spacing:2px;font-weight:900;color:#3e6b9a}.status-pill{background:#eaf1f9;padding:10px 14px;color:#356398;white-space:nowrap;border-radius:8px;font-size:12px;font-weight:700}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px}.metric{background:white;border:1px solid var(--line);border-radius:13px;padding:19px 22px}.metric span{color:var(--muted);font-size:12px}.metric strong{display:block;font-size:29px;margin:2px 0}.metric small{color:#8b98aa}.panel{background:#fff;border:1px solid var(--line);border-radius:13px;padding:23px 25px;margin:18px 0;box-shadow:0 2px 6px rgba(25,50,80,.018)}.panel.narrow{max-width:810px}.panel h2{margin:0 0 4px;font-size:17px}.panel-heading{display:flex;gap:12px;align-items:center;margin-bottom:20px}.panel-heading p{margin:0;color:var(--muted);font-size:12px}.step{flex-shrink:0;display:grid;place-items:center;border:1px solid #d9e5f2;color:#27649d;font-weight:800;background:#f1f6fc;border-radius:9px;width:41px;height:41px}.two-column{display:grid;grid-template-columns:1fr 1fr;gap:17px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:15px}.field label,label{font-size:12px;font-weight:750;color:#35465a}input:not([type=checkbox]),select,textarea{background:white;color:var(--text);border:1px solid #d5dfea;border-radius:8px;padding:11px 13px;outline:none;min-width:0;max-width:100%;width:100%}input:focus,select:focus,textarea:focus{border-color:#4f83c4;box-shadow:0 0 0 3px #e1ecfa}textarea{resize:vertical}input[type=checkbox]{accent-color:#1f5faa;width:16px;height:16px;cursor:pointer}button.primary{background:#1254a2;color:white;border:1px solid #1254a2;border-radius:8px;padding:12px 17px;font-weight:750}button.primary:hover{background:#073e85}button.secondary{background:white;color:#285781;border:1px solid #cfdfed;border-radius:8px;padding:11px 15px;font-weight:700}button.secondary:hover{background:#f2f7fc}.dark-btn{background:#132b48;color:white;border:1px solid #132b48;border-radius:8px;padding:12px 19px;font-weight:750}.small{font-size:12px;padding:8px 11px!important}.update-bar{display:flex;justify-content:space-between;gap:15px;align-items:end;padding:13px 15px;background:#f4f7fb;border-radius:9px;margin-bottom:20px}.checkbox-wrap{display:flex;align-items:center;gap:7px;white-space:nowrap;cursor:pointer;margin-bottom:5px}.update-input{display:flex;align-items:end;gap:9px}.update-input label{max-width:170px;font-size:11px}.update-input input{width:140px;max-width:140px}.table-overflow{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;white-space:nowrap}.data-table th{text-align:left;background:#f8fafc;padding:11px;color:#6c7c92;font-size:11px;font-weight:800;border-bottom:1px solid #dae3ed}.data-table td{border-bottom:1px solid #ebeff4;padding:13px 10px;font-size:12px}.data-table tbody tr:hover{background:#fcfdff}.data-table td:first-child{width:40px}.data-table .empty{padding:35px;color:#8290a2;text-align:center}.catalog-name{font-weight:700;max-width:220px;white-space:normal}.catalog-sub{display:block;color:#8a96a8;font-weight:400;font-size:10px}.value-cell{min-width:112px;width:120px!important;padding:8px 9px!important}.chip{padding:4px 7px;background:#e9f1fc;color:#255991;border-radius:6px;font-size:10px;font-weight:bold}.chip.tariff{background:#fff4dd;color:#916329}.chip.manual{background:#f9e6e6;color:#a24f4f}.net-chip{display:inline-block;min-width:58px;padding:5px 9px;text-align:right;font-weight:bold;color:#0d1420;background:#ffff00}.net-chip.text{background:#ffc000}.warning-dot{font-size:10px;color:#bd7a24}.panel-bottom{display:flex;gap:15px;align-items:center;justify-content:space-between;padding-top:18px}.helper{color:#77879a;font-size:12px}.info-line{margin:12px 0 0;color:#788da6;font-size:11px}.print-grid{display:grid;grid-template-columns:180px minmax(250px,1fr) 210px;gap:17px}.a4-hint{border:1px dashed #bacbe0;border-radius:8px;padding:11px 16px;font-size:12px;font-weight:bold;color:#395b80}.a4-hint span,.a4-hint small{display:block;font-weight:400;color:#7a8fa9}.notice{border-radius:8px;padding:12px 13px;margin:15px 0;font-size:12px}.notice.warning{background:#fff7e6;color:#80581e;border:1px solid #f7dfaa}.notice.error{background:#ffeded;color:#ab3131;border:1px solid #f4bcbc}.tariff-inputs{background:#f8fbfe;border:1px solid #d9e6f2;border-radius:10px;margin:12px 0;padding:15px}.tariff-row{display:grid;grid-template-columns:1fr 170px 170px;align-items:center;gap:14px;margin:8px 0}.tariff-row .field{margin:0}.view[hidden], [hidden]{display:none!important}.stacked{display:flex;flex-direction:column;gap:11px}.admin-form{padding-top:18px;border-top:1px solid var(--line)}.toast{position:fixed;right:24px;bottom:28px;background:#102c4c;color:white;padding:15px 20px;max-width:490px;box-shadow:0 14px 44px #15335236;border-radius:10px;z-index:100}.toast.error{background:#902e31}.user-row{display:flex;justify-content:space-between;align-items:center;padding:13px 4px;border-bottom:1px solid var(--line)}.user-row small{color:var(--muted);display:block}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 15% 20%,#253f5e,#0e2136 65%);padding:20px}.login-card{width:min(430px,100%);background:white;border-radius:16px;padding:40px;box-shadow:0 22px 100px #06122366}.login-card .logo-mark{margin-bottom:22px}.login-card h1{font-size:27px;margin:9px 0 10px}.login-card p{color:var(--muted);margin:0 0 26px}.login-card form{display:flex;flex-direction:column;gap:10px}.login-card form input{margin-bottom:10px}.login-card small{display:block;text-align:center;color:#95a3b2;margin-top:24px}.full{width:100%;margin-top:5px;display:flex;justify-content:space-between}.panel.narrow form>.field{margin-top:11px}@media(max-width:1000px){.sidebar{width:210px;min-width:210px}.content{padding:26px}.topbar{padding:0 26px}.print-grid{grid-template-columns:1fr 1fr}.print-grid .a4-hint{grid-column:span 2}}@media(max-width:750px){.layout{display:block}.sidebar{position:static;width:100%;height:auto;padding:12px}.brand{padding-bottom:8px}.sidebar nav{display:flex;flex-wrap:wrap}.side-section{display:none}.nav-btn{width:auto}.sidebar-footer{padding-top:6px}.topbar{height:50px}.access-pill{display:none}.content{padding:18px}.metric-grid{grid-template-columns:1fr 1fr}.two-column{grid-template-columns:1fr}.update-bar,.panel-bottom{align-items:stretch;flex-direction:column}.update-input{flex-wrap:wrap}.page-heading h1{font-size:24px}.page-heading{align-items:start}.print-grid{grid-template-columns:1fr}.print-grid .a4-hint{grid-column:auto}.tariff-row{grid-template-columns:1fr}.panel{padding:15px}}

.brand-logo{display:block;width:170px;max-width:100%;height:auto;object-fit:contain;border-radius:6px;background:transparent}.login-logo{width:270px;max-width:100%;margin:0 auto 22px}.brand{align-items:center}.login-card{text-align:left}.login-card .login-logo{display:block}

/* Parche visual v2: sidebar negra y logo sin texto */
:root{--nav:#000000;--gold:#d4b06a;}
.sidebar{background:#000000;color:#ebf2fa;}
.brand{justify-content:center;padding:4px 6px 20px;}
.sidebar-brand-logo{width:255px;max-width:100%;height:auto;margin:0 auto;border-radius:10px;}
.side-section{color:#8e97a6;}
.nav-btn{color:#e8edf5;}
.nav-btn:hover,.nav-btn.active{background:#262626;color:#ffffff;}
.nav-btn.active{box-shadow:inset 3px 0 0 #d4b06a;}
.sidebar-footer{border-top:1px solid #262626;}
.identity-icon{background:#262626;}
.logout{color:#d6d6d6;}

/* Página de base de datos · administración */
.db-heading-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.db-panel{max-width:100%;padding-bottom:15px}
.db-controls{display:flex;gap:18px;align-items:flex-end;margin-bottom:15px;flex-wrap:wrap}
.db-controls .field{margin:0;flex:1 1 230px}
.db-controls .field:nth-child(2){flex:0 1 220px}
.db-result-count{color:#65758a;font-size:12px;white-space:nowrap;padding-bottom:12px}
.db-table-wrap{border:1px solid var(--line);border-radius:9px;max-height:70vh;overflow:auto}
.db-table{min-width:1800px}
.db-table th{position:sticky;top:0;z-index:1;white-space:normal;background:#141414;color:#fff;vertical-align:middle}
.db-table td{white-space:nowrap}
.db-table tr:nth-child(even){background:#f7f8fb}
.db-table .db-code{font-family:Consolas,"Courier New",monospace;font-variant-numeric:tabular-nums}
.db-table td:nth-child(10),.db-table td:nth-child(14){max-width:260px;overflow:hidden;text-overflow:ellipsis}
@media(max-width:850px){.db-controls{display:block}.db-controls .field{margin-bottom:10px}.db-heading-actions{width:100%}}


/* Actualización visual v4: tipografía fina y contemporánea similar a la referencia */
:root{--text:#282828;--muted:#777;--line:#e7e7e7;--bg:#f7f7f7;--blue:#222;--good:#555;}
body,button,input,select,textarea{font-family:"Segoe UI", "Helvetica Neue", Arial, sans-serif;font-weight:400;letter-spacing:.15px;}
.nav-btn{font-size:16px;font-weight:400;letter-spacing:.05px;padding:14px 15px;}
.nav-ico{color:#a3a3a3;}
.nav-btn.active .nav-ico{color:#fff;}
.page-heading h1{font-weight:500;letter-spacing:-.45px;}
.data-table th{font-weight:600;letter-spacing:.1px;}
.data-table td{font-size:13px;}
.brand strong,.identity strong{font-weight:500;}
.step{font-weight:500;}
.panel h2{font-weight:500;}
.side-section{font-size:11px;letter-spacing:1.5px;font-weight:600;}
.nav-btn.active{box-shadow:inset 3px 0 0 #b8b8b8;background:#292929;}
button.primary{background:#272727;border-color:#272727;font-weight:500;}
button.primary:hover{background:#111;border-color:#111;}
.dark-btn{background:#272727;border-color:#272727;font-weight:500;}
.catalog-name{font-weight:500;}

.inline-tools{display:flex;justify-content:flex-end;margin:-6px 0 12px}.icon-btn{border:1px solid #d7dfe8;background:#fff;border-radius:8px;width:36px;height:36px;display:grid;place-items:center;font-size:16px;cursor:pointer}.icon-btn.danger{color:#9b2d30}.icon-btn.danger:hover{background:#fff2f2;border-color:#e7b3b5}.modal{position:fixed;inset:0;background:rgba(0,0,0,.42);display:grid;place-items:center;padding:20px;z-index:150}.modal-card{width:min(560px,100%);background:#fff;border-radius:16px;padding:22px 22px 18px;box-shadow:0 24px 70px rgba(0,0,0,.18)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.modal-head h3{margin:0;font-size:20px}.modal-close{background:transparent;border:0;font-size:28px;line-height:1;color:#617286}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}textarea{min-height:100px}
