/*
 * Digital Пятигорск UI 1.2.0
 * Единый визуальный слой для всех модулей digital.pyatigorsk.ru.
 * Проекты должны хранить здесь только общий дизайн; собственные CSS — только для уникальной логики/компоновки.
 */
:root{
  --digital-bg:#030818;
  --digital-bg-2:#061139;
  --digital-panel:rgba(5,15,43,.70);
  --digital-panel-strong:rgba(4,12,36,.84);
  --digital-panel-soft:rgba(8,22,59,.58);
  --digital-blue:#159fe8;
  --digital-cyan:#36d9ff;
  --digital-purple:#7657ff;
  --digital-pink:#d84cff;
  --digital-green:#3dda91;
  --digital-yellow:#f5bd4f;
  --digital-red:#ff6175;
  --digital-text:#f7fbff;
  --digital-muted:#91a4c7;
  --digital-soft:#61779e;
  --digital-border:rgba(142,231,255,.14);
  --digital-border-strong:rgba(142,231,255,.24);
  --digital-shadow:0 24px 70px rgba(0,0,0,.28);
  --digital-radius:22px;
  --digital-radius-sm:13px;
  --digital-font:"Segoe UI Variable Text","Segoe UI",Inter,Roboto,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
  --digital-display:"Segoe UI Variable Display","Segoe UI Variable Text","Segoe UI",Inter,system-ui,sans-serif;
}

