@import url("fonts.css");

/* Constitutional Court - own skin over the shared state frame. */

:root {
  --accent:      #5a3a5a;
  --accent-deep: #3c243c;
  --accent-soft: #ece2ec;
  --accent-ink:  #ffffff;

  --org-measure: 36rem;

  --stone: #f6f4f6;
  --edge:  #d9cdd9;
}

/* ---------- ground, masthead and navigation ---------- */

body {
  background: #e8e2e8;
}

.sheet {
  background: var(--stone);
}

.orghead {
  background: var(--stone);
}

.orghead .wrap {
  padding-top: 1.6rem;
  padding-bottom: 1.4rem;
}

.orghead .kicker {
  color: var(--accent);
  letter-spacing: 0.16em;
}

.orghead .orgname {
  font-size: 1.55rem;
  font-weight: 500;
  letter-spacing: -0-.005em;
}

.orgnav {
  background: var(--accent-deep);
}

.orgnav a[aria-current="page"] {
  border-bottom-color: var(--f-sand);
}

h2 {
  font-weight: 500;
  font-size: 1.3rem;
  color: var(--accent-deep);
}

h3 {
  font-weight: 600;
}

.legal {
  background: var(--accent-soft);
}

/* ---------- judgment cards ---------- */
.judgments {
  margin: 1.2rem 0;
}

.judgments article {
  background: var(--f-paper); border: 1px solid var(--edge);
  border-top: 3px solid var(--accent); padding: 1rem 1.1rem; margin-bottom: .75rem;
}

.judgments .disp {
  font-family: var(--f-sans); font-size: .74rem; text-transform: uppercase;
  letter-spacing: .1em; color: var(--accent); font-weight: 700; margin: 0 0 .3rem;
}

.judgments .disp.void {
  color: var(--f-warn);
}

.judgments h3 {
  margin: 0 0 0.3rem;
  font-size: 1.04rem;
  font-weight: 600;
}

.judgments .cause {
  font-family: var(--f-mono);
  font-size: 0.74rem;
  color: var(--f-ink-faint);
  margin: 0 0 0.6rem;
}

.judgments p {
  margin: 0 0 0.5rem;
  font-size: 0.93rem;
}

.judgments p:last-child {
  margin: 0;
}

.judgments .dissent {
  border-left: 3px solid var(--edge); padding-left: .8rem; margin-top: .7rem;
  font-size: .88rem; color: var(--f-ink-soft);
}

/* ---------- bench ---------- */
.bench {
  margin: 1.3rem 0;
}

.bench .seats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 0.6rem 0;
}

.bench .seat {
  width: 1.5rem; height: 1.5rem; border-radius: 50%;
  border: 2px solid var(--accent); background: var(--f-paper);
}

.bench .seat.on {
  background: var(--accent);
}

.bench .seat.vac {
  border-style: dashed;
  border-color: var(--f-ink-faint);
}

.bench .key {
  font-family: var(--f-sans);
  font-size: 0.8rem;
  color: var(--f-ink-soft);
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.bench .key span {
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.bench .key i {
  width: 0.9rem;
  height: 0.9rem;
  border-radius: 50%;
  border: 2px solid var(--accent);
  display: inline-block;
}

.bench .key i.on {
  background: var(--accent);
}

.bench .key i.vac {
  border-style: dashed;
  border-color: var(--f-ink-faint);
}

/* ---------- cure clock ---------- */
.cure {
  border: 1px solid var(--accent);
  background: var(--f-paper);
  margin: 1.2rem 0;
  max-width: 44rem;
}

.cure .top {
  background: var(--accent-soft); padding: .6rem .95rem;
  font-family: var(--f-sans); font-size: .8rem; margin: 0;
}

.cure .rows {
  padding: 0.3rem 0;
}

.cure .r {
  display: grid;
  grid-template-columns: 1fr 9rem;
  gap: 0.7rem;
  padding: 0.5rem 0.95rem;
  border-bottom: 1px solid var(--edge);
  align-items: center;
}

.cure .r:last-child {
  border-bottom: 0;
}

.cure .track {
  display: block; height: .5rem; margin-top: .4rem;
  background: var(--stone); border: 1px solid var(--edge);
}

.cure .fill {
  display: block;
  height: 100%;
  background: var(--accent);
}

.cure .r.over .fill {
  background: var(--f-warn);
}

.cure .r span:last-child {
  font-family: var(--f-mono);
  font-size: 0.82rem;
  text-align: right;
}

table.reg thead th {
  border-bottom-color: var(--accent);
}

table.reg tbody tr:hover {
  background: var(--accent-soft);
}

/* ---------- narrow screens ---------- */

@media (max-width: 40rem) {
  .cure .r { grid-template-columns: 1fr;
}

.cure .r span:last-child {
  text-align: left;
}
}
