:root{
  --dtb-green:#2e7d32;
  --dtb-green-dark:#1f5e25;
  --dtb-green-soft:#eaf6ea;
  --dtb-lime:#8bc34a;
  --gov-blue:#3366cc;
  --gov-blue-dark:#264ea3;
  --bg:#f4f7f4;
  --surface:#ffffff;
  --text:#10231a;
  --muted:#617268;
  --border:#d7e4d7;
  --shadow:0 10px 28px rgba(16,35,26,.08);
  --radius:18px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:linear-gradient(180deg,#f8fbf8 0%,#f1f5f1 100%);color:var(--text);}
.app-shell-body{min-height:100vh;}
.gov-band{background:linear-gradient(90deg,var(--gov-blue),var(--gov-blue-dark));color:#fff;padding:8px 0;}
.gov-band__inner{max-width:1440px;margin:0 auto;padding:0 18px;display:flex;gap:12px;align-items:center;}
.gov-band__mark{font-weight:900;letter-spacing:.08em;}
.gov-band__text{font-size:.92rem;opacity:.96;}
.app-shell{display:grid;grid-template-columns:290px 1fr;min-height:calc(100vh - 40px);}
.sidebar{background:linear-gradient(180deg,#1f5e25 0%,#2e7d32 100%);color:#fff;padding:22px 18px;display:flex;flex-direction:column;gap:22px;}
.sidebar__brand{display:flex;gap:12px;align-items:center;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.14);}
.sidebar__logo{width:58px;height:auto;border-radius:12px;background:#fff;padding:4px;}
.sidebar__eyebrow{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;opacity:.86;font-weight:800;}
.sidebar__title{font-weight:900;font-size:1.25rem;line-height:1.1;}
.sidebar__subtitle{font-size:.88rem;opacity:.88;margin-top:2px;}
.sidebar__nav{display:grid;gap:8px;}
.nav-link{display:flex;gap:10px;align-items:center;padding:13px 14px;border-radius:14px;color:#fff;text-decoration:none;font-weight:800;background:rgba(255,255,255,.04);border:1px solid transparent;}
.nav-link:hover{background:rgba(255,255,255,.10);}
.nav-link--active{background:#fff;color:var(--dtb-green-dark);box-shadow:0 8px 18px rgba(0,0,0,.12);}
.sidebar__footer{margin-top:auto;}
.status-card{background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.16);border-radius:18px;padding:14px;}
.status-card__label{font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;font-weight:800;opacity:.82;}
.status-card__value{font-weight:900;margin-top:5px;}
.status-card__small{font-size:.84rem;opacity:.88;margin-top:4px;line-height:1.4;}
.app-main{display:flex;flex-direction:column;min-width:0;}
.topbar-app{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10;backdrop-filter:blur(8px);}
.topbar-app__eyebrow{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--dtb-green);font-weight:800;}
.topbar-app__title{font-size:1.18rem;font-weight:900;color:var(--dtb-green-dark);}
.topbar-app__actions{display:flex;gap:8px;flex-wrap:wrap;}
.app-content{padding:24px;}
.page,.container,.page--home{max-width:none;margin:0;padding:0;}
.pill{display:inline-flex;align-items:center;justify-content:center;padding:9px 14px;border-radius:999px;font-size:.84rem;font-weight:800;border:1px solid var(--border);background:#fff;color:var(--text);text-decoration:none;white-space:nowrap;}
.pill--link{color:var(--gov-blue-dark);}
.pill--link:hover{background:#eef3ff;border-color:#c9d7f2;}
.hero__kicker{display:inline-block;background:#e8f3ff;color:var(--gov-blue-dark);border-radius:999px;padding:7px 12px;font-size:.8rem;font-weight:800;margin-bottom:12px;}
.welcome-card{display:grid;grid-template-columns:1.5fr .9fr;gap:18px;background:linear-gradient(135deg,#ffffff 0%,#f8fcf8 100%);border:1px solid var(--border);border-radius:24px;padding:24px;box-shadow:var(--shadow);}
.welcome-card h1{margin:0 0 10px 0;font-size:2rem;line-height:1.1;color:var(--dtb-green-dark);}
.welcome-card p{margin:0;color:var(--muted);line-height:1.55;max-width:760px;}
.welcome-card__side{display:flex;align-items:stretch;}
.mini-panel{width:100%;background:linear-gradient(135deg,var(--dtb-green),var(--dtb-green-dark));color:#fff;border-radius:20px;padding:18px;}
.mini-panel__title{font-size:.95rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px;}
.mini-panel__list{margin:0;padding-left:18px;}
.mini-panel__list li{margin-bottom:8px;line-height:1.4;}
.section-space{margin-top:20px;}
.card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);}
.card--panel{background:linear-gradient(180deg,#ffffff 0%,#fbfdfb 100%);}
.card--soft{background:linear-gradient(180deg,#ffffff 0%,#f7faf7 100%);}
.card__title{font-weight:900;letter-spacing:.2px;color:var(--dtb-green-dark);font-size:1.02rem;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--border);}
.card__big-number{font-size:2rem;font-weight:900;color:var(--dtb-green-dark);line-height:1;}
.small{color:var(--muted);line-height:1.45;}
.kpi-grid,.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:10px;}
.grid2,.panel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;}
.kpi-card{overflow:hidden;position:relative;}
.kpi-card::after{content:"";position:absolute;right:-30px;bottom:-30px;width:120px;height:120px;border-radius:50%;background:rgba(255,255,255,.18);}
.kpi-card--green{background:linear-gradient(135deg,#2e7d32,#1f5e25);color:#fff;border:none;}
.kpi-card--green .card__title,.kpi-card--green .card__big-number{color:#fff;border-color:rgba(255,255,255,.16);}
.kpi-card--blue{background:linear-gradient(135deg,#3366cc,#264ea3);color:#fff;border:none;}
.kpi-card--blue .card__title,.kpi-card--blue .card__big-number{color:#fff;border-color:rgba(255,255,255,.18);}
.kpi-card--lime{background:linear-gradient(135deg,#8bc34a,#689f38);color:#fff;border:none;}
.kpi-card--lime .card__title,.kpi-card--lime .card__big-number{color:#fff;border-color:rgba(255,255,255,.18);}
.kpi-card--soft{background:linear-gradient(135deg,#ffffff,#edf7ed);}
.actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;padding-top:6px;}.actions--left{justify-content:flex-start;}
.btn{appearance:none;border:none;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:12px 18px;border-radius:14px;font-weight:900;font-size:.95rem;cursor:pointer;transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;}
.btn:hover{transform:translateY(-1px);}
.btn-primary,.btn.primary{background:linear-gradient(135deg,var(--dtb-green),var(--dtb-green-dark));color:#fff;box-shadow:0 10px 20px rgba(46,125,50,.18);}
.btn-secondary,.btn.light{background:#fff;color:var(--dtb-green-dark);border:1px solid #cfe0cf;box-shadow:0 6px 14px rgba(16,35,26,.05);}
.shortcut-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px;}
.shortcut-card{display:block;text-decoration:none;color:inherit;background:#fff;border:1px solid #dbe8db;border-radius:18px;padding:16px;transition:.18s ease;box-shadow:0 8px 16px rgba(16,35,26,.04);}
.shortcut-card:hover{transform:translateY(-2px);background:#f8fcf8;}
.shortcut-card__icon{font-size:1.5rem;margin-bottom:8px;}
.shortcut-card__title{font-weight:900;color:var(--dtb-green-dark);margin-bottom:4px;}
.shortcut-card__text{font-size:.9rem;color:var(--muted);line-height:1.45;}
.section-title{margin:0 0 12px 0;font-size:1.08rem;color:var(--dtb-green-dark);font-weight:900;}
.info-list{display:grid;gap:10px;}.info-item{padding:12px 14px;border-radius:14px;background:#f8fbf8;border:1px solid #dce8dc;}.info-item strong{color:var(--dtb-green-dark);}
.table{width:100%;border-collapse:collapse;overflow:hidden;border-radius:14px;background:#fff;border:1px solid var(--border);}
.table thead{background:linear-gradient(135deg,#edf7ed 0%,#f5fbf5 100%);}.table th,.table td{padding:12px 14px;text-align:left;border-bottom:1px solid #e6eee6;font-size:.94rem;vertical-align:top;}.table th{color:var(--dtb-green-dark);font-weight:900;}.table tbody tr:hover{background:#f8fbf8;}
.home-empty{padding:20px;text-align:center;color:var(--muted);background:#fbfdfb;border:1px dashed #cfe0cf;border-radius:16px;}
.form{display:flex;flex-direction:column;gap:16px;}.field label{display:block;font-weight:800;font-size:.86rem;margin-bottom:7px;color:var(--text);}.req{color:#c62828;}
.field input,.field select,.field textarea,textarea,input,select{width:100%;padding:12px 14px;border:1px solid #cfdccf;border-radius:14px;font-size:.95rem;background:#fff;color:var(--text);transition:border-color .16s ease, box-shadow .16s ease, background .16s ease;}
.field input:focus,.field select:focus,.field textarea:focus,textarea:focus,input:focus,select:focus{outline:none;border-color:var(--dtb-green);box-shadow:0 0 0 4px rgba(46,125,50,.12);background:#fff;}
.field input[readonly]{background:#f5f8f5;}
.hint,.help-text{margin-top:6px;font-size:.82rem;color:var(--muted);line-height:1.45;}
.seg{display:flex;gap:8px;}.seg-btn{flex:1;padding:12px 10px;border-radius:14px;border:1px solid #cfdccf;background:#fff;font-weight:900;cursor:pointer;color:var(--text);}.seg-btn.active{border-color:var(--dtb-green);background:rgba(46,125,50,.12);color:var(--dtb-green-dark);}.seg-btn:disabled{opacity:.55;cursor:not-allowed;}
.chips{display:flex;flex-wrap:wrap;gap:8px;}.chip{border:1px solid #d4e0d4;border-radius:999px;padding:9px 12px;display:flex;align-items:center;gap:7px;background:#fbfdfb;min-width:138px;transition:all .15s ease;}.chip:hover{background:#eef8ee;border-color:var(--dtb-green);box-shadow:0 0 0 1px rgba(46,125,50,.14);}.chip input{transform:scale(1.04);}
.subhead{font-weight:900;color:var(--dtb-green-dark);margin:6px 0 10px 0;}
.fh-grid{display:flex;flex-direction:column;gap:14px;}.fh-head{display:flex;align-items:center;gap:8px;padding-bottom:10px;border-bottom:1px solid var(--border);}.fh-num,.fh-title{font-weight:900;color:var(--dtb-green-dark);}.fh-tag{margin-left:8px;font-weight:900;color:var(--gov-blue-dark);}.fh-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start;}
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid #dce8dc;}.tab-btn{border:none;background:#fff;padding:10px 16px;cursor:pointer;font-weight:800;color:var(--muted);border:1px solid transparent;border-bottom:3px solid transparent;border-radius:12px;}.tab-btn:hover{background:#f4faf4;color:var(--dtb-green-dark);}.tab-btn--active{color:var(--dtb-green-dark);border-color:#dbe8db;border-bottom-color:var(--dtb-green);background:#f5fbf5;}.tab-panel{display:none;}
.victima-card,.hipotesis-card,.testigo-card{border:1px solid #dce8dc;border-radius:16px;padding:14px;margin-top:12px;background:linear-gradient(180deg,#ffffff 0%,#f9fcf9 100%);}.card__title--small{font-size:.92rem;margin-bottom:8px;}
.lugar-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;margin-top:8px;}.lugar-section{border-radius:14px;border:1px solid #d7e6d7;background:linear-gradient(135deg,#f5fbf5,#ffffff);padding:12px 14px;box-shadow:0 0 0 1px rgba(148,163,184,0.05);}.lugar-section__title{font-weight:900;font-size:.82rem;color:var(--dtb-green-dark);margin-bottom:8px;text-transform:uppercase;}
.vias-matrix{margin-top:6px;border-radius:14px;border:1px solid var(--border);overflow:hidden;background:#f9fcf9;}.vias-matrix__head,.vias-matrix__row{display:grid;grid-template-columns:1.6fr .7fr .7fr;align-items:center;}.vias-matrix__head{background:#edf7ed;font-weight:900;font-size:.83rem;padding:8px 12px;color:var(--dtb-green-dark);border-bottom:1px solid var(--border);}.vias-matrix__row{padding:6px 12px;border-bottom:1px solid #e5eee5;font-size:.84rem;}.vias-matrix__row:nth-child(odd){background:#fff;}.vias-matrix__row-label-sub{margin-left:12px;}
.field input,textarea{text-transform:uppercase;}
@media (max-width:1100px){.app-shell{grid-template-columns:1fr;}.sidebar{padding-bottom:12px;}.topbar-app{position:static;}.shortcut-grid,.kpi-grid,.grid4,.grid3,.grid2,.panel-grid,.fh-row,.welcome-card{grid-template-columns:1fr;}.app-content{padding:16px;}}


/* =========================================================
   MODO FORMULARIO IPAT CLÁSICO
   Panel tipo app + digitación parecida al formato IPAT.
   ========================================================= */
.hero--ipat-classic{background:#fff;border:2px solid #2f5ea8;border-radius:14px;padding:16px;margin-bottom:14px;box-shadow:none;color:#0f172a;}
.hero--ipat-classic h1{margin:0 0 6px 0;font-size:28px;color:#0f172a;}
.hero--ipat-classic p{margin:0;color:#475569;line-height:1.4;}
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;padding:0;background:transparent;border:0;border-bottom:1px solid #d9e2f3;border-radius:0;box-shadow:none;}
.tab-btn{border:none;background:none;padding:8px 16px;cursor:pointer;font-weight:700;color:#555;border-bottom:3px solid transparent;border-radius:4px 4px 0 0;}
.tab-btn:hover{background:#f5f7fb;color:#1f4e79;}
.tab-btn--active{color:#1f4e79;border-color:#1f4e79;background:#f5f7fb;}
.form .card,#ipatForm .card{background:#fff;border:2px solid #2f5ea8;border-radius:14px;padding:14px;box-shadow:none;}
.form .card__title,#ipatForm .card__title{font-weight:900;letter-spacing:.3px;color:#1f4d92;font-size:18px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid #c9d7f2;}
.form .subhead,#ipatForm .subhead{font-weight:900;color:#1f4d92;margin:4px 0 8px 0;}
.form .fh-num,.form .fh-title,#ipatForm .fh-num,#ipatForm .fh-title{color:#1f4d92;}
.form .fh-tag,#ipatForm .fh-tag{color:#1f4e79;font-weight:700;}
.form .field label,#ipatForm .field label{font-weight:800;font-size:13px;margin-bottom:6px;}
.form .field input,.form .field select,.form .field textarea,#ipatForm .field input,#ipatForm .field select,#ipatForm .field textarea{padding:12px;border:1px solid #cbd5e1;border-radius:12px;font-size:15px;background:#fff;}
.form .field input:focus,.form .field select:focus,.form .field textarea:focus,#ipatForm .field input:focus,#ipatForm .field select:focus,#ipatForm .field textarea:focus{outline:3px solid rgba(47,94,168,.18);border-color:#2f5ea8;box-shadow:none;}
.form .chip,#ipatForm .chip{border:1px solid #cbd5e1;border-radius:999px;padding:8px 10px;display:flex;align-items:center;gap:6px;background:#f8fafc;min-width:140px;}
.form .chip:hover,#ipatForm .chip:hover{background:#eef2ff;border-color:#1f4d92;box-shadow:0 0 0 1px rgba(37,99,235,.2);}
.form .seg-btn,#ipatForm .seg-btn{border-radius:12px;border:1px solid #cbd5e1;}
.form .seg-btn.active,#ipatForm .seg-btn.active{border-color:#2f5ea8;background:rgba(47,94,168,.12);color:#1f4d92;}
.form .btn-primary,#ipatForm .btn-primary{background:#2f5ea8;border-color:#2f5ea8;color:#fff;box-shadow:none;}
.form .btn-primary:hover,#ipatForm .btn-primary:hover{background:#1f4d92;}
.form .btn-secondary,#ipatForm .btn-secondary{background:#fff;color:#1f4d92;border:1px solid #cbd5e1;box-shadow:none;}
.form .lugar-section,#ipatForm .lugar-section{border-radius:10px;border:1px solid #bfdbfe;background:linear-gradient(135deg,#eff6ff,#fff);padding:10px 12px;box-shadow:0 0 0 1px rgba(148,163,184,.12);}
.form .lugar-section__title,#ipatForm .lugar-section__title{font-weight:800;font-size:13px;color:#1f4d92;margin-bottom:6px;text-transform:uppercase;}
.form .vias-matrix,#ipatForm .vias-matrix{border-radius:10px;border:1px solid #c9d7f2;background:#f9fafb;}
.form .vias-matrix__head,#ipatForm .vias-matrix__head{background:#e5edff;color:#1f4d92;font-weight:800;font-size:13px;padding:6px 10px;}
.form .vias-matrix__row,#ipatForm .vias-matrix__row{padding:4px 10px;border-bottom:1px solid #e2e8f0;font-size:12px;}
.form .victima-card,.form .hipotesis-card,.form .testigo-card,#ipatForm .victima-card,#ipatForm .hipotesis-card,#ipatForm .testigo-card{border:1px solid #e2e8f0;border-radius:8px;padding:10px;margin-top:10px;background:#f9fafb;}
