/* Constitution page */
.legend { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.legend-item { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--ink-2); font-size: 15px; background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 12px 16px; max-width: 470px; line-height: 1.4; }
.legend-item:hover { color: var(--ink); border-color: var(--line-2); }
.legend-item strong { color: var(--ink); }
.legend-item .dot { width: 12px; height: 12px; border-radius: 50%; flex: none; }
.legend-item.can .dot { background: var(--green); box-shadow: 0 0 0 4px var(--green-soft); }
.legend-item.fixed .dot { background: var(--red); box-shadow: 0 0 0 4px var(--red-soft); }

.const-grid { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 48px; align-items: start; }
.toc { position: sticky; top: 92px; }
.toc-title { font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3); margin: 0 0 10px; }
.toc ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.toc ol a { display: flex; gap: 12px; align-items: baseline; text-decoration: none; color: var(--ink-2); font-size: 15px; font-weight: 500; padding: 7px 12px; border-radius: 10px; line-height: 1.35; }
.toc ol a span { font-weight: 800; color: var(--ink-3); min-width: 16px; }
.toc ol a:hover { background: #fff; color: var(--ink); }
.toc ol a[aria-current] { background: #fff; color: var(--ink); box-shadow: var(--shadow); }
.toc ol a.can span { color: var(--green); }
.toc ol a.fixed span { color: var(--red); }
.toc-cta a { color: var(--deep); font-weight: 700; }
.toc-cta { margin-top: 22px; background: var(--soft); border-radius: 16px; padding: 16px; font-size: 14.5px; line-height: 1.5; display: grid; gap: 4px; color: var(--deep); }

.brief { background: #fff; border: 1px solid var(--line); border-radius: 26px; padding: 44px 56px 36px; box-shadow: var(--shadow); max-width: 820px; }
.brief-intro p.lede { font-size: 18px; color: var(--ink-2); }
.brief-intro p { font-size: 18px; }
.brief-intro { border-bottom: 1px solid var(--line); padding-bottom: 16px; margin-bottom: 8px; }
.brief section { padding: 30px 0 14px; border-bottom: 1px solid var(--line); scroll-margin-top: 90px; }
.brief section:last-child { border-bottom: 0; }
.brief h2 { font-size: 26px; display: flex; align-items: baseline; gap: 14px; margin-bottom: 16px; }
.brief h2 .num { font-size: 15px; font-weight: 800; color: var(--deep); background: var(--soft); border-radius: 9px; min-width: 32px; height: 32px; display: inline-grid; place-items: center; transform: translateY(-3px); }
.brief p, .brief li { font-size: 17px; line-height: 1.68; }
.brief ul, .brief ol { padding-left: 22px; margin: 0 0 1em; }
.brief li { margin-bottom: 6px; }
.brief li::marker { color: var(--ink-3); font-weight: 700; }
.brief ol > li { padding-left: 4px; }
.brief strong { font-weight: 700; }
.badge { display: inline-block; font-size: 13px; font-weight: 700; padding: 6px 12px; border-radius: 999px; margin: -4px 0 16px; }
.badge.can { background: var(--green-soft); color: var(--green); }
.badge.fixed { background: var(--red-soft); color: var(--red); }
.brief section.can, .brief section.fixed { margin: 18px -28px; padding: 30px 28px 14px; border-radius: 20px; border: 0; }
.brief section.can { background: linear-gradient(180deg, var(--green-soft), rgba(230, 245, 236, .35)); }
.brief section.fixed { background: linear-gradient(180deg, var(--red-soft), rgba(252, 237, 235, .35)); }
.brief section.can h2 .num { background: var(--green); color: #fff; }
.brief section.fixed h2 .num { background: var(--red); color: #fff; }
.table-wrap { overflow-x: auto; }
.brief table { border-collapse: collapse; width: 100%; font-size: 15.5px; }
.brief th, .brief td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--line); }
.brief th { font-size: 13px; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-3); }

@media (max-width: 960px) {
  .const-grid { grid-template-columns: 1fr; gap: 20px; }
  .toc { position: static; }
  .toc ol { grid-template-columns: 1fr 1fr; }
  .toc-cta a { color: var(--deep); font-weight: 700; }
.toc-cta { display: none; }
  .brief { padding: 26px 20px; border-radius: 20px; }
  .brief section.can, .brief section.fixed { margin: 14px -12px; padding: 24px 12px 10px; }
  .brief h2 { font-size: 22px; }
}
@media (max-width: 520px) { .toc ol { grid-template-columns: 1fr; } }

/* proposed wording waiting for the brief's owner */
.proposal { margin: 18px 0 14px; border: 2px dashed var(--brand); background: var(--soft); border-radius: 18px; padding: 18px 22px 6px; }
.proposal-note { font-size: 13px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--brand); margin-bottom: 10px; }

/* the rules at a glance, before the full text */
.glance-grid { display: grid; grid-template-columns: 1fr 1.35fr; gap: 20px; margin-bottom: 40px; }
.glance { display: flex; flex-direction: column; text-decoration: none; color: var(--ink); border-radius: 24px; padding: 24px 26px; border: 1px solid; transition: transform .2s, box-shadow .2s; }
.glance:hover { transform: translateY(-3px); box-shadow: var(--shadow-lift); color: var(--ink); }
.glance.can { background: var(--green-soft); border-color: var(--green-line); }
.glance.fixed { background: var(--red-soft); border-color: var(--red-line); }
.glance h2 { font-size: 21px; display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.g-ico { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; color: #fff; flex: none; }
.g-ico .ico { width: 20px; height: 20px; }
.can .g-ico { background: var(--green); }
.fixed .g-ico { background: var(--red); }
.glance ul { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 12px; flex: 1; }
.glance ul.two-col { grid-template-columns: 1fr 1fr; gap: 12px 18px; }
.glance li { display: flex; gap: 12px; align-items: flex-start; font-size: 15px; line-height: 1.35; }
.glance li .ico { width: 22px; height: 22px; flex: none; margin-top: 1px; }
.can li .ico { color: var(--green); }
.fixed li .ico { color: var(--red); }
.glance li b { display: block; font-weight: 700; }
.can li span { color: var(--ink-2); }
.can li b { color: var(--ink); }
.glance .go { font-weight: 700; font-size: 14.5px; }
.can .go { color: var(--green); }
.fixed .go { color: var(--red); }
@media (max-width: 960px) {
  .glance-grid { grid-template-columns: 1fr; }
}
@media (max-width: 520px) { .glance ul.two-col { grid-template-columns: 1fr; } }
