:root {
  font-family:
    Inter,
    -apple-system,
    BlinkMacSystemFont,
    'Segoe UI',
    'Microsoft YaHei',
    sans-serif;
  color: #1d1d1f;
  background: #f5f5f7;
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  min-width: 320px;
}
button,
input,
textarea {
  font: inherit;
}
button {
  cursor: pointer;
}
button:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}
.hidden {
  display: none !important;
}
.page {
  min-height: 100vh;
  background:
    radial-gradient(950px 450px at 18% -5%, #e8f2ff 0, transparent 68%),
    radial-gradient(800px 440px at 90% 5%, #e8f2ff 0, transparent 68%), #f5f5f7;
}
.topbar {
  height: 64px;
  background: rgba(255, 255, 255, 0.82);
  border-bottom: 1px solid #e9e9ed;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 48px;
  backdrop-filter: blur(20px);
}
.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 18px;
  font-weight: 750;
  letter-spacing: 0.02em;
}
.brand-icon {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  color: white;
  background: linear-gradient(145deg, #0b82f4, #0755ad);
  border-radius: 10px;
  box-shadow: 0 4px 12px #006bde35;
}
.top-right {
  font-size: 13px;
  color: #737b87;
  font-weight: 600;
}
.online-dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #30b873;
  margin-right: 4px;
}
.layout {
  display: grid;
  grid-template-columns: 222px minmax(0, 1fr);
  gap: 32px;
  padding: 28px 26px 0;
  min-height: calc(100vh - 64px);
}
.sidebar {
  height: calc(100vh - 92px);
  min-height: 570px;
  position: sticky;
  top: 78px;
  display: flex;
  flex-direction: column;
  border: 1px solid #e9edf3;
  background: #ffffffcf;
  border-radius: 22px;
  padding: 22px 12px;
  box-shadow: 0 12px 34px #202b3f0b;
}
.side-title {
  padding: 4px 12px 14px;
  color: #8b929d;
  font-size: 12px;
  font-weight: 650;
}
.nav-item {
  width: 100%;
  border: 0;
  background: transparent;
  color: #596373;
  border-radius: 14px;
  display: flex;
  gap: 13px;
  text-align: left;
  padding: 14px 13px;
  margin-bottom: 7px;
  align-items: center;
}
.nav-item:hover {
  background: #f3f7fc;
}
.nav-item.selected {
  background: #eaf3ff;
  color: #086bd7;
  box-shadow: inset 0 0 0 1px #dcecff;
}
.nav-icon {
  font-size: 22px;
  width: 24px;
  text-align: center;
  line-height: 1;
}
.nav-item strong {
  display: block;
  font-size: 14px;
  font-weight: 700;
}
.nav-item small {
  display: block;
  font-size: 11px;
  margin-top: 5px;
  color: #8a94a4;
}
.selected small {
  color: #5a90c8;
}
.side-bottom {
  margin-top: auto;
  padding: 0 5px;
}
.hint-card {
  border-radius: 13px;
  padding: 15px 12px;
  background: #f4f6fa;
}
.hint-card strong {
  font-size: 12px;
  color: #3a4655;
}
.hint-card p {
  font-size: 11px;
  line-height: 1.65;
  color: #8993a0;
  margin: 7px 0 0;
}
.security-note {
  font-size: 10px;
  color: #9ba2ae;
  margin: 14px 5px 0;
}
main {
  max-width: 930px;
  width: 100%;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
}
.hero {
  text-align: center;
  padding: 28px 0 26px;
}
.eyebrow {
  font-size: 11px;
  letter-spacing: 0.16em;
  color: #4b95e6;
  font-weight: 800;
}
.hero h1 {
  font-size: 46px;
  letter-spacing: -0.04em;
  margin: 10px 0 7px;
  color: #0866c5;
  line-height: 1.16;
}
.hero p {
  color: #7b818b;
  font-size: 15px;
  margin: 0;
}
.hero-pills {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 20px;
}
.hero-pills span {
  font-size: 12px;
  color: #55769c;
  padding: 6px 13px;
  background: #edf5ff;
  border: 1px solid #e2eefb;
  border-radius: 99px;
}
.panel {
  background: #fff;
  border: 1px solid #e9edf3;
  border-radius: 22px;
  box-shadow: 0 13px 35px #1e2d4610;
  padding: 33px 36px 25px;
}
.panel-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.overline {
  font-size: 12px;
  color: #a0a8b3;
  font-weight: 600;
}
.panel h2 {
  font-size: 28px;
  margin: 4px 0 0;
  letter-spacing: -0.02em;
}
.pill {
  padding: 7px 13px;
  border: 1px solid #e4eaf2;
  border-radius: 99px;
  color: #7b8798;
  background: #fafcfe;
  font-size: 12px;
  white-space: nowrap;
}
.lead {
  color: #818996;
  font-size: 14px;
  margin: 11px 0 25px;
}
.step-label {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 14px;
  margin-bottom: 12px;
}
.step-dot {
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  background: #0a73e5;
  color: white;
  border-radius: 50%;
  font-weight: 800;
  font-size: 12px;
}
.input-row {
  display: flex;
  gap: 12px;
}
.input-wrap {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 11px;
  border: 1px solid #dce2eb;
  border-radius: 12px;
  padding: 0 13px;
  background: #fff;
  min-height: 47px;
}
.input-wrap:focus-within,
textarea:focus {
  border-color: #3b91f1;
  box-shadow: 0 0 0 3px #1884f123;
  outline: 0;
}
.input-wrap span {
  color: #8d99a9;
}
.input-wrap input {
  border: 0;
  outline: 0;
  min-width: 0;
  flex: 1;
  color: #26394f;
  background: transparent;
  font-size: 14px;
}
.input-wrap input::placeholder,
textarea::placeholder {
  color: #afb7c2;
}
.primary,
.secondary {
  border-radius: 12px;
  min-height: 47px;
  padding: 0 21px;
  border: 1px solid transparent;
  font-weight: 700;
  font-size: 14px;
  white-space: nowrap;
}
.primary {
  background: #0874e9;
  color: white;
  box-shadow: 0 5px 13px #086bdd25;
}
.primary:hover:not(:disabled) {
  background: #0068d7;
}
.secondary {
  background: #fff;
  border-color: #dce4ef;
  color: #506279;
}
.secondary:hover {
  background: #f5f9ff;
}
.message,
.result-box {
  margin-top: 15px;
  border-radius: 12px;
  padding: 13px 15px;
  font-size: 14px;
  line-height: 1.6;
  background: #edf7ff;
  color: #24629d;
}
.message.error,
.result-box.error {
  background: #fff1f1;
  color: #b4444b;
}
.message.warning,
.result-box.warning {
  background: #fff8e9;
  color: #996b14;
}
.divider {
  border-top: 1px solid #edf0f4;
  margin: 25px 0;
}
.helper {
  font-size: 13px;
  color: #8490a0;
  line-height: 1.65;
  margin: 0 0 12px;
}
textarea {
  display: block;
  resize: vertical;
  width: 100%;
  min-height: 130px;
  border: 1px solid #dce2eb;
  border-radius: 12px;
  padding: 14px;
  color: #26394f;
  font-size: 13px;
  line-height: 1.6;
}
.form-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-top: 13px;
  color: #a0a8b4;
  font-size: 12px;
}
.form-footer .primary span {
  margin-left: 12px;
}
.panel-link-row {
  display: flex;
  justify-content: space-between;
  margin-top: 22px;
}
.text-link {
  background: none;
  border: 0;
  padding: 0;
  color: #357bbb;
  font-size: 13px;
}
.text-link:hover {
  text-decoration: underline;
}
.order-card {
  margin-top: 22px;
  padding: 20px;
  border-radius: 16px;
  background: #f8fbff;
  border: 1px solid #dbeaff;
}
.order-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.order-top small {
  color: #8da0b6;
}
.order-top h3 {
  font-size: 18px;
  margin: 4px 0;
}
.status-dot {
  width: 12px;
  height: 12px;
  background: #eeb545;
  border-radius: 50%;
  box-shadow: 0 0 0 5px #ffefca;
}
.status-dot.done {
  background: #27b06a;
  box-shadow: 0 0 0 5px #dbf7e9;
}
.status-dot.failed {
  background: #e35a5a;
  box-shadow: 0 0 0 5px #ffeded;
}
.order-card p {
  line-height: 1.65;
  color: #5f6e7f;
  font-size: 13px;
}
.order-meta {
  font-size: 12px;
  color: #6e7f91;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 20px;
}
.order-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 17px;
}
.order-id {
  color: #abb4c1;
}
.subnote {
  margin-top: 13px;
  font-size: 11px;
  color: #a0aab6;
  overflow-wrap: anywhere;
}
.result-box strong {
  display: block;
  font-size: 17px;
}
.result-box p {
  margin: 7px 0 0;
}
.batch-result {
  margin-top: 18px;
  overflow: auto;
}
.batch-result table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
.batch-result th,
.batch-result td {
  text-align: left;
  padding: 10px;
  border-bottom: 1px solid #e9edf3;
}
.batch-result th {
  background: #f7f9fc;
  color: #667588;
}
.batch-result td {
  max-width: 240px;
  overflow-wrap: anywhere;
}
.batch-result p {
  font-size: 12px;
  color: #788697;
}
footer {
  margin: auto 0 0;
  text-align: center;
  color: #a5acb6;
  font-size: 12px;
  padding: 45px 0 32px;
}
#toast {
  position: fixed;
  bottom: 22px;
  left: 50%;
  transform: translateX(-50%);
  background: #233348;
  color: #fff;
  padding: 11px 18px;
  border-radius: 12px;
  font-size: 13px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s;
  max-width: 90vw;
  z-index: 10;
}
#toast.show {
  opacity: 1;
}
@media (max-width: 850px) {
  .layout {
    grid-template-columns: 1fr;
    gap: 0;
    padding: 0 14px;
  }
  .sidebar {
    height: auto;
    min-height: 0;
    position: static;
    flex-direction: row;
    gap: 5px;
    align-items: center;
    border-radius: 0 0 17px 17px;
    padding: 8px;
  }
  .side-title,
  .side-bottom {
    display: none;
  }
  .nav-item {
    justify-content: center;
    margin: 0;
    padding: 10px 6px;
    gap: 5px;
  }
  .nav-item small {
    display: none;
  }
  .nav-icon {
    font-size: 18px;
  }
  .hero {
    padding: 30px 0 24px;
  }
  .hero h1 {
    font-size: 34px;
  }
  .panel {
    padding: 24px 20px;
  }
  .topbar {
    padding: 0 18px;
  }
}
@media (max-width: 540px) {
  .top-right {
    display: none;
  }
  .nav-item strong {
    font-size: 12px;
  }
  .hero p {
    font-size: 13px;
    line-height: 1.6;
  }
  .hero-pills {
    gap: 5px;
  }
  .hero-pills span {
    font-size: 10px;
    padding: 5px 8px;
  }
  .panel h2 {
    font-size: 24px;
  }
  .input-row {
    flex-direction: column;
  }
  .input-row .primary {
    width: 100%;
  }
  .form-footer {
    align-items: stretch;
    flex-direction: column;
  }
  .form-footer .primary {
    width: 100%;
  }
  .panel-link-row {
    gap: 10px;
  }
  .panel-link-row button {
    font-size: 12px;
  }
}
@media (max-width: 850px) {
  .layout,
  .sidebar,
  main,
  .panel {
    min-width: 0;
  }
  .sidebar {
    width: 100%;
    overflow: hidden;
  }
  .nav-item {
    width: auto;
    min-width: 0;
    flex: 1;
  }
  .nav-item span:last-child {
    min-width: 0;
  }
  .nav-item strong {
    white-space: nowrap;
  }
  .hero p {
    overflow-wrap: anywhere;
  }
  .panel-link-row {
    flex-wrap: wrap;
  }
}
.session-progress {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 24px 0 22px;
  text-align: center;
}
.session-progress:before {
  content: '';
  position: absolute;
  top: 19px;
  left: 12%;
  right: 12%;
  height: 2px;
  background: linear-gradient(90deg, #0874e9 0 36%, #d8e0eb 36% 100%);
}
.progress-item {
  position: relative;
  display: grid;
  justify-items: center;
  align-content: start;
  gap: 9px;
  min-width: 0;
  color: #9098a5;
  font-size: 12px;
}
.progress-item span {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 2px solid #dbe3ed;
  border-radius: 50%;
  background: #f3f7fc;
  color: #8792a1;
  font-size: 17px;
  font-weight: 750;
}
.progress-item strong {
  font-weight: 700;
  line-height: 1.3;
}
.progress-item.done,
.progress-item.current {
  color: #086bd7;
}
.progress-item.done span,
.progress-item.current span {
  background: #0874e9;
  border-color: #0874e9;
  color: #fff;
}
.progress-item.current span {
  box-shadow: 0 0 0 6px #e7f2ff;
}
.session-guide {
  border: 1px solid #dfe7f2;
  border-radius: 17px;
  background: linear-gradient(150deg, #fff, #fbfdff);
  padding: 20px 22px;
  box-shadow: 0 3px 9px #1e2d460b;
}
.session-guide h3 {
  margin: 0 0 5px;
  font-size: 17px;
}
.session-guide > p {
  margin: 0;
  color: #8290a0;
  font-size: 13px;
  line-height: 1.65;
}
.session-guide-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin: 17px 0;
}
.guide-link {
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  box-shadow: none;
}
.session-guide ol {
  margin: 0;
  padding-left: 19px;
  color: #728091;
  font-size: 13px;
  line-height: 1.85;
}
.session-guide li {
  padding-left: 2px;
}
.session-guide .credential-warning {
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: 10px;
  color: #856018;
  background: #fff7e7;
  font-size: 12px;
}
.session-field-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 20px 0 9px;
  font-size: 14px;
  font-weight: 700;
}
.session-field-head span {
  font-size: 11px;
  font-weight: 500;
  color: #9aa4b1;
}
#session {
  min-height: 160px;
  max-height: 400px;
}
.session-feedback {
  margin-top: 9px;
  color: #798697;
  font-size: 12px;
  line-height: 1.5;
  min-height: 18px;
}
.session-feedback.valid {
  color: #16804f;
}
.session-feedback.error {
  color: #c5484d;
}
.session-help-details {
  margin: 14px 0 17px;
  color: #4c7db2;
  font-size: 12px;
}
.session-help-details summary {
  cursor: pointer;
  list-style: none;
  font-weight: 700;
}
.session-help-details summary:before {
  content: '▸ ';
  font-weight: 700;
}
.session-help-details[open] summary:before {
  content: '▾ ';
}
.session-help-details p {
  margin: 9px 0 0;
  color: #7d8897;
  line-height: 1.7;
}
.account-confirm {
  display: flex;
  gap: 9px;
  align-items: flex-start;
  padding: 12px;
  border-radius: 11px;
  background: #f7f9fc;
  color: #556575;
  font-size: 12px;
  line-height: 1.5;
  cursor: pointer;
}
.account-confirm input {
  margin-top: 2px;
  accent-color: #0874e9;
}
.session-submit-row {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(120px, 1fr);
  gap: 10px;
  margin-top: 15px;
}
.session-submit-row button {
  min-height: 49px;
}
@media (max-width: 600px) {
  .session-progress {
    gap: 3px;
  }
  .progress-item {
    font-size: 10px;
  }
  .progress-item span {
    width: 31px;
    height: 31px;
    font-size: 13px;
  }
  .session-progress:before {
    top: 15px;
  }
  .session-guide {
    padding: 16px;
  }
  .session-guide-actions {
    grid-template-columns: 1fr;
  }
  .session-submit-row {
    grid-template-columns: 1fr 1fr;
  }
  .session-submit-row button {
    padding: 0 9px;
  }
}
.session-detection {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-top: 13px;
  padding: 16px 17px;
  border: 1px solid #dbe7f4;
  border-radius: 13px;
  background: #f5f9ff;
  color: #446888;
}
.detection-icon,
.eligibility-icon {
  flex: none;
  display: grid;
  place-items: center;
  width: 35px;
  height: 35px;
  border-radius: 10px;
  background: #e6f1ff;
  color: #1677d2;
  font-size: 19px;
  font-weight: 800;
}
.detection-body {
  min-width: 0;
}
.session-detection strong,
.session-eligibility strong {
  display: block;
  font-size: 15px;
  line-height: 1.4;
}
.session-detection p,
.session-eligibility p {
  margin: 4px 0 0;
  font-size: 12px;
  line-height: 1.55;
}
.session-detection #detection-email {
  font-size: 17px;
  font-weight: 750;
  overflow-wrap: anywhere;
}
.session-detection #detection-expiry {
  font-size: 11px;
  opacity: 0.85;
}
.session-detection.valid {
  background: #effcf5;
  border-color: #9ceac0;
  color: #075b32;
}
.session-detection.valid .detection-icon {
  background: #d8f8e7;
  color: #119653;
}
.session-detection.warning {
  background: #fff9ec;
  border-color: #f5dba4;
  color: #866019;
}
.session-detection.warning .detection-icon {
  background: #fff0cf;
  color: #b77811;
}
.session-detection.error {
  background: #fff2f2;
  border-color: #efb7bc;
  color: #a1313a;
}
.session-detection.error .detection-icon {
  background: #ffe0e2;
  color: #d34650;
}
.session-eligibility {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  margin-top: 9px;
  padding: 14px 17px;
  border: 1px solid #d9e7f4;
  border-radius: 13px;
  background: #f6faff;
  color: #375f81;
}
.session-eligibility .eligibility-icon {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  font-size: 15px;
}
.session-eligibility strong {
  font-size: 13px;
}
.session-eligibility p {
  color: #6c8295;
}
@media (max-width: 540px) {
  .session-detection,
  .session-eligibility {
    padding: 13px;
    gap: 10px;
  }
  .detection-icon {
    width: 30px;
    height: 30px;
    font-size: 17px;
  }
  .session-detection #detection-email {
    font-size: 15px;
  }
}
.session-eligibility .eligibility-body {
  min-width: 0;
  flex: 1;
}
.session-eligibility.active {
  border-color: #9ceac0;
  background: #effcf5;
  color: #075b32;
}
.session-eligibility.active .eligibility-icon {
  background: #d8f8e7;
  color: #119653;
}
.session-eligibility.active p {
  color: #28744c;
}
.session-eligibility.inactive {
  border-color: #f5dba4;
  background: #fff9ec;
  color: #866019;
}
.session-eligibility.inactive .eligibility-icon {
  background: #fff0cf;
  color: #b77811;
}
.session-eligibility.inactive p {
  color: #866019;
}
.subscription-field-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 18px 0 9px;
  font-size: 14px;
  font-weight: 700;
  color: #344456;
}
.subscription-field-head a {
  font-size: 12px;
  font-weight: 600;
  color: #0874e9;
  text-decoration: none;
}
.subscription-field-head a:hover {
  text-decoration: underline;
}
#subscription-session {
  min-height: 175px;
}
.subscription-account {
  margin: 10px 0 0;
  color: #075b32;
  font-size: 13px;
  font-weight: 700;
  overflow-wrap: anywhere;
}
#subscription-result {
  margin-top: 18px;
}
#subscription-result.error {
  border-color: #efb7bc;
  background: #fff2f2;
  color: #a1313a;
}
#subscription-result.error .eligibility-icon {
  background: #ffe0e2;
  color: #d34650;
}
#subscription-result.error p {
  color: #a1313a;
}
@media (max-width: 540px) {
  .subscription-field-head {
    align-items: flex-start;
    flex-direction: column;
  }
  .subscription-field-head a {
    margin-top: -4px;
  }
}
.hint-card .text-link {
  font-size: inherit;
  font-weight: 700;
}
.order-card .order-wait-hint {
  display: inline-block;
  margin: 0 0 15px;
  padding: 8px 11px;
  border-radius: 9px;
  background: #eaf3ff;
  color: #2566a8;
  font-weight: 650;
}
