
:root{
  --sg-blue:#5e72e4;
  --sg-blue2:#2f80ed;
  --sg-dark:#172b4d;
  --sg-info:#11cdef;
  --sg-success:#2dce89;
  --sg-warning:#fb6340;
  --sg-danger:#f5365c;
  --sg-bg:#f6f9fc;
  --sg-muted:#8898aa;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body.sg-portal{
  margin:0;
  font-family:"Open Sans",Arial,sans-serif;
  background:
    radial-gradient(circle at 85% 8%, rgba(17,205,239,.12), transparent 28%),
    radial-gradient(circle at 10% 20%, rgba(94,114,228,.10), transparent 30%),
    linear-gradient(180deg,#f9fbff 0%,#f5f7fb 100%);
  color:#344767;
}
.sg-nav{
  max-width:1360px;margin:0 auto;padding:18px 24px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
}
.sg-brand{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--sg-dark);text-decoration:none}
.sg-brand-mark{
  width:44px;height:44px;border-radius:14px;
  background:linear-gradient(135deg,var(--sg-blue),var(--sg-success));
  color:#fff;display:grid;place-items:center;font-size:21px;
  box-shadow:0 10px 24px rgba(94,114,228,.22);
}
.sg-nav-actions{display:flex;align-items:center;gap:10px}
.sg-btn{
  border:0;border-radius:12px;padding:11px 16px;font-weight:700;
  text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  cursor:pointer;transition:.18s ease;position:relative;overflow:hidden;
}
.sg-btn:hover{transform:translateY(-2px)}
.sg-btn:active{transform:translateY(0)}
.sg-btn-primary{
  color:#fff;background:linear-gradient(135deg,#5e72e4,#4f46e5);
  box-shadow:0 10px 24px rgba(94,114,228,.22)
}
.sg-btn-telegram{
  color:#fff;background:linear-gradient(135deg,#229ED9,#11cdef);
  box-shadow:0 10px 24px rgba(34,158,217,.20)
}
.sg-btn-light{background:#fff;color:#344767;border:1px solid rgba(0,0,0,.06)}
.sg-pulse::after{
  content:"";position:absolute;inset:-2px;border-radius:14px;border:2px solid rgba(255,255,255,.35);
  animation:sgPulse 2.2s infinite
}
@keyframes sgPulse{
  0%{opacity:.8;transform:scale(.97)}
  70%{opacity:0;transform:scale(1.12)}
  100%{opacity:0}
}

.sg-hero{
  max-width:1360px;margin:4px auto 0;padding:16px 24px 28px;
  display:grid;grid-template-columns:.78fr 1.22fr;gap:30px;align-items:center;
}
.sg-hero-copy{padding:12px 0}
.sg-hero-copy h1{
  font-size:52px;line-height:1.06;margin:0 0 16px;color:var(--sg-dark);
  letter-spacing:-.035em;max-width:620px
}
.sg-hero-copy p{font-size:18px;line-height:1.65;color:#67748e;margin:0 0 22px;max-width:620px}
.sg-badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.sg-badge{
  background:rgba(255,255,255,.92);border:1px solid rgba(0,0,0,.06);
  border-radius:999px;padding:7px 11px;font-size:12px;font-weight:700;
  box-shadow:0 5px 16px rgba(50,50,93,.05)
}
.sg-hero-actions{display:flex;flex-wrap:wrap;gap:10px}
.sg-banner-shell{
  border-radius:26px;padding:10px;background:#fff;
  box-shadow:0 28px 70px rgba(50,50,93,.16);
  border:1px solid rgba(0,0,0,.05);
  position:relative;overflow:hidden;
}
.sg-banner-shell::before{
  content:"";position:absolute;inset:-40% auto auto -20%;width:55%;height:120%;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.32),transparent);
  transform:rotate(18deg);animation:sgShine 7s infinite;pointer-events:none;z-index:2
}
@keyframes sgShine{
  0%,70%{left:-45%;opacity:0}
  78%{opacity:1}
  100%{left:120%;opacity:0}
}
.sg-banner-shell img{display:block;width:100%;height:auto;border-radius:19px;position:relative;z-index:1}

