/* Cosmos ATAR Calculator. Everything is scoped to .cosmos-atar so the theme is never affected.
   Override colours from your theme: .cosmos-atar { --ca-accent: #yourBlue; } */
.cosmos-atar {
  --ca-ink: #172036;
  --ca-muted: #586079;
  --ca-line: #d9deea;
  --ca-surface: #ffffff;
  --ca-sunk: #f3f5fa;
  --ca-accent: #3146d0;
  --ca-accent-ink: #ffffff;
  --ca-night: #121a33;
  --ca-night-2: #1b2547;
  --ca-star: #a9b6ff;
  --ca-warn-bg: #fff6e6;
  --ca-warn-ink: #7a4300;
  --ca-radius: 10px;
  container-type: inline-size;
  color: var(--ca-ink);
  font: inherit;
  line-height: 1.5;
  max-width: 1120px;
  margin: 0 auto 2.5rem;
}
.cosmos-atar *, .cosmos-atar *::before, .cosmos-atar *::after { box-sizing: border-box; }
.cosmos-atar .ca-sr {
  position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.cosmos-atar .ca-title { margin: 0 0 .35rem; font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.25rem); line-height: 1.15; letter-spacing: -.01em; }
.cosmos-atar .ca-lede { margin: 0 0 1.25rem; max-width: 62ch; color: var(--ca-muted); }

/* Mode switch */
.cosmos-atar .ca-modes {
  display: inline-flex; gap: 4px; padding: 4px; margin: 0 0 1.25rem;
  background: var(--ca-sunk); border: 1px solid var(--ca-line); border-radius: 999px;
}
.cosmos-atar .ca-mode {
  appearance: none; border: 0; margin: 0; cursor: pointer;
  padding: .55rem 1.1rem; border-radius: 999px; min-height: 44px;
  font: inherit; font-weight: 600; font-size: .95rem; line-height: 1.2;
  background: transparent; color: var(--ca-muted);
}
.cosmos-atar .ca-mode[aria-pressed="true"] { background: var(--ca-surface); color: var(--ca-ink); box-shadow: 0 1px 2px rgba(23, 32, 54, .14); }

.cosmos-atar .ca-grid { display: grid; gap: 1.5rem; grid-template-columns: minmax(0, 1fr); align-items: start; }
@container (max-width: 480px) {
  .cosmos-atar .ca-rows-head, .cosmos-atar .ca-row { grid-template-columns: minmax(0, 1fr) 4.6rem 2.75rem; gap: .4rem; }
  .cosmos-atar .ca-select { padding-left: .5rem; padding-right: .25rem; }
}
@container (min-width: 760px) {
  .cosmos-atar .ca-grid { grid-template-columns: minmax(0, 1.12fr) minmax(300px, 1fr); gap: 2rem; }
  .cosmos-atar .ca-result { position: sticky; top: 1.5rem; }
}

/* Target ATAR input */
.cosmos-atar .ca-target { margin: 0 0 1.25rem; padding: 1rem; background: var(--ca-sunk); border-radius: var(--ca-radius); }
.cosmos-atar .ca-target label { display: block; font-weight: 600; margin-bottom: .35rem; }
.cosmos-atar .ca-target input { max-width: 9rem; font-size: 1.25rem; font-weight: 700; }
.cosmos-atar .ca-hint { margin: .6rem 0 0; font-size: .9rem; color: var(--ca-muted); }

