
:root{--safe-bottom:env(safe-area-inset-bottom,0px)}
html,body{max-width:100%;overflow-x:hidden}body{padding-bottom:calc(82px + var(--safe-bottom));background:#07090d}main{padding:8px!important}.topbar{position:static!important;height:auto!important;min-height:76px!important;padding:8px 12px!important}.brand-horizontal{width:235px!important;max-height:60px!important;margin:0!important}.top-actions{display:none}.league-account-bar{display:grid!important;grid-template-columns:1fr 90px!important;gap:8px!important;padding:10px!important}.league-account-copy,.league-context-meta,.active-league-label,.ranking-context-label{grid-column:1/-1}.league-account-bar #sleeperUsername{grid-column:1}.league-account-bar #leagueSeason{grid-column:2}.league-account-bar button{min-height:44px}.connect-card{display:none!important}.tabs{position:fixed!important;left:0!important;right:0!important;bottom:0!important;top:auto!important;width:100%!important;height:calc(68px + var(--safe-bottom))!important;display:flex!important;align-items:flex-start!important;justify-content:space-around!important;padding:6px 4px var(--safe-bottom)!important;border-radius:0!important;z-index:100!important;background:rgba(5,8,12,.96)!important;backdrop-filter:blur(18px)}.tabs::before{display:none!important}.tab{width:auto!important;min-width:52px!important;min-height:52px!important;padding:6px 5px!important;border-radius:12px!important;display:grid!important;gap:2px!important;font-size:7px!important}.tab-icon{font-size:16px!important}.tab[data-page="rankings"]{order:1}.tab[data-page="trade"]{order:2}.tab[data-page="waivers"]{order:3}.tab[data-page="league"]{order:4}.tab[data-page="draft"]{order:5}.tab[data-page="setup"]{order:6}.metrics,.feature-metrics{grid-template-columns:1fr 1fr!important}.draft-layout,.rankings-layout,.waiver-layout,.league-analyzer-layout,.settings-grid,.trade-lab-grid{display:block!important}.left-column,.right-column,.board-card,.ranking-board-card,.settings-card,.trade-side,.trade-verdict-card,.feature-side-card,.power-rankings-card,.team-breakdown-card,.league-heat-card,.league-insights-card{margin-top:8px!important}.ranking-toolbar,.feature-page-header{display:block!important;padding:12px!important}.ranking-toolbar>*{margin-top:7px}.ranking-batch-bar{display:grid!important;grid-template-columns:1fr 1fr!important}.ranking-board-card{overflow-x:auto}.ranking-tier,.ranking-columns{min-width:720px!important}.player-row{min-width:660px}.board-card{overflow-x:auto}.board-columns{min-width:650px;display:grid!important}.modal{padding:0!important}.modal-card,.player-room-shell,.compare-modal-shell{width:100vw!important;max-width:none!important;min-height:100dvh!important;border-radius:0!important;margin:0!important}.player-room-body{padding:10px!important}.feature-page-header h2{font-size:22px}.league-account-bar input,.league-account-bar select{min-height:44px}.page{padding-bottom:8px}.draft-log-card{display:none!important}


/* v1.0.2 iPhone responsiveness/performance */
*{-webkit-tap-highlight-color:transparent}
button,input,select,textarea{touch-action:manipulation}
.pwa-mode body{overscroll-behavior-y:none}
.pwa-mode .card,
.pwa-mode .panel,
.pwa-mode .metric,
.pwa-mode .ranking-board-card,
.pwa-mode .waiver-board-card,
.pwa-mode .feature-side-card,
.pwa-mode .power-rankings-card,
.pwa-mode .team-breakdown-card,
.pwa-mode .league-heat-card,
.pwa-mode .league-insights-card{
  background-image:linear-gradient(180deg,rgba(8,12,17,.96),rgba(3,7,11,.98))!important;
}
.tabs{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.brand-horizontal{opacity:.78!important}
.ranking-board-card{overflow:visible!important}
.ranking-columns{display:none!important}
.ranking-tier{min-width:0!important}
.ranking-player{
  min-width:0!important;
  grid-template-columns:34px 54px minmax(0,1fr) 48px!important;
  grid-template-areas:
    "select rank player pos"
    "move adp tag hide"
    "note note note note"!important;
  gap:7px!important;
  padding:10px!important;
  border-radius:12px;
  margin:7px 0;
}
.ranking-player>.ranking-select-control{grid-area:select}
.ranking-player>.move-buttons{grid-area:move}
.ranking-player>.rank-input{grid-area:rank;width:52px!important}
.ranking-player>.rank-name-chip{grid-area:player;min-width:0}
.ranking-player>.position-pill{grid-area:pos}
.ranking-player>span:nth-of-type(3){grid-area:adp}
.ranking-player>select{grid-area:tag;min-width:0;padding:7px 4px!important}
.ranking-player>.note-preview{grid-area:note;width:100%!important;text-align:left}
.ranking-player>.hide-player-row{grid-area:hide}
.ranking-player .player-row-headshot{width:36px!important;height:40px!important}
.ranking-batch-bar{position:sticky;top:0;z-index:12;background:rgba(5,8,12,.96);padding:8px;border-radius:12px}
.waiver-columns{display:none!important}
.waiver-row{
  grid-template-columns:minmax(0,1fr) 64px 44px!important;
  grid-template-areas:"player priority watch" "fit market watch"!important;
  gap:7px!important;
  padding:10px!important;
}
.waiver-player{grid-area:player}
.waiver-fit{grid-area:fit;justify-self:start}
.waiver-row>b{display:none}
.waiver-market{grid-area:market}
.waiver-priority{grid-area:priority}
.waiver-watch-button{grid-area:watch}
.league-account-bar{position:relative!important}
.active-league-label select,.ranking-context-label select{width:100%}
.feature-toolbar{align-items:stretch!important}
.feature-toolbar .filters{display:grid!important;grid-template-columns:1fr 120px!important}
.player-row,.board-columns{min-width:610px!important}
.player-room-side,.player-room-main{background-image:none!important}
@media(max-width:430px){
  .topbar{min-height:62px!important}
  .brand-horizontal{width:205px!important;max-height:50px!important}
  .league-account-bar{grid-template-columns:1fr 78px!important}
  .feature-metrics,.metrics{gap:7px!important}
  .feature-metric,.metric{padding:10px!important;min-height:76px!important}
  .feature-metric strong,.metric strong{font-size:20px!important}
  .ranking-toolbar h2,.feature-page-header h2{font-size:20px!important}
}


/* v1.0.4 — iPhone import feedback and no-overflow controls */
*,*::before,*::after{box-sizing:border-box}
.pwa-mode button,.pwa-mode input,.pwa-mode select,.pwa-mode textarea,.pwa-mode label{min-width:0;max-width:100%}
.pwa-mode button,.pwa-mode .file-button{white-space:normal;overflow-wrap:anywhere;text-align:center}
.pwa-mode select{width:100%;text-overflow:ellipsis}

.league-account-bar{
  grid-template-columns:minmax(0,1fr) 86px!important;
  grid-template-areas:
    "copy copy"
    "username season"
    "import import"
    "message message"
    "active active"
    "rankings rankings"
    "refresh refresh"
    "meta meta"!important;
  align-items:stretch!important;
  gap:8px!important;
  margin:8px!important;
  width:calc(100% - 16px)!important;
}
.league-account-bar>*{min-width:0!important}
.league-account-copy{grid-area:copy!important}
#sleeperUsername{grid-area:username!important;width:100%!important}
#leagueSeason{grid-area:season!important;width:100%!important;text-align:center;padding-inline:6px!important}
#importLeaguesBtn{grid-area:import!important;width:100%!important;min-height:48px!important;font-size:14px!important}
.league-account-message{grid-area:message!important;padding:9px 10px;border-radius:10px;font-size:10px;line-height:1.4;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04)}
.league-account-message.ok{color:#ffd69c;border-color:rgba(255,145,31,.30);background:rgba(255,145,31,.08)}
.league-account-message.error{color:#ffb3ba;border-color:rgba(255,81,94,.30);background:rgba(255,81,94,.08)}
.active-league-label{grid-area:active!important}
.ranking-context-label{grid-area:rankings!important}
#refreshActiveLeagueBtn{grid-area:refresh!important;width:100%!important;min-height:44px!important}
.league-context-meta{grid-area:meta!important}

.ranking-toolbar{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:8px!important;
  align-items:stretch!important;
}
.ranking-toolbar>div:first-child,#rankingSearch,.ranking-batch-bar{grid-column:1/-1!important}
#rankingSearch{width:100%!important}
#rankingPosition{grid-column:1!important;width:100%!important}
#exportRankingsBtn{grid-column:2!important;width:100%!important}
.ranking-toolbar>.file-button{grid-column:1/-1!important;width:100%!important;min-height:44px!important;display:flex!important;align-items:center!important;justify-content:center!important}
.ranking-batch-bar{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-areas:
    "visible count"
    "target target"
    "move clear"!important;
  gap:8px!important;
  align-items:center!important;
}
.batch-select-visible{grid-area:visible!important}
#rankingSelectedCount{grid-area:count!important;justify-self:end;font-size:10px}
#batchTierTarget{grid-area:target!important;width:100%!important}
#moveSelectedTierBtn{grid-area:move!important;width:100%!important;min-height:44px!important}
#clearRankingSelectionBtn{grid-area:clear!important;min-height:44px!important}

.trade-page-header,.feature-page-header{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:10px!important}
.trade-header-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;width:100%!important}
.trade-header-actions button,.feature-page-header>button{width:100%!important;min-height:44px!important}
.trade-add-controls{display:grid!important;grid-template-columns:minmax(0,1fr) 94px!important;gap:8px!important}
.trade-search-wrap{grid-column:1/-1!important;width:100%!important}
.trade-add-controls select,.trade-add-controls button{width:100%!important;min-height:44px!important}
.trade-side-heading{gap:8px!important}.trade-side-heading>div{min-width:0}.trade-side-heading h2{overflow-wrap:anywhere}

.feature-toolbar{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:10px!important}
.feature-toolbar .filters{display:grid!important;grid-template-columns:minmax(0,1fr) 108px!important;gap:8px!important;width:100%!important}
.feature-toolbar input,.feature-toolbar select{width:100%!important}
.feature-toolbar.compact select{width:100%!important}
.panel-heading{gap:8px!important}.panel-heading>*{min-width:0}

.modal-actions,.player-room-footer,.compare-modal-footer{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;padding-inline:10px!important}
.player-room-footer button:last-child,.compare-modal-footer button:last-child{grid-column:1/-1!important}
.modal-actions button,.player-room-footer button,.compare-modal-footer button{width:100%!important;min-height:44px!important}

.tabs{gap:2px!important}
.tab{flex:1 1 0!important;min-width:0!important;padding-inline:2px!important}
.tab span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.settings-card>button,.full-width{width:100%!important;min-height:44px!important}

@media(max-width:370px){
  .league-account-bar{grid-template-columns:minmax(0,1fr) 74px!important}
  .trade-header-actions{grid-template-columns:1fr!important}
  .feature-toolbar .filters{grid-template-columns:1fr!important}
  .modal-actions,.player-room-footer,.compare-modal-footer{grid-template-columns:1fr!important}
  .player-room-footer button:last-child,.compare-modal-footer button:last-child{grid-column:auto!important}
  .tab{font-size:6px!important}
}
