/* CTO Product Registry reference implementation.
   Visual direction: a quiet technical register with an evidence spine, not a marketplace. */

#registry {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  background:
    linear-gradient(rgba(74, 163, 255, .025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(74, 163, 255, .025) 1px, transparent 1px),
    var(--bg);
  background-size: 32px 32px;
}
#registry[hidden] { display: none; }
body.registry-active #app { display: none; }
body.registry-active #mtopbar { display: none; }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.reg-page {
  height: 100%;
  overflow-y: auto;
  scrollbar-gutter: stable;
}
.reg-page,
.reg-directory,
.reg-detail,
.reg-list,
.reg-json-body {
  scrollbar-width: thin;
  scrollbar-color: #46556a transparent;
}
.reg-page::-webkit-scrollbar,
.reg-directory::-webkit-scrollbar,
.reg-detail::-webkit-scrollbar,
.reg-list::-webkit-scrollbar,
.reg-json-body::-webkit-scrollbar { width: 8px; height: 8px; }
.reg-page::-webkit-scrollbar-thumb,
.reg-directory::-webkit-scrollbar-thumb,
.reg-detail::-webkit-scrollbar-thumb,
.reg-list::-webkit-scrollbar-thumb,
.reg-json-body::-webkit-scrollbar-thumb { border-radius: 999px; background: #46556a; }
.reg-shell {
  width: min(1540px, 100%);
  margin: 0 auto;
  padding: 26px 28px 56px;
}

.reg-mast {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(20, 26, 35, .94);
  box-shadow: 0 18px 48px rgba(0, 0, 0, .2);
}
.reg-mast::after {
  content: '';
  position: absolute;
  inset: 0 0 auto;
  height: 3px;
  background: linear-gradient(90deg, var(--accent) 0 39%, #7c8da4 39% 58%, var(--warn) 58% 76%, var(--ok) 76% 100%);
}
.reg-mast-main {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr);
  gap: 30px;
  align-items: end;
  padding: 28px 30px 24px;
}
.reg-kicker {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 13px;
  color: #9fcaff;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.25px;
  text-transform: uppercase;
}
.reg-kicker-mark {
  position: relative;
  width: 20px;
  height: 20px;
  flex: none;
  border: 1px solid rgba(139, 196, 255, .55);
  border-radius: 5px;
}
.reg-kicker-mark::before,
.reg-kicker-mark::after {
  content: '';
  position: absolute;
  background: #8bc4ff;
}
.reg-kicker-mark::before { width: 10px; height: 1px; left: 4px; top: 6px; box-shadow: 0 4px 0 #8bc4ff; }
.reg-kicker-mark::after { width: 1px; height: 14px; left: 9px; top: 2px; opacity: .45; }
.reg-title {
  max-width: 760px;
  margin: 0;
  font-size: clamp(30px, 4vw, 54px);
  line-height: .98;
  letter-spacing: -2.3px;
  font-weight: 760;
}
.reg-title em {
  color: #a8d3ff;
  font-style: normal;
  font-weight: 480;
}
.reg-lede {
  max-width: 790px;
  margin: 16px 0 0;
  color: #b6c1cf;
  font-size: 14px;
  line-height: 1.62;
}
.reg-boundary {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 142px;
  padding: 15px 16px;
  border: 1px solid rgba(241, 196, 15, .28);
  border-radius: 12px;
  background: rgba(241, 196, 15, .055);
}
.reg-boundary-label {
  color: #f6d76b;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.reg-boundary strong { display: block; margin: 8px 0 5px; font-size: 14px; }
.reg-boundary p { margin: 0; color: var(--muted); font-size: 11.5px; line-height: 1.5; }
.reg-boundary code { color: #c6d2e0; font-size: 11px; overflow-wrap: anywhere; }
.reg-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--line);
  background: rgba(11, 15, 21, .48);
}
.reg-stat { min-width: 0; padding: 14px 18px; border-right: 1px solid var(--line); }
.reg-stat:last-child { border-right: 0; }
.reg-stat-value { font-size: 19px; font-weight: 780; font-variant-numeric: tabular-nums; }
.reg-stat-label { margin-top: 2px; color: var(--muted); font-size: 11px; letter-spacing: .45px; text-transform: uppercase; }

.reg-tools {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) repeat(3, minmax(140px, 190px)) auto;
  gap: 8px;
  align-items: center;
  margin: 18px 0 12px;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(26, 32, 43, .88);
}
.reg-search { position: relative; min-width: 0; }
.reg-search::before {
  content: '';
  position: absolute;
  width: 9px;
  height: 9px;
  left: 13px;
  top: 50%;
  border: 1.5px solid #8fa0b5;
  border-radius: 50%;
  transform: translateY(-62%);
  pointer-events: none;
}
.reg-search::after {
  content: '';
  position: absolute;
  width: 6px;
  height: 1.5px;
  left: 21px;
  top: calc(50% + 5px);
  background: #8fa0b5;
  transform: rotate(45deg);
  pointer-events: none;
}
.reg-tools input,
.reg-tools select {
  width: 100%;
  min-width: 0;
  height: 40px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #151b24;
  color: var(--ink);
  font: inherit;
  font-size: 12px;
}
.reg-tools input { padding: 0 12px 0 37px; }
.reg-tools select { padding: 0 30px 0 11px; }
.reg-reset,
.reg-action,
.reg-copy,
.reg-json-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--panel-2);
  color: var(--ink);
  padding: 0 13px;
  font: inherit;
  font-size: 12px;
  font-weight: 650;
  cursor: pointer;
  text-decoration: none;
}
.reg-reset:hover,
.reg-action:hover,
.reg-copy:hover,
.reg-json-close:hover { border-color: var(--accent); }