/* Subject rows */
.cosmos-atar .ca-rows-head, .cosmos-atar .ca-row {
  display: grid; grid-template-columns: minmax(0, 1fr) 6.5rem 2.75rem; gap: .5rem; align-items: start;
}
.cosmos-atar .ca-rows-head { font-size: .85rem; font-weight: 600; color: var(--ca-muted); padding: 0 0 .35rem; }
.cosmos-atar .ca-rows { list-style: none; margin: 0; padding: 0; }
.cosmos-atar .ca-row { margin: 0 0 .65rem; padding: 0; }
.cosmos-atar .ca-row::before { content: none; }
.cosmos-atar .ca-select, .cosmos-atar .ca-mark, .cosmos-atar .ca-target input {
  width: 100%; min-height: 44px; margin: 0; padding: .55rem .7rem;
  font: inherit; color: var(--ca-ink); background: var(--ca-surface);
  border: 1px solid var(--ca-line); border-radius: 8px; box-shadow: none;
}
.cosmos-atar .ca-mark { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; -moz-appearance: textfield; }
.cosmos-atar .ca-mark::-webkit-outer-spin-button, .cosmos-atar .ca-mark::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cosmos-atar .ca-mark[aria-invalid="true"] { border-color: #b3261e; background: #fff4f3; }
.cosmos-atar .ca-meta { display: block; min-height: 1.35em; margin-top: .2rem; font-size: .82rem; color: var(--ca-muted); }
.cosmos-atar .ca-meta.is-aim { color: var(--ca-accent); font-weight: 600; }
.cosmos-atar .ca-remove {
  appearance: none; margin: 0; padding: 0; width: 44px; height: 44px; cursor: pointer;
  font: inherit; font-size: 1.4rem; line-height: 1; color: var(--ca-muted);
  background: transparent; border: 1px solid transparent; border-radius: 8px;
}
.cosmos-atar .ca-remove:hover { color: var(--ca-ink); background: var(--ca-sunk); }

.cosmos-atar .ca-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin: .5rem 0 1rem; }
.cosmos-atar .ca-btn {
  appearance: none; margin: 0; cursor: pointer; min-height: 44px; padding: .6rem 1.1rem;
  font: inherit; font-weight: 600; line-height: 1.2; border-radius: 8px;
  color: var(--ca-accent-ink); background: var(--ca-accent); border: 1px solid var(--ca-accent);
}
.cosmos-atar .ca-btn-quiet { color: var(--ca-ink); background: transparent; border-color: var(--ca-line); }

.cosmos-atar .ca-notes ul { margin: 0; padding: .8rem 1rem .8rem 2rem; background: var(--ca-warn-bg); color: var(--ca-warn-ink); border-radius: var(--ca-radius); font-size: .92rem; }
.cosmos-atar .ca-notes li + li { margin-top: .3rem; }

