@import url('https://fonts.googleapis.com/css2?family=Share+Tech+Mono&family=Inter:wght@300;400;500;600;700&display=swap');

:root {
  --bg:#0a0a0a; --bg2:#111111; --bg3:#181818; --bg4:#202020;
  --blue:#1565C0; --blue2:#1976D2; --blue3:#90CAF9;
  --blue-dim:rgba(21,101,192,0.12); --blue-glow:rgba(21,101,192,0.22);
  --white:#F0F0F0; --gray:#888888; --gray2:#444444;
  --border:#252525; --border2:#333333;
  --green:#4CAF50; --orange:#FF9800; --amber:#FFC107; --purple:#9C27B0;
  --gold:#F9A825; --silver:#9E9E9E;
  --sidebar-w:252px; --mono:'Share Tech Mono',monospace; --sans:'Inter',system-ui,sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:var(--sans);background:var(--bg);color:var(--white);min-height:100vh;}
::-webkit-scrollbar{width:5px;height:5px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px;}
::-webkit-scrollbar-thumb:hover{background:var(--blue);}

/* ── LOGIN ─────────────────────────────────────────────────────── */
#login-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg);position:relative;overflow:hidden;}
#login-screen::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(21,101,192,0.14) 0%,transparent 65%);pointer-events:none;}
.login-box{position:relative;z-index:1;background:var(--bg2);border:1px solid var(--border2);border-top:3px solid var(--blue);border-radius:4px;padding:48px 44px 40px;width:420px;box-shadow:0 0 80px rgba(0,0,0,0.8),0 0 40px rgba(21,101,192,0.06);}
.login-logo{margin-bottom:36px;}
.login-tag{font-family:var(--mono);font-size:10px;letter-spacing:4px;color:var(--blue3);text-transform:uppercase;margin-bottom:10px;}
.login-logo h1{font-size:30px;font-weight:700;letter-spacing:-1px;color:var(--white);line-height:1;}
.login-logo h1 span{color:var(--blue3);}
.login-logo p{font-size:11px;color:var(--gray);margin-top:6px;letter-spacing:0.5px;}
.login-box label{display:block;font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--gray);margin-bottom:8px;margin-top:20px;}
.login-box input{width:100%;padding:12px 14px;background:var(--bg3);border:1px solid var(--border2);border-radius:3px;color:var(--white);font-size:14px;font-family:var(--sans);outline:none;transition:border-color .2s;}
.login-box input:focus{border-color:var(--blue);}
.btn-login{width:100%;margin-top:28px;padding:13px;background:var(--blue);color:#fff;border:none;border-radius:3px;font-size:12px;font-weight:700;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:background .2s;}
.btn-login:hover{background:var(--blue2);}
.login-error{margin-top:12px;font-size:12px;color:#EF9A9A;display:none;text-align:center;}
.login-hint{margin-top:28px;padding:14px 16px;background:var(--bg3);border:1px solid var(--border);border-radius:3px;font-size:11px;}
.hint-title{font-family:var(--mono);color:var(--blue3);letter-spacing:1px;margin-bottom:10px;font-size:10px;}
.login-hint table{width:100%;border-collapse:collapse;}
.login-hint td{padding:3px 0;color:var(--gray);}
.login-hint td:first-child{font-family:var(--mono);color:var(--white);padding-right:12px;}
.lbadge{display:inline-block;padding:1px 7px;border-radius:2px;font-size:9px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;}
.lb0{background:rgba(156,39,176,.25);color:#CE93D8;border:1px solid rgba(156,39,176,.4);}
.lb1{background:rgba(21,101,192,.25);color:#90CAF9;border:1px solid rgba(21,101,192,.4);}
.lb2{background:rgba(255,152,0,.2);color:#FFCC80;border:1px solid rgba(255,152,0,.35);}
.lb3{background:rgba(76,175,80,.2);color:#A5D6A7;border:1px solid rgba(76,175,80,.35);}

/* ── APP ────────────────────────────────────────────────────────── */
#app{display:none;min-height:100vh;}

/* ── SIDEBAR ────────────────────────────────────────────────────── */
.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-w);background:var(--bg2);border-right:1px solid var(--border2);display:flex;flex-direction:column;z-index:100;overflow-y:auto;}
.sidebar-brand{padding:22px 20px 16px;border-bottom:1px solid var(--border2);}
.sb-tag{font-family:var(--mono);font-size:9px;letter-spacing:3px;color:var(--blue3);margin-bottom:6px;}
.sb-name{font-size:17px;font-weight:700;color:var(--white);letter-spacing:.5px;}
.sb-sub{font-size:10px;color:var(--gray);margin-top:3px;}
.user-chip{margin:12px 14px;padding:10px 12px;background:var(--blue-dim);border:1px solid rgba(21,101,192,.2);border-radius:3px;}
.uc-name{font-size:12px;font-weight:600;color:var(--white);}
.uc-role{font-size:10px;color:var(--blue3);font-family:var(--mono);margin-top:3px;letter-spacing:.5px;}
.sidebar-nav{flex:1;padding:6px 0;}
.nav-group{padding:16px 20px 5px;font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--gray2);font-weight:600;}
.nav-item{display:flex;align-items:center;gap:9px;padding:9px 20px;cursor:pointer;font-size:12px;color:var(--gray);border-left:2px solid transparent;transition:all .15s;}
.nav-item:hover{color:var(--white);background:var(--bg3);}
.nav-item.active{color:var(--blue3);background:var(--blue-dim);border-left-color:var(--blue);font-weight:500;}
.nav-item.locked{opacity:.28;cursor:not-allowed;pointer-events:none;}
.nav-icon{font-size:14px;width:18px;text-align:center;}
.nav-lock{margin-left:auto;font-size:9px;}
.sidebar-foot{padding:14px;border-top:1px solid var(--border);}
.btn-logout{width:100%;padding:9px;background:transparent;border:1px solid var(--border2);color:var(--gray);border-radius:3px;cursor:pointer;font-size:11px;letter-spacing:1px;text-transform:uppercase;transition:all .2s;font-family:var(--sans);}
.btn-logout:hover{border-color:var(--blue2);color:var(--blue3);background:var(--blue-dim);}

/* ── MAIN ───────────────────────────────────────────────────────── */
.main{margin-left:var(--sidebar-w);min-height:100vh;}
.main-inner{padding:28px 30px;}
.page-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border);}
.page-head h1{font-size:20px;font-weight:700;color:var(--white);letter-spacing:-.5px;}
.page-head p{font-size:11px;color:var(--gray);margin-top:4px;}
.access-badge{font-family:var(--mono);font-size:9px;letter-spacing:1.5px;padding:5px 10px;border-radius:2px;text-transform:uppercase;}

/* ── STAT CARDS ─────────────────────────────────────────────────── */
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px;}
.stat-card{background:var(--bg2);border:1px solid var(--border2);border-radius:4px;padding:18px 20px;position:relative;overflow:hidden;}
.stat-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--blue);}
.sc-icon{font-size:22px;margin-bottom:10px;opacity:.65;}
.sc-val{font-family:var(--mono);font-size:26px;color:var(--blue3);line-height:1;margin-bottom:6px;}
.sc-label{font-size:11px;color:var(--gray);letter-spacing:.5px;}
.sc-sub{font-size:10px;color:var(--gray2);margin-top:4px;}

