/* Sistema visual institucional SISC — Seguridad y Convivencia */
:root {
  --sisc-navy-950: #173b7a;
  --sisc-navy-900: #2855a9;
  --sisc-navy-800: #3569cc;
  --sisc-blue-700: #3569cc;
  --sisc-blue-600: #3475db;
  --sisc-cyan-500: #1bb6c8;
  --sisc-cyan-100: #ddf7fa;
  --sisc-green-600: #138a67;
  --sisc-gold-500: #ff7a00;
  --sisc-ink: #172b4d;
  --sisc-muted: #61718a;
  --sisc-line: #d6e1f1;
  --sisc-surface: #ffffff;
  --sisc-canvas: #f0f5fc;
  --sisc-soft: #f7faff;
  --sisc-success: #168564;
  --sisc-warning: #b46d08;
  --sisc-danger: #b93842;
  --sisc-info: #0879b9;
  --sisc-radius-sm: 10px;
  --sisc-radius: 16px;
  --sisc-radius-lg: 24px;
  --sisc-shadow-sm: 0 4px 14px rgba(3, 27, 47, .06);
  --sisc-shadow: 0 14px 36px rgba(3, 27, 47, .10);
  --sisc-shadow-lg: 0 24px 64px rgba(3, 27, 47, .16);
  --sisc-focus: 0 0 0 4px rgba(8, 166, 179, .18);
  --sisc-gradient: linear-gradient(135deg, #2855a9, #3569cc 58%, #1bb6c8);
  --sisc-gradient-accent: linear-gradient(135deg, #3569cc, #1bb6c8);
}

html { scroll-behavior: smooth; }
html, body { color: var(--sisc-ink); background: var(--sisc-canvas); }
body { font-family: "Inter", "Segoe UI", sans-serif; -webkit-font-smoothing: antialiased; }
::selection { color: #fff; background: var(--sisc-blue-700); }
:focus-visible { outline: 3px solid rgba(8,166,179,.55); outline-offset: 3px; }
a { color: var(--sisc-blue-700); }
a:hover { color: var(--sisc-navy-800); }

/* Estructura institucional */
.main-content { padding-top: 84px; background: var(--sisc-canvas); }
.main-content__inner { max-width: 1440px; padding: 18px 24px 32px; }
.navbar { min-height: 84px; background: rgba(53,105,204,.98) !important; border-bottom: 1px solid rgba(255,255,255,.10); box-shadow: 0 8px 28px rgba(3,27,47,.20); backdrop-filter: blur(16px); }
.navbar::after { content:""; position:absolute; inset:auto 0 0; height:3px; background:linear-gradient(90deg,var(--sisc-cyan-500),#ffffff 55%,var(--sisc-gold-500)); }
.navbar .container { min-height: 84px; }
.navbar-brand { align-items:center; }
.navbar-brand .navbar-item { padding:.55rem 1rem .55rem .2rem; }
.logo-sisc { width:58px; height:58px; max-height:58px !important; object-fit:contain; padding:5px; border-radius:15px; background:#fff; box-shadow:0 5px 16px rgba(0,0,0,.18); }
.app-info { margin-left:12px; padding-left:16px; border-left:1px solid rgba(255,255,255,.20); }
.app-info__eyebrow { margin-bottom:3px; color:#8ee5e8; font-size:.67rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.app-info__name { color:#fff; font-size:1.02rem; font-weight:750; letter-spacing:-.01em; }
.app-info__clock { margin-top:3px; color:rgba(255,255,255,.62); font-size:.72rem; }
.navbar-item, .navbar-link { color:#fff !important; }
.user-pill { min-height:44px; padding:5px 12px 5px 6px; border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.08); }
.user-pill:hover { background:rgba(255,255,255,.14) !important; }
.user-avatar { background:var(--sisc-gradient-accent); box-shadow:0 4px 12px rgba(8,166,179,.26); }
.navbar-dropdown { overflow:hidden; padding:.45rem; border:1px solid var(--sisc-line); border-radius:14px; box-shadow:var(--sisc-shadow-lg); }
.navbar-dropdown .navbar-item { min-height:42px; border-radius:9px; color:var(--sisc-ink) !important; font-size:.88rem; }
.navbar-dropdown .navbar-item:hover { color:var(--sisc-blue-700) !important; background:#edf8fa !important; }
.navbar-divider { margin:.25rem 0; background:var(--sisc-line); }
.app-footer { padding:.9rem 1.5rem; background:#244f9d; border-top:3px solid var(--sisc-cyan-500); color:rgba(255,255,255,.78); text-align:center; }
.app-footer .content { max-width:1180px; margin:auto; }
.app-footer em { color:inherit; font-style:normal; }

/* Superficies, formularios y tablas compartidos */
.box, .card, .panel { border:1px solid rgba(159,180,194,.45); border-radius:var(--sisc-radius); box-shadow:var(--sisc-shadow-sm); }
.box { padding:1.5rem; }
.title { color:var(--sisc-ink); letter-spacing:-.025em; }
.subtitle { color:var(--sisc-muted); }
.label { color:#294458; font-size:.83rem; font-weight:750; }
.input, .textarea, .select select, .ts-control { min-height:44px; border:1px solid #bfd0dc !important; border-radius:var(--sisc-radius-sm) !important; color:var(--sisc-ink); background:#fff; box-shadow:none !important; transition:border-color .18s,box-shadow .18s; }
.input:hover, .textarea:hover, .select select:hover { border-color:#8caaba !important; }
.input:focus, .textarea:focus, .select select:focus, .ts-wrapper.focus .ts-control { border-color:var(--sisc-cyan-500) !important; box-shadow:var(--sisc-focus) !important; }
.button { min-height:42px; border-radius:var(--sisc-radius-sm); font-weight:750; transition:transform .16s,box-shadow .16s,background .16s; }
.button:hover { transform:translateY(-1px); }
.button.is-primary, .button.is-link { border-color:transparent; background:var(--sisc-gradient-accent); box-shadow:0 7px 18px rgba(7,93,146,.18); }
.button.is-success { background:var(--sisc-success); }
.button.is-warning { color:#fff; background:var(--sisc-warning); }
.table-container, .table-wrapper, .table-wrap { overflow:auto; border:1px solid var(--sisc-line); border-radius:14px; }
.table { margin:0; background:#fff; }
.table thead th, table thead th { padding:.85rem 1rem; border-color:var(--sisc-line); color:#385367; background:#edf4f7; font-size:.74rem; letter-spacing:.045em; text-transform:uppercase; }
.table td, table td { padding:.8rem 1rem; border-color:#e6edf2; vertical-align:middle; }
.table.is-striped tbody tr:not(.is-selected):nth-child(even) { background:#f7fafc; }
.table.is-hoverable tbody tr:not(.is-selected):hover { background:#edf8fa; }
.tag { border-radius:999px; font-weight:750; }
.notification { border:1px solid currentColor; border-radius:12px; }

/* Cabeceras de todos los módulos */
:is(.argos-header,.astra-header,.export-header,.hermes-header,.idh-module-header,.iris-header,.docs-header) { border:1px solid rgba(159,180,194,.38) !important; border-radius:var(--sisc-radius-lg) !important; background:linear-gradient(145deg,#fff,#f4fafb) !important; box-shadow:var(--sisc-shadow) !important; }
:is(.argos-header,.astra-header,.export-header,.hermes-header,.idh-module-header,.iris-header,.docs-header)::before { background:linear-gradient(180deg,var(--sisc-cyan-500),var(--sisc-blue-700)) !important; }
:is(.argos-section-label,.astra-section-label,.export-section-label,.hermes-section-label,.idh-eyebrow,.iris-section-label,.docs-eyebrow) { color:var(--sisc-blue-700) !important; letter-spacing:.09em; }
:is(.argos-badge,.astra-badge,.export-badge,.hermes-badge,.idh-module-badge,.iris-badge) { background:var(--sisc-gradient) !important; box-shadow:0 10px 24px rgba(3,27,47,.18); }
:is(.argos-page,.astra-page,.export-page,.hermes-page,.idh-page,.iris-page,.docs-page,.seguimiento-page,.aws-costs-page,.sync-page) { background:radial-gradient(circle at 8% 0,rgba(8,166,179,.09),transparent 27rem),linear-gradient(180deg,#f6f9fb,var(--sisc-canvas)) !important; color:var(--sisc-ink) !important; }
:is(.argos-card,.astra-map-card,.astra-control-card,.export-card,.hermes-card,.idh-sidebar,.idh-welcome-card,.iris-summary-card,.iris-input-panel,.iris-results-panel,.docs-card,.summary-card,.panel,.sync-card) { border-color:rgba(159,180,194,.42) !important; border-radius:var(--sisc-radius) !important; box-shadow:var(--sisc-shadow-sm) !important; }

/* Panel principal */
.dashboard-main { max-width:1220px; margin:0 auto; padding:12px 0 30px; }
.dashboard-main .hero-panel { position:relative; min-height:315px; overflow:hidden; border-radius:28px; background:var(--sisc-gradient); box-shadow:var(--sisc-shadow-lg); }
.dashboard-main .hero-panel::before { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(90deg,rgba(29,69,148,.96) 0%,rgba(53,105,204,.82) 48%,rgba(27,182,200,.16) 100%); }
.dashboard-main .hero-panel::after { content:""; position:absolute; right:-80px; bottom:-120px; z-index:1; width:360px; height:360px; border:1px solid rgba(255,255,255,.18); border-radius:50%; box-shadow:0 0 0 55px rgba(255,255,255,.04),0 0 0 110px rgba(255,255,255,.03); }
.dashboard-main .hero-panel>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.42; }
.dashboard-main .hero-content--institutional { position:relative; z-index:2; display:flex; min-height:315px; align-items:center; padding:2.6rem 3rem; }
.dashboard-main .hero-copy { max-width:690px; color:#fff; }
.dashboard-main .hero-kicker { display:inline-flex; align-items:center; gap:.55rem; margin-bottom:1rem; padding:.42rem .78rem; border:1px solid rgba(255,255,255,.22); border-radius:999px; color:#a9eef0; background:rgba(255,255,255,.08); font-size:.73rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.dashboard-main .hero-title { margin:0 0 .75rem; color:#fff; font-size:clamp(2.05rem,4vw,3.4rem); line-height:1.04; letter-spacing:-.045em; }
.dashboard-main .hero-title span { color:#79e2e5; }
.dashboard-main .hero-description { max-width:620px; margin:0; color:rgba(255,255,255,.78); font-size:1rem; line-height:1.65; }
.dashboard-main .hero-trust { display:flex; flex-wrap:wrap; gap:.65rem 1.2rem; margin-top:1.35rem; color:rgba(255,255,255,.82); font-size:.78rem; font-weight:700; }
.dashboard-main .hero-trust span { display:flex; align-items:center; gap:.4rem; }
.dashboard-main .hero-trust i { color:#79e2e5; }
.apps-panel { margin-top:1.4rem; padding:1.6rem !important; border:1px solid rgba(159,180,194,.35); border-radius:24px; background:rgba(255,255,255,.82) !important; box-shadow:var(--sisc-shadow-sm); backdrop-filter:blur(12px); }
.apps-heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:1.25rem; }
.apps-heading__eyebrow { margin:0 0 .25rem; color:var(--sisc-blue-700); font-size:.72rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.apps-heading h2 { margin:0; color:var(--sisc-ink); font-size:1.35rem; font-weight:800; letter-spacing:-.025em; }
.apps-heading p { margin:0; color:var(--sisc-muted); font-size:.86rem; }
.apps-grid { gap:1rem !important; }
.app-card { min-height:185px !important; padding:1.3rem !important; border:1px solid var(--sisc-line) !important; border-radius:18px !important; background:#fff !important; box-shadow:var(--sisc-shadow-sm) !important; }
.app-card::before { content:""; position:absolute; inset:0 auto 0 0; width:4px; border-radius:18px 0 0 18px; background:linear-gradient(180deg,var(--sisc-cyan-500),var(--sisc-blue-700)); opacity:0; transition:opacity .2s; }
.app-card:hover { transform:translateY(-5px) !important; border-color:rgba(8,166,179,.45) !important; box-shadow:var(--sisc-shadow) !important; }
.app-card:hover::before { opacity:1; }
.app-icon-circle { width:62px !important; height:62px !important; border:1px solid #dce8ee; background:linear-gradient(145deg,#f9fcfd,#eaf3f6) !important; }
.app-name { color:var(--sisc-ink) !important; }
.app-desc { color:var(--sisc-muted) !important; }
.app-arrow { display:grid; width:32px; height:32px; place-items:center; border-radius:50%; color:var(--sisc-blue-700) !important; background:#e5f5f6; }

/* Login */
.login-page { display:grid; min-height:calc(100vh - 170px); place-items:center; padding:2rem 0; }
.login-shell { display:grid; width:min(980px,100%); overflow:hidden; grid-template-columns:1.1fr .9fr; border:1px solid rgba(159,180,194,.42); border-radius:26px; background:#fff; box-shadow:var(--sisc-shadow-lg); }
.login-context { position:relative; overflow:hidden; padding:3rem; color:#fff; background:var(--sisc-gradient); }
.login-context::after { content:""; position:absolute; right:-90px; bottom:-90px; width:260px; height:260px; border:1px solid rgba(255,255,255,.16); border-radius:50%; box-shadow:0 0 0 42px rgba(255,255,255,.04); }
.login-context__mark { display:grid; width:58px; height:58px; margin-bottom:2rem; place-items:center; border:1px solid rgba(255,255,255,.2); border-radius:17px; background:rgba(255,255,255,.1); font-size:1.35rem; }
.login-context h1 { margin:0 0 .8rem; color:#fff; font-size:2rem; line-height:1.12; letter-spacing:-.035em; }
.login-context p { max-width:430px; color:rgba(255,255,255,.74); line-height:1.65; }
.login-context__footer { position:absolute; bottom:2rem; color:#8ee5e8; font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.login-form { padding:3rem 2.5rem; }
.login-form__eyebrow { color:var(--sisc-blue-700); font-size:.72rem; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.login-form h2 { margin:.3rem 0 .45rem; color:var(--sisc-ink); font-size:1.65rem; font-weight:800; }
.login-form__intro { margin:0 0 1.7rem; color:var(--sisc-muted); font-size:.88rem; }

/* Catálogo de aplicaciones */
.profile-page { max-width:1220px; margin:auto; padding:1.2rem 0 2.5rem; }
.profile-header { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; margin-bottom:1.6rem; padding:1.7rem 2rem; border-radius:22px; color:#fff; background:var(--sisc-gradient); box-shadow:var(--sisc-shadow); }
.profile-header__eyebrow { margin:0 0 .25rem; color:#8ee5e8; font-size:.7rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.profile-header h1 { margin:0; color:#fff; font-size:1.75rem; font-weight:800; }
.profile-header p { margin:.35rem 0 0; color:rgba(255,255,255,.72); }
.profile-page .columns { margin-top:0 !important; }
.profile-page .column { display:flex; }
.profile-page .app-card { width:100%; min-height:230px !important; }
.profile-page .app-card a { width:100%; }
.profile-page .card-content { display:flex; height:100%; flex-direction:column; align-items:center; justify-content:center; text-align:center; }
.profile-page .image { width:78px; height:78px; }
.profile-page .image img { width:100%; height:100%; object-fit:contain; }

/* Administración genérica */
.admin-page { max-width:1220px; margin:auto; padding:1.2rem 0 2.5rem; }
.admin-header { margin-bottom:1.25rem; padding:1.8rem 2rem; border-radius:22px; color:#fff; background:var(--sisc-gradient); box-shadow:var(--sisc-shadow); }
.admin-header__eyebrow { margin:0 0 .35rem; color:#8ee5e8; font-size:.7rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.admin-header h1 { margin:0; color:#fff; font-size:1.8rem; font-weight:800; }
.admin-header p { margin:.45rem 0 0; color:rgba(255,255,255,.74); }
.admin-section-title { display:flex; align-items:center; gap:.65rem; }
.admin-section-title i { color:var(--sisc-cyan-500); }
.admin-table-box { overflow:hidden; padding:0; }
.admin-table-box__header { padding:1.35rem 1.5rem; border-bottom:1px solid var(--sisc-line); }
.admin-table-box .table-container { border:0; border-radius:0; }

/* Estados y movimiento */
.fade-in { animation:sisc-enter .38s ease-out both; }
@keyframes sisc-enter { from { opacity:0; transform:translateY(7px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; animation-duration:.01ms !important; transition-duration:.01ms !important; } }

@media (max-width:900px) {
  .main-content__inner { padding:14px 15px 24px; }
  .dashboard-main .hero-content--institutional { padding:2.2rem; }
  .login-shell { grid-template-columns:1fr; }
  .login-context { min-height:260px; }
  .login-context__footer { position:static; margin-top:2rem; }
}
@media (max-width:768px) {
  .navbar-menu { padding:.5rem .75rem 1rem; background:var(--sisc-navy-950) !important; }
  .navbar-start { display:none; }
  .dashboard-main .hero-panel,.dashboard-main .hero-content--institutional { min-height:355px; }
  .dashboard-main .hero-content--institutional { padding:1.7rem; }
  .apps-heading { align-items:start; flex-direction:column; }
  .profile-header { align-items:flex-start; flex-direction:column; }
  .login-context,.login-form { padding:2rem 1.5rem; }
  .admin-header { padding:1.5rem; }
}
.account-menu{margin:12px 0!important;padding:0!important;border:0!important;background:transparent!important}

/* Normalización final de componentes propios entre módulos */
.app-card{position:relative;overflow:hidden}
:is(.seguimiento-hero,.aws-costs-hero,.sync-hero){background:var(--sisc-gradient)!important;border:1px solid rgba(255,255,255,.10)!important;border-radius:var(--sisc-radius-lg)!important;box-shadow:var(--sisc-shadow-lg)!important}
:is(.seguimiento-card,.kpi-card,.bucket-card,.sync-result){border-radius:var(--sisc-radius)!important;box-shadow:var(--sisc-shadow-sm)!important}
.seguimiento-card{border-color:rgba(159,180,194,.42)!important;background:rgba(255,255,255,.94)!important}
.seguimiento-card:hover{border-color:rgba(8,166,179,.45)!important;box-shadow:var(--sisc-shadow)!important}
.seguimiento-icon{color:var(--sisc-blue-700)!important;background:var(--sisc-cyan-100)!important}
.seguimiento-link{color:var(--sisc-blue-700)!important}
:is(.export-tab-button.active,.hermes-tab-button.active,.idh-menu__item.active,.iris-tab-button.active,.iris-view-button.active){background:var(--sisc-gradient)!important;color:#fff!important}
:is(.export-tab-button,.hermes-tab-button,.idh-menu__item,.iris-tab-button,.iris-view-button):hover{color:var(--sisc-blue-700);background:#e9f6f7}
:is(.export-btn,.hermes-btn,.argos-btn,.astra-btn,.iris-btn,.sync-button){border-radius:var(--sisc-radius-sm)!important;background:var(--sisc-gradient-accent)!important;box-shadow:0 7px 18px rgba(7,93,146,.18)!important}
:is(.export-btn,.hermes-btn,.argos-btn,.astra-btn,.iris-btn,.sync-button):hover:not(:disabled){filter:brightness(.94);transform:translateY(-1px)}
:is(.export-field,.hermes-field,.astra-field,.iris-field) :is(input,select,textarea){border-radius:var(--sisc-radius-sm)!important;border-color:#bfd0dc!important}
:is(.export-field,.hermes-field,.astra-field,.iris-field) :is(input,select,textarea):focus{border-color:var(--sisc-cyan-500)!important;box-shadow:var(--sisc-focus)!important}
.docs-card:hover{border-color:rgba(8,166,179,.45)!important;box-shadow:var(--sisc-shadow)!important}
.docs-card__app{color:var(--sisc-blue-700)!important;background:var(--sisc-cyan-100)!important}
.sync-result.is-success{border-left-color:var(--sisc-success)!important}.sync-result.is-error{border-left-color:var(--sisc-danger)!important}
/* Acento de acción inspirado en el portal institucional de Medellín */
.hero-kicker i,.hero-trust i{color:#ffffff!important}
.apps-heading__eyebrow,.profile-header__eyebrow,.admin-header__eyebrow{color:var(--sisc-cyan-500)}
.app-card:hover::before{background:linear-gradient(180deg,var(--sisc-cyan-500),var(--sisc-gold-500))}
.app-arrow{
  display:flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  padding:0!important;
  color:#fff!important;
  background:var(--sisc-gold-500)!important;
  font-size:0!important;
  line-height:1!important;
}
.app-arrow::after{
  content:"\2192";
  display:block;
  font:700 18px/1 Arial,sans-serif;
  transform:translateY(-1px);
}
.login-form .button.is-link{background:linear-gradient(135deg,#f47a00,#ff9a1f)!important;box-shadow:0 7px 18px rgba(244,122,0,.24)!important}
.login-context__footer{color:#fff;border-left:3px solid var(--sisc-gold-500);padding-left:.65rem}