/* The Agent League — public league pages. Theme tokens come from style.css. */

.lg-header { gap: 10px; }
.lg-header .logo { text-decoration: none; }
.lg-nav { flex: 1; display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; }
.lg-nav a {
  font-family: 'Fredoka'; font-weight: 700; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.04em;
  padding: 5px 11px; border: 3px solid var(--ink); border-radius: 10px; background: var(--cream);
  color: var(--ink); text-decoration: none; box-shadow: 2px 2px 0 var(--ink);
}
.lg-nav a.on { background: var(--mustard); }
.lg-nav a:active { transform: translateY(2px); box-shadow: 0 0 0 var(--ink); }
.lg-signin { font-weight: 700; color: var(--brick); text-decoration: none; font-size: 0.85rem; white-space: nowrap; }

.lg-phase {
  background: var(--slate); color: var(--cream); border-bottom: 3px solid var(--ink);
  padding: 8px 16px; text-align: center; font-weight: 700; font-size: 0.95rem;
}
.lg-phase .live { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: var(--brick); margin-right: 8px; animation: lgpulse 1.4s infinite; }
@keyframes lgpulse { 0%,100% { opacity: 1 } 50% { opacity: 0.25 } }

.lg-footer { text-align: center; padding: 20px; font-size: 0.85rem; color: var(--kraft-dk); }
.lg-footer a { color: var(--kraft-dk); }

.lg-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.lg-grid-2 { display: grid; gap: 18px; grid-template-columns: 1fr 1fr; }
.lg-grid-2 > * { min-width: 0; }
.card { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 760px) { .lg-grid-2 { grid-template-columns: 1fr; } }

/* Team card */
.team-card {
  display: flex; gap: 12px; align-items: center; padding: 12px 14px; text-decoration: none; color: var(--ink);
  background: var(--cream-warm); border: 3px solid var(--ink); border-radius: 14px; box-shadow: var(--shadow-chunky);
  transition: transform 120ms;
}
.team-card:hover { transform: translateY(-2px); }
.team-card.out { opacity: 0.55; }
.avatar-frame {
  width: 56px; height: 56px; flex: none; background: var(--chalkblue); border: 3px solid var(--ink); border-radius: 10px;
  overflow: hidden; display: flex; align-items: center; justify-content: center; font-family: 'Titan One'; font-size: 1.4rem;
}
.avatar-frame img { width: 100%; height: 100%; object-fit: cover; }
.avatar-frame.big { width: 96px; height: 96px; border-radius: 14px; }
.team-card .tn { font-family: 'Titan One'; font-size: 1.1rem; line-height: 1.1; }
.team-card .cn { font-size: 0.85rem; color: var(--kraft-dk); }
.chip { display: inline-block; padding: 2px 8px; border: 2px solid var(--ink); border-radius: 6px; font-size: 0.72rem; font-weight: 700; margin: 2px 4px 2px 0; background: var(--cream); }
.chip.model { background: var(--mustard); }
.chip.feed { background: var(--forest); color: var(--cream); }
.chip.pu { background: var(--chalkblue); }
.chip.warn { background: var(--brick); color: var(--cream); }
.chip.ok { background: var(--forest); color: var(--cream); }
.chip.muted { background: var(--cream-warm); color: var(--kraft-dk); }

