/* /player/<id> (templates/player_profile.html): dense layout on the .fp colour tokens. */
.pp{max-width:1680px;margin:0 auto;padding:12px 0 24px;color:#dbe7f5;display:grid;gap:12px}
.pp a{color:#93c5fd}
/* header band */
.pp-top{display:grid;grid-template-columns:84px minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 14px;border:1px solid #26364a;border-radius:14px;background:linear-gradient(145deg,#111b2a,#0c1421)}
.pp-photo{width:84px;height:84px;border-radius:14px;object-fit:cover;object-position:top;background:#18263a;border:1px solid #365171}
.pp-id{min-width:0}
.pp-kicker{margin:0;font-size:11px;font-weight:700;color:#8ca3bd}
.pp-kicker a{color:#8ca3bd}
.pp-warn{color:#ff9aa8}
.pp-top h1{margin:2px 0 6px;font-size:clamp(24px,2.6vw,34px);line-height:1;font-weight:900;color:#f4f8fd}
.pp-bio{margin:0;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:#cbd7e6}
.pp-bio span{white-space:nowrap}
.pp-bio small{margin-right:4px;font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#7890ad}
.pp-bio a{font-size:11px;white-space:nowrap}
.pp-roster{display:grid;gap:1px;min-width:220px;padding:8px 12px;border-radius:10px;background:#10302f;border:1px solid #1f6f5e}
.pp-roster.is-free{background:#132238;border-color:#294362}
.pp-roster small{font-size:9px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#6ee0bd}
.pp-roster b{font-size:15px;color:#f8fafc}.pp-roster b a{color:inherit}
.pp-roster span{font-size:11px;color:#9eb1c8}
/* numbers strip */
.pp-kpis{margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:6px}
.pp-kpis div{padding:7px 10px;border-radius:10px;background:#101a28;border:1px solid #22324a}
.pp-kpis div.is-nfl{border-color:#2b4056;background:#0c1826}
.pp-kpis dt{font-size:9px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#7890ad;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pp-kpis dd{margin:1px 0 0;font-size:19px;font-weight:850;color:#f4f8fd;font-variant-numeric:tabular-nums;white-space:nowrap}
.pp-kpis dd small{margin-left:5px;font-size:10px;font-weight:700;color:#8ca3bd}
/* main split */
.pp-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:12px;align-items:start}
.pp-col{display:grid;gap:12px;min-width:0}
.pp-card{border:1px solid #26364a;border-radius:14px;background:linear-gradient(145deg,#111b2a,#0c1421);overflow:hidden;min-width:0}
.pp-card-head,.pp-log summary{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;padding:9px 12px;border-bottom:1px solid #22324a}
.pp-card-head h2,.pp-log summary h2{margin:0;font-size:14px;font-weight:850;color:#f4f8fd}
.pp-card-head span,.pp-log summary span{font-size:11px;color:#7890ad}
.pp-scroll{overflow-x:auto}
.pp-foot{margin:0;padding:6px 12px 9px;font-size:11px;color:#7388a1}
/* compact tables */
.pp-t{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}
.pp-t th,.pp-t td{padding:5px 8px;border-top:1px solid #1c2b3d;text-align:left;vertical-align:top}
.pp-t thead th{border-top:0;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#7890ad}
.pp-t tbody th{font-weight:800;color:#f4f8fd}
.pp-t .n{text-align:right;font-variant-numeric:tabular-nums}
.pp-t b{color:#f4f8fd}
.pp-t small{color:#7890ad;font-size:10px}
.pp-t .dim{color:#5d6f86}
.pp-teams span,.pp-draft{display:block;line-height:1.35}
/* week grid */
.pp-grid{border-collapse:separate;border-spacing:2px;font-size:11px;font-variant-numeric:tabular-nums;margin:4px 6px}
.pp-grid thead th{font-size:9px;font-weight:700;color:#7890ad;text-align:center;padding:0 0 2px}
.pp-grid tbody th{padding-right:6px;font-size:11px;font-weight:800;color:#cbd7e6;text-align:right}
.pp-grid td{min-width:30px;height:24px;padding:0 3px;border-radius:5px;text-align:center;font-weight:800;background:#16222f;color:#cbd7e6}
.pp-grid td.is-bench{background:transparent!important;box-shadow:inset 0 0 0 1px #2b3b50!important;color:#6f8198!important;font-weight:600}
.pp-grid td.is-ir{opacity:.45}
.pp-grid td.is-moved{box-shadow:inset 3px 0 0 #ffd166!important}
.pp-grid td.is-empty{background:transparent}
.pp-legend{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}
.pp-legend i{font-style:normal;font-size:10px;font-weight:700;padding:1px 6px;border-radius:4px}
.pp-legend i.is-bench{box-shadow:inset 0 0 0 1px #2b3b50;color:#6f8198}
/* journey: vertical in the side column */
.pj-vert .pj-line{flex-direction:column;overflow:visible;max-height:560px;overflow-y:auto;padding:8px 10px}
.pj-vert .pj-line li{flex:none;grid-template-columns:28px minmax(0,1fr);grid-template-rows:none;gap:8px;padding:0 0 8px}
.pj-vert .pj-line li::before{top:28px;bottom:0;left:13px;right:auto;width:2px;height:auto}
.pj-vert .pj-dot{width:28px;height:28px;font-size:12px}
.pj-vert .pj-line b{font-size:13px}
.pj-vert .pj-line span{font-size:11px}
/* news */
.pp-news{list-style:none;margin:0;padding:6px 12px 10px;display:grid;gap:8px}
.pp-news a{font-size:12px;font-weight:700;color:#e6edf6;line-height:1.35}
.pp-news small{display:block;font-size:10px;color:#7388a1}
/* full list */
.pp-log summary{cursor:pointer;list-style:none;border-bottom:0}
.pp-log[open] summary{border-bottom:1px solid #22324a}
.pp-log summary::-webkit-details-marker{display:none}
.pp-log summary h2::before{content:"▸ ";color:#6ee0bd}
.pp-log[open] summary h2::before{content:"▾ "}
/* NFL production block, compacted */
.pp .ng-panel{margin:0;border-radius:14px}
.pp .ng-heading{padding:9px 12px}
.pp .ng-heading h2{font-size:14px}
.pp .ng-heading p,.pp .ng-chart p{display:none}
.pp .ng-controls{padding:4px 12px 8px}
.pp .ng-controls select,.pp .ng-panel button{min-height:34px;padding:4px 10px;font-size:12px}
.pp .ng-note{padding:2px 12px;font-size:11px}
.pp .ng-summary{gap:6px;padding:6px 12px}
.pp .ng-summary>div{padding:4px 10px;min-width:100px}
.pp .ng-summary b{font-size:18px}
.pp .ng-charts{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:6px 12px}
.pp .ng-chart{padding:8px}
.pp .ng-chart h3{font-size:12px}
.pp .ng-chart-area{height:130px;margin-top:4px}
.pp .ng-table{font-size:12px}
.pp .ng-table th,.pp .ng-table td{padding:5px 8px}
.pp .ng-table a{min-height:0}
@media (max-width:1200px){.pp .ng-charts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1000px){.pp-main{grid-template-columns:minmax(0,1fr)}.pj-vert .pj-line{max-height:340px}}
@media (max-width:640px){
  .pp{padding:8px 0 16px;gap:8px}
  .pp-top{grid-template-columns:60px minmax(0,1fr);gap:10px;padding:10px}
  .pp-photo{width:60px;height:60px;border-radius:10px}
  .pp-roster{grid-column:1/-1;min-width:0;grid-template-columns:auto 1fr;column-gap:8px;align-items:baseline}
  .pp-roster small{grid-column:1/-1}
  .pp-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
  .pp-kpis div{padding:5px 7px}
  .pp-kpis dd{font-size:16px}
  .pp-kpis dd small{display:block;margin:0}
  .hide-sm{display:none}
  .pp .ng-chart-area{height:120px}
  .pp .ng-charts{grid-template-columns:repeat(2,minmax(0,1fr));padding:6px 8px}
}
.pp .ng-table td,.pp .ng-table th{height:auto!important;vertical-align:middle}
.pp .ng-table a{min-height:0!important;display:inline!important}
.pp .ng-table small{display:inline;margin-left:5px}
