/* ============================================================
   PROJECT: ARCHONATE — shared stylesheet
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Big+Shoulders+Display:wght@400;600;700;800;900&family=Source+Serif+4:ital,wght@0,400;0,500;0,600;1,400&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root{
  --ink:        #1b160b;
  --ink-soft:   #52462c;
  --gold-deep:  #8a691c;
  --gold:       #c1972c;
  --gold-bright:#e6bd52;
  --paper:      #fbf7ec;
  --paper-dim:  #f1e6c8;
  --white:      #ffffff;
  --line:       rgba(138,105,28,0.28);
  --line-soft:  rgba(138,105,28,0.14);
  --shadow:     0 18px 40px rgba(90,68,10,0.14);
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Source Serif 4', serif;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
:focus-visible{outline:2px solid var(--gold-deep);outline-offset:3px;}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
}

.mono{
  font-family:'IBM Plex Mono', monospace;
  letter-spacing:0.16em;
  text-transform:uppercase;
}
.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  letter-spacing:0.22em;
  text-transform:uppercase;
  font-size:0.72rem;
  color:var(--gold-deep);
  display:inline-flex;
  align-items:center;
  gap:0.55rem;
}
.eyebrow .node{flex:none;}

h1,h2,h3,.display{
  font-family:'Big Shoulders Display', sans-serif;
  text-transform:uppercase;
  font-weight:800;
  letter-spacing:0.01em;
  line-height:0.98;
  color:var(--ink);
}

/* ---------- node glyph (signature motif) ---------- */
.node{
  width:15px;height:15px;flex:none;
}
.node circle{fill:none;stroke:var(--gold-deep);stroke-width:6;}
.node line{stroke:var(--gold-deep);stroke-width:6;}
.node .hub{fill:var(--gold-deep);}

/* ---------- layout shell ---------- */
.wrap{max-width:1160px;margin:0 auto;padding:0 1.6rem;}
.wrap-narrow{max-width:800px;margin:0 auto;padding:0 1.6rem;}

/* ============================================================
   NAV
   ============================================================ */
.site-nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(251,247,236,0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.site-nav-inner{
  max-width:1160px;margin:0 auto;padding:0 1.6rem;
  height:74px;
  display:flex;align-items:center;justify-content:space-between;
}
.brand{display:flex;align-items:center;gap:0.7rem;}
.brand img{height:34px;width:34px;object-fit:contain;}
.brand-text{
  font-family:'Big Shoulders Display', sans-serif;
  font-weight:800;
  font-size:1.15rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--ink);
}
.brand-text span{color:var(--gold-deep);}

.nav-links{display:flex;align-items:center;gap:2rem;}
.nav-links a{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.72rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--ink-soft);
  position:relative;
  padding:0.4rem 0.1rem;
  transition:color .2s;
}
.nav-links a:hover{color:var(--gold-deep);}
.nav-links a.current{color:var(--ink);}
.nav-links a.current::after{
  content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;background:var(--gold);
}
.nav-cta{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.7rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  padding:0.55rem 1.1rem;
  border:1px solid var(--gold-deep);
  color:var(--ink) !important;
  transition:background .2s, color .2s;
}
.nav-cta:hover{background:var(--gold-deep);color:var(--white) !important;}

.nav-toggle{
  display:none;
  flex-direction:column;gap:5px;
  background:none;border:none;cursor:pointer;padding:0.4rem;
}
.nav-toggle span{width:22px;height:2px;background:var(--ink);}

@media (max-width:860px){
  .nav-links{
    position:fixed;top:74px;left:0;right:0;bottom:0;
    background:var(--paper);
    flex-direction:column;
    align-items:flex-start;
    padding:2rem 1.6rem;
    gap:1.4rem;
    transform:translateX(100%);
    transition:transform .3s ease;
    border-top:1px solid var(--line);
    overflow-y:auto;
  }
  .nav-links.open{transform:translateX(0);}
  .nav-toggle{display:flex;}
}