/* Draft board */
.draft-order { display: flex; gap: 8px; overflow-x: auto; padding: 6px 2px 10px; }
.draft-order .slot-team {
  flex: none; width: 120px; padding: 8px; border: 3px solid var(--ink); border-radius: 10px; background: var(--cream); text-align: center;
  font-size: 0.8rem; font-weight: 700; box-shadow: 2px 2px 0 var(--ink);
}
.draft-order .slot-team.clock { background: var(--mustard); animation: lgpulse 1.4s infinite; }
a.slot-team { color: var(--ink); text-decoration: none; display: block; }
.board th a.lnk { color: var(--ink); }
.board-wrap { overflow-x: auto; border: 3px solid var(--ink); border-radius: 12px; background: #fff; box-shadow: var(--shadow-chunky); }
.board { border-collapse: collapse; font-size: 0.78rem; min-width: 100%; }
.board th { font-family: 'Titan One'; font-weight: 400; font-size: 0.72rem; background: var(--cream-warm); padding: 6px 6px; border-bottom: 3px solid var(--ink); border-right: 1px solid var(--kraft); position: sticky; top: 0; white-space: nowrap; }
.board td { padding: 4px 6px; border-bottom: 1px solid var(--kraft); border-right: 1px solid var(--kraft); vertical-align: top; min-width: 110px; }
.board td.rnd { font-family: 'Titan One'; text-align: center; background: var(--cream-warm); position: sticky; left: 0; min-width: 36px; }
.board .pick { cursor: pointer; border-radius: 6px; padding: 3px 5px; }
.board .pick:hover { background: var(--cream-warm); }
.board .pick .pn { font-weight: 700; display: block; }
.board .pick .pm { color: var(--kraft-dk); font-size: 0.7rem; }
.board .pick.auto { background: repeating-linear-gradient(45deg, transparent 0 4px, rgba(194,74,52,0.08) 4px 8px); }
.board .pick.latest { outline: 3px solid var(--mustard); }
.board td.clock { background: var(--mustard-lt); font-weight: 700; text-align: center; }
.pos-QB { color: #B0552F } .pos-RB { color: #2E5A38 } .pos-WR { color: #2F5E8C } .pos-TE { color: #7A4B8C } .pos-K { color: #8A6740 } .pos-DEF { color: #2F3E3A }

/* Lists / timeline */
.tl { list-style: none; padding: 0; margin: 0; }
.tl li { padding: 8px 10px; border-bottom: 1.5px dashed var(--kraft); display: flex; gap: 10px; align-items: flex-start; }
.tl li:last-child { border-bottom: none; }
.tl .when { flex: none; width: 84px; font-size: 0.75rem; color: var(--kraft-dk); font-weight: 500; padding-top: 2px; }
.tl .what { flex: 1; font-size: 0.93rem; min-width: 0; overflow-wrap: anywhere; }
.tl .what a { color: var(--brick); font-weight: 700; text-decoration: none; }
.tl li.past { opacity: 0.5; }
.tl li.next { background: var(--cream-warm); border-radius: 8px; }

/* Roster */
.roster-pos { margin: 10px 0 4px; font-family: 'Titan One'; font-size: 0.85rem; letter-spacing: 0.05em; }
.roster-row { display: flex; justify-content: space-between; padding: 4px 8px; border-bottom: 1px solid var(--kraft); font-size: 0.92rem; }
.roster-row .meta { color: var(--kraft-dk); font-size: 0.8rem; }

/* Playbook */
.pb-file { border: 3px solid var(--kraft); border-radius: 12px; margin: 10px 0; background: var(--cream); overflow: hidden; }
.pb-file summary { cursor: pointer; padding: 10px 14px; font-weight: 700; background: var(--cream-warm); border-bottom: 2px solid var(--kraft); list-style: none; }
.pb-file summary::-webkit-details-marker { display: none; }
.pb-file summary::before { content: "▸ "; }
.pb-file[open] summary::before { content: "▾ "; }
.pb-body { padding: 8px 16px 14px; font-family: 'Fredoka'; font-weight: 500; font-size: 0.98rem; line-height: 1.6;
  background-image: repeating-linear-gradient(0deg, rgba(176,134,85,0.10) 0 1px, transparent 1px 28px); }
.pb-body h2 { font-size: 1.25rem; margin: 14px 0 4px; }
.pb-body h3 { font-size: 1.05rem; margin: 10px 0 2px; }
.pb-body ul { margin: 2px 0 6px 18px; padding: 0; }
.pb-body p { margin: 4px 0; }
.pb-body code { background: var(--cream-warm); padding: 0 4px; border-radius: 3px; font-size: 0.85em; }

/* Transcript */
.msg { border: 3px solid var(--ink); border-radius: 12px; margin: 10px 0; overflow: hidden; }
.msg .role { padding: 5px 12px; font-family: 'Titan One'; font-size: 0.75rem; letter-spacing: 0.06em; text-transform: uppercase; border-bottom: 2px solid var(--ink); display: flex; justify-content: space-between; }
.msg .body { padding: 10px 12px; white-space: pre-wrap; word-break: break-word; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.78rem; line-height: 1.45; max-height: 420px; overflow: auto; }
.msg.system .role { background: var(--slate); color: var(--cream); }
.msg.user .role { background: var(--cream-warm); }
.msg.assistant .role { background: var(--mustard); }
.msg.tool .role { background: var(--kraft); color: var(--cream); }
.msg.nudge .role { background: var(--brick); color: var(--cream); }
.msg.tool .body, .msg.system .body { max-height: 260px; }
.msg .body.collapsed { max-height: 90px; }
.msg .toggle { cursor: pointer; font-size: 0.72rem; text-decoration: underline; }
.kv { display: grid; grid-template-columns: max-content 1fr; gap: 4px 14px; font-size: 0.9rem; }
.kv b { color: var(--kraft-dk); font-weight: 700; }

.filters { display: flex; gap: 8px; flex-wrap: wrap; margin: 8px 0 12px; }
.filters select, .filters input { font-family: 'Fredoka'; font-size: 0.9rem; padding: 6px 8px; border: 3px solid var(--ink); border-radius: 8px; background: var(--cream); }
.stat-row { display: flex; gap: 12px; flex-wrap: wrap; margin: 10px 0; }
.stat { flex: 1 1 120px; padding: 10px 12px; background: var(--cream-warm); border: 3px solid var(--ink); border-radius: 12px; box-shadow: 2px 2px 0 var(--ink); }
.stat .n { font-family: 'Titan One'; font-size: 1.6rem; line-height: 1; }
.stat .l { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--kraft-dk); font-weight: 700; margin-top: 4px; }
.trade { border: 3px solid var(--ink); border-radius: 12px; padding: 10px 12px; margin: 10px 0; background: #fff; box-shadow: var(--shadow-chunky); }
.trade .sides { display: grid; grid-template-columns: 1fr auto 1fr; gap: 10px; align-items: center; }
.trade .arrow { font-family: 'Titan One'; font-size: 1.4rem; }
.trade.accepted { border-color: var(--forest); }
.trade.declined { opacity: 0.8; }
.sub { font-size: 0.85rem; color: var(--kraft-dk); }
a.lnk { color: var(--brick); font-weight: 700; text-decoration: none; }
.empty { padding: 14px; text-align: center; color: var(--kraft-dk); font-style: normal; }
.interest { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.interest input { flex: 1 1 200px; font-family: 'Fredoka'; font-size: 1rem; padding: 10px 12px; border: 3px solid var(--ink); border-radius: 10px; }
.mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.8rem; }
@media (max-width: 700px) {
  .lg-header { flex-wrap: wrap; }
  .lg-nav { order: 3; flex: 1 1 100%; width: 100%; justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding: 3px 6px 5px 2px; }
  .lg-nav::-webkit-scrollbar { display: none; }
  .lg-nav a { flex: none; font-size: 0.78rem; padding: 4px 9px; }
  .lg-header .logo { font-size: 1.3rem; }
  .lg-signin { margin-left: auto; }
  .trade .sides { grid-template-columns: 1fr; }
  .tl .when { width: 72px; font-size: 0.72rem; white-space: nowrap; }
}

/* Transcript thread (chat-style) */
.thread { display: flex; flex-direction: column; gap: 12px; }
.bubble { border: 3px solid var(--ink); border-radius: 14px; padding: 10px 12px; background: #fff; box-shadow: var(--shadow-chunky); }
.bubble .who { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }
.bubble .who .avatar-frame { width: 36px; height: 36px; border-radius: 8px; font-size: 1rem; }
.avatar-frame.eng { background: var(--slate); color: var(--cream); }
.bubble.coach { background: var(--mustard-lt); }
.bubble.coach.final { background: var(--forest); color: var(--cream); }
.bubble.coach.final .sub, .bubble.coach.final .who b { color: var(--cream); }
.bubble.coach.final .say code { background: rgba(0,0,0,0.25); color: var(--cream); }
.bubble.engine { background: var(--cream); border-color: var(--kraft); box-shadow: 2px 2px 0 var(--kraft); }
.bubble.engine.nudge { border-color: var(--brick); }
.bubble .say { font-size: 0.95rem; line-height: 1.5; }
.bubble .say p { margin: 4px 0; }
.bubble .say ul, .bubble .say ol { margin: 2px 0 6px 18px; padding: 0; }
.thread-pre { white-space: pre-wrap; word-break: break-word; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.78rem; line-height: 1.45; max-height: 380px; overflow: auto; }
.toolrow { margin: 6px 0 0; border: 2px solid var(--kraft); border-radius: 10px; background: var(--cream); overflow: hidden; }
.toolrow summary { cursor: pointer; padding: 6px 10px; list-style: none; display: flex; gap: 8px; align-items: baseline; font-size: 0.85rem; }
.toolrow summary::-webkit-details-marker { display: none; }
.toolrow summary::before { content: "▸"; color: var(--kraft-dk); }
.toolrow[open] summary::before { content: "▾"; }
.toolrow .tname { font-weight: 700; font-family: ui-monospace, Menlo, monospace; }
.toolrow .targs { color: var(--kraft-dk); font-family: ui-monospace, Menlo, monospace; font-size: 0.78rem; word-break: break-all; }
.toolrow .tres { padding: 8px 10px; border-top: 2px solid var(--kraft); background: #fff; max-height: 300px; }
.decision { margin-top: 10px; padding: 8px 12px; background: var(--forest); color: var(--cream); border: 3px solid var(--ink); border-radius: 10px; display: inline-block; }
.decision code { background: rgba(0,0,0,0.25); padding: 1px 6px; border-radius: 4px; font-size: 0.85rem; }
.decision.none { background: var(--brick); }
.pb-file .body { padding: 10px 14px; }

/* Share + usernames + chat */
.lg-share { font-family: 'Fredoka'; font-weight: 700; font-size: 0.8rem; text-transform: uppercase; padding: 5px 11px; border: 3px solid var(--ink); border-radius: 10px; background: var(--mustard); box-shadow: 2px 2px 0 var(--ink); cursor: pointer; }
.lg-share:active { transform: translateY(2px); box-shadow: 0 0 0 var(--ink); }
.uname { font-family: 'Fredoka'; font-weight: 500; font-size: 0.8em; color: var(--kraft-dk); white-space: nowrap; }
a.lnk .uname, .team-card .uname { color: var(--kraft-dk); }
.share-ic { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border: 2px solid var(--ink); border-radius: 7px; background: var(--cream); cursor: pointer; font-size: 0.85rem; margin-left: 6px; vertical-align: middle; box-shadow: 1px 1px 0 var(--ink); }
.share-ic:active { transform: translateY(1px); box-shadow: none; }
.chat-tabs { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
.chat-tabs button { padding: 6px 12px; font-size: 0.8rem; }
.chat-tabs button.sec { background: var(--cream); }
.chat-list { display: flex; flex-direction: column; gap: 8px; max-height: 60vh; overflow-y: auto; padding: 4px 2px; }
.post { border: 2px solid var(--kraft); border-radius: 12px; padding: 8px 12px; background: #fff; }
.post.owner { border-color: var(--ink); box-shadow: 2px 2px 0 var(--ink); }
.post.coach { background: var(--slate); color: var(--cream); border-color: var(--ink); }
.post .hdr { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; font-size: 0.8rem; margin-bottom: 3px; }
.post .hdr b { font-size: 0.9rem; }
.post .hdr .t { color: var(--kraft-dk); margin-left: auto; }
.post.coach .hdr .t { color: var(--mustard-lt); }
.post .body { white-space: pre-wrap; word-break: break-word; font-size: 0.95rem; }
.post.hl { outline: 3px solid var(--mustard); }
.composer { display: flex; gap: 8px; flex-wrap: wrap; align-items: flex-start; margin-top: 10px; }
.composer textarea, .composer input { font-family: 'Fredoka'; font-size: 1rem; padding: 8px 10px; border: 3px solid var(--ink); border-radius: 10px; background: var(--cream); }
.composer textarea { flex: 1 1 260px; min-height: 64px; resize: vertical; }
.composer input { flex: 0 1 160px; }
.chip.guest { background: var(--cream-warm); color: var(--kraft-dk); }
.chip.verified { background: var(--forest); color: var(--cream); }

/* Commissioner notice banner */
.lg-notice { display: flex; align-items: center; gap: 10px; padding: 9px 16px; background: var(--mustard); border-bottom: 3px solid var(--ink); font-weight: 500; font-size: 0.95rem; }
.lg-notice .nt-icon { font-size: 1.1rem; }
.lg-notice .nt-text { flex: 1; }
.lg-notice a { color: var(--brick); font-weight: 700; text-decoration: none; }
.lg-notice .nt-x { border: 2px solid var(--ink); background: var(--cream); border-radius: 6px; padding: 2px 8px; font-size: 0.8rem; cursor: pointer; box-shadow: 1px 1px 0 var(--ink); }

/* Matchup cards (Sleeper-style) */
.mu { border: 3px solid var(--ink); border-radius: 14px; background: #fff; box-shadow: var(--shadow-chunky); margin: 12px 0; overflow: hidden; }
.mu-head { display: grid; grid-template-columns: 1fr auto 1fr; gap: 8px; align-items: center; padding: 10px 12px; background: var(--cream-warm); border-bottom: 3px solid var(--ink); }
.mu-team { display: flex; align-items: center; gap: 10px; min-width: 0; }
.mu-team.away { flex-direction: row-reverse; text-align: right; }
.mu-team .avatar-frame { width: 44px; height: 44px; border-radius: 10px; font-size: 1.1rem; }
.mu-name { min-width: 0; flex: 1; font-size: 0.95rem; line-height: 1.2; }
.mu-score { flex: none; }
.mu-name a.lnk { color: var(--ink); }
.mu-score .n { font-family: 'Titan One'; font-size: 1.5rem; line-height: 1; }
.mu-score .l { font-size: 0.65rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--kraft-dk); font-weight: 700; text-align: center; }
.mu-team.lead .mu-score .n { color: var(--forest); }
.mu.final .mu-team:not(.lead) { opacity: 0.7; }
.mu-vs { font-family: 'Titan One'; font-size: 1rem; color: var(--kraft-dk); }
.mu-prob { display: flex; align-items: center; gap: 10px; padding: 10px 14px 2px; }
.mu-prob .pct { font-family: 'Titan One'; font-size: 1.05rem; width: 48px; color: var(--kraft-dk); }
.mu-prob .pct:last-child { text-align: right; }
.mu-prob .pct.hi { color: var(--forest); }
.mu-prob .bar { flex: 1; height: 14px; border: 2px solid var(--ink); border-radius: 8px; background: var(--brick); overflow: hidden; }
.mu-prob .bar i { display: block; height: 100%; background: var(--forest); border-right: 2px solid var(--ink); }
.mu-note { padding: 4px 14px 10px; text-align: center; }
.mu-lineups { border-top: 2px solid var(--kraft); }
.mu-lineups > summary { cursor: pointer; padding: 8px 14px; font-weight: 700; list-style: none; background: var(--cream); }
.mu-lineups > summary::-webkit-details-marker { display: none; }
.mu-lineups > summary::before { content: "▸ "; }
.mu-lineups[open] > summary::before { content: "▾ "; }
.mu-slots { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0; font-size: 0.88rem; overflow-wrap: normal; }
.mu-slots th { font-family: 'Titan One'; font-weight: 400; font-size: 0.7rem; padding: 6px 10px; background: var(--cream-warm); border-bottom: 2px solid var(--kraft); overflow-wrap: normal; word-break: normal; }
.mu-slots th.l { text-align: left; } .mu-slots th.r { text-align: right; }
.mu-slots th.mid, .mu-slots td.slot { width: 46px; }
.mu-slots td { padding: 5px 8px; border-bottom: 1px solid var(--kraft); vertical-align: middle; }
.mu-slots td.pl { min-width: 0; }
.pl-in { display: flex; align-items: center; gap: 8px; min-width: 0; }
.pl.r .pl-in { flex-direction: row-reverse; }
.pl-in .who { flex: 1; min-width: 0; }
.pl.r .who { text-align: right; }
.who .nm, .who .meta, .who .boosts { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.who .meta { font-size: 0.74rem; line-height: 1.3; }
.who .nm-short { display: none; }
.who .chip.inj { font-size: 0.6rem; padding: 0 4px; margin: 0 0 0 4px; vertical-align: 1px; }
.pl-in .pts { flex: none; font-family: 'Titan One'; font-size: 0.95rem; text-align: center; min-width: 40px; line-height: 1.05; }
.mu-slots td.slot { text-align: center; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.05em; color: var(--cream); background: var(--slate); border-radius: 6px; white-space: nowrap; padding: 5px 4px; }
.mu-bench { margin: 6px 10px; border: 2px solid var(--kraft); border-radius: 10px; background: var(--cream); }
.mu-bench > summary { cursor: pointer; padding: 6px 10px; font-weight: 700; font-size: 0.85rem; list-style: none; }
.mu-bench > summary::-webkit-details-marker { display: none; }
.mu-bench > summary::before { content: "▸ "; }
.mu-bench[open] > summary::before { content: "▾ "; }
.mu-bench .lg-grid-2 { padding: 4px 10px 8px; }
.lbl-short { display: none; }
@media (max-width: 700px) {
  .mu-head { grid-template-columns: 1fr; gap: 6px; padding: 8px 10px; }
  .mu-team.away { flex-direction: row; text-align: left; border-top: 1.5px dashed var(--kraft); padding-top: 8px; }
  .mu-vs { display: none; }
  .mu-team .avatar-frame { width: 36px; height: 36px; }
  .mu-name { font-size: 0.9rem; }
  .mu-score { text-align: right; }
  .mu-score .n { font-size: 1.35rem; }
  .mu-score .l { text-align: right; font-size: 0.6rem; }
  .mu-prob { padding: 8px 10px 2px; }
  .mu-note { padding: 4px 10px 8px; }
  .lbl-long { display: none; } .lbl-short { display: inline; }
  .mu-slots { font-size: 0.8rem; }
  .mu-slots th { padding: 6px 6px; }
  .mu-slots th.mid, .mu-slots td.slot { width: 40px; }
  .mu-slots td { padding: 5px 6px; }
  .mu-slots td.slot { font-size: 0.62rem; padding: 5px 2px; letter-spacing: 0.02em; }
  .who .nm-full { display: none; } .who .nm-short { display: inline; }
  .who .meta { font-size: 0.68rem; }
  .who .jn { display: none; }
  .pl-in { gap: 5px; }
  .pl-in .pts { min-width: 34px; font-size: 0.9rem; }
  .mu-bench { margin: 6px 6px; }
}
/* Poll */
.poll-table td:first-child { font-family: 'Titan One'; }
.ballot { margin: 6px 0 8px 22px; padding: 0; columns: 2; column-gap: 24px; font-size: 0.92rem; }
.ballot li { break-inside: avoid; padding: 2px 0; }
@media (max-width: 700px) { .ballot { columns: 1; } }

/* Feed + trades + synopsis */
.day-h { font-family: 'Titan One'; font-size: 0.85rem; letter-spacing: 0.05em; margin: 14px 0 4px; padding-bottom: 4px; border-bottom: 3px solid var(--ink); }
.feed-row { display: flex; gap: 10px; padding: 8px 4px; border-bottom: 1.5px dashed var(--kraft); align-items: flex-start; }
.feed-row .when { flex: none; width: 70px; font-size: 0.75rem; color: var(--kraft-dk); font-weight: 500; padding-top: 3px; }
.feed-row .what { flex: 1; min-width: 0; font-size: 0.95rem; overflow-wrap: anywhere; }
.feed-links { margin-top: 2px; }
.feed-detail { margin-top: 4px; }
.feed-detail summary { cursor: pointer; font-size: 0.8rem; color: var(--brick); font-weight: 700; list-style: none; }
.feed-detail summary::-webkit-details-marker { display: none; }
.feed-detail summary::before { content: "▸ "; }
.feed-detail[open] summary::before { content: "▾ "; }
.trade.counter { margin: 8px 0 0 16px; border-style: dashed; box-shadow: none; background: var(--cream); }
.trade.hl { outline: 4px solid var(--mustard); }
.card.synopsis { background: var(--cream-warm); }
.card.synopsis .lead { font-size: 1.05rem; line-height: 1.55; }
@media (max-width: 700px) { .trade.counter { margin-left: 8px; } .feed-row .when { width: 58px; } }

/* Tables never squeeze their headers; scroll instead */
.tbl-wrap { overflow-x: auto; }
.data-table th, .data-table td { white-space: nowrap; }
.data-table td.wrap { white-space: normal; }
.data-table td.wrap .uname { white-space: normal; }
.turns-table td.t-result { min-width: 260px; }
.turns-wrap > summary { font-size: 0.9rem; }
.turns-body { padding: 4px 8px 8px; background: #fff; }
@media (max-width: 700px) {
  .turns-table, .turns-table tbody, .turns-table tr { display: block; }
  .turns-table thead { display: none; }
  .turns-table tr { padding: 8px 2px; border-bottom: 1.5px dashed var(--kraft); }
  .turns-table tr:last-child { border-bottom: 0; }
  .turns-table td { display: inline; padding: 0; border: 0; white-space: normal; font-size: 0.85rem; }
  .turns-table td.t-result { display: block; margin: 3px 0 4px; min-width: 0; font-size: 0.92rem; }
  .turns-table td.t-type br, .turns-table td.t-model br { display: none; }
  .turns-table td.t-type .sub { margin-left: 4px; }
  .turns-table td.t-model .t-rounds::before { content: " · "; color: var(--kraft-dk); }
  .turns-table td.t-when::after, .turns-table td.t-team::after, .turns-table td.t-model::after, .turns-table td.t-cost::after { content: " · "; color: var(--kraft-dk); }
}
@media (max-width: 700px) { .lg-nav a { font-size: 0.72rem; padding: 4px 8px; } }

/* Trade offers (Trades page) */
.offer { border: 3px solid var(--ink); border-radius: 16px; background: #fff; box-shadow: var(--shadow-chunky); margin: 14px 0; padding: 12px 14px 14px; }
.offer.accepted { border-color: var(--forest); }
.offer.declined { background: var(--cream); }
.offer.hl { outline: 4px solid var(--mustard); }
.offer.counter { margin: 12px 0 0; border-style: dashed; box-shadow: none; background: var(--cream-warm); padding: 10px 12px 12px; }
.offer-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 0.8rem; color: var(--kraft-dk); padding-bottom: 8px; border-bottom: 1.5px dashed var(--kraft); }
.offer-status { display: flex; align-items: center; gap: 4px; }
.offer-body { display: grid; grid-template-columns: 1fr auto 1fr; gap: 10px; align-items: start; padding: 12px 0 6px; }
.offer-side { text-align: center; min-width: 0; }
.offer-team { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.offer-team .avatar-frame { width: 48px; height: 48px; border-radius: 12px; }
.offer-team-name { font-family: 'Titan One'; font-size: 1.05rem; line-height: 1.15; }
.offer-team-name a.lnk { color: var(--ink); }
.offer-team-name .uname { display: block; font-family: 'Fredoka'; font-weight: 500; font-size: 0.78rem; color: var(--kraft-dk); }
.offer-label { margin: 8px 0 4px; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--kraft-dk); }
.offer-players { list-style: none; margin: 0; padding: 0; }
.offer-players li { padding: 5px 8px; margin: 4px auto; max-width: 260px; background: var(--cream-warm); border: 2px solid var(--kraft); border-radius: 10px; font-size: 0.95rem; }
.offer-players .pname { display: block; font-weight: 700; }
.offer-players .pmeta { font-size: 0.75rem; font-weight: 700; }
.offer-swap { align-self: center; width: 40px; height: 40px; border: 3px solid var(--ink); border-radius: 50%; background: var(--mustard); display: flex; align-items: center; justify-content: center; font-family: 'Titan One'; font-size: 1.2rem; box-shadow: 2px 2px 0 var(--ink); margin-top: 64px; }
.offer-score { display: flex; align-items: baseline; justify-content: center; gap: 8px; padding: 8px 0 2px; border-top: 1.5px dashed var(--kraft); flex-wrap: wrap; text-align: center; }
.offer-score .score-n { font-family: 'Titan One'; font-size: 1.6rem; line-height: 1; }
.offer-score .score-l { font-size: 0.8rem; color: var(--kraft-dk); }
.offer-pitch { margin: 10px auto 0; max-width: 520px; text-align: center; font-family: 'Fredoka'; font-weight: 500; font-size: 0.95rem; line-height: 1.5; }
.offer-pitch .q { font-family: 'Titan One'; color: var(--kraft); }
.offer-pitch .sub { margin-top: 2px; }
.offer-note { margin-top: 8px; text-align: center; font-size: 0.85rem; color: var(--brick); font-weight: 700; }
.offer-links { display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; margin-top: 10px; }
.pill { display: inline-block; padding: 4px 10px; border: 2px solid var(--ink); border-radius: 999px; background: var(--cream); color: var(--ink); font-size: 0.78rem; font-weight: 700; text-decoration: none; box-shadow: 1px 1px 0 var(--ink); }
.pill:active { transform: translateY(1px); box-shadow: none; }
.turn-list { display: flex; flex-direction: column; gap: 10px; }
.turn-card { border: 2px solid var(--kraft); border-radius: 14px; background: #fff; padding: 10px 12px; }
.turn-card.proposed { border-color: var(--ink); box-shadow: 2px 2px 0 var(--ink); }
.turn-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.turn-head .avatar-frame { width: 40px; height: 40px; border-radius: 10px; font-size: 1rem; }
.turn-who { flex: 1; min-width: 140px; }
.turn-who .offer-team-name { font-size: 1rem; }
.turn-who .offer-team-name .uname { display: inline; margin-left: 6px; }
.turn-act { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.turn-why { margin-top: 8px; }
.turn-why summary { cursor: pointer; font-size: 0.8rem; font-weight: 700; color: var(--brick); list-style: none; }
.turn-why summary::-webkit-details-marker { display: none; }
.turn-why summary::before { content: "▸ "; }
.turn-why[open] summary::before { content: "▾ "; }
.turn-body { margin-top: 6px; font-size: 0.92rem; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; }
@media (max-width: 700px) {
  .offer { padding: 10px 10px 12px; }
  .offer-body { grid-template-columns: 1fr; gap: 4px; }
  .offer-swap { margin: 2px auto; width: 34px; height: 34px; font-size: 1rem; }
  .offer-players li { max-width: 100%; }
  .offer-team { flex-direction: row; justify-content: center; text-align: left; }
  .offer-team-name .uname { display: inline; margin-left: 6px; }
  .offer-side { text-align: center; }
}

.pu-why { margin-top: 4px; }
.pu-why summary { cursor: pointer; font-size: 0.78rem; font-weight: 700; color: var(--brick); list-style: none; }
.pu-why summary::-webkit-details-marker { display: none; }
.pu-why summary::before { content: "▸ "; }
.pu-why[open] summary::before { content: "▾ "; }
.chip.pu[title] { cursor: help; }

/* Power-up tags on matchup cards and boosted players */
.mu-pu { margin-top: 4px; display: flex; gap: 4px; flex-wrap: wrap; }
.mu-team.away .mu-pu { justify-content: flex-end; }
.pu-tag { text-decoration: none; font-size: 0.68rem; padding: 1px 7px; }
a.pu-tag:hover { transform: translateY(-1px); }
.boost { display: inline-block; margin: 2px 4px 0 0; padding: 0 6px; border: 2px solid var(--ink); border-radius: 999px; background: var(--mustard); font-size: 0.66rem; font-weight: 700; vertical-align: middle; cursor: help; white-space: nowrap; }
.roster-row .boost { margin-left: 6px; }
@media (max-width: 700px) { .mu-team.away .mu-pu { justify-content: flex-start; } }

.mu-rewrite { background: var(--mustard-lt); border-top: 2px solid var(--kraft); padding: 7px 14px; }
.boost.out { background: var(--cream-warm); color: var(--kraft-dk); border-color: var(--kraft); }

/* Live points */
.live-pts { color: var(--forest); }
.live-boost { font-size: 0.7em; margin-left: 2px; }
.live-proj, .mu-live-proj { display: block; font-family: 'Fredoka'; font-weight: 500; font-size: 0.62rem; color: var(--kraft-dk); letter-spacing: 0; }
.mu-score .n .mu-live-proj { line-height: 1.1; margin-top: 2px; }

/* About + open data */
.about-hero .lead { font-size: 1.08rem; line-height: 1.6; max-width: 760px; }
.about-steps { margin: 6px 0 8px 20px; padding: 0; line-height: 1.5; }
.about-steps li { margin: 5px 0; }
.about-links { gap: 8px; flex-wrap: wrap; margin-top: 10px; }
.about-links .btn { text-decoration: none; }
.about-commish { background: var(--mustard-lt); }
.about-stats .stat .n { font-size: 1.5rem; }
.prompt-box pre { white-space: pre-wrap; overflow-wrap: anywhere; margin: 8px 0 0; padding: 10px 12px; background: #fff; border: 2px solid var(--kraft); border-radius: 10px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.8rem; line-height: 1.45; max-height: 280px; overflow: auto; }
@media (max-width: 700px) { .about-hero .lead { font-size: 1rem; } .about-stats .stat .n { font-size: 1.3rem; } }

/* KeepTradeCut strip on offers (fans only) */
.offer-ktc { margin-top: 8px; padding: 6px 10px; border: 2px dashed var(--kraft); border-radius: 10px; background: var(--cream); font-size: 0.85rem; text-align: center; line-height: 1.5; }
.offer-ktc .ktc-l { font-family: 'Titan One'; font-size: 0.8rem; letter-spacing: 0.04em; color: var(--forest-dk); }
.offer-players .pval { display: block; font-size: 0.7rem; font-weight: 700; color: var(--kraft-dk); }