.reg-workbench {
  display: grid;
  grid-template-columns: minmax(310px, 380px) minmax(0, 1fr);
  height: clamp(640px, calc(100vh - 84px), 820px);
  min-height: 610px;
  border: 1px solid var(--line);
  border-radius: 14px;
  overflow: hidden;
  background: rgba(17, 21, 28, .9);
  box-shadow: 0 14px 40px rgba(0, 0, 0, .16);
}
.reg-directory {
  min-width: 0;
  overflow-y: auto;
  border-right: 1px solid var(--line);
  background: rgba(21, 27, 36, .8);
}
.reg-directory-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  padding: 14px 16px 11px;
  border-bottom: 1px solid var(--line);
}
.reg-directory-head strong { font-size: 12px; }
.reg-directory-head span { color: var(--muted); font-size: 11px; }
.reg-list { display: flex; flex-direction: column; padding: 6px; }
.reg-load-more {
  width: calc(100% - 24px);
  min-height: 44px;
  margin: 8px 12px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #161d27;
  color: var(--ink);
  font: 700 11px/1.2 ui-monospace, "Cascadia Mono", Consolas, monospace;
  cursor: pointer;
}
.reg-load-more:disabled { cursor: wait; opacity: .72; }
.reg-page-notice {
  min-height: 0;
  margin: 8px 12px 0;
  color: #ffb2a8;
  font-size: 11px;
  line-height: 1.4;
}
.reg-page-notice:empty { display: none; }
.reg-page-scope { margin: -7px 4px 10px; color: var(--muted); font-size: 10.5px; }
.reg-record {
  position: relative;
  width: 100%;
  display: grid;
  grid-template-columns: 43px minmax(0, 1fr) auto;
  gap: 11px;
  align-items: start;
  padding: 12px 10px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
}
.reg-record:hover { background: rgba(35, 44, 57, .68); }
.reg-record.active {
  border-color: rgba(74, 163, 255, .52);
  background: rgba(74, 163, 255, .085);
  box-shadow: inset 3px 0 0 var(--accent);
}
.reg-glyph {
  position: relative;
  width: 43px;
  height: 43px;
  border: 1px solid #435064;
  border-radius: 9px;
  background: #111720;
  overflow: hidden;
}
.reg-glyph::before,
.reg-glyph::after { content: ''; position: absolute; }
.reg-glyph::before { inset: 8px; border: 1px solid #7ea4ce; }
.reg-glyph::after { background: #7ea4ce; }
.reg-glyph[data-kind*="wall"]::before { inset: 7px 9px; border-width: 2px 1px; box-shadow: inset 6px 0 0 transparent, inset 7px 0 0 #7ea4ce, inset 13px 0 0 transparent, inset 14px 0 0 #7ea4ce; }
.reg-glyph[data-kind*="wall"]::after { left: 9px; right: 9px; height: 2px; top: 12px; box-shadow: 0 16px 0 #7ea4ce; }
.reg-glyph[data-kind*="module"]::before,
.reg-glyph[data-kind*="pod"]::before,
.reg-glyph[data-kind*="unit"]::before { transform: skewY(-8deg); box-shadow: 5px 5px 0 rgba(126, 164, 206, .18); }
.reg-glyph[data-kind*="module"]::after,
.reg-glyph[data-kind*="pod"]::after,
.reg-glyph[data-kind*="unit"]::after { width: 13px; height: 1px; left: 15px; top: 21px; box-shadow: 0 5px 0 #7ea4ce; }
.reg-glyph[data-kind*="curtain"]::before { inset: 6px 10px; background: linear-gradient(90deg, transparent 47%, #7ea4ce 47% 53%, transparent 53%), linear-gradient(transparent 47%, #7ea4ce 47% 53%, transparent 53%); }
.reg-glyph[data-kind*="edge"]::before,
.reg-glyph[data-kind*="slab"]::before,
.reg-glyph[data-kind*="struct"]::before { left: 6px; right: 6px; top: 18px; height: 8px; border: 1px solid #7ea4ce; transform: skewX(-12deg); }
.reg-glyph[data-kind*="edge"]::after,
.reg-glyph[data-kind*="slab"]::after,
.reg-glyph[data-kind*="struct"]::after { width: 8px; height: 8px; right: 7px; top: 8px; border: 1px solid #d5aa4a; background: transparent; }
.reg-record-copy { min-width: 0; }
.reg-record-name { display: block; font-size: 12.5px; font-weight: 720; line-height: 1.25; }
.reg-record-id { display: block; margin-top: 4px; color: var(--muted); font: 11px/1.3 ui-monospace, "Cascadia Mono", Consolas, monospace; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.reg-record-meta { display: flex; gap: 7px; align-items: center; margin-top: 7px; color: var(--muted); font-size: 11px; }
.reg-record-meta span + span::before { content: '·'; margin-right: 7px; color: #536175; }
.reg-record-state { display: grid; justify-items: end; gap: 7px; }
.reg-record-version { color: #a9b7c8; font: 11px ui-monospace, "Cascadia Mono", Consolas, monospace; }

.reg-pill {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 2px 8px;
  color: #bbc6d4;
  background: rgba(35, 44, 57, .7);
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .35px;
  text-transform: uppercase;
  white-space: nowrap;
}
.reg-pill.pass,
.reg-pill.active,
.reg-pill.current { border-color: rgba(46, 204, 113, .35); color: #73e3a4; background: rgba(46, 204, 113, .08); }
.reg-pill.fail,
.reg-pill.withdrawn { border-color: rgba(231, 76, 60, .4); color: #ff9b8e; background: rgba(231, 76, 60, .08); }
.reg-pill.indeterminate,
.reg-pill.review,
.reg-pill.draft { border-color: rgba(241, 196, 15, .38); color: #f4d35e; background: rgba(241, 196, 15, .075); }
.reg-pill.deprecated,
.reg-pill.superseded { border-color: rgba(147, 161, 181, .4); color: #b0bdcd; }

.reg-empty,
.reg-loading,
.reg-error { padding: 40px 24px; color: var(--muted); text-align: center; font-size: 12px; }
.reg-error { color: #ffb1a7; }
.reg-detail { min-width: 0; overflow-y: auto; background: rgba(13, 17, 23, .55); }
.reg-detail-inner { min-height: 100%; }
.reg-detail-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: start;
  padding: 24px 26px 19px;
  border-bottom: 1px solid var(--line);
}
.reg-detail-label { color: #88bdf5; font-size: 11px; font-weight: 800; letter-spacing: .8px; text-transform: uppercase; }
.reg-detail h2 { margin: 6px 0 8px; font-size: clamp(21px, 2.3vw, 31px); line-height: 1.08; letter-spacing: -.7px; }
.reg-detail-desc { max-width: 780px; margin: 0; color: #aeb9c7; font-size: 12.5px; line-height: 1.55; }
.reg-head-pills { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; margin-top: 3px; }
.reg-detail-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 14px; }
.reg-action.primary { border-color: #79baff; background: #cfe7ff; color: #10253a; }
.reg-action[disabled] { opacity: .45; cursor: not-allowed; }

.reg-detail-tabs {
  position: sticky;
  top: 0;
  z-index: 8;
  display: flex;
  min-width: 0;
  overflow-x: auto;
  border-bottom: 1px solid var(--line);
  background: rgba(17, 23, 32, .96);
  backdrop-filter: blur(12px);
  scrollbar-width: thin;
}
.reg-detail-tabs button {
  position: relative;
  flex: 1 0 auto;
  min-width: 96px;
  min-height: 48px;
  border: 0;
  border-right: 1px solid var(--line);
  padding: 0 14px;
  background: transparent;
  color: #91a0b3;
  font: inherit;
  font-size: 11.5px;
  font-weight: 720;
  cursor: pointer;
}
.reg-detail-tabs button::after { content: ''; position: absolute; inset: auto 12px 0; height: 2px; background: transparent; }
.reg-detail-tabs button:hover { color: #e2eaf3; background: rgba(74, 163, 255, .045); }
.reg-detail-tabs button[aria-selected="true"] { color: #ddecfb; background: #18222e; }
.reg-detail-tabs button[aria-selected="true"]::after { background: #6eb2f7; }
.reg-view-panel { min-height: 360px; }

.reg-identity {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  padding: 1px 0;
  background: var(--line);
}
.reg-identity > div { min-width: 0; padding: 12px 16px; background: #151b24; }
.reg-identity dt { color: var(--muted); font-size: 11px; letter-spacing: .45px; text-transform: uppercase; }
.reg-identity dd { margin: 4px 0 0; color: #dce5f0; font-size: 11px; overflow-wrap: anywhere; }
.reg-identity dd.mono { font: 11px/1.45 ui-monospace, "Cascadia Mono", Consolas, monospace; }

.reg-section { padding: 21px 26px; border-bottom: 1px solid var(--line); }
.reg-section:last-child { border-bottom: 0; }
.reg-section-head { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; margin-bottom: 12px; }
.reg-section-head h3 { margin: 0; font-size: 12px; letter-spacing: .55px; text-transform: uppercase; }
.reg-section-head p { margin: 0; color: var(--muted); font-size: 11px; }

.reg-assurance {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 7px;
}
.reg-assurance-step {
  position: relative;
  min-width: 0;
  min-height: 98px;
  padding: 12px 10px 10px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #151b24;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
}
.reg-assurance-step::before {
  content: '';
  position: absolute;
  left: 10px;
  right: 10px;
  top: 0;
  height: 2px;
  background: #667388;
}
.reg-assurance-step.pass::before { background: var(--ok); }
.reg-assurance-step.fail::before { background: var(--err); }
.reg-assurance-step.indeterminate::before,
.reg-assurance-step.review::before { background: var(--warn); }
.reg-assurance-step.active { outline: 2px solid rgba(139, 196, 255, .72); outline-offset: 1px; }
.reg-assurance-index { color: #9eacbd; font: 12px ui-monospace, "Cascadia Mono", Consolas, monospace; }
.reg-assurance-name { display: block; margin-top: 8px; font-size: 11px; font-weight: 720; }
.reg-assurance-status { display: block; margin-top: 9px; color: var(--muted); font-size: 11px; text-transform: uppercase; }
.reg-assurance-step.pass .reg-assurance-status { color: #73e3a4; }
.reg-assurance-step.fail .reg-assurance-status { color: #ff9b8e; }
.reg-assurance-step.indeterminate .reg-assurance-status,
.reg-assurance-step.review .reg-assurance-status { color: #f4d35e; }

.reg-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.reg-fact { min-width: 0; padding: 11px 12px; border: 1px solid var(--line); border-radius: 9px; background: #151b24; color: inherit; font: inherit; text-align: left; }
button.reg-fact { cursor: pointer; }
button.reg-fact:hover { border-color: #52657d; background: #19222d; }
.reg-fact-label { color: var(--muted); font-size: 11px; letter-spacing: .35px; text-transform: uppercase; }
.reg-fact-value { margin-top: 5px; color: #dce5f0; font-size: 11.5px; line-height: 1.42; overflow-wrap: anywhere; }
.reg-fact-label, .reg-fact-value { display: block; }
.reg-open-cue { display: block; margin-top: 7px; color: #83b8ef; font-size: 10.5px; font-weight: 700; }

.reg-interface-list,
.reg-receipts,
.reg-history { display: grid; gap: 7px; }
.reg-interface {
  display: grid;
  grid-template-columns: minmax(150px, .72fr) minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 11px 12px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #151b24;
  width: 100%;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.reg-interface:hover { border-color: #52657d; background: #19222d; }
.reg-interface-id { color: #9cc9f8; font: 11px ui-monospace, "Cascadia Mono", Consolas, monospace; }
.reg-interface-copy { color: var(--muted); font-size: 11px; line-height: 1.42; }
.reg-interface-side { color: #c5cfdb; font-size: 11px; text-align: right; }
.reg-example-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.reg-example {
  position: relative;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #151b24;
  overflow: hidden;
}
.reg-example::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 2px;
  background: #718096;
}
.reg-example.pass::before { background: var(--ok); }
.reg-example.fail::before { background: var(--err); }
.reg-example.indeterminate::before { background: var(--warn); }
.reg-example-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 9px; }
.reg-example-branch { color: #9cc9f8; font-size: 11px; font-weight: 750; letter-spacing: .35px; text-transform: uppercase; }
.reg-example > strong { display: block; font-size: 11.5px; line-height: 1.35; }
.reg-example p { min-height: 46px; margin: 7px 0 9px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.reg-example-foot { display: flex; justify-content: space-between; gap: 8px; padding-top: 8px; border-top: 1px solid var(--line); color: #9ba8b8; font-size: 11px; }
.reg-example-foot span { min-width: 0; overflow-wrap: anywhere; }
.reg-example-foot span:last-child { flex: none; }
.reg-example-open {
  width: 100%;
  min-height: 34px;
  margin-top: 9px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: transparent;
  color: #9cc9f8;
  font: inherit;
  font-size: 11px;
  font-weight: 650;
  cursor: pointer;
}
.reg-example-open:hover { border-color: var(--accent); background: rgba(74, 163, 255, .06); }
.reg-receipt {
  display: grid;
  grid-template-columns: 12px minmax(150px, .55fr) minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
  padding: 11px 12px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #151b24;
  width: 100%;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.reg-receipt:hover { border-color: #52657d; background: #19222d; }
.reg-receipt-mark { width: 9px; height: 9px; margin-top: 3px; border-radius: 50%; background: #738198; }
.reg-receipt.pass .reg-receipt-mark { background: var(--ok); box-shadow: 0 0 0 3px rgba(46, 204, 113, .1); }
.reg-receipt.fail .reg-receipt-mark { background: var(--err); box-shadow: 0 0 0 3px rgba(231, 76, 60, .1); }
.reg-receipt.indeterminate .reg-receipt-mark,
.reg-receipt.review .reg-receipt-mark { background: var(--warn); box-shadow: 0 0 0 3px rgba(241, 196, 15, .1); }
.reg-receipt-evaluator { color: #dce5f0; font-size: 11px; font-weight: 680; }
.reg-receipt-version { display: block; margin-top: 3px; color: var(--muted); font: 11px ui-monospace, "Cascadia Mono", Consolas, monospace; }
.reg-receipt-summary { color: #aeb9c7; font-size: 11px; line-height: 1.47; }
.reg-receipt-id { color: #9eacbd; font: 12px ui-monospace, "Cascadia Mono", Consolas, monospace; text-align: right; }
.reg-receipt-filter { color: #8fc0ff; font-size: 11px; }

.reg-version {
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: start;
  padding: 11px 12px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #151b24;
  width: 100%;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.reg-version:hover { border-color: #52657d; background: #19222d; }
.reg-version-number { color: #dce5f0; font: 11px ui-monospace, "Cascadia Mono", Consolas, monospace; }
.reg-version-note { color: #aeb9c7; font-size: 11px; line-height: 1.45; }
.reg-version-date { color: var(--muted); font-size: 11px; text-align: right; }
.reg-source-note {
  margin-top: 10px;
  padding: 10px 12px;
  border-left: 2px solid #6885a5;
  background: rgba(35, 44, 57, .5);
  color: var(--muted);
  font-size: 11px;
  line-height: 1.5;
}
.reg-source-note strong { color: #c9d4e0; }

.reg-overview-hero { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(260px, .88fr); gap: 22px; align-items: stretch; }
.reg-product-visual {
  position: relative;
  min-width: 0;
  min-height: 270px;
  overflow: hidden;
  border: 1px solid #354356;
  border-radius: 11px;
  background: #0f151d;
}
.reg-product-visual > a { display: block; height: 100%; }
.reg-product-visual img { display: block; width: 100%; height: 100%; min-height: 270px; object-fit: cover; }
.reg-product-visual-empty { display: grid; place-items: center; min-height: 270px; color: var(--muted); font-size: 12px; }
.reg-fidelity-flag {
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 12px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 5px 12px;
  padding: 9px 11px;
  border: 1px solid rgba(139, 196, 255, .34);
  background: rgba(8, 13, 20, .9);
  backdrop-filter: blur(8px);
}
.reg-fidelity-flag strong { color: #9bc9f8; font-size: 10.5px; letter-spacing: .65px; text-transform: uppercase; }
.reg-fidelity-flag span { color: #c3cedb; font-size: 10.5px; }
.reg-visual-summary { align-self: center; }
.reg-eyebrow { color: #83b8ef; font-size: 10.5px; font-weight: 800; letter-spacing: .9px; text-transform: uppercase; }
.reg-visual-summary h3 { margin: 8px 0 10px; font-size: clamp(19px, 2.1vw, 28px); line-height: 1.08; letter-spacing: -.55px; }
.reg-visual-summary > p { margin: 0; color: #aeb9c7; font-size: 12px; line-height: 1.58; }
.reg-truth-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 16px; }
.reg-truth-grid > div { padding: 10px; border-left: 2px solid #5388ba; background: rgba(74, 163, 255, .05); }
.reg-truth-grid > div:last-child { border-color: #c68b3f; background: rgba(198, 139, 63, .055); }
.reg-truth-grid strong { display: block; color: #d6e0ea; font-size: 10.5px; text-transform: uppercase; }
.reg-truth-grid span { display: block; margin-top: 4px; color: #8f9daf; font-size: 10.5px; line-height: 1.4; }

.reg-profile-track { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
.reg-profile-level {
  position: relative;
  min-height: 92px;
  border: 1px solid #374458;
  border-radius: 8px;
  padding: 11px;
  background: #141b24;
  color: inherit;
  text-align: left;
  font: inherit;
  cursor: pointer;
}
.reg-profile-level::after { content: ''; position: absolute; inset: 0 0 auto; height: 2px; background: #566478; }
.reg-profile-level.attained::after { background: #55c68a; }
.reg-profile-level:hover { border-color: #5a6e87; }
.reg-profile-level.unattained { opacity: .68; border-style: dashed; }
.reg-profile-index { color: #8393a7; font: 11px ui-monospace, "Cascadia Mono", Consolas, monospace; }
.reg-profile-level strong, .reg-profile-level small { display: block; }
.reg-profile-level strong { margin-top: 9px; color: #dbe4ee; font-size: 11.5px; }
.reg-profile-level small { margin-top: 7px; color: #8d9bac; font-size: 10.5px; text-transform: uppercase; }
.reg-profile-level.attained small { color: #73dba1; }
.reg-profile-rule, .reg-profile-empty p { margin: 9px 0 0; color: var(--muted); font-size: 10.5px; line-height: 1.5; }
.reg-profile-empty { padding: 14px; border: 1px dashed #3f4d60; color: #cbd6e1; }

.reg-annotations { display: grid; gap: 6px; }
.reg-annotation {
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr) minmax(145px, auto);
  gap: 11px;
  align-items: center;
  width: 100%;
  min-height: 58px;
  border: 1px solid #344052;
  border-radius: 8px;
  padding: 9px 11px;
  background: #151b24;
  color: inherit;
  text-align: left;
  font: inherit;
  cursor: pointer;
}
.reg-annotation:hover { border-color: #52657d; background: #19222d; }
.reg-annotation-mark { width: 8px; height: 8px; border-radius: 50%; background: #7b8797; }
.reg-annotation-mark.declared-exact { background: #59c889; box-shadow: 0 0 0 3px rgba(89, 200, 137, .1); }
.reg-annotation-mark.illustrative-symbolic { background: #d29a50; box-shadow: 0 0 0 3px rgba(210, 154, 80, .1); }
.reg-annotation strong, .reg-annotation small { display: block; }
.reg-annotation strong { color: #dce5ef; font-size: 11.5px; }
.reg-annotation small { margin-top: 3px; color: #8f9dad; font-size: 10.5px; line-height: 1.35; }
.reg-annotation-source { color: #9fc5ed; font: 10.5px ui-monospace, "Cascadia Mono", Consolas, monospace; text-align: right; }
.reg-annotation-source small { color: #78879a; font-family: inherit; }

.reg-related-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.reg-related {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 3px 10px;
  align-items: center;
  min-height: 70px;
  border: 1px solid #344052;
  border-radius: 8px;
  padding: 10px;
  background: #151b24;
  color: inherit;
  text-align: left;
  font: inherit;
  cursor: pointer;
}
.reg-related:hover { border-color: #5d7693; background: #19222d; }
.reg-related > span { grid-row: 1 / 3; display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid #52769e; color: #91c3f5; font: 10px ui-monospace, "Cascadia Mono", Consolas, monospace; }
.reg-related strong { min-width: 0; color: #d9e3ed; font: 10.5px ui-monospace, "Cascadia Mono", Consolas, monospace; overflow-wrap: anywhere; }
.reg-related small { color: #8493a5; font-size: 10.5px; }

.reg-model-boundary { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: center; margin-bottom: 10px; padding: 9px 11px; border: 1px solid rgba(241, 196, 15, .28); background: rgba(241, 196, 15, .045); }
.reg-model-boundary strong { color: #f1d06a; font-size: 10.5px; letter-spacing: .6px; text-transform: uppercase; }
.reg-model-boundary span { color: #aeb9c7; font-size: 10.5px; line-height: 1.4; }
.reg-model-boundary span:last-child { color: #e4bd78; text-align: right; }
.reg-viewer3d { display: grid; gap: 10px; padding: 12px; border: 1px solid #354154; border-radius: 10px; background: #111720; }
.reg-viewer-controls { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; }
.reg-viewer-group > span, .reg-explode > span { display: block; margin-bottom: 6px; color: #8695a8; font-size: 10px; font-weight: 800; letter-spacing: .65px; text-transform: uppercase; }
.reg-choice-row { display: flex; flex-wrap: wrap; gap: 5px; }
.reg-choice-row button { min-height: 38px; border: 1px solid #3a485b; border-radius: 6px; padding: 0 10px; background: #151d27; color: #aeb9c8; font: inherit; font-size: 10.5px; cursor: pointer; }
.reg-choice-row button[aria-selected="true"] { border-color: #76b7f7; background: #1c3854; color: #e5f2ff; }
.reg-explode { min-width: 150px; }
.reg-explode input { width: 150px; accent-color: #65aef6; }
.reg-zone-row { display: flex; flex-wrap: wrap; gap: 7px 13px; padding: 8px 9px; border: 1px solid #2e3948; background: #141b24; }
.reg-zone-row label { display: inline-flex; align-items: center; gap: 5px; min-height: 28px; color: #9eacbd; font-size: 10.5px; cursor: pointer; }
.reg-zone-row input { accent-color: #69aff4; }
.reg-zone-row i { width: 9px; height: 9px; border: 1px solid #58677a; background: var(--swatch); }
.reg-viewer3d #viewer3d-canvas { position: relative; height: clamp(360px, 54vh, 560px); overflow: hidden; border: 1px solid #344154; background: #eef0ed; touch-action: none; }
.reg-viewer3d #viewer3d-canvas canvas { display: block; }
.reg-viewer3d #viewer3d-caption { min-height: 34px; margin: 0; color: #9ba9ba; font: 10.5px/1.5 ui-monospace, "Cascadia Mono", Consolas, monospace; }

.reg-drawing-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.reg-drawing-card { min-width: 0; overflow: hidden; border: 1px solid #344154; border-radius: 10px; background: #141b24; }
.reg-drawing-image { display: block; aspect-ratio: 16 / 9; overflow: hidden; border-bottom: 1px solid #344154; background: #edf0ec; }
.reg-drawing-image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .18s ease; }
.reg-drawing-image:hover img { transform: scale(1.015); }
.reg-drawing-copy { padding: 11px 12px 8px; }
.reg-drawing-copy > span, .reg-drawing-copy strong, .reg-drawing-copy small { display: block; }
.reg-drawing-copy > span { color: #7faee0; font-size: 9.5px; font-weight: 800; letter-spacing: .6px; text-transform: uppercase; }
.reg-drawing-copy strong { margin-top: 5px; color: #dce5ef; font-size: 11.5px; }
.reg-drawing-copy small { margin-top: 5px; color: #8795a7; font-size: 10.5px; }
.reg-drawing-actions { display: flex; border-top: 1px solid #303b4b; }
.reg-drawing-actions a, .reg-drawing-actions button { flex: 1; min-height: 40px; display: grid; place-items: center; border: 0; border-right: 1px solid #303b4b; background: transparent; color: #8fc0f1; font: inherit; font-size: 10.5px; font-weight: 700; text-decoration: none; cursor: pointer; }
.reg-drawing-actions button:last-child { border-right: 0; }
.reg-drawing-actions a:hover, .reg-drawing-actions button:hover { background: #192330; }

.reg-json-dialog {
  width: min(860px, calc(100vw - 32px));
  max-height: min(82vh, 860px);
  padding: 0;
  border: 1px solid #445166;
  border-radius: 13px;
  background: #111720;
  color: var(--ink);
  box-shadow: 0 30px 90px rgba(0, 0, 0, .6);
  overflow: hidden;
}
.reg-json-dialog::backdrop { background: rgba(4, 7, 11, .72); backdrop-filter: blur(3px); }
.reg-json-head { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 13px 15px; border-bottom: 1px solid var(--line); }
.reg-json-head strong { font-size: 12px; }
.reg-json-body { max-height: calc(82vh - 58px); overflow: auto; margin: 0; padding: 16px; color: #c8d7e7; font: 11px/1.6 ui-monospace, "Cascadia Mono", Consolas, monospace; tab-size: 2; white-space: pre-wrap; overflow-wrap: anywhere; }

.reg-tools :focus-visible,
.reg-record:focus-visible,
.reg-action:focus-visible,
.reg-detail-tabs button:focus-visible,
.reg-fact:focus-visible,
.reg-profile-level:focus-visible,
.reg-annotation:focus-visible,
.reg-related:focus-visible,
.reg-interface:focus-visible,
.reg-receipt:focus-visible,
.reg-version:focus-visible,
.reg-drawing-actions :focus-visible,
.reg-choice-row button:focus-visible,
.reg-assurance-step:focus-visible,
.reg-example-open:focus-visible,
.reg-json-close:focus-visible,
.reg-mode:focus-visible,
.reg-submission :focus-visible {
  outline: 2px solid #8bc4ff;
  outline-offset: 2px;
}

/* Publisher submission reference workflow.
   Mobile-first, deliberately flat, and visually separated from the public read-only register. */
.reg-modebar {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 16px 0 12px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #151b24;
}
.reg-mode-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
.reg-mode {
  min-height: 44px;
  border: 1px solid transparent;
  border-radius: 7px;
  padding: 0 12px;
  background: transparent;
  color: #98a7ba;
  font: inherit;
  font-size: 12px;
  font-weight: 720;
  cursor: pointer;
}
.reg-mode:hover { color: var(--ink); border-color: #3b4759; }
.reg-mode.active { border-color: #536780; background: #202936; color: #e6eef7; }
.reg-modebar > p {
  margin: 0;
  color: #8493a6;
  font-size: 12px;
  letter-spacing: .45px;
  text-align: center;
  text-transform: uppercase;
}
.reg-modebar > p span { color: var(--warn); font-size: 11px; margin-right: 5px; }
.reg-submission[hidden],
#reg-browser[hidden] { display: none; }

.reg-sub-shell {
  overflow: hidden;
  border: 1px solid #354154;
  border-radius: 12px;
  background: #11171f;
}
.reg-sub-banner {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 14px;
  padding: 18px 16px;
  border-bottom: 1px solid var(--line);
  background: #171e28;
}
.reg-sub-banner-mark {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid #6d88a8;
  color: #9ac8f8;
  font: 11px ui-monospace, "Cascadia Mono", Consolas, monospace;
  letter-spacing: .5px;
}
.reg-sub-banner strong { display: block; margin-top: 6px; font-size: 17px; letter-spacing: -.25px; }
.reg-sub-banner .reg-boundary-label { font-size: 12px; }
.reg-sub-banner p { max-width: 760px; margin: 5px 0 0; color: #aab6c5; font-size: 13px; line-height: 1.55; }
.reg-sub-local {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr);
  gap: 2px 8px;
  align-items: center;
  padding-top: 13px;
  border-top: 1px solid #2c3645;
}
.reg-sub-local > span { grid-row: 1 / 3; width: 8px; height: 8px; border-radius: 50%; background: var(--warn); box-shadow: 0 0 0 3px rgba(241, 196, 15, .1); }
.reg-sub-local strong { margin: 0; color: #e6d48f; font-size: 12px; letter-spacing: .35px; text-transform: uppercase; }
.reg-sub-local small { color: #9eabbb; font-size: 12px; }

.reg-sub-steps {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin: 0;
  padding: 0;
  border-bottom: 1px solid var(--line);
  list-style: none;
  background: #141a23;
}
.reg-sub-steps li { min-width: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.reg-sub-steps li:nth-child(2n) { border-right: 0; }
.reg-sub-steps li:nth-last-child(-n+2) { border-bottom: 0; }
.reg-sub-steps button {
  position: relative;
  width: 100%;
  min-height: 58px;
  display: grid;
  grid-template-columns: 27px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  border: 0;
  padding: 8px 11px;
  background: transparent;
  color: #788699;
  text-align: left;
  cursor: pointer;
}
.reg-sub-steps button::after { content: ''; position: absolute; inset: auto 0 0; height: 2px; background: transparent; }
.reg-sub-steps li.active button { color: #e7edf5; background: #1a222d; }
.reg-sub-steps li.active button::after { background: var(--accent); }
.reg-sub-steps li.complete button { color: #a9c2dd; }
.reg-sub-steps li.complete button::after { background: #4c6f93; }
.reg-sub-steps button span { font: 11px ui-monospace, "Cascadia Mono", Consolas, monospace; }
.reg-sub-steps button strong { font-size: 12px; letter-spacing: .25px; }

#reg-sub-form { margin: 0; }
.reg-sub-stage { padding: 24px 16px 28px; }
.reg-sub-stage-head { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; margin-bottom: 10px; }
.reg-sub-stage-head > div > span,
.reg-sub-block-head > div > span,
.reg-preview-panel > div > span,
.reg-package-head > div > span {
  display: block;
  margin-bottom: 5px;
  color: #83b8ef;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.reg-sub-stage h2 { margin: 0; font-size: clamp(24px, 8vw, 39px); line-height: 1; letter-spacing: -1.2px; }
.reg-sub-intro { max-width: 760px; margin: 0 0 22px; color: #9caabb; font-size: 13px; line-height: 1.62; }

.reg-sub-source {
  display: grid;
  gap: 7px;
  margin: 0 0 20px;
  padding: 0;
  border: 0;
}
.reg-sub-source legend,
.reg-sub-attest legend {
  width: 100%;
  margin-bottom: 8px;
  color: #7f8fa3;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .8px;
  text-transform: uppercase;
}
.reg-source-choice {
  min-height: 68px;
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 13px;
  border: 1px solid #344052;
  background: #151b24;
  cursor: pointer;
}
.reg-source-choice.selected { border-color: #6da9e8; box-shadow: inset 3px 0 0 var(--accent); }
.reg-source-choice input { width: 19px; height: 19px; margin: 1px 0 0; accent-color: var(--accent); }
.reg-source-choice strong { display: block; color: #dfe7f1; font-size: 13px; }
.reg-source-choice small { display: block; margin-top: 4px; color: #a0adbd; font-size: 12px; line-height: 1.45; }

.reg-sub-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.reg-sub-grid-separator { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--line); }
.reg-field { min-width: 0; }
.reg-field label,
.reg-field > span {
  display: block;
  margin-bottom: 7px;
  color: #a9b5c4;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .35px;
}
.reg-field label span { color: #6f7d90; font-weight: 500; }
.reg-field label b { color: #efca48; font-weight: 800; }
.reg-field input,
.reg-field select,
.reg-field textarea {
  width: 100%;
  min-height: 44px;
  border: 1px solid #39475a;
  border-radius: 5px;
  padding: 10px 11px;
  background: #10161e;
  color: #e5edf6;
  font: inherit;
  font-size: 16px;
}
.reg-field select { padding-block: 0; }
.reg-field textarea { resize: vertical; line-height: 1.5; }
.reg-field input[readonly] { border-style: dashed; color: #9eacbd; background: #141a22; }
.reg-field input::placeholder,
.reg-field textarea::placeholder { color: #8e9caf; opacity: 1; }
.reg-field > small { display: block; margin-top: 6px; color: #97a5b7; font-size: 12px; line-height: 1.5; }
.reg-field-label-row { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.reg-code-input { min-height: 260px; color: #c8d9eb !important; font: 12px/1.55 ui-monospace, "Cascadia Mono", Consolas, monospace !important; tab-size: 2; }
.reg-field-action { display: flex; flex-direction: column; justify-content: end; }
.reg-product-pin {
  display: grid;
  grid-template-columns: 43px minmax(0, 1fr) auto;
  gap: 11px;
  align-items: center;
  margin-top: 8px;
  padding: 11px;
  border: 1px solid #344052;
  background: #151b24;
}
.reg-product-pin strong { display: block; font-size: 13px; }
.reg-product-pin code { display: block; margin-top: 4px; color: #9eacbd; font-size: 12px; overflow-wrap: anywhere; }
.reg-text-action {
  min-height: 44px;
  border: 0;
  padding: 0 2px;
  background: transparent;
  color: #8fc4fb;
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.reg-sub-block {
  margin-top: 22px;
  padding: 17px 14px;
  border: 1px solid #344052;
  background: #141a23;
}
.reg-sub-block-head { display: flex; flex-direction: column; align-items: flex-start; gap: 9px; margin-bottom: 15px; }
.reg-sub-block h3,
.reg-preview-panel h3,
.reg-package-head h3 { margin: 0; color: #dfe7f0; font-size: 14px; }
.reg-sub-attest { display: grid; gap: 7px; margin: 22px 0 0; padding: 0; border: 0; }
.reg-sub-attest label {
  min-height: 64px;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 11px;
  align-items: start;
  padding: 12px;
  border: 1px solid #344052;
  background: #151b24;
  cursor: pointer;
}
.reg-sub-attest input { width: 20px; height: 20px; margin: 0; accent-color: var(--accent); }
.reg-sub-attest strong { display: block; color: #d8e1ec; font-size: 13px; line-height: 1.4; }
.reg-sub-attest small { display: block; margin-top: 3px; color: #9ba8b9; font-size: 12px; line-height: 1.45; }

.reg-sub-check-summary { display: grid; grid-template-columns: repeat(3, 1fr); margin-bottom: 13px; border: 1px solid #344052; background: #151b24; }
.reg-sub-check-summary > div { padding: 13px 8px; border-right: 1px solid #344052; text-align: center; }
.reg-sub-check-summary > div:last-child { border-right: 0; }
.reg-sub-check-summary strong { display: block; font-size: 18px; font-variant-numeric: tabular-nums; }
.reg-sub-check-summary span { display: block; margin-top: 2px; color: #9aa7b8; font-size: 12px; letter-spacing: .5px; text-transform: uppercase; }
.reg-sub-checks { display: grid; gap: 6px; }
.reg-sub-check {
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  padding: 12px;
  border: 1px solid #344052;
  background: #151b24;
}
.reg-sub-check > .reg-pill { grid-column: 2; justify-self: start; }
.reg-sub-check-mark { width: 8px; height: 8px; margin-top: 4px; border-radius: 50%; background: #68778b; }
.reg-sub-check.pass .reg-sub-check-mark { background: var(--ok); }
.reg-sub-check.fail .reg-sub-check-mark { background: var(--err); }
.reg-sub-check.review .reg-sub-check-mark,
.reg-sub-check.indeterminate .reg-sub-check-mark { background: var(--warn); }
.reg-sub-check strong { display: block; color: #dbe4ef; font-size: 13px; }
.reg-sub-check p { margin: 4px 0 0; color: #9ba8b9; font-size: 12px; line-height: 1.5; }

.reg-preview-panel {
  display: grid;
  gap: 13px;
  margin-top: 20px;
  padding: 16px 14px;
  border: 1px solid #4a5b72;
  background: #18212c;
}
.reg-preview-panel p { max-width: 620px; margin: 5px 0 0; color: #9ca9ba; font-size: 12px; line-height: 1.5; }
.reg-preview-result { padding-top: 11px; border-top: 1px solid #344052; }
.reg-preview-result strong { display: block; color: #dce5ef; font-size: 13px; }
.reg-preview-result span { display: block; margin-top: 3px; color: #9aa7b8; font-size: 12px; }
.reg-preview-messages { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.reg-preview-messages li { padding: 7px 9px; border-left: 2px solid var(--warn); background: rgba(241, 196, 15, .04); color: #c9b86e; font-size: 12px; line-height: 1.5; }
.reg-preview-messages li.fail { border-left-color: var(--err); color: #d99991; background: rgba(231, 76, 60, .04); }

.reg-sub-review-facts { display: grid; grid-template-columns: 1fr; margin: 0; border: 1px solid #344052; }
.reg-sub-review-facts > div { min-width: 0; padding: 12px; border-bottom: 1px solid #344052; background: #151b24; }
.reg-sub-review-facts > div:last-child { border-bottom: 0; }
.reg-sub-review-facts dt { color: #99a6b8; font-size: 12px; letter-spacing: .5px; text-transform: uppercase; }
.reg-sub-review-facts dd { margin: 5px 0 0; color: #dce5ef; font-size: 13px; overflow-wrap: anywhere; }
.reg-sub-review-facts dd.mono { font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; }
.reg-gate-grid { display: grid; grid-template-columns: 1fr; gap: 1px; border: 1px solid #344052; background: #344052; }
.reg-gate-grid article { min-width: 0; padding: 12px; background: #151b24; }
.reg-gate-grid strong { display: block; margin-top: 9px; color: #d6e0eb; font-size: 13px; }
.reg-gate-grid p { margin: 5px 0 0; color: #9ba8b9; font-size: 12px; line-height: 1.5; }
.reg-package-preview { margin-top: 20px; border: 1px solid #344052; background: #10161e; }
.reg-package-head { display: flex; flex-direction: column; gap: 10px; padding: 14px; border-bottom: 1px solid #344052; background: #151b24; }
.reg-package-head code { color: #91b1d3; font-size: 12px; }
.reg-package-preview pre { max-height: 480px; overflow: auto; margin: 0; padding: 14px; color: #bcd0e3; font: 12px/1.6 ui-monospace, "Cascadia Mono", Consolas, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.reg-final-boundary { margin-top: 16px; padding: 14px; border-left: 2px solid var(--warn); background: rgba(241, 196, 15, .045); }
.reg-final-boundary strong { color: #f0d675; font-size: 13px; }
.reg-final-boundary p { margin: 5px 0 0; color: #b8ac7c; font-size: 12px; line-height: 1.5; }

.reg-sub-notice { min-height: 38px; padding: 9px 16px; color: #e4cc73; background: #131a22; font-size: 12px; text-align: center; }
.reg-sub-actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 12px;
  border-top: 1px solid #354154;
  background: #1a222d;
}
.reg-sub-actions > div:first-child { display: none; }
.reg-sub-actions span { display: block; color: #99a6b8; font-size: 12px; letter-spacing: .7px; text-transform: uppercase; }
.reg-sub-actions strong { display: block; margin-top: 2px; font-size: 13px; }
.reg-sub-action-buttons { display: grid; grid-template-columns: 1fr; gap: 7px; }
.reg-sub-button {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #46566b;
  border-radius: 5px;
  padding: 0 15px;
  background: #202a37;
  color: #e1e9f2;
  font: inherit;
  font-size: 13px;
  font-weight: 750;
  cursor: pointer;
}
.reg-sub-button:hover { border-color: #75b6f5; }
.reg-sub-button.primary { border-color: #9dcbf8; background: #cfe7ff; color: #10253a; }
.reg-sub-button.secondary { background: #171e27; }
.reg-sub-button:disabled { opacity: .45; cursor: not-allowed; }
.reg-sub-button[hidden] { display: none; }
.reg-submission .reg-pill { font-size: 12px; }

.reg-fixed-value,
.reg-pinned-artifact {
  min-height: 58px;
  padding: 12px;
  border: 1px solid #39475a;
  background: #141a23;
}
.reg-fixed-value strong,
.reg-pinned-artifact strong { display: block; color: #dce5ef; font-size: 13px; }
.reg-fixed-value small,
.reg-pinned-artifact small { display: block; margin-top: 4px; color: #9ba8b9; font-size: 12px; line-height: 1.5; }
.reg-inline-link { color: #9bc7f3; text-decoration-thickness: 1px; text-underline-offset: 2px; }
.reg-inline-link:hover { color: #d9ecff; }
.reg-pinned-artifact code { display: block; margin-top: 7px; color: #9bc7f3; font: 12px/1.5 ui-monospace, "Cascadia Mono", Consolas, monospace; overflow-wrap: anywhere; }
.reg-level-three-boundary {
  margin-top: 16px;
  padding: 14px;
  border-left: 2px solid #6f88a7;
  background: rgba(111, 136, 167, .08);
}
.reg-level-three-boundary strong { color: #c9d8e8; font-size: 13px; }
.reg-level-three-boundary p { margin: 5px 0 0; color: #9ba8b9; font-size: 12px; line-height: 1.5; }

.reg-intake-paths { margin-top: -7px; padding: 12px; border: 1px solid #2f3b4d; background: #111820; }
.reg-source-package { border: 1px solid #3b4b60; background: #111821; }
.reg-source-package-head { display: grid; gap: 14px; padding: 16px; border-bottom: 1px solid #334155; background: linear-gradient(135deg, #18222d, #131a23); }
.reg-source-package-head > div:first-child > span { display: block; margin-bottom: 5px; color: #83b8ef; font-size: 11px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; }
.reg-source-package-head h3 { margin: 0; color: #edf3fa; font-size: 21px; letter-spacing: -.35px; }
.reg-source-package-head p { max-width: 720px; margin: 7px 0 0; color: #a3b0c0; font-size: 12px; line-height: 1.55; }
.reg-source-package-actions { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; }
.reg-source-package-actions input[type="file"] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.reg-source-package-actions label.reg-sub-button { margin: 0; color: #10253a; letter-spacing: 0; }
.reg-source-package-actions label.reg-sub-button:focus-within { outline: 2px solid #9dcbf8; outline-offset: 2px; }
.reg-source-package-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-bottom: 1px solid #334155; }
.reg-source-package-stats div { padding: 12px; border-right: 1px solid #334155; border-bottom: 1px solid #334155; }
.reg-source-package-stats div:nth-child(2n) { border-right: 0; }
.reg-source-package-stats div:nth-last-child(-n+2) { border-bottom: 0; }
.reg-source-package-stats strong { display: block; color: #e5edf6; font-size: 16px; font-variant-numeric: tabular-nums; }
.reg-source-package-stats span { display: block; margin-top: 2px; color: #8392a5; font-size: 10px; font-weight: 800; letter-spacing: .75px; text-transform: uppercase; }
.reg-source-files { display: grid; gap: 1px; background: #334155; }
.reg-source-file { min-width: 0; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 12px; background: #141c26; }
.reg-source-file-icon { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid #45566c; color: #91c4f7; font: 700 16px ui-monospace, "Cascadia Mono", Consolas, monospace; }
.reg-source-file-icon[data-adapter="opaque"] { border-style: dashed; color: #8b98aa; }
.reg-source-file-main { min-width: 0; }
.reg-source-file-main strong { display: block; overflow: hidden; color: #dfe8f2; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.reg-source-file-main span, .reg-source-file-main code { display: block; margin-top: 3px; overflow: hidden; color: #8f9db0; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.reg-source-file-main code { color: #7ba8d3; }
.reg-source-file-state { text-align: right; }
.reg-source-file-state small { display: block; margin-top: 4px; color: #8392a5; font-size: 10px; }
.reg-source-file > label { grid-column: span 3; min-width: 0; margin: 0; }
.reg-source-file > label > span { display: block; margin-bottom: 5px; color: #8d9bad; font-size: 10px; font-weight: 800; letter-spacing: .65px; text-transform: uppercase; }
.reg-source-file select { width: 100%; min-height: 38px; border: 1px solid #39475a; border-radius: 4px; padding: 0 9px; background: #10161e; color: #dfe7f0; font: inherit; font-size: 12px; }
.reg-source-remove { grid-column: span 3; min-height: 34px; border: 1px solid #3d4959; background: transparent; color: #a8b4c3; font: inherit; font-size: 11px; cursor: pointer; }
.reg-source-remove:hover { border-color: #b46b66; color: #e0aaa5; }
.reg-source-empty { display: grid; gap: 4px; padding: 22px 16px; }
.reg-source-empty strong { color: #d8e1eb; font-size: 13px; }
.reg-source-empty span { color: #91a0b2; font-size: 12px; line-height: 1.5; }
.reg-source-boundary { display: grid; gap: 3px; padding: 12px 16px; border-top: 1px solid #334155; background: #18212b; }
.reg-source-boundary strong { color: #c5d9ec; font-size: 12px; }
.reg-source-boundary span { color: #8fa0b2; font-size: 11px; line-height: 1.5; }

@media (min-width: 720px) {
  .reg-modebar { flex-direction: row; justify-content: space-between; align-items: center; }
  .reg-mode-tabs { width: min(430px, 100%); }
  .reg-modebar > p { padding-right: 8px; text-align: right; }
  .reg-sub-banner { grid-template-columns: 48px minmax(0, 1fr) 190px; align-items: center; padding: 20px; }
  .reg-sub-banner-mark { width: 48px; height: 48px; }
  .reg-sub-local { grid-column: auto; padding: 0 0 0 17px; border-top: 0; border-left: 1px solid #2c3645; }
  .reg-sub-steps { grid-template-columns: repeat(4, 1fr); }
  .reg-sub-steps li { border-bottom: 0; }
  .reg-sub-steps li:nth-child(2n) { border-right: 1px solid var(--line); }
  .reg-sub-steps li:last-child { border-right: 0; }
  .reg-sub-stage { padding: 32px 28px 36px; }
  .reg-sub-stage-head { flex-direction: row; justify-content: space-between; align-items: flex-start; }
  .reg-sub-stage h2 { font-size: 36px; }
  .reg-sub-source { grid-template-columns: 1fr 1fr; }
  .reg-sub-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reg-field-wide { grid-column: 1 / -1; }
  .reg-sub-block-head { flex-direction: row; justify-content: space-between; align-items: flex-start; }
  .reg-sub-check { grid-template-columns: 10px minmax(0, 1fr) auto; align-items: center; }
  .reg-sub-check > .reg-pill { grid-column: auto; justify-self: end; }
  .reg-preview-panel { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
  .reg-preview-result, .reg-preview-messages { grid-column: 1 / -1; }
  .reg-sub-review-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .reg-sub-review-facts > div { border-right: 1px solid #344052; border-bottom: 0; }
  .reg-sub-review-facts > div:last-child { border-right: 0; }
  .reg-gate-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reg-package-head { flex-direction: row; justify-content: space-between; align-items: center; }
  .reg-sub-actions { flex-direction: row; justify-content: space-between; align-items: center; padding: 12px 16px; }
  .reg-sub-actions > div:first-child { display: block; }
  .reg-sub-action-buttons { display: flex; flex-wrap: wrap; justify-content: flex-end; }
  .reg-sub-button { min-width: 132px; }
  .reg-field input, .reg-field select, .reg-field textarea { font-size: 13px; }
  .reg-source-package-head { grid-template-columns: minmax(0, 1fr) auto; align-items: center; padding: 18px; }
  .reg-source-package-actions { justify-content: flex-end; }
  .reg-source-package-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .reg-source-package-stats div { border-bottom: 0; }
  .reg-source-package-stats div:nth-child(2n) { border-right: 1px solid #334155; }
  .reg-source-package-stats div:last-child { border-right: 0; }
}

@media (min-width: 960px) {
  .reg-source-file { grid-template-columns: 36px minmax(180px, 1fr) 122px minmax(130px, .7fr) minmax(130px, .7fr) auto; }
  .reg-source-file > label, .reg-source-remove { grid-column: auto; }
  .reg-source-remove { min-width: 68px; padding: 0 9px; }
}

@media (min-width: 1080px) {
  .reg-sub-stage { max-width: 1120px; margin: 0 auto; padding: 40px 42px 44px; }
  .reg-gate-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1100px) {
  .reg-shell { padding: 20px 18px 44px; }
  .reg-mast-main { grid-template-columns: minmax(0, 1fr) 280px; padding: 24px 22px 20px; }
  .reg-tools { grid-template-columns: minmax(220px, 1fr) repeat(2, minmax(130px, 170px)) auto; }
  .reg-tools select:nth-of-type(3) { display: none; }
  .reg-workbench { grid-template-columns: 320px minmax(0, 1fr); }
  .reg-assurance { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .reg-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reg-example-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reg-identity { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reg-overview-hero { grid-template-columns: 1fr; }
  .reg-product-visual, .reg-product-visual img { min-height: 320px; }
}

@media (max-width: 860px) {
  #registry { position: fixed; inset: 44px 0 0; }
  .reg-shell { padding: 14px 12px 36px; }
  .reg-mast-main { grid-template-columns: 1fr; gap: 18px; padding: 21px 18px 17px; }
  .reg-title { letter-spacing: -1.4px; }
  .reg-boundary { min-height: 0; }
  .reg-stats { grid-template-columns: repeat(2, 1fr); }
  .reg-stat:nth-child(2) { border-right: 0; }
  .reg-stat:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .reg-tools { grid-template-columns: 1fr 1fr; }
  .reg-search { grid-column: 1 / -1; }
  .reg-tools select:nth-of-type(3) { display: block; }
  .reg-reset { min-height: 44px; }
  .reg-tools input, .reg-tools select { height: 44px; }
  .reg-workbench { display: block; min-height: 0; overflow: visible; }
  .reg-workbench { height: auto; }
  .reg-directory { overflow: visible; border-right: 0; border-bottom: 1px solid var(--line); }
  .reg-detail { overflow: visible; }
  .reg-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; max-height: 430px; overflow-y: auto; }
  .reg-record { min-height: 88px; grid-template-columns: 38px minmax(0, 1fr); }
  .reg-record-state { grid-column: 2; grid-row: 2; display: flex; justify-items: start; align-items: center; }
  .reg-glyph { width: 38px; height: 38px; }
  .reg-detail-head { grid-template-columns: 1fr; padding: 20px 18px 17px; }
  .reg-head-pills { justify-content: flex-start; }
  .reg-section { padding: 18px; }
  .reg-interface { grid-template-columns: 1fr; gap: 5px; }
  .reg-interface-side { text-align: left; }
  .reg-example-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reg-receipt { grid-template-columns: 12px minmax(130px, .55fr) minmax(0, 1fr); }
  .reg-receipt-id { display: none; }
  .reg-action, .reg-copy, .reg-example-open { min-height: 44px; }
  .reg-detail-tabs { position: relative; }
  .reg-detail-tabs button { min-height: 48px; }
  .reg-profile-track { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reg-model-boundary { grid-template-columns: 1fr; }
  .reg-model-boundary span:last-child { text-align: left; }
  .reg-drawing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  body.registry-active #tabbar .tb-link { display: none; }
  .reg-shell { padding-inline: 8px; }
  .reg-mast { border-radius: 12px; }
  .reg-mast-main { padding-inline: 15px; }
  .reg-title { font-size: 31px; }
  .reg-stats { grid-template-columns: 1fr 1fr; }
  .reg-stat { padding: 11px 13px; }
  .reg-tools { grid-template-columns: 1fr; padding: 8px; }
  .reg-search { grid-column: auto; }
  .reg-list { grid-template-columns: 1fr; max-height: 350px; overflow-y: auto; }
  .reg-record { min-height: 78px; }
  .reg-detail h2 { font-size: 23px; }
  .reg-identity { grid-template-columns: 1fr; }
  .reg-facts { grid-template-columns: 1fr; }
  .reg-example-grid { grid-template-columns: 1fr; }
  .reg-assurance { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reg-assurance-step:last-child { grid-column: 1 / -1; min-height: 78px; }
  .reg-receipt { grid-template-columns: 12px 1fr; }
  .reg-receipt-summary { grid-column: 2; }
  .reg-version { grid-template-columns: 66px minmax(0, 1fr); }
  .reg-version-date { grid-column: 2; text-align: left; }
  .reg-detail-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow-x: visible; }
  .reg-detail-tabs button { min-width: 0; padding-inline: 8px; border-bottom: 1px solid var(--line); }
  .reg-detail-tabs button:nth-child(3n) { border-right: 0; }
  .reg-detail-tabs button:nth-last-child(-n+3) { border-bottom: 0; }
  .reg-section-head { display: block; }
  .reg-section-head p { margin-top: 4px; }
  .reg-product-visual, .reg-product-visual img { min-height: 220px; }
  .reg-fidelity-flag { position: static; border-width: 1px 0 0; }
  .reg-truth-grid { grid-template-columns: 1fr; }
  .reg-related-grid, .reg-drawing-grid { grid-template-columns: 1fr; }
  .reg-profile-level { min-height: 82px; }
  .reg-annotation { grid-template-columns: 10px minmax(0, 1fr); }
  .reg-annotation-source { grid-column: 2; text-align: left; }
  .reg-viewer-controls { display: grid; }
  .reg-choice-row button { min-height: 44px; }
  .reg-explode input { width: min(100%, 260px); }
  .reg-viewer3d #viewer3d-canvas { height: 390px; }
}

@media (prefers-reduced-motion: reduce) {
  .reg-page { scroll-behavior: auto; }
}
