:root{--bg:#f4f7f8;--card:#fff;--text:#1f2b30;--muted:#687780;--line:#dfe7ea;--brand:#287a75;--brand2:#21645f}
*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text)}
button,input,select{font:inherit}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 7px 24px rgba(20,44,55,.05)}
.login-card{width:min(430px,100%)}.brand{display:flex;gap:13px;align-items:center}.brand h1{margin:0}.brand p,.brand span{display:block;color:var(--muted);margin:4px 0 0}
.logo{width:46px;height:46px;border-radius:13px;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:24px}.brand.small .logo{width:38px;height:38px}
.topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4vw;position:sticky;top:0;z-index:10}
.top-actions,.title-actions{display:flex;gap:10px}.container{width:min(1120px,92vw);margin:28px auto}.container.wide{width:min(1450px,95vw)}
.admin-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.admin-title h2{margin:0 0 4px;font-size:30px}
label{display:block;font-weight:700;font-size:14px;margin:12px 0 6px}input,select{width:100%;padding:10px 12px;border:1px solid #cfdadd;border-radius:9px;background:#fff}
button,.button-link{border:0;background:var(--brand);color:#fff;padding:10px 14px;border-radius:9px;font-weight:700;cursor:pointer;text-decoration:none}button:hover{background:var(--brand2)}
.secondary{background:#edf2f3;color:var(--text)}.filters{display:grid;grid-template-columns:1.5fr 1fr 1.2fr auto auto;gap:12px;align-items:end;margin-bottom:18px}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:11px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}th{font-size:12px;color:var(--muted);white-space:nowrap}td{font-size:14px}
.mini{padding:6px 9px;font-size:12px;background:#eef3f4;color:#345}.mini.done{background:#e5f4ee;color:#176249}
.badge{display:inline-block;padding:5px 8px;border-radius:999px;background:#edf2f3;font-size:11px;font-weight:700}.badge.ok{background:#e3f4ec;color:#166347}.badge.warn{background:#fff1d8;color:#8a5a00}.badge.dup{background:#eceff1;color:#65727a}
.faded{opacity:.55}.tiny{font-size:11px;color:var(--muted);margin-top:4px}.muted,.help{color:var(--muted)}.error{color:#a52525}.msg{min-height:18px;color:var(--brand2)}
.modal{position:fixed;inset:0;background:rgba(12,24,30,.48);display:grid;place-items:center;padding:20px;z-index:100}.hidden{display:none}.modal-panel{width:min(540px,96vw);max-height:90vh;overflow:auto;background:#fff;border-radius:16px;padding:20px}.modal-panel.large{width:min(1250px,97vw)}
.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.modal-head h3{margin:0}.icon-btn{background:#eef2f3;color:#333;width:34px;height:34px;border-radius:50%;padding:0;font-size:22px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
.study-list{display:grid;gap:14px}.study-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;justify-content:space-between}.study-card h4{margin:6px 0}.study-card p{margin:0;color:var(--muted)}.study-date{font-size:13px;color:var(--brand);font-weight:700}.empty{padding:25px;text-align:center;color:var(--muted)}
@media(max-width:900px){.filters{grid-template-columns:1fr 1fr}.admin-title{align-items:flex-start;gap:14px;flex-direction:column}.title-actions{flex-wrap:wrap}}
.badge.newp{background:#e8edff;color:#3d4f9c}.badge.mid{background:#eaf0fa;color:#315a95}

.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}
.result-grid>div{background:#f7f9fa;border:1px solid var(--line);border-radius:10px;padding:12px}
.result-grid span,.result-grid strong{display:block}
.result-grid strong{margin-top:5px}
.result-status{display:flex;align-items:center;gap:10px;margin:12px 0 6px}
.analyzing{padding:28px;text-align:center;color:var(--muted);font-weight:700}
button:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:650px){.result-grid{grid-template-columns:1fr}}

.brand-subline{display:flex;align-items:center;gap:7px;margin-top:4px}
.brand-subline>span:first-child{margin:0}
.version-badge{
  display:inline-flex!important;
  width:max-content;
  align-items:center;
  justify-content:center;
  margin:0!important;
  padding:2px 7px;
  border-radius:999px;
  border:1px solid #cbd7da;
  background:#eef3f4;
  color:#52646c!important;
  font-size:11px;
  line-height:1.35;
  font-weight:800;
  letter-spacing:.02em
}

.delete-cell{width:34px;text-align:center}
.delete-study{
  border:0!important;
  background:transparent!important;
  color:#c93434!important;
  width:26px;
  height:26px;
  padding:0!important;
  border-radius:50%;
  font-size:20px;
  line-height:24px;
  font-weight:800;
  cursor:pointer;
}
.delete-study:hover{background:#fdecec!important;color:#9e2020!important}
.inline-doctor{
  width:180px!important;
  min-width:120px;
  padding:4px 6px!important;
  margin-left:4px;
  font-size:11px!important;
}
.doctor-line{margin-top:5px}
.password-change{
  max-width:520px;
  margin:42px auto;
}
.password-change form{margin-top:18px}
.password-change input{width:100%;box-sizing:border-box}

.study-type-input{
  min-width:165px!important;
  width:100%!important;
  box-sizing:border-box;
}
.inline-doctor{
  min-width:205px!important;
  width:100%!important;
  box-sizing:border-box;
}
.parser-source{
  margin-top:4px;
  opacity:.55;
  font-size:10px!important;
}
#analysisModal .modal-card{
  width:min(1480px,94vw);
}
#analysisModal table th:nth-child(4),
#analysisModal table td:nth-child(4){
  min-width:180px;
}
#analysisModal table th:nth-child(7),
#analysisModal table td:nth-child(7){
  min-width:235px;
}

/* v0.4.6 - revisión de carpeta sin scroll horizontal */
#analysisModal .modal-card{
  width:min(1540px,96vw)!important;
  max-width:96vw!important;
  overflow:hidden;
}
#analysisModal .table-wrap{
  overflow-x:hidden!important;
}
#analysisModal table{
  width:100%!important;
  table-layout:fixed!important;
}
#analysisModal table th,
#analysisModal table td{
  min-width:0!important;
  overflow:hidden;
  text-overflow:ellipsis;
  vertical-align:top;
}
#analysisModal table th:nth-child(1),
#analysisModal table td:nth-child(1){width:31%}
#analysisModal table th:nth-child(2),
#analysisModal table td:nth-child(2){width:12%}
#analysisModal table th:nth-child(3),
#analysisModal table td:nth-child(3){width:13%}
#analysisModal table th:nth-child(4),
#analysisModal table td:nth-child(4){width:15%}
#analysisModal table th:nth-child(5),
#analysisModal table td:nth-child(5){width:10%}
#analysisModal table th:nth-child(6),
#analysisModal table td:nth-child(6){width:7%}
#analysisModal table th:nth-child(7),
#analysisModal table td:nth-child(7){width:12%}
#analysisModal input,
#analysisModal select{
  max-width:100%!important;
  box-sizing:border-box!important;
}
#analysisModal .inline-doctor,
#analysisModal .study-type-input{
  min-width:0!important;
  width:100%!important;
}