.sg-stats{
  max-width:1360px;margin:0 auto;padding:8px 24px 32px;
  display:grid;grid-template-columns:repeat(4,1fr);gap:14px;
}
.sg-stat{
  background:rgba(255,255,255,.94);border:1px solid rgba(0,0,0,.05);
  border-radius:17px;padding:19px;box-shadow:0 8px 24px rgba(50,50,93,.06);
  transition:.18s ease
}
.sg-stat:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(50,50,93,.09)}
.sg-stat strong{display:block;font-size:29px;color:var(--sg-dark)}
.sg-stat span{font-size:12px;color:var(--sg-muted)}

.sg-status-wrap{max-width:1360px;margin:0 auto;padding:0 24px 32px}
.sg-status-panel{
  background:linear-gradient(135deg,#172b4d,#243b5e);
  color:#fff;border-radius:18px;padding:18px 20px;
  box-shadow:0 18px 45px rgba(23,43,77,.16)
}
.sg-status-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.sg-status-head h3{font-size:16px;margin:0}
.sg-status-head span{font-size:11px;opacity:.68}
.sg-status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.sg-status-item{
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08);
  border-radius:13px;padding:12px
}
.sg-status-title{font-size:12px;opacity:.78}
.sg-status-value{display:flex;align-items:center;gap:7px;margin-top:5px;font-size:13px;font-weight:700}
.sg-led{width:9px;height:9px;border-radius:50%;display:inline-block}
.sg-led.ok{background:#2dce89;box-shadow:0 0 0 5px rgba(45,206,137,.10)}
.sg-led.bad{background:#fb6340;box-shadow:0 0 0 5px rgba(251,99,64,.10)}

.sg-section{max-width:1360px;margin:0 auto;padding:20px 24px 48px}
.sg-section-title{text-align:center;margin-bottom:22px}
.sg-section-title h2{margin:0 0 8px;color:var(--sg-dark)}
.sg-section-title p{margin:0;color:var(--sg-muted)}
.sg-features{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.sg-feature{
  background:#fff;border:1px solid rgba(0,0,0,.05);border-radius:18px;padding:20px;
  transition:.18s ease
}
.sg-feature:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(50,50,93,.08)}
.sg-feature-icon{
  width:46px;height:46px;border-radius:13px;background:#f1f4ff;
  display:grid;place-items:center;font-size:20px;margin-bottom:12px
}
.sg-feature h3{font-size:16px;margin:0 0 6px;color:var(--sg-dark)}
.sg-feature p{font-size:13px;line-height:1.55;color:#67748e;margin:0}
.sg-footer{
  max-width:1360px;margin:0 auto;padding:18px 24px 28px;color:var(--sg-muted);
  font-size:12px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap
}

/* Premium modal */
.sg-modal-backdrop{
  display:none;position:fixed;inset:0;background:rgba(13,25,46,.58);
  backdrop-filter:blur(8px);z-index:2000;padding:18px;
  align-items:center;justify-content:center
}
.sg-modal-backdrop.open{display:flex}
.sg-modal{
  width:min(920px,100%);background:rgba(255,255,255,.97);
  border:1px solid rgba(255,255,255,.8);border-radius:24px;
  box-shadow:0 35px 100px rgba(17,24,39,.30);
  display:grid;grid-template-columns:.92fr 1.08fr;overflow:hidden
}
.sg-modal-form{padding:30px}
.sg-modal-visual{
  min-height:520px;
  background:
   linear-gradient(rgba(5,28,58,.08),rgba(5,28,58,.08)),
   url("../img/smartgeoai-portal-banner.png") center/cover no-repeat;
  position:relative
}
.sg-modal-visual::after{
  content:"SmartGeoAI • AI + GIS + GSOR";
  position:absolute;left:22px;right:22px;bottom:20px;
  padding:12px 14px;border-radius:12px;background:rgba(9,29,61,.68);
  color:#fff;font-weight:700;font-size:13px;backdrop-filter:blur(8px)
}
.sg-modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.sg-modal-head h3{margin:0;color:var(--sg-dark);font-size:24px}
.sg-close{border:0;background:#f4f6f9;width:36px;height:36px;border-radius:10px;cursor:pointer}
.sg-field{margin-bottom:14px}
.sg-field label{display:block;font-size:12px;font-weight:700;margin-bottom:6px;color:#525f7f}
.sg-field input{
  width:100%;border:1px solid #e6e9ef;border-radius:12px;padding:13px 14px;
  outline:none;font-size:14px;background:#fff
}
.sg-field input:focus{border-color:#5e72e4;box-shadow:0 0 0 3px rgba(94,114,228,.12)}
.sg-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;margin-bottom:16px}
.sg-login-btn{width:100%}
.sg-or{text-align:center;color:var(--sg-muted);font-size:12px;margin:14px 0}
.sg-login-note{
  margin-top:16px;padding:10px 12px;border-radius:10px;background:#f7f9fc;
  color:#67748e;font-size:11px;line-height:1.5
}

@media(max-width:980px){
  .sg-hero{grid-template-columns:1fr}
  .sg-banner-shell{order:-1}
  .sg-hero-copy h1{font-size:40px}
  .sg-stats{grid-template-columns:repeat(2,1fr)}
  .sg-features{grid-template-columns:repeat(2,1fr)}
  .sg-status-grid{grid-template-columns:repeat(2,1fr)}
  .sg-modal{grid-template-columns:1fr}
  .sg-modal-visual{display:none}
}
@media(max-width:560px){
  .sg-nav{padding:14px}
  .sg-nav-actions .sg-btn-telegram{display:none}
  .sg-hero{padding:8px 14px 22px}
  .sg-hero-copy h1{font-size:31px}
  .sg-hero-copy p{font-size:15px}
  .sg-hero-actions{display:grid;grid-template-columns:1fr}
  .sg-stats{padding:0 14px 22px;grid-template-columns:1fr 1fr}
  .sg-stat{padding:14px}.sg-stat strong{font-size:23px}
  .sg-status-wrap{padding:0 14px 22px}
  .sg-status-grid{grid-template-columns:1fr 1fr}
  .sg-section{padding:18px 14px 34px}
  .sg-features{grid-template-columns:1fr}
  .sg-modal-form{padding:20px}
}


/* ===================== Portal v4.1 integrated additions ===================== */
.sg-public-map{
  height:520px;
  width:100%;
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(0,0,0,.05);
  box-shadow:0 14px 34px rgba(50,50,93,.08);
  background:#eef3f8;
}
.sg-public-map-wrap{
  background:#fff;
  padding:10px;
  border-radius:22px;
  border:1px solid rgba(0,0,0,.05);
}
.sg-map-note{
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:12px 14px;
  border-radius:13px;
  background:#f7fafc;
  color:#67748e;
  font-size:12px;
  line-height:1.5;
  margin-top:12px;
}

.sg-research-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.sg-research-card{
  background:#fff;
  border:1px solid rgba(0,0,0,.05);
  border-radius:17px;
  padding:18px;
  position:relative;
  overflow:hidden;
}
.sg-research-card::before{
  content:"";
  position:absolute;
  left:0; top:0; bottom:0;
  width:4px;
  background:linear-gradient(180deg,#5e72e4,#11cdef);
}
.sg-research-card h3{
  font-size:15px;
  color:#172b4d;
  margin:0 0 7px;
}
.sg-research-card p{
  font-size:12px;
  color:#67748e;
  line-height:1.55;
  margin:0;
}

.sg-pipeline{
  display:flex;
  align-items:stretch;
  gap:10px;
  overflow-x:auto;
  padding-bottom:6px;
  -webkit-overflow-scrolling:touch;
}
.sg-pipeline-step{
  min-width:190px;
  flex:1;
  background:#fff;
  border:1px solid rgba(0,0,0,.05);
  border-radius:16px;
  padding:16px;
}
.sg-pipeline-no{
  width:34px;
  height:34px;
  border-radius:10px;
  display:grid;
  place-items:center;
  color:#fff;
  font-weight:800;
  background:linear-gradient(135deg,#5e72e4,#11cdef);
  margin-bottom:10px;
}
.sg-pipeline-step b{
  color:#172b4d;
  font-size:13px;
}
.sg-pipeline-step div:last-child{
  font-size:11px;
  color:#8898aa;
  margin-top:5px;
  line-height:1.45;
}

.sg-public-navlinks{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.sg-public-navlinks a{
  color:#525f7f;
  text-decoration:none;
  font-size:12px;
  font-weight:700;
  padding:8px 10px;
  border-radius:9px;
}
.sg-public-navlinks a:hover{
  background:#f3f6fb;
}

@media(max-width:1000px){
  .sg-research-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:560px){
  .sg-public-map{
    height:390px;
  }
  .sg-research-grid{
    grid-template-columns:1fr;
  }
  .sg-public-navlinks{
    display:none;
  }
}


/* ================= Public Map v2 + Platform Status v2 ================= */
.sg-status-summary{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:10px;
}
.sg-status-pill{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:7px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  font-size:11px;
}
.sg-status-dot-good{background:#2dce89}
.sg-status-dot-warn{background:#fbcf33}
.sg-status-dot-bad{background:#fb6340}
.sg-status-detail{
  margin-top:4px;
  font-size:10px;
  opacity:.62;
  line-height:1.4;
}
.sg-led.warn{
  background:#fbcf33;
  box-shadow:0 0 0 5px rgba(251,207,51,.10);
}

.sg-map-dashboard{
  display:grid;
  grid-template-columns:minmax(0,1fr) 290px;
  gap:16px;
  align-items:stretch;
}
.sg-map-side{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.sg-map-side-card{
  background:#fff;
  border:1px solid rgba(0,0,0,.05);
  border-radius:17px;
  padding:16px;
}
.sg-map-side-card h3{
  margin:0 0 10px;
  font-size:14px;
  color:#172b4d;
}
.sg-map-filters{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:12px;
}
.sg-map-filter{
  --sg-cat-color:#5e72e4;
  border:1px solid rgba(0,0,0,.06);
  background:#fff;
  color:#525f7f;
  border-radius:999px;
  padding:7px 10px;
  font-size:11px;
  font-weight:700;
  display:inline-flex;
  align-items:center;
  gap:6px;
  cursor:pointer;
  transition:.15s ease;
}
.sg-map-filter:hover,
.sg-map-filter.active{
  border-color:var(--sg-cat-color);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--sg-cat-color) 14%, transparent);
}
.sg-map-filter-dot{
  width:8px;height:8px;border-radius:50%;
  background:var(--sg-cat-color);
}
.sg-top-org-row{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:10px;
  padding:8px 0;
  border-bottom:1px solid rgba(0,0,0,.05);
  font-size:11px;
  color:#67748e;
}
.sg-top-org-row:last-child{border-bottom:0}
.sg-top-org-row b{color:#172b4d}
.sg-map-counter{
  padding:10px 12px;
  border-radius:12px;
  background:#f7fafc;
  font-size:11px;
  color:#67748e;
}

@media(max-width:900px){
  .sg-map-dashboard{
    grid-template-columns:1fr;
  }
  .sg-map-side{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
}
@media(max-width:560px){
  .sg-map-side{
    grid-template-columns:1fr;
  }
  .sg-map-filter{
    font-size:10px;
    padding:6px 8px;
  }
}


/* ================= Public Analytics v1 ================= */
.sg-analytics-grid{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:16px;
}
.sg-analytics-card{
  background:#fff;
  border:1px solid rgba(0,0,0,.05);
  border-radius:18px;
  padding:18px;
  min-width:0;
}
.sg-analytics-card h3{
  margin:0 0 14px;
  font-size:15px;
  color:#172b4d;
}
.sg-bar-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.sg-bar-row{
  display:grid;
  grid-template-columns:minmax(120px,1fr) 2fr 42px;
  gap:10px;
  align-items:center;
}
.sg-bar-label{
  font-size:11px;
  color:#525f7f;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.sg-bar-track{
  height:9px;
  border-radius:999px;
  background:#eef2f7;
  overflow:hidden;
}
.sg-bar-fill{
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,#5e72e4,#11cdef);
}
.sg-bar-value{
  font-size:11px;
  color:#172b4d;
  font-weight:800;
  text-align:right;
}
.sg-trend{
  display:flex;
  align-items:flex-end;
  gap:3px;
  height:150px;
  padding:12px 0 0;
  overflow:hidden;
}
.sg-trend-col{
  flex:1;
  min-width:3px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  gap:2px;
  height:100%;
}
.sg-trend-total{
  width:100%;
  border-radius:3px 3px 0 0;
  background:#5e72e4;
  opacity:.72;
}
.sg-trend-resolved{
  width:100%;
  border-radius:3px 3px 0 0;
  background:#2dce89;
}
.sg-trend-legend{
  display:flex;
  gap:14px;
  flex-wrap:wrap;
  font-size:11px;
  color:#67748e;
  margin-top:10px;
}
.sg-legend-dot{
  width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:5px;
}
.sg-science-metrics{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
}
.sg-science-metric{
  background:linear-gradient(180deg,#fff,#f9fbff);
  border:1px solid rgba(0,0,0,.05);
  border-radius:16px;
  padding:16px;
}
.sg-science-metric strong{
  display:block;
  font-size:22px;
  color:#172b4d;
}
.sg-science-metric span{
  font-size:11px;
  color:#8898aa;
}

@media(max-width:900px){
  .sg-analytics-grid{grid-template-columns:1fr}
  .sg-science-metrics{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:560px){
  .sg-bar-row{grid-template-columns:100px 1fr 34px}
  .sg-science-metrics{grid-template-columns:1fr 1fr}
}


/* ================= Public Analytics v2 ================= */
.sg-analytics-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
  flex-wrap:wrap;
}
.sg-analytics-period{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  color:#67748e;
}
.sg-analytics-period select{
  border:1px solid rgba(0,0,0,.08);
  background:#fff;
  color:#344767;
  border-radius:10px;
  padding:8px 10px;
  outline:none;
}
.sg-analytics-context{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.sg-mini-info{
  border-radius:999px;
  padding:7px 10px;
  background:#f7fafc;
  color:#67748e;
  font-size:11px;
}
.sg-research-confidence{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:7px 10px;
  border-radius:999px;
  font-size:11px;
  font-weight:800;
}
.sg-research-confidence.good{background:#e8fbf3;color:#16875d}
.sg-research-confidence.warn{background:#fff7df;color:#a36a00}
.sg-research-confidence.bad{background:#fff0ed;color:#c8422c}
.sg-loading{opacity:.58;pointer-events:none;transition:.15s ease}
@media(max-width:560px){
  .sg-analytics-toolbar{align-items:stretch}
  .sg-analytics-period{width:100%;justify-content:space-between}
  .sg-analytics-period select{flex:1}
  .sg-analytics-context{width:100%}
}


/* ================= Research Transparency v1 ================= */
.sg-transparency{
  background:linear-gradient(135deg,#172b4d,#263f67);
  color:#fff;
  border-radius:22px;
  padding:22px;
  box-shadow:0 18px 45px rgba(23,43,77,.16);
}
.sg-transparency-grid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:18px;
}
.sg-transparency-panel{
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.08);
  border-radius:16px;
  padding:18px;
}
.sg-transparency-panel h3{
  margin:0 0 12px;
  font-size:15px;
  color:#fff;
}
.sg-transparency-metrics{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
}
.sg-transparency-metric{
  background:rgba(255,255,255,.07);
  border-radius:13px;
  padding:12px;
}
.sg-transparency-metric strong{
  display:block;
  font-size:20px;
  color:#fff;
}
.sg-transparency-metric span{
  font-size:10px;
  opacity:.68;
}
.sg-research-level{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:7px 10px;
  border-radius:999px;
  font-size:11px;
  font-weight:800;
  margin-bottom:10px;
}
.sg-research-level.pilot{background:rgba(251,99,64,.18);color:#ffd9d1}
.sg-research-level.adequate{background:rgba(251,207,51,.16);color:#ffe99b}
.sg-research-level.strong{background:rgba(45,206,137,.18);color:#bdf5dd}
.sg-method-tags{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:10px;
}
.sg-method-tag{
  padding:6px 9px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  font-size:10px;
  color:rgba(255,255,255,.82);
}
.sg-freshness{
  font-size:10px;
  color:rgba(255,255,255,.58);
  line-height:1.6;
  margin-top:10px;
}
.sg-research-note{
  margin-top:12px;
  padding:11px 12px;
  border-radius:12px;
  background:rgba(255,255,255,.06);
  font-size:11px;
  line-height:1.55;
  color:rgba(255,255,255,.78);
}
@media(max-width:900px){
  .sg-transparency-grid{grid-template-columns:1fr}
  .sg-transparency-metrics{grid-template-columns:repeat(2,1fr)}
}
