:root{
  --th-primary:#0B70C9;
  --th-primary-dark:#0B2A45;
  --th-primary-light:#168DE2;
  --th-accent:#38B6E9;
  --th-bg:#F5F8FB;
  --th-surface:#FFFFFF;
  --th-text:#152536;
  --th-text-muted:#64748B;
  --th-border:#DCE4EC;
  --th-success:#168A55;
  --th-warning:#D98B00;
  --th-danger:#C9362B;
  --th-shadow:0 18px 36px rgba(11,42,69,.08);
  --th-radius:14px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--th-bg);color:var(--th-text);line-height:1.45}
a{color:var(--th-primary);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;display:block}
.muted{color:var(--th-text-muted)}
.small{font-size:.88rem}
.eyebrow{display:inline-block;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--th-text-muted);margin-bottom:8px}
.page-title{margin:.15rem 0 .45rem;font-size:1.75rem;line-height:1.1;color:var(--th-primary-dark)}
.hero-copy{margin:0;color:var(--th-text-muted)}

.thds-bg{background:linear-gradient(135deg,#f7fbff 0%,#edf4fb 65%,#e7f1fb 100%)}
.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(320px,1.1fr) minmax(320px,420px);gap:28px;align-items:center;max-width:1160px;margin:0 auto;padding:28px}
.auth-showcase{background:linear-gradient(155deg,#0B2A45 0%,#0D3C66 58%,#0B70C9 100%);color:#fff;border-radius:28px;padding:36px;box-shadow:var(--th-shadow);position:relative;overflow:hidden}
.auth-showcase::after{content:"";position:absolute;inset:auto -40px -40px auto;width:220px;height:220px;border-radius:50%;background:rgba(255,255,255,.08)}
.stack-note{font-size:.84rem;letter-spacing:.24em;line-height:1.6;text-transform:uppercase;color:#dce9f6;margin-bottom:28px}
.showcase-logo{width:min(360px,100%);margin-bottom:22px}
.auth-showcase h1{margin:0 0 10px;font-size:2.2rem;line-height:1.1}
.auth-showcase p{max-width:530px;margin:0 0 18px;color:#e6f0fb}
.auth-showcase ul{margin:0;padding-left:18px;color:#f5f8fb}
.auth-showcase li{margin:8px 0}
.auth-card{background:var(--th-surface);border:1px solid var(--th-border);border-radius:24px;padding:28px;box-shadow:var(--th-shadow)}
.brand{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}.brand strong{font-size:1.2rem;color:var(--th-primary-dark)}.brand span{color:var(--th-text-muted);text-align:right}
.auth-title{margin:0 0 8px;color:var(--th-primary-dark);font-size:1.65rem}
label{display:block;font-weight:600;margin:14px 0 6px;color:var(--th-primary-dark)}
input,select,textarea{width:100%;padding:12px 14px;border:1px solid var(--th-border);border-radius:12px;font:inherit;background:#fff;color:var(--th-text);transition:border-color .15s ease, box-shadow .15s ease}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--th-primary-light);box-shadow:0 0 0 4px rgba(22,141,226,.12)}
button{width:100%;margin-top:18px;padding:13px 16px;border:0;border-radius:12px;background:linear-gradient(135deg,var(--th-primary) 0%, var(--th-primary-light) 100%);color:white;font-weight:700;cursor:pointer;box-shadow:0 10px 20px rgba(11,112,201,.18)}
.alert{padding:10px 12px;border-radius:10px;margin:10px 0;font-size:.95rem}.alert.error{background:#fef3f2;color:var(--th-danger);border:1px solid #fecdca}
.switch-link{margin-top:16px;text-align:center}

.topbar{min-height:74px;background:#fff;border-bottom:1px solid var(--th-border);display:flex;align-items:center;justify-content:space-between;padding:12px 24px;position:sticky;top:0;z-index:5;gap:18px}
.topbar-admin{background:#fff}
.topbar-client{background:linear-gradient(180deg,#ffffff 0%, #f7fbff 100%)}
.brand-lockup{display:flex;align-items:center;gap:16px;min-width:0}.brand-logo{height:48px;width:auto;flex:0 0 auto}.brand-product{display:flex;flex-direction:column;gap:2px}.brand-product strong{color:var(--th-primary-dark)}.brand-product span{font-size:.9rem;color:var(--th-text-muted)}.brand-product.compact strong{font-size:1rem}
.topbar-user{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end;text-align:right}
.topbar-link{font-weight:600}
.shell{display:grid;grid-template-columns:260px 1fr;min-height:calc(100vh - 74px)}
.sidebar{background:linear-gradient(180deg,#0B2A45 0%,#0a3456 100%);color:#fff;padding:20px;display:flex;flex-direction:column;gap:10px;border-right:1px solid rgba(255,255,255,.06)}
.sidebar-head{padding:10px 10px 18px;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:8px}.sidebar-kicker{display:block;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:#9dc7ef;margin-bottom:8px}.sidebar-head strong{font-size:1rem}
.sidebar a,.sidebar span{color:#fff;padding:12px 14px;border-radius:12px;transition:background .15s ease;cursor:default}.sidebar a.active,.sidebar a:hover,.sidebar span:hover{background:rgba(255,255,255,.11);text-decoration:none}
.content{padding:26px}
.client-content{max-width:1120px;margin:auto;padding:24px}
.hero-strip{background:linear-gradient(135deg,#ffffff 0%,#f7fbff 100%);border:1px solid var(--th-border);border-radius:20px;padding:22px 24px;display:flex;align-items:center;justify-content:space-between;gap:18px;box-shadow:0 8px 20px rgba(11,42,69,.04);margin-bottom:22px}
.client-hero{justify-content:flex-start}
.hero-badge,.badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:10px 14px;font-weight:700;font-size:.9rem;background:#e8f3ff;color:var(--th-primary-dark);border:1px solid #cfe5fb}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0}
.card,.panel{background:#fff;border:1px solid var(--th-border);border-radius:18px;padding:18px;box-shadow:0 10px 20px rgba(21,37,54,.04)}
.stat-card span{display:block;color:var(--th-text-muted);font-size:.95rem}.stat-card strong{display:block;font-size:2rem;margin:.15rem 0;color:var(--th-primary-dark)}.stat-card small{color:var(--th-primary)}
.panel{margin-top:16px}.panel h2{margin:.1rem 0 .55rem;color:var(--th-primary-dark)}.panel p{margin:0;color:var(--th-text-muted)}
.panel-split{display:grid;grid-template-columns:1.5fr 1fr;gap:18px;align-items:start}
.mini-note,.quote-card{background:linear-gradient(180deg,#f8fbff 0%,#eef6ff 100%);border:1px solid #d7e8fb;border-radius:16px;padding:16px}
.mini-note ul{margin:12px 0 0;padding-left:18px;color:var(--th-text-muted)}
.quote-card strong{display:block;color:var(--th-primary-dark);margin-bottom:8px}.quote-card span{color:var(--th-text-muted)}
.welcome-title{margin:0;color:var(--th-primary-dark)}

@media(max-width:980px){
  .auth-shell{grid-template-columns:1fr;max-width:720px}.auth-showcase{order:2}.auth-card{order:1}
  .shell{grid-template-columns:1fr}.sidebar{display:none}.content,.client-content{padding:18px}.topbar{padding:14px 16px}.brand-logo{height:42px}
  .hero-strip,.panel-split{grid-template-columns:1fr}.cards{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .page-title{font-size:1.45rem}.auth-showcase h1{font-size:1.8rem}.auth-shell{padding:16px;gap:16px}.auth-card,.auth-showcase{padding:22px}
  .cards{grid-template-columns:1fr}.brand{flex-direction:column;align-items:flex-start}.brand span{text-align:left}
  .topbar{align-items:flex-start;flex-direction:column}.topbar-user{justify-content:flex-start;text-align:left}
  .hero-strip{padding:18px}.content,.client-content{padding:16px}
}


/* SIGEHOST 1.2.0 — módulos funcionales */
.sidebar a{display:block}.sidebar-section{margin:18px 10px 4px;padding-top:14px;border-top:1px solid rgba(255,255,255,.12);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:#8ebde7}
.alert.success{background:#ecfdf3;color:#067647;border:1px solid #abefc6}.alert.info{background:#eff8ff;color:#175cd3;border:1px solid #b2ddff}
.toolbar,.section-head,.detail-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.detail-head{background:#fff;border:1px solid var(--th-border);border-radius:18px;padding:20px}.detail-head h2{margin:8px 0 2px}.detail-head p{margin:0;color:var(--th-text-muted)}
.filter-grid{display:grid;grid-template-columns:minmax(230px,2fr) repeat(3,minmax(120px,1fr)) auto;gap:10px;align-items:end;flex:1}.filter-grid input,.filter-grid select{margin:0}.btn-inline{width:auto;margin:0}.btn-primary,.btn-secondary{display:inline-flex;align-items:center;justify-content:center;padding:11px 16px;border-radius:11px;font-weight:700;text-decoration:none;white-space:nowrap}.btn-primary{background:var(--th-primary);color:#fff;border:1px solid var(--th-primary)}.btn-secondary{background:#fff;color:var(--th-primary-dark);border:1px solid var(--th-border)}.btn-primary:hover,.btn-secondary:hover{text-decoration:none}.btn-link{width:auto;margin:0;background:none;color:var(--th-primary);box-shadow:none;padding:4px;border:0}.btn-danger-small{width:auto;margin:0;background:#fff1f0;color:var(--th-danger);box-shadow:none;border:1px solid #fecdca;padding:6px 9px;border-radius:9px;font-size:.82rem}
.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:760px}.data-table th,.data-table td{text-align:left;padding:13px 12px;border-bottom:1px solid var(--th-border);vertical-align:top}.data-table th{font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;color:var(--th-text-muted);background:#f8fafc}.data-table td small{display:block;color:var(--th-text-muted);margin-top:4px}.empty{text-align:center!important;color:var(--th-text-muted);padding:30px!important}.pagination{display:flex;justify-content:space-between;align-items:center;padding-top:16px;color:var(--th-text-muted)}.pagination a{display:inline-flex;min-width:34px;height:34px;align-items:center;justify-content:center;border:1px solid var(--th-border);border-radius:9px;margin-left:5px}.pagination a.current{background:var(--th-primary);color:#fff;border-color:var(--th-primary)}
.status-badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:.78rem;font-weight:700}.status-ok{background:#ecfdf3;color:#067647}.status-muted{background:#f2f4f7;color:#667085}.status-info{background:#eff8ff;color:#175cd3}
.form-panel h3{margin:24px 0 6px;color:var(--th-primary-dark);font-size:1rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}.form-grid label{margin-top:0}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.form-actions button{width:auto;margin:0}.check{display:flex;align-items:center;gap:9px;font-weight:500}.check input{width:auto}.check-wrap{display:flex;align-items:center;padding-top:26px}
.two-col{display:grid;grid-template-columns:1.35fr 1fr;gap:16px}.detail-list{display:grid;grid-template-columns:150px 1fr;gap:10px 14px;margin:0}.detail-list dt{color:var(--th-text-muted)}.detail-list dd{margin:0;font-weight:500}.note-box{margin-top:18px;padding:14px;border:1px solid var(--th-border);background:#f8fafc;border-radius:12px;color:var(--th-text-muted)}
.contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.contact-card{display:flex;justify-content:space-between;gap:10px;border:1px solid var(--th-border);border-radius:14px;padding:14px;background:#fbfdff}.contact-card strong{display:inline-block;margin-right:8px}.contact-card small{display:block;color:var(--th-text-muted);margin-top:4px}.contact-card p{margin:6px 0 0;color:var(--th-text-muted);font-size:.9rem}.details-form{margin-top:16px;border-top:1px solid var(--th-border);padding-top:14px}.details-form summary{cursor:pointer;color:var(--th-primary);font-weight:700}.compact-grid{margin-top:14px;grid-template-columns:repeat(4,minmax(0,1fr))}
.client-nav{display:flex;gap:16px;margin-left:auto}.client-nav a{font-weight:600;color:var(--th-primary-dark)}
@media(max-width:1100px){.filter-grid{grid-template-columns:1fr 1fr 1fr}.filter-grid input{grid-column:1/-1}.compact-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.toolbar,.section-head,.detail-head{align-items:stretch;flex-direction:column}.filter-grid,.form-grid,.two-col,.contact-grid,.compact-grid{grid-template-columns:1fr}.client-nav{order:3;width:100%;margin:0}.detail-list{grid-template-columns:1fr}.detail-list dt{font-size:.8rem}.form-actions{flex-direction:column}.btn-primary,.btn-secondary{width:100%}}
