/* org-shared.css — shared styling for the DataDawn organization hubs (nonprofit-hub.html + company-hub.html).
   Ported from the proven member-hub styles so the org hubs match the rest of the site.
   Built with love by a human, a Claude, and DJ Crabdaddy 🦀 */
:root {
  --night:#0a0e1a; --deep:#111827; --twilight:#1a2342; --horizon:#2a3a6b;
  --dawn-amber:#f59e0b; --dawn-gold:#fbbf24; --dawn-light:#fde68a;
  --text-primary:#e2e8f0; --text-secondary:#94a3b8; --text-muted:#64748b;
  --surface:rgba(255,255,255,0.03); --surface-hover:rgba(255,255,255,0.06);
  --border:rgba(255,255,255,0.08); --pos:#4ade80; --neg:#f87171;
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Outfit',sans-serif; background:var(--night); color:var(--text-primary); -webkit-font-smoothing:antialiased; min-height:100vh; }
/* base link color — keep classless anchors on-palette instead of harsh browser-default blue (matches `td a`) */
a { color:var(--dawn-gold); text-decoration:none; }

nav { display:flex; align-items:center; justify-content:space-between; padding:1.25rem 2rem; border-bottom:1px solid var(--border); background:rgba(10,14,26,0.95); backdrop-filter:blur(20px); position:sticky; top:0; z-index:100; }
.nav-brand { font-family:'DM Serif Display',serif; font-size:1.4rem; color:var(--dawn-gold); text-decoration:none; }
.nav-links { display:flex; gap:1.5rem; align-items:center; }
.nav-links a { font-family:'IBM Plex Mono',monospace; font-size:0.72rem; color:var(--text-muted); text-decoration:none; text-transform:uppercase; letter-spacing:0.1em; transition:color .3s; }
.nav-links a:hover { color:var(--dawn-gold); }

.wrap { max-width:1100px; margin:0 auto; padding:1.5rem 1.25rem 4rem; }

.finder { position:relative; margin:0 0 2rem; }
.finder input { width:100%; padding:0.85rem 1rem; font-family:'Outfit',sans-serif; font-size:1rem; color:var(--text-primary); background:var(--surface); border:1px solid var(--border); border-radius:10px; }
.finder input:focus { outline:none; border-color:var(--dawn-amber); }
.finder-results { position:absolute; left:0; right:0; top:calc(100% + 4px); background:var(--deep); border:1px solid var(--border); border-radius:10px; overflow:hidden; z-index:30; display:none; }
.finder-results.show { display:block; }
.finder-results a { display:flex; justify-content:space-between; gap:1rem; padding:0.7rem 1rem; text-decoration:none; color:var(--text-primary); border-bottom:1px solid var(--border); }
.finder-results a:last-child { border-bottom:none; }
.finder-results a:hover { background:var(--surface-hover); }
.finder-results .meta { color:var(--text-muted); font-size:0.8rem; font-family:'IBM Plex Mono',monospace; }

.o-head { border-bottom:1px solid var(--border); padding-bottom:1rem; margin-bottom:1rem; }
.o-name { font-family:'DM Serif Display',serif; font-size:2.1rem; line-height:1.1; }
.o-sub { color:var(--text-secondary); font-family:'IBM Plex Mono',monospace; font-size:0.85rem; margin-top:0.4rem; letter-spacing:0.04em; }
.o-badge { display:inline-block; font-size:0.62rem; text-transform:uppercase; letter-spacing:0.1em; padding:0.15rem 0.5rem; border-radius:999px; border:1px solid var(--border); margin-left:0.5rem; vertical-align:middle; }
.type-badge { display:inline-block; font-family:'IBM Plex Mono',monospace; font-size:0.7rem; font-weight:500; padding:0.1rem 0.45rem; border-radius:4px; background:rgba(148,163,184,0.15); color:#94a3b8; }
.type-badge.nonprofit { background:rgba(74,222,128,0.13); color:var(--pos); }
.type-badge.public_company { background:rgba(96,165,250,0.15); color:#60a5fa; }
.type-badge.private_company { background:rgba(96,165,250,0.1); color:#60a5fa; }
.type-badge.trade_association { background:rgba(245,158,11,0.13); color:var(--dawn-amber); }
.type-badge.union { background:rgba(244,114,182,0.13); color:#f472b6; }

.tabs { display:flex; gap:0.25rem; overflow-x:auto; border-bottom:1px solid var(--border); margin-bottom:1.25rem; }
.tabs button { flex:0 0 auto; background:none; border:none; border-bottom:2px solid transparent; cursor:pointer; font-family:'IBM Plex Mono',monospace; font-size:0.74rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--text-muted); padding:0.7rem 0.85rem; transition:color .2s,border-color .2s; white-space:nowrap; }
.tabs button:hover { color:var(--text-secondary); }
.tabs button.active { color:var(--dawn-gold); border-bottom-color:var(--dawn-amber); }
.panel { display:none; scroll-margin-top:90px; } .panel.active { display:block; }

.tab-total { font-size:1.05rem; color:var(--text-secondary); margin-bottom:0.9rem; }
.tab-total b { color:var(--dawn-gold); font-weight:600; }

.overview-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:0.8rem; margin-bottom:1.5rem; }
.overview-item { background:var(--surface); border:1px solid var(--border); border-radius:10px; padding:0.9rem 1rem; }
.overview-label { font-family:'IBM Plex Mono',monospace; font-size:0.66rem; text-transform:uppercase; letter-spacing:0.08em; color:var(--text-muted); margin-bottom:0.35rem; }
.overview-value { font-size:1rem; word-break:break-word; }
.overview-value.big { font-size:1.5rem; color:var(--dawn-gold); font-weight:500; }

.section-title { font-family:'IBM Plex Mono',monospace; font-size:0.7rem; text-transform:uppercase; letter-spacing:0.1em; color:var(--text-muted); margin:1.5rem 0 0.7rem; }

.table-wrap { overflow-x:auto; border:1px solid var(--border); border-radius:10px; }
table { width:100%; border-collapse:collapse; font-size:0.86rem; }
th,td { text-align:left; padding:0.55rem 0.8rem; border-bottom:1px solid var(--border); }
th { font-family:'IBM Plex Mono',monospace; font-size:0.66rem; text-transform:uppercase; letter-spacing:0.07em; color:var(--text-muted); position:sticky; top:0; background:var(--deep); white-space:nowrap; }
tbody tr:hover { background:var(--surface-hover); }
td a { color:var(--dawn-gold); text-decoration:none; } td a:hover { text-decoration:underline; }
td.money { font-family:'IBM Plex Mono',monospace; color:var(--dawn-light); white-space:nowrap; }
td.muted { color:var(--text-muted); white-space:nowrap; }
td.mono { font-family:'IBM Plex Mono',monospace; font-size:0.74rem; }
.nowrap { white-space:nowrap; }
.vbadge { display:inline-block; padding:0.12rem 0.45rem; border-radius:3px; font-size:0.7rem; }
.tbadge { display:inline-block; padding:0.1rem 0.45rem; border-radius:4px; font-size:0.7rem; }
.tbadge.buy { background:rgba(34,197,94,0.12); color:var(--pos); }
.tbadge.sell { background:rgba(239,68,68,0.12); color:var(--neg); }
.tbadge.other { background:var(--surface); color:var(--text-muted); }
.lobby-tag { font-family:'IBM Plex Mono',monospace; font-size:0.7rem; color:var(--dawn-amber); }

.subtabs { display:flex; gap:0.5rem; margin-bottom:1rem; flex-wrap:wrap; }
.subtabs button { background:var(--surface); border:1px solid var(--border); border-radius:999px; cursor:pointer; font-family:'IBM Plex Mono',monospace; font-size:0.68rem; color:var(--text-secondary); padding:0.35rem 0.85rem; }
.subtabs button.active { background:rgba(245,158,11,0.12); color:var(--dawn-amber); border-color:rgba(245,158,11,0.4); }

.cross-links { display:flex; flex-wrap:wrap; gap:0.6rem; }
.cross-link { font-family:'IBM Plex Mono',monospace; font-size:0.74rem; color:var(--text-secondary); text-decoration:none; border:1px solid var(--border); border-radius:8px; padding:0.5rem 0.85rem; }
.cross-link:hover { color:var(--dawn-gold); border-color:rgba(245,158,11,0.4); }

.src { font-size:0.78rem; color:var(--text-muted); margin-top:0.8rem; }
.src a { color:var(--text-secondary); }

/* pagination — page through a full result set (mirrors browse.html) */
.results-status { font-family:'IBM Plex Mono',monospace; font-size:0.78rem; color:var(--text-secondary); margin:0 0 0.6rem; }
.results-status b { color:var(--dawn-gold); }
.pager { display:flex; justify-content:center; align-items:center; gap:0.8rem; margin-top:1.1rem; scroll-margin-top:90px; }
.pager button { font-family:'IBM Plex Mono',monospace; font-size:0.8rem; color:var(--text-secondary); background:var(--surface); border:1px solid var(--border); border-radius:8px; padding:0.5rem 1rem; cursor:pointer; }
.pager button:hover:not(:disabled) { color:var(--dawn-gold); border-color:rgba(245,158,11,0.4); }
.pager button:disabled { opacity:0.35; cursor:not-allowed; }
.pager .pg { font-family:'IBM Plex Mono',monospace; font-size:0.78rem; color:var(--text-muted); }
.empty { color:var(--text-muted); padding:1.5rem; text-align:center; }
.empty b { color:var(--text-secondary); }
.err { color:var(--neg); padding:1rem; }
.sk { background:linear-gradient(90deg,var(--surface) 25%,var(--surface-hover) 50%,var(--surface) 75%); background-size:200% 100%; animation:sh 1.3s infinite; border-radius:6px; }
@keyframes sh { 0%{background-position:200% 0} 100%{background-position:-200% 0} }
.sk-line { height:0.9rem; margin:0.5rem 0; } .sk-line.lg { height:1.8rem; width:55%; } .sk-line.md { width:40%; }

.modal-overlay { position:fixed; inset:0; background:rgba(5,8,16,0.82); backdrop-filter:blur(6px); z-index:200; display:none; align-items:flex-start; justify-content:center; padding:3rem 1rem; overflow-y:auto; }
.modal-overlay.show { display:flex; }
.modal { position:relative; max-width:760px; width:100%; background:var(--deep); border:1px solid var(--border); border-radius:14px; padding:1.6rem 1.4rem 1.9rem; }
.modal-close { position:absolute; top:0.6rem; right:0.8rem; background:none; border:none; color:var(--text-muted); font-size:1.25rem; line-height:1; cursor:pointer; }
.modal-close:hover { color:var(--dawn-gold); }
.modal-h { font-family:'DM Serif Display',serif; font-size:1.5rem; margin-bottom:1rem; }
.modal-h span { font-family:'IBM Plex Mono',monospace; font-size:0.78rem; color:var(--text-secondary); }

footer { border-top:1px solid var(--border); margin-top:3rem; padding:1.5rem 2rem; text-align:center; color:var(--text-muted); font-size:0.78rem; }
footer a { color:var(--text-secondary); text-decoration:none; }

@media (max-width:640px){
  nav { padding:1rem 1.1rem; flex-wrap:wrap; gap:0.4rem 1rem; }
  .nav-links { gap:0.75rem; flex-wrap:wrap; }
  .nav-links a { font-size:0.6rem; letter-spacing:0.05em; }
  .o-name { font-size:1.6rem; } .wrap { padding:1.1rem 0.9rem 3rem; }
  .overview-grid { grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); }
}