/* ── PANELS ─────────────────────────────────────────────────────── */
.panel{background:var(--bg2);border:1px solid var(--border2);border-radius:4px;margin-bottom:18px;overflow:hidden;}
.panel-head{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.panel-head h3{font-size:12px;font-weight:600;color:var(--white);}
.panel-head p{font-size:10px;color:var(--gray);margin-top:2px;}
.ph-tag{font-family:var(--mono);font-size:9px;color:var(--blue3);letter-spacing:1px;text-transform:uppercase;}
.panel-body{padding:18px;}

/* ── TABLES ─────────────────────────────────────────────────────── */
.data-table{width:100%;border-collapse:collapse;font-size:12px;}
.data-table thead tr{background:var(--bg3);}
.data-table th{text-align:left;padding:9px 14px;font-family:var(--mono);font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--blue3);border-bottom:1px solid var(--border2);font-weight:400;}
.data-table td{padding:10px 14px;border-bottom:1px solid var(--border);color:var(--white);vertical-align:middle;}
.data-table tr:last-child td{border-bottom:none;}
.data-table tbody tr:hover td{background:var(--bg3);}
.mono-cell{font-family:var(--mono);font-size:11px;color:var(--blue3);}

/* ── PILLS ──────────────────────────────────────────────────────── */
.pill{display:inline-block;padding:2px 8px;border-radius:2px;font-size:9px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;font-family:var(--mono);}
.p-green{background:rgba(76,175,80,.15);color:#81C784;border:1px solid rgba(76,175,80,.3);}
.p-red{background:rgba(229,57,53,.15);color:#EF9A9A;border:1px solid rgba(229,57,53,.3);}
.p-orange{background:rgba(255,152,0,.15);color:#FFCC80;border:1px solid rgba(255,152,0,.3);}
.p-amber{background:rgba(255,193,7,.15);color:#FFF176;border:1px solid rgba(255,193,7,.3);}
.p-gray{background:rgba(136,136,136,.12);color:#AAAAAA;border:1px solid rgba(136,136,136,.25);}
.p-blue{background:rgba(21,101,192,.15);color:#90CAF9;border:1px solid rgba(21,101,192,.3);}
.p-gold{background:rgba(249,168,37,.18);color:#F9A825;border:1px solid rgba(249,168,37,.4);}
.p-silver{background:rgba(158,158,158,.18);color:#BDBDBD;border:1px solid rgba(158,158,158,.35);}

/* ── FILTER BAR ─────────────────────────────────────────────────── */
.filter-bar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px;}
.filter-bar input,.filter-bar select{padding:7px 11px;border-radius:3px;border:1px solid var(--border2);background:var(--bg3);color:var(--white);font-size:12px;outline:none;font-family:var(--sans);transition:border-color .15s;min-width:160px;}
.filter-bar input:focus,.filter-bar select:focus{border-color:var(--blue);}
.filter-bar select option{background:var(--bg3);}
.btn-search{padding:7px 16px;background:var(--blue);color:#fff;border:none;border-radius:3px;cursor:pointer;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;font-family:var(--sans);transition:background .2s;}
.btn-search:hover{background:var(--blue2);}

/* ── CATEGORY FILTER BUTTONS ────────────────────────────────────── */
.cat-bar{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px;}
.cat-btn{padding:6px 14px;background:var(--bg3);border:1px solid var(--border2);color:var(--gray);border-radius:20px;cursor:pointer;font-size:11px;font-family:var(--sans);transition:all .15s;}
.cat-btn:hover{border-color:var(--blue);color:var(--white);}
.cat-btn.active{background:var(--blue-dim);border-color:var(--blue);color:var(--blue3);font-weight:600;}

/* ── BAR CHART ──────────────────────────────────────────────────── */
.bar-chart{display:flex;flex-direction:column;gap:10px;}
.bar-row{display:flex;align-items:center;gap:10px;}
.bar-label{width:120px;font-size:11px;color:var(--gray);text-align:right;white-space:nowrap;}
.bar-track{flex:1;background:var(--bg3);border-radius:2px;height:20px;overflow:hidden;border:1px solid var(--border);}
.bar-fill{height:100%;border-radius:2px;display:flex;align-items:center;padding-left:8px;font-size:10px;font-weight:700;color:#fff;font-family:var(--mono);min-width:30px;transition:width .8s ease;}
.bar-val{width:44px;font-family:var(--mono);font-size:10px;color:var(--gray);text-align:right;}

/* ── TWO COL ────────────────────────────────────────────────────── */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px;}

/* ── TECH CARDS ─────────────────────────────────────────────────── */
.tech-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.tech-card{background:var(--bg2);border:1px solid var(--border2);border-radius:4px;padding:20px;position:relative;overflow:hidden;}
.tech-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--blue);}
.tc-tipo{font-family:var(--mono);font-size:9px;letter-spacing:2px;color:var(--blue3);text-transform:uppercase;margin-bottom:8px;}
.tc-nombre{font-size:15px;font-weight:700;color:var(--white);margin-bottom:10px;}
.tc-desc{font-size:11px;color:var(--gray);line-height:1.6;margin-bottom:14px;}
.tc-meta{display:flex;gap:10px;flex-wrap:wrap;}
.tc-badge{font-family:var(--mono);font-size:9px;padding:3px 8px;border-radius:2px;background:var(--bg3);border:1px solid var(--border2);color:var(--gray);}

/* ── DDL ────────────────────────────────────────────────────────── */
.ddl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:18px;}
.ddl-card{background:var(--bg3);border:1px solid var(--border2);border-radius:4px;padding:18px;cursor:pointer;transition:all .2s;text-align:center;}
.ddl-card:hover{background:var(--bg4);}
.ddl-dot{width:10px;height:10px;border-radius:50%;margin:0 auto 10px;}
.ddl-t{font-family:var(--mono);font-size:12px;color:var(--white);}
.ddl-s{font-size:10px;color:var(--gray);margin-top:4px;}
.ddl-create .ddl-dot{background:var(--green);box-shadow:0 0 8px var(--green);}
.ddl-alter  .ddl-dot{background:var(--orange);box-shadow:0 0 8px var(--orange);}
.ddl-drop   .ddl-dot{background:#E53935;box-shadow:0 0 8px #E53935;}
.ddl-create:hover{border-color:rgba(76,175,80,.4);}
.ddl-alter:hover{border-color:rgba(255,152,0,.4);}
.ddl-drop:hover{border-color:rgba(229,57,53,.4);}
.sql-console{background:var(--bg);border:1px solid var(--border2);border-radius:3px;padding:14px 16px;font-family:var(--mono);font-size:12px;line-height:1.8;color:#81C784;min-height:90px;white-space:pre-wrap;}
.sql-console .kw{color:var(--blue3);}
.sql-console .tbl{color:#90CAF9;}
.sql-console .cmt{color:var(--gray2);}

/* ── MODAL ──────────────────────────────────────────────────────── */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:999;align-items:center;justify-content:center;backdrop-filter:blur(3px);}
.modal-overlay.open{display:flex;}
.modal-box{background:var(--bg2);border:1px solid var(--border2);border-top:2px solid var(--blue);border-radius:4px;padding:26px;width:480px;max-width:90%;box-shadow:0 30px 80px rgba(0,0,0,.7);}
.modal-box h3{font-size:14px;font-weight:600;color:var(--white);margin-bottom:16px;}
.modal-box label{display:block;font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gray);margin-bottom:6px;margin-top:14px;}
.modal-box input,.modal-box select,.modal-box textarea{width:100%;padding:9px 11px;background:var(--bg3);border:1px solid var(--border2);border-radius:3px;color:var(--white);font-size:12px;outline:none;font-family:var(--sans);}
.modal-box textarea{min-height:80px;font-family:var(--mono);font-size:11px;resize:vertical;}
.modal-box input:focus,.modal-box select:focus,.modal-box textarea:focus{border-color:var(--blue);}
.modal-actions{margin-top:20px;display:flex;gap:10px;justify-content:flex-end;}
.btn-cancel{padding:9px 18px;background:transparent;border:1px solid var(--border2);color:var(--gray);border-radius:3px;cursor:pointer;font-size:11px;}
.btn-ok{padding:9px 18px;background:var(--blue);color:#fff;border:none;border-radius:3px;cursor:pointer;font-size:11px;font-weight:700;}
.btn-del{padding:9px 18px;background:#B71C1C;color:#fff;border:none;border-radius:3px;cursor:pointer;font-size:11px;font-weight:700;}

/* ── SECTIONS ───────────────────────────────────────────────────── */
.section{display:none;}
.section.active{display:block;}

/* ── TOAST ──────────────────────────────────────────────────────── */
#toast{position:fixed;bottom:20px;right:20px;z-index:9999;background:var(--bg2);border:1px solid var(--border2);border-left:3px solid var(--blue);border-radius:3px;padding:12px 18px;font-size:12px;color:var(--white);box-shadow:0 8px 30px rgba(0,0,0,.5);opacity:0;transform:translateY(12px);transition:all .25s;pointer-events:none;font-family:var(--mono);letter-spacing:.5px;}
#toast.show{opacity:1;transform:translateY(0);}
#toast.ok{border-left-color:var(--green);}
#toast.err{border-left-color:#E53935;}

/* ── SERVICIOS PANEL ────────────────────────────────────────────── */
.serv-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.serv-header{display:flex;align-items:center;gap:10px;margin-bottom:4px;}
.serv-code{font-family:var(--mono);font-size:22px;font-weight:700;color:var(--blue3);}
.serv-label{font-size:11px;color:var(--gray);}

/* ── RESPONSIVE ─────────────────────────────────────────────────── */
@media(max-width:960px){
  .two-col,.serv-grid,.tech-grid{grid-template-columns:1fr;}
  .stats-grid{grid-template-columns:repeat(2,1fr);}
  .ddl-grid{grid-template-columns:1fr 1fr;}
}
