:root {
  --solar-night: #08111f;
  --solar-deep: #101d2d;
  --solar-ink: #172331;
  --solar-paper: #f5f1e8;
  --solar-glass: rgba(255, 253, 248, .7);
  --solar-line: rgba(180, 178, 169, .82);
  --solar-copper: #d17a46;
  --solar-sun: #f5c66b;
  --solar-cyan: #087f88;
  --solar-mint: #7ee6d3;
  --solar-muted: #65737c;
}

body {
  color: var(--solar-ink);
  background: var(--solar-paper);
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  border-left: 1px solid rgba(209, 122, 70, .1);
  border-right: 1px solid rgba(8, 127, 136, .1);
  margin: 0 8vw;
}

.checkout-header,
.portal-header,
header {
  color: #f7f5eb;
  border-bottom-color: rgba(180, 220, 215, .18);
  background: rgba(8, 17, 31, .78);
  backdrop-filter: blur(22px) saturate(140%);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .08);
}

.checkout-brand .brand-mark,
.portal-brand .brand-mark,
header .brand-mark {
  border-color: rgba(245, 198, 107, .55);
  box-shadow: 0 0 0 1px rgba(126, 230, 211, .12), 0 8px 22px rgba(0, 0, 0, .24);
}

.checkout-brand small,
.portal-brand small,
header small { color: #90a7ae; letter-spacing: .08em; text-transform: uppercase; }
.checkout-header-actions,
.portal-header-actions,
.terms-header-actions { gap: 16px; }
.back-link,
.portal-header-actions > a,
.environment-label,
header > a:last-child,
.terms-header-actions > a { color: #c7d8d9; }
.environment-label { border-right-color: rgba(180, 220, 215, .22); }
.language-button { color: #eef6ef; border-color: rgba(220, 239, 233, .34); background: rgba(225, 242, 237, .08); border-radius: 999px; }
.language-button:hover { color: #fff7de; border-color: var(--solar-sun); }

.primary-button,
.secondary-button {
  min-height: 42px;
  border-radius: 999px;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.primary-button:not(:disabled):hover,
.secondary-button:not(:disabled):hover { transform: translateY(-2px); }
.primary-button { color: #162434; border-color: var(--solar-sun); background: var(--solar-sun); box-shadow: 0 10px 24px rgba(209, 122, 70, .17); }
.primary-button:not(:disabled):hover { background: #fff5d9; box-shadow: 0 14px 28px rgba(209, 122, 70, .27); }
.secondary-button { color: var(--solar-ink); border-color: #bab8b0; background: rgba(255, 253, 248, .72); backdrop-filter: blur(12px); }
.secondary-button:not(:disabled):hover { border-color: var(--solar-copper); background: #fffdf8; }

/* Checkout: an illuminated, focused threshold before Paddle. */
.checkout-main {
  position: relative;
  width: min(1180px, calc(100% - 48px));
  padding-top: 104px;
  gap: 96px;
}
.checkout-main::before {
  content: "SOL";
  position: absolute;
  right: -4%;
  top: 34px;
  color: rgba(209, 122, 70, .09);
  font: 700 230px/.8 Georgia, serif;
  letter-spacing: 0;
  pointer-events: none;
}
.checkout-copy { position: relative; padding-top: 44px; }
.checkout-copy::before {
  content: "01 / OPEN THE GATE";
  position: absolute;
  top: 0;
  color: var(--solar-cyan);
  font: 9px monospace;
  letter-spacing: .16em;
}
.eyebrow { color: var(--solar-cyan); letter-spacing: .14em; }
.checkout-copy h1 {
  max-width: 660px;
  font: 700 64px/.96 Georgia, "Times New Roman", serif;
  letter-spacing: 0;
}
.checkout-copy > p { color: #65737c; font-size: 16px; }
.checkout-note {
  padding: 18px;
  border: 1px solid rgba(209, 122, 70, .45);
  border-left: 3px solid var(--solar-copper);
  border-radius: 0 8px 8px 0;
  background: rgba(255, 249, 231, .7);
  backdrop-filter: blur(12px);
}
.checkout-note strong { color: #714329; }
.checkout-note span { color: #6a6257; }
.checkout-facts { border-color: #c9c5bb; background: rgba(255, 253, 248, .52); backdrop-filter: blur(12px); }
.checkout-facts div { border-color: #d5d0c5; }
.checkout-facts dt { color: #788087; }
.checkout-facts dd { color: var(--solar-ink); }
.checkout-panel {
  position: relative;
  border-color: rgba(245, 198, 107, .55);
  background: rgba(255, 253, 248, .7);
  box-shadow: 18px 18px 0 rgba(8, 127, 136, .08), 0 30px 76px rgba(22, 35, 49, .17);
  backdrop-filter: blur(22px) saturate(130%);
}
.checkout-panel::before {
  content: "PADDLE / SUBSCRIPTION / EUR";
  position: absolute;
  top: 18px;
  right: 20px;
  color: #847a68;
  font: 8px monospace;
  letter-spacing: .12em;
}
.panel-heading { padding-top: 12px; border-bottom-color: #d7d2c7; }
.panel-heading span { color: var(--solar-cyan); letter-spacing: .12em; }
.panel-heading strong { font: 700 25px/1 Georgia, serif; }
.checkout-plans { gap: 9px; }
.checkout-plan {
  border-color: #cbc7bc;
  border-radius: 7px;
  background: rgba(255, 253, 248, .64);
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.checkout-plan:hover { transform: translateX(3px); border-color: var(--solar-copper); }
.checkout-plan.active { color: #f7f4e9; border-color: var(--solar-night); background: var(--solar-night); box-shadow: 0 8px 18px rgba(8, 17, 31, .18); }
.checkout-plan.active small { color: #abc2c2; }
.checkout-plan.active b { color: var(--solar-sun); }
.field-label { color: #52626a; }
.text-input { color: var(--solar-ink); border-color: #bbb9b2; border-radius: 7px; background: rgba(255, 253, 248, .72); }
.text-input:focus { outline: 3px solid rgba(8, 127, 136, .2); border-color: var(--solar-cyan); }
.agreement { color: #5f6c73; }
.agreement input { accent-color: var(--solar-cyan); }
.status-message.error { color: #a7442f; }
.key-delivery { border-color: rgba(126, 230, 211, .5); background: rgba(239, 252, 246, .62); }
.delivery-mark { color: #125e62; background: #d7f0e8; }
.key-delivery h2 { font-family: Georgia, serif; }
.delivered-key { border-color: #aebeb7; background: rgba(8, 17, 31, .94); }
.delivered-key code { color: #f9e9bd; }
.delivered-key button { color: #d7fff5; border-left-color: rgba(126, 230, 211, .25); }
.checkout-footer {
  color: #9bb0b3;
  border-top-color: rgba(126, 230, 211, .15);
  background: var(--solar-night);
}
.checkout-footer a { color: #d4e4e1; }
.checkout-footer a:hover { color: var(--solar-sun); }

/* Portal: a compact astrolabe, where metering remains the visual priority. */
.portal-header { background: rgba(8, 17, 31, .82); }
.portal-locked,
.portal-error {
  border-color: rgba(245, 198, 107, .5);
  background: rgba(255, 253, 248, .72);
  box-shadow: 16px 16px 0 rgba(8, 127, 136, .08), 0 24px 64px rgba(22, 35, 49, .13);
  backdrop-filter: blur(20px);
}
.portal-locked h1,
.portal-error h1 { font-family: Georgia, serif; letter-spacing: 0; }
.dashboard {
  width: min(1280px, calc(100% - 48px));
  gap: 24px;
  padding-top: 42px;
}
.dashboard-nav {
  color: #d8e6e1;
  border-color: rgba(126, 230, 211, .24);
  background: rgba(8, 17, 31, .92);
  box-shadow: 0 20px 50px rgba(12, 24, 35, .17);
}
.dashboard-nav::before { content: "JOVETHRA / ORRERY"; display: block; margin-bottom: 28px; color: var(--solar-sun); font: 8px monospace; letter-spacing: .14em; }
.dashboard-nav strong { color: #fff3d4; font-family: Georgia, serif; }
.dashboard-nav nav { border-color: rgba(126, 230, 211, .18); }
.dashboard-nav nav a { color: #9fb5b5; border-radius: 6px; }
.dashboard-nav nav a:hover,
.dashboard-nav nav a.active { color: #fff5dc; background: rgba(126, 230, 211, .12); }
.dashboard-nav nav a.active { border-left-color: var(--solar-sun); }
.dashboard-nav p { color: #839a9d; }
.dashboard-nav code { color: #aef1e1; background: rgba(126, 230, 211, .08); }
.dashboard-content {
  border-color: #c9c4b9;
  background: rgba(255, 253, 248, .64);
  box-shadow: 0 22px 65px rgba(22, 35, 49, .11);
  backdrop-filter: blur(18px);
}
.dashboard-heading { border-bottom-color: #cec9bf; }
.dashboard-heading h1 { font-family: Georgia, serif; letter-spacing: 0; }
.heading-actions { align-items: center; }
.status-badge { color: #165e60; border-color: rgba(8, 127, 136, .3); background: rgba(126, 230, 211, .2); }
.status-badge.pending,
.status-badge.failed,
.status-badge.canceled { color: #8e442b; border-color: rgba(209, 122, 70, .32); background: rgba(245, 198, 107, .18); }
.summary-grid { gap: 12px; }
.summary-grid article {
  border-color: #d1ccc1;
  background: rgba(255, 253, 248, .58);
  transition: transform .18s ease, border-color .18s ease;
}
.summary-grid article:hover { transform: translateY(-3px); border-color: #ba936d; }
.summary-grid article:nth-child(2) { border-top: 2px solid var(--solar-copper); }
.summary-grid article:nth-child(3) { border-top: 2px solid var(--solar-cyan); }
.summary-grid article:nth-child(4) { border-top: 2px solid var(--solar-sun); }
.summary-grid article strong { font-family: Georgia, serif; }
.dashboard-section { border-top-color: #d1ccc1; }
.section-heading h2 { font-family: Georgia, serif; }
.section-index { color: var(--solar-copper); }
.usage-table { border-color: #cbc6bb; background: rgba(255, 253, 248, .54); }
.usage-row { border-bottom-color: #d5d0c5; }
.usage-row strong { color: var(--solar-ink); }
.usage-row > b { color: var(--solar-cyan); }
.meter { background: #d9ddd7; }
.meter span { background: var(--solar-cyan); }
.usage-row:nth-child(2) .meter span { background: var(--solar-copper); }
.usage-row:nth-child(3) .meter span { background: var(--solar-sun); }
.rate-limits { border-color: #cbc6bb; background: rgba(8, 17, 31, .95); }
.rate-limits small { color: #93abae; }
.rate-limits strong { color: #fff0cd; font-family: Georgia, serif; }
.key-panel { border-color: rgba(8, 127, 136, .36); background: rgba(225, 242, 237, .5); }
.key-panel code { color: #174653; background: rgba(255, 253, 248, .66); }
.section-note { color: #68757b; }
.payment-table { border-color: #cbc6bb; background: rgba(255, 253, 248, .52); }
.payment-head,
.payment-row { border-bottom-color: #d5d0c5; }
.payment-head { color: #65737c; background: rgba(232, 226, 215, .72); }
.payment-status { color: #155e60; background: rgba(126, 230, 211, .2); }
.payment-status.failed,
.payment-status.refunded,
.payment-status.canceled { color: #8d432c; background: rgba(245, 198, 107, .2); }
.portal-footer { color: #9bb0b3; border-top-color: rgba(126, 230, 211, .15); background: var(--solar-night); }
.portal-footer a { color: #d4e4e1; }
.portal-footer a:hover { color: var(--solar-sun); }

/* Terms: calmer reference material, with an illuminated legal index. */
body:has(.terms-header-actions) { background: #eee9df; }
body:has(.terms-header-actions)::before { opacity: .3; }
body:has(.terms-header-actions) main { max-width: 1160px; gap: 88px; padding-top: 86px; }
body:has(.terms-header-actions) aside { padding: 20px; border: 1px solid #c9c3b8; background: rgba(255, 253, 248, .5); box-shadow: 8px 8px 0 rgba(209, 122, 70, .07); backdrop-filter: blur(16px); }
body:has(.terms-header-actions) aside > span { color: var(--solar-cyan); letter-spacing: .12em; }
body:has(.terms-header-actions) aside > strong { color: var(--solar-ink); font-family: Georgia, serif; }
body:has(.terms-header-actions) nav { border-top-color: #c8c3b8; }
body:has(.terms-header-actions) nav a { border-bottom-color: #d4cfc5; color: #64737a; }
body:has(.terms-header-actions) nav a:hover { color: var(--solar-cyan); }
body:has(.terms-header-actions) article { position: relative; }
body:has(.terms-header-actions) article::before { content: "SOL / TERMS / 2026"; position: absolute; top: -32px; right: 0; color: #8a7d68; font: 9px monospace; letter-spacing: .14em; }
body:has(.terms-header-actions) h1 { font: 700 60px/.94 Georgia, serif; letter-spacing: 0; }
body:has(.terms-header-actions) .lead { max-width: 680px; color: #627178; font-size: 17px; }
body:has(.terms-header-actions) .legal-warning { border-color: rgba(209, 122, 70, .52); background: rgba(255, 247, 226, .7); box-shadow: 8px 8px 0 rgba(245, 198, 107, .12); backdrop-filter: blur(12px); }
body:has(.terms-header-actions) .legal-warning strong { color: #713d27; }
body:has(.terms-header-actions) .legal-warning span { color: #685d4e; }
body:has(.terms-header-actions) section { border-top-color: #cdc8be; padding: 32px 0; }
body:has(.terms-header-actions) h2 { color: var(--solar-ink); font: 700 23px/1.15 Georgia, serif; }
body:has(.terms-header-actions) p { color: #55646b; }
body:has(.terms-header-actions) code { color: #125c61; background: rgba(126, 230, 211, .18); }
body:has(.terms-header-actions) footer { color: #9bb0b3; border-top-color: rgba(126, 230, 211, .15); background: var(--solar-night); }
body:has(.terms-header-actions) footer a { color: #d4e4e1; }
body:has(.terms-header-actions) footer a:hover { color: var(--solar-sun); }

@media (max-width: 900px) {
  .checkout-main { grid-template-columns: 1fr; padding-top: 72px; gap: 40px; }
  .checkout-copy { padding-top: 34px; }
  .checkout-copy h1 { font-size: 52px; }
  .checkout-panel { max-width: 640px; width: 100%; }
  .dashboard { width: min(100% - 28px, 800px); padding-top: 26px; }
  .dashboard-nav::before { margin-bottom: 12px; }
}

@media (max-width: 660px) {
  .checkout-header,
  .portal-header,
  header { height: 64px; padding-inline: 14px; }
  .checkout-header-actions,
  .portal-header-actions,
  .terms-header-actions { gap: 9px; }
  .checkout-header-actions .back-link,
  .portal-header-actions .environment-label,
  .terms-header-actions > a { display: none; }
  .checkout-main { width: min(100% - 28px, 620px); padding: 54px 0 62px; }
  .checkout-main::before { top: 66px; right: -6%; font-size: 150px; }
  .checkout-copy h1 { font-size: 42px; }
  .checkout-copy > p { font-size: 15px; }
  .checkout-note { margin: 22px 0; }
  .checkout-panel::before { top: 12px; right: 15px; font-size: 7px; }
  .checkout-plan:hover { transform: none; }
  .dashboard { width: min(100% - 20px, 680px); }
  .dashboard-content { padding: 24px 16px; }
  .summary-grid article:hover,
  .primary-button:not(:disabled):hover,
  .secondary-button:not(:disabled):hover { transform: none; }
  body:has(.terms-header-actions) main { padding: 54px 18px 64px; }
  body:has(.terms-header-actions) h1 { font-size: 43px; }
  body:has(.terms-header-actions) article::before { top: -22px; font-size: 7px; }
}

@media (prefers-reduced-motion: reduce) {
  .primary-button,
  .secondary-button,
  .checkout-plan,
  .summary-grid article { transition: none; }
}
