/* EMS V111 — Unified product visual system
   Every authenticated/public page follows the Cabinet visual language:
   graphite surfaces, soft light, restrained borders, generous radius, clear hierarchy.
*/
:root{
  --ems-bg-0:#070707;
  --ems-bg-1:#0b0c0d;
  --ems-surface:#111214;
  --ems-surface-2:#151618;
  --ems-surface-3:#1a1b1e;
  --ems-border:rgba(255,255,255,.09);
  --ems-border-strong:rgba(255,255,255,.16);
  --ems-text:#f5f5f5;
  --ems-text-2:#a6a8ad;
  --ems-text-3:#70737a;
  --ems-shadow:0 20px 70px rgba(0,0,0,.24);
  --ems-shadow-soft:0 10px 35px rgba(0,0,0,.16);
  --ems-radius:22px;
  --ems-radius-sm:14px;
  --accent:#fff;
  --accent-hover:#e8e8ea;
  --accent-bg:rgba(255,255,255,.08);
  --accent-text:#0a0a0b;
}
html,body{background:var(--ems-bg-0)!important;color:var(--ems-text)!important}
body{min-height:100vh;background:
  radial-gradient(circle at 74% 12%, rgba(255,255,255,.045), transparent 30%),
  radial-gradient(circle at 16% 82%, rgba(255,255,255,.03), transparent 28%),
  linear-gradient(180deg,var(--ems-bg-0) 0%,var(--ems-bg-1) 100%) !important;
}
/* Common shell */
.main-content{background:transparent!important}
.topbar{height:var(--ems-shell-topbar-height,72px)!important;padding:0 28px!important;background:rgba(10,10,11,.72)!important;border-bottom:1px solid var(--ems-border)!important;backdrop-filter:blur(18px)!important;box-shadow:0 6px 22px rgba(0,0,0,.08)!important}
.topbar-title,.cabinet-topbar-title-v105{font-size:15px!important;font-weight:700!important;letter-spacing:-.02em!important;color:var(--ems-text)!important}
.content{padding:26px 28px 40px!important;max-width:none!important}

/* Cabinet keeps its exact hero language; other pages borrow it. */
.page-header{position:relative;overflow:hidden;margin:0 0 22px!important;padding:34px 36px!important;min-height:170px!important;display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:flex-start!important;border-radius:28px!important;border:1px solid var(--ems-border)!important;background:
  radial-gradient(circle at 78% 28%, rgba(255,255,255,.10), transparent 32%),
  radial-gradient(circle at 12% 88%, rgba(255,255,255,.055), transparent 28%),
  linear-gradient(135deg,var(--ems-surface-2) 0%,var(--ems-surface) 54%,var(--ems-bg-1) 100%) !important;
box-shadow:var(--ems-shadow)!important}
.page-header::after{content:"";position:absolute;right:-120px;bottom:-170px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.065),transparent 64%);pointer-events:none}
.page-header h1{position:relative;z-index:1;margin:0 0 10px!important;font-size:clamp(34px,4.3vw,58px)!important;line-height:.98!important;letter-spacing:-.045em!important;font-weight:900!important;color:var(--ems-text)!important}
.page-header p{position:relative;z-index:1;margin:0!important;max-width:760px!important;color:var(--ems-text-2)!important;font-size:14px!important;line-height:1.6!important}

/* Primary content surfaces */
.card,.stat-card,.tile,.filters-bar,.table-container,.management-section,.ems-admin-table-card,.settings-nav-v101,.settings-workspace-v101 .settings-section-head,
.materials-card,.materials-hero,.materials-rates,.dovidky-form-panel,.dovidky-preview-panel,
.super-admin-banner,.danger-note{background:
  linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.018)) !important;
  border:1px solid var(--ems-border)!important;
  box-shadow:var(--ems-shadow-soft)!important;
  border-radius:var(--ems-radius)!important;
}
.card{padding:24px!important}
.card:hover,.tile:hover{transform:translateY(-1px)!important;border-color:var(--ems-border-strong)!important}