/* ============================================================
   PAGE HEADER (used on inner pages instead of full hero)
   ============================================================ */
.page-header{
  padding:11rem 0 4rem;
  background:linear-gradient(180deg, var(--paper-dim), var(--paper) 85%);
  border-bottom:1px solid var(--line);
}
.page-header h1{font-size:clamp(2.3rem, 5.4vw, 3.6rem);}
.page-header .lede{
  margin-top:1rem;max-width:640px;
  font-size:1.08rem;line-height:1.6;color:var(--ink-soft);
}
.breadcrumb{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.68rem;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--gold-deep);margin-bottom:1.1rem;
  display:flex;gap:0.5rem;align-items:center;
}
.breadcrumb a{opacity:0.7;transition:opacity .2s;}
.breadcrumb a:hover{opacity:1;}

/* ============================================================
   HERO (home only)
   ============================================================ */
.hero{
  position:relative;
  padding:11.5rem 0 5rem;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(230,189,82,0.22), transparent 60%),
    linear-gradient(180deg, var(--paper-dim) 0%, var(--paper) 70%);
  overflow:hidden;
  text-align:center;
}
.hero-inner{max-width:760px;margin:0 auto;padding:0 1.6rem;position:relative;z-index:2;}

.emblem-stage{
  position:relative;
  width:190px;height:190px;
  margin:0 auto 1.8rem;
}
.pulse-ring{
  position:absolute;inset:0;
  border-radius:50%;
  border:1px solid var(--gold);
  opacity:0;
  animation:pulse 3.6s ease-out infinite;
}
.pulse-ring.r2{animation-delay:1.2s;}
.pulse-ring.r3{animation-delay:2.4s;}
@keyframes pulse{
  0%{transform:scale(0.62);opacity:0.55;}
  80%{opacity:0;}
  100%{transform:scale(1.05);opacity:0;}
}
.emblem-stage img{
  position:relative;z-index:2;
  width:100%;height:100%;object-fit:contain;
  filter:drop-shadow(0 8px 22px rgba(138,105,28,0.28));
  animation:rise 1s ease-out;
}

.hero h1{
  font-size:clamp(2.5rem, 7.2vw, 4.6rem);
  animation:rise 1.05s ease-out;
}
.hero h1 em{font-style:normal;color:var(--gold-deep);}
.hero-sub{
  margin:1.3rem auto 0;
  max-width:560px;
  font-size:1.15rem;line-height:1.65;
  color:var(--ink-soft);
  animation:rise 1.15s ease-out;
}
.hero-cta{
  margin-top:2.4rem;
  display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;
  animation:rise 1.25s ease-out;
}

@keyframes rise{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}

.btn{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.74rem;letter-spacing:0.14em;text-transform:uppercase;
  padding:0.95rem 1.9rem;
  border:1px solid var(--gold-deep);
  background:transparent;color:var(--ink);
  transition:background .2s,color .2s,transform .2s;
  cursor:pointer;
  display:inline-block;
}
.btn-fill{background:var(--ink);border-color:var(--ink);color:var(--paper);}
.btn-fill:hover{background:var(--gold-deep);border-color:var(--gold-deep);color:var(--white);transform:translateY(-2px);}
.btn-ghost:hover{background:var(--gold-deep);color:var(--white);transform:translateY(-2px);}

/* ---------- transmission ticker ---------- */
.ticker{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:var(--ink);
  overflow:hidden;
  white-space:nowrap;
  padding:0.65rem 0;
}
.ticker-track{
  display:inline-flex;
  gap:2.4rem;
  animation:scroll 32s linear infinite;
}
.ticker-track span{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;
  color:var(--gold-bright);
  display:inline-flex;align-items:center;gap:0.6rem;
}
.ticker-track span::before{content:"◆";color:var(--gold-deep);font-size:0.6rem;}
@keyframes scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ============================================================
   SECTIONS / GENERIC BLOCKS
   ============================================================ */
