/* tidalcore.dev - reference & data registry. Layout: masthead + contents rail + document column.
   Archetype: sober institutional data portal, square corners, ruled tables, no cards fluff. */
:root{
  --paper:#eef0f1; --page:#ffffff; --panel:#f5f6f6; --panel2:#eceeef;
  --ink:#1a2730; --body:#30414c; --muted:#5e6f79; --faint:#8695a0;
  --line:#b9c4cb; --hair:#d7dde1; --rule:#20303c;
  --accent:#7a2230; --accent2:#5f1a26; --link:#2b4a63;
  --code:#eef1f2; --warn:#8a4a16; --ok:#1d6148;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --serif:Georgia,"Times New Roman",ui-serif,serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--body);font-family:var(--sans);
  font-size:15.5px;line-height:1.58}
.skip{position:absolute;left:-9999px}
.skip:focus{left:8px;top:8px;background:#fff;padding:.4rem .7rem;z-index:40;border:1px solid var(--rule)}

/* -- masthead (institutional top) -- */
.mast{background:var(--rule);color:#dfe6ea;border-bottom:3px solid var(--accent)}
.mast-in{max-width:72rem;margin:0 auto;padding:0 1.4rem}
.mast-top{display:flex;flex-wrap:wrap;gap:.3rem 1.2rem;align-items:center;
  padding:.3rem 0;font-size:.74rem;letter-spacing:.02em;border-bottom:1px solid #35485a}
.mast-top .org{color:#9fb2bf;text-transform:uppercase;letter-spacing:.11em}
.mast-util{margin-left:auto;display:flex;gap:.1rem}
.mast-util a{color:#cdd8de;text-decoration:none;padding:.15rem .6rem;border-left:1px solid #35485a}
.mast-util a:first-child{border-left:0}
.mast-util a:hover{color:#fff;background:#2b3e4d}
.mast-util a.key{color:#f1c9ce;font-weight:600}
.mast-id{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem 1rem;padding:.7rem 0 .75rem}
.mast-id .mark{display:flex;align-items:center;gap:.55rem;text-decoration:none;color:#fff}
.mast-id .mark svg{flex:0 0 auto;color:#e6b9bf}
.mast-id .mark span{font-family:var(--serif);font-size:1.5rem;font-weight:700;letter-spacing:.01em}
.mast-id .tagline{color:#9fb2bf;font-size:.82rem;font-style:italic}
.mast-id .ver{margin-left:auto;font-family:var(--mono);font-size:.72rem;color:#d7c0c4;
  border:1px solid #5a3b41;padding:.1rem .45rem;background:#2a3a47}

/* -- shell: contents rail + document -- */
.shell{display:grid;grid-template-columns:16rem minmax(0,1fr);gap:0;
  max-width:72rem;margin:0 auto;background:var(--page);border-left:1px solid var(--line);
  border-right:1px solid var(--line)}
.side{background:var(--panel);border-right:1px solid var(--line);padding:1.3rem 1.05rem 2rem}
.side-in{position:sticky;top:1rem}
.side .mark{display:none}
.side .ver{display:none}
.side h2{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--accent2);
  margin:1.25rem 0 .35rem;font-weight:700;border-bottom:1px solid var(--line);padding-bottom:.2rem}
.side h2:first-of-type{margin-top:0}
.side nav{display:flex;flex-direction:column}
.side nav a{color:var(--link);text-decoration:none;font-size:.86rem;padding:.2rem 0 .2rem .9rem;
  position:relative;line-height:1.35}
.side nav a::before{content:"›";position:absolute;left:0;color:var(--faint)}
.side nav a:hover{color:var(--accent);text-decoration:underline}
.side nav a[aria-current]{color:var(--ink);font-weight:700}
.side nav a[aria-current]::before{content:"■";font-size:.6em;top:.1em;color:var(--accent)}
.side .fine{font-size:.74rem;color:var(--muted);margin-top:1.5rem;line-height:1.5;
  border-top:1px solid var(--hair);padding-top:.7rem}
.side .fine a{color:var(--link)}

.doc{padding:1.5rem 2.3rem 2.6rem;max-width:48rem;min-width:0}

/* -- breadcrumb (dry path line) -- */
.crumb{font-family:var(--mono);font-size:.72rem;color:var(--muted);letter-spacing:.01em;
  margin:0 0 1rem;padding:.3rem .55rem;background:var(--panel2);border:1px solid var(--hair)}
.crumb a{color:var(--link);text-decoration:none}
.crumb a:hover{text-decoration:underline}

h1{font-family:var(--serif);font-size:1.66rem;line-height:1.18;color:var(--ink);
  margin:0 0 .25rem;font-weight:700;letter-spacing:0}
.docmeta{font-family:var(--mono);font-size:.72rem;color:var(--faint);margin:0 0 1.15rem;
  padding-bottom:.6rem;border-bottom:2px solid var(--rule)}
h2{font-family:var(--serif);font-size:1.18rem;color:var(--ink);margin:2rem 0 .5rem;
  font-weight:700;padding-bottom:.2rem;border-bottom:1px solid var(--line)}
h3{font-size:.96rem;color:var(--ink);margin:1.4rem 0 .3rem;font-weight:700;
  font-family:var(--sans)}
p{margin:0 0 .95rem}
.lede{font-size:1.04rem;color:var(--ink);line-height:1.56}
a{color:var(--link)}
a:hover{color:var(--accent)}
ul,ol{margin:0 0 1rem;padding-left:1.3rem}
li{margin-bottom:.3rem}
strong,b{color:var(--ink)}
code{font-family:var(--mono);font-size:.85em;background:var(--code);
  border:1px solid var(--hair);padding:.03rem .25rem;color:var(--accent2)}
pre{background:var(--code);border:1px solid var(--line);border-left:4px solid var(--rule);
  padding:.75rem .95rem;overflow-x:auto;margin:1rem 0;font-size:.82rem;line-height:1.5;
  -webkit-overflow-scrolling:touch}
pre code{background:none;border:0;padding:0;color:#223038;font-size:1em}
pre .c{color:#6b7c85}
pre .o{color:#7a3550}

/* -- ruled data tables (gov-registry look) -- */
.tbl{overflow-x:auto;margin:1rem 0 1.4rem;-webkit-overflow-scrolling:touch;border:1px solid var(--rule)}
table{border-collapse:collapse;width:100%;font-size:.83rem;line-height:1.4;
  font-variant-numeric:tabular-nums;background:var(--page)}
caption{caption-side:bottom;text-align:left;font-size:.75rem;color:var(--muted);
  padding:.5rem .6rem;background:var(--panel)}
th,td{padding:.38rem .6rem;text-align:left;vertical-align:top;border:1px solid var(--hair)}
thead th{background:var(--panel2);border-bottom:2px solid var(--rule);font-weight:700;
  white-space:nowrap;color:var(--ink);font-size:.76rem;text-transform:uppercase;letter-spacing:.03em}
tbody tr:nth-child(even) td{background:var(--panel)}
td.n,th.n{text-align:right;white-space:nowrap}
td.m,th.m{font-family:var(--mono);font-size:.95em;white-space:nowrap}
tbody tr:hover td{background:#eef4ea}

/* -- registry / cards (reworked as a bordered index, not floating cards) -- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:0;
  margin:1.2rem 0;border:1px solid var(--line);border-bottom:0}
.card{border-bottom:1px solid var(--line);border-right:1px solid var(--line);
  padding:.7rem .85rem;background:var(--page)}
.card a{font-weight:700;text-decoration:none;font-size:.92rem;color:var(--link)}
.card a:hover{color:var(--accent);text-decoration:underline}
.card p{margin:.25rem 0 0;font-size:.82rem;color:var(--muted);line-height:1.45}

/* -- notice / caveat box (framed, labelled) -- */
.adm{border:1px solid var(--line);border-left:5px solid var(--warn);background:var(--panel);
  padding:.7rem .9rem .75rem;margin:1.1rem 0;font-size:.9rem}
.adm::before{content:"NOTICE";display:block;font-family:var(--mono);font-size:.64rem;
  letter-spacing:.14em;color:var(--warn);margin-bottom:.3rem;font-weight:700}
.adm.n{border-left-color:var(--link)}
.adm.n::before{content:"NOTE";color:var(--link)}
.adm p{margin:0}
.adm p+p{margin-top:.55rem}
.adm b{color:var(--ink)}

figure{margin:1.3rem 0;padding:0}
figure svg{display:block;width:100%;height:auto;border:1px solid var(--line);background:var(--page)}
figcaption{font-size:.77rem;color:var(--muted);margin-top:.45rem;line-height:1.5}
dl{margin:1rem 0}
dt{font-family:var(--mono);font-size:.82rem;color:var(--accent2);margin-top:.8rem;font-weight:600}
dd{margin:.08rem 0 0}

.seealso{border-top:2px solid var(--rule);margin-top:2.2rem;padding-top:.9rem;font-size:.88rem}
.seealso b{color:var(--ink);font-weight:700}

/* -- on-this-page TOC -- */
.toc{border:1px solid var(--line);background:var(--panel);padding:.6rem .85rem;
  margin:1.1rem 0 1.4rem;font-size:.84rem}
.toc b{display:block;font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;
  color:var(--accent2);margin-bottom:.3rem;font-weight:700}
.toc ul{margin:0;padding:0;list-style:none;columns:2;column-gap:1.4rem}
.toc li{margin:0 0 .2rem;break-inside:avoid}
.toc a{text-decoration:none;color:var(--link)}
.toc a:hover{text-decoration:underline;color:var(--accent)}
.fine{font-size:.82rem;color:var(--muted)}
.fine a{color:var(--link)}

/* -- constituent detail -- */
.cdl{display:grid;grid-template-columns:auto 1fr;gap:.15rem 1.1rem;margin:1.1rem 0 1.4rem;
  font-size:.92rem;border:1px solid var(--line);padding:.7rem .85rem;background:var(--panel)}
.cdl dt{font-family:var(--mono);font-size:.78rem;color:var(--muted);margin:0;
  white-space:nowrap;align-self:baseline;font-weight:400}
.cdl dd{margin:0;color:var(--ink)}
.cpager{display:flex;justify-content:space-between;gap:1rem;border-top:2px solid var(--rule);
  margin-top:1.6rem;padding-top:.8rem;font-size:.88rem}
.cpager a{text-decoration:none;font-weight:700;color:var(--link)}
.cpager a:hover{color:var(--accent);text-decoration:underline}

/* -- reconstructor tool -- */
.recon{display:grid;grid-template-columns:minmax(0,1fr) 15rem;gap:1.1rem;margin:1.1rem 0 1.4rem;align-items:start}
.recon-plot figure{margin:0}
.readout{font-size:.84rem;color:var(--body);margin:.55rem 0 .35rem}
.readout b{color:var(--ink);font-variant-numeric:tabular-nums}
.recon-ctl{font-size:.84rem;margin:.3rem 0 0;display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}
.recon-ctl select,.recon-ctl button{font:inherit;font-size:.84rem;padding:.2rem .45rem;
  border:1px solid var(--line);background:var(--page);color:var(--ink)}
.recon-ctl button{cursor:pointer}
.recon-tbl .tbl{margin:0;max-height:19rem;overflow-y:auto}
.recon-tbl table{font-size:.79rem}
.recon-tbl label{display:flex;align-items:center;gap:.3rem;white-space:nowrap}
.ni{width:4.4rem;font:inherit;font-size:.79rem;padding:.1rem .25rem;border:1px solid var(--line);
  background:var(--page);color:var(--ink);font-variant-numeric:tabular-nums}

/* -- login / registry sign-in -- */
.auth{max-width:25rem;border:1px solid var(--line);background:var(--panel);padding:0;margin:1.2rem 0 1.6rem}
.auth-hd{background:var(--rule);color:#eef3f5;font-family:var(--serif);font-size:1rem;font-weight:700;
  padding:.5rem .9rem}
.auth-bd{padding:1rem .95rem 1.1rem}
.field{margin:0 0 .8rem}
.field label{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;
  color:var(--muted);margin-bottom:.22rem;font-weight:600}
.field input{width:100%;font:inherit;font-size:.95rem;padding:.42rem .55rem;color:var(--ink);
  background:var(--page);border:1px solid var(--line)}
.field input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}
.auth button{font:inherit;font-size:.9rem;font-weight:700;color:#fff;background:var(--accent);
  border:1px solid var(--accent2);padding:.45rem 1.1rem;cursor:pointer;letter-spacing:.02em}
.auth button:hover{background:var(--accent2)}
.auth .note{font-size:.78rem;color:var(--muted);margin:.7rem 0 0;line-height:1.5}
.authmsg{margin:.85rem 0 0;padding:.55rem .7rem;font-size:.84rem;border:1px solid var(--line);
  background:var(--page);min-height:1.2em}
.authmsg.err{border-left:4px solid var(--warn);color:var(--warn)}
.authmsg.info{border-left:4px solid var(--link);color:var(--ink)}

/* -- SVG figure palette -- */
.sv-ax{stroke:#8a98a1;stroke-width:1}
.sv-gr{stroke:#dfe5e8;stroke-width:1}
.sv-ob{fill:none;stroke:#1a2730;stroke-width:1.25;stroke-linejoin:round}
.sv-ft{fill:none;stroke:#7a2230;stroke-width:1.25;stroke-linejoin:round}
.sv-rs{fill:none;stroke:#8a4a16;stroke-width:1.1;stroke-linejoin:round}
.sv-z{stroke:#8a98a1;stroke-width:1;stroke-dasharray:4 3}
.sv-t{font-family:system-ui,sans-serif;font-size:10px;fill:#5e6f79}
.sv-t.b{font-weight:600;fill:#1a2730}
.sv-bar{fill:#20303c}
.sv-bar2{fill:#8ca2ac}

/* -- global footer -- */
.gov-foot{background:var(--panel2);border-top:3px solid var(--rule);color:var(--muted);
  font-size:.78rem;margin-top:0}
.gov-foot-in{max-width:72rem;margin:0 auto;padding:1.1rem 1.4rem 1.6rem;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.6rem 1.8rem}
.gov-foot h3{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--accent2);
  margin:0 0 .35rem;font-weight:700}
.gov-foot p{margin:0 0 .3rem;line-height:1.5}
.gov-foot a{color:var(--link);text-decoration:none}
.gov-foot a:hover{text-decoration:underline}
.gov-foot .docid{font-family:var(--mono);font-size:.72rem;color:var(--faint)}
.gov-foot ul{margin:0;padding:0;list-style:none}
.gov-foot li{margin:0 0 .18rem}

@media (max-width:840px){
  .shell{grid-template-columns:minmax(0,1fr);border-left:0;border-right:0}
  .side{border-right:0;border-bottom:1px solid var(--line);padding:1rem 1.05rem}
  .side-in{position:static}
  .side nav{flex-flow:row wrap;gap:.05rem 1.1rem}
  .side nav a{padding:.15rem 0 .15rem .9rem}
  .doc{padding:1.2rem 1.1rem 2.2rem}
  .recon{grid-template-columns:minmax(0,1fr)}
  .recon-tbl .tbl{max-height:none}
  .toc ul{columns:1}
  .mast-id .ver{margin-left:0}
}
@media (prefers-color-scheme:dark){
  :root{
    --paper:#0f171c; --page:#141f26; --panel:#18242c; --panel2:#1d2a33;
    --ink:#e6edf1; --body:#c0cdd4; --muted:#8a9aa4; --faint:#6b7d87;
    --line:#2c3c46; --hair:#243139; --rule:#0b1216;
    --accent:#d98692; --accent2:#e4a0aa; --link:#8fb6d0;
    --code:#18242c;
  }
  .mast{background:#0b1216}
  .mast-top{border-color:#223039}
  .mast-util a{border-color:#223039}
  .mast-util a:hover{background:#1a2730}
  .mast-id .ver{background:#1a2730;border-color:#4a3034;color:#e4a0aa}
  pre code{color:#cbd8df}
  pre .c{color:#7d8e97}
  pre .o{color:#d98692}
  tbody tr:hover td{background:#1e2b24}
  .sv-ob{stroke:#e6edf1}
  .sv-ft{stroke:#d98692}
  .sv-rs{stroke:#d49a62}
  .sv-t{fill:#8a9aa4}
  .sv-t.b{fill:#e6edf1}
  .sv-bar{fill:#8fb6d0}
  .sv-bar2{fill:#3a5666}
  .auth button{color:#141f26}
}
