
/* FARPY_CANONICAL_SHELL_CLAMP_V1 */
html, body {
  margin: 0;
  min-height: 100%;
}

body {
  background: linear-gradient(115deg,#fff 0%,#f2fff6 100%);
  color: #080d19;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}

.nav {
  width: min(1120px, calc(100% - 64px));
  margin: 0 auto;
  height: 86px;
  display: grid;
  grid-template-columns: 180px 1fr 220px;
  align-items: center;
  gap: 24px;
  font-weight: 800;
  font-size: 14px;
}

.brand,
.nav a {
  color: #050913;
  text-decoration: none;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.bird {
  font-size: 16px;
  line-height: 1;
}

.nav-mid {
  display: flex;
  justify-content: center;
  gap: 30px;
}

.nav-right {
  display: flex;
  justify-content: flex-end;
  gap: 18px;
}

.footer {
  width: min(1120px, calc(100% - 64px));
  margin: 84px auto 56px;
  padding-top: 28px;
  border-top: 1px solid rgba(5,9,19,.16);
  color: #35476b;
  font-size: 13px;
}

.footer > div {
  display: flex;
  align-items: flex-start;
  gap: 28px;
  flex-wrap: wrap;
}

.footer a {
  color: #35476b;
  text-decoration: none;
}

/* Normalize old fragmented pages without changing backend paths */
body > main,
.wrap,
.container,
.page,
.shell,
main {
  width: min(1120px, calc(100% - 64px));
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box;
}

@media (max-width: 760px) {
  .nav {
    width: min(100% - 32px, 1120px);
    height: auto;
    padding: 22px 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }

  .nav-mid,
  .nav-right {
    width: 100%;
    justify-content: flex-start;
    gap: 16px;
    flex-wrap: wrap;
  }

  body > main,
  .wrap,
  .container,
  .page,
  .shell,
  main,
  .footer {
    width: min(100% - 32px, 1120px);
  }
}

/* FARPY_LAYOUT_V2 */

/* main content */
.page {
  width: min(1120px, calc(100% - 64px));
  margin: 0 auto;
  padding-top: 40px;
}

/* fix explorer table */
table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
  border-radius: 18px;
  overflow: hidden;
}

th, td {
  padding: 14px 16px;
  text-align: left;
  font-size: 14px;
}

thead {
  background: #f6f8fb;
  font-weight: 700;
}

tbody tr {
  border-top: 1px solid rgba(5,9,19,.08);
}

/* section spacing normalize */
h1, h2, h3 {
  margin-top: 0;
}

section, .card, .box {
  margin-top: 40px;
}

/* fix node rail overflow */
* {
  max-width: 100%;
  box-sizing: border-box;
}

/* footer breathing room */
.footer {
  margin-top: 100px;
  padding-bottom: 20px;
}

/* FARPY_REAL_SHELL_FORCE_V3 */
/* Force Explorer/API/Node to match /real nav/footer geometry */

body {
  padding: 0 !important;
}

.nav {
  max-width: 1120px !important;
  width: calc(100% - 128px) !important;
  height: 86px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: 210px 1fr 210px !important;
  align-items: center !important;
  font-size: 14px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
}

.nav * {
  font-size: 14px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
}

.brand {
  justify-self: start !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}

.nav-mid {
  justify-self: center !important;
  display: flex !important;
  align-items: center !important;
  gap: 30px !important;
}

.nav-right {
  justify-self: end !important;
  display: flex !important;
  align-items: center !important;
  gap: 18px !important;
}

.page,
body > main {
  max-width: 1120px !important;
  width: calc(100% - 128px) !important;
  margin: 0 auto !important;
  padding-top: 92px !important;
}

.footer {
  max-width: 1120px !important;
  width: calc(100% - 128px) !important;
  margin: 96px auto 56px !important;
  padding-top: 28px !important;
  border-top: 1px solid rgba(5,9,19,.16) !important;
  font-size: 13px !important;
  line-height: 1.2 !important;
}

.footer,
.footer * {
  font-size: 13px !important;
  font-weight: 400 !important;
}

.footer > div {
  display: flex !important;
  align-items: flex-start !important;
  gap: 28px !important;
  flex-wrap: wrap !important;
}

@media (max-width: 760px) {
  .nav,
  .page,
  body > main,
  .footer {
    width: calc(100% - 32px) !important;
  }

  .nav {
    height: auto !important;
    padding: 22px 0 !important;
    display: flex !important;
    flex-wrap: wrap !important;
  }
}

/* FARPY_NAV_LOCK_V1 — DO NOT TOUCH */

/* kill page-level interference */
.nav, .nav * {
  all: unset;
  box-sizing: border-box;
}

/* rebuild nav deterministically */
.nav {
  display: grid !important;
  grid-template-columns: 180px 1fr 180px !important;

  width: 1120px !important;
  margin: 0 auto !important;
  height: 88px !important;

  align-items: center !important;

  font-family: Inter, system-ui, sans-serif !important;
  font-size: 14px !important;
  font-weight: 800 !important;

  position: relative;
}

/* brand */
.brand {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}

/* center links */
.nav-mid {
  display: flex !important;
  justify-content: center !important;
  gap: 32px !important;
}

/* right links */
.nav-right {
  display: flex !important;
  justify-content: flex-end !important;
  gap: 18px !important;
}

/* links */
.nav a {
  cursor: pointer;
  text-decoration: none;
  color: #0a0f1a;
}

/* mobile fallback */
@media (max-width: 900px) {
  .nav {
    width: calc(100% - 32px) !important;
    grid-template-columns: 1fr !important;
    height: auto !important;
    gap: 10px !important;
  }

  .nav-mid,
  .nav-right {
    justify-content: flex-start !important;
    flex-wrap: wrap !important;
  }
}


/* FARPY_TIGHT_V1 */

/* reduce top whitespace */
.page {
  padding-top: 64px !important;
}

/* tighten hero spacing */
.hero {
  margin-bottom: 28px !important;
}

/* tighten section gaps */
section,
.card,
.box,
.wrap {
  margin-top: 24px !important;
}

/* rail tighter */
.rail {
  margin-top: 18px !important;
}

/* cards tighter + more cohesive */
.card {
  padding: 18px !important;
  border-radius: 14px !important;
}

/* CTA area prominence */
button {
  margin-top: 14px !important;
}

/* reduce footer gap */
.footer {
  margin-top: 64px !important;
}


/* FARPY_HEADLINE_PUNCH */

.hero h1 {
  font-size: 56px !important;
  line-height: 1.02 !important;
  letter-spacing: -1px !important;
}


/* FARPY_POLISH_V1 */

/* better typography */
body {
  color: #0b0f1a;
  font-weight: 500;
}

/* cards feel premium */
.card,
#list > div {
  background: #ffffff;
  border: 1px solid rgba(10,15,26,0.08) !important;
  box-shadow: 0 4px 18px rgba(0,0,0,0.04);
  transition: box-shadow 0.2s ease;
}

.card:hover,
#list > div:hover {
  box-shadow: 0 6px 24px rgba(0,0,0,0.06);
}