section{padding:5.5rem 0;}
.section-dim{background:var(--paper-dim);}
.section-head{margin-bottom:2.6rem;max-width:640px;}
.section-head h2{font-size:clamp(1.9rem,3.6vw,2.6rem);margin-top:0.7rem;}
.section-head p{margin-top:0.9rem;color:var(--ink-soft);font-size:1.02rem;line-height:1.6;}
.rule{width:52px;height:2px;background:var(--gold);margin-top:1.3rem;}

.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.6rem;}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.6rem;}
@media (max-width:860px){.grid-3{grid-template-columns:1fr;}.grid-2{grid-template-columns:1fr;}}
@media (max-width:980px){.grid-4{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.grid-4{grid-template-columns:1fr;}}

.card{
  background:var(--white);
  border:1px solid var(--line);
  padding:2rem 1.8rem;
  position:relative;
  transition:transform .25s, box-shadow .25s, border-color .25s;
}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--gold);}
.card .node{margin-bottom:1rem;}
.card h3{font-size:1.25rem;letter-spacing:0.02em;margin-bottom:0.6rem;}
.card p{color:var(--ink-soft);font-size:0.96rem;line-height:1.6;}
.card-link{
  display:inline-flex;align-items:center;gap:0.4rem;
  margin-top:1.1rem;
  font-family:'IBM Plex Mono',monospace;
  font-size:0.68rem;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--gold-deep);
}
a.card{color:inherit;}
a.card:hover .card-link{gap:0.65rem;}
.card-link svg{transition:transform .2s;}
a.card:hover .card-link svg{transform:translateX(3px);}

/* ---------- diagram row (about/overview) ---------- */
.diagram-row{
  display:flex;align-items:center;justify-content:center;gap:0;
  margin:3rem 0;flex-wrap:wrap;
}
.diagram-node{
  text-align:center;
  padding:0 1.4rem;
}
.diagram-node .dot{
  width:54px;height:54px;border-radius:50%;
  border:2px solid var(--gold-deep);
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 0.7rem;
  background:var(--paper);
}
.diagram-node .dot.filled{background:var(--gold-deep);}
.diagram-node .label{
  font-family:'IBM Plex Mono',monospace;font-size:0.66rem;
  letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-soft);
}
.diagram-line{
  width:60px;height:1px;background:var(--line);
  margin-top:-1.6rem;
}
@media (max-width:700px){.diagram-line{display:none;}}

/* ============================================================
   FOOTER
   ============================================================ */
footer{
  border-top:1px solid var(--line);
  padding:3.2rem 0 2.2rem;
  background:var(--paper-dim);
}
.footer-top{
  display:flex;justify-content:space-between;align-items:flex-start;
  flex-wrap:wrap;gap:2.4rem;
  margin-bottom:2.4rem;
}
.footer-brand{display:flex;align-items:center;gap:0.7rem;}
.footer-brand img{height:30px;width:30px;}
.footer-cols{display:flex;gap:3.4rem;flex-wrap:wrap;}
.footer-col .eyebrow{margin-bottom:0.9rem;}
.footer-col a, .footer-col p{
  display:block;
  font-size:0.86rem;color:var(--ink-soft);
  margin-bottom:0.55rem;
  transition:color .2s;
}
.footer-col a:hover{color:var(--gold-deep);}
.footer-bottom{
  border-top:1px solid var(--line);
  padding-top:1.4rem;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:0.8rem;
  font-family:'IBM Plex Mono',monospace;
  font-size:0.68rem;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--ink-soft);
}

/* ============================================================
   INFO / HANDBOOK PAGES
   ============================================================ */
.info-nav-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;margin-top:2.6rem;}
@media (max-width:860px){.info-nav-grid{grid-template-columns:1fr;}}

