/* FFO PFO 5.9.4 · Midnight / field-green / warm-gold FFO visual system.
   Compact mobile usability, without third-party logos, assets or copied UI. */
:root{--ffo594-ink:#0c1625;--ffo594-panel:#152639;--ffo594-line:#2a4156;--ffo594-copper:#ffc66f;--ffo594-field:#66dcb8;--ffo594-soft:#a6bbcf}
#ffo594-dock,#ffo594-backdrop{display:none}
#nav{scrollbar-width:none}
#nav::-webkit-scrollbar{display:none}
#nav button{transition:background-color .12s,border-color .12s,color .12s}
#nav button:focus-visible,.ffo594-dock-btn:focus-visible{outline:2px solid var(--ffo594-field);outline-offset:2px}
/* Conservative density upgrade that keeps the existing source/evidence and admin pages. */
#roster .card,#market .card,#championship .card{border-radius:12px}
#pfo59-team-hub .pfo59-team-tabs button,#pfo59-market .pfo59-market-tabs button{border-radius:7px}
#pfo59-team-hub .pfo59-team-heading{margin-bottom:7px}
#pfo59-team-hub .pfo59-team-heading h2{font-size:17px;letter-spacing:-.02em}
#pfo59-team-hub .pfo59-team-tabs{margin-bottom:10px;padding-bottom:3px}
#pfo59-team-hub .pfo59-team-tabs button{min-height:36px}
#pfo59-team-hub #actual-lineup td{padding:5px 5px!important;line-height:1.25}
#pfo59-team-hub #actual-lineup tr{height:30px}
#pfo59-team-hub .roster-details{margin-top:8px;padding-top:8px}
#pfo59-market .pfo59-market-tabs button{min-height:37px}
#pfo59-market .pfo59-compact-row{min-height:41px;padding:7px 5px;gap:5px}
#pfo59-market .pfo59-identity b{font-size:11px}
#pfo59-market .pfo59-identity small{font-size:9px}
#pfo59-market .pfo59-row-signal{padding:4px 8px;font-size:9px}
#pfo59-trade-board .pfo59-partner{min-height:39px;padding:7px}
#pfo59-trade-board .pfo59-trade-selected{margin:6px 0}
#pfo59-trade-board .pfo59-trade-player{min-height:35px;padding:5px 2px}
#pfo59-trade-board .pfo59-trade-identity b{font-size:10px}
#pfo59-trade-board .pfo59-trade-roster{max-height:320px}
#pfo59-trade-board .pfo59-trade-dual>section{padding:6px}
#pfo59-trade-board .pfo59-trade-bar{margin:7px 0}
#pfo59-trade-board .pfo59-trade-bar button{min-height:34px;padding:6px 9px}
#championship #pfo49-playoff-plan .pfo49-table-wrap{max-width:100%;overflow-x:hidden}
#championship #pfo49-playoff-plan .pfo49-gamelog{width:100%;min-width:0!important;table-layout:fixed}
#championship #pfo49-playoff-plan .pfo49-gamelog th,
#championship #pfo49-playoff-plan .pfo49-gamelog td{font-size:10px!important;padding:6px 2px!important;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#championship #pfo49-playoff-plan .pfo49-gamelog th:first-child,
#championship #pfo49-playoff-plan .pfo49-gamelog td:first-child{width:43%;max-width:0;text-align:left}
#championship #pfo49-playoff-plan .pfo49-gamelog td small{font-size:8px!important;display:block;overflow:hidden;text-overflow:ellipsis}
#championship .pfo59-bench-forecast{margin-top:8px;border:1px solid var(--ffo594-line);border-radius:8px;padding:7px}
#championship .pfo59-bench-forecast summary{font-size:11px;cursor:pointer;font-weight:750}
#pfo59-champ-odds .pfo59-champ-highlight{padding:8px 10px;margin-bottom:9px}
#pfo59-champ-odds .pfo59-champ-metric{padding:10px;gap:4px}
#pfo59-champ-odds .pfo59-champ-metric strong{font-size:25px}
#ffo57-sheet .ffo57-card{animation-duration:.14s}
#ffo57-sheet .ffo57-tile{padding:8px 6px}
#ffo57-sheet .ffo57-row{padding:8px 3px}
#ffo57-sheet .ffo57-body{overscroll-behavior:contain}
@media(max-width:720px){
 body{background:var(--ffo594-ink)}
 main{padding:8px 10px calc(90px + env(safe-area-inset-bottom,0px));max-width:100vw}
 .header{margin:4px 0 10px;align-items:flex-start;gap:6px}
 .header h1{font-size:24px;line-height:1.04;margin:3px 0 2px;letter-spacing:-1.4px}
 .header .eyebrow{font-size:9px;letter-spacing:.09em}
 .header>.private,.header .private{font-size:9px;padding:5px 7px;white-space:normal;text-align:center;max-width:125px}
 .header .muted{font-size:10px}
 .pfo49-navhint{display:none!important}
 .page.active>.card{margin-bottom:9px!important}
 .page.active .grid{gap:8px}
 .page.active .card{padding:10px}
 .page.active .card h2{margin-bottom:8px;font-size:15px}
 .page.active .note{padding:8px 10px;margin:7px 0;font-size:11px}
 .page.active .muted{line-height:1.4}
 .page.active table td,.page.active table th{padding-top:6px;padding-bottom:6px}
 #pfo59-team-hub .pfo59-team-heading{align-items:center}
 #pfo59-team-hub .pfo59-team-heading .pfo59-chip{font-size:8px;max-width:135px;text-align:center;white-space:normal}
 #pfo59-market .pfo59-trade-dual{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
 #pfo59-market .pfo59-partners{grid-template-columns:repeat(2,minmax(0,1fr))}
 #pfo59-champ-odds .pfo59-champ-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
 #pfo59-champ-odds .pfo59-champ-metric strong{font-size:23px}
 /* Original long navigation remains the sole full-tools menu and all listeners survive. */
 html.ffo594-ready #nav{display:none;position:fixed;z-index:10051;left:10px;right:10px;bottom:calc(78px + env(safe-area-inset-bottom,0px));top:auto;max-height:min(62dvh,520px);overflow-y:auto;overscroll-behavior:contain;background:#122437;border:1px solid #49687c;border-radius:15px;padding:39px 9px 10px;margin:0;box-shadow:0 15px 45px #000c;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;align-content:start}
 #nav::before{content:"ALL FFO TOOLS";position:absolute;top:13px;left:14px;color:var(--ffo594-copper);font-size:11px;font-weight:800;letter-spacing:.11em}
 #nav button{white-space:normal;text-align:left;font-size:11px;line-height:1.2;min-height:39px;padding:9px 10px;background:#1a3146;border:1px solid #2b495f;border-radius:8px;color:#deedfa}
 #nav button.active{background:#275348;border-color:var(--ffo594-field);color:#eafff8;font-weight:800}
 #nav .ffo594-search{grid-column:1/-1;display:flex;flex-direction:column;gap:4px;margin:1px 0 6px}
 #nav .ffo594-search span{font-size:9px;letter-spacing:.08em;color:#bbd0de}
 #nav .ffo594-search input{width:100%;background:#0d2133;color:#e4f7ff;border:1px solid #4b6a7d;border-radius:8px;padding:10px 11px;font-size:13px;min-height:37px}
 #nav button[hidden]{display:none!important}
  html.ffo594-ready body.ffo594-more-open #nav{display:grid}
 #ffo594-backdrop{display:none;position:fixed;inset:0;z-index:10050;background:#0009;border:0;padding:0;cursor:pointer}
 body.ffo594-more-open #ffo594-backdrop{display:block}
 html.ffo594-ready #ffo594-dock{position:fixed;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));left:0;right:0;bottom:0;z-index:10049;min-height:calc(59px + env(safe-area-inset-bottom,0px));padding:5px 5px calc(4px + env(safe-area-inset-bottom,0px));background:#102235;border-top:1px solid #355469;box-shadow:0 -8px 28px #050b1599}
 .ffo594-dock-btn{display:flex;align-items:center;justify-content:center;flex-direction:column;min-width:0;gap:2px;padding:3px 1px;background:transparent;border:0;border-radius:8px;color:#a5bbcd;font-size:10px;font-weight:650;white-space:nowrap}
 .ffo594-dock-btn[aria-current=page],.ffo594-dock-btn.ffo594-dock-active,body.ffo594-more-open #ffo594-more{background:#1e433f;color:#a6f1d9}
 .ffo594-dock-label{font-size:clamp(8px,2.4vw,10px);letter-spacing:-.02em}
 .ffo594-symbol{font-size:20px;line-height:23px;font-family:system-ui,sans-serif}
 #pfo50-top{bottom:calc(74px + env(safe-area-inset-bottom,0px))}
}
@media(max-width:359px){
 #ffo594-dock{padding-left:2px;padding-right:2px}
 .ffo594-dock-label{font-size:8px}
 #nav{grid-template-columns:repeat(2,minmax(0,1fr))}
 #pfo59-champ-odds .pfo59-champ-metric strong{font-size:21px}
}
@media(prefers-reduced-motion:reduce){#ffo57-sheet .ffo57-card,#nav button{animation:none;transition:none}}
