/* DEV visual layer. Keep Bootstrap states, validation, permissions and routes intact. */
:root { --medical-ink:#173047; --medical-muted:#566b7c; --medical-line:#dbe4ec; --medical-blue:#145ba0; --medical-surface:#f3f6fa; }
.medical-process-note, .medical-upload-feedback { border:1px solid var(--medical-line); border-radius:.75rem; padding:1rem; background:#fff; margin-bottom:1rem; }
.medical-process-note p, .medical-upload-feedback p { margin: .4rem 0; }
.medical-upload-feedback[data-state=busy] { border-left:4px solid #145ba0; }
.medical-upload-feedback[data-state=success] { border-left:4px solid #197144; background:#f0faf4; }
.medical-upload-feedback[data-state=error] { border-left:4px solid #aa2a2a; background:#fff4f4; }
body { background:var(--medical-surface); color:var(--medical-ink); font-family:system-ui,-apple-system,"Segoe UI",sans-serif; }
.medical-topbar { background:#fff; border-bottom:1px solid var(--medical-line); padding:1rem 2rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.medical-brand { font-size:1.25rem; font-weight:750; letter-spacing:-.035em; }
.medical-context { margin-left:1rem; padding-left:1rem; border-left:1px solid var(--medical-line); font-size:.875rem; color:var(--medical-muted); }
.medical-dev-badge { border:1px solid #dec889; background:#fff6db; color:#70500a; border-radius:2rem; padding:.35rem .65rem; font-size:.68rem; font-weight:750; letter-spacing:.05em; white-space:nowrap; }
#menu_aside, #menu_offcancas { background:#16334c !important; background-image:none !important; }
#menu_aside .nav-link, #menu_offcancas .nav-link { border-radius:.5rem; margin-bottom:.15rem; line-height:1.55; }
#menu_aside .nav-link:hover, #menu_offcancas .nav-link:hover { background:#294d6b; }
#menu_aside .sticky-top { overflow-y:auto; }
#menu_aside a, #menu_offcancas a { overflow-wrap:anywhere; min-width:0; }
.medical-content .widget-exam-list { max-width:100%; min-width:0; overflow-x:auto; border:1px solid var(--medical-line); border-radius:.8rem; background:#fff; }
.medical-content .widget-exam-list h3 { overflow-wrap:anywhere; }
nav[aria-label=breadcrumb] { background:#fff; box-shadow:none !important; padding: .8rem 2rem !important; font-size:.875rem; }
article > header.header { background:#fff !important; border:0 !important; border-bottom:1px solid var(--medical-line) !important; box-shadow:none !important; padding:1.4rem 2rem !important; }
article > header h2 { font-size:1.6rem; font-weight:700; letter-spacing:-.035em; overflow-wrap:anywhere; }
article > header > .d-flex { gap:1rem; flex-wrap:wrap; }
article > header > .d-flex > div { display:flex; gap:.45rem; flex-wrap:wrap; align-items:center; }
.medical-content { padding:2rem !important; min-width:0; }
.medical-content .container-fluid { padding-left:0; padding-right:0; }
.medical-content .card { border:1px solid var(--medical-line); border-radius:1rem !important; box-shadow:0 3px 12px #16334c08 !important; }
.medical-content .card-title { font-size:1.12rem; font-weight:650; }
.medical-content h3 { font-size:1.2rem; font-weight:650; }
.btn { border-radius:.55rem; font-weight:600; }
.btn-primary { background:var(--medical-blue); border-color:var(--medical-blue); }
.btn-primary:hover { background:#104c88; border-color:#104c88; }
.btn-outline-primary { color:var(--medical-blue); border-color:var(--medical-blue); }
.btn-outline-primary:hover { background:var(--medical-blue); border-color:var(--medical-blue); color:#fff; }
.form-control, .form-select { border-color:#becdd9; border-radius:.55rem; }
.form-control:focus, .form-select:focus { border-color:var(--medical-blue); box-shadow:0 0 0 .2rem #145ba025; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible { outline:3px solid #e29b19 !important; outline-offset:3px; }
.medical-content .table { background:#fff; --bs-table-striped-bg:#f5f8fb; border-color:var(--medical-line); }
.medical-content .table th { font-size:.85rem; color:#304e65; }
.medical-content .table td { vertical-align:middle; }
.medical-content .dt-container { border:1px solid var(--medical-line); border-radius:.8rem; background:#fff; padding:1rem; max-width:100%; overflow-x:auto; }
.medical-quicklinks { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-bottom:1.6rem; }
.medical-quicklinks a { display:flex; gap:1rem; align-items:center; text-decoration:none; color:var(--medical-ink); background:white; border:1px solid var(--medical-line); border-radius:.9rem; padding:1.2rem; font-weight:650; }
.medical-quicklinks a:hover { border-color:var(--medical-blue); }
.medical-quicklinks a > i { font-size:1.4rem; color:var(--medical-blue); }
.medical-quicklinks a > span:last-child { margin-left:auto; }
.medical-quicklinks small { display:block; color:var(--medical-muted); font-weight:400; font-size:.85rem; margin-top:.2rem; }
.medical-skip { position:fixed; top:-6rem; left:1rem; background:#fff; padding:.8rem 1rem; z-index:2000; }
.medical-skip:focus { top:1rem; }
#page_login { min-height:100vh; padding:2rem 1rem; background:radial-gradient(ellipse at top left,#dbeaf5,transparent 65%),var(--medical-surface); }
#page_login figure { text-align:center; margin-bottom:1.5rem; }
.medical-login-brand { font-size:2.3rem; font-weight:750; letter-spacing:-.055em; color:var(--medical-ink); }
#page_login figcaption { color:var(--medical-muted); }
#page_login form { width:100%; max-width:440px; background:#fff !important; color:var(--medical-ink) !important; border:1px solid var(--medical-line); border-radius:1rem !important; padding:2rem !important; box-shadow:0 12px 40px #17304712 !important; }
.medical-login-title { font-size:1.45rem; font-weight:700; }
.medical-login-note { color:var(--medical-muted); font-size:.85rem; margin-bottom:1.7rem; }
#page_login label { color:var(--medical-ink) !important; font-size:.9rem; margin-bottom:.4rem; }
#page_login .form-group { margin-bottom:1.2rem; }
#page_login .form-control, #page_login button { min-height:44px; }
@media(max-width:767.98px) {
  .medical-content .row.gx-5 { --bs-gutter-x:1.5rem; }
  #exam > .row > .col-6 { width:100%; margin-bottom:1rem; }
  .medical-topbar { padding:.85rem 1rem; }
  .medical-context { display:none; }
  nav[aria-label=breadcrumb], article > header.header { padding:1rem !important; }
  .medical-content { padding:1rem !important; }
  .medical-quicklinks { grid-template-columns:1fr; }
  article > header.header { position:static !important; }
  article > header .btn { min-height:44px; }
  .medical-content form .row > [class*=col-] { min-width:0; }
  .medical-content .table { font-size:.85rem; }
}
@media print {
  .medical-topbar, .medical-quicklinks, .medical-skip { display:none !important; }
  body { background:#fff; }
  .medical-content { padding:0 !important; }
}

/* DEV menu only: Bootstrap continues to own visibility, height and focus. */
:is(#menu_aside, #menu_offcancas) .nav-link {
  transition: background-color 140ms ease-out, box-shadow 140ms ease-out;
}
:is(#menu_aside, #menu_offcancas) .nav-link:focus-visible {
  background-color: #294d6b;
}
:is(#menu_aside, #menu_offcancas) .nav-link[aria-expanded="true"] {
  background-color: #294d6b;
  box-shadow: inset 3px 0 0 #a7d7ff;
}
:is(#menu_aside, #menu_offcancas) .collapsing {
  transition: height 180ms ease-out;
}
:is(#menu_aside, #menu_offcancas) .collapse.show {
  animation: medical-menu-reveal 140ms ease-out;
}
@keyframes medical-menu-reveal {
  from { opacity: .65; }
  to { opacity: 1; }
}
#menu_offcancas { transition-duration: 180ms; }
@media (prefers-reduced-motion: reduce) {
  :is(#menu_aside, #menu_offcancas),
  :is(#menu_aside, #menu_offcancas) .nav-link,
  :is(#menu_aside, #menu_offcancas) .collapsing,
  :is(#menu_aside, #menu_offcancas) .collapse.show {
    animation: none !important;
    transition: none !important;
  }
}

/* Original spacing and palette, with only a quiet current-page marker. */
:is(#menu_aside, #menu_offcancas) .nav-link.medical-current {
  box-shadow: inset 2px 0 0 #91a9bd;
}
:is(#menu_aside, #menu_offcancas) .nav-link[aria-expanded="true"] {
  background-color: transparent;
  box-shadow: none;
}
:is(#menu_aside, #menu_offcancas) .nav-link[aria-expanded="true"]:hover,
:is(#menu_aside, #menu_offcancas) .nav-link[aria-expanded="true"]:focus-visible {
  background-color: #294d6b;
}