/* Buttons */
.btn{border-radius:14px!important;border:1px solid var(--ems-border)!important;box-shadow:none!important;min-height:44px!important}
.btn-primary{background:var(--accent)!important;color:var(--accent-text)!important;border-color:var(--accent)!important;box-shadow:0 10px 30px rgba(0,0,0,.16)!important}
.btn-primary:hover{background:var(--accent-hover)!important;border-color:var(--accent-hover)!important;transform:translateY(-1px)!important}
.btn-secondary,.btn-ghost{background:rgba(255,255,255,.035)!important;color:var(--ems-text)!important;border-color:var(--ems-border)!important}
.btn-danger{background:#17181b!important;color:#fff!important;border-color:#2b2d31!important}
/* Inputs */
.form-input,.form-textarea,.form-select,.filter-input,.filter-select,
.settings-workspace-v101 input,.settings-workspace-v101 select,.settings-workspace-v101 textarea{
  min-height:46px!important;padding:11px 14px!important;border-radius:13px!important;border:1px solid var(--ems-border)!important;background:rgba(255,255,255,.025)!important;color:var(--ems-text)!important;box-shadow:none!important}
.form-input:focus,.form-textarea:focus,.form-select:focus,.filter-input:focus,.filter-select:focus{border-color:var(--ems-border-strong)!important;box-shadow:0 0 0 4px rgba(255,255,255,.05)!important}
.form-label{font-size:12px!important;font-weight:700!important;color:var(--ems-text-2)!important;margin-bottom:8px!important}
.form-hint{color:var(--ems-text-3)!important}

/* Stats */
.stats-grid{gap:14px!important;margin-bottom:22px!important}
.stat-card{min-height:118px!important;padding:20px!important}
.stat-label{color:var(--ems-text-3)!important}
.stat-value{font-size:32px!important;letter-spacing:-.04em!important;color:var(--ems-text)!important}

/* Tables */
.table-container{overflow:auto!important}
table{border-collapse:separate!important;border-spacing:0!important;width:100%!important}
thead th{background:rgba(255,255,255,.025)!important;color:var(--ems-text-3)!important;font-size:10px!important;text-transform:uppercase!important;letter-spacing:.08em!important;border-bottom:1px solid var(--ems-border)!important}
tbody td{color:var(--ems-text-2)!important;border-top:1px solid var(--ems-border)!important}
/* Management */
.management-hero{position:relative;overflow:hidden;border-radius:28px!important;padding:34px 36px!important;background:
  radial-gradient(circle at 78% 24%,rgba(255,255,255,.10),transparent 30%),
  linear-gradient(135deg,var(--ems-surface-2),var(--ems-bg-1)) !important;border:1px solid var(--ems-border)!important;box-shadow:var(--ems-shadow)!important}
.management-hero h1{font-size:clamp(40px,5vw,64px)!important;letter-spacing:-.05em!important;line-height:.98!important;color:var(--ems-text)!important}
.management-hero p,.management-hero .eyebrow{color:var(--ems-text-2)!important}
.management-section{padding:22px!important}

/* Management settings — preserve functional layout, unify surface language */
.management-hero-v101{background:linear-gradient(135deg,var(--ems-surface-2),var(--ems-bg-1))!important;border-color:var(--ems-border)!important;box-shadow:var(--ems-shadow)!important}
.settings-nav-v101{background:linear-gradient(180deg,var(--ems-surface-2),var(--ems-bg-1))!important}
.settings-workspace-v101 .settings-section-head,.settings-workspace-v101 .settings-field,.settings-workspace-v101 .rank-permission-card,.settings-workspace-v101 .promotion-requirement-row,.settings-workspace-v101 .card{background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.018))!important;border-color:var(--ems-border)!important}

/* Materials / documents */
.materials-page .materials-hero{margin-bottom:22px!important}
.materials-hero,.materials-card,.materials-rates{box-shadow:var(--ems-shadow-soft)!important}
.dovidky-inner-body{background:transparent!important}
.dovidky-picker-section,.dovidky-form-panel,.dovidky-preview-panel{border-color:var(--ems-border)!important}

/* Uploads */
.ems-upload-box{background:rgba(255,255,255,.02)!important;border-color:var(--ems-border)!important;border-radius:16px!important}
.ems-upload-box:hover{border-color:var(--ems-border-strong)!important;background:rgba(255,255,255,.035)!important}
.ems-upload-remove{background:rgba(255,255,255,.06)!important;border-color:var(--ems-border-strong)!important;color:var(--ems-text)!important}

/* Sidebar follows the same graphite visual language */
#ems-sidebar.sidebar-v4{background:linear-gradient(180deg,#0d0e10 0%,#0a0b0d 100%)!important;border-right:1px solid var(--ems-border)!important;box-shadow:18px 0 50px rgba(0,0,0,.16)!important}
#ems-sidebar .sidebar-topbar{background:transparent!important;border-bottom:1px solid var(--ems-border)!important}
#ems-sidebar .sidebar-profile{background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.012))!important;border:1px solid var(--ems-border)!important;border-radius:18px!important}
/* Keep theme controls visually consistent */


/* Responsive: use the same spacious rhythm */
@media(max-width:900px){
  .content{padding:18px 16px 28px!important}
  .page-header{padding:28px 24px!important;min-height:150px!important;border-radius:24px!important}
  .page-header h1{font-size:clamp(32px,9vw,52px)!important}
  .management-hero{padding:28px 24px!important;border-radius:24px!important}
}
@media(max-width:560px){
  .topbar{padding:0 16px!important}
  .content{padding:12px 10px 22px!important}
  .page-header{padding:24px 20px!important;border-radius:20px!important}
  .card{padding:18px!important;border-radius:18px!important}
  .stats-grid{grid-template-columns:1fr!important}
  .input-group{flex-direction:column!important;gap:0!important}
}

/* V115: full-width operational pages */
.materials-page, .treasury-page{width:100%!important;max-width:none!important;margin:0!important;}
.materials-card, .treasury-card{width:100%!important;box-sizing:border-box;}


/* V116 minimal UI: remove decorative labels that add noise without function */
.supply-page .supply-hero .eyebrow,
.materials-badge,
.settings-save-state,
.settings-info b,
.settings-footer > span { display:none !important; }
.supply-page-full { width:100% !important; max-width:none !important; }


