.legacy-browser-upgrade[hidden] {
  display: none;
}

.legacy-browser-upgrade {
  position: fixed;
  z-index: 2147483647;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  box-sizing: border-box;
  overflow: auto;
  padding: 48px 20px;
  background: #f3f6f9;
  color: #17212b;
  font-family:
    -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB",
    "Microsoft YaHei", Arial, sans-serif;
  line-height: 1.65;
}

.legacy-browser-upgrade__card {
  box-sizing: border-box;
  width: 100%;
  max-width: 640px;
  margin: 0 auto;
  padding: 40px;
  border: 1px solid #d5e0ea;
  border-radius: 16px;
  background: #ffffff;
  box-shadow: 0 12px 32px rgba(23, 33, 43, 0.12);
}

.legacy-browser-upgrade__eyebrow {
  margin: 0 0 8px;
  color: #0f4c81;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.08em;
}

.legacy-browser-upgrade__title {
  margin: 0 0 20px;
  color: #102a43;
  font-size: 30px;
  line-height: 1.3;
}

.legacy-browser-upgrade__copy,
.legacy-browser-upgrade__minimum,
.legacy-browser-upgrade__closing {
  margin: 0 0 18px;
  font-size: 17px;
}

.legacy-browser-upgrade__minimum {
  padding: 14px 16px;
  border-left: 4px solid #0f4c81;
  background: #eaf3fa;
}

.legacy-browser-upgrade__steps {
  margin: 0 0 18px;
  padding-left: 24px;
  font-size: 16px;
}

.legacy-browser-upgrade__steps li {
  margin-bottom: 8px;
}

.legacy-browser-upgrade__closing {
  margin-bottom: 0;
  color: #486581;
}

html.legacy-browser-unsupported,
html.legacy-browser-unsupported body {
  min-height: 100%;
}

html.legacy-browser-unsupported body {
  margin: 0;
  overflow: hidden;
}

html.legacy-browser-unsupported #root {
  display: none;
}

@media (max-width: 520px) {
  .legacy-browser-upgrade {
    padding: 24px 12px;
  }

  .legacy-browser-upgrade__card {
    padding: 28px 22px;
    border-radius: 12px;
  }

  .legacy-browser-upgrade__title {
    font-size: 25px;
  }

  .legacy-browser-upgrade__copy,
  .legacy-browser-upgrade__minimum,
  .legacy-browser-upgrade__closing {
    font-size: 16px;
  }
}

/* IC-BOOT-FRAME — the pre-boot frame's two pictures, and which one a document
   load of a conversation url paints first (Ron:「点通知先闪会话列表」).
   public/boot-route.js marks <html data-boot-route="room"> for /chat/room/<id>;
   index.html carries the list frame and a room frame that is `hidden`.

   The room frame is `.room-page`, whose own rule says `display: flex`, and an
   author rule outranks the user agent's `[hidden] { display: none }` whatever
   its specificity — so `hidden` has to be restated here, where this sheet can
   win it on specificity (0,2,0 over 0,1,0) for preboot.css and app.css alike.
   Without the mark, nothing below changes today's frame. */
[data-boot-frame="room"][hidden] {
  display: none;
}

:root[data-boot-route="room"] [data-boot-frame="room"][hidden] {
  display: flex;
}

:root[data-boot-route="room"] [data-boot-frame="list"] {
  display: none;
}
