.medinv,
.medinv-dialog {
  --med-primary: var(--admin-primary, #0d5c2f);
  --med-primary-text: var(--admin-primary-text, #fff);
  --med-surface: var(--admin-surface, #fff);
  --med-card: var(--admin-card, #fff);
  --med-bg: var(--admin-bg, #f3f7f4);
  --med-text: var(--admin-text, #15231b);
  --med-muted: var(--admin-text-muted, #526158);
  --med-border: var(--admin-border, #cfdcd3);
  --med-field-border: var(--admin-field-border, #aebfb3);
  --med-danger: var(--admin-danger, #b42318);
  --med-warning: #9a6700;
  color: var(--med-text);
}

.medinv {
  display: grid;
  gap: 1rem;
}

.medinv *, .medinv *::before, .medinv *::after,
.medinv-dialog *, .medinv-dialog *::before, .medinv-dialog *::after { box-sizing: border-box; }
.medinv button, .medinv input, .medinv select, .medinv textarea,
.medinv-dialog button, .medinv-dialog input, .medinv-dialog select, .medinv-dialog textarea { font: inherit; }
.medinv button, .medinv-dialog button { cursor: pointer; }
.medinv button:disabled, .medinv-dialog button:disabled { cursor: wait; opacity: .58; }

.medinv-notice {
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  padding: .85rem 1rem;
  border: 1px solid color-mix(in srgb, var(--admin-accent, #f6c445) 48%, var(--med-border));
  border-radius: 11px;
  color: color-mix(in srgb, var(--med-text) 88%, #7a5600);
  background: color-mix(in srgb, var(--admin-accent, #f6c445) 10%, var(--med-surface));
  font-size: .64rem;
  line-height: 1.55;
}
.medinv-notice i { margin-top: .08rem; color: var(--med-warning); }

.medinv-tabs {
  display: flex;
  gap: .35rem;
  padding: .35rem;
  overflow-x: auto;
  border: 1px solid var(--med-border);
  border-radius: 11px;
  background: var(--med-surface);
  scrollbar-width: thin;
}
.medinv-tabs button {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  gap: .42rem;
  padding: 0 .75rem;
  border: 1px solid transparent;
  border-radius: 8px;
  color: var(--med-muted);
  background: transparent;
  font-size: .62rem;
  font-weight: 800;
  white-space: nowrap;
}
.medinv-tabs button:hover { color: var(--med-primary); background: color-mix(in srgb, var(--med-primary) 7%, var(--med-surface)); }
.medinv-tabs button.active { border-color: var(--med-primary); color: var(--med-primary-text); background: var(--med-primary); }

.medinv-view { display: grid; gap: 1rem; }
.medinv-card {
  overflow: hidden;
  border: 1px solid var(--med-border);
  border-radius: 12px;
  color: var(--med-text);
  background: var(--med-card);
  box-shadow: 0 10px 32px rgba(3, 36, 23, .05);
}
.medinv-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .8rem;
  padding: 1rem;
  border-bottom: 1px solid var(--med-border);
}
.medinv-card-head h2, .medinv-card-head h3 { margin: 0; color: var(--med-text); font-size: .9rem; }
.medinv-card-head p { margin: .24rem 0 0; color: var(--med-muted); font-size: .61rem; line-height: 1.55; }
.medinv-card-body { padding: 1rem; }

.medinv-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; }
.medinv-stat {
  min-height: 105px;
  display: grid;
  grid-template-columns: 42px 1fr;
  align-items: center;
  gap: .72rem;
  padding: .9rem;
  border: 1px solid var(--med-border);
  border-radius: 11px;
  background: var(--med-card);
}
.medinv-stat > i { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 10px; color: var(--med-primary); background: color-mix(in srgb, var(--med-primary) 11%, var(--med-card)); }
.medinv-stat small { display: block; color: var(--med-muted); font-size: .56rem; line-height: 1.4; }
.medinv-stat strong { display: block; margin-top: .18rem; color: var(--med-text); font-size: 1.25rem; }
.medinv-stat.is-warning > i { color: var(--med-warning); background: color-mix(in srgb, #f6c445 18%, var(--med-card)); }
.medinv-stat.is-danger > i { color: var(--med-danger); background: color-mix(in srgb, var(--med-danger) 10%, var(--med-card)); }

.medinv-dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(260px, .8fr); gap: 1rem; }
.medinv-chart-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.medinv-chart { padding: .9rem; border: 1px solid var(--med-border); border-radius: 10px; background: var(--med-bg); }
.medinv-chart h3 { margin: 0 0 .75rem; color: var(--med-text); font-size: .69rem; }
.medinv-chart-row { display: grid; grid-template-columns: minmax(90px, .8fr) minmax(90px, 1.4fr) auto; align-items: center; gap: .55rem; margin-top: .48rem; color: var(--med-muted); font-size: .56rem; }
.medinv-chart-row span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.medinv-chart-row strong { color: var(--med-text); font-size: .58rem; }
.medinv-chart-track { height: 7px; overflow: hidden; border-radius: 999px; background: color-mix(in srgb, var(--med-border) 65%, transparent); }
.medinv-chart-track i { display: block; width: var(--bar, 0%); height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--med-primary), #66cf91); }

.medinv-notifications { display: grid; gap: .55rem; max-height: 430px; overflow: auto; }
.medinv-notification { display: grid; grid-template-columns: 34px 1fr auto; gap: .6rem; align-items: start; padding: .7rem; border: 1px solid var(--med-border); border-radius: 9px; background: var(--med-bg); }
.medinv-notification > i { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 8px; color: var(--med-warning); background: color-mix(in srgb, #f6c445 15%, var(--med-card)); }
.medinv-notification.is-danger > i { color: var(--med-danger); background: color-mix(in srgb, var(--med-danger) 10%, var(--med-card)); }
.medinv-notification p { margin: 0; color: var(--med-text); font-size: .59rem; line-height: 1.55; }
.medinv-notification time { display: block; margin-top: .2rem; color: var(--med-muted); font-size: .52rem; }
.medinv-notification button { width: 29px; height: 29px; border: 1px solid var(--med-border); border-radius: 7px; color: var(--med-primary); background: var(--med-card); }

.medinv-toolbar { display: grid; grid-template-columns: minmax(190px, 2fr) repeat(4, minmax(125px, 1fr)); gap: .6rem; padding: .85rem; border: 1px solid var(--med-border); border-radius: 11px; background: var(--med-surface); }
.medinv-field, .medinv-search { display: grid; gap: .3rem; min-width: 0; color: var(--med-text); font-size: .58rem; font-weight: 700; }
.medinv-search { position: relative; align-content: end; }
.medinv-search i { position: absolute; left: .7rem; bottom: .76rem; color: var(--med-primary); pointer-events: none; }
.medinv-search input { padding-left: 2rem !important; }
.medinv input, .medinv select, .medinv textarea {
  width: 100%;
  min-width: 0;
  min-height: 46px;
  padding: .7rem .78rem;
  border: 1px solid var(--med-field-border);
  border-radius: 8px;
  outline: 0;
  color: var(--admin-input-text, var(--med-text));
  background: var(--admin-input-bg, var(--med-bg));
  font-size: .78rem;
  line-height: 1.45;
}
.medinv textarea { min-height: 104px; resize: vertical; line-height: 1.6; }
.medinv input:focus, .medinv select:focus, .medinv textarea:focus { border-color: var(--med-primary); box-shadow: 0 0 0 3px color-mix(in srgb, var(--med-primary) 24%, transparent); }
.medinv input:focus-visible, .medinv select:focus-visible, .medinv textarea:focus-visible, .medinv button:focus-visible { outline: 2px solid color-mix(in srgb, var(--admin-accent, #f6c445) 75%, var(--med-primary)); outline-offset: 2px; }
.medinv input::placeholder, .medinv textarea::placeholder { color: var(--med-muted); opacity: 1; }
.medinv select option { color: var(--admin-input-text, var(--med-text)); background: var(--admin-input-bg, var(--med-bg)); }
.medinv input:disabled, .medinv select:disabled, .medinv textarea:disabled { color: var(--med-muted); background: color-mix(in srgb, var(--admin-input-bg, var(--med-bg)) 82%, var(--med-border)); opacity: 1; cursor: not-allowed; }
.medinv input[type="file"] { padding: .38rem; }
.medinv input[type="file"]::file-selector-button { min-height: 36px; margin-right: .7rem; padding: 0 .75rem; border: 1px solid var(--med-primary); border-radius: 6px; color: var(--med-primary-text); background: var(--med-primary); font: inherit; font-weight: 800; cursor: pointer; }

.medinv-actions { display: flex; flex-wrap: wrap; gap: .45rem; }
.medinv-btn {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  padding: 0 .7rem;
  border: 1px solid var(--med-border);
  border-radius: 8px;
  color: var(--med-primary);
  background: var(--med-surface);
  font-size: .68rem;
  font-weight: 800;
  white-space: nowrap;
}
.medinv-btn:hover { border-color: var(--med-primary); background: color-mix(in srgb, var(--med-primary) 6%, var(--med-surface)); }
.medinv-btn.primary { border-color: var(--med-primary); color: var(--med-primary-text); background: var(--med-primary); }
.medinv-btn.danger { color: var(--med-danger); border-color: color-mix(in srgb, var(--med-danger) 40%, var(--med-border)); }
.medinv-btn.warning { color: var(--med-warning); border-color: color-mix(in srgb, #f6c445 55%, var(--med-border)); }
.medinv-btn.icon { width: 37px; padding: 0; }

.medinv-table-wrap {
  width: 100%;
  max-height: min(560px, calc(100dvh - 350px));
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
.medinv-table { width: 100%; min-width: 960px; border-collapse: collapse; }
.medinv-table th { position: sticky; top: 0; z-index: 3; padding: .72rem .85rem; color: var(--med-muted); background: var(--med-bg); box-shadow: 0 1px 0 var(--med-border); text-align: left; font-size: .55rem; letter-spacing: .035em; text-transform: uppercase; white-space: nowrap; }
.medinv-table td { padding: .78rem .85rem; border-top: 1px solid var(--med-border); color: var(--med-text); font-size: .61rem; vertical-align: middle; }
.medinv-table td strong { display: block; color: var(--med-text); }
.medinv-table td small { display: block; margin-top: .16rem; color: var(--med-muted); font-size: .52rem; line-height: 1.45; }
.medinv-table tbody tr:hover { background: color-mix(in srgb, var(--med-primary) 5%, transparent); }
.medinv-badge { display: inline-flex; align-items: center; gap: .28rem; padding: .31rem .48rem; border-radius: 999px; color: var(--med-primary); background: color-mix(in srgb, var(--med-primary) 10%, var(--med-card)); font-size: .54rem; font-weight: 800; white-space: nowrap; }
.medinv-badge.warning { color: var(--med-warning); background: color-mix(in srgb, #f6c445 17%, var(--med-card)); }
.medinv-badge.danger { color: var(--med-danger); background: color-mix(in srgb, var(--med-danger) 10%, var(--med-card)); }
.medinv-empty { min-height: 210px; display: grid; place-content: center; justify-items: center; gap: .45rem; padding: 1rem; color: var(--med-muted); text-align: center; }
.medinv-empty i { color: var(--med-primary); font-size: 1.65rem; }
.medinv-empty strong { color: var(--med-text); font-size: .72rem; }
.medinv-empty span { font-size: .58rem; }

.medinv-pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: .35rem; padding: .9rem; border-top: 1px solid var(--med-border); }
.medinv-pagination button { min-width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; gap: .35rem; padding: 0 .55rem; border: 1px solid var(--med-border); border-radius: 7px; color: var(--med-text); background: var(--med-surface); font-size: .58rem; font-weight: 800; }
.medinv-pagination button.active { border-color: var(--med-primary); color: var(--med-primary-text); background: var(--med-primary); }
.medinv-page-size { display: inline-flex; align-items: center; gap: .45rem; color: var(--med-muted); font-size: .56rem; font-weight: 750; white-space: nowrap; }
.medinv-page-size select { width: auto; min-width: 68px; min-height: 36px; padding: .35rem 1.6rem .35rem .55rem; }

.medinv-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 16px; }
.medinv-form .wide { grid-column: 1 / -1; }
.medinv-form label { display: grid; align-content: start; gap: .42rem; color: var(--med-text); font-size: .78rem; font-weight: 750; line-height: 1.4; }
.medinv-form label > small { color: var(--med-muted); font-size: .68rem; font-weight: 500; line-height: 1.55; }
.medinv-form-section { grid-column: 1 / -1; display: flex; align-items: center; gap: .6rem; margin: .45rem 0 -.05rem; padding: .78rem 0 .48rem; border-bottom: 1px solid var(--med-border); color: var(--med-primary); font-size: .78rem; font-weight: 800; }
.medinv-form-section:first-child { margin-top: 0; padding-top: .2rem; }
.medinv-check { display: flex !important; grid-template-columns: none; flex-direction: row; align-items: center; gap: .6rem !important; min-height: 46px; padding: .68rem .75rem; border: 1px solid var(--med-field-border); border-radius: 7px; color: var(--med-text); background: var(--med-bg); }
.medinv-check input { flex: 0 0 auto; width: 18px; min-height: 18px; height: 18px; padding: 0; accent-color: var(--med-primary); }
.medinv-dialog .special-form-note { color: var(--med-muted); font-size: .72rem; line-height: 1.65; }
.medinv-file-status { display: flex; align-items: center; gap: .55rem; min-height: 42px; padding: .65rem .75rem; border: 1px solid var(--med-border); border-radius: 8px; color: var(--med-muted); background: var(--med-bg); font-size: .72rem; }
.medinv-file-status i { color: var(--med-primary); }
.medinv-file-status.has-file { color: var(--med-text); border-color: var(--med-primary); }

.medinv-upload-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
.medinv-upload { display: grid; gap: .5rem; padding: .7rem; border: 1px solid var(--med-border); border-radius: 9px; background: var(--med-bg); }
.medinv-upload-preview { aspect-ratio: 4 / 3; display: grid; place-items: center; overflow: hidden; border-radius: 7px; color: var(--med-muted); background: color-mix(in srgb, var(--med-border) 50%, var(--med-card)); }
.medinv-upload-preview img { width: 100%; height: 100%; display: block; object-fit: cover; }
.medinv-upload-preview i { font-size: 1.4rem; }
.medinv-upload > strong { color: var(--med-text); font-size: .56rem; }
.medinv-upload .medinv-actions { gap: .3rem; }
.medinv-upload .medinv-btn { min-height: 33px; padding: 0 .45rem; font-size: .52rem; }
.medinv-document-list { display: grid; gap: .5rem; }
.medinv-document-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .5rem; padding: .65rem; border: 1px solid var(--med-border); border-radius: 8px; background: var(--med-bg); }
.medinv-document-row strong { overflow: hidden; color: var(--med-text); font-size: .57rem; text-overflow: ellipsis; white-space: nowrap; }

.medinv-detail-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; margin: 0; }
.medinv-detail-grid div { padding: .65rem; border: 1px solid var(--med-border); border-radius: 8px; background: var(--med-bg); }
.medinv-detail-grid dt { color: var(--med-muted); font-size: .52rem; }
.medinv-detail-grid dd { margin: .22rem 0 0; color: var(--med-text); font-size: .61rem; white-space: pre-wrap; }
.medinv-subsection { display: grid; gap: .65rem; margin-top: 1rem; }
.medinv-subsection-head { display: flex; align-items: center; justify-content: space-between; gap: .6rem; }
.medinv-subsection h3 { margin: 0; color: var(--med-text); font-size: .72rem; }

.medinv-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .65rem; }
.medinv-gallery figure { margin: 0; overflow: hidden; border: 1px solid var(--med-border); border-radius: 9px; background: var(--med-bg); }
.medinv-gallery img { width: 100%; aspect-ratio: 4 / 3; display: block; object-fit: cover; }
.medinv-gallery figcaption { padding: .55rem; color: var(--med-muted); font-size: .54rem; }

.medinv-two-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.medinv-view .medinv-list {
  max-height: min(520px, calc(100dvh - 320px));
  display: grid;
  gap: .55rem;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
.medinv-list-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .7rem; align-items: center; padding: .72rem; border: 1px solid var(--med-border); border-radius: 9px; background: var(--med-bg); }
.medinv-list-row strong { color: var(--med-text); font-size: .62rem; }
.medinv-list-row p { margin: .18rem 0 0; color: var(--med-muted); font-size: .54rem; line-height: 1.45; }
.medinv-role-note { display: flex; gap: .55rem; padding: .75rem; border: 1px solid var(--med-border); border-radius: 9px; color: var(--med-muted); background: var(--med-bg); font-size: .58rem; line-height: 1.55; }
.medinv-role-note i { color: var(--med-primary); }

@media (max-width: 1180px) {
  .medinv-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .medinv-dashboard-grid { grid-template-columns: 1fr; }
  .medinv-toolbar { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .medinv-search { grid-column: span 2; }
}

@media (max-width: 768px) {
  .medinv-table-wrap { max-height: none; overflow-y: visible; overscroll-behavior: auto; scrollbar-gutter: auto; }
  .medinv-table th { position: static; box-shadow: none; }
  .medinv-view .medinv-list { max-height: none; overflow-y: visible; overscroll-behavior: auto; scrollbar-gutter: auto; }
}

@media (max-width: 760px) {
  .medinv-summary, .medinv-chart-grid, .medinv-two-columns { grid-template-columns: 1fr; }
  .medinv-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .medinv-search { grid-column: 1 / -1; }
  .medinv-card-head { flex-direction: column; }
  .medinv-form { grid-template-columns: 1fr; }
  .medinv-form .wide, .medinv-form-section { grid-column: 1; }
  .medinv-upload-grid, .medinv-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .medinv-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 480px) {
  .medinv-summary, .medinv-toolbar, .medinv-upload-grid, .medinv-gallery, .medinv-detail-grid { grid-template-columns: 1fr; }
  .medinv-stat { min-height: 88px; }
  .medinv-actions .medinv-btn:not(.icon) { flex: 1 1 auto; }
  .medinv-pagination button span { display: none; }
}

.admin-theme-dark .medinv input,
.admin-theme-dark .medinv select,
.admin-theme-dark .medinv textarea { color-scheme: dark; }
.admin-theme-light .medinv input,
.admin-theme-light .medinv select,
.admin-theme-light .medinv textarea { color-scheme: light; }

@media print {
  .admin-sidebar, .admin-header, .medinv-tabs, .medinv-toolbar, .medinv-actions, .medinv-notice { display: none !important; }
  .admin-main, .admin-content { margin: 0 !important; padding: 0 !important; }
  .medinv-card { box-shadow: none; break-inside: avoid; }
  .medinv-table { min-width: 0; font-size: 9pt; }
}
