/* v45 — unified banner editor palette and branded in-app dialogs/toasts */
body.admin-page .v45-banner-editor{
  --b45-bg:#17172f;--b45-panel:#1d1d3b;--b45-line:rgba(177,158,255,.22);--b45-text:#f4f1ff;--b45-muted:#b9b3d0;--b45-accent:#9b7cff;
  position:relative;display:grid;gap:14px;padding:22px!important;border:1px solid var(--b45-line)!important;border-radius:20px!important;
  color:var(--b45-text)!important;background:linear-gradient(145deg,rgba(34,31,67,.98),rgba(19,20,43,.98))!important;
  box-shadow:0 18px 44px rgba(0,0,0,.22),inset 0 1px rgba(255,255,255,.045)!important
}
body.admin-page .v45-banner-editor .promo-banner-heading{color:var(--b45-text)}
body.admin-page .v45-banner-editor .promo-banner-heading h3,body.admin-page .v45-banner-editor h3{color:#fff!important;font-size:19px;letter-spacing:-.02em}
body.admin-page .v45-banner-editor .promo-banner-heading p,body.admin-page .v45-banner-editor p{color:var(--b45-muted)!important}
body.admin-page .v45-banner-editor label:not(.toggle-line){display:grid;gap:8px;color:#e7e1fa!important;font-size:13px;font-weight:700}
body.admin-page .v45-banner-editor input:not([type=checkbox]),body.admin-page .v45-banner-editor textarea,body.admin-page .v45-banner-editor select{
 width:100%;min-width:0;padding:12px 14px!important;border:1px solid rgba(177,158,255,.22)!important;border-radius:12px!important;
 background:linear-gradient(180deg,#111127,#14142d)!important;color:#f7f4ff!important;box-shadow:inset 0 1px rgba(255,255,255,.025)!important;
 font-family:inherit;font-size:14px;font-weight:500;line-height:1.5;transition:border-color .18s,box-shadow .18s,background .18s
}
body.admin-page .v45-banner-editor textarea{min-height:84px;resize:vertical}
body.admin-page .v45-banner-editor input:focus,body.admin-page .v45-banner-editor textarea:focus{outline:none!important;border-color:#a58aff!important;box-shadow:0 0 0 3px rgba(165,138,255,.15)!important;background:#15142f!important}
body.admin-page .v45-banner-editor input::placeholder,body.admin-page .v45-banner-editor textarea::placeholder{color:#77718f!important}
body.admin-page .v45-banner-editor .toggle-line{display:flex;align-items:center;gap:11px;margin:0!important;padding:13px 15px!important;border:1px solid rgba(105,220,185,.22)!important;border-radius:13px!important;background:linear-gradient(100deg,rgba(66,191,157,.10),rgba(155,124,255,.07))!important;color:#e8fff7!important;font-weight:700}
body.admin-page .v45-banner-editor .toggle-line input{width:19px;height:19px;accent-color:#8c75ef}
body.admin-page .v45-banner-editor .form-grid{gap:14px}
body.admin-page .v45-banner-editor .v45-banner-live{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;margin:2px 0 0;padding:17px 18px!important;border:1px solid rgba(155,124,255,.28)!important;border-radius:15px!important;background:linear-gradient(112deg,#28234b,#1d1d3b)!important;color:#f5f1ff!important}
.v45-preview-mark{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:linear-gradient(140deg,#8068dc,#51409b);color:#fff;font-size:22px;box-shadow:0 7px 20px rgba(0,0,0,.22)}
.v45-preview-copy{min-width:0;display:grid;gap:3px}.v45-preview-copy span{font-size:9px;letter-spacing:.16em;font-weight:900;color:#b9a8ff}.v45-preview-copy b{font-size:16px;color:#fff}.v45-preview-copy p{margin:0!important;color:#d0c9e5!important;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
body.admin-page .v45-banner-editor .v45-banner-live em{justify-self:end;padding:10px 13px;border:0;border-radius:10px;background:linear-gradient(115deg,#9878f4,#6e4bd2);color:#fff!important;font-style:normal;font-size:12px;font-weight:850;white-space:nowrap}
body.admin-page .v45-banner-editor>.muted{font-size:12px;line-height:1.6;margin:0}
/* Toasts are rendered by the portal, not browser alert popups. */
.app-toast-stack{position:fixed;z-index:12000;right:22px;bottom:22px;display:grid;gap:10px;width:min(390px,calc(100vw - 28px));pointer-events:none}
.app-toast{display:flex;align-items:center;gap:12px;padding:13px 16px;border:1px solid rgba(177,158,255,.26);border-radius:14px;background:linear-gradient(135deg,rgba(37,34,72,.98),rgba(21,22,47,.98));color:#f5f1ff;box-shadow:0 16px 42px rgba(0,0,0,.35);opacity:0;transform:translateY(12px) scale(.98);transition:opacity .2s,transform .2s;backdrop-filter:blur(14px)}
.app-toast.is-visible{opacity:1;transform:translateY(0) scale(1)}.app-toast-mark{flex:0 0 25px;width:25px;height:25px;display:grid;place-items:center;border-radius:9px;background:rgba(101,214,176,.15);color:#8ce8c8;font-weight:900}.app-toast-error .app-toast-mark{background:rgba(255,104,130,.15);color:#ff9bad}.app-toast-warning .app-toast-mark{background:rgba(255,190,92,.15);color:#ffd18c}.app-toast-text{font-size:13px;line-height:1.45;overflow-wrap:anywhere}
@media(max-width:600px){body.admin-page .v45-banner-editor{padding:15px!important}.v45-banner-live{grid-template-columns:auto minmax(0,1fr)!important;padding:14px!important}.v45-banner-live em{grid-column:1/-1;justify-self:stretch!important;text-align:center}.app-toast-stack{right:14px;bottom:14px}}
@media(prefers-reduced-motion:reduce){.app-toast{transition:none}}

/* v48 — fix confirmation backdrop inheriting global admin button styles */
body.admin-page .app-confirm .app-confirm-backdrop,
body.portal-page .app-confirm .app-confirm-backdrop {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: rgba(8, 8, 20, .68) !important;
  box-shadow: none !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
  cursor: default !important;
}
body.admin-page .app-confirm .app-confirm-backdrop:hover,
body.portal-page .app-confirm .app-confirm-backdrop:hover,
body.admin-page .app-confirm .app-confirm-backdrop:active,
body.portal-page .app-confirm .app-confirm-backdrop:active {
  position: absolute !important;
  transform: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: rgba(8, 8, 20, .68) !important;
  box-shadow: none !important;
  filter: none !important;
}


/* v49 — client cabinet contrast and support archive alignment
   CSS-only presentation fixes. No templates, scripts or application logic changed. */

/* Keep client account panels consistently dark and readable. */
body.portal-page .panel {
  color: #f3f1ff !important;
  background: linear-gradient(145deg, #201d3d 0%, #15152c 100%) !important;
  border: 1px solid rgba(177, 157, 255, .20) !important;
  box-shadow: 0 14px 34px rgba(0, 0, 0, .20) !important;
}
body.portal-page .panel h1,
body.portal-page .panel h2,
body.portal-page .panel h3,
body.portal-page .panel b,
body.portal-page .panel strong,
body.portal-page .panel label {
  color: #f7f5ff !important;
}
body.portal-page .panel p,
body.portal-page .panel .muted,
body.portal-page .panel small {
  color: #c7c2dc !important;
}
body.portal-page .panel .eyebrow {
  color: #bba9ff !important;
}

/* Instruction steps were inheriting a light surface with pale text. */
body.portal-page .steps > div {
  color: #f5f3ff !important;
  background: linear-gradient(145deg, #292548 0%, #1b1a34 100%) !important;
  border: 1px solid rgba(177, 157, 255, .22) !important;
  border-radius: 15px !important;
  box-shadow: 0 8px 20px rgba(0, 0, 0, .16) !important;
}
body.portal-page .steps > div b,
body.portal-page .steps > div strong {
  color: #fff !important;
  font-weight: 800 !important;
}
body.portal-page .steps > div p {
  color: #d0cbe3 !important;
  line-height: 1.6 !important;
}
body.portal-page .client-instructions .client-instruction-grid > a {
  color: #f7f5ff !important;
  background: linear-gradient(145deg, #292548, #19182f) !important;
}
body.portal-page .client-instructions .client-instruction-grid > a b {
  color: #fff !important;
}
body.portal-page .client-instructions .client-instruction-grid > a small {
  color: #c7c2dc !important;
}

/* Support archive: title, status and disclosure marker occupy stable columns.
   Native <details>/<summary> behavior is preserved. */
body.portal-page .support-history-item {
  overflow: hidden !important;
  background: #141329 !important;
  border: 1px solid rgba(177, 157, 255, .22) !important;
  border-radius: 16px !important;
}
body.portal-page .support-history-item > summary {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto 28px !important;
  align-items: center !important;
  column-gap: 16px !important;
  min-height: 78px !important;
  padding: 16px 18px !important;
  list-style: none !important;
  cursor: pointer !important;
}
body.portal-page .support-history-item > summary::-webkit-details-marker {
  display: none !important;
}
body.portal-page .support-history-title {
  display: grid !important;
  gap: 7px !important;
  min-width: 0 !important;
  text-align: left !important;
}
body.portal-page .support-history-title b {
  color: #f1edff !important;
  font-size: 15px !important;
  line-height: 1.4 !important;
  overflow-wrap: anywhere !important;
}
body.portal-page .support-history-title small {
  color: #b8b1d1 !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
}
body.portal-page .support-history-item .support-ticket-status {
  justify-self: end !important;
  white-space: nowrap !important;
  color: #d7d0eb !important;
  background: rgba(177, 157, 255, .13) !important;
  border: 1px solid rgba(177, 157, 255, .22) !important;
}
body.portal-page .support-history-item > summary:after {
  display: grid !important;
  place-items: center !important;
  width: 28px !important;
  height: 28px !important;
  margin: 0 !important;
  color: #c6b8ff !important;
  font-size: 21px !important;
  line-height: 1 !important;
}
body.portal-page .support-history-item[open] > summary {
  border-bottom: 1px solid rgba(177, 157, 255, .16) !important;
}
body.portal-page .support-history-thread {
  padding: 16px 18px 18px !important;
}
body.portal-page .support-history-thread .support-chat-message {
  max-width: min(86%, 760px) !important;
}
body.portal-page .support-history-thread .support-chat-bubble {
  color: #f2efff !important;
  line-height: 1.6 !important;
  overflow-wrap: anywhere !important;
}
@media (max-width: 620px) {
  body.portal-page .support-history-item > summary {
    grid-template-columns: minmax(0, 1fr) auto 24px !important;
    column-gap: 9px !important;
    padding: 13px !important;
  }
  body.portal-page .support-history-title b { font-size: 13px !important; }
  body.portal-page .support-history-title small { font-size: 11px !important; }
  body.portal-page .support-history-item .support-ticket-status {
    font-size: 10px !important;
    padding: 5px 7px !important;
  }
  body.portal-page .support-history-thread { padding: 12px !important; }
  body.portal-page .support-history-thread .support-chat-message { max-width: 100% !important; }
}


/* v51 neutral visual pass — public news pages only.
   Scoped to .news-hero / .v44-news-*; no account, admin, payment,
   support, client, API, route, script or database behavior is changed. */
body.portal-page .news-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(26px, 4vw, 42px) !important;
  border: 1px solid rgba(174, 155, 255, .24) !important;
  border-radius: 24px !important;
  background:
    radial-gradient(circle at 92% 8%, rgba(119, 87, 220, .20), transparent 34%),
    linear-gradient(145deg, #211e3d 0%, #151429 100%) !important;
  color: #f5f2ff !important;
  box-shadow: 0 18px 42px rgba(0,0,0,.22) !important;
}
body.portal-page .news-hero .eyebrow {
  color: #bcaaff !important;
  letter-spacing: .12em;
  font-weight: 800;
}
body.portal-page .news-hero h1 {
  color: #fff !important;
  line-height: 1.12;
  letter-spacing: -.035em;
}
body.portal-page .news-hero h1 span { color: #b9a5ff !important; }
body.portal-page .news-hero p {
  max-width: 680px;
  color: #c9c4dc !important;
  line-height: 1.7;
}
body.portal-page .v44-news-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr)) !important;
  gap: 18px !important;
  align-items: stretch;
}
body.portal-page .v44-news-card,
body.portal-page .v44-news-empty,
body.portal-page .v44-news-detail {
  min-width: 0;
  padding: clamp(20px, 2.8vw, 28px) !important;
  border: 1px solid rgba(174, 155, 255, .20) !important;
  border-radius: 20px !important;
  background: linear-gradient(145deg, #201d3a 0%, #151429 100%) !important;
  color: #f3f0ff !important;
  box-shadow: 0 12px 30px rgba(0,0,0,.18) !important;
}
body.portal-page .v44-news-card h2,
body.portal-page .v44-news-detail h1,
body.portal-page .v44-news-empty h2 {
  color: #fff !important;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
body.portal-page .v44-news-card p,
body.portal-page .v44-news-empty p,
body.portal-page .v44-news-body {
  color: #d0cbe2 !important;
  line-height: 1.75;
  overflow-wrap: anywhere;
}
body.portal-page .v44-news-card .date,
body.portal-page .v44-news-detail .date {
  color: #b9a8f5 !important;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .04em;
}
body.portal-page .v44-news-card .tag {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 10px;
  border: 1px solid rgba(174,155,255,.22);
  border-radius: 999px;
  background: rgba(174,155,255,.10);
  color: #d9d0ff !important;
  font-size: 12px;
}
body.portal-page .v44-news-card .button-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  margin-top: 12px;
  padding: 10px 16px;
  border-radius: 12px;
  font-weight: 750;
  text-decoration: none;
}
body.portal-page .v44-news-pagination {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 22px;
}
body.portal-page .v44-news-detail {
  max-width: 980px;
  margin-inline: auto;
}
body.portal-page .v44-news-detail .v41-text-link {
  display: inline-flex;
  margin-bottom: 20px;
  color: #c6b6ff !important;
  font-weight: 750;
}
body.portal-page .v44-news-body {
  white-space: pre-wrap;
}
body.portal-page .v44-news-detail .announcement-media {
  display: block;
  width: 100%;
  max-height: 620px;
  margin: 18px auto 0;
  object-fit: contain;
  border: 1px solid rgba(174,155,255,.18);
  border-radius: 16px;
  background: #0d0c1b;
}
@media (max-width: 640px) {
  body.portal-page .news-hero { border-radius: 18px !important; }
  body.portal-page .v44-news-grid { grid-template-columns: minmax(0,1fr) !important; }
  body.portal-page .v44-news-card,
  body.portal-page .v44-news-empty,
  body.portal-page .v44-news-detail { border-radius: 16px !important; }
  body.portal-page .v44-news-pagination { flex-direction: column; }
  body.portal-page .v44-news-pagination .button-link { width: 100%; }
}


/* v53 — mobile cabinet controls, media-first news previews and compact iOS notices */
.v53-ios-notice{border:1px solid rgba(177,157,255,.25)!important;background:linear-gradient(135deg,rgba(45,39,82,.78),rgba(22,25,49,.92))!important}
.v53-ios-notice h2,.v53-ios-notice b{color:#f5f1ff}
.v53-ios-notice p{color:#d0cbe3;line-height:1.65;margin-bottom:0}
.v53-news-preview{position:relative;overflow:hidden;margin:14px 0 16px;border:1px solid rgba(177,157,255,.2);border-radius:14px;background:#0b0b18;aspect-ratio:16/9}
.v53-news-preview img,.v53-news-preview video{display:block;width:100%;height:100%;object-fit:cover}
.v53-video-label{position:absolute;left:12px;bottom:12px;padding:6px 10px;border-radius:999px;background:rgba(0,0,0,.68);color:#fff;font-size:12px;font-weight:800}
.v44-news-card>p{line-height:1.6}
@media(max-width:600px){
 body.portal-page .top-links a,body.portal-page .top-links .button-link{min-height:34px;padding:6px 9px;font-size:11px;border-radius:9px}
 body.portal-page .top-links{gap:6px}
 body.portal-page .hero-actions{gap:7px;margin-top:14px}
 body.portal-page .hero-actions .button-link{min-height:36px;padding:7px 10px;font-size:12px}
 body.portal-page .v53-ios-notice{padding:15px!important;margin-block:14px!important}
 body.portal-page .v53-ios-notice h2{font-size:18px!important}
}

.v53-payment-reveal button{margin-top:5px;border:1px solid rgba(177,157,255,.25);border-radius:10px;background:#272344;color:#f5f1ff}
@media(max-width:560px){.v53-payment-reveal{padding:13px}.v53-payment-reveal .requisites{font-size:1.05rem}}


/* v62: compact news previews */
body.portal-page .v62-news-grid{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))!important;
  gap:14px!important;
  align-items:stretch!important;
}
body.portal-page .v62-news-card{
  display:flex!important;
  flex-direction:column!important;
  gap:9px!important;
  padding:17px!important;
  min-height:0!important;
  border-radius:17px!important;
}
body.portal-page .v62-news-card .date{font-size:11px!important;margin:0!important}
body.portal-page .v62-news-card h2{
  font-size:clamp(17px,1.45vw,20px)!important;
  line-height:1.22!important;
  margin:0!important;
  display:-webkit-box!important;
  -webkit-line-clamp:2!important;
  -webkit-box-orient:vertical!important;
  overflow:hidden!important;
  min-height:0!important;
}
body.portal-page .v62-news-preview{
  aspect-ratio:16/7!important;
  height:auto!important;
  max-height:116px!important;
  margin:2px 0 0!important;
  border-radius:11px!important;
  flex:0 0 auto!important;
}
body.portal-page .v62-news-preview img,
body.portal-page .v62-news-preview video{width:100%!important;height:100%!important;object-fit:cover!important}
body.portal-page .v62-news-teaser{
  font-size:13px!important;
  line-height:1.48!important;
  margin:0!important;
  display:-webkit-box!important;
  -webkit-line-clamp:2!important;
  -webkit-box-orient:vertical!important;
  overflow:hidden!important;
  min-height:0!important;
  flex:0 0 auto!important;
}
body.portal-page .v62-news-teaser-muted{opacity:.78}
body.portal-page .v62-news-open{
  align-self:flex-start!important;
  min-height:34px!important;
  margin-top:2px!important;
  padding:7px 12px!important;
  font-size:12px!important;
  border-radius:10px!important;
}
@media(max-width:600px){
 body.portal-page .v62-news-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}
 body.portal-page .v62-news-card{padding:12px!important;gap:7px!important;border-radius:14px!important}
 body.portal-page .v62-news-card h2{font-size:15px!important}
 body.portal-page .v62-news-preview{max-height:82px!important;aspect-ratio:16/8!important}
 body.portal-page .v62-news-teaser{font-size:11px!important;line-height:1.4!important;-webkit-line-clamp:2!important}
 body.portal-page .v62-news-open{min-height:31px!important;padding:6px 9px!important;font-size:11px!important}
}
@media(max-width:360px){
 body.portal-page .v62-news-grid{grid-template-columns:1fr!important}
 body.portal-page .v62-news-preview{max-height:130px!important;aspect-ratio:16/7!important}
}