.tier{margin-bottom:3.6rem;}
.tier-head{
  display:flex;align-items:baseline;gap:0.9rem;
  padding-bottom:0.9rem;
  border-bottom:2px solid var(--gold-deep);
  margin-bottom:1.6rem;
}
.tier-head h2{font-size:1.7rem;}
.tier-head .count{
  font-family:'IBM Plex Mono',monospace;
  font-size:0.72rem;color:var(--ink-soft);letter-spacing:0.1em;
}
.tier.rhs .tier-head{border-color:#9c3b2c;}
.tier.hs .tier-head{border-color:var(--gold-deep);}
.tier.ms .tier-head{border-color:#8a8256;}
.tier.ls .tier-head{border-color:#7a8a6b;}

.rule-item{
  border:1px solid var(--line);
  background:var(--white);
  margin-bottom:1rem;
}
.rule-item summary{
  list-style:none;
  cursor:pointer;
  padding:1.1rem 1.4rem;
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
  font-family:'Big Shoulders Display', sans-serif;
  font-weight:700;
  text-transform:uppercase;
  font-size:1.05rem;
  letter-spacing:0.01em;
}
.rule-item summary::-webkit-details-marker{display:none;}
.rule-item summary::after{
  content:"+";
  font-family:'IBM Plex Mono',monospace;
  color:var(--gold-deep);font-size:1.1rem;flex:none;
}
.rule-item[open] summary::after{content:"–";}
.rule-item .body{
  padding:0 1.4rem 1.4rem;
  display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;
}
@media (max-width:700px){.rule-item .body{grid-template-columns:1fr;}}
.rule-item .body .field .k{
  font-family:'IBM Plex Mono',monospace;font-size:0.66rem;
  letter-spacing:0.14em;text-transform:uppercase;color:var(--gold-deep);
  margin-bottom:0.4rem;
}
.rule-item .body .field .v{font-size:0.95rem;line-height:1.55;color:var(--ink-soft);}

.tier-tag{
  font-family:'IBM Plex Mono',monospace;
  font-size:0.6rem;letter-spacing:0.1em;text-transform:uppercase;
  padding:0.2rem 0.5rem;
  border:1px solid var(--line);
  color:var(--ink-soft);
  flex:none;
}

/* jump nav for handbook */
.jump-nav{
  display:flex;gap:0.7rem;flex-wrap:wrap;
  margin-top:1.6rem;
}
.jump-nav a{
  font-family:'IBM Plex Mono',monospace;
  font-size:0.68rem;letter-spacing:0.1em;text-transform:uppercase;
  padding:0.5rem 0.9rem;
  border:1px solid var(--line);
  color:var(--ink-soft);
  transition:border-color .2s, color .2s;
}
.jump-nav a:hover{border-color:var(--gold-deep);color:var(--gold-deep);}

/* ============================================================
   STAFF PAGE
   ============================================================ */
.staff-tier{margin-bottom:3rem;}
.staff-tier h2{font-size:1.5rem;margin-bottom:0.4rem;}
.staff-tier .sub{color:var(--ink-soft);font-size:0.92rem;margin-bottom:1.6rem;}
.staff-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;}
@media (max-width:920px){.staff-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.staff-grid{grid-template-columns:1fr;}}
.staff-card{
  border:1px dashed var(--line);
  background:var(--white);
  padding:1.5rem 1.2rem;
  text-align:center;
}
.staff-card .avatar{
  width:52px;height:52px;border-radius:50%;
  border:1px solid var(--line);
  margin:0 auto 0.8rem;
  display:flex;align-items:center;justify-content:center;
  color:var(--gold-deep);font-family:'IBM Plex Mono',monospace;font-size:0.7rem;
}
.staff-card .avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
.staff-card .name{font-family:'IBM Plex Mono',monospace;font-size:0.82rem;color:var(--ink-soft);letter-spacing:0.04em;}
.staff-card .role{
  font-family:'Big Shoulders Display',sans-serif;font-weight:700;
  text-transform:uppercase;font-size:1rem;margin-top:0.35rem;
}

/* ============================================================
   GALLERY PAGE
   ============================================================ */
.gallery-feature{
  background:var(--white);
  border:1px solid var(--line);
  padding:3rem;
  text-align:center;
  margin-bottom:2rem;
}
.gallery-feature img{width:220px;height:220px;object-fit:contain;margin:0 auto;}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;}
@media (max-width:860px){.gallery-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:560px){.gallery-grid{grid-template-columns:1fr;}}
.gallery-tile{
  aspect-ratio:1/1;
  background:var(--white);
  border:1px solid var(--line);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:0.6rem;
  padding:2rem;
}
.gallery-tile img{max-height:100%;max-width:100%;object-fit:contain;flex:1;min-height:0;}
.gallery-tile .caption{
  flex:none;
  font-family:'IBM Plex Mono',monospace;font-size:0.64rem;
  letter-spacing:0.06em;text-transform:uppercase;color:var(--ink-soft);
  text-align:center;
}
.gallery-tile.empty{
  border-style:dashed;
  flex-direction:column;gap:0.6rem;
}
.gallery-tile.empty .plus{
  font-family:'Big Shoulders Display',sans-serif;font-size:2rem;color:var(--line);
}
.gallery-tile.empty span{
  font-family:'IBM Plex Mono',monospace;font-size:0.66rem;
  letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-soft);
}