/* Result: the night-sky panel with the orbit gauge */
.cosmos-atar .ca-sky {
  position: relative; overflow: hidden; text-align: center; color: #fff;
  padding: 1.25rem 1.25rem 1.4rem; border-radius: 16px;
  background:
    radial-gradient(1.5px 1.5px at 12% 22%, rgba(255,255,255,.7), transparent 60%),
    radial-gradient(1px 1px at 78% 14%, rgba(255,255,255,.6), transparent 60%),
    radial-gradient(1.5px 1.5px at 88% 64%, rgba(255,255,255,.5), transparent 60%),
    radial-gradient(1px 1px at 22% 78%, rgba(255,255,255,.5), transparent 60%),
    radial-gradient(120% 90% at 50% 110%, var(--ca-night-2), var(--ca-night));
}
.cosmos-atar .ca-orbit { display: block; width: 100%; max-width: 300px; height: auto; margin: 0 auto -1.6rem; }
.cosmos-atar .ca-track { fill: none; stroke: rgba(255,255,255,.22); stroke-width: 2; stroke-dasharray: 2 5; }
.cosmos-atar .ca-progress { fill: none; stroke: var(--ca-star); stroke-width: 2.5; stroke-linecap: round; }
.cosmos-atar .ca-planet { transform-origin: 120px 120px; transition: transform .7s cubic-bezier(.2,.7,.2,1), opacity .3s; opacity: 0; }
.cosmos-atar .ca-planet circle:first-child { fill: none; stroke: var(--ca-star); stroke-width: 1.5; }
.cosmos-atar .ca-planet circle:last-child { fill: #fff; }
.cosmos-atar .ca-end { fill: rgba(255,255,255,.55); font-size: 9px; font-family: inherit; }
.cosmos-atar .ca-big { margin: 0; font-size: clamp(2.8rem, 2rem + 3vw, 3.8rem); font-weight: 750; line-height: 1; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.cosmos-atar .ca-big-label { margin: .35rem 0 0; font-weight: 600; color: rgba(255,255,255,.82); }
.cosmos-atar .ca-range { margin: .5rem auto 0; max-width: 32ch; min-height: 1.5em; font-size: .92rem; color: rgba(255,255,255,.75); }
.cosmos-atar .ca-stats { display: flex; justify-content: center; gap: 2rem; margin: 1rem 0 0; padding: .9rem 0 0; border-top: 1px solid rgba(255,255,255,.14); }
.cosmos-atar .ca-stats div { margin: 0; }
.cosmos-atar .ca-stats dt { font-size: .8rem; color: rgba(255,255,255,.65); }
.cosmos-atar .ca-stats dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; }

.cosmos-atar .ca-table { width: 100%; margin: 0; border-collapse: collapse; font-size: .9rem; border: 0; }
.cosmos-atar .ca-table caption { caption-side: top; text-align: left; font-weight: 700; padding: 0 0 .5rem; font-size: 1rem; }
.cosmos-atar .ca-table th, .cosmos-atar .ca-table td { padding: .5rem .4rem; text-align: left; vertical-align: top; border: 0; border-bottom: 1px solid var(--ca-line); background: none; font-weight: 400; }
.cosmos-atar .ca-table thead th { font-size: .8rem; font-weight: 600; color: var(--ca-muted); }
.cosmos-atar .ca-table tbody th { font-weight: 600; }
.cosmos-atar .ca-table .ca-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cosmos-atar .ca-table tr.is-dropped { color: var(--ca-muted); }
.cosmos-atar .ca-tag { display: block; font-size: .75rem; color: var(--ca-accent); font-weight: 600; }


.cosmos-atar .ca-share { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; margin-top: 1rem; }
.cosmos-atar .ca-share-status { font-size: .9rem; color: var(--ca-muted); }

.cosmos-atar .ca-source { margin: 1.5rem 0 0; font-size: .85rem; color: var(--ca-muted); max-width: 75ch; }
.cosmos-atar .ca-source a { color: inherit; }
.cosmos-atar .ca-noscript { padding: 1rem; background: var(--ca-warn-bg); color: var(--ca-warn-ink); border-radius: var(--ca-radius); }

/* Explainer content (server rendered for search engines) */
.cosmos-atar .ca-explain { margin-top: 2.5rem; max-width: 72ch; }
.cosmos-atar .ca-explain h2 { font-size: 1.4rem; margin: 2rem 0 .6rem; }
.cosmos-atar .ca-explain h3 { font-size: 1.1rem; margin: 1.4rem 0 .4rem; }
.cosmos-atar .ca-explain p, .cosmos-atar .ca-explain li { color: var(--ca-ink); }

/* Focus and motion */
.cosmos-atar :focus-visible { outline: 3px solid var(--ca-accent); outline-offset: 2px; }
.cosmos-atar .ca-sky :focus-visible { outline-color: #fff; }
@media (prefers-reduced-motion: reduce) {
  .cosmos-atar .ca-planet { transition: none; }
}
/* Until the script runs, keep the panel's height so nothing jumps. */
.cosmos-atar:not(.is-ready) .ca-rows { min-height: 17rem; }

/* ------------------------------------------------------------------
   Cosmos theme skin: dark navy + orange, using the theme's own tokens
   (--bg, --text, --muted, --accent, --panel...) with safe fallbacks.
   ------------------------------------------------------------------ */
.cosmos-atar {
  color-scheme: dark;
  --ca-ink: var(--text, #e8ecf6);
  --ca-muted: var(--muted, #c6d0e8);
  --ca-line: var(--panel-border, rgba(255, 255, 255, .12));
  --ca-surface: #13244d;
  --ca-sunk: rgba(255, 255, 255, .045);
  --ca-accent: var(--accent, #f26b1d);
  --ca-accent-ink: var(--accent-ink, #ffffff);
  --ca-night: #0b1838;
  --ca-night-2: #1a2c5c;
  --ca-star: var(--accent-2, #ff9a5c);
  --ca-warn-bg: rgba(242, 107, 29, .12);
  --ca-warn-ink: #ffd2b5;
  --ca-radius: var(--radius, 14px);
  padding: 1.5rem 0 0;
}
.cosmos-atar .ca-title { color: var(--ca-ink); }
.cosmos-atar .ca-mode[aria-pressed="true"] { background: var(--ca-accent); color: var(--ca-accent-ink); box-shadow: 0 2px 10px rgba(242, 107, 29, .3); }
.cosmos-atar .ca-mode:not([aria-pressed="true"]):hover { color: var(--ca-ink); }
.cosmos-atar .ca-inputs {
  padding: 1.25rem; background: var(--panel, rgba(255, 255, 255, .04));
  border: 1px solid var(--ca-line); border-radius: var(--ca-radius);
}
.cosmos-atar .ca-target { border: 1px solid var(--ca-line); }
.cosmos-atar .ca-select, .cosmos-atar .ca-mark, .cosmos-atar .ca-target input { border-color: rgba(255, 255, 255, .16); }
.cosmos-atar .ca-select:hover, .cosmos-atar .ca-mark:hover, .cosmos-atar .ca-target input:hover { border-color: rgba(255, 255, 255, .3); }
.cosmos-atar .ca-select:focus, .cosmos-atar .ca-mark:focus, .cosmos-atar .ca-target input:focus { border-color: var(--ca-accent); outline: none; box-shadow: 0 0 0 3px rgba(242, 107, 29, .28); }
.cosmos-atar .ca-select option, .cosmos-atar .ca-select optgroup { background: #13244d; color: #e8ecf6; }
.cosmos-atar .ca-mark::placeholder { color: rgba(198, 208, 232, .55); }
.cosmos-atar .ca-mark[aria-invalid="true"] { border-color: #ff7a6b; background: rgba(255, 92, 72, .12); }
.cosmos-atar .ca-btn { border-radius: 999px; transition: background-color .15s, border-color .15s, transform .15s; }
.cosmos-atar .ca-btn:hover { background: var(--accent-2, #ff9a5c); border-color: var(--accent-2, #ff9a5c); }
.cosmos-atar .ca-btn-quiet:hover { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .3); }
.cosmos-atar .ca-remove:hover { background: rgba(255, 255, 255, .06); }
.cosmos-atar .ca-sky { border: 1px solid var(--ca-line); box-shadow: 0 18px 40px rgba(0, 0, 0, .25); }
.cosmos-atar .ca-planet circle:last-child { fill: var(--ca-accent); }
.cosmos-atar .ca-source a, .cosmos-atar .ca-explain a { color: var(--accent-2, #ff9a5c); }
.cosmos-atar .ca-explain h2, .cosmos-atar .ca-explain h3 { color: var(--ca-ink); }
.cosmos-atar .ca-explain p, .cosmos-atar .ca-explain li { color: var(--ca-muted); }
.cosmos-atar .ca-explain strong { color: var(--ca-ink); }
@media (prefers-reduced-motion: reduce) { .cosmos-atar .ca-btn { transition: none; } }
/* Give the calculator the full site width inside the theme's narrow page column. */
main.content:has(.cosmos-atar) { max-width: calc(var(--max, 1120px) + 40px); }
/* Panels toggled by the script must stay hidden until they have content. */
.cosmos-atar [hidden] { display: none !important; }

/* ---------- Calculate button ---------- */
.cosmos-atar .ca-calc {
  display: block; width: 100%; margin: 1rem 0 0; min-height: 52px;
  font-size: 1.05rem; font-weight: 700; letter-spacing: .01em;
  box-shadow: 0 8px 22px rgba(242, 107, 29, .28);
}
.cosmos-atar .ca-calc:disabled,
.cosmos-atar .ca-calc:disabled:hover {
  cursor: not-allowed; color: rgba(255, 255, 255, .55);
  background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .12); box-shadow: none;
}
.cosmos-atar .ca-calc:not(:disabled):active { transform: translateY(1px); }
.cosmos-atar .ca-notes:empty { display: none; }
.cosmos-atar .ca-notes ul { margin-top: .25rem; }
.cosmos-atar .ca-actions { margin-bottom: .75rem; }

/* ---------- How each subject counts (full width, no sideways scrolling) ---------- */
.cosmos-atar .ca-breakdown {
  margin-top: 1.75rem; padding: 1.5rem;
  background: linear-gradient(180deg, rgba(255, 255, 255, .07), rgba(255, 255, 255, .035));
  border: 1px solid rgba(255, 255, 255, .14); border-left: 4px solid var(--ca-accent);
  border-radius: var(--ca-radius);
}
.cosmos-atar .ca-bd-title { margin: 0 0 .3rem; font-size: clamp(1.2rem, 1.05rem + .6vw, 1.45rem); line-height: 1.25; color: var(--ca-ink); }
.cosmos-atar .ca-bd-note { margin: 0 0 1rem; font-size: .92rem; color: var(--ca-muted); }
.cosmos-atar .ca-table { table-layout: fixed; font-size: .98rem; }
.cosmos-atar .ca-table thead th { padding: .55rem .6rem; font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; color: var(--ca-muted); border-bottom: 1px solid rgba(255, 255, 255, .2); }
.cosmos-atar .ca-table thead th:first-child { width: 34%; }
.cosmos-atar .ca-table th, .cosmos-atar .ca-table td { padding: .75rem .6rem; border-bottom: 1px solid rgba(255, 255, 255, .09); overflow-wrap: anywhere; }
.cosmos-atar .ca-table tbody tr:last-child > * { border-bottom: 0; }
.cosmos-atar .ca-table tbody th { color: var(--ca-ink); font-weight: 650; }
.cosmos-atar .ca-table tbody td { color: var(--ca-ink); }
.cosmos-atar .ca-table tbody tr:hover > * { background: rgba(255, 255, 255, .03); }
.cosmos-atar .ca-table .ca-count { color: var(--ca-star); font-weight: 700; }
.cosmos-atar .ca-table tr.is-dropped > * { color: var(--ca-muted); opacity: .6; }
.cosmos-atar .ca-table tr.is-dropped .ca-count { color: var(--ca-muted); }

/* ---------- Phones ---------- */
@container (max-width: 600px) {
  .cosmos-atar .ca-inputs { padding: 1rem; }
  .cosmos-atar .ca-modes { display: flex; width: 100%; }
  .cosmos-atar .ca-mode { flex: 1 1 0; padding-left: .5rem; padding-right: .5rem; }
  .cosmos-atar .ca-actions .ca-btn { flex: 1 1 0; }
  .cosmos-atar .ca-breakdown { padding: 1.1rem 1rem; }
  /* Each subject becomes a small card: name on top, four figures beneath. */
  .cosmos-atar .ca-table, .cosmos-atar .ca-table tbody, .cosmos-atar .ca-table tr { display: block; width: 100%; }
  .cosmos-atar .ca-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .cosmos-atar .ca-table tbody tr {
    display: grid; grid-template-columns: 1fr 1fr; gap: .55rem 1rem;
    padding: .9rem 0; border-bottom: 1px solid rgba(255, 255, 255, .1);
  }
  .cosmos-atar .ca-table tbody tr:last-child { border-bottom: 0; padding-bottom: 0; }
  .cosmos-atar .ca-table tbody tr:hover > * { background: none; }
  .cosmos-atar .ca-table tbody th { grid-column: 1 / -1; padding: 0; border: 0; font-size: 1.02rem; }
  .cosmos-atar .ca-table tbody td { display: flex; flex-direction: column; padding: 0; border: 0; text-align: left; white-space: normal; }
  .cosmos-atar .ca-table tbody td::before {
    content: attr(data-label); font-size: .74rem; font-weight: 600;
    text-transform: uppercase; letter-spacing: .05em; color: var(--ca-muted); margin-bottom: .1rem;
  }
  .cosmos-atar .ca-table .ca-tag { display: inline; margin-left: .35rem; }
  .cosmos-atar .ca-stats { gap: 1.25rem; }
}
.cosmos-atar .ca-range:empty { display: none; }
@container (max-width: 600px) {
  /* Subject rows: full-width subject picker, then the hint, mark and remove button on one line. */
  .cosmos-atar .ca-rows-head { display: none; }
  .cosmos-atar .ca-row {
    grid-template-columns: minmax(0, 1fr) 5.5rem 2.75rem; gap: .45rem .5rem; align-items: center;
    padding: 0 0 .8rem; margin: 0 0 .8rem; border-bottom: 1px solid rgba(255, 255, 255, .08);
  }
  .cosmos-atar .ca-row:last-child { border-bottom: 0; margin-bottom: .25rem; }
  .cosmos-atar .ca-cell-subject { display: contents; }
  .cosmos-atar .ca-row .ca-select { grid-column: 1 / -1; grid-row: 1; padding-left: .7rem; }
  .cosmos-atar .ca-row .ca-meta { grid-column: 1; grid-row: 2; margin: 0; min-height: 0; }
  .cosmos-atar .ca-row .ca-cell-mark { grid-column: 2; grid-row: 2; }
  .cosmos-atar .ca-row .ca-remove { grid-column: 3; grid-row: 2; }
  .cosmos-atar .ca-mark::placeholder { font-weight: 400; }
  .cosmos-atar .ca-actions .ca-btn { white-space: nowrap; padding-left: .75rem; padding-right: .75rem; font-size: .95rem; }
  /* Cards: figures read left to right under each label. */
  .cosmos-atar .ca-table tbody td.ca-num { text-align: left; align-items: flex-start; }
}
