/* MedShowcase portal theme. Tokens come from the approved design. No inline styles are used anywhere (CSP forbids them). */
@font-face{font-family:'Manrope';font-weight:400;font-display:swap;src:url('../fonts/manrope-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-weight:600;font-display:swap;src:url('../fonts/manrope-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-weight:700;font-display:swap;src:url('../fonts/manrope-latin-700-normal.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-weight:800;font-display:swap;src:url('../fonts/manrope-latin-800-normal.woff2') format('woff2')}

:root{
  --navy:#0E1E2A; --teal:#087F7A; --teal-d:#065F5C; --mint:#5EDAD3; --bg:#F3F6F7; --line:#DCE4E8; --line2:#C5D1D7;
  --ink:#0E1E2A; --muted:#5B6E7A; --amber:#E0A100; --coral:#FF6D5A; --danger:#B3261E; --ok:#1F7A3F;
  --bs-primary:#087F7A; --bs-primary-rgb:8,127,122; --bs-link-color:#087F7A; --bs-link-hover-color:#065F5C;
  --bs-body-font-family:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif; --bs-body-color:#0E1E2A;
  --side-w:264px;
}
html,body{height:100%}
body{margin:0;font-family:var(--bs-body-font-family);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
[hidden]{display:none !important}
:focus-visible{outline:2px solid #0A8F8A;outline-offset:2px}
.btn-primary{--bs-btn-bg:#087F7A;--bs-btn-border-color:#087F7A;--bs-btn-hover-bg:#065F5C;--bs-btn-hover-border-color:#065F5C;--bs-btn-active-bg:#065F5C;--bs-btn-active-border-color:#065F5C;--bs-btn-disabled-bg:#087F7A;--bs-btn-disabled-border-color:#087F7A}
.btn{font-weight:700;border-radius:12px;min-height:44px;padding:.55rem 1.1rem}
.btn-sm{min-height:36px;border-radius:10px;padding:.3rem .8rem}
.form-control,.form-select{min-height:48px;border-radius:10px;border-color:var(--line2);font-weight:500}
textarea.form-control{min-height:0}
.form-label{font-size:13px;font-weight:700;margin-bottom:6px}
.form-check-input{width:1.25em;height:1.25em}
.form-check-input:checked{background-color:#087F7A;border-color:#087F7A}
.hint{font-size:12px;color:var(--muted)}

/* ---- modes ---- */
.boot{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;color:var(--muted);font-weight:700;background:var(--bg);z-index:50}
body:not([data-mode="boot"]) .boot{display:none}
body[data-mode="boot"] #shell{display:none !important}

/* ---- shell ---- */
#shell{display:flex;min-height:100vh}
.side{width:var(--side-w);flex:0 0 var(--side-w);background:var(--navy);color:#fff;padding:24px 16px;display:flex;flex-direction:column;gap:20px;position:sticky;top:0;height:100vh;overflow:auto}
.main-wrap{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;background-color:var(--bg);background-image:radial-gradient(#D5DFE4 1.2px,transparent 1.2px);background-size:22px 22px}
.topbar{display:none;align-items:center;gap:12px;padding:10px 16px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.top-title{font-weight:800;flex:1}
.menu-btn{min-height:40px;padding:0 12px}
.stage{flex:1;padding:32px;min-width:0;outline:none}
body[data-mode="auth"] .side,body[data-mode="auth"] .topbar{display:none}
body[data-mode="auth"] .stage{display:flex;align-items:center;justify-content:center;padding:24px}
body[data-mode="present"] .side,body[data-mode="present"] .topbar{display:none}
body[data-mode="present"] .stage{padding:0}
body[data-mode="present"] .main-wrap{background:#17181C}

.brand{display:flex;align-items:center;gap:12px;padding:0 8px}
.brand-mark{width:40px;height:40px;border-radius:10px;background:var(--mint);color:var(--navy);font-weight:800;display:flex;align-items:center;justify-content:center;overflow:hidden;flex:0 0 40px}
.brand-mark img{width:100%;height:100%;object-fit:cover}
.brand-name{font-weight:800;font-size:15px;line-height:1.2}
.brand-sub{font-size:12px;color:rgba(255,255,255,.72)}
.side-cta{display:flex;align-items:center;justify-content:center;gap:10px;min-height:46px;border-radius:12px;background:var(--mint);color:var(--navy);font-weight:800;font-size:14px;border:0;width:100%}
.side-cta:hover{background:#7fe6e0}
.nav-group{display:flex;flex-direction:column;gap:2px}
.nav-label{padding:0 12px 4px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.nav-item{display:flex;align-items:center;gap:12px;min-height:42px;padding:0 12px;border-radius:10px;font-weight:600;font-size:14px;color:rgba(255,255,255,.78);background:transparent;border:0;width:100%;text-align:left}
.nav-item:hover{background:rgba(255,255,255,.08);color:#fff}
.nav-item .dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.3);flex:0 0 8px}
.nav-item[aria-current="page"]{background:rgba(10,143,138,.28);color:#fff}
.nav-item[aria-current="page"] .dot{background:var(--mint)}
.nav-item.soon{opacity:.55;cursor:default}
.nav-item .tag{margin-left:auto;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;border:1px solid rgba(255,255,255,.3);border-radius:8px;padding:1px 6px}
.side-foot{margin-top:auto;display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:12px;background:rgba(255,255,255,.07)}
.side-foot .lbl{font-size:12px;color:rgba(255,255,255,.72)}
.side-foot .val{font-size:16px;font-weight:800}
.meter{height:6px;border-radius:3px;background:rgba(255,255,255,.16);overflow:hidden}
.meter>i{display:block;height:100%;background:var(--mint);border-radius:3px}
.side-foot a,.side-foot button.link{font-size:12px;color:rgba(255,255,255,.85);background:none;border:0;padding:0;text-align:left;text-decoration:underline}

/* ---- page parts ---- */
.page{max-width:1180px;margin:0 auto;display:flex;flex-direction:column;gap:24px}
.page-head{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between}
.page-head h1{margin:0;font-size:28px;font-weight:800;letter-spacing:-.01em}
.page-head .sub{font-size:14px;color:var(--muted)}
.card-x{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;display:flex;flex-direction:column;gap:18px}
.card-x h2{margin:0;font-size:16px;font-weight:800;display:flex;align-items:center;gap:10px}
.card-x h2 .pip{width:10px;height:10px;border-radius:50%;background:var(--teal)}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.cols{display:flex;flex-wrap:wrap;gap:20px;align-items:flex-start}
.cols>.main{flex:2 1 420px;min-width:0;display:flex;flex-direction:column;gap:20px}
.cols>.aside{flex:1 1 280px;min-width:0;display:flex;flex-direction:column;gap:16px}
.table-x{width:100%;border-collapse:collapse}
.table-x th{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);text-align:left;padding:10px 14px;border-bottom:1px solid var(--line);font-weight:800;white-space:nowrap}
.table-x td{padding:12px 14px;border-bottom:1px solid #EEF2F4;font-size:14px;vertical-align:middle}
.table-x tr:last-child td{border-bottom:0}
.table-x tr.click{cursor:pointer}
.table-x tr.click:hover td{background:#F8FAFB}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px;background:#fff}
.chip{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:800}
.chip.ok{background:#DDF5E4;color:#1F7A3F}.chip.warn{background:#FFF1D6;color:#7A4B00}.chip.bad{background:#FDE3E1;color:#A8321F}.chip.gray{background:#EEF2F4;color:#44545E}
.thumb{width:44px;height:44px;border-radius:10px;background:#E1F4F3;color:var(--teal-d);font-weight:800;display:flex;align-items:center;justify-content:center;overflow:hidden;flex:0 0 44px}
.thumb img{width:100%;height:100%;object-fit:cover}
.row-flex{display:flex;align-items:center;gap:12px}
.empty{padding:40px 16px;text-align:center;color:var(--muted);font-size:14px}
.err{color:var(--danger);font-size:13px;font-weight:600;min-height:18px}
.uploader{border:1.5px dashed #9DB0B9;border-radius:12px;background:#F8FAFB;padding:16px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;color:var(--muted);font-size:13px;font-weight:600}
.cover-prev{height:160px;border-radius:12px;background-color:#CFE9E7;background-size:cover;background-position:center;border:1px solid var(--line)}
.logo-prev{width:88px;height:88px;border-radius:20px;background:var(--mint);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:34px;overflow:hidden;border:4px solid #fff;box-shadow:0 0 0 1px var(--line)}
.logo-prev img{width:100%;height:100%;object-fit:cover}
.skeleton{background:linear-gradient(90deg,#EEF2F4,#F8FAFB,#EEF2F4);background-size:200% 100%;animation:sk 1.1s infinite linear;border-radius:12px;min-height:80px}
@keyframes sk{to{background-position:-200% 0}}
.file-list{display:flex;flex-direction:column;gap:8px}
.file-item{display:flex;align-items:center;gap:12px;padding:8px;border:1px solid var(--line);border-radius:12px}
.file-item img{width:56px;height:56px;object-fit:cover;border-radius:8px}
.file-item .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600}

/* ---- auth ---- */
.auth-card{width:100%;max-width:420px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:32px;display:flex;flex-direction:column;gap:18px;box-shadow:0 10px 30px rgba(14,30,42,.08)}
.auth-card h1{margin:0;font-size:24px;font-weight:800}
.auth-logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:18px}
.auth-logo i{width:36px;height:36px;border-radius:10px;background:var(--teal);color:#fff;display:flex;align-items:center;justify-content:center;font-style:normal;font-size:22px}
.blocked{max-width:520px;text-align:center;align-items:center}

/* ---- toasts, dialogs ---- */
.toasts{position:fixed;right:24px;bottom:24px;display:flex;flex-direction:column-reverse;gap:10px;z-index:3000;max-width:min(380px,calc(100vw - 32px))}
.toast-x{background:var(--navy);color:#fff;padding:12px 16px;border-radius:12px;font-size:14px;font-weight:600;box-shadow:0 10px 24px rgba(0,0,0,.25);animation:toastIn .22s ease-out}
.toast-x.bad{background:#7A1F18}
@keyframes toastIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.net-chip{font-size:12px;font-weight:800;padding:4px 10px;border-radius:999px;background:#DDF5E4;color:#1F7A3F}
.net-chip.off{background:#FFF1D6;color:#7A4B00}

/* ---- narrow screens ---- */
@media (max-width:991.98px){
  .side{position:fixed;left:0;top:0;bottom:0;z-index:40;transform:translateX(-100%);transition:transform .22s ease;box-shadow:0 0 40px rgba(0,0,0,.4)}
  body.menu-open .side{transform:none}
  .backdrop{display:none;position:fixed;inset:0;background:rgba(14,30,42,.5);z-index:35}
  body.menu-open .backdrop{display:block}
  body[data-mode="portal"] .topbar{display:flex}
  .stage{padding:20px 16px}
  .grid2,.grid3{grid-template-columns:minmax(0,1fr)}
}
@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms !important;transition-duration:.001ms !important}}

/* ---- dialog ---- */
dialog.dlg{border:0;border-radius:18px;padding:0;max-width:min(460px,calc(100vw - 32px));width:100%;box-shadow:0 24px 60px rgba(14,30,42,.35)}
dialog.dlg::backdrop{background:rgba(14,30,42,.55)}
.dlg-in{padding:24px;display:flex;flex-direction:column;gap:16px}
.dlg-in h2{margin:0;font-size:18px;font-weight:800}
.dlg-in p{margin:0;color:var(--muted);font-size:14px;line-height:1.5}
.dlg-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.btn-danger-x{background:#B3261E;border-color:#B3261E;color:#fff}
.btn-danger-x:hover{background:#8f1d17;border-color:#8f1d17;color:#fff}
.sticky-actions{display:flex;gap:10px;flex-wrap:wrap}
.pwd-row{display:flex;gap:8px}
.pwd-row .form-control{flex:1}
.pager{display:flex;align-items:center;gap:10px;justify-content:flex-end;font-size:13px;color:var(--muted)}
.filters{display:flex;flex-wrap:wrap;gap:12px}
.filters .form-control,.filters .form-select{flex:1 1 180px;min-width:0}