*{box-sizing:border-box}
html{background:var(--digital-bg);color-scheme:dark}
body{
  font-family:var(--digital-font)!important;
  color:var(--digital-text);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/*
 * Главный фон платформы.
 * Он применяется к ЛЮБОЙ странице Digital, независимо от локального CSS проекта.
 */
body.digital-page{
  background-color:var(--digital-bg)!important;
  background-image:
    linear-gradient(90deg,
      rgba(2,7,22,.60) 0%,
      rgba(2,7,22,.43) 34%,
      rgba(2,7,22,.23) 67%,
      rgba(2,7,22,.32) 100%),
    linear-gradient(180deg,
      rgba(2,7,22,.06) 0%,
      rgba(2,7,22,.10) 38%,
      rgba(2,7,22,.34) 72%,
      rgba(2,7,22,.64) 100%),
    url("/_ui/assets/mountain-bg.webp")!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  background-attachment:fixed!important;
}
::selection{background:rgba(54,217,255,.25);color:#fff}

/* Единый фирменный фон — используется и внутри всех разделов */
.site-bg,.bg{
  background-color:transparent!important;
  background-image:url("/_ui/assets/mountain-bg.webp")!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  opacity:1!important;
}
.site-bg::after,.bg::after{
  background:
    linear-gradient(90deg,
      rgba(2,7,22,.62) 0%,
      rgba(2,7,22,.43) 38%,
      rgba(2,7,22,.18) 72%,
      rgba(2,7,22,.12) 100%),
    linear-gradient(180deg,
      rgba(2,7,22,.03) 0%,
      rgba(2,7,22,.10) 50%,
      rgba(2,7,22,.38) 100%)!important;
}

/* Если проект использует собственный body::before, он также получает общий фон */
body.digital-page::before{
  background-image:url("/_ui/assets/mountain-bg.webp")!important;
  background-color:transparent!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
}

/* Контейнеры */
.container,.shell,.header-inner{max-width:1180px}
.container{width:min(1180px,calc(100% - 44px))!important;margin-inline:auto}

/* Общая шапка */
.header,body>header,.site-header{
  border-bottom:1px solid rgba(142,231,255,.09)!important;
  background:linear-gradient(180deg,rgba(2,7,22,.72),rgba(2,7,22,.46))!important;
  backdrop-filter:blur(22px) saturate(1.15);
  -webkit-backdrop-filter:blur(22px) saturate(1.15);
}
.header{padding:20px 0!important}
.site-header{background:rgba(2,7,22,.69)!important}
.brand,.brand-lockup,.digital-brand{display:inline-flex;align-items:center;gap:12px;color:#fff!important;text-decoration:none}
.brand img,.brand-logo,.brand-mark img,.digital-brand-mark{
  width:48px!important;height:48px!important;object-fit:contain!important;filter:drop-shadow(0 0 16px rgba(54,217,255,.17))!important
}
.brand span,.brand-name,.brand-copy strong{font-family:var(--digital-display)!important;font-weight:760!important;letter-spacing:-.025em!important;color:#fff!important}
.brand-copy small{color:var(--digital-muted)!important;letter-spacing:.02em}

/* Навигация / вторичные элементы */
.nav-link,.status-button,.back,.module-chip,.status-pill{
  border:1px solid var(--digital-border)!important;
  background:rgba(5,15,43,.44)!important;
  color:#c7d4ea!important;
  backdrop-filter:blur(12px);
  box-shadow:inset 0 1px rgba(255,255,255,.025)
}
.nav-link:hover,.status-button:hover,.back:hover{border-color:rgba(54,217,255,.30)!important;color:#fff!important;background:rgba(9,29,68,.64)!important}
.status-main-dot,.status-dot,.dot{box-shadow:0 0 12px currentColor}

/* Типографика */
h1,h2,h3,.hero h1,.card-title,.overall-title,.modal-title{font-family:var(--digital-display)!important}
.gradient,em{background:linear-gradient(100deg,var(--digital-cyan),#7394ff 52%,#cf6cff);-webkit-background-clip:text;background-clip:text;color:transparent!important;font-style:normal}
.kicker,.eyebrow,.section-label{color:#73e3ff!important}
.intro,.hero-lead,.hero-copy>p,.section-description,.diag-help,.modal-subtitle,.future{color:rgba(225,235,250,.64)!important}

/* Единые glass surfaces */
.about-panel,.card,.overall,.diag,.modal,.entry-ip-inner,.services-gate-inner,.service-splash-inner,
.glass-card,.mode-card,.workspace,.print-info,.privacy-panel,.manual-panel,.template-card,.control-row,.stat-card{
  border-color:var(--digital-border)!important;
  background:linear-gradient(145deg,rgba(7,20,56,.72),rgba(3,10,31,.66))!important;
  box-shadow:var(--digital-shadow),inset 0 1px rgba(255,255,255,.03)!important;
  backdrop-filter:blur(22px) saturate(1.08)!important;
  -webkit-backdrop-filter:blur(22px) saturate(1.08)!important;
}
.card:hover,.mode-card:hover,.template-card:hover{border-color:rgba(54,217,255,.28)!important;background:linear-gradient(145deg,rgba(9,27,68,.79),rgba(5,13,39,.72))!important}

/* Кнопки */
.btn,.refresh,.copy,.speed-button,.foreign-ip-button,.services-gate-button,.entry-ip-btn,.service-splash-button{
  font-family:var(--digital-font)!important;font-weight:720!important;border-radius:12px!important;transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease!important
}
.btn-primary,.primary,.speed-button,.services-gate-button,.entry-ip-recheck{
  color:#fff!important;border:1px solid rgba(113,213,255,.38)!important;
  background:linear-gradient(105deg,#149fe8 0%,#586eff 57%,#8d4dff 100%)!important;
  box-shadow:0 10px 28px rgba(59,101,255,.20),inset 0 1px rgba(255,255,255,.16)!important
}
.btn-primary:hover,.primary:hover,.speed-button:hover,.services-gate-button:hover,.entry-ip-recheck:hover{transform:translateY(-1px);box-shadow:0 14px 34px rgba(59,101,255,.28)!important}
.btn-secondary,.ghost,.refresh,.copy{color:#d8e6f7!important;border:1px solid var(--digital-border)!important;background:rgba(4,13,38,.58)!important}

/* Inputs + tables */
input,select,textarea,.id-input,.label-input{
  border-color:var(--digital-border)!important;background:rgba(3,10,31,.68)!important;color:#f4f8ff!important;border-radius:10px!important
}
input:focus,select:focus,textarea:focus,.id-input:focus,.label-input:focus{outline:none!important;border-color:rgba(54,217,255,.55)!important;box-shadow:0 0 0 3px rgba(54,217,255,.08)!important}
table{border-color:var(--digital-border)!important}
thead{background:rgba(3,11,34,.76)!important}
th{color:#7f97bd!important;border-color:rgba(142,231,255,.08)!important}
td{border-color:rgba(142,231,255,.07)!important}
tbody tr:hover{background:rgba(54,217,255,.025)!important}

/* Оверлеи */
.modal-backdrop,.overlay{background:rgba(1,4,15,.72)!important;backdrop-filter:blur(14px)!important}

/* Полноэкранные экраны доступа сохраняют фирменную цифровую гору */
#entryIpWarning,#servicesAccessGate,#serviceSplash{
  background-color:#030818!important;
  background-image:
    linear-gradient(90deg,rgba(1,5,20,.62) 0%,rgba(2,7,26,.44) 45%,rgba(4,6,28,.34) 100%),
    linear-gradient(180deg,rgba(1,5,20,.08) 0%,rgba(1,5,20,.18) 58%,rgba(1,5,20,.48) 100%),
    url("/_ui/assets/mountain-bg.webp")!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

.entry-ip-logo,.services-gate-logo,.service-splash-logo{
  width:82px!important;height:82px!important;object-fit:contain!important;
  filter:drop-shadow(0 0 22px rgba(54,217,255,.25)) drop-shadow(0 0 44px rgba(118,87,255,.12))!important
}
.entry-ip-inner,.services-gate-inner,.service-splash-inner{
  position:relative!important;
  padding:38px 42px 36px!important;
  border:1px solid rgba(142,231,255,.18)!important;
  border-radius:26px!important;
  background:linear-gradient(145deg,rgba(5,16,49,.76),rgba(3,9,29,.72))!important;
  box-shadow:0 28px 90px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.04)!important;
  backdrop-filter:blur(18px) saturate(1.08)!important;
  -webkit-backdrop-filter:blur(18px) saturate(1.08)!important;
}
.entry-ip-inner::before,.services-gate-inner::before,.service-splash-inner::before{
  content:"Digital Пятигорск";
  display:block;
  margin:12px 0 2px;
  color:#9ab0d2;
  font-size:12px;
  font-weight:720;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.entry-ip-country{
  display:inline-flex!important;align-items:center;justify-content:center;
  min-height:30px;padding:0 11px;margin-top:12px!important;
  border:1px solid rgba(54,217,255,.16);border-radius:999px;
  background:rgba(3,14,40,.40);
}
@media(max-width:700px){
  #entryIpWarning,#servicesAccessGate,#serviceSplash{background-position:58% center!important}
  .entry-ip-inner,.services-gate-inner,.service-splash-inner{padding:30px 22px 28px!important;border-radius:22px!important}
  .entry-ip-logo,.services-gate-logo,.service-splash-logo{width:72px!important;height:72px!important}
}


/* Общая маркировка модулей */
.module-chip{color:#9eeeff!important}
.status-pill{color:#a9b9d4!important}

/* Footer */
.footer,footer{color:rgba(220,232,249,.48)!important;border-color:rgba(142,231,255,.07)!important}

/* Скролл */
*{scrollbar-width:thin;scrollbar-color:rgba(104,140,199,.38) transparent}
::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(104,140,199,.28);border-radius:999px;border:2px solid transparent;background-clip:padding-box}

/* QR Print — центральный UI должен иметь последнее слово только в общем визуале */
.mode-section,.hero,.workspace,.print-info,.stats-grid,.control-row{position:relative}
.drop-zone{background:linear-gradient(145deg,rgba(7,22,61,.76),rgba(4,12,38,.76))!important}
.source-chip{border-color:var(--digital-border)!important}

@media(max-width:700px){
  .container{width:min(100% - 28px,1180px)!important}
  body::before,.site-bg,.bg{background-position:56% top!important}
  .brand img,.brand-logo,.brand-mark img{width:42px!important;height:42px!important}
}


/* UI 1.2 — фон является частью платформы, а не отдельной страницы */
@media(max-width:700px){
  body.digital-page{
    background-attachment:scroll!important;
    background-position:56% top!important;
  }
}