/* job id */
#list div > div:first-child {
  font-size: 15px;
  letter-spacing: 0.2px;
}

/* state text */
.state {
  margin-top: 6px;
  font-size: 13px;
  opacity: 0.9;
}

/* links cleaner */
#list a {
  font-size: 13px;
  text-decoration: none;
  color: #0a0f1a;
  border-bottom: 1px solid rgba(10,15,26,0.2);
}

#list a:hover {
  border-bottom: 1px solid #0a0f1a;
}

/* progress bar refinement */
#batch_progress div[style*="background:#eee"] {
  background: #f2f4f7 !important;
}

#batch_bar {
  background: linear-gradient(90deg,#0a0f1a,#2a7fff) !important;
  transition: width 0.4s ease;
}

/* headings */
h1 {
  font-size: 34px;
  letter-spacing: -0.5px;
  margin-bottom: 8px;
}

/* subtle spacing */
#batch_progress {
  margin-bottom: 24px !important;
}


/* FARPY_NAPKIN_BACKGROUND_V1 */
:root{
  --farpy-paper:#f6fff4;
  --farpy-paper-ink:rgba(13,25,20,.055);
  --farpy-paper-line:rgba(40,90,55,.065);
}
html,body{
  background-color:var(--farpy-paper)!important;
  background-image:
    radial-gradient(circle at 18px 18px, var(--farpy-paper-ink) 1px, transparent 1.4px),
    linear-gradient(var(--farpy-paper-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--farpy-paper-line) 1px, transparent 1px),
    linear-gradient(135deg, rgba(255,255,255,.55), rgba(255,255,255,0) 42%, rgba(0,0,0,.018));
  background-size:22px 22px, 44px 44px, 44px 44px, 100% 100%;
  background-attachment:fixed;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:-1;
  background:
    radial-gradient(circle at 12% 18%, rgba(255,255,255,.42), transparent 24%),
    radial-gradient(circle at 88% 12%, rgba(255,255,255,.28), transparent 22%),
    radial-gradient(circle at 50% 92%, rgba(0,0,0,.025), transparent 34%);
}
main,.card,section,.panel,.box{
  backdrop-filter:saturate(1.02);
}
