:root {
  --jonas-navy: #202845;
  --jonas-navy-deep: #11172c;
  --jonas-steel: #365b77;
  --jonas-blue-soft: #7498b6;
  --jonas-sky-soft: #94b8d7;
  --jonas-blue: #055ba1;
  --jonas-cyan: #0086cd;
  --jonas-red: #cb0839;
  --jonas-bg: #eef3f7;
  --jonas-surface: #ffffff;
  --jonas-border: #d9e3ec;
  --jonas-text: #202845;
  --jonas-muted: #66778a;
  --jonas-success: #1f7a55;
  --jonas-shadow: 0 18px 55px rgba(20,35,64,.10);
  --jonas-shadow-lg: 0 28px 90px rgba(7,18,41,.24);
}

* { box-sizing: border-box; }
html { background: var(--jonas-bg); }
body {
  margin: 0;
  background:
    radial-gradient(circle at 88% -10%, rgba(0,134,205,.11), transparent 28rem),
    linear-gradient(180deg, #f8fbfd 0%, var(--jonas-bg) 72%) !important;
  color: var(--jonas-text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--jonas-blue); }

/* ---------- Brand ---------- */
.brand-logo { display:block; object-fit:contain; }
.brand-logo--nav { height:42px; width:auto; }
.brand-logo--login { width:min(420px, 82%); height:auto; }
.brand-logo--report { width:190px; height:auto; }
.jonas-eyebrow {
  display:inline-flex; align-items:center; gap:.45rem;
  font-size:.72rem; font-weight:850; letter-spacing:.16em;
  text-transform:uppercase; color:var(--jonas-sky-soft);
}
.jonas-eyebrow::before { content:""; width:30px; height:2px; background:var(--jonas-red); border-radius:999px; }

/* ---------- Tailwind compatibility ---------- */
.bg-slate-900, .bg-slate-950 { background-color: var(--jonas-navy) !important; }
.bg-slate-800 { background-color: #18213c !important; }
.text-slate-950, .text-slate-900, .text-slate-800 { color: var(--jonas-text) !important; }
.text-slate-500, .text-slate-400 { color: var(--jonas-muted) !important; }
.bg-slate-100 { background-color: var(--jonas-bg) !important; }
.bg-slate-50 { background-color: #f8fafc !important; }
.border-slate-200, .border-slate-300 { border-color: var(--jonas-border) !important; }
.bg-emerald-600 { background-color: var(--jonas-blue) !important; }
.hover\:bg-emerald-700:hover { background-color: #044c87 !important; }
.text-emerald-400, .text-emerald-500, .text-emerald-600, .text-emerald-700 { color: var(--jonas-blue) !important; }
.bg-emerald-50, .bg-emerald-100 { background-color: #eaf5fb !important; }
.border-emerald-500 { border-color: var(--jonas-cyan) !important; }
.focus\:ring-slate-900:focus { --tw-ring-color: var(--jonas-cyan) !important; }
.shadow-sm { box-shadow: 0 8px 28px rgba(32,40,69,.07) !important; }
.card, .bg-white.rounded-2xl { border-color: var(--jonas-border) !important; border-radius: 20px !important; }

/* ---------- Login V2 ---------- */
.jonas-login-shell {
  min-height:100vh;
  display:grid;
  grid-template-columns:minmax(0, 1.35fr) minmax(420px, .65fr);
  background:var(--jonas-navy-deep);
  overflow:hidden;
}
.jonas-login-hero {
  position:relative;
  min-height:100vh;
  padding:clamp(42px, 6vw, 92px);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  color:#fff;
  isolation:isolate;
  background:
    linear-gradient(125deg, rgba(17,23,44,.94), rgba(5,91,161,.82)),
    radial-gradient(circle at 78% 28%, rgba(0,134,205,.48), transparent 22rem);
}
.jonas-login-hero::before {
  content:""; position:absolute; inset:0; z-index:-2; opacity:.19;
  background-image:
    linear-gradient(rgba(255,255,255,.18) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.18) 1px, transparent 1px);
  background-size:44px 44px;
  mask-image:linear-gradient(to bottom, black 15%, transparent 95%);
}
.jonas-login-hero::after {
  content:""; position:absolute; right:-12vw; bottom:-24vw; width:50vw; height:50vw; border-radius:50%;
  border:1px solid rgba(255,255,255,.10); box-shadow:0 0 0 70px rgba(255,255,255,.025),0 0 0 140px rgba(255,255,255,.018); z-index:-1;
}
.jonas-login-logo-wrap { display:flex; align-items:center; min-height:110px; }
.jonas-login-copy { max-width:780px; padding:72px 0 44px; }
.jonas-login-copy h1 {
  margin:.85rem 0 1.2rem; font-size:clamp(2.55rem, 5vw, 5.35rem); line-height:.95; letter-spacing:-.055em; font-weight:850;
}
.jonas-login-copy h1 span { color:#a9d8f2; }
.jonas-login-copy p { max-width:650px; font-size:clamp(1rem, 1.4vw, 1.22rem); color:rgba(236,246,253,.78); line-height:1.7; }
.jonas-login-feature-row { display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
.jonas-login-feature {
  display:inline-flex; align-items:center; gap:9px; padding:10px 13px; border-radius:999px;
  border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.065); color:#eef8ff; font-size:.84rem; font-weight:700;
  backdrop-filter:blur(10px);
}
.jonas-login-feature i { color:#73c9f2; }
.jonas-login-footer { display:flex; justify-content:space-between; gap:20px; color:rgba(255,255,255,.48); font-size:.78rem; }
.jonas-login-panel {
  min-height:100vh; background:#fff; display:flex; align-items:center; justify-content:center;
  padding:clamp(34px, 5vw, 72px); position:relative;
}
.jonas-login-panel::before { content:""; position:absolute; left:0; top:10%; bottom:10%; width:1px; background:linear-gradient(transparent, #dbe5ee, transparent); }
.jonas-login-card { width:min(100%, 470px); }
.jonas-login-card-head { margin-bottom:36px; }
.jonas-login-card-head .mini-brand { display:none; }
.jonas-login-card-head h2 { font-size:2rem; letter-spacing:-.035em; margin:10px 0 8px; font-weight:850; color:var(--jonas-navy); }
.jonas-login-card-head p { color:var(--jonas-muted); line-height:1.6; }
.jonas-login-form { display:grid; gap:22px; }
.jonas-field-label { display:block; margin-bottom:8px; font-size:.74rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; color:#42566d; }
.jonas-input-wrap { position:relative; }
.jonas-input-wrap > i { position:absolute; left:15px; top:50%; transform:translateY(-50%); color:#8da0b4; }
.jonas-input {
  width:100%; height:52px; padding:0 46px; border:1px solid #d6e1ea; border-radius:13px; background:#fbfdff;
  color:var(--jonas-navy); outline:none; transition:.2s ease; font-size:.95rem;
}
.jonas-input:focus { border-color:var(--jonas-cyan); box-shadow:0 0 0 4px rgba(0,134,205,.10); background:#fff; }
.jonas-password-toggle { position:absolute; right:14px; top:50%; transform:translateY(-50%); border:0; background:transparent; color:#8092a5; cursor:pointer; padding:6px; }
.jonas-login-button {
  height:54px; width:100%; border:0; border-radius:13px; color:#fff; font-weight:800; font-size:.96rem; cursor:pointer;
  background:linear-gradient(115deg, var(--jonas-navy) 0%, #263f67 58%, var(--jonas-blue) 100%);
  box-shadow:0 14px 28px rgba(32,40,69,.20); transition:.2s ease;
}
.jonas-login-button:hover { transform:translateY(-1px); box-shadow:0 18px 34px rgba(32,40,69,.26); }
.jonas-login-security { margin-top:26px; padding-top:22px; border-top:1px solid #e6edf3; display:flex; align-items:center; gap:10px; color:#718397; font-size:.78rem; }
.jonas-login-security i { color:var(--jonas-success); }
.jonas-login-error { padding:13px 14px; border-radius:12px; background:#fff4f6; border:1px solid #facdd8; color:#9b1738; font-size:.85rem; }

/* ---------- Global navigation ---------- */
.jonas-nav {
  position:sticky; top:0; z-index:1000;
  background:rgba(20,28,52,.96) !important; border-bottom:1px solid rgba(255,255,255,.08);
  box-shadow:0 10px 38px rgba(8,18,39,.16) !important; backdrop-filter:blur(16px);
}
.jonas-nav-inner { max-width:1440px; margin:0 auto; min-height:74px; padding:0 28px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.jonas-nav-brand { display:flex; align-items:center; gap:18px; color:#fff !important; text-decoration:none; }
.jonas-nav-separator { width:1px; height:30px; background:rgba(255,255,255,.15); }
.jonas-nav-product { font-size:.82rem; color:#b8c9d9; font-weight:700; letter-spacing:.03em; }
.jonas-nav-actions { display:flex; align-items:center; gap:12px; }
.jonas-user-pill { display:flex; align-items:center; gap:11px; padding:7px 11px 7px 8px; border:1px solid rgba(255,255,255,.10); border-radius:999px; background:rgba(255,255,255,.055); color:#fff; }
.jonas-user-avatar { width:34px; height:34px; border-radius:50%; display:grid; place-items:center; background:linear-gradient(135deg,var(--jonas-blue),var(--jonas-cyan)); font-weight:800; }
.jonas-user-meta strong { display:block; font-size:.78rem; line-height:1.1; }
.jonas-user-meta span { font-size:.66rem; color:#93abc0; text-transform:uppercase; }
.jonas-nav-button { display:inline-flex; align-items:center; gap:7px; height:39px; padding:0 14px; border-radius:10px; color:#dbe8f2 !important; text-decoration:none; border:1px solid rgba(255,255,255,.12); font-size:.78rem; font-weight:750; }
.jonas-nav-button:hover { background:rgba(255,255,255,.08); }

/* ---------- Dashboard ---------- */
.jonas-dashboard { max-width:1440px; margin:0 auto; padding:34px 28px 60px; }
.jonas-dashboard-hero {
  position:relative; overflow:hidden; min-height:275px; padding:42px; border-radius:28px; color:#fff;
  background:linear-gradient(118deg,var(--jonas-navy-deep),var(--jonas-navy) 52%,#075f9e 120%); box-shadow:var(--jonas-shadow);
}
.jonas-dashboard-hero::after { content:""; position:absolute; width:420px; height:420px; right:-120px; top:-210px; border-radius:50%; border:1px solid rgba(255,255,255,.12); box-shadow:0 0 0 70px rgba(255,255,255,.025); }
.jonas-dashboard-hero h1 { max-width:720px; font-size:clamp(2rem,4vw,3.6rem); line-height:1.02; letter-spacing:-.045em; margin:12px 0; font-weight:850; }
.jonas-dashboard-hero p { max-width:720px; color:#c5d9e8; font-size:1.02rem; line-height:1.65; }
.jonas-dashboard-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:26px; position:relative; z-index:1; }
.jonas-cta-primary,.jonas-cta-secondary { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:46px; padding:0 18px; border-radius:12px; font-weight:800; text-decoration:none !important; font-size:.87rem; transition:.2s ease; }
.jonas-cta-primary { background:#fff; color:var(--jonas-navy) !important; box-shadow:0 10px 24px rgba(0,0,0,.14); }
.jonas-cta-primary:hover { transform:translateY(-1px); }
.jonas-cta-secondary { color:#fff !important; border:1px solid rgba(255,255,255,.18); background:rgba(255,255,255,.07); }
.jonas-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:22px; }
.jonas-metric { background:#fff; border:1px solid var(--jonas-border); border-radius:18px; padding:18px; box-shadow:0 8px 24px rgba(32,40,69,.05); }
.jonas-metric strong { display:block; color:var(--jonas-navy); font-size:1rem; }
.jonas-metric span { color:var(--jonas-muted); font-size:.78rem; }
.jonas-section-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin:34px 0 15px; }
.jonas-section-heading h2 { margin:0; font-size:1.2rem; font-weight:850; color:var(--jonas-navy); }
.jonas-section-heading p { margin:3px 0 0; font-size:.82rem; color:var(--jonas-muted); }
.jonas-module-featured { position:relative; overflow:hidden; display:grid; grid-template-columns:1.2fr .8fr; gap:24px; min-height:265px; padding:32px; border:1px solid #bed8e7; border-radius:24px; background:linear-gradient(135deg,#fff,#f5fbff); box-shadow:var(--jonas-shadow); }
.jonas-module-featured::after { content:""; position:absolute; width:280px; height:280px; right:-105px; bottom:-125px; border-radius:50%; background:rgba(0,134,205,.07); }
.jonas-module-featured h3 { margin:8px 0 8px; font-size:1.8rem; font-weight:850; letter-spacing:-.03em; color:var(--jonas-navy); }
.jonas-module-featured p { max-width:700px; color:var(--jonas-muted); line-height:1.65; }
.jonas-module-badge { display:inline-flex; align-items:center; gap:7px; padding:6px 10px; border-radius:999px; background:#eaf6fc; color:var(--jonas-blue); font-size:.72rem; font-weight:850; }
.jonas-module-feature-visual { display:flex; align-items:center; justify-content:center; position:relative; }
.jonas-orbit { width:190px; height:190px; border-radius:50%; border:1px solid #bed9e9; display:grid; place-items:center; box-shadow:0 0 0 32px rgba(0,134,205,.045),0 0 0 64px rgba(0,134,205,.025); }
.jonas-orbit i { font-size:3.2rem; color:var(--jonas-blue); }
.jonas-roadmap-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-top:14px; }
.jonas-roadmap-card { padding:19px 20px; border:1px solid var(--jonas-border); border-radius:17px; background:rgba(255,255,255,.7); color:var(--jonas-muted); }
.jonas-roadmap-card strong { display:block; color:#596b80; margin-bottom:3px; }

/* ---------- Calculation workspace ---------- */
.jonas-workspace { max-width:1540px; margin:0 auto; padding:28px 26px 64px; }
.jonas-workspace-header { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; margin-bottom:18px; }
.jonas-workspace-title h1 { margin:5px 0 6px; font-size:clamp(1.7rem,3vw,2.55rem); font-weight:850; letter-spacing:-.04em; color:var(--jonas-navy); }
.jonas-workspace-title p { margin:0; color:var(--jonas-muted); }
.jonas-standard-pill { display:inline-flex; align-items:center; gap:7px; border:1px solid #bad8e8; background:#f1f9fd; color:var(--jonas-blue); border-radius:999px; padding:8px 12px; font-size:.76rem; font-weight:850; white-space:nowrap; }
.jonas-stepper { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-bottom:20px; }
.jonas-step { position:relative; min-height:68px; display:flex; align-items:center; gap:11px; padding:12px 15px; border-radius:15px; border:1px solid var(--jonas-border); background:rgba(255,255,255,.75); color:#8192a3; }
.jonas-step .step-num { width:34px; height:34px; border-radius:10px; display:grid; place-items:center; background:#edf2f6; font-size:.74rem; font-weight:850; }
.jonas-step strong { display:block; color:#617286; font-size:.78rem; }
.jonas-step span:last-child { display:block; font-size:.68rem; }
.jonas-step.is-active { border-color:#9ccce4; background:#f7fcff; box-shadow:0 8px 24px rgba(5,91,161,.07); }
.jonas-step.is-active .step-num { background:linear-gradient(135deg,var(--jonas-blue),var(--jonas-cyan)); color:#fff; }
.jonas-step.is-active strong { color:var(--jonas-navy); }
.jonas-step.is-complete .step-num { background:#e9f6f0; color:var(--jonas-success); }
.jonas-workspace-grid { display:grid; grid-template-columns:minmax(360px, 470px) minmax(0,1fr); gap:20px; align-items:start; }
.jonas-control-panel { position:sticky; top:94px; }
.jonas-panel { border:1px solid var(--jonas-border); border-radius:22px; background:#fff; box-shadow:0 12px 34px rgba(32,40,69,.065); overflow:hidden; }
.jonas-panel-head { padding:19px 20px 15px; border-bottom:1px solid #e8eef3; }
.jonas-panel-head h3 { margin:0; font-size:1rem; font-weight:850; color:var(--jonas-navy); }
.jonas-panel-head p { margin:4px 0 0; font-size:.76rem; color:var(--jonas-muted); }
.jonas-mode-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:15px; }
.jonas-mode-option { position:relative; cursor:pointer; }
.jonas-mode-option input { position:absolute; opacity:0; pointer-events:none; }
.jonas-mode-card { height:100%; min-height:106px; padding:16px; border:1px solid var(--jonas-border); border-radius:16px; background:#fbfdff; transition:.2s ease; }
.jonas-mode-card i { width:36px; height:36px; display:grid; place-items:center; border-radius:10px; background:#edf4f8; color:var(--jonas-blue); margin-bottom:10px; }
.jonas-mode-card strong { display:block; font-size:.82rem; color:var(--jonas-navy); }
.jonas-mode-card span { display:block; margin-top:3px; font-size:.68rem; color:var(--jonas-muted); line-height:1.35; }
.jonas-mode-option input:checked + .jonas-mode-card { border-color:var(--jonas-cyan); background:#f1faff; box-shadow:0 0 0 3px rgba(0,134,205,.08); }
.jonas-mode-option input:checked + .jonas-mode-card i { background:linear-gradient(135deg,var(--jonas-blue),var(--jonas-cyan)); color:#fff; }
.jonas-form-section { padding:19px 20px 20px; border-top:1px solid #edf2f6; }
.jonas-form-section:first-child { border-top:0; }
.jonas-form-section-title { display:flex; align-items:center; gap:9px; margin:0 0 14px; font-size:.77rem; font-weight:850; color:var(--jonas-navy); text-transform:uppercase; letter-spacing:.06em; }
.jonas-form-section-title i { color:var(--jonas-blue); }
.jonas-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.jonas-field { margin-bottom:12px; }
.jonas-field:last-child { margin-bottom:0; }
.jonas-field label { display:block; margin-bottom:6px; color:#52657a; font-size:.70rem; font-weight:800; }
.jonas-field .form-control,.jonas-field .form-select { min-height:43px; border-radius:11px; border-color:#d9e3ec; background:#fcfdff; font-size:.82rem; }
.jonas-field .form-control::placeholder { color:#a5b2bf; }
.jonas-tech-kpis { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.jonas-tech-kpi { padding:13px; border:1px solid #dce7ef; border-radius:14px; background:#f8fbfd; }
.jonas-tech-kpi label { display:block; margin-bottom:7px; color:#617489; font-size:.67rem; font-weight:850; text-transform:uppercase; letter-spacing:.04em; }
.jonas-tech-kpi input { width:100%; border:0; outline:0; background:transparent; color:var(--jonas-navy); font-weight:850; font-size:1.06rem; }
.jonas-action-primary { width:100%; min-height:50px; border:0; border-radius:13px; display:flex; align-items:center; justify-content:center; gap:9px; color:#fff !important; font-weight:850; text-decoration:none !important; background:linear-gradient(115deg,var(--jonas-blue),var(--jonas-cyan)); box-shadow:0 13px 26px rgba(5,91,161,.20); transition:.2s ease; }
.jonas-action-primary:hover { transform:translateY(-1px); filter:brightness(.97); }
.jonas-dropzone { position:relative; padding:24px 18px; border:1.5px dashed #9fc6dc; border-radius:17px; background:linear-gradient(180deg,#f8fcff,#f2f8fb); text-align:center; transition:.2s ease; }
.jonas-dropzone:hover { border-color:var(--jonas-cyan); background:#f4fbff; }
.jonas-dropzone-icon { width:52px; height:52px; margin:0 auto 12px; border-radius:15px; display:grid; place-items:center; background:#e6f5fc; color:var(--jonas-blue); font-size:1.35rem; }
.jonas-dropzone strong { display:block; color:var(--jonas-navy); font-size:.86rem; }
.jonas-dropzone p { margin:4px 0 12px; color:var(--jonas-muted); font-size:.72rem; }
.jonas-dropzone .form-control { font-size:.76rem; }
.jonas-ai-note { display:flex; gap:10px; margin-top:12px; padding:12px; border-radius:13px; background:#f5f8fb; color:#667a8f; font-size:.70rem; line-height:1.45; }
.jonas-ai-note i { color:var(--jonas-blue); margin-top:2px; }

/* ---------- Result / empty state ---------- */
.jonas-output-card { min-height:610px; border:1px solid var(--jonas-border); border-radius:22px; background:#fff; box-shadow:0 12px 34px rgba(32,40,69,.065); overflow:hidden; }
.jonas-empty-state { min-height:610px; display:grid; grid-template-columns:1fr .82fr; align-items:center; gap:34px; padding:54px; background:linear-gradient(135deg,#fff 0%,#f8fbfd 100%); }
.jonas-empty-state h2 { margin:9px 0 12px; font-size:clamp(1.7rem,3vw,2.8rem); line-height:1.03; letter-spacing:-.04em; color:var(--jonas-navy); font-weight:850; }
.jonas-empty-state p { max-width:620px; color:var(--jonas-muted); line-height:1.68; }
.jonas-empty-steps { margin-top:24px; display:grid; gap:10px; }
.jonas-empty-step { display:flex; align-items:center; gap:12px; padding:11px 0; color:#5f7287; font-size:.8rem; font-weight:700; }
.jonas-empty-step b { width:30px; height:30px; border-radius:9px; display:grid; place-items:center; background:#edf7fc; color:var(--jonas-blue); }
.jonas-blueprint-visual { position:relative; aspect-ratio:1/1; max-width:380px; width:100%; margin:auto; border-radius:30px; overflow:hidden; background:linear-gradient(145deg,var(--jonas-navy),#0a649d); box-shadow:0 24px 70px rgba(20,40,72,.24); }
.jonas-blueprint-visual::before { content:""; position:absolute; inset:0; opacity:.18; background-image:linear-gradient(rgba(255,255,255,.32) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.32) 1px,transparent 1px); background-size:28px 28px; }
.jonas-blueprint-visual::after { content:""; position:absolute; left:17%; right:17%; top:19%; bottom:19%; border:2px solid rgba(255,255,255,.55); clip-path:polygon(0 0,75% 0,75% 18%,100% 18%,100% 100%,38% 100%,38% 78%,0 78%); }
.jonas-blueprint-core { position:absolute; inset:0; display:grid; place-items:center; color:#fff; text-align:center; z-index:2; }
.jonas-blueprint-core div { width:115px; height:115px; border-radius:50%; display:grid; place-items:center; background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.22); box-shadow:0 0 0 18px rgba(255,255,255,.045); }
.jonas-blueprint-core i { font-size:2.8rem; }
.jonas-blueprint-label { position:absolute; right:20px; bottom:20px; z-index:2; padding:7px 10px; border-radius:9px; background:rgba(10,18,35,.55); color:#d9effa; font-size:.66rem; font-weight:800; letter-spacing:.06em; backdrop-filter:blur(8px); }

/* ---------- Existing report polish ---------- */
.header-jonas { background:linear-gradient(110deg,var(--jonas-navy),var(--jonas-steel)) !important; color:#fff !important; border:0 !important; }
.tipo-badge { background:var(--jonas-navy) !important; }
.grupo-card { border-left:4px solid var(--jonas-cyan) !important; }
.selector-producto select { border-color:var(--jonas-blue-soft) !important; }
.form-control:focus,.form-select:focus,input:focus,select:focus,textarea:focus { border-color:var(--jonas-cyan) !important; box-shadow:0 0 0 .2rem rgba(0,134,205,.12) !important; }
.form-check-input:checked { background-color:var(--jonas-blue) !important; border-color:var(--jonas-blue) !important; }
.btn-primary,.bg-blue-600 { background-color:var(--jonas-blue) !important; border-color:var(--jonas-blue) !important; }
.btn-success { background-color:var(--jonas-success) !important; border-color:var(--jonas-success) !important; }
.btn-outline-primary { color:var(--jonas-blue); border-color:var(--jonas-blue); }
.btn-outline-primary:hover { background:var(--jonas-blue); border-color:var(--jonas-blue); }
.preview-a4 { border-top:5px solid var(--jonas-red); box-shadow:0 20px 62px rgba(32,40,69,.11) !important; border-radius:6px; }
.preview-a4 h2,.preview-a4 h5 { color:var(--jonas-navy) !important; }
.preview-a4 .text-primary { color:var(--jonas-blue) !important; }
.preview-a4 .border-bottom { border-color:#dce5ed !important; }

/* ---------- Premium processing overlay ---------- */
#loader-overlay { background:radial-gradient(circle at 50% 30%,rgba(0,134,205,.35),transparent 24rem),linear-gradient(135deg,rgba(17,23,44,.99),rgba(32,40,69,.985)) !important; }
.saas-spinner { width:76px !important; height:76px !important; border-width:3px !important; border-color:rgba(255,255,255,.12) !important; border-top-color:var(--jonas-red) !important; box-shadow:0 0 0 14px rgba(255,255,255,.03); }
.jonas-loader-logo { width:210px; margin-bottom:34px; opacity:.98; }
.jonas-loader-progress { width:min(430px,78vw); height:4px; border-radius:999px; background:rgba(255,255,255,.10); overflow:hidden; margin:18px 0 12px; }
.jonas-loader-progress span { display:block; width:38%; height:100%; background:linear-gradient(90deg,var(--jonas-red),#ff6484,var(--jonas-cyan)); border-radius:999px; animation:jonasProgress 1.7s ease-in-out infinite; }
@keyframes jonasProgress { 0%{transform:translateX(-120%)} 100%{transform:translateX(280%)} }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .jonas-login-shell { grid-template-columns:1fr; }
  .jonas-login-hero { min-height:auto; padding:42px; }
  .jonas-login-copy { padding:45px 0 32px; }
  .jonas-login-panel { min-height:auto; padding:50px 28px; }
  .jonas-login-card-head .mini-brand { display:block; width:190px; margin-bottom:24px; }
  .jonas-workspace-grid { grid-template-columns:1fr; }
  .jonas-control-panel { position:static; }
  .jonas-empty-state { grid-template-columns:1fr; }
  .jonas-blueprint-visual { max-width:320px; }
}
@media (max-width: 768px) {
  .brand-logo--nav { height:34px; }
  .jonas-login-hero { padding:30px 24px; }
  .jonas-login-copy h1 { font-size:2.65rem; }
  .jonas-login-footer { flex-direction:column; gap:6px; }
  .jonas-nav-inner { padding:0 16px; }
  .jonas-nav-product,.jonas-user-meta { display:none; }
  .jonas-dashboard,.jonas-workspace { padding-left:14px; padding-right:14px; }
  .jonas-dashboard-hero { padding:28px 22px; border-radius:22px; }
  .jonas-metrics,.jonas-roadmap-grid,.jonas-module-featured,.jonas-stepper,.jonas-form-grid,.jonas-tech-kpis { grid-template-columns:1fr; }
  .jonas-module-feature-visual { display:none; }
  .jonas-step { min-height:54px; }
  .jonas-step span:last-child { display:none; }
  .jonas-empty-state { padding:30px 22px; }
  .preview-a4 { padding:22px !important; }
}

@media print {
  nav,.jonas-screen-only,.jonas-stepper,.jonas-workspace-header,.jonas-control-panel { display:none !important; }
  .jonas-workspace,.jonas-workspace-grid,.jonas-output-card { display:block !important; padding:0 !important; margin:0 !important; border:0 !important; box-shadow:none !important; }
  .preview-a4 { border-top:0 !important; }
  .brand-logo--report { width:160px !important; }
  * { -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
}

/* ==========================================================
   Login V2.1 · Viewport fit / feria
   Ajuste para mantener el acceso completo visible sin scroll
   en notebooks y pantallas Full HD, preservando el impacto Jonas.
   ========================================================== */
body.jonas-login-page {
  height: 100dvh;
  min-height: 100dvh;
  overflow: hidden;
}
body.jonas-login-page .jonas-login-shell {
  height: 100dvh;
  min-height: 0;
  overflow: hidden;
}
body.jonas-login-page .jonas-login-hero,
body.jonas-login-page .jonas-login-panel {
  height: 100%;
  min-height: 0;
}

@media (min-width: 1101px) {
  body.jonas-login-page .jonas-login-hero {
    padding: clamp(30px, 4.1vw, 64px);
  }
  body.jonas-login-page .jonas-login-logo-wrap {
    min-height: 72px;
  }
  body.jonas-login-page .brand-logo--login {
    width: min(350px, 76%);
  }
  body.jonas-login-page .jonas-login-copy {
    max-width: 720px;
    padding: clamp(20px, 3.2vh, 34px) 0 clamp(16px, 2.5vh, 26px);
  }
  body.jonas-login-page .jonas-login-copy h1 {
    margin: .6rem 0 .9rem;
    font-size: clamp(2.75rem, 4.25vw, 4.65rem);
    line-height: .94;
  }
  body.jonas-login-page .jonas-login-copy p {
    max-width: 620px;
    font-size: clamp(.9rem, 1.12vw, 1.08rem);
    line-height: 1.55;
  }
  body.jonas-login-page .jonas-login-feature-row {
    gap: 9px;
    margin-top: 20px;
  }
  body.jonas-login-page .jonas-login-feature {
    gap: 7px;
    padding: 8px 11px;
    font-size: .76rem;
  }
  body.jonas-login-page .jonas-login-footer {
    font-size: .7rem;
  }
  body.jonas-login-page .jonas-login-panel {
    padding: clamp(28px, 4vw, 58px);
  }
  body.jonas-login-page .jonas-login-card {
    width: min(100%, 450px);
  }
  body.jonas-login-page .jonas-login-card-head {
    margin-bottom: 27px;
  }
  body.jonas-login-page .jonas-login-card-head h2 {
    font-size: 1.82rem;
    margin: 8px 0 6px;
  }
  body.jonas-login-page .jonas-login-card-head p {
    font-size: .91rem;
    line-height: 1.5;
  }
  body.jonas-login-page .jonas-login-form {
    gap: 17px;
  }
  body.jonas-login-page .jonas-field-label {
    margin-bottom: 7px;
    font-size: .7rem;
  }
  body.jonas-login-page .jonas-input {
    height: 48px;
  }
  body.jonas-login-page .jonas-login-button {
    height: 50px;
  }
  body.jonas-login-page .jonas-login-security {
    margin-top: 20px;
    padding-top: 17px;
    font-size: .74rem;
  }
}

/* Pantallas de menor altura: compactar sin perder jerarquía visual. */
@media (min-width: 1101px) and (max-height: 820px) {
  body.jonas-login-page .jonas-login-hero {
    padding: 26px 46px;
  }
  body.jonas-login-page .jonas-login-logo-wrap {
    min-height: 58px;
  }
  body.jonas-login-page .brand-logo--login {
    width: min(300px, 70%);
  }
  body.jonas-login-page .jonas-login-copy {
    padding: 14px 0 12px;
  }
  body.jonas-login-page .jonas-login-copy h1 {
    margin: .42rem 0 .65rem;
    font-size: clamp(2.45rem, 3.9vw, 3.75rem);
  }
  body.jonas-login-page .jonas-login-copy p {
    font-size: .88rem;
    line-height: 1.45;
  }
  body.jonas-login-page .jonas-login-feature-row {
    margin-top: 13px;
  }
  body.jonas-login-page .jonas-login-feature {
    padding: 6px 9px;
    font-size: .7rem;
  }
  body.jonas-login-page .jonas-login-panel {
    padding: 22px 42px;
  }
  body.jonas-login-page .jonas-login-card-head {
    margin-bottom: 20px;
  }
  body.jonas-login-page .jonas-login-card-head h2 {
    font-size: 1.62rem;
  }
  body.jonas-login-page .jonas-login-card-head p {
    font-size: .84rem;
  }
  body.jonas-login-page .jonas-login-form {
    gap: 13px;
  }
  body.jonas-login-page .jonas-input {
    height: 44px;
  }
  body.jonas-login-page .jonas-login-button {
    height: 46px;
  }
  body.jonas-login-page .jonas-login-security {
    margin-top: 14px;
    padding-top: 13px;
  }
}

/* En móvil/tablet sí permitimos scroll natural. */
@media (max-width: 1100px) {
  body.jonas-login-page {
    height: auto;
    min-height: 100vh;
    overflow-y: auto;
    overflow-x: hidden;
  }
  body.jonas-login-page .jonas-login-shell,
  body.jonas-login-page .jonas-login-hero,
  body.jonas-login-page .jonas-login-panel {
    height: auto;
    min-height: 0;
  }
}

/* ==========================================================
   Cálculo V2.2 · Workspace Feria / fixes + refinamiento
   ========================================================== */
@media (min-width: 1101px) {
  .jonas-workspace {
    max-width: 1600px;
    padding: 22px 24px 56px;
  }
  .jonas-workspace-header {
    align-items: center;
    margin-bottom: 14px;
  }
  .jonas-workspace-title h1 {
    font-size: clamp(1.9rem, 2.45vw, 2.55rem);
    margin-top: 3px;
  }
  .jonas-stepper {
    gap: 10px;
    margin-bottom: 16px;
  }
  .jonas-step {
    min-height: 62px;
    padding: 10px 14px;
  }
  .jonas-workspace-grid {
    grid-template-columns: minmax(390px, 440px) minmax(0, 1fr);
    gap: 18px;
  }
  .jonas-control-panel {
    top: 88px;
  }
}

/* selector origen: corrige el layout de spans inline y lo convierte en control premium */
.jonas-mode-grid {
  gap: 10px;
  padding: 13px;
}
.jonas-mode-option {
  position: relative;
  display: block;
  min-width: 0;
  cursor: pointer;
}
.jonas-mode-card {
  position: relative;
  width: 100%;
  min-width: 0;
  min-height: 108px;
  display: grid;
  grid-template-columns: 42px minmax(0,1fr);
  grid-template-rows: 1fr;
  align-items: center;
  column-gap: 11px;
  padding: 14px 13px;
  border: 1px solid #d8e4ed;
  border-radius: 16px;
  background: linear-gradient(180deg,#ffffff 0%,#f8fbfd 100%);
  overflow: hidden;
  box-shadow: 0 6px 18px rgba(32,40,69,.035);
}
.jonas-mode-card::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 3px;
  opacity: 0;
  background: linear-gradient(90deg,var(--jonas-blue),var(--jonas-cyan));
  transition: .2s ease;
}
.jonas-mode-icon {
  width: 42px;
  height: 42px;
  display: grid !important;
  place-items: center;
  margin: 0 !important;
  border-radius: 12px;
  background: #edf5f9;
  color: var(--jonas-blue);
  font-size: 1rem !important;
}
.jonas-mode-icon i {
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  display: inline-block !important;
  background: transparent !important;
  color: inherit !important;
}
.jonas-mode-copy {
  min-width: 0;
  display: block !important;
  margin: 0 !important;
}
.jonas-mode-copy strong {
  display: block;
  color: var(--jonas-navy);
  font-size: .80rem;
  line-height: 1.2;
  font-weight: 850;
}
.jonas-mode-copy > span {
  display: block;
  margin-top: 5px;
  color: #74869a;
  font-size: .66rem;
  line-height: 1.35;
}
.jonas-mode-check {
  position: absolute;
  top: 9px;
  right: 9px;
  width: 21px;
  height: 21px;
  margin: 0 !important;
  display: grid !important;
  place-items: center;
  border-radius: 50%;
  border: 1px solid #d5e2eb;
  background: #fff;
  color: transparent;
  font-size: .58rem !important;
  transition: .2s ease;
}
.jonas-mode-option:hover .jonas-mode-card {
  transform: translateY(-1px);
  border-color: #acd0e4;
  box-shadow: 0 10px 24px rgba(5,91,161,.07);
}
.jonas-mode-option input:checked + .jonas-mode-card {
  border-color: #63b7df;
  background: linear-gradient(145deg,#f8fdff,#edf9ff);
  box-shadow: 0 0 0 3px rgba(0,134,205,.07), 0 10px 24px rgba(5,91,161,.07);
}
.jonas-mode-option input:checked + .jonas-mode-card::after { opacity: 1; }
.jonas-mode-option input:checked + .jonas-mode-card .jonas-mode-icon {
  background: linear-gradient(135deg,var(--jonas-blue),var(--jonas-cyan));
  color: #fff;
  box-shadow: 0 8px 18px rgba(5,91,161,.18);
}
.jonas-mode-option input:checked + .jonas-mode-card .jonas-mode-check {
  border-color: var(--jonas-cyan);
  background: var(--jonas-cyan);
  color: #fff;
}

/* Panel izquierdo más compacto y legible */
.jonas-panel {
  border-radius: 19px;
  box-shadow: 0 10px 28px rgba(32,40,69,.055);
}
.jonas-panel-head {
  padding: 16px 18px 13px;
}
.jonas-panel-head h3 { font-size: .96rem; }
.jonas-panel-head p { font-size: .70rem; }
.jonas-form-section { padding: 16px 18px 18px; }
.jonas-form-grid { gap: 9px 10px; }
.jonas-field { margin-bottom: 10px; }
.jonas-field .form-control,.jonas-field .form-select { min-height: 41px; }
.jonas-tech-kpi { padding: 11px 12px; }
.jonas-action-primary { min-height: 47px; border-radius: 12px; }

/* Resultado vacío: look de dashboard técnico, menos bloque gigante */
.jonas-output-card {
  min-height: 540px;
  border-radius: 20px;
}
.jonas-output-card--empty {
  background: #fff;
}
.jonas-output-head {
  min-height: 66px;
  padding: 13px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid #e7eef3;
  background: linear-gradient(180deg,#fff,#fbfdff);
}
.jonas-output-head > div:first-child { display: grid; gap: 2px; }
.jonas-output-kicker {
  color: #8495a6;
  font-size: .61rem;
  font-weight: 850;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.jonas-output-head strong {
  color: var(--jonas-navy);
  font-size: .90rem;
  font-weight: 850;
}
.jonas-output-tags { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; }
.jonas-output-tags span {
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 9px;
  border-radius:999px;
  border:1px solid #d9e7ef;
  background:#f6fafc;
  color:#60768a;
  font-size:.61rem;
  font-weight:800;
}
.jonas-output-tags i { color:var(--jonas-blue); }
.jonas-empty-state {
  min-height: 474px;
  grid-template-columns: minmax(0,1.08fr) minmax(290px,.72fr);
  gap: 28px;
  padding: 32px 34px;
  background:
    radial-gradient(circle at 88% 14%,rgba(0,134,205,.055),transparent 20rem),
    linear-gradient(135deg,#fff 0%,#f8fbfd 100%);
}
.jonas-empty-copy { min-width:0; }
.jonas-empty-state h2 {
  max-width: 680px;
  margin: 8px 0 10px;
  font-size: clamp(1.75rem,2.45vw,2.65rem);
  line-height: 1.01;
}
.jonas-empty-state p {
  max-width: 670px;
  margin-bottom: 0;
  font-size: .88rem;
  line-height: 1.62;
}
.jonas-empty-capabilities {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 9px;
  margin-top: 20px;
}
.jonas-capability {
  min-width:0;
  min-height: 76px;
  padding: 11px;
  display:flex;
  align-items:center;
  gap:9px;
  border:1px solid #dce8f0;
  border-radius:13px;
  background:rgba(255,255,255,.76);
}
.jonas-capability-icon {
  flex:0 0 auto;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:#edf7fc;
  color:var(--jonas-blue);
}
.jonas-capability strong {
  display:block;
  color:var(--jonas-navy);
  font-size:.72rem;
  line-height:1.2;
}
.jonas-capability div > span {
  display:block;
  margin-top:3px;
  color:#8192a3;
  font-size:.59rem;
  line-height:1.3;
}
.jonas-empty-steps--compact {
  margin-top: 14px;
  gap: 0;
  border-top: 1px solid #e8eff4;
  padding-top: 8px;
}
.jonas-empty-steps--compact .jonas-empty-step {
  padding: 7px 0;
  font-size: .70rem;
}
.jonas-empty-steps--compact .jonas-empty-step b {
  width: 27px;
  height: 27px;
  border-radius: 8px;
  font-size:.62rem;
}
.jonas-engine-preview {
  width:100%;
  max-width:360px;
  margin:auto;
  padding:12px;
  border:1px solid #d2e4ee;
  border-radius:24px;
  background:rgba(255,255,255,.82);
  box-shadow:0 18px 48px rgba(32,40,69,.11);
}
.jonas-engine-preview-top,
.jonas-engine-preview-foot {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  color:#75889b;
  font-size:.58rem;
  font-weight:850;
  letter-spacing:.08em;
}
.jonas-engine-preview-top { padding:2px 4px 10px; }
.jonas-engine-preview-top .is-ready { color:var(--jonas-success); }
.jonas-engine-preview-top .is-ready i { font-size:.42rem; }
.jonas-engine-preview .jonas-blueprint-visual {
  max-width:none;
  width:100%;
  border-radius:18px;
  aspect-ratio: 1.08 / 1;
  box-shadow:none;
}
.jonas-engine-preview .jonas-blueprint-core div {
  width:92px;
  height:92px;
  box-shadow:0 0 0 14px rgba(255,255,255,.045);
}
.jonas-engine-preview .jonas-blueprint-core i { font-size:2.15rem; }
.jonas-engine-preview .jonas-blueprint-label { right:12px; bottom:12px; font-size:.54rem; }
.jonas-engine-preview-foot {
  padding:10px 4px 2px;
  justify-content:space-around;
  letter-spacing:0;
  text-transform:none;
}
.jonas-engine-preview-foot span { display:flex; align-items:center; gap:5px; }
.jonas-engine-preview-foot b { color:var(--jonas-blue); font-size:.55rem; }

/* Stepper más moderno y menos dominante */
.jonas-step {
  overflow:hidden;
}
.jonas-step::after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:2px;
  background:transparent;
}
.jonas-step.is-active::after {
  background:linear-gradient(90deg,var(--jonas-blue),var(--jonas-cyan));
}

@media (max-width: 1280px) and (min-width: 1101px) {
  .jonas-workspace-grid { grid-template-columns: 390px minmax(0,1fr); }
  .jonas-empty-state { grid-template-columns:1fr 300px; padding:28px; }
  .jonas-empty-capabilities { grid-template-columns:1fr; }
  .jonas-capability { min-height:58px; }
}

@media (max-width: 1100px) {
  .jonas-output-head { align-items:flex-start; }
  .jonas-empty-capabilities { grid-template-columns:repeat(3,1fr); }
  .jonas-engine-preview { max-width:340px; }
}

@media (max-width: 768px) {
  .jonas-mode-grid { grid-template-columns:1fr; }
  .jonas-mode-card { min-height:86px; }
  .jonas-output-head { flex-direction:column; }
  .jonas-output-tags { justify-content:flex-start; }
  .jonas-empty-capabilities { grid-template-columns:1fr; }
  .jonas-empty-state { min-height:0; }
}
.jonas-mode-check i {
  width:auto !important;
  height:auto !important;
  margin:0 !important;
  display:inline-block !important;
  background:transparent !important;
  color:inherit !important;
  font-size:inherit !important;
}


/* ==========================================================
   UI V2.4 · Regla de marca Jonas
   ========================================================== */
/*
   Identidad oficial:
   - fondos oscuros -> logo blanco (archivo jonas-logo-white.png)
   - superficies claras e informe -> logo rojo corporativo (jonas-logo.png)
   No aplicar filtros cromáticos al logo rojo.
*/
.mini-brand,
.brand-logo--report {
  filter: none !important;
}

/* El hero comunica; la acción principal vive en el módulo destacado. */
.jonas-dashboard-hero {
  padding-bottom: 42px;
}

@media (max-width: 768px) {
  .jonas-dashboard-hero { padding-bottom: 30px; }
}

/* ==========================================================
   V2.5 · RESULTADOS FERIA / COCKPIT TÉCNICO
   ========================================================== */
.jonas-result-experience { display:grid; gap:18px; margin-bottom:22px; }
.jonas-result-hero { position:relative; overflow:hidden; display:grid; grid-template-columns:minmax(0,1fr) 250px; gap:34px; align-items:center; padding:34px 36px; border-radius:24px; color:#fff; background:
  radial-gradient(circle at 92% 10%,rgba(0,134,205,.34),transparent 28%),
  linear-gradient(118deg,#11172c 0%,#202845 48%,#075b91 100%); box-shadow:0 20px 48px rgba(17,23,44,.16); }
.jonas-result-hero::before { content:""; position:absolute; inset:0; pointer-events:none; opacity:.12; background-image:linear-gradient(rgba(255,255,255,.28) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.28) 1px,transparent 1px); background-size:34px 34px; mask-image:linear-gradient(90deg,transparent 0%,transparent 38%,#000 100%); }
.jonas-result-hero-copy,.jonas-result-seal { position:relative; z-index:2; }
.jonas-result-topline { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:17px; }
.jonas-result-state,.jonas-result-norm { display:inline-flex; align-items:center; gap:7px; min-height:31px; padding:0 11px; border:1px solid rgba(255,255,255,.17); border-radius:999px; background:rgba(255,255,255,.08); color:#edf8ff; font-size:.67rem; font-weight:850; letter-spacing:.035em; backdrop-filter:blur(10px); }
.jonas-result-state i { color:#67e0b0; }
.jonas-result-norm i { color:#9bd9ff; }
.jonas-result-hero .jonas-output-kicker { color:#9dd9f7; }
.jonas-result-hero h2 { margin:7px 0 10px; color:#fff; font-size:clamp(1.9rem,3.4vw,3.25rem); line-height:1.02; letter-spacing:-.045em; font-weight:900; }
.jonas-result-hero p { max-width:720px; margin:0; color:#c6d5e5; font-size:.9rem; line-height:1.65; }
.jonas-result-meta { display:flex; flex-wrap:wrap; gap:8px; margin-top:18px; }
.jonas-result-meta span { display:inline-flex; align-items:center; gap:7px; padding:8px 10px; border-radius:9px; background:rgba(255,255,255,.075); color:#dce8f3; font-size:.68rem; font-weight:700; }
.jonas-result-meta span.is-success { color:#c7f8df; background:rgba(58,183,127,.14); }
.jonas-result-meta span.is-warning { color:#ffe1a4; background:rgba(255,184,74,.14); }
.jonas-result-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }
.jonas-result-primary,.jonas-result-secondary { min-height:46px; padding:0 17px; border-radius:12px; display:inline-flex; align-items:center; justify-content:center; gap:9px; font-size:.78rem; font-weight:850; transition:.2s ease; }
.jonas-result-primary { border:0; background:#fff; color:var(--jonas-navy); box-shadow:0 10px 26px rgba(0,0,0,.13); }
.jonas-result-primary:hover { transform:translateY(-1px); }
.jonas-result-secondary { border:1px solid rgba(255,255,255,.24); background:rgba(255,255,255,.07); color:#fff; }
.jonas-result-secondary:hover { background:rgba(255,255,255,.12); }
.jonas-result-seal { width:210px; min-height:210px; margin-left:auto; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; border:1px solid rgba(255,255,255,.22); background:radial-gradient(circle,rgba(255,255,255,.12),rgba(255,255,255,.035) 62%,transparent 63%); box-shadow:inset 0 0 0 18px rgba(255,255,255,.025); }
.jonas-result-seal-ring { width:62px; height:62px; margin-bottom:13px; display:grid; place-items:center; border-radius:50%; background:linear-gradient(145deg,#27aa7a,#65dbab); color:#fff; font-size:1.45rem; box-shadow:0 10px 26px rgba(22,138,96,.25); }
.jonas-result-seal strong { color:#fff; font-size:1rem; line-height:1.18; }
.jonas-result-seal span { margin-top:7px; color:#aac3d7; font-size:.65rem; font-weight:700; }

.jonas-result-kpis { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.jonas-result-kpis article { min-width:0; min-height:126px; padding:18px 17px; border:1px solid #dce6ee; border-radius:17px; background:#fff; box-shadow:0 8px 24px rgba(32,40,69,.055); }
.jonas-result-kpis article > span { display:block; margin-bottom:12px; color:#708196; font-size:.66rem; font-weight:850; text-transform:uppercase; letter-spacing:.055em; }
.jonas-result-kpis article > strong { display:block; overflow:hidden; color:var(--jonas-navy); font-size:1.65rem; line-height:1; font-weight:900; letter-spacing:-.04em; text-overflow:ellipsis; }
.jonas-result-kpis article > strong small { font-size:.67rem; color:#718399; font-weight:800; letter-spacing:0; }
.jonas-result-kpis article > em { display:block; margin-top:9px; color:#91a0ae; font-size:.63rem; font-style:normal; line-height:1.35; }

.jonas-airflow-card,.jonas-typology-overview { padding:24px; border:1px solid #dce6ee; border-radius:21px; background:#fff; box-shadow:0 10px 30px rgba(32,40,69,.055); }
.jonas-airflow-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:20px; }
.jonas-airflow-head h3 { margin:4px 0 0; color:var(--jonas-navy); font-size:1.2rem; font-weight:900; letter-spacing:-.025em; }
.jonas-airflow-badge { display:inline-flex; align-items:center; gap:7px; padding:8px 11px; border-radius:999px; color:var(--jonas-blue); background:#eef8fd; border:1px solid #d5edf9; font-size:.66rem; font-weight:850; }
.jonas-airflow-grid { display:grid; grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr) 34px minmax(0,1fr); gap:8px; align-items:stretch; }
.jonas-airflow-node { position:relative; padding:19px; border:1px solid #dbe7ef; border-radius:17px; background:linear-gradient(180deg,#fbfdff,#f7fafc); }
.jonas-airflow-node::after { content:""; position:absolute; left:0; top:18px; bottom:18px; width:3px; border-radius:999px; background:var(--jonas-blue); }
.jonas-airflow-node.is-transfer::after { background:#7498b6; }
.jonas-airflow-node.is-extraction::after { background:var(--jonas-red); }
.jonas-airflow-icon { width:39px; height:39px; display:grid; place-items:center; margin-bottom:14px; border-radius:12px; color:var(--jonas-blue); background:#eaf6fc; }
.jonas-airflow-node.is-transfer .jonas-airflow-icon { color:#536f88; background:#edf2f6; }
.jonas-airflow-node.is-extraction .jonas-airflow-icon { color:var(--jonas-red); background:#fff0f4; }
.jonas-airflow-node-title { display:flex; align-items:center; gap:8px; }
.jonas-airflow-node-title span { color:#9aa9b8; font-size:.62rem; font-weight:900; }
.jonas-airflow-node-title strong { color:var(--jonas-navy); font-size:.82rem; font-weight:900; }
.jonas-airflow-node p { min-height:36px; margin:7px 0 13px; color:#78899b; font-size:.68rem; line-height:1.45; }
.jonas-airflow-node ul { list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.jonas-airflow-node li { display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:8px; border-top:1px solid #e7edf2; color:#758799; font-size:.64rem; }
.jonas-airflow-node li strong { color:#344c63; font-size:.65rem; text-align:right; }
.jonas-airflow-connector { display:grid; place-items:center; color:#8db7ce; font-size:1rem; }

.jonas-typology-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.jonas-typology-card { padding:18px; border:1px solid #dce6ee; border-radius:17px; background:linear-gradient(180deg,#fff,#f8fbfd); }
.jonas-typology-card-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:13px; }
.jonas-typology-id { overflow:hidden; color:var(--jonas-navy); font-size:.76rem; font-weight:900; white-space:nowrap; text-overflow:ellipsis; }
.jonas-estimated-tag,.jonas-verified-tag { flex:none; padding:5px 7px; border-radius:999px; font-size:.55rem; font-weight:850; }
.jonas-estimated-tag { color:#926100; background:#fff5d9; }
.jonas-verified-tag { color:#176f50; background:#e8f8f1; }
.jonas-typology-surface { display:block; color:var(--jonas-blue); font-size:1.55rem; font-weight:900; letter-spacing:-.04em; }
.jonas-typology-surface small { font-size:.63rem; color:#8393a4; }
.jonas-typology-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin:14px 0; }
.jonas-typology-stats span { display:flex; min-width:0; align-items:center; justify-content:center; gap:5px; padding:8px 5px; border-radius:9px; background:#eef4f8; color:#718398; font-size:.57rem; text-align:center; }
.jonas-typology-stats i { color:#6c91aa; }
.jonas-typology-stats b { color:#334c62; }
.jonas-typology-flow { display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:12px; border-top:1px solid #e4ebf1; }
.jonas-typology-flow span { color:#7a8b9c; font-size:.62rem; }
.jonas-typology-flow strong { color:var(--jonas-navy); font-size:.76rem; }

.jonas-report-divider { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:24px 0 12px; padding:0 3px; }
.jonas-report-divider > div { display:flex; flex-direction:column; gap:3px; }
.jonas-report-divider strong { color:var(--jonas-navy); font-size:1rem; }
.jonas-report-divider > span { color:#8797a7; font-size:.68rem; }

/* Informe en pantalla: más cercano a un documento premium Jonas */
.preview-a4 { position:relative; overflow:hidden; border-top:0 !important; border-radius:14px !important; box-shadow:0 18px 55px rgba(32,40,69,.10) !important; }
.preview-a4::before { content:""; position:absolute; left:0; top:0; right:0; height:5px; background:linear-gradient(90deg,var(--jonas-red) 0 18%,var(--jonas-navy) 18% 68%,var(--jonas-blue) 68% 100%); }
.brand-logo--report { object-fit:contain; }

@media (max-width: 1380px) {
  .jonas-result-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .jonas-result-kpis article:nth-child(4),.jonas-result-kpis article:nth-child(5) { min-height:112px; }
  .jonas-typology-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 1100px) {
  .jonas-result-hero { grid-template-columns:1fr; }
  .jonas-result-seal { display:none; }
  .jonas-airflow-grid { grid-template-columns:1fr; }
  .jonas-airflow-connector { min-height:24px; transform:rotate(90deg); }
}
@media (max-width: 768px) {
  .jonas-result-hero { padding:25px 21px; border-radius:20px; }
  .jonas-result-kpis,.jonas-typology-grid { grid-template-columns:1fr 1fr; }
  .jonas-result-kpis article { min-height:108px; }
  .jonas-airflow-card,.jonas-typology-overview { padding:18px; }
  .jonas-airflow-head,.jonas-report-divider { flex-direction:column; align-items:flex-start; }
}
@media (max-width: 520px) {
  .jonas-result-kpis,.jonas-typology-grid { grid-template-columns:1fr; }
  .jonas-result-actions { display:grid; grid-template-columns:1fr; }
}

@media print {
  .jonas-result-experience,.jonas-report-divider { display:none !important; }
  .preview-a4::before { display:none !important; }
}

/* ==========================================================
   V2.6 · Revisión editable de extracción IA
   ========================================================== */
.jonas-review-card { overflow:visible; min-height:0; }
.jonas-review-hero { display:grid; grid-template-columns:minmax(0,1fr) 170px; gap:28px; align-items:center; padding:30px 32px; color:#fff; background:linear-gradient(125deg,var(--jonas-navy) 0%,#18385d 55%,var(--jonas-blue) 100%); border-radius:22px 22px 0 0; position:relative; overflow:hidden; }
.jonas-review-hero::after { content:""; position:absolute; width:330px; height:330px; right:-130px; top:-180px; border:1px solid rgba(255,255,255,.13); border-radius:50%; box-shadow:0 0 0 52px rgba(255,255,255,.025),0 0 0 105px rgba(255,255,255,.018); }
.jonas-review-kicker { display:inline-flex; align-items:center; gap:8px; margin-bottom:11px; color:#b8ddf1; font-size:.67rem; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.jonas-review-kicker i { color:#ff315c; }
.jonas-review-hero h2 { max-width:720px; margin:0 0 9px; color:#fff; font-size:clamp(1.55rem,2.4vw,2.35rem); font-weight:880; line-height:1.05; letter-spacing:-.035em; }
.jonas-review-hero p { max-width:780px; margin:0; color:#c6d6e5; font-size:.82rem; line-height:1.6; }
.jonas-review-status { position:relative; z-index:2; min-height:132px; padding:18px; border:1px solid rgba(255,255,255,.15); border-radius:20px; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; background:rgba(255,255,255,.07); backdrop-filter:blur(8px); }
.jonas-review-status-icon { width:38px; height:38px; display:grid; place-items:center; margin-bottom:7px; border-radius:12px; background:rgba(74,193,231,.15); color:#8fd8f2; }
.jonas-review-status strong { color:#fff; font-size:1.7rem; line-height:1; }
.jonas-review-status > span:last-child { margin-top:5px; color:#bcd0df; font-size:.68rem; font-weight:750; }
.jonas-review-form { background:#f5f8fb; padding:18px; border-radius:0 0 22px 22px; }
.jonas-review-section { margin-bottom:16px; padding:20px; border:1px solid #dce7ef; border-radius:18px; background:#fff; box-shadow:0 7px 22px rgba(32,40,69,.035); }
.jonas-review-section--warning { border-color:#f2d7a9; background:#fffcf5; }
.jonas-review-section-head { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:17px; }
.jonas-review-section-head > div:first-child { display:flex; align-items:center; gap:11px; }
.jonas-review-section-head > div:first-child > span { width:32px; height:32px; flex:0 0 auto; display:grid; place-items:center; border-radius:10px; background:#eaf6fc; color:var(--jonas-blue); font-size:.72rem; font-weight:900; }
.jonas-review-section-head strong { display:block; color:var(--jonas-navy); font-size:.92rem; line-height:1.2; }
.jonas-review-section-head small { display:block; margin-top:3px; color:#8494a6; font-size:.67rem; }
.jonas-review-source,.jonas-review-editable { display:inline-flex; align-items:center; gap:7px; padding:7px 10px; border-radius:999px; background:#eef8fc; color:var(--jonas-blue); font-size:.62rem; font-weight:850; white-space:nowrap; }
.jonas-review-editable { background:#f1f3f8; color:#596c82; }
.jonas-review-filebar { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:16px; padding:12px 14px; border:1px solid #e2eaf1; border-radius:13px; background:#f9fbfd; }
.jonas-review-filebar > div { display:flex; align-items:center; gap:10px; min-width:0; }
.jonas-review-filebar > div > i { color:#d61a43; font-size:1.08rem; }
.jonas-review-filebar span > small,.jonas-review-filebar span > strong { display:block; }
.jonas-review-filebar span > small { color:#8b9aab; font-size:.58rem; text-transform:uppercase; letter-spacing:.07em; font-weight:850; }
.jonas-review-filebar span > strong { max-width:420px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#42566d; font-size:.72rem; }
.jonas-review-warning,.jonas-review-ok { flex:0 0 auto; display:inline-flex !important; align-items:center; gap:6px; padding:7px 9px; border-radius:9px; font-size:.61rem !important; font-weight:850; }
.jonas-review-warning { background:#fff3d7; color:#9a6500; }
.jonas-review-ok { background:#e9f8ef; color:#27744a; }
.jonas-review-project-grid,.jonas-review-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:11px; }
.jonas-review-field { display:block; margin:0; min-width:0; }
.jonas-review-field > span { display:flex; align-items:center; justify-content:space-between; min-height:18px; margin:0 0 6px; color:#5e7187; font-size:.64rem; font-weight:850; }
.jonas-review-field > span em { color:#98a5b2; font-style:normal; font-weight:700; font-size:.58rem; }
.jonas-review-field input,.jonas-review-field textarea { width:100%; border:1px solid #d6e1ea; border-radius:10px; background:#fcfdff; color:#273a51; outline:0; font-size:.75rem; font-weight:650; transition:.18s ease; }
.jonas-review-field input { min-height:40px; padding:9px 11px; }
.jonas-review-field textarea { resize:vertical; min-height:60px; padding:10px 11px; line-height:1.45; }
.jonas-review-field input:focus,.jonas-review-field textarea:focus { border-color:var(--jonas-cyan); box-shadow:0 0 0 3px rgba(0,134,205,.09); background:#fff; }
.jonas-review-field--number input { color:var(--jonas-navy); font-size:.88rem; font-weight:900; }
.jonas-review-project-grid .span-2,.jonas-review-grid .span-2 { grid-column:span 2; }
.jonas-review-grid .span-3 { grid-column:span 3; }
.jonas-review-models { display:grid; gap:14px; }
.jonas-review-model { border:1px solid #dce7ef; border-radius:16px; background:#fbfdff; overflow:hidden; }
.jonas-review-model-head { min-height:64px; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:13px 15px; border-bottom:1px solid #e3ebf2; background:linear-gradient(180deg,#fff,#f7fafc); }
.jonas-review-model-title { display:flex; align-items:center; gap:10px; }
.jonas-review-model-index { width:34px; height:34px; display:grid; place-items:center; border-radius:10px; background:linear-gradient(135deg,var(--jonas-blue),var(--jonas-cyan)); color:#fff; font-size:.67rem; font-weight:900; box-shadow:0 7px 13px rgba(5,91,161,.15); }
.jonas-review-model-title strong { display:block; color:var(--jonas-navy); font-size:.84rem; }
.jonas-review-model-title small { display:block; margin-top:2px; color:#91a0af; font-size:.61rem; }
.jonas-review-grid { padding:15px; }
.jonas-review-check { grid-column:span 2; display:flex; gap:10px; align-items:flex-start; min-height:58px; padding:10px 12px; border:1px solid #f0d28d; border-radius:11px; background:#fffaf0; cursor:pointer; }
.jonas-review-check input { margin-top:4px; accent-color:var(--jonas-blue); }
.jonas-review-check > span { display:block; }
.jonas-review-check i { margin-right:6px; color:#b67a00; }
.jonas-review-check strong { color:#71531b; font-size:.69rem; }
.jonas-review-check small { display:block; margin-top:3px; color:#9a8053; font-size:.61rem; line-height:1.35; }
.jonas-review-omitted { display:grid; gap:8px; }
.jonas-review-omitted > div { display:flex; gap:10px; padding:10px 12px; border-radius:11px; background:#fff7e7; color:#72531e; font-size:.67rem; }
.jonas-review-omitted i { margin-top:2px; color:#c7870e; }
.jonas-review-omitted strong { display:block; margin-bottom:2px; }
.jonas-review-actions { position:sticky; bottom:12px; z-index:5; display:flex; justify-content:space-between; gap:16px; align-items:center; padding:13px; border:1px solid #d7e2eb; border-radius:16px; background:rgba(255,255,255,.94); box-shadow:0 15px 35px rgba(32,40,69,.12); backdrop-filter:blur(13px); }
.jonas-review-secondary,.jonas-review-primary { min-height:42px; display:inline-flex; align-items:center; justify-content:center; gap:8px; border-radius:11px; padding:10px 14px; text-decoration:none !important; font-size:.70rem; font-weight:850; }
.jonas-review-secondary { border:1px solid #d5e0e9; background:#fff; color:#5a6d82 !important; }
.jonas-review-primary { border:0; background:linear-gradient(115deg,var(--jonas-blue),var(--jonas-cyan)); color:#fff; box-shadow:0 9px 20px rgba(5,91,161,.18); }
.jonas-review-confirm-copy { display:flex; align-items:center; justify-content:flex-end; gap:14px; margin-left:auto; }
.jonas-review-confirm-copy > span { color:#7d8d9e; font-size:.61rem; }
.jonas-review-confirm-copy > span i { color:var(--jonas-blue); margin-right:4px; }

@media (max-width:1100px) {
  .jonas-review-hero { grid-template-columns:1fr; }
  .jonas-review-status { min-height:96px; flex-direction:row; gap:10px; }
  .jonas-review-status-icon { margin:0; }
  .jonas-review-project-grid,.jonas-review-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .jonas-review-grid .span-3 { grid-column:span 2; }
}
@media (max-width:768px) {
  .jonas-review-form { padding:10px; }
  .jonas-review-hero { padding:24px 20px; }
  .jonas-review-section { padding:15px; }
  .jonas-review-section-head,.jonas-review-filebar,.jonas-review-actions,.jonas-review-confirm-copy { align-items:stretch; flex-direction:column; }
  .jonas-review-section-head { gap:10px; }
  .jonas-review-source,.jonas-review-editable { align-self:flex-start; }
  .jonas-review-project-grid,.jonas-review-grid { grid-template-columns:1fr; }
  .jonas-review-project-grid .span-2,.jonas-review-grid .span-2,.jonas-review-grid .span-3,.jonas-review-check { grid-column:span 1; }
  .jonas-review-filebar span > strong { max-width:240px; }
  .jonas-review-primary,.jonas-review-secondary,.jonas-review-confirm-copy { width:100%; }
}


/* ==========================================================
   V2.7 · Cumplimiento contractual: datos completos y trazabilidad
   ========================================================== */
.jonas-review-project-grid .span-3 { grid-column:span 3; }
.jonas-contract-subsection { margin:0 15px 15px; padding:14px; border:1px solid #dce7ef; border-radius:14px; background:#fff; }
.jonas-contract-subsection-head { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:12px; }
.jonas-contract-subsection-head > div { display:flex; align-items:center; gap:9px; }
.jonas-contract-subsection-head i { width:30px; height:30px; display:grid; place-items:center; border-radius:9px; background:#eaf6fc; color:var(--jonas-blue); }
.jonas-contract-subsection-head strong { display:block; color:var(--jonas-navy); font-size:.76rem; }
.jonas-contract-subsection-head small { display:block; margin-top:2px; color:#8999aa; font-size:.60rem; }
.jonas-contract-subsection-head > span { flex:0 0 auto; padding:6px 9px; border-radius:999px; background:#f1f5f8; color:#65778a; font-size:.58rem; font-weight:850; }
.jonas-contract-table-wrap { width:100%; overflow-x:auto; border:1px solid #e1e9f0; border-radius:11px; }
.jonas-contract-table { width:100%; min-width:1180px; border-collapse:collapse; background:#fff; }
.jonas-contract-table th { padding:8px 7px; background:#f4f8fb; border-bottom:1px solid #dfe8ef; color:#52677d; font-size:.56rem; letter-spacing:.025em; text-transform:uppercase; white-space:nowrap; }
.jonas-contract-table td { padding:6px; border-bottom:1px solid #edf2f6; vertical-align:top; }
.jonas-contract-table tbody tr:last-child td { border-bottom:0; }
.jonas-contract-table input,.jonas-contract-table textarea { width:100%; min-width:76px; border:1px solid #d8e2ea; border-radius:7px; background:#fcfdff; color:#33495f; font-size:.62rem; outline:0; padding:6px 7px; }
.jonas-contract-table textarea { resize:vertical; min-height:46px; }
.jonas-contract-table input:focus,.jonas-contract-table textarea:focus { border-color:var(--jonas-cyan); box-shadow:0 0 0 2px rgba(0,134,205,.08); }
.jonas-contract-empty { display:flex; align-items:flex-start; gap:8px; margin-top:10px; padding:9px 10px; border-radius:9px; background:#f6f9fb; color:#728397; font-size:.61rem; line-height:1.45; }
.jonas-contract-empty i { color:var(--jonas-blue); margin-top:2px; }
.jonas-contract-add { margin-top:10px; min-height:34px; padding:7px 10px; border:1px solid #cfe1ec; border-radius:9px; background:#f4fbff; color:var(--jonas-blue); font-size:.61rem; font-weight:850; }
.jonas-contract-add:hover { background:#eaf7fd; }
.jonas-contract-audit { margin:14px 0 18px; padding:14px; border:1px solid #dce7ef; border-radius:12px; background:#f9fbfd; }
.jonas-contract-audit h6 { margin:0 0 8px; color:var(--jonas-navy); font-size:.76rem; font-weight:900; }
.jonas-contract-audit-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.jonas-contract-audit-item { padding:8px 9px; border:1px solid #e2eaf1; border-radius:8px; background:#fff; }
.jonas-contract-audit-item span { display:block; color:#8797a7; font-size:.53rem; text-transform:uppercase; letter-spacing:.04em; font-weight:850; }
.jonas-contract-audit-item strong { display:block; margin-top:3px; color:#354b61; font-size:.65rem; }
@media (max-width:1100px) {
  .jonas-review-project-grid .span-3 { grid-column:span 2; }
  .jonas-contract-audit-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:768px) {
  .jonas-review-project-grid .span-3 { grid-column:span 1; }
  .jonas-contract-subsection-head { align-items:flex-start; flex-direction:column; }
  .jonas-contract-audit-grid { grid-template-columns:1fr; }
}
@media print {
  .jonas-contract-add { display:none !important; }
}
.jonas-contract-subsection--compact { background:#fbfdff; }
.jonas-contract-table--locations { min-width:520px; }
.jonas-trace-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; }
.jonas-trace-grid > div { padding:8px 9px; border:1px dashed #cddce8; border-radius:9px; background:#f8fbfd; }
.jonas-trace-grid span { display:block; color:#8b9aaa; font-size:.52rem; text-transform:uppercase; letter-spacing:.04em; font-weight:850; }
.jonas-trace-grid strong { display:block; margin-top:3px; color:#4f657a; font-size:.60rem; line-height:1.35; }
@media (max-width:1100px){.jonas-trace-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:768px){.jonas-trace-grid{grid-template-columns:1fr;}}
.jonas-report-pending { margin-top:14px; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:14px 16px; border:1px solid #d8e5ee; border-radius:14px; background:#fff; box-shadow:0 8px 22px rgba(32,40,69,.05); }
.jonas-report-pending > div { display:flex; align-items:center; gap:11px; }
.jonas-report-pending > div > i { width:36px; height:36px; display:grid; place-items:center; border-radius:10px; background:#eaf6fc; color:var(--jonas-blue); }
.jonas-report-pending strong { display:block; color:var(--jonas-navy); font-size:.73rem; }
.jonas-report-pending small { display:block; margin-top:2px; color:#7d8e9f; font-size:.61rem; }
.jonas-report-pending a { flex:0 0 auto; display:inline-flex; align-items:center; gap:7px; padding:8px 10px; border:1px solid #d6e1e9; border-radius:9px; background:#f8fafc; color:#52687d; text-decoration:none; font-size:.61rem; font-weight:850; }
@media(max-width:768px){.jonas-report-pending{align-items:stretch;flex-direction:column}.jonas-report-pending a{justify-content:center}}


/* ============================================================
   V2.8 · Zonificación automática MINVU / NCh1079
   ============================================================ */
.jonas-zone-panel{
  border:1px solid #d8e5ee;
  border-radius:14px;
  background:linear-gradient(135deg,#f9fcfe 0%,#f3f8fc 100%);
  padding:12px 13px;
}
.jonas-zone-panel-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid #e2ebf2;
}
.jonas-zone-panel-head>div{display:flex;align-items:center;gap:10px;min-width:0}
.jonas-zone-panel-head>div>i{
  width:34px;height:34px;display:grid;place-items:center;border-radius:10px;
  background:#eaf5fb;color:var(--jonas-blue);font-size:.82rem;
}
.jonas-zone-panel-head strong{display:block;color:var(--jonas-navy);font-size:.70rem}
.jonas-zone-panel-head small{display:block;color:#7d8e9f;font-size:.56rem;margin-top:2px}
.jonas-zone-badge{
  flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:999px;
  background:#eef3f7;color:#687d90;font-size:.54rem;font-weight:850;letter-spacing:.01em;
}
.jonas-zone-panel[data-status="resuelta"] .jonas-zone-badge{background:#e8f7ef;color:#287951}
.jonas-zone-panel[data-status="requiere_ubicacion_exacta"] .jonas-zone-badge{background:#fff4dc;color:#986412}
.jonas-zone-panel[data-status="comuna_no_encontrada"] .jonas-zone-badge{background:#fdecec;color:#a74444}
.jonas-zone-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.jonas-zone-meta{
  grid-column:1/-1;display:flex;justify-content:space-between;gap:12px;align-items:flex-start;
  padding:8px 10px;border-radius:10px;background:#fff;border:1px dashed #cadbe7;
}
.jonas-zone-meta span{color:#52697d;font-size:.57rem;font-weight:800}
.jonas-zone-meta small{color:#7b8d9e;font-size:.55rem;text-align:right;line-height:1.4}
@media(max-width:768px){
  .jonas-zone-panel-head{align-items:flex-start;flex-direction:column}
  .jonas-zone-grid{grid-template-columns:1fr}
  .jonas-zone-meta{grid-column:1;flex-direction:column}
  .jonas-zone-meta small{text-align:left}
}
@media print{.jonas-zone-panel{break-inside:avoid}}

.jonas-zone-trace{
  grid-column:1/-1;display:flex;align-items:flex-start;gap:8px;padding:8px 10px;
  border-radius:10px;background:#eef6fb;color:#5f7487;font-size:.55rem;line-height:1.4;
}
.jonas-zone-trace i{margin-top:2px;color:var(--jonas-blue)}
.jonas-zone-trace strong{display:block;color:var(--jonas-navy);font-size:.56rem;margin-bottom:2px}

/* === V3.0 · Lector experto PDF/DWG === */
.jonas-reader-quality{
  margin:16px 0 22px;
  border:1px solid rgba(54,91,119,.18);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(5,91,161,.055),rgba(0,134,205,.025));
  padding:16px 18px;
}
.jonas-reader-quality-main{display:flex;align-items:center;gap:13px;min-width:0}
.jonas-reader-quality-icon{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:#202845;color:#fff;flex:0 0 auto}
.jonas-reader-quality-main>div{display:grid;gap:2px;min-width:0}
.jonas-reader-quality-main small{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#7498b6;font-weight:800}
.jonas-reader-quality-main strong{font-size:1rem;color:#202845}
.jonas-reader-quality-main span{font-size:.82rem;color:#5f6f7d}
.jonas-reader-quality-files{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.jonas-reader-quality-files span{display:inline-flex;align-items:center;gap:7px;padding:6px 9px;border-radius:999px;background:#fff;border:1px solid rgba(54,91,119,.14);font-size:.77rem;color:#425466;max-width:100%}
.jonas-reader-quality-files b{font-size:.66rem;letter-spacing:.06em;color:#055ba1}
.jonas-reader-findings{margin-top:12px;border-top:1px solid rgba(54,91,119,.12);padding-top:10px}
.jonas-reader-findings summary{cursor:pointer;font-weight:700;color:#365b77;font-size:.82rem;list-style:none;display:flex;align-items:center;gap:7px}
.jonas-reader-findings summary::-webkit-details-marker{display:none}
.jonas-reader-findings>div{padding-top:8px;display:grid;gap:6px}
.jonas-reader-findings p{margin:0;padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.8);font-size:.79rem;color:#52616d}
.jonas-reader-findings p.is-block{background:rgba(203,8,57,.06);color:#8e1733}
@media (max-width:720px){.jonas-reader-quality{padding:14px}.jonas-reader-quality-main{align-items:flex-start}.jonas-reader-quality-main span{line-height:1.35}}

/* JONAS_BRAND_2026_OVERRIDE */
/* ==========================================================
   JONAS · BRAND SYSTEM 2026
   Official palette supplied by Jonas
   Navy  #003366
   Pink  #FF3366
   Cyan  #66CCFF
   ========================================================== */

:root,
html:root{
  --jonas-navy:#003366 !important;
  --jonas-blue:#003366 !important;
  --jonas-cyan:#66CCFF !important;
  --jonas-pink:#FF3366 !important;
  --jonas-accent:#FF3366 !important;
  --jonas-primary:#003366 !important;
  --jonas-secondary:#66CCFF !important;
  --jonas-brand-action:#FF3366 !important;
  --jonas-bg:#F6F9FC !important;
  --jonas-surface:#FFFFFF !important;
  --jonas-border:#D9E4EC !important;
  --jonas-muted:#66798C !important;
  --jonas-text:#183248 !important;
  --jonas-shadow:0 14px 38px rgba(0,51,102,.10) !important;
}

/* Base */
html,body{
  background:#F6F9FC;
  color:#183248;
}
body{
  accent-color:#FF3366;
}
::selection{
  background:#66CCFF;
  color:#003366;
}
a:not(.btn):not(.admin-btn):not(.jonas-cta-primary):not(.jonas-result-primary):not(.jonas-review-primary){
  color:#003366;
}
a:not(.btn):hover{
  color:#FF3366;
}

/* Logos */
img[src*="jonas-logo"]{
  object-fit:contain;
}
.jonas-brand img,
.jonas-nav-brand img,
.admin-brand img,
header .brand img,
header .logo img{
  width:auto !important;
  max-width:230px !important;
  max-height:54px !important;
  object-fit:contain !important;
}
.jonas-login-logo img,
.jonas-login-brand img{
  width:auto !important;
  max-width:min(340px,82vw) !important;
  max-height:92px !important;
}

/* Dark brand surfaces */
.jonas-nav,
.jonas-navbar,
.jonas-topbar,
.jonas-login-side,
.jonas-dashboard-hero,
.jonas-result-hero,
.jonas-review-hero,
.admin-sidebar,
header.jonas-header,
.header-jonas{
  background:linear-gradient(135deg,#003366 0%,#002A55 68%,#001F3D 100%) !important;
}
.jonas-dashboard-hero,
.jonas-result-hero,
.jonas-review-hero{
  box-shadow:0 18px 46px rgba(0,51,102,.16);
}

/* Brand action */
.jonas-cta-primary,
.jonas-review-primary,
.jonas-result-primary,
.jonas-login-submit,
.admin-btn.primary,
.admin-btn-primary,
.btn.btn-primary,
.btn-primary,
button.btn-primary,
button[type="submit"].jonas-primary,
.r44bf-buttons button,
#r44bbStageActions button[type="submit"],
#r44bfStage4Actions button{
  background:#FF3366 !important;
  border-color:#FF3366 !important;
  color:#fff !important;
  box-shadow:0 8px 20px rgba(255,51,102,.20) !important;
}
.jonas-cta-primary:hover,
.jonas-review-primary:hover,
.jonas-result-primary:hover,
.jonas-login-submit:hover,
.admin-btn.primary:hover,
.admin-btn-primary:hover,
.btn-primary:hover,
.r44bf-buttons button:hover{
  background:#E52958 !important;
  border-color:#E52958 !important;
  transform:translateY(-1px);
}

/* Secondary / outline */
.jonas-cta-secondary,
.jonas-review-secondary,
.jonas-result-secondary,
.btn.secondary,
.btn-outline-primary,
.admin-btn.secondary,
.r44bf-buttons a{
  background:#fff !important;
  color:#003366 !important;
  border-color:#B7CAD9 !important;
}
.jonas-cta-secondary:hover,
.jonas-review-secondary:hover,
.jonas-result-secondary:hover,
.btn.secondary:hover,
.btn-outline-primary:hover,
.admin-btn.secondary:hover,
.r44bf-buttons a:hover{
  color:#FF3366 !important;
  border-color:#FF3366 !important;
  background:#FFF7FA !important;
}

/* Active navigation */
.jonas-nav a.active,
.jonas-nav-button.active,
.admin-nav a.active,
.admin-nav a[aria-current="page"],
.nav-link.active{
  background:rgba(102,204,255,.15) !important;
  color:#fff !important;
  box-shadow:inset 3px 0 0 #FF3366 !important;
}
.admin-nav a:hover,
.jonas-nav-button:hover{
  background:rgba(102,204,255,.10) !important;
  color:#fff !important;
}

/* Titles and key values */
.jonas-workspace-title h1,
.jonas-section-heading h2,
.jonas-panel-head h3,
.jonas-module-featured h3,
.jonas-metric strong,
.jonas-tech-kpi input,
.jonas-review-section-head strong,
.jonas-review-model-title strong,
.jonas-typology-id,
.jonas-typology-flow strong,
.jonas-report-divider strong,
.jonas-zone-panel-head strong,
.admin-title,
.product-name{
  color:#003366 !important;
}

/* Cyan support color */
.jonas-module-badge,
.jonas-standard-pill,
.jonas-review-source,
.jonas-review-editable,
.jonas-dropzone-icon,
.jonas-review-section-head > div:first-child > span,
.badge.blue{
  background:#EAF8FF !important;
  color:#003366 !important;
  border-color:#A9E3FF !important;
}
.jonas-orbit i,
.jonas-typology-surface,
.jonas-engine-preview-foot b{
  color:#009FDC !important;
}
.jonas-review-model-index{
  background:linear-gradient(135deg,#003366 0%,#66CCFF 100%) !important;
  box-shadow:0 8px 18px rgba(0,51,102,.18) !important;
}

/* Steps / workflow */
.jonas-step.active .step-num,
.jonas-step.is-active .step-num,
.r44an-step.active,
.r44an-step.is-active,
.r44-stage.active,
.step.active .step-num{
  background:#FF3366 !important;
  color:#fff !important;
  border-color:#FF3366 !important;
}
.jonas-step.done .step-num,
.jonas-step.is-done .step-num{
  background:#003366 !important;
  color:#fff !important;
}
.r44an-progress,
.progress-bar{
  background:linear-gradient(90deg,#003366,#66CCFF,#FF3366) !important;
}

/* Forms */
.form-control:focus,
.form-select:focus,
.admin-input:focus,
.admin-select:focus,
.admin-textarea:focus,
.jonas-field input:focus,
.jonas-field select:focus,
.jonas-review-field input:focus,
.jonas-review-field textarea:focus{
  border-color:#66CCFF !important;
  box-shadow:0 0 0 .2rem rgba(102,204,255,.22) !important;
  outline:0 !important;
}
input[type="checkbox"],
input[type="radio"]{
  accent-color:#FF3366 !important;
}

/* Cards */
.jonas-panel,
.jonas-card,
.admin-card,
.form-section,
.side-card,
.toolbar,
.r44-card{
  border-color:#D9E4EC !important;
  box-shadow:0 8px 24px rgba(0,51,102,.06);
}

/* Tables */
.header-jonas,
.header-jonas th,
table .header-jonas th{
  background:#003366 !important;
  color:#fff !important;
}
.admin-table th{
  background:#F0F6FA !important;
  color:#003366 !important;
  border-bottom-color:#D5E3EC !important;
}
.admin-table tbody tr:hover{
  background:#F6FBFE !important;
}

/* Loaders / progress */
.spin,
.jonas-spinner,
.loader-spinner{
  border-color:#C9EFFF !important;
  border-top-color:#FF3366 !important;
}
#loader{
  color:#003366 !important;
}
.jonas-loader-metric strong{
  color:#66CCFF !important;
}

/* Existing R44 controls */
#r44bbStageActions,
#r44bfStage4Actions{
  border-color:#D5E3EC !important;
  box-shadow:0 18px 46px rgba(0,51,102,.14) !important;
}
#r44bbStageActions .copy strong,
#r44bfStage4Actions .copy strong{
  color:#003366 !important;
}

/* Keep semantic colors semantic: success / warning / danger remain green/amber/red.
   Branding is applied to structural UI, navigation, CTAs and active states. */

@media (max-width:760px){
  .jonas-brand img,
  .jonas-nav-brand img,
  .admin-brand img{
    max-width:190px !important;
    max-height:46px !important;
  }
}


/* Reading evidence, source file and status occupy separate grid cells. */
.jonas-review-filebar{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:start;gap:10px 16px}
.jonas-review-filebar>div{min-width:0}
.jonas-review-filebar>div>span{min-width:0}
.jonas-review-filebar span>strong{max-width:none;white-space:normal;overflow-wrap:anywhere}
.jonas-review-filebar>.jonas-review-warning,.jonas-review-filebar>.jonas-review-ok{grid-column:1 / -1;justify-self:start;max-width:100%;box-sizing:border-box;white-space:normal;overflow-wrap:anywhere}
@media(max-width:767px){.jonas-review-filebar{grid-template-columns:minmax(0,1fr)}}