/* EMS V121 loading normalization */
.loading,.loading-state,.management-loading,[id$="loading"],[class*="loading"]{display:flex;align-items:center;justify-content:center;text-align:center;}
.management-loading{width:100%;min-height:180px;}
.dovidky-loading{min-height:180px;width:100%;display:flex;align-items:center;justify-content:center;text-align:center;}


/* EMS V128 loading normalization */
.loading,.loading-state,.management-loading,.dovidky-loading{width:100%;box-sizing:border-box;display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;min-height:120px;}
td:has(> .loading),td:has(> .loading-state){text-align:center!important;vertical-align:middle!important;}
#ems-sidebar .sidebar-profile{cursor:pointer;}
#ems-sidebar .sidebar-profile:focus-visible{outline:2px solid var(--accent,#fff);outline-offset:3px;}


/* V251 — compact operational page headers */
.page-header,
.materials-hero,
.supply-hero,
.treasury-hero,
.recruitment-hero,
.mentor-hero,
.promotion-system-hero,
.hospital-stats-hero-v183,
.top-doctors-hero,
.management-hero{
  min-height:0!important;padding:15px 18px!important;margin-top:0!important;margin-bottom:14px!important;
  border-radius:16px!important;gap:12px!important;box-shadow:0 10px 30px rgba(0,0,0,.07)!important
}
.page-header{flex-direction:row!important;align-items:baseline!important;justify-content:flex-start!important;flex-wrap:wrap!important}
.page-header::after{display:none!important}
.page-header h1,
.materials-hero h1,
.supply-hero h1,
.treasury-hero h1,
.recruitment-hero h1,
.mentor-hero h1,
.promotion-system-hero h1,
.hospital-stats-hero-v183 h1,
.top-doctors-hero h1,
.management-hero h1{
  margin:0!important;font-size:clamp(24px,2.5vw,34px)!important;line-height:1.08!important;letter-spacing:-.035em!important
}
.page-header p,
.materials-hero p,
.supply-hero p,
.treasury-hero p,
.recruitment-hero p,
.mentor-hero p,
.promotion-system-hero p,
.hospital-stats-hero-v183 p,
.top-doctors-hero p,
.management-hero p{
  margin:0!important;font-size:11px!important;line-height:1.4!important;color:var(--ems-text-2)!important;max-width:760px!important
}
.materials-hero>div,
.top-doctors-hero>div:first-child,
.promotion-system-hero>div:first-child,
.hospital-stats-hero-v183>div:first-child,
.management-hero>div:first-child{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.materials-hero>div>p,
.top-doctors-hero>div:first-child>p,
.promotion-system-hero>div:first-child>p,
.hospital-stats-hero-v183>div:first-child>p,
.management-hero>div:first-child>p{flex:1 1 280px}
.materials-hero .eyebrow,.management-hero .eyebrow,.top-doctors-kicker,.promotion-system-kicker,.mentor-kicker,.hospital-stats-hero-v183>div>span{font-size:8px!important}
@media(max-width:700px){
  .page-header,.materials-hero,.supply-hero,.treasury-hero,.recruitment-hero,.mentor-hero,.promotion-system-hero,.hospital-stats-hero-v183,.top-doctors-hero,.management-hero{padding:14px 15px!important;border-radius:14px!important}
  .page-header{display:block!important}
  .page-header h1{margin-bottom:4px!important}
  .materials-hero>div,.top-doctors-hero>div:first-child,.promotion-system-hero>div:first-child,.hospital-stats-hero-v183>div:first-child,.management-hero>div:first-child{display:block}
  .materials-hero h1,.supply-hero h1,.treasury-hero h1,.recruitment-hero h1,.mentor-hero h1,.promotion-system-hero h1,.hospital-stats-hero-v183 h1,.top-doctors-hero h1,.management-hero h1{font-size:26px!important;margin-bottom:4px!important}
}

/* V251.1 — keep compact headers visually consistent and one-line where possible */
.page-header,
.materials-hero,
.supply-hero,
.treasury-hero,
.recruitment-hero,
.mentor-hero,
.promotion-system-hero,
.hospital-stats-hero-v183,
.top-doctors-hero,
.management-hero{
  border:1px solid var(--ems-border)!important;
  background:linear-gradient(145deg,rgba(255,255,255,.04),rgba(255,255,255,.015))!important;
}
.supply-hero,.treasury-hero,.recruitment-hero,.mentor-hero{
  display:flex!important;align-items:baseline!important;justify-content:flex-start!important;flex-wrap:wrap!important
}
.supply-hero h1,.treasury-hero h1,.recruitment-hero h1,.mentor-hero h1{flex:0 0 auto}
.supply-hero p,.treasury-hero p,.recruitment-hero p,.mentor-hero p{flex:1 1 320px}
.management-hero .eyebrow,.top-doctors-kicker,.promotion-system-kicker,.mentor-kicker,.hospital-stats-hero-v183>div>span{display:none!important}
@media(max-width:700px){
  .supply-hero,.treasury-hero,.recruitment-hero,.mentor-hero{display:block!important}
}