/* v0.4.8 - gestión de pacientes sin DNI */
.patients-title{margin-top:26px}
.patient-filters{
  display:flex;
  align-items:flex-end;
  gap:16px;
  margin-bottom:12px;
}
.patient-filters>div:first-child{min-width:220px}
.patient-summary{margin-left:auto;padding-bottom:3px}
.patients-table td:last-child,
.patients-table th:last-child{
  width:120px;
  text-align:right;
}
.patient-dni{font-weight:700}


/* CMG BOX Portal v0.6.5 */
.dashboard-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}
.dashboard-card{background:#fff!important;color:var(--text)!important;border:1px solid var(--line)!important;border-radius:14px;padding:16px;text-align:left;box-shadow:0 5px 18px rgba(20,44,55,.04)}
.dashboard-card:hover{border-color:#aac8c5!important;transform:translateY(-1px)}
.dashboard-card span,.dashboard-card small,.dashboard-card strong{display:block}.dashboard-card span{font-size:12px;color:var(--muted);font-weight:700}.dashboard-card strong{font-size:28px;margin:5px 0 3px}.dashboard-card small{color:var(--muted)}
.dashboard-card.review strong{color:#9b6700}.audit-title{margin-top:26px}.audit-detail{font-size:12px;color:var(--muted);max-width:520px}.restore-study{background:#e5f4ee;color:#176249}
@media(max-width:980px){.dashboard-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){.dashboard-grid{grid-template-columns:1fr}}