/* ============================================================
   LINKS PAGE
   ============================================================ */
.link-card{
  display:flex;align-items:center;gap:1.4rem;
  background:var(--white);
  border:1px solid var(--line);
  padding:1.8rem;
  transition:transform .25s, box-shadow .25s, border-color .25s;
}
.link-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--gold);}
.link-card .icon{
  flex:none;width:52px;height:52px;
  border:1px solid var(--gold-deep);
  display:flex;align-items:center;justify-content:center;
}
.link-card .icon svg{width:26px;height:26px;stroke:var(--gold-deep);}
.link-card .text h3{font-size:1.2rem;text-transform:uppercase;}
.link-card .text p{color:var(--ink-soft);font-size:0.9rem;margin-top:0.3rem;}
.link-card .go{
  margin-left:auto;flex:none;
  font-family:'IBM Plex Mono',monospace;font-size:0.68rem;
  letter-spacing:0.1em;text-transform:uppercase;color:var(--gold-deep);
}

/* ============================================================
   NATIONS PAGE
   ============================================================ */
.nations-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
  gap:1.4rem;
  margin-top:2.6rem;
}
.nation-card{
  background:var(--white);
  border:1px solid var(--line);
  padding:1.8rem 1.4rem;
  text-align:center;
  transition:transform .25s, box-shadow .25s, border-color .25s;
}
.nation-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--gold);}
.nation-card .emblem{
  width:96px;height:96px;
  margin:0 auto 1.1rem;
  display:flex;align-items:center;justify-content:center;
}
.nation-card .emblem img{max-width:100%;max-height:100%;object-fit:contain;}
.nation-card h3{font-size:1.02rem;letter-spacing:0.01em;line-height:1.25;}
.nation-card .tag{
  display:inline-block;margin-top:0.7rem;
  font-family:'IBM Plex Mono',monospace;font-size:0.6rem;
  letter-spacing:0.12em;text-transform:uppercase;color:var(--gold-deep);
  border:1px solid var(--line);padding:0.2rem 0.5rem;
}
.nations-empty, .nations-error{
  text-align:center;padding:3.5rem 1.5rem;
  border:1px dashed var(--line);
  color:var(--ink-soft);
  font-family:'IBM Plex Mono',monospace;
  font-size:0.78rem;letter-spacing:0.06em;text-transform:uppercase;
}
.nations-loading{
  text-align:center;padding:3.5rem 1.5rem;
  color:var(--ink-soft);
  font-family:'IBM Plex Mono',monospace;
  font-size:0.78rem;letter-spacing:0.1em;text-transform:uppercase;
}

/* ============================================================
   ADMIN DASHBOARD (/nations/admin/)
   ============================================================ */
