:root {
  --red: #e3262e;
  --red-dark: #b70d18;
  --gold: #ffbd16;
  --gold-2: #ffcf33;
  --ink: #211a18;
  --muted: #716c69;
  --line: #e9e4e0;
  --panel: rgba(255,255,255,.94);
  --shadow: 0 24px 70px rgba(78,38,29,.16);
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body {
  margin: 0;
  min-height: 100vh;
  color: var(--ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background:
    radial-gradient(circle at 84% 72%, rgba(193,116,55,.10) 0, rgba(255,189,22,.06) 18%, transparent 38%),
    radial-gradient(circle at 13% 8%, rgba(255,255,255,.98), rgba(255,255,255,.72) 28%, transparent 46%),
    linear-gradient(180deg, #fffaf5 0%, #fff 48%, #f8eee4 100%);
  overflow-x: hidden;
}
body::after {
  content: "";
  position: fixed;
  right: -11vw;
  bottom: -20vh;
  width: 48vw;
  height: 58vh;
  z-index: -5;
  pointer-events: none;
  background: radial-gradient(ellipse at center, rgba(118,67,33,.08) 0%, rgba(227,38,46,.035) 36%, transparent 70%);
  filter: blur(10px);
}

button, input { font: inherit; }
button { cursor: pointer; }

.bg-ribbon { position: fixed; z-index: -3; pointer-events: none; filter: drop-shadow(0 18px 28px rgba(126,17,17,.08)); }
.bg-ribbon.top { width: 430px; height: 160px; left: -45px; top: -26px; transform: rotate(-8deg); border-radius: 52% 48% 55% 45%; background: linear-gradient(180deg, var(--red) 0 45%, #fff 46% 70%, rgba(255,255,255,0) 71%); }
.bg-ribbon.bottom { width: 860px; height: 180px; right: -100px; bottom: 50px; transform: rotate(-7deg); border-radius: 50% 50% 0 0; background: linear-gradient(180deg, var(--red) 0 39%, #fff 40% 66%, rgba(255,255,255,0) 67%); opacity: .92; }

.confetti { position: fixed; inset: 0; z-index: -4; pointer-events: none; background-image: radial-gradient(circle, rgba(226,38,46,.12) 0 2px, transparent 3px), radial-gradient(circle, rgba(255,189,22,.12) 0 2px, transparent 3px); background-size: 110px 130px, 160px 180px; background-position: 24px 30px, 70px 10px; }

.page-shell { width: min(1540px, calc(100% - 44px)); margin: 0 auto; padding: 24px 0 18px; }
.brandbar { display: flex; justify-content: center; align-items: center; min-height: 96px; }
.brandbar img { width: min(380px, 38vw); max-height: 94px; object-fit: contain; filter: drop-shadow(0 10px 18px rgba(90,54,0,.07)); }

.layout { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(430px, 520px) minmax(260px, .95fr); gap: clamp(26px, 4vw, 72px); align-items: center; min-height: calc(100vh - 165px); }

.hero-copy { align-self: center; padding-left: clamp(0px, 2vw, 34px); }
.eyebrow { display: inline-flex; align-items: center; gap: 10px; color: var(--red); font-weight: 800; letter-spacing: .12em; font-size: 15px; }
.wifi-icon { width: 30px; height: 22px; position: relative; }
.wifi-icon::before, .wifi-icon::after, .wifi-icon span { content: ""; position: absolute; left: 50%; transform: translateX(-50%); border: 3px solid var(--red); border-color: var(--red) transparent transparent transparent; border-radius: 50%; }
.wifi-icon::before { width: 29px; height: 29px; top: 2px; }
.wifi-icon::after { width: 19px; height: 19px; top: 8px; }
.wifi-icon span { width: 8px; height: 8px; top: 15px; border-width: 4px 0 0 0; }

.hero-copy h1 { margin: 18px 0 12px; font-size: clamp(42px, 4.2vw, 70px); line-height: .98; letter-spacing: -.045em; max-width: 660px; }
.hero-copy .lead { margin: 0; color: var(--muted); font-size: clamp(18px, 1.5vw, 23px); line-height: 1.45; max-width: 610px; }

.event-card { margin-top: 22px; background: rgba(255,255,255,.92); border: 1px solid rgba(130,87,61,.08); border-radius: 20px; box-shadow: 0 18px 48px rgba(94,48,27,.12); padding: 20px 22px; max-width: 380px; backdrop-filter: blur(12px); }
.event-heading { display: flex; gap: 13px; align-items: center; margin-bottom: 14px; }
.badge81 { width: 66px; height: 66px; border-radius: 20px; display: grid; place-items: center; font-size: 34px; font-weight: 900; color: var(--red); border: 3px solid var(--red); transform: rotate(-3deg); background: #fff; }
.event-heading strong { display: block; font-size: 18px; line-height: 1.1; }
.event-heading span { display: block; color: var(--muted); font-size: 13px; margin-top: 4px; }
.event-list { display: grid; gap: 11px; margin: 0; padding: 0; list-style: none; font-size: 14px; }
.event-list li { display: flex; gap: 10px; align-items: flex-start; }
.event-list .ico { width: 21px; text-align: center; color: var(--red); font-size: 18px; line-height: 1.1; }

.login-card { width: 100%; background: var(--panel); border: 1px solid rgba(122,89,73,.12); border-radius: 28px; box-shadow: var(--shadow); padding: 21px; backdrop-filter: blur(18px); }
.primary-btn:focus-visible, .secondary-btn:focus-visible, .manual-input:focus-visible, .manual-toggle:focus-visible { outline: 3px solid rgba(255,189,22,.35); outline-offset: 2px; }

.scan-view { display: block; }

.scanner-box { position: relative; height: 316px; overflow: hidden; border-radius: 20px; background: linear-gradient(160deg, #f2f1ef, #e8e5e2); border: 1px solid #efebe7; }
#cameraVideo { width: 100%; height: 100%; object-fit: cover; display: none; background: #111; }
#cameraVideo.live { display: block; }
.scanner-placeholder { position: absolute; inset: 0; display: grid; place-items: center; text-align: center; color: #aaa5a1; padding: 30px; }
.scanner-placeholder.hidden { display: none; }
.fake-code { width: 120px; height: 120px; opacity: .28; background: repeating-linear-gradient(90deg,#777 0 4px,transparent 4px 8px), repeating-linear-gradient(0deg,#777 0 4px,transparent 4px 8px); mask-image: radial-gradient(circle at 50% 50%, black 0 60%, transparent 61%); }
.scan-frame { position: absolute; inset: 32px 35px; pointer-events: none; }
.scan-frame i { position: absolute; width: 28px; height: 28px; border-color: var(--gold); border-style: solid; }
.scan-frame i:nth-child(1){left:0;top:0;border-width:3px 0 0 3px;border-radius:9px 0 0 0}
.scan-frame i:nth-child(2){right:0;top:0;border-width:3px 3px 0 0;border-radius:0 9px 0 0}
.scan-frame i:nth-child(3){left:0;bottom:0;border-width:0 0 3px 3px;border-radius:0 0 0 9px}
.scan-frame i:nth-child(4){right:0;bottom:0;border-width:0 3px 3px 0;border-radius:0 0 9px 0}
.scan-line { position: absolute; left: 42px; right: 42px; top: 50%; height: 2px; background: linear-gradient(90deg,transparent,var(--gold),transparent); box-shadow: 0 0 12px rgba(255,189,22,.9); animation: scan 2.2s ease-in-out infinite alternate; pointer-events:none; }
@keyframes scan { from { transform: translateY(-92px); } to { transform: translateY(92px); } }

.scan-status { min-height: 23px; text-align: center; margin: 12px 0 10px; color: #5e5956; font-size: 13px; }
.scan-status.ok { color: #16814a; font-weight: 700; }
.scan-status.err { color: #ba1f29; font-weight: 700; }

.primary-btn, .secondary-btn { width: 100%; border-radius: 12px; padding: 12px 16px; font-weight: 800; border: 1px solid transparent; transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease; }
.primary-btn { color: #fff; background: linear-gradient(135deg, #ffb000, #ffc928); box-shadow: 0 10px 20px rgba(255,177,0,.18); }
.primary-btn.red { background: linear-gradient(135deg, #e72831, #db1d27); box-shadow: 0 10px 20px rgba(222,29,39,.16); }
.secondary-btn { margin-top: 9px; color: #4a4644; background: #fff; border-color: #dcd7d2; }
.primary-btn:hover, .secondary-btn:hover { transform: translateY(-1px); }
.primary-btn:disabled { opacity: .55; cursor: not-allowed; transform: none; }

.manual-toggle-wrap { margin-top: 13px; padding-top: 12px; border-top: 1px solid #ece7e3; text-align: center; }
.manual-toggle { width: 100%; display: flex; align-items: center; justify-content: center; gap: 8px; border: 0; border-radius: 10px; padding: 9px 12px; background: transparent; color: #69635f; font-weight: 800; font-size: 13px; transition: background .15s ease, color .15s ease; }
.manual-toggle:hover { background: #f7f4f1; color: var(--ink); }
.manual-chevron { margin-left: 2px; transition: transform .18s ease; }
.manual-toggle[aria-expanded="true"] .manual-chevron { transform: rotate(180deg); }
.manual-panel { margin-top: 9px; padding: 14px; border: 1px solid #ece7e3; border-radius: 14px; background: #faf9f8; }
.manual-panel[hidden] { display: none !important; }
.input-label { display: block; margin: 0 0 7px; font-size: 13px; font-weight: 800; }
.manual-input { width: 100%; border: 1px solid #dcd7d3; background: #fff; border-radius: 12px; padding: 13px 14px; color: var(--ink); }
.manual-input::placeholder { color: #aaa5a1; }
.manual-note { display: flex; gap: 7px; align-items: center; color: #77716d; font-size: 12px; margin: 9px 0 15px; }

.router-error { margin: 0 0 12px; background: #fff0f1; border: 1px solid #ffd0d4; color: #b81925; border-radius: 12px; padding: 10px 12px; font-size: 13px; line-height: 1.35; }
.trial-note { margin-top: 12px; text-align:center; color: var(--muted); font-size: 12px; }
.trial-note a { color: var(--red); font-weight: 700; }

.side-celebration {
  align-self: center;
  text-align: center;
  position: relative;
  padding-right: clamp(0px,2vw,28px);
  isolation: isolate;
}
.side-celebration::before {
  content: "";
  position: absolute;
  inset: -9% -10% 3% -10%;
  z-index: -2;
  pointer-events: none;
  background:
    radial-gradient(circle at 50% 71%, rgba(255,189,22,.13), transparent 28%),
    radial-gradient(circle at 58% 80%, rgba(126,71,35,.08), transparent 36%);
  filter: blur(4px);
}
.big81 { color: var(--red); font-size: clamp(122px, 12vw, 220px); line-height: .72; letter-spacing: -.09em; font-weight: 900; text-shadow: 0 18px 28px rgba(186,22,29,.08); }
.side-celebration h2 { margin: 20px 0 4px; color: var(--red); font-size: clamp(24px, 2vw, 34px); line-height: 1.05; }
.side-celebration p { margin: 0; color: var(--muted); font-weight: 700; }
.date-pill { display: inline-block; margin-top: 14px; padding: 7px 12px; color:#fff; background: var(--red); border-radius: 999px; font-size: 12px; font-weight: 800; }

/* Coffee artwork is a transparent PNG so it merges naturally with the page. */
.coffee-showcase {
  width: min(382px, 104%);
  margin: 8px auto -8px;
  position: relative;
  isolation: isolate;
  transform: translateX(4px);
}
.coffee-showcase::before {
  content: "";
  position: absolute;
  left: 8%;
  right: 7%;
  bottom: 1%;
  height: 22%;
  z-index: -1;
  border-radius: 50%;
  background: radial-gradient(ellipse at center, rgba(87,49,25,.20), rgba(227,38,46,.06) 48%, transparent 72%);
  filter: blur(16px);
}
.coffee-showcase::after {
  content: "";
  position: absolute;
  left: 18%;
  right: 15%;
  bottom: 3%;
  height: 7%;
  z-index: -1;
  border-radius: 50%;
  background: rgba(76,43,24,.10);
  filter: blur(12px);
}
.coffee-showcase img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 24px 25px rgba(72,39,20,.18));
  transform: translateY(2px) rotate(-.7deg);
  transform-origin: center bottom;
  transition: transform .28s ease, filter .28s ease;
}
.coffee-showcase img:hover {
  transform: translateY(-2px) rotate(0deg) scale(1.018);
  filter: drop-shadow(0 30px 30px rgba(72,39,20,.22));
}

.footer { text-align: center; margin-top: 14px; color: #6e6864; font-size: 13px; }
.footer strong { color: #e5a300; }

@media (min-width: 1181px) and (max-height: 820px) {
  .coffee-showcase { width: min(300px, 88%); margin-top: 2px; }
  .big81 { font-size: clamp(104px, 10vw, 170px); }
  .side-celebration h2 { margin-top: 14px; }
}

@media (max-width: 1180px) {
  .page-shell { width: min(1040px, calc(100% - 30px)); }
  .layout { grid-template-columns: 1fr minmax(410px, 500px); gap: 34px; }
  .side-celebration { display: none; }
  .brandbar img { width: min(340px, 55vw); }
  .hero-copy h1 { font-size: clamp(38px, 5vw, 58px); }
}

@media (max-width: 760px) {
  body { background: linear-gradient(180deg,#fffaf6 0%,#fff 52%,#fff6ef 100%); }
  .bg-ribbon.bottom { width: 560px; right: -270px; bottom: 170px; opacity:.55; }
  .page-shell { width: min(100% - 22px, 560px); padding-top: 10px; }
  .brandbar { min-height: 72px; }
  .brandbar img { width: min(270px, 72vw); max-height: 68px; }
  .layout { display: flex; flex-direction: column; gap: 18px; min-height: auto; }
  .hero-copy { width: 100%; padding: 6px 4px 0; order: 1; }
  .eyebrow { font-size: 12px; }
  .wifi-icon { transform: scale(.82); transform-origin:left center; }
  .hero-copy h1 { margin: 10px 0 8px; font-size: clamp(31px, 10vw, 46px); line-height: 1.02; }
  .hero-copy .lead { font-size: 15px; line-height:1.45; }
  .event-card { margin-top: 14px; max-width: none; padding: 14px 15px; border-radius: 16px; }
  .event-heading { margin-bottom: 10px; }
  .badge81 { width: 52px; height:52px; border-radius:15px; font-size:27px; }
  .event-heading strong { font-size: 15px; }
  .event-heading span { font-size: 11px; }
  .event-list { grid-template-columns: 1fr 1fr; gap: 8px 10px; font-size: 12px; }
  .event-list li:nth-child(1), .event-list li:nth-child(2) { grid-column: span 2; }
  .login-card { order: 2; padding: 13px; border-radius: 20px; }
  .scanner-box { height: 255px; border-radius: 16px; }
  .scan-frame { inset: 25px; }
  .scan-line { left: 30px; right: 30px; }
  @keyframes scan { from { transform: translateY(-70px); } to { transform: translateY(70px); } }
  .primary-btn, .secondary-btn { padding: 11px 13px; font-size: 14px; }
  .footer { margin: 10px 0 14px; }
}

@media (max-width: 400px) {
  .event-list { grid-template-columns: 1fr; }
  .event-list li:nth-child(1), .event-list li:nth-child(2) { grid-column: auto; }
  .scanner-box { height: 230px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
}

/* ==========================================================
   ASNET STATUS + LOGOUT PAGES
   Same event identity, deliberately different page geometry.
   ========================================================== */
.portal-page {
  min-height: 100vh;
  overflow-x: hidden;
  background:
    radial-gradient(circle at 15% 15%, rgba(255,189,22,.10), transparent 22%),
    radial-gradient(circle at 88% 70%, rgba(227,38,46,.08), transparent 28%),
    linear-gradient(145deg,#fffdfb 0%,#fff 50%,#fff7ef 100%);
}
.portal-page::before {
  content:"";
  position:fixed;
  inset:auto -8vw 6vh auto;
  width:55vw;
  height:150px;
  border-radius:100% 0 0 100%;
  transform:rotate(-7deg);
  background:linear-gradient(180deg,var(--red) 0 45%,#fff 46% 72%,transparent 73%);
  opacity:.80;
  z-index:-3;
  pointer-events:none;
}
.portal-page::after {
  content:"";
  position:fixed;
  left:-180px;
  top:-160px;
  width:420px;
  height:420px;
  border:44px solid rgba(227,38,46,.06);
  border-radius:50%;
  z-index:-4;
  pointer-events:none;
}
.portal-wrap {
  width:min(1180px,calc(100% - 32px));
  min-height:100vh;
  margin:0 auto;
  padding:26px 0 20px;
  display:flex;
  flex-direction:column;
}
.portal-brand {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  margin-bottom:24px;
}
.portal-brand img { width:min(300px,48vw); max-height:78px; object-fit:contain; }
.portal-brand .event-chip {
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:9px 14px;
  border:1px solid rgba(227,38,46,.14);
  border-radius:999px;
  background:rgba(255,255,255,.82);
  box-shadow:0 10px 30px rgba(70,35,20,.07);
  color:var(--red-dark);
  font-size:12px;
  font-weight:800;
  letter-spacing:.05em;
  white-space:nowrap;
}
.portal-grid {
  flex:1;
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(285px,.75fr);
  gap:28px;
  align-items:center;
}

/* STATUS: horizontal "boarding pass" card instead of login card */
.status-ticket {
  position:relative;
  display:grid;
  grid-template-columns:210px minmax(0,1fr);
  min-height:500px;
  border-radius:34px;
  overflow:hidden;
  background:rgba(255,255,255,.94);
  border:1px solid rgba(111,77,59,.09);
  box-shadow:0 30px 80px rgba(82,46,28,.15);
}
.status-ticket::after {
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:208px;
  border-left:2px dashed rgba(111,77,59,.14);
  pointer-events:none;
}
.status-stub {
  position:relative;
  padding:36px 24px;
  color:#fff;
  background:linear-gradient(155deg,#e52b32 0%,#b70d18 78%);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  overflow:hidden;
}
.status-stub::before,
.status-stub::after {
  content:"";
  position:absolute;
  right:-16px;
  width:32px;
  height:32px;
  border-radius:50%;
  background:#fff9f3;
}
.status-stub::before{top:-16px}.status-stub::after{bottom:-16px}
.status-live {
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:12px;
  font-weight:900;
  letter-spacing:.11em;
}
.status-live i {
  width:9px;height:9px;border-radius:50%;background:#fff;
  box-shadow:0 0 0 6px rgba(255,255,255,.16);
}
.status-big-icon {
  width:112px;
  height:112px;
  margin:auto;
  border:2px solid rgba(255,255,255,.34);
  border-radius:34px 34px 34px 8px;
  display:grid;
  place-items:center;
  font-size:52px;
  font-weight:900;
  background:rgba(255,255,255,.09);
  transform:rotate(-3deg);
}
.status-stub small { opacity:.82; line-height:1.45; }
.status-body { padding:42px 40px 34px; display:flex; flex-direction:column; }
.status-kicker { color:var(--red); font-size:12px; font-weight:900; letter-spacing:.14em; }
.status-body h1 { margin:8px 0 8px; font-size:clamp(34px,4vw,54px); letter-spacing:-.045em; line-height:1; }
.status-body .sub { margin:0; color:var(--muted); font-size:15px; }
.status-userline { display:flex; flex-wrap:wrap; gap:8px; margin:18px 0 22px; }
.status-userline span {
  padding:7px 11px;
  border-radius:999px;
  background:#fff7ef;
  border:1px solid #f2e4d8;
  color:#5c4a40;
  font-size:12px;
  font-weight:700;
}
.status-metrics {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:0 0 18px;
}
.metric {
  min-height:95px;
  padding:16px;
  border-radius:20px;
  border:1px solid #eee5df;
  background:linear-gradient(180deg,#fff 0%,#fffbf8 100%);
}
.metric .label { display:block; font-size:11px; color:#8b817a; font-weight:800; text-transform:uppercase; letter-spacing:.07em; }
.metric strong { display:block; margin-top:7px; font-size:18px; line-height:1.25; word-break:break-word; }
.metric.red { background:linear-gradient(145deg,#fff6f6,#fff); border-color:#f5d5d7; }
.metric.gold { background:linear-gradient(145deg,#fff9e9,#fff); border-color:#f5e2ae; }
.portal-alert {
  margin:0 0 16px;
  padding:11px 13px;
  border-radius:14px;
  background:#fff3d7;
  color:#6c4a00;
  font-size:12px;
  border:1px solid #f2d17d;
}
.status-actions { margin-top:auto; display:flex; gap:10px; flex-wrap:wrap; }
.portal-btn {
  min-height:46px;
  border:0;
  border-radius:14px;
  padding:0 18px;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-weight:900;
  font-size:14px;
  transition:.18s ease;
}
.portal-btn:hover { transform:translateY(-1px); }
.portal-btn.red { color:#fff; background:linear-gradient(135deg,var(--red),var(--red-dark)); box-shadow:0 11px 24px rgba(227,38,46,.20); }
.portal-btn.gold { color:#493100; background:linear-gradient(135deg,var(--gold-2),var(--gold)); }
.portal-btn.outline { color:#4c403b; background:#fff; border:1px solid #e5ddd8; }

.status-festival {
  position:relative;
  min-height:500px;
  border-radius:36px 12px 36px 36px;
  padding:28px 28px 24px;
  overflow:hidden;
  background:linear-gradient(155deg,#211815 0%,#4a2a1b 100%);
  color:#fff;
  box-shadow:0 26px 70px rgba(57,31,18,.23);
}
.status-festival::before {
  content:"81";
  position:absolute;
  right:-5px;
  top:-35px;
  font-weight:950;
  font-size:150px;
  line-height:1;
  color:rgba(255,255,255,.055);
}
.status-festival h2 { position:relative; margin:0; font-size:24px; line-height:1.05; }
.status-festival p { position:relative; max-width:260px; color:rgba(255,255,255,.73); font-size:13px; line-height:1.5; }
.status-festival .mini-date { position:relative; display:inline-block; padding:7px 10px; border-radius:10px; background:var(--red); font-size:11px; font-weight:900; }
.status-festival img {
  position:absolute;
  width:112%;
  max-width:390px;
  left:50%;
  transform:translateX(-50%);
  bottom:-55px;
  filter:drop-shadow(0 22px 28px rgba(0,0,0,.30));
}

/* LOGOUT: centered seal/certificate composition, intentionally different */
.logout-stage {
  flex:1;
  display:grid;
  place-items:center;
  padding:16px 0 28px;
}
.logout-composition {
  width:min(960px,100%);
  display:grid;
  grid-template-columns:minmax(250px,.78fr) minmax(420px,1.22fr);
  gap:0;
  align-items:stretch;
}
.logout-art {
  position:relative;
  min-height:580px;
  border-radius:42px 0 0 18px;
  background:linear-gradient(160deg,#b80f19,#e52b32 58%,#ff6b55);
  overflow:hidden;
  box-shadow:0 30px 80px rgba(120,20,25,.20);
}
.logout-art::before {
  content:"";
  position:absolute;
  width:340px;height:340px;
  border:52px solid rgba(255,255,255,.08);
  border-radius:50%;
  left:-150px;top:-95px;
}
.logout-art .ri81 {
  position:absolute;
  left:34px;top:34px;
  font-size:94px;
  line-height:.8;
  font-weight:950;
  color:#fff;
  letter-spacing:-.08em;
}
.logout-art .ri81 small { display:block; margin-top:16px; font-size:12px; letter-spacing:.12em; }
.logout-art img {
  position:absolute;
  width:132%;
  max-width:470px;
  left:47%;
  bottom:-62px;
  transform:translateX(-50%);
  filter:drop-shadow(0 24px 34px rgba(63,17,7,.28));
}
.logout-card {
  position:relative;
  min-height:580px;
  padding:44px 44px 34px;
  border-radius:0 42px 42px 0;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(112,77,58,.09);
  box-shadow:0 30px 80px rgba(73,45,29,.14);
  display:flex;
  flex-direction:column;
}
.logout-seal {
  width:76px;height:76px;
  border-radius:24px 24px 24px 6px;
  display:grid;place-items:center;
  background:linear-gradient(135deg,#fff0f0,#fff);
  border:1px solid #f1d0d2;
  color:var(--red);
  font-size:34px;
  font-weight:950;
}
.logout-card .kicker { margin-top:18px; color:var(--red); font-size:12px; font-weight:900; letter-spacing:.14em; }
.logout-card h1 { margin:7px 0 7px; font-size:clamp(36px,4vw,56px); line-height:.98; letter-spacing:-.05em; }
.logout-card .desc { margin:0 0 22px; color:var(--muted); line-height:1.5; }
.logout-summary { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:20px; }
.logout-summary .row { padding:13px 14px; border-radius:16px; background:#fffaf6; border:1px solid #eee4dd; }
.logout-summary .row span { display:block; color:#8a7f78; font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.08em; }
.logout-summary .row strong { display:block; margin-top:5px; font-size:14px; word-break:break-word; }
.logout-card .portal-btn { width:100%; min-height:50px; }
.logout-card .event-note { margin-top:auto; padding-top:20px; color:#8d8179; font-size:11px; line-height:1.5; border-top:1px dashed #e6ddd7; }
.portal-footer { text-align:center; color:#8a817c; font-size:11px; padding-top:16px; }
.portal-footer strong { color:#d79500; }

@media (max-width: 900px) {
  .portal-grid { grid-template-columns:1fr; align-items:start; }
  .status-festival { min-height:290px; }
  .status-festival img { width:300px; right:-15px; left:auto; transform:none; bottom:-85px; }
  .logout-composition { grid-template-columns:1fr; width:min(620px,100%); }
  .logout-art { min-height:290px; border-radius:34px 34px 0 0; }
  .logout-art img { width:300px; bottom:-115px; left:78%; }
  .logout-card { min-height:auto; border-radius:0 0 34px 34px; }
}
@media (max-width: 620px) {
  .portal-wrap { width:min(100% - 20px,540px); padding-top:12px; }
  .portal-brand { margin-bottom:14px; }
  .portal-brand img { width:min(230px,60vw); }
  .portal-brand .event-chip { font-size:9px; padding:7px 9px; }
  .status-ticket { grid-template-columns:1fr; min-height:0; border-radius:25px; }
  .status-ticket::after { display:none; }
  .status-stub { min-height:126px; padding:18px 20px; display:grid; grid-template-columns:1fr auto; align-items:center; gap:12px; }
  .status-stub::before,.status-stub::after { display:none; }
  .status-live { grid-column:1; }
  .status-big-icon { grid-column:2; grid-row:1 / span 2; width:72px;height:72px;border-radius:22px 22px 22px 7px;font-size:34px;margin:0; }
  .status-stub small { grid-column:1; }
  .status-body { padding:24px 18px 20px; }
  .status-body h1 { font-size:34px; }
  .status-metrics { gap:8px; }
  .metric { min-height:82px; padding:12px; }
  .metric strong { font-size:15px; }
  .status-festival { min-height:260px; border-radius:26px; padding:22px; }
  .status-festival img { width:260px; bottom:-86px; right:-42px; }
  .logout-art { min-height:235px; }
  .logout-art .ri81 { font-size:72px; left:24px; top:26px; }
  .logout-art img { width:255px; left:76%; bottom:-112px; }
  .logout-card { padding:28px 20px 24px; }
  .logout-card h1 { font-size:38px; }
  .logout-summary { grid-template-columns:1fr 1fr; gap:8px; }
}
@media (max-width: 390px) {
  .portal-brand .event-chip { display:none; }
  .status-metrics,.logout-summary { grid-template-columns:1fr; }
}

/* ==========================================================
   ASNET UNIFIED PORTAL THEME
   Shared visual system for alogin/status/logout/error/advert.
   ========================================================== */
.unified-page {
  background:
    radial-gradient(circle at 15% 12%, rgba(255,189,22,.10), transparent 24%),
    radial-gradient(circle at 88% 78%, rgba(227,38,46,.08), transparent 30%),
    linear-gradient(180deg,#fffaf5 0%,#fff 50%,#f8eee4 100%);
}
.unified-page::before {
  content:"";
  position:fixed;
  z-index:-3;
  top:-38px;
  left:-72px;
  width:430px;
  height:156px;
  border-radius:52% 48% 55% 45%;
  transform:rotate(-8deg);
  background:linear-gradient(180deg,var(--red) 0 45%,#fff 46% 70%,transparent 71%);
  filter:drop-shadow(0 18px 28px rgba(126,17,17,.08));
  pointer-events:none;
}
.unified-page::after {
  content:"";
  position:fixed;
  z-index:-3;
  right:-105px;
  bottom:38px;
  width:820px;
  height:170px;
  border:0;
  border-radius:50% 50% 0 0;
  transform:rotate(-7deg);
  background:linear-gradient(180deg,var(--red) 0 39%,#fff 40% 66%,transparent 67%);
  opacity:.86;
  pointer-events:none;
}
.unified-shell {
  width:min(1180px,calc(100% - 32px));
  min-height:100vh;
  margin:0 auto;
  padding:24px 0 18px;
  display:flex;
  flex-direction:column;
}
.unified-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  min-height:82px;
  margin-bottom:24px;
}
.unified-header img {
  width:min(300px,46vw);
  max-height:78px;
  object-fit:contain;
  filter:drop-shadow(0 10px 18px rgba(90,54,0,.07));
}
.unified-header .event-chip {
  display:inline-flex;
  align-items:center;
  padding:9px 14px;
  border:1px solid rgba(227,38,46,.14);
  border-radius:999px;
  background:rgba(255,255,255,.88);
  box-shadow:0 10px 30px rgba(70,35,20,.07);
  color:var(--red-dark);
  font-size:11px;
  font-weight:900;
  letter-spacing:.06em;
  white-space:nowrap;
}
.unified-grid {
  flex:1;
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(300px,.72fr);
  gap:28px;
  align-items:center;
}
.unified-card {
  position:relative;
  min-height:520px;
  padding:38px 40px 34px;
  border:1px solid rgba(122,89,73,.12);
  border-radius:30px;
  background:rgba(255,255,255,.95);
  box-shadow:var(--shadow);
  backdrop-filter:blur(18px);
  display:flex;
  flex-direction:column;
}
.unified-kicker {
  color:var(--red);
  font-size:12px;
  font-weight:950;
  letter-spacing:.14em;
}
.unified-card h1 {
  margin:8px 0 10px;
  font-size:clamp(36px,4vw,56px);
  line-height:.98;
  letter-spacing:-.045em;
}
.unified-lead {
  max-width:650px;
  margin:0;
  color:var(--muted);
  font-size:15px;
  line-height:1.55;
}
.connection-head {
  display:flex;
  align-items:center;
  gap:18px;
  margin-bottom:18px;
}
.connection-head h1 { margin-top:5px; }
.message-icon {
  width:86px;
  height:86px;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  border-radius:28px 28px 28px 8px;
  font-size:40px;
  font-weight:950;
  border:1px solid transparent;
}
.message-icon.compact { width:76px; height:76px; font-size:34px; border-radius:24px 24px 24px 7px; }
.message-icon.success { color:var(--red); background:linear-gradient(135deg,#fff0f0,#fff); border-color:#f1d0d2; }
.message-icon.logout { color:#8c5700; background:linear-gradient(135deg,#fff5d8,#fff); border-color:#f0dca6; }
.message-icon.error { color:#fff; background:linear-gradient(135deg,var(--red),var(--red-dark)); box-shadow:0 14px 28px rgba(227,38,46,.18); }
.message-icon.info { color:#5b3d00; background:linear-gradient(135deg,var(--gold-2),var(--gold)); }
.message-card { justify-content:center; }
.message-card .unified-kicker { margin-top:20px; }
.success-strip {
  margin:24px 0 18px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:15px;
  padding:15px 17px;
  border-radius:16px;
  background:#fffaf3;
  border:1px solid #f0e2d4;
  font-size:13px;
}
.success-strip span { display:inline-flex; align-items:center; gap:9px; font-weight:850; }
.success-strip i,
.connection-badge i {
  width:9px;
  height:9px;
  border-radius:50%;
  background:#20a65a;
  box-shadow:0 0 0 6px rgba(32,166,90,.12);
}
.connection-badge {
  display:inline-flex;
  width:max-content;
  align-items:center;
  gap:9px;
  margin:0 0 18px;
  padding:9px 13px;
  border-radius:999px;
  color:#146c3d;
  background:#eefaf3;
  border:1px solid #d1efdd;
  font-size:11px;
  font-weight:950;
  letter-spacing:.08em;
}
.unified-pills { margin:0 0 18px; }
.unified-metrics {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:0 0 22px;
}
.unified-summary { margin:24px 0 22px; }
.unified-note {
  margin-top:auto;
  padding-top:20px;
  color:#8d8179;
  font-size:11px;
  line-height:1.55;
  border-top:1px dashed #e6ddd7;
}
.message-actions {
  margin-top:22px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.message-actions .portal-btn { min-width:160px; }
.helper-text {
  margin:15px 0 0;
  color:#8a817b;
  font-size:12px;
  line-height:1.5;
}
.helper-text a { color:var(--red); font-weight:800; }
.router-error.large { margin-top:22px; padding:14px 16px; font-size:14px; }
.redirect-progress {
  position:relative;
  height:6px;
  margin-top:22px;
  overflow:hidden;
  border-radius:999px;
  background:#eee7e1;
}
.redirect-progress span {
  position:absolute;
  inset:0 auto 0 0;
  width:38%;
  border-radius:inherit;
  background:linear-gradient(90deg,var(--red),var(--gold));
  animation:asnet-progress 1.35s ease-in-out infinite;
}
@keyframes asnet-progress {
  0% { transform:translateX(-105%); }
  100% { transform:translateX(365%); }
}
.unified-event {
  position:relative;
  min-height:520px;
  padding:28px;
  overflow:hidden;
  border-radius:30px;
  color:#fff;
  background:linear-gradient(155deg,#211815 0%,#4a2a1b 100%);
  box-shadow:0 26px 70px rgba(57,31,18,.23);
}
.unified-event::before {
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 50% 74%,rgba(255,189,22,.14),transparent 30%),
    linear-gradient(160deg,transparent 0 55%,rgba(227,38,46,.13));
  pointer-events:none;
}
.unified-event .mini-date {
  position:relative;
  z-index:1;
  display:inline-block;
  padding:7px 10px;
  border-radius:10px;
  background:var(--red);
  font-size:10px;
  font-weight:950;
  letter-spacing:.05em;
}
.unified-event .event-81 {
  position:relative;
  z-index:1;
  margin:26px 0 14px;
  color:#fff;
  font-size:108px;
  line-height:.72;
  font-weight:950;
  letter-spacing:-.08em;
  text-shadow:0 18px 30px rgba(0,0,0,.18);
}
.unified-event h2 {
  position:relative;
  z-index:1;
  margin:0;
  font-size:25px;
  line-height:1.03;
}
.unified-event p {
  position:relative;
  z-index:1;
  max-width:260px;
  margin:11px 0 0;
  color:rgba(255,255,255,.74);
  font-size:13px;
  line-height:1.5;
}
.unified-event img {
  position:absolute;
  z-index:1;
  width:112%;
  max-width:390px;
  left:50%;
  bottom:-62px;
  transform:translateX(-50%);
  filter:drop-shadow(0 22px 28px rgba(0,0,0,.30));
}
.redirect-fallback {
  width:min(720px,100%);
  min-height:430px;
  margin:auto;
}
.compact-redirect .unified-shell { min-height:100vh; }
.compact-redirect .portal-footer { margin-top:18px; }

@media (max-width:900px) {
  .unified-grid { grid-template-columns:1fr; align-items:start; }
  .unified-card { min-height:0; }
  .unified-event { min-height:300px; }
  .unified-event .event-81 { font-size:92px; margin-top:20px; }
  .unified-event img { width:300px; left:auto; right:-25px; transform:none; bottom:-92px; }
}
@media (max-width:620px) {
  .unified-shell { width:min(100% - 20px,540px); padding-top:12px; }
  .unified-header { min-height:66px; margin-bottom:14px; }
  .unified-header img { width:min(230px,60vw); }
  .unified-header .event-chip { font-size:9px; padding:7px 9px; }
  .unified-card { padding:26px 20px 22px; border-radius:24px; }
  .unified-card h1 { font-size:36px; }
  .connection-head { align-items:flex-start; gap:12px; }
  .message-icon.compact { width:58px; height:58px; font-size:28px; border-radius:18px 18px 18px 6px; }
  .connection-head .unified-kicker { font-size:10px; }
  .connection-head h1 { font-size:30px; }
  .unified-metrics { gap:8px; }
  .message-actions { flex-direction:column; }
  .message-actions .portal-btn { width:100%; }
  .unified-event { min-height:255px; padding:22px; border-radius:24px; }
  .unified-event .event-81 { font-size:76px; }
  .unified-event h2 { font-size:21px; }
  .unified-event p { max-width:60%; font-size:11px; }
  .unified-event img { width:245px; right:-55px; bottom:-95px; }
}
@media (max-width:400px) {
  .unified-header .event-chip { display:none; }
  .unified-metrics,
  .unified-summary { grid-template-columns:1fr; }
  .connection-head { display:block; }
  .message-icon.compact { margin-bottom:14px; }
  .unified-event p { max-width:72%; }
}

/* HTTP camera-capture scanner */
#capturePreview.http-capture-preview {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
  z-index: 1;
}
.scanner-box .scan-frame,
.scanner-box .scan-line { z-index: 3; }

/* Scanner HTTPS + captive portal fallback */
#cameraVideo {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:none;
  background:#111;
  z-index:1;
}
#cameraVideo.live { display:block; }
#scannerCanvas { display:none !important; }
.file-label,
.browser-link {
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  cursor:pointer;
  text-decoration:none;
  box-sizing:border-box;
}
.file-label.disabled { opacity:.55; pointer-events:none; }
.browser-link { color:#4a4644; }
.fallback-capture[hidden],
.browser-link[hidden] { display:none !important; }

/* ==========================================================
   Scanner v4 - simple one-button UI
   ========================================================== */
.qr-reader {
  position: absolute;
  inset: 0;
  z-index: 2;
  overflow: hidden;
  background: #111;
}
.qr-reader:empty { display: none; }
.qr-reader video,
.qr-reader canvas,
.qr-reader img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border: 0 !important;
}
.qr-reader > div { border: 0 !important; }
.scanner-placeholder { z-index: 1; }
.scan-frame, .scan-line { z-index: 4; }
.scan-frame.hidden, .scan-line.hidden { display: none; }
.scanner-hint {
  margin-top: 14px;
  font-size: 12px;
  font-weight: 700;
  color: #817b77;
}
.scan-main-btn { margin-top: 2px; min-height: 48px; }
.manual-toggle-wrap.compact {
  margin-top: 9px;
  padding-top: 5px;
  border-top: 0;
}
.manual-link {
  display: inline-flex;
  width: auto;
  padding: 6px 10px;
  color: #817b77;
  font-size: 12px;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.manual-login-btn { margin-top: 12px; }

/* v5.3 scanner reliability: visual layout unchanged, only controls/video behavior. */
.secondary-btn:disabled { opacity:.55; cursor:not-allowed; transform:none; }
#qrReader video { width:100% !important; height:100% !important; object-fit:cover !important; }
#qrReader { width:100% !important; height:100% !important; overflow:hidden !important; }

/* ==========================================================
   REDESIGN v6 — ASNET x RR GROUP HOTSPOT
   Scoped with .theme-blue on <body> so the older red/gold
   status & logout pages (unified-*, portal-*, status-*) are
   completely untouched by this palette + these components.
   ========================================================== */
:root {
  --blue: #1257e0;
  --blue-dark: #0d3fae;
  --blue-bg: #eaf1ff;
}

/* ---------- brand lockup: ASNET × RR GROUP HOTSPOT ---------- */
.brand-lockup { display: flex; align-items: center; justify-content: center; gap: 22px; flex-wrap: wrap; }
.brand-lockup .asnet-mark { height: 46px; width: auto; object-fit: contain; display: block; }
.brand-lockup .brand-x { font-size: 22px; font-weight: 700; color: #c7c2bd; line-height: 1; }
.brand-lockup .rr-mark { display: flex; align-items: center; gap: 12px; }
.brand-lockup .rr-mark img { height: 46px; width: auto; display: block; }
.brand-lockup .rr-wordmark { text-align: left; line-height: 1.12; }
.brand-lockup .rr-wordmark strong { display: block; font-size: 19px; font-weight: 900; letter-spacing: -.01em; color: var(--ink); white-space: nowrap; }
.brand-lockup .rr-wordmark span { display: block; font-size: 12px; font-weight: 800; letter-spacing: .08em; color: var(--muted); }

/* ---------- hero: eyebrow / heading accent / feature list ---------- */
.theme-blue .eyebrow { color: var(--blue); }
.theme-blue .wifi-icon::before,
.theme-blue .wifi-icon::after,
.theme-blue .wifi-icon span { border-color: var(--blue) transparent transparent transparent; }

.accent-bar { width: 60px; height: 4px; border-radius: 3px; background: linear-gradient(90deg, var(--gold), var(--gold-2)); margin: 16px 0 18px; }

.feature-list { margin-top: 8px; display: grid; }
.feature-item { display: flex; gap: 16px; align-items: flex-start; padding: 16px 0; border-bottom: 1px solid var(--line); }
.feature-item:last-child { border-bottom: 0; padding-bottom: 4px; }
.feature-icon { flex: 0 0 auto; width: 50px; height: 50px; border-radius: 50%; background: var(--blue-bg); color: var(--blue); display: grid; place-items: center; }
.feature-icon svg { width: 24px; height: 24px; }
.feature-text strong { display: block; font-size: 16px; margin-bottom: 3px; }
.feature-text p { margin: 0; color: var(--muted); font-size: 13.5px; line-height: 1.45; }

/* ---------- login card: blue accent instead of gold/red ---------- */
.theme-blue .scan-frame i { border-color: var(--blue); }
.theme-blue .scan-line { background: linear-gradient(90deg, transparent, var(--blue), transparent); box-shadow: 0 0 12px rgba(18,87,224,.55); }
.theme-blue .primary-btn { background: linear-gradient(135deg, #2f74f5, var(--blue-dark)); box-shadow: 0 10px 20px rgba(18,87,224,.22); }
.theme-blue .primary-btn.red { background: linear-gradient(135deg, #e72831, #db1d27); box-shadow: 0 10px 20px rgba(222,29,39,.16); }
@keyframes scanBlue { from { transform: translateY(-92px); } to { transform: translateY(92px); } }
.theme-blue .scan-line { animation-name: scanBlue; }

/* ---------- right panel: RR Group Hotspot showcase ---------- */
.rr-panel { align-self: center; padding-right: clamp(0px, 2vw, 10px); }
.rr-panel-header { display: flex; align-items: center; gap: 14px; margin-bottom: 22px; }
.rr-panel-header img { width: 58px; height: 58px; object-fit: contain; }
.rr-panel-header strong { display: block; font-size: 19px; font-weight: 900; letter-spacing: -.01em; }
.rr-panel-header span { display: block; font-size: 12px; font-weight: 800; letter-spacing: .08em; color: var(--muted); }

.rr-panel h2 { margin: 0 0 12px; font-size: clamp(21px, 1.9vw, 27px); line-height: 1.28; letter-spacing: -.02em; }
.rr-panel h2 .hl { color: var(--blue); }
.rr-panel .copy { margin: 0 0 24px; max-width: 440px; color: var(--muted); font-size: 14.5px; line-height: 1.65; }

.rr-illustration { margin: 0 0 22px; }
.rr-illustration img { display: block; width: 100%; height: auto; }

.rr-feature-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.rr-feature { text-align: center; }
.rr-feature .ico-circle { width: 42px; height: 42px; margin: 0 auto 8px; border-radius: 50%; background: var(--blue-bg); color: var(--blue); display: grid; place-items: center; }
.rr-feature .ico-circle svg { width: 20px; height: 20px; }
.rr-feature strong { display: block; font-size: 12.5px; margin-bottom: 2px; }
.rr-feature p { margin: 0; font-size: 10.5px; line-height: 1.35; color: var(--muted); }

/* ---------- header height adjusts for the wider lockup ---------- */
.theme-blue .brandbar { min-height: 108px; }

/* ---------- responsive v7: RR PANEL ALWAYS VISIBLE ---------- */

/*
   Desktop > 1180px
   Layout tetap 3 kolom:
   LEFT | LOGIN | RR PANEL
*/

/* Desktop kecil / HP dengan mode "Desktop Site" */
@media (min-width: 761px) and (max-width: 1180px) {
  .page-shell {
    width: min(1120px, calc(100% - 28px));
  }

  .layout {
    display: grid;
    grid-template-columns:
      minmax(210px, .85fr)
      minmax(360px, 1.15fr)
      minmax(210px, .9fr);
    gap: 18px;
    align-items: center;
    min-height: calc(100vh - 165px);
  }

  .hero-copy {
    padding-left: 0;
  }

  .hero-copy h1 {
    font-size: clamp(34px, 4.2vw, 54px);
  }

  .hero-copy .lead {
    font-size: clamp(13px, 1.4vw, 18px);
  }

  .feature-item {
    gap: 10px;
    padding: 10px 0;
  }

  .feature-icon {
    width: 42px;
    height: 42px;
  }

  .feature-icon svg {
    width: 20px;
    height: 20px;
  }

  .feature-text strong {
    font-size: 13px;
  }

  .feature-text p {
    font-size: 10.5px;
  }

  .login-card {
    padding: 14px;
    border-radius: 22px;
  }

  .scanner-box {
    height: 260px;
  }

  .scan-frame {
    inset: 25px;
  }

  /* RR PANEL TIDAK BOLEH DIHILANGKAN */
  .rr-panel {
    display: block !important;
    width: 100%;
    align-self: center;
    padding-right: 0;
    visibility: visible;
    opacity: 1;
  }

  .rr-panel-header {
    gap: 10px;
    margin-bottom: 14px;
  }

  .rr-panel-header img {
    width: 48px;
    height: 48px;
  }

  .rr-panel-header strong {
    font-size: 15px;
  }

  .rr-panel-header span {
    font-size: 9px;
  }

  .rr-panel h2 {
    font-size: clamp(18px, 2vw, 24px);
    line-height: 1.2;
    margin-bottom: 8px;
  }

  .rr-panel .copy {
    font-size: 11px;
    line-height: 1.45;
    margin-bottom: 12px;
  }

  .rr-illustration {
    margin-bottom: 12px;
  }

  .rr-feature-strip {
    gap: 5px;
  }

  .rr-feature .ico-circle {
    width: 34px;
    height: 34px;
    margin-bottom: 5px;
  }

  .rr-feature .ico-circle svg {
    width: 16px;
    height: 16px;
  }

  .rr-feature strong {
    font-size: 9px;
  }

  .rr-feature p {
    font-size: 7px;
  }
}


/* Tablet
   LEFT + LOGIN di atas, RR PANEL tetap ditampilkan di bawah */
@media (min-width: 561px) and (max-width: 760px) {
  .page-shell {
    width: min(100% - 24px, 700px);
  }

  .layout {
    display: flex;
    flex-direction: column;
    gap: 18px;
    min-height: auto;
  }

  .hero-copy {
    width: 100%;
    order: 1;
    padding: 6px 4px 0;
  }

  .login-card {
    width: 100%;
    order: 2;
  }

  .rr-panel {
    display: block !important;
    width: 100%;
    order: 3;
    padding: 10px 4px 0;
    visibility: visible;
    opacity: 1;
  }

  .rr-panel-header {
    justify-content: center;
  }

  .rr-panel h2 {
    text-align: center;
  }

  .rr-panel .copy {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
  }

  .rr-illustration {
    width: min(520px, 100%);
    margin: 0 auto 18px;
  }

  .rr-feature-strip {
    width: min(560px, 100%);
    margin: 0 auto;
  }
}


/* HP normal
   RR PANEL turun ke bawah login, bukan di-hide */
@media (max-width: 560px) {
  .page-shell {
    width: min(100% - 20px, 540px);
    padding-top: 10px;
  }

  .brand-lockup {
    gap: 10px;
  }

  .brand-lockup .asnet-mark {
    height: 34px;
  }

  .brand-lockup .brand-x {
    font-size: 18px;
  }

  .brand-lockup .rr-mark {
    flex-direction: row;
    gap: 7px;
  }

  .brand-lockup .rr-mark img {
    height: 36px;
  }

  .brand-lockup .rr-wordmark {
    text-align: left;
  }

  .brand-lockup .rr-wordmark strong {
    font-size: 13px;
  }

  .brand-lockup .rr-wordmark span {
    font-size: 8px;
  }

  .theme-blue .brandbar {
    min-height: 82px;
  }

  .layout {
    display: flex;
    flex-direction: column;
    gap: 18px;
    min-height: auto;
  }

  .hero-copy {
    width: 100%;
    order: 1;
    padding: 6px 4px 0;
  }

  .eyebrow {
    font-size: 11px;
  }

  .wifi-icon {
    transform: scale(.82);
    transform-origin: left center;
  }

  .hero-copy h1 {
    margin: 10px 0 8px;
    font-size: clamp(30px, 9.5vw, 43px);
    line-height: 1.02;
  }

  .hero-copy .lead {
    font-size: 14px;
    line-height: 1.45;
  }

  .feature-item {
    gap: 11px;
    padding: 11px 0;
  }

  .feature-icon {
    width: 40px;
    height: 40px;
  }

  .feature-icon svg {
    width: 19px;
    height: 19px;
  }

  .feature-text strong {
    font-size: 14px;
  }

  .feature-text p {
    font-size: 12px;
  }

  .login-card {
    width: 100%;
    order: 2;
    padding: 12px;
    border-radius: 20px;
  }

  .scanner-box {
    height: 245px;
    border-radius: 16px;
  }

  .scan-frame {
    inset: 24px;
  }

  .scan-line {
    left: 28px;
    right: 28px;
  }

  .primary-btn,
  .secondary-btn {
    padding: 11px 13px;
    font-size: 14px;
  }

  /* RR PANEL */
  .rr-panel {
    display: block !important;
    width: 100%;
    order: 3;
    padding: 15px 4px 5px;
    visibility: visible;
    opacity: 1;
  }

  .rr-panel-header {
    justify-content: center;
    gap: 9px;
    margin-bottom: 12px;
  }

  .rr-panel-header img {
    width: 48px;
    height: 48px;
  }

  .rr-panel-header strong {
    font-size: 16px;
  }

  .rr-panel-header span {
    font-size: 9px;
  }

  .rr-panel h2 {
    text-align: center;
    font-size: clamp(22px, 6.8vw, 29px);
    line-height: 1.18;
    margin-bottom: 9px;
  }

  .rr-panel .copy {
    max-width: 500px;
    margin: 0 auto 14px;
    text-align: center;
    font-size: 12.5px;
    line-height: 1.5;
  }

  .rr-illustration {
    width: min(430px, 100%);
    margin: 0 auto 14px;
  }

  .rr-feature-strip {
    width: 100%;
    max-width: 500px;
    margin: 0 auto;
    grid-template-columns: repeat(4, 1fr);
    gap: 4px;
  }

  .rr-feature .ico-circle {
    width: 38px;
    height: 38px;
    margin-bottom: 5px;
  }

  .rr-feature .ico-circle svg {
    width: 18px;
    height: 18px;
  }

  .rr-feature strong {
    font-size: 9.5px;
  }

  .rr-feature p {
    font-size: 7.5px;
    line-height: 1.25;
  }

  .footer {
    margin: 8px 0 12px;
  }
}


/* HP sangat kecil */
@media (max-width: 390px) {
  .brand-lockup {
    gap: 7px;
  }

  .brand-lockup .asnet-mark {
    height: 30px;
  }

  .brand-lockup .brand-x {
    font-size: 15px;
  }

  .brand-lockup .rr-mark img {
    height: 31px;
  }

  .brand-lockup .rr-wordmark strong {
    font-size: 11px;
  }

  .brand-lockup .rr-wordmark span {
    font-size: 7px;
  }

  .rr-panel h2 {
    font-size: 23px;
  }

  .rr-panel .copy {
    font-size: 11.5px;
  }

  .rr-feature .ico-circle {
    width: 34px;
    height: 34px;
  }

  .rr-feature strong {
    font-size: 8.5px;
  }

  .rr-feature p {
    font-size: 7px;
  }

  .scanner-box {
    height: 225px;
  }
}

/* ==========================================================
   NEW CLEAN BLUE/YELLOW BACKGROUND — LOGIN ONLY
   Visual redesign only. Scanner + MikroTik form logic untouched.
   ========================================================== */
body.theme-blue {
  position:relative;
  isolation:isolate;
  background:
    radial-gradient(circle at 79% 64%, rgba(255,205,91,.12) 0, rgba(255,205,91,.055) 17%, transparent 35%),
    radial-gradient(circle at 25% 35%, rgba(18,87,224,.035), transparent 30%),
    linear-gradient(180deg,#ffffff 0%,#ffffff 62%,#fffaf4 100%);
}
body.theme-blue::before {
  content:"";
  position:fixed;
  inset:0;
  z-index:-10;
  pointer-events:none;
  background:
    radial-gradient(circle at 52% 38%, rgba(18,87,224,.025), transparent 32%),
    radial-gradient(circle at 84% 84%, rgba(255,189,22,.10), transparent 30%);
}
body.theme-blue .page-shell {
  position:relative;
  z-index:2;
  width:min(1540px, calc(100% - 44px));
  padding-top:18px;
}
.portal-decor {
  position:fixed;
  pointer-events:none;
  z-index:-2;
}
/* Top-left blue ribbon */
.decor-blue-top {
  width:560px;height:170px;left:-95px;top:-72px;
  border-radius:0 0 65% 35%;
  transform:rotate(-10deg);
  background:linear-gradient(155deg,#1264ee 0%,#2f7df4 34%,rgba(47,125,244,.72) 55%,rgba(255,255,255,.9) 56%,rgba(255,255,255,.25) 72%,transparent 73%);
  filter:drop-shadow(0 18px 28px rgba(18,87,224,.10));
}
/* Top-right yellow ribbon */
.decor-gold-top {
  width:430px;height:155px;right:-70px;top:-62px;
  border-radius:55% 0 0 70%;
  transform:rotate(7deg);
  background:linear-gradient(165deg,#ffd84f 0%,#ffca24 45%,rgba(255,202,36,.72) 57%,rgba(255,255,255,.88) 58%,rgba(255,255,255,.15) 76%,transparent 77%);
  filter:drop-shadow(0 18px 28px rgba(255,189,22,.10));
}
/* Dotted pattern */
.decor-dots-left,.decor-dots-right {
  width:190px;height:190px;opacity:.55;
  background-image:radial-gradient(circle,rgba(18,87,224,.23) 0 2.4px,transparent 2.8px);
  background-size:18px 18px;
  mask-image:linear-gradient(135deg,#000 0%,rgba(0,0,0,.7) 55%,transparent 100%);
  -webkit-mask-image:linear-gradient(135deg,#000 0%,rgba(0,0,0,.7) 55%,transparent 100%);
}
.decor-dots-left {left:-14px;top:105px;}
.decor-dots-right {
  right:-10px;top:125px;transform:scaleX(-1);
  background-image:radial-gradient(circle,rgba(255,189,22,.28) 0 2.4px,transparent 2.8px);
}
/* Bottom ribbons */
.decor-blue-bottom {
  width:760px;height:175px;left:-130px;bottom:-105px;
  border-radius:60% 60% 0 0;transform:rotate(5deg);
  background:linear-gradient(180deg,rgba(18,87,224,.20) 0 13%,rgba(255,255,255,.95) 14% 28%,#1264ee 29% 100%);
  filter:drop-shadow(0 -12px 24px rgba(18,87,224,.08));
}
.decor-gold-bottom {
  width:670px;height:130px;right:-110px;bottom:-72px;
  border-radius:70% 70% 0 0;transform:rotate(-5deg);
  background:linear-gradient(180deg,rgba(255,189,22,.15) 0 15%,rgba(255,255,255,.92) 16% 34%,#ffd43d 35% 100%);
  filter:drop-shadow(0 -10px 24px rgba(255,189,22,.08));
}
/* Top center status pill */
.top-status-chip {
  position:absolute;top:101px;left:50%;transform:translateX(-50%);
  display:inline-flex;align-items:center;gap:8px;padding:8px 17px;
  border:1px solid rgba(18,87,224,.10);border-radius:999px;
  background:rgba(255,255,255,.88);
  box-shadow:0 10px 28px rgba(30,62,115,.08);
  color:#2f343d;font-size:12px;font-weight:700;white-space:nowrap;
  backdrop-filter:blur(12px);
}
.top-status-chip b{color:#a9a9a9;font-weight:600;}
.top-status-icon {
  width:17px;height:17px;display:grid;place-items:center;border-radius:50%;
  background:#eaf1ff;color:var(--blue);font-weight:900;
}
/* Upper-right floating badge */
.connection-chip {
  position:absolute;top:21px;right:4px;
  display:flex;align-items:center;gap:8px;padding:9px 13px;
  border-radius:999px;background:rgba(255,255,255,.92);
  border:1px solid rgba(18,87,224,.08);
  box-shadow:0 10px 28px rgba(30,62,115,.08);
  color:#1454c7;font-size:12px;white-space:nowrap;
  backdrop-filter:blur(12px);
}
.connection-chip-icon {
  width:25px;height:25px;display:grid;place-items:center;border-radius:50%;
  color:#fff;background:linear-gradient(135deg,#2f74f5,#1257e0);
  font-size:17px;font-weight:900;
}
.connection-chip-rocket{display:grid;place-items:center;width:18px;height:18px;color:#f2a900;font-weight:900;}
/* Headline blue emphasis */
.theme-blue .hero-copy h1{max-width:650px;}
.theme-blue .blue-emphasis{color:var(--blue);position:relative;}
.theme-blue .blue-emphasis::after {
  content:"";position:absolute;left:0;right:18%;bottom:-5px;height:4px;
  border-radius:99px;background:linear-gradient(90deg,#ffbf18,#ffd95c);
}
/* Desktop proportions */
@media (min-width:1181px){
  .theme-blue .brandbar{min-height:96px;}
  .theme-blue .layout{
    grid-template-columns:minmax(270px,1fr) minmax(430px,520px) minmax(280px,.96fr);
    gap:clamp(32px,3.4vw,62px);
    min-height:calc(100vh - 154px);
  }
  .theme-blue .hero-copy{padding-left:clamp(0px,1.4vw,22px);}
  .theme-blue .hero-copy h1{font-size:clamp(44px,4.1vw,68px);}
  .theme-blue .login-card{
    padding:20px;border-radius:25px;
    box-shadow:0 24px 70px rgba(42,67,108,.14);
  }
  .theme-blue .scanner-box{height:300px;}
  .theme-blue .rr-panel{padding-right:clamp(0px,1.5vw,18px);}
  .theme-blue .rr-illustration{margin-top:8px;margin-bottom:20px;}
}
@media (max-width:1180px){
  .top-status-chip{top:92px;}
  .connection-chip{top:10px;right:0;transform:scale(.92);transform-origin:right top;}
}
@media (max-width:760px){
  body.theme-blue .page-shell{width:min(calc(100% - 22px),560px);padding-top:8px;}
  .top-status-chip{
    position:relative;top:auto;left:auto;transform:none;
    width:max-content;max-width:100%;margin:0 auto 8px;
    font-size:10px;padding:7px 12px;
  }
  .connection-chip{display:none;}
  .decor-blue-top{width:360px;height:110px;left:-95px;top:-55px;}
  .decor-gold-top{width:270px;height:95px;right:-90px;top:-40px;}
  .decor-dots-left,.decor-dots-right{width:120px;height:120px;opacity:.35;}
  .decor-blue-bottom{width:430px;height:100px;left:-160px;bottom:-55px;}
  .decor-gold-bottom{width:390px;height:85px;right:-160px;bottom:-48px;}
  .theme-blue .blue-emphasis::after{height:3px;bottom:-3px;}
}


/* ==========================================================
   FINAL v7 — BLUE/YELLOW LOGIN + STATUS VISUAL SYSTEM
   Status page intentionally mirrors the approved login design.
   ========================================================== */
:root{--blue:#1257e0;--blue2:#2f74f5;--gold:#ffbd16;--gold2:#ffd84f;--status-ink:#191b21;--status-muted:#6e7279;}

/* Login: replace the old angular ribbons with softer flowing waves. */
body.theme-blue{background:
  radial-gradient(circle at 50% 38%,rgba(18,87,224,.035),transparent 31%),
  radial-gradient(circle at 84% 72%,rgba(255,189,22,.12),transparent 30%),
  linear-gradient(180deg,#fff 0%,#fff 72%,#fffaf0 100%);}
body.theme-blue .decor-blue-top{
  width:620px;height:205px;left:-145px;top:-105px;transform:rotate(-4deg);
  border-radius:0 0 58% 42% / 0 0 68% 42%;
  background:linear-gradient(166deg,#1264ee 0%,#2f7df4 42%,rgba(47,125,244,.78) 58%,rgba(255,255,255,.94) 59%,rgba(255,255,255,.65) 72%,transparent 73%);
  filter:drop-shadow(0 14px 26px rgba(18,87,224,.10));
}
body.theme-blue .decor-blue-top::after{content:"";position:absolute;left:-8%;top:18%;width:95%;height:54%;border-radius:0 0 62% 38%;background:rgba(255,255,255,.18);transform:rotate(-2deg);}
body.theme-blue .decor-gold-top{
  width:500px;height:175px;right:-105px;top:-91px;transform:rotate(4deg);
  border-radius:48% 0 0 70% / 48% 0 0 72%;
  background:linear-gradient(168deg,#ffda54 0%,#ffca24 44%,rgba(255,202,36,.78) 58%,rgba(255,255,255,.94) 59%,rgba(255,255,255,.62) 73%,transparent 74%);
  filter:drop-shadow(0 14px 26px rgba(255,189,22,.10));
}
body.theme-blue .decor-gold-top::after{content:"";position:absolute;right:-4%;top:18%;width:92%;height:52%;border-radius:52% 0 0 68%;background:rgba(255,255,255,.17);}
body.theme-blue .decor-blue-bottom{
  width:820px;height:190px;left:-180px;bottom:-125px;transform:rotate(2deg);
  border-radius:60% 52% 0 0 / 65% 58% 0 0;
  background:linear-gradient(180deg,rgba(18,100,238,.18) 0 16%,rgba(255,255,255,.96) 17% 31%,#1264ee 32% 100%);
}
body.theme-blue .decor-gold-bottom{
  width:720px;height:155px;right:-135px;bottom:-105px;transform:rotate(-3deg);
  border-radius:65% 60% 0 0 / 70% 64% 0 0;
  background:linear-gradient(180deg,rgba(255,189,22,.18) 0 17%,rgba(255,255,255,.96) 18% 34%,#ffd43d 35% 100%);
}

/* ---------- STATUS PAGE ---------- */
.status-blue-page{min-height:100vh;overflow-x:hidden;color:var(--status-ink);background:
  radial-gradient(circle at 50% 40%,rgba(18,87,224,.025),transparent 34%),
  radial-gradient(circle at 84% 76%,rgba(255,189,22,.10),transparent 30%),
  #fff;}
.status-blue-page::before{content:"";position:fixed;inset:0;z-index:-12;pointer-events:none;background:radial-gradient(circle at 10% 50%,rgba(18,87,224,.035),transparent 26%),radial-gradient(circle at 94% 52%,rgba(255,189,22,.055),transparent 25%);}
.status-shell{position:relative;width:min(1280px,calc(100% - 48px));min-height:100vh;margin:0 auto;padding:22px 0 18px;display:flex;flex-direction:column;}
.status-header{position:relative;min-height:72px;display:flex;align-items:center;justify-content:center;}
.status-brand-lockup{display:flex;align-items:center;gap:18px;}
.status-asnet{width:170px;height:auto;object-fit:contain;}
.status-brand-x{font-size:20px;color:#bfc3c8;font-weight:700;}
.status-rr-lockup{display:flex;align-items:center;gap:10px;}
.status-rr-lockup img{width:54px;height:54px;object-fit:contain;}
.status-rr-lockup strong,.status-rr-lockup small{display:block;line-height:1.05;}
.status-rr-lockup strong{font-size:18px;letter-spacing:-.02em;}
.status-rr-lockup small{margin-top:3px;color:#6c7076;font-size:11px;font-weight:800;letter-spacing:.08em;}
.status-enjoy{position:absolute;right:0;top:0;display:flex;align-items:center;gap:8px;padding:10px 15px;border:1px solid rgba(18,87,224,.10);border-radius:999px;background:rgba(255,255,255,.92);box-shadow:0 10px 28px rgba(30,62,115,.08);color:#1454c7;font-size:12px;white-space:nowrap;}
.status-enjoy-icon{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#2f74f5,#1257e0);}
.status-top-chip{align-self:center;display:flex;align-items:center;gap:9px;margin:6px auto 25px;padding:9px 18px;border:1px solid rgba(18,87,224,.10);border-radius:999px;background:rgba(255,255,255,.9);box-shadow:0 10px 28px rgba(30,62,115,.07);font-size:12px;color:#303640;}
.status-top-chip>span:first-child{width:17px;height:17px;border-radius:50%;display:grid;place-items:center;background:#eaf1ff;color:var(--blue);}
.status-top-chip b{color:#aeb1b5;font-weight:600;}
.status-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(360px,.9fr);gap:58px;align-items:center;flex:1;}
.status-main-column{min-width:0;}
.status-asnet-small{display:block;width:145px;height:auto;margin:0 0 13px 18px;}
.status-card-modern{background:rgba(255,255,255,.96);border:1px solid #e8e9eb;border-radius:27px;padding:28px 36px 22px;box-shadow:0 24px 70px rgba(42,67,108,.12);}
.status-card-head{display:flex;gap:17px;align-items:center;}
.status-check{width:62px;height:62px;border-radius:17px;border:1px solid #b9d1ff;background:#f5f8ff;color:var(--blue);display:grid;place-items:center;font-size:39px;line-height:1;}
.status-kicker-blue{color:var(--blue);font-size:11px;font-weight:900;letter-spacing:.14em;}
.status-card-head h1{margin:6px 0 5px;font-size:clamp(34px,3.1vw,52px);line-height:1;letter-spacing:-.045em;}
.status-card-head p{margin:0;color:var(--status-muted);font-size:13px;}
.status-active{display:inline-flex;align-items:center;gap:8px;margin:22px 0 14px;padding:7px 12px;border-radius:999px;background:#e9f8f0;border:1px solid #c9ecd9;color:#167b4b;font-size:10px;font-weight:900;letter-spacing:.1em;}
.status-active i{width:8px;height:8px;border-radius:50%;background:#18a65f;box-shadow:0 0 0 4px rgba(24,166,95,.12);}
.status-pills-modern{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:17px;}
.status-pills-modern span{padding:6px 10px;border:1px solid #e8eaed;border-radius:999px;background:#fafbfc;color:#5b6068;font-size:10px;font-weight:800;}
.status-pills-modern span:last-child{background:#fff7ec;border-color:#f4dfbf;color:#75531e;}
.status-alert-modern{margin:0 0 12px;padding:9px 12px;border-radius:11px;border:1px solid #f1d17d;background:#fff4d9;color:#76591d;font-size:11px;}
.status-alert-modern a{color:var(--blue);font-weight:800;}
.status-metrics-modern{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:17px;}
.status-metric{min-height:76px;padding:11px;border:1px solid #e5e8ed;border-radius:16px;display:flex;align-items:center;gap:10px;background:#fff;}
.status-metric.blue{background:linear-gradient(145deg,#f5f9ff,#fff);border-color:#d9e6ff;}
.status-metric.gold{background:linear-gradient(145deg,#fffaf0,#fff);border-color:#f3e3bd;}
.status-metric.green{background:linear-gradient(145deg,#f2fbf6,#fff);border-color:#d5eddf;}
.status-metric .metric-icon{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:#eaf1ff;color:var(--blue);font-size:20px;flex:0 0 auto;}
.status-metric.gold .metric-icon{background:#fff2cf;color:#f1ad00;}
.status-metric.green .metric-icon{background:#e4f7ec;color:#16965a;}
.status-metric small{display:block;color:#7b8088;font-size:9px;font-weight:900;letter-spacing:.08em;}
.status-metric strong{display:block;margin-top:4px;font-size:14px;line-height:1.2;word-break:break-word;}
.status-extra-modern{display:flex;gap:9px;flex-wrap:wrap;margin:11px 0 13px;color:#737881;font-size:10px;}
.status-extra-modern span{padding:5px 9px;border-radius:8px;background:#f7f8fa;}
.status-extra-modern strong{color:#343941;}
.status-logout-form{margin-top:3px;}
.status-logout-btn{width:100%;height:43px;border:1px solid #dfe2e6;border-radius:12px;background:#fff;color:#4b5058;font-weight:800;font-size:12px;box-shadow:0 4px 12px rgba(0,0,0,.025);}
.status-logout-btn span{font-size:17px;vertical-align:-1px;margin-right:6px;}
.status-side-column{padding-top:16px;align-self:center;}
.status-rr-title{display:flex;align-items:center;gap:12px;margin-bottom:21px;}
.status-rr-title img{width:55px;height:55px;object-fit:contain;}
.status-rr-title strong,.status-rr-title small{display:block;line-height:1.05;}
.status-rr-title strong{font-size:18px;}
.status-rr-title small{margin-top:4px;color:#70747b;font-size:11px;font-weight:800;letter-spacing:.08em;}
.status-side-column h2{margin:0 0 12px;font-size:clamp(24px,2.1vw,31px);line-height:1.18;letter-spacing:-.03em;max-width:410px;}
.status-side-column h2 span{color:var(--blue);}
.status-side-copy{margin:0;color:#6e7279;font-size:13px;line-height:1.65;max-width:430px;}
.status-rr-illustration{margin:18px 0 12px;display:flex;justify-content:center;}
.status-rr-illustration img{width:min(430px,100%);height:auto;object-fit:contain;filter:drop-shadow(0 18px 22px rgba(36,65,112,.08));}
.status-feature-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:5px;}
.status-feature-strip>div{text-align:center;}
.status-feature-strip span{width:43px;height:43px;margin:0 auto 7px;display:grid;place-items:center;border-radius:50%;background:#edf3ff;color:var(--blue);font-size:19px;}
.status-feature-strip strong{display:block;font-size:11px;margin-bottom:2px;}
.status-feature-strip small{display:block;color:#727780;font-size:9px;line-height:1.35;}
.status-footer{text-align:center;margin-top:12px;color:#6d7279;font-size:12px;}
.status-footer strong{color:#e9ab00;}

@media(max-width:1100px){
 .status-shell{width:min(100% - 30px,900px);}
 .status-layout{grid-template-columns:1fr;gap:26px;}
 .status-side-column{max-width:650px;width:100%;margin:0 auto;}
 .status-enjoy{right:0;}
}
@media(max-width:760px){
 .status-shell{width:min(calc(100% - 20px),560px);padding-top:10px;}
 .status-header{min-height:65px;}
 .status-brand-lockup{gap:9px;}
 .status-asnet{width:125px;}
 .status-brand-x{font-size:16px;}
 .status-rr-lockup img{width:39px;height:39px;}
 .status-rr-lockup strong{font-size:13px;}.status-rr-lockup small{font-size:8px;}
 .status-enjoy{display:none;}
 .status-top-chip{font-size:10px;margin:3px auto 17px;padding:7px 11px;gap:6px;}
 .status-asnet-small{width:118px;margin-left:5px;margin-bottom:9px;}
 .status-card-modern{padding:21px 16px 17px;border-radius:21px;}
 .status-card-head{gap:12px;align-items:flex-start;}
 .status-check{width:48px;height:48px;border-radius:14px;font-size:29px;}
 .status-card-head h1{font-size:32px;}
 .status-card-head p{font-size:11px;line-height:1.45;}
 .status-active{margin:15px 0 11px;}
 .status-metrics-modern{grid-template-columns:1fr;gap:8px;}
 .status-metric{min-height:64px;}
 .status-extra-modern{display:none;}
 .status-side-column{padding:3px 7px 0;}
 .status-side-column h2{font-size:24px;}
 .status-side-copy{font-size:12px;}
 .status-rr-illustration{margin-top:10px;}
 .status-feature-strip{gap:5px;}
 .status-feature-strip small{font-size:8px;}
 .status-footer{font-size:10px;}
 body.status-blue-page .decor-blue-top{width:360px;height:120px;left:-105px;top:-58px;}
 body.status-blue-page .decor-gold-top{width:285px;height:100px;right:-95px;top:-47px;}
 body.status-blue-page .decor-blue-bottom{width:450px;height:110px;left:-155px;bottom:-65px;}
 body.status-blue-page .decor-gold-bottom{width:400px;height:90px;right:-155px;bottom:-55px;}
}

/* Legacy event theme disabled: ASNET x RR GROUP unified design */
.event-chip,.unified-event,.status-festival,.unified-event,.event-81,.big81,.event-note{display:none !important;}


/* ==========================================================
   FINAL v9 — SMOOTH BLUE/YELLOW WAVES + TRANSPARENT RR STATUS
   ========================================================== */
body.theme-blue .decor-blue-top,
body.status-blue-page .decor-blue-top{
  width:720px;height:270px;left:-205px;top:-168px;transform:rotate(-8deg);
  border-radius:0 0 62% 38% / 0 0 72% 48%;
  background:linear-gradient(155deg,#1264ee 0%,#2f7df4 45%,#5b94f7 63%,rgba(255,255,255,.96) 64%,rgba(255,255,255,.72) 76%,rgba(255,255,255,0) 77%);
  filter:drop-shadow(0 12px 24px rgba(18,87,224,.10));
}
body.theme-blue .decor-blue-top::after,
body.status-blue-page .decor-blue-top::after{
  content:"";position:absolute;left:4%;top:38%;width:92%;height:46%;
  border-radius:0 0 70% 30% / 0 0 70% 45%;
  background:rgba(255,255,255,.18);transform:rotate(-2deg);
}
body.theme-blue .decor-gold-top,
body.status-blue-page .decor-gold-top{
  width:590px;height:205px;right:-145px;top:-125px;transform:rotate(7deg);
  border-radius:45% 0 0 72% / 42% 0 0 78%;
  background:linear-gradient(166deg,#ffda54 0%,#ffca24 45%,#ffd95d 60%,rgba(255,255,255,.96) 61%,rgba(255,255,255,.70) 76%,rgba(255,255,255,0) 77%);
  filter:drop-shadow(0 12px 24px rgba(255,189,22,.10));
}
body.theme-blue .decor-gold-top::after,
body.status-blue-page .decor-gold-top::after{
  content:"";position:absolute;right:3%;top:34%;width:94%;height:48%;
  border-radius:55% 0 0 72% / 48% 0 0 72%;
  background:rgba(255,255,255,.18);transform:rotate(2deg);
}

/* Mobile keeps the same soft wave language instead of the old angular crop. */
@media(max-width:760px){
  body.theme-blue .decor-blue-top,
  body.status-blue-page .decor-blue-top{
    width:500px;height:180px;left:-165px;top:-105px;transform:rotate(-8deg);
  }
  body.theme-blue .decor-gold-top,
  body.status-blue-page .decor-gold-top{
    width:390px;height:135px;right:-120px;top:-82px;transform:rotate(7deg);
  }
}

/* Status right panel: transparent illustration, no white rectangular image box. */
.status-rr-illustration{
  margin:18px 0 10px;
  display:flex;
  justify-content:center;
  align-items:center;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  padding:0 !important;
}
.status-rr-illustration img{
  display:block;
  width:min(430px,100%);
  height:auto;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  filter:drop-shadow(0 16px 24px rgba(36,65,112,.07));
}

/* Status features are text-only; remove the small icon circles. */
.status-feature-strip{align-items:start;}
.status-feature-strip>div{padding:0 3px;}
.status-feature-strip strong{font-size:12px;}
.status-feature-strip small{font-size:10px;line-height:1.4;}
.status-feature-strip span{display:none !important;}

@media(max-width:760px){
  .status-rr-illustration{margin:8px 0 10px;}
  .status-rr-illustration img{width:min(500px,100%);}
  .status-feature-strip{gap:8px;margin-top:4px;}
  .status-feature-strip strong{font-size:11px;}
  .status-feature-strip small{font-size:8.5px;}
}


/* FINAL v10: status page no longer shows the duplicate small ASNET logo above the status card. */
.status-asnet-small{display:none !important;}

/* Keep status page header spacing balanced after removing the duplicate logo. */
.status-main-column{padding-top:0;}
@media(max-width:760px){
  .status-main-column{padding-top:0;}
}

/* ==========================================================
   FINAL v11 — LOGIN HTTPS / MOBILE CONSISTENCY
   Mobile HTTPS login keeps the approved clean composition:
   top status text -> ASNET x RR -> Enjoy text -> hero -> scanner.
   ========================================================== */
@media (max-width:760px){
  body.theme-blue .page-shell{
    width:100%;
    max-width:none;
    padding:0 16px 24px;
    box-sizing:border-box;
  }

  /* Keep the top status as a clean line, not a floating card. */
  body.theme-blue .top-status-chip{
    position:relative;
    top:auto;
    left:auto;
    transform:none;
    width:100%;
    max-width:none;
    margin:0 0 18px;
    padding:14px 4px 0;
    justify-content:flex-start;
    gap:8px;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    color:#25282e;
    font-size:17px;
    font-weight:500;
    overflow:hidden;
    white-space:nowrap;
  }
  body.theme-blue .top-status-icon{
    width:auto;height:auto;
    background:transparent;
    color:#25282e;
    font-size:15px;
  }
  body.theme-blue .top-status-chip b{color:#7b7f86;font-weight:500;}

  /* Header logos: centered and visually identical to the approved mobile mockup. */
  body.theme-blue .brandbar{
    min-height:72px;
    display:flex;
    justify-content:center;
    align-items:center;
    margin-bottom:8px;
  }
  body.theme-blue .brand-lockup{gap:10px;}
  body.theme-blue .asnet-mark{width:154px;max-width:43vw;height:auto;}
  body.theme-blue .brand-x{font-size:18px;color:#bfc1c5;}
  body.theme-blue .rr-mark{gap:7px;}
  body.theme-blue .rr-mark img{width:55px;height:55px;}
  body.theme-blue .rr-wordmark strong{font-size:17px;}
  body.theme-blue .rr-wordmark span{font-size:10px;}

  /* On mobile, Enjoy Your Connection is intentionally plain text. */
  body.theme-blue .connection-chip{
    display:flex;
    position:relative;
    top:auto;
    right:auto;
    transform:none;
    width:max-content;
    max-width:100%;
    margin:7px 0 16px;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    color:#25282e;
    font-size:17px;
    font-weight:500;
    gap:7px;
  }
  body.theme-blue .connection-chip-icon{
    width:auto;height:auto;
    background:transparent;
    color:#25282e;
    font-size:13px;
  }
  body.theme-blue .connection-chip-rocket{
    width:auto;height:auto;
    color:#25282e;
    font-size:18px;
  }

  /* Hero follows the same left alignment and typography as the reference. */
  body.theme-blue .layout{
    display:flex;
    flex-direction:column;
    gap:0;
    min-height:0;
  }
  body.theme-blue .hero-copy{
    width:100%;
    padding:0 5px;
    order:1;
    box-sizing:border-box;
  }
  body.theme-blue .hero-copy h1{
    margin:13px 0 13px;
    max-width:100%;
    font-size:clamp(38px,10.4vw,52px);
    line-height:1.02;
    letter-spacing:-.045em;
  }
  body.theme-blue .hero-copy .lead{
    max-width:100%;
    margin:0 0 16px;
    font-size:17px;
    line-height:1.48;
  }
  body.theme-blue .eyebrow{font-size:15px;letter-spacing:.09em;}
  body.theme-blue .accent-bar{margin:0 0 27px;width:90px;height:4px;}

  body.theme-blue .feature-list{margin-bottom:18px;}
  body.theme-blue .feature-item{padding:13px 0;}
  body.theme-blue .feature-icon{width:48px;height:48px;flex:0 0 48px;}
  body.theme-blue .feature-text strong{font-size:18px;}
  body.theme-blue .feature-text p{font-size:15px;line-height:1.4;}

  body.theme-blue .login-card{
    order:2;
    width:100%;
    box-sizing:border-box;
    padding:14px;
    border-radius:24px;
    margin-top:0;
  }

  /* Scanner size on phone matches the reference rather than desktop proportions. */
  body.theme-blue .scanner-box{
    height:min(390px,78vw);
    min-height:285px;
    border-radius:17px;
  }

  body.theme-blue .rr-panel{
    order:3;
    width:100%;
    padding:34px 5px 0;
    box-sizing:border-box;
  }
}

@media (max-width:420px){
  body.theme-blue .top-status-chip{font-size:16px;padding-top:12px;}
  body.theme-blue .connection-chip{font-size:16px;margin-bottom:14px;}
  body.theme-blue .asnet-mark{width:145px;}
  body.theme-blue .rr-mark img{width:50px;height:50px;}
  body.theme-blue .rr-wordmark strong{font-size:16px;}
  body.theme-blue .hero-copy h1{font-size:clamp(36px,10.5vw,45px);}
  body.theme-blue .hero-copy .lead{font-size:16px;}
  body.theme-blue .feature-text strong{font-size:17px;}
  body.theme-blue .feature-text p{font-size:14px;}
}


/* FINAL v13: remove the Wi-Fi Hotspot / Cepat / Aman / Terhubung top line from login. */
body.theme-blue .top-status-chip{display:none !important;}


/* ==========================================================
   FINAL v14 — MOBILE STATUS REDESIGN
   Smooth wave hero + compact modern status cards.
   ========================================================== */
body.status-v14{background:#f4f7fb!important;color:#182033;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;}
body.status-v14 .portal-decor{display:none!important;}
.status14-shell{width:min(100%,620px);min-height:0;margin:0 auto;background:#f7f9fc;box-shadow:0 0 42px rgba(24,43,84,.10);overflow:hidden;position:relative;}
.status14-hero{height:315px;position:relative;background:linear-gradient(180deg,#ffffff 0%,#f9fbff 100%);overflow:hidden;}
.status14-header{position:relative;z-index:5;padding:34px 26px 10px;display:flex;justify-content:center;}
.status14-brand{display:flex;align-items:center;justify-content:center;gap:12px;}
.status14-brand>img{width:145px;height:auto;}
.status14-brand>span{font-size:20px;color:#b7bec8;font-weight:800;}
.status14-rr{display:flex;align-items:center;gap:8px;}
.status14-rr img{width:47px;height:47px;object-fit:contain;}
.status14-rr strong,.status14-rr small{display:block;line-height:1.05;}
.status14-rr strong{font-size:15px;letter-spacing:-.02em;}
.status14-rr small{margin-top:4px;font-size:9px;letter-spacing:.10em;color:#697280;font-weight:800;}
.status14-chip{position:relative;z-index:6;margin:15px auto 0;width:max-content;max-width:calc(100% - 34px);display:flex;align-items:center;justify-content:center;gap:8px;padding:9px 15px;border:1px solid rgba(21,92,221,.10);border-radius:999px;background:rgba(255,255,255,.88);box-shadow:0 10px 25px rgba(34,65,126,.08);font-size:11px;color:#394455;white-space:nowrap;backdrop-filter:blur(6px);}
.status14-chip>span:first-child{color:#1264ee}.status14-chip i{width:3px;height:3px;background:#a8b0bc;border-radius:50%;display:block;}
.status14-wave{position:absolute;left:-12%;width:124%;border-radius:48% 52% 44% 56% / 55% 48% 52% 45%;transform-origin:center;}
.status14-wave.wave-a{height:155px;bottom:-29px;background:linear-gradient(105deg,#1b66e9,#307bf5 64%,#4d8af0);transform:rotate(4deg);}
.status14-wave.wave-b{height:118px;bottom:-7px;left:-9%;width:121%;background:linear-gradient(100deg,#1255d8,#2f6feb 70%,#215fcf);transform:rotate(-7deg);opacity:.98;}
.status14-wave.wave-c{height:72px;bottom:27px;left:17%;width:98%;background:linear-gradient(90deg,rgba(255,204,67,.95),rgba(255,226,130,.92));transform:rotate(-4deg);border-radius:62% 38% 58% 42% / 70% 55% 45% 30%;}
.status14-wave.wave-a::after{content:"";position:absolute;inset:12px 0 auto 0;height:2px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);border-radius:50%;transform:rotate(-2deg);}

.status14-card{position:relative;z-index:10;margin:-28px 16px 0;padding:27px 22px 22px;background:#fff;border:1px solid #e7ebf2;border-radius:28px;box-shadow:0 22px 58px rgba(33,58,105,.13);}
.status14-intro{display:grid;grid-template-columns:50px 1fr 105px;gap:13px;align-items:center;}
.status14-icon{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;background:#f1f6ff;border:1px solid #d7e4ff;color:#1565e8;font-size:28px;font-weight:900;}
.status14-copy small{color:#31527e;font-size:11px;font-weight:900;letter-spacing:.12em;}
.status14-copy h1{margin:5px 0 6px;font-size:34px;line-height:.98;letter-spacing:-.045em;}
.status14-copy p{margin:0;color:#687386;font-size:12px;line-height:1.45;}
.status14-router{position:relative;height:96px;align-self:start;}
.router-box{position:absolute;right:2px;bottom:4px;width:84px;height:43px;border-radius:13px;background:linear-gradient(145deg,#1d2f57,#08142c);box-shadow:0 12px 22px rgba(14,31,67,.28);transform:perspective(150px) rotateX(12deg);}
.router-box:before{content:"";position:absolute;left:9px;right:9px;top:9px;height:4px;border-radius:99px;background:#1b63dd;box-shadow:0 0 12px rgba(47,125,245,.8);}
.router-box i{position:absolute;bottom:7px;width:4px;height:4px;border-radius:50%;background:#35e49a}.router-box i:nth-child(1){left:13px}.router-box i:nth-child(2){left:21px}.router-box i:nth-child(3){left:29px;background:#ffd24b;}
.wifi-ring{position:absolute;right:16px;border:5px solid #2675ef;border-left-color:transparent;border-right-color:transparent;border-bottom-color:transparent;border-radius:50%;transform:rotate(0deg);filter:drop-shadow(0 2px 3px rgba(36,113,236,.18));}.wifi-ring.r1{top:7px;width:60px;height:45px}.wifi-ring.r2{top:24px;right:27px;width:38px;height:28px}.wifi-dot{position:absolute;right:42px;top:48px;width:10px;height:10px;border-radius:50%;background:#2675ef;box-shadow:0 0 0 6px rgba(38,117,239,.11);}
.status14-online{display:inline-flex;align-items:center;gap:7px;margin:18px 0 14px;padding:7px 12px;border:1px solid #ccebdd;border-radius:999px;background:#ebf8f2;color:#148052;font-size:10px;font-weight:900;letter-spacing:.08em;}.status14-online i{width:8px;height:8px;background:#1bb66b;border-radius:50%;box-shadow:0 0 0 4px rgba(27,182,107,.12);}
.status14-idgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.status14-idbox{padding:12px 13px;border-radius:14px;background:#fafbfe;border:1px solid #e8ebf1}.status14-idbox span,.status14-idbox strong{display:block}.status14-idbox span{font-size:9px;color:#8790a0;font-weight:800;letter-spacing:.08em}.status14-idbox strong{margin-top:4px;font-size:11px;color:#354054;word-break:break-all;}
.status14-voucher{display:flex;align-items:center;gap:12px;margin:13px 0 0;padding:13px 14px;border:1px solid #f1dfb8;border-radius:16px;background:linear-gradient(135deg,#fffaf1,#fff);}.voucher-symbol{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#fff0c7;color:#f0a800;font-size:21px;transform:rotate(-8deg)}.status14-voucher strong,.status14-voucher small{display:block}.status14-voucher strong{font-size:13px}.status14-voucher small{margin-top:3px;color:#7e8490;font-size:10px}.voucher-arrow{margin-left:auto;font-size:29px;color:#3f4a5c;font-weight:300;}
.status14-alert{margin-top:12px;padding:10px 12px;background:#fff4d8;border:1px solid #f0d486;border-radius:12px;color:#73581f;font-size:10px}.status14-alert a{color:#1257e0;font-weight:800}
.status14-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:15px}.status14-metric{position:relative;min-height:98px;padding:13px 11px;border-radius:17px;overflow:hidden}.status14-metric small,.status14-metric strong{display:block}.status14-metric small{font-size:9px;font-weight:900;letter-spacing:.05em}.status14-metric strong{margin-top:8px;font-size:15px;line-height:1.1;word-break:break-word}.status14-metric span{position:absolute;right:10px;bottom:8px;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:18px}.status14-metric.blue{background:linear-gradient(145deg,#f0f6ff,#fff);border:1px solid #d7e5ff;color:#145dc9}.status14-metric.blue span{background:#e3efff;color:#236eea}.status14-metric.gold{background:linear-gradient(145deg,#fff8eb,#fff);border:1px solid #f2dfbd;color:#c47600}.status14-metric.gold span{background:#fff0cc;color:#f2a600}.status14-metric.green{background:linear-gradient(145deg,#eefaf4,#fff);border:1px solid #d3ebdf;color:#14855c}.status14-metric.green span{background:#e0f5ea;color:#18a66a}
.status14-traffic{display:flex;gap:8px;flex-wrap:wrap;margin:11px 0 0}.status14-traffic span{font-size:9px;color:#7d8592;padding:6px 8px;background:#f5f7fa;border-radius:8px}.status14-traffic strong{color:#3c4657}
.status14-promo{margin:16px 0 17px;min-height:145px;padding:18px 18px 14px;border-radius:19px;background:linear-gradient(135deg,#0e3e9a,#1e63d7 55%,#337df0);color:#fff;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;overflow:hidden;position:relative;box-shadow:0 14px 28px rgba(25,83,185,.18)}.status14-promo:before{content:"";position:absolute;width:210px;height:210px;right:-110px;top:-90px;border-radius:50%;background:rgba(255,255,255,.08)}.status14-promo small{font-size:8px;font-weight:900;letter-spacing:.12em;opacity:.8}.status14-promo h2{margin:6px 0 7px;font-size:20px;line-height:1.12}.status14-promo h2 span{color:#ffd86a}.status14-promo p{margin:0;font-size:9px;line-height:1.45;opacity:.82}.status14-promo img{width:100%;max-height:120px;object-fit:contain;filter:brightness(1.08) drop-shadow(0 12px 18px rgba(0,0,0,.18));position:relative;z-index:2;}
.status14-logout{width:100%;height:50px;border:0;border-radius:14px;background:linear-gradient(135deg,#ef3f3f,#ff4747);box-shadow:0 10px 22px rgba(239,63,63,.20);color:#fff;font-size:13px;font-weight:900}.status14-logout span{font-size:18px;margin-right:8px;vertical-align:-1px}.status14-note{text-align:center;margin:13px 0 0;color:#8a91a0;font-size:9px;}
.status14-footer{position:relative;margin-top:26px;min-height:150px;background:#0c2a60;overflow:hidden;}.status14-footer-wave{position:absolute;left:-10%;width:120%;border-radius:50% 50% 0 0 / 80% 80% 0 0}.status14-footer-wave.fw1{height:82px;top:-35px;background:#f7f9fc;transform:rotate(2deg)}.status14-footer-wave.fw2{height:68px;top:-7px;background:#12366f;transform:rotate(-3deg);opacity:.65}.status14-footer-content{position:absolute;left:26px;right:26px;bottom:22px;display:flex;align-items:center;gap:11px;color:#fff}.status14-footer-content img{width:50px;height:50px;object-fit:contain}.status14-footer-content strong,.status14-footer-content small{display:block}.status14-footer-content strong{font-size:14px}.status14-footer-content small{margin-top:3px;font-size:9px;color:#c9d6ee}

@media(max-width:520px){
 .status14-hero{height:285px}.status14-header{padding:28px 18px 8px}.status14-brand{gap:8px}.status14-brand>img{width:122px}.status14-brand>span{font-size:16px}.status14-rr img{width:39px;height:39px}.status14-rr strong{font-size:12px}.status14-rr small{font-size:7px}
 .status14-chip{font-size:9px;gap:6px;padding:8px 11px;margin-top:12px}.status14-wave.wave-a{height:140px;bottom:-25px}.status14-wave.wave-b{height:104px}.status14-wave.wave-c{height:58px;bottom:34px}
 .status14-card{margin:-24px 12px 0;padding:22px 15px 18px;border-radius:24px}.status14-intro{grid-template-columns:45px 1fr 78px;gap:10px}.status14-icon{width:45px;height:45px;border-radius:14px;font-size:24px}.status14-copy h1{font-size:29px}.status14-copy p{font-size:10px}.status14-router{height:76px}.router-box{width:68px;height:36px}.wifi-ring.r1{width:49px;height:36px;right:8px}.wifi-ring.r2{width:31px;height:23px;right:17px}.wifi-dot{right:34px;top:42px;width:8px;height:8px}
 .status14-idgrid{grid-template-columns:1fr}.status14-idbox{padding:10px 12px}.status14-metrics{gap:7px}.status14-metric{min-height:91px;padding:11px 9px}.status14-metric small{font-size:8px}.status14-metric strong{font-size:13px}.status14-promo{grid-template-columns:1.15fr .85fr;padding:16px 14px}.status14-promo h2{font-size:18px}.status14-promo p{font-size:8px}.status14-footer{min-height:138px}
}


/* FINAL v15 — stop page exactly at the bottom footer wave */
html:has(body.status-v14), body.status-v14{min-height:0!important;height:auto!important;}
body.status-v14{overflow-y:auto;}
body.status-v14 .status14-shell{min-height:0!important;height:auto!important;}
body.status-v14 .status14-footer{margin-bottom:0!important;}

/* ==============================================================
   V17 - Logout page aligned with Status V14/V15 visual language
   ============================================================== */
.logout17-page{margin:0;background:#edf3fb;color:#151b2a;font-family:Arial,Helvetica,sans-serif;overflow-x:hidden;}
.logout17-page *{box-sizing:border-box}.logout17-shell{width:min(100%,760px);margin:0 auto;background:#fff;min-height:100vh;box-shadow:0 0 34px rgba(18,43,84,.08);overflow:hidden;}
.logout17-hero{position:relative;min-height:270px;overflow:hidden;background:linear-gradient(145deg,#f7faff 0%,#fff 47%,#fff8e6 100%);}
.logout17-wave{position:absolute;pointer-events:none}.logout17-wave.lw1{width:76%;height:185px;left:-18%;top:-90px;background:#2f65e8;border-radius:0 0 68% 45%/0 0 82% 58%;transform:rotate(-7deg)}
.logout17-wave.lw2{width:56%;height:115px;right:-10%;top:-54px;background:#f3b733;border-radius:0 0 0 92%/0 0 0 100%;transform:rotate(8deg)}
.logout17-wave.lw3{width:125%;height:100px;left:-13%;bottom:-58px;background:linear-gradient(90deg,#2557d8 0%,#3d73ee 62%,#f7c453 63%,#f6d986 100%);border-radius:50% 48% 0 0/70% 78% 0 0;transform:rotate(-2deg);opacity:.96}
.logout17-header{position:relative;z-index:3;padding:38px 34px 14px}.logout17-brand{display:flex;align-items:center;gap:16px}.logout17-brand>img{width:155px;height:auto}.logout17-brand>span{font-size:25px;color:#a7adba}.logout17-rr{display:flex;align-items:center;gap:9px}.logout17-rr img{width:45px;height:45px;object-fit:contain}.logout17-rr strong,.logout17-rr small{display:block}.logout17-rr strong{font-size:15px;line-height:1}.logout17-rr small{margin-top:4px;font-size:10px;letter-spacing:.13em;color:#697181}
.logout17-chip{position:relative;z-index:3;margin:22px auto 0;width:max-content;max-width:calc(100% - 44px);display:flex;align-items:center;justify-content:center;gap:10px;padding:11px 16px;background:rgba(255,255,255,.92);border:1px solid #e8ebf1;border-radius:999px;box-shadow:0 8px 24px rgba(35,55,92,.07);font-size:11px;color:#4d5565;white-space:nowrap}.logout17-chip b{color:#1f2734}.logout17-chip i{width:3px;height:3px;border-radius:50%;background:#aab1be}
.logout17-card{position:relative;z-index:4;margin:-4px 18px 0;padding:29px 28px 24px;background:#fff;border:1px solid #edf0f5;border-radius:28px;box-shadow:0 16px 40px rgba(27,50,92,.09)}
.logout17-intro{display:flex;gap:16px;align-items:flex-start}.logout17-icon{flex:0 0 54px;height:54px;border-radius:18px;display:grid;place-items:center;background:#edf8f3;border:1px solid #d6efe3;color:#18a96b;font-size:27px;font-weight:900}.logout17-intro small{display:block;color:#55709b;font-size:10px;font-weight:900;letter-spacing:.14em}.logout17-intro h1{margin:5px 0 8px;font-size:38px;line-height:1.02;letter-spacing:-.045em}.logout17-intro p{margin:0;color:#737b89;font-size:13px;line-height:1.55;max-width:510px}
.logout17-badge{display:inline-flex;align-items:center;gap:7px;margin-top:21px;padding:9px 13px;border-radius:999px;background:#eaf8f2;color:#129663;font-size:10px;font-weight:900;letter-spacing:.07em}.logout17-badge i{width:9px;height:9px;border-radius:50%;background:#19b777;box-shadow:0 0 0 5px rgba(25,183,119,.12)}
.logout17-idgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:17px}.logout17-idbox{padding:14px 15px;border:1px solid #e5e9f0;border-radius:15px;background:#fbfcfe}.logout17-idbox span,.logout17-idbox strong{display:block}.logout17-idbox span{font-size:9px;color:#89909e;font-weight:900;letter-spacing:.08em}.logout17-idbox strong{margin-top:5px;font-size:14px;word-break:break-word}
.logout17-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}.logout17-stat{position:relative;min-height:89px;padding:13px;border:1px solid #dbe7fb;border-radius:16px;background:linear-gradient(145deg,#f6faff,#fff)}.logout17-stat.gold{border-color:#f2e2bb;background:linear-gradient(145deg,#fffaf0,#fff)}.logout17-stat.green{border-color:#d7ebdf;background:linear-gradient(145deg,#f4fbf7,#fff)}.logout17-stat small,.logout17-stat strong{display:block}.logout17-stat small{font-size:8px;font-weight:900;color:#3163b7;letter-spacing:.05em}.logout17-stat.gold small{color:#b07111}.logout17-stat.green small{color:#128a5b}.logout17-stat strong{margin-top:8px;font-size:15px}.logout17-stat>span{position:absolute;right:10px;bottom:9px;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#e8f1ff;color:#3266d3;font-size:12px}.logout17-stat.gold>span{background:#fff2ce;color:#c18410}.logout17-stat.green>span{background:#e6f6ed;color:#169761}
.logout17-details{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.logout17-details>div{padding:10px 11px;border-top:1px solid #eef0f4}.logout17-details span,.logout17-details strong{display:block}.logout17-details span{font-size:8px;color:#9299a6}.logout17-details strong{margin-top:3px;font-size:10px;word-break:break-word;color:#505866}
.logout17-message{display:flex;align-items:center;gap:11px;margin:16px 0 12px;padding:13px 14px;border:1px solid #e8ecf3;border-radius:15px;background:#fafcff}.logout17-message-icon{flex:0 0 34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#edf3ff;color:#2961d6;font-size:18px}.logout17-message strong,.logout17-message small{display:block}.logout17-message strong{font-size:12px}.logout17-message small{margin-top:3px;color:#8a92a0;font-size:9px;line-height:1.4}
.logout17-reconnect{width:100%;height:49px;border:0;border-radius:14px;background:linear-gradient(135deg,#2862da,#3978ef);box-shadow:0 10px 22px rgba(45,101,220,.20);color:#fff;font-size:13px;font-weight:900;cursor:pointer}.logout17-reconnect span{font-size:18px;vertical-align:-1px;margin-right:7px}.logout17-note{text-align:center;margin:12px 0 0;color:#969daa;font-size:8px}
.logout17-footer{position:relative;height:138px;margin-top:-6px;background:#12336f;overflow:hidden}.logout17-footer-wave{position:absolute;left:-8%;width:116%;border-radius:50% 50% 0 0/100% 100% 0 0}.logout17-footer-wave.lfw1{height:64px;top:-28px;background:#dce6f5;transform:rotate(2deg)}.logout17-footer-wave.lfw2{height:54px;top:-17px;background:#6987b5;transform:rotate(-2deg);opacity:.85}.logout17-footer-content{position:absolute;z-index:2;left:31px;bottom:21px;display:flex;align-items:center;gap:10px;color:#fff}.logout17-footer-content img{width:44px;height:44px;object-fit:contain}.logout17-footer-content strong,.logout17-footer-content small{display:block}.logout17-footer-content strong{font-size:13px}.logout17-footer-content small{margin-top:4px;font-size:8px;color:#dce6f7}
@media(max-width:520px){.logout17-shell{width:100%;box-shadow:none}.logout17-hero{min-height:218px}.logout17-header{padding:28px 20px 10px}.logout17-brand{gap:10px}.logout17-brand>img{width:126px}.logout17-brand>span{font-size:19px}.logout17-rr img{width:36px;height:36px}.logout17-rr strong{font-size:12px}.logout17-rr small{font-size:8px}.logout17-chip{margin-top:16px;gap:7px;padding:9px 12px;font-size:9px}.logout17-card{margin:-2px 14px 0;padding:23px 18px 20px;border-radius:24px}.logout17-icon{flex-basis:47px;height:47px;border-radius:15px;font-size:23px}.logout17-intro{gap:12px}.logout17-intro h1{font-size:31px}.logout17-intro p{font-size:11px}.logout17-summary{gap:7px}.logout17-stat{min-height:80px;padding:11px 9px}.logout17-stat strong{font-size:13px}.logout17-details{grid-template-columns:1fr 1fr 1fr}.logout17-footer{height:120px}.logout17-footer-content{left:22px;bottom:17px}}
@media(max-width:370px){.logout17-chip span:nth-of-type(3),.logout17-chip i:nth-of-type(2){display:none}.logout17-idgrid{grid-template-columns:1fr}.logout17-summary{grid-template-columns:1fr 1fr}.logout17-stat.green{grid-column:1/-1}.logout17-details{grid-template-columns:1fr}.logout17-intro h1{font-size:27px}}