.admin-panel{
  max-width:560px;margin:0 auto;
  background:var(--white);
  border:1px solid var(--line);
  padding:2.4rem 2.2rem;
}
.admin-panel h2{font-size:1.4rem;margin-bottom:0.5rem;}
.admin-panel .sub{color:var(--ink-soft);font-size:0.92rem;margin-bottom:1.8rem;}
.field-group{margin-bottom:1.3rem;}
.field-group label{
  display:block;
  font-family:'IBM Plex Mono',monospace;
  font-size:0.66rem;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--gold-deep);margin-bottom:0.5rem;
}
.field-group input[type="text"],
.field-group input[type="password"]{
  width:100%;
  padding:0.85rem 1rem;
  border:1px solid var(--line);
  background:var(--paper);
  font-family:'Source Serif 4', serif;
  font-size:0.98rem;color:var(--ink);
}
.field-group input:focus{outline:2px solid var(--gold-deep);outline-offset:1px;}
.field-group .file-drop{
  border:1px dashed var(--line);
  padding:1.6rem;text-align:center;
  cursor:pointer;
  transition:border-color .2s;
  font-family:'IBM Plex Mono',monospace;
  font-size:0.72rem;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--ink-soft);
}
.field-group .file-drop:hover{border-color:var(--gold-deep);color:var(--gold-deep);}
.field-group .file-preview{
  margin-top:1rem;width:80px;height:80px;
  border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;
  margin-left:auto;margin-right:auto;
}
.field-group .file-preview img{max-width:100%;max-height:100%;object-fit:contain;}
.admin-btn{
  width:100%;
  font-family:'IBM Plex Mono', monospace;
  font-size:0.76rem;letter-spacing:0.14em;text-transform:uppercase;
  padding:0.95rem 1.4rem;
  border:1px solid var(--ink);
  background:var(--ink);color:var(--paper);
  cursor:pointer;
  transition:background .2s, color .2s, opacity .2s;
}
.admin-btn:hover{background:var(--gold-deep);border-color:var(--gold-deep);}
.admin-btn:disabled{opacity:0.5;cursor:not-allowed;}
.admin-msg{
  margin-top:1.1rem;padding:0.8rem 1rem;
  font-family:'IBM Plex Mono',monospace;font-size:0.74rem;
  letter-spacing:0.04em;
  border:1px solid var(--line);
  display:none;
}
.admin-msg.show{display:block;}
.admin-msg.ok{border-color:#4a7a3f;color:#2f5a26;background:rgba(74,122,63,0.08);}
.admin-msg.err{border-color:#9c3b2c;color:#9c3b2c;background:rgba(156,59,44,0.08);}
.admin-session{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:1.6rem;
  font-family:'IBM Plex Mono',monospace;font-size:0.68rem;
  letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-soft);
}
.admin-session button{
  background:none;border:none;color:var(--gold-deep);
  font-family:'IBM Plex Mono',monospace;font-size:0.68rem;
  letter-spacing:0.1em;text-transform:uppercase;cursor:pointer;
}
.admin-list{margin-top:2.6rem;}
.admin-list-item{
  display:flex;align-items:center;gap:1rem;
  padding:0.9rem 0;
  border-bottom:1px solid var(--line-soft);
}
.admin-list-item .emblem{
  width:40px;height:40px;flex:none;
  border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;
}
.admin-list-item .emblem img{max-width:100%;max-height:100%;object-fit:contain;}
.admin-list-item .name{flex:1;font-size:0.92rem;}
.admin-list-item .seed-tag{
  font-family:'IBM Plex Mono',monospace;font-size:0.58rem;
  letter-spacing:0.1em;text-transform:uppercase;color:var(--ink-soft);
  border:1px solid var(--line);padding:0.15rem 0.4rem;flex:none;
}
.admin-list-item .del-btn{
  flex:none;background:none;border:1px solid #9c3b2c;color:#9c3b2c;
  font-family:'IBM Plex Mono',monospace;font-size:0.62rem;
  letter-spacing:0.08em;text-transform:uppercase;
  padding:0.35rem 0.6rem;cursor:pointer;
  transition:background .2s, color .2s;
}
.admin-list-item .del-btn:hover{background:#9c3b2c;color:var(--white);}
.admin-list-item .del-btn:disabled{opacity:0.4;cursor:not-allowed;}

/* utility */
.mt-1{margin-top:1rem;}
.mt-2{margin-top:2rem;}
.center{text-align:center;}

/* ============================================================
   STAFF DASHBOARD (/dashboard/)
   ============================================================ */
.tier-block{
  border:1px solid var(--line);
  background:var(--white);
  padding:1.8rem 1.6rem;
  margin-bottom:1.6rem;
}
.tier-block-title{display:flex;gap:0.6rem;align-items:flex-start;margin-bottom:0.7rem;}
.tier-block-title input[type="text"]{
  flex:1;min-width:0;
  padding:0.7rem 0.9rem;
  border:1px solid var(--line);
  background:var(--paper);
  font-family:'Big Shoulders Display',sans-serif;font-weight:700;font-size:1.05rem;
  color:var(--ink);text-transform:uppercase;letter-spacing:0.02em;
}
.tier-block-actions{display:flex;gap:0.35rem;flex:none;flex-wrap:wrap;}
.tier-desc-input{
  width:100%;min-height:52px;resize:vertical;
  padding:0.7rem 0.9rem;margin-bottom:0.9rem;
  border:1px solid var(--line);background:var(--paper);
  font-family:'Source Serif 4',serif;font-size:0.88rem;color:var(--ink-soft);
}
.small-btn{
  background:none;border:1px solid var(--line);color:var(--ink-soft);
  font-family:'IBM Plex Mono',monospace;font-size:0.6rem;
  letter-spacing:0.06em;text-transform:uppercase;
  padding:0.4rem 0.55rem;cursor:pointer;transition:border-color .2s,color .2s;
}
.small-btn:hover{border-color:var(--gold-deep);color:var(--gold-deep);}
.small-btn:disabled{opacity:0.4;cursor:not-allowed;}
.small-btn.del-btn{border-color:#9c3b2c;color:#9c3b2c;}
.small-btn.del-btn:hover{background:#9c3b2c;color:var(--white);}

.member-list{margin-bottom:1rem;}
.member-row{
  display:flex;align-items:center;gap:0.9rem;
  padding:0.7rem 0;
  border-bottom:1px solid var(--line-soft);
}
.member-row:last-child{border-bottom:none;}
.member-row .member-avatar{
  width:44px;height:44px;border-radius:50%;flex:none;
  border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;
  color:var(--gold-deep);font-family:'IBM Plex Mono',monospace;font-size:0.68rem;
  overflow:hidden;background:var(--paper);
}
.member-row .member-avatar img{width:100%;height:100%;object-fit:cover;}
.member-row .member-info{flex:1;min-width:0;}
.member-row .member-name{font-family:'IBM Plex Mono',monospace;font-size:0.8rem;color:var(--ink-soft);}
.member-row .member-role{font-family:'Big Shoulders Display',sans-serif;font-weight:700;text-transform:uppercase;font-size:0.9rem;}
.member-row .member-actions{display:flex;gap:0.35rem;flex:none;}

.add-member-details{border:1px dashed var(--line);}
.add-member-details summary{
  cursor:pointer;padding:0.8rem 1rem;
  font-family:'IBM Plex Mono',monospace;font-size:0.68rem;
  letter-spacing:0.08em;text-transform:uppercase;color:var(--gold-deep);
  list-style:none;
}
.add-member-details summary::-webkit-details-marker{display:none;}
.add-member-details[open] summary{border-bottom:1px dashed var(--line);}
.add-member-form-inner{padding:1.4rem 1.2rem;}
.add-member-form-inner .field-group{margin-bottom:1rem;}
.add-member-form-inner .admin-btn{width:auto;padding:0.75rem 1.4rem;}

.dashboard-tier-empty{margin-bottom:1.6rem;}
