/* Compact formation view; taller reports scroll independently as ordinary pages. */
header{height:124px;padding:6px 3%;gap:24px}
.brand{width:300px;flex-shrink:0}
.brand>img{max-height:112px;width:100%;object-fit:contain}
header>.slogan{width:min(650px,43vw);height:112px;flex-shrink:1;overflow:hidden}
header>.slogan img{position:absolute;top:50%;transform:translateY(-50%);width:100%;height:auto;display:block;filter:drop-shadow(0 3px 9px #030a16)}
.header-right{min-width:170px;gap:8px;padding-top:8px}
.header-right span{font-size:11px}
nav{height:48px;gap:3px}
nav button{padding:0 13px}
nav button:last-child{margin-left:0}
.totals{margin-top:10px;gap:8px}
.toolbar{margin:10px 0 8px}
.toolbar h2{font-size:20px}
.admin-actions{display:flex;flex-direction:column;align-items:flex-end;gap:5px}
.admin-actions>div{display:flex;gap:7px}
.admin-actions button{font-size:12px;min-height:30px;padding:5px 10px}
.toolbar-actions{gap:12px;min-height:30px}
.row{height:clamp(39px,calc((100dvh - 340px)/10),55px)}
.row.head{height:30px}
.weapon-button img{height:40px;width:40px}
.row input{padding:6px 5px}
main{padding-bottom:10px}
.danger{border-color:#a84c60;background:#472333;color:#ffe0e7}
#toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);max-width:min(640px,94vw);background:#203f51;border:1px solid #76c5b1;padding:14px 20px;border-radius:8px;box-shadow:0 8px 30px #0009;z-index:100}
#toast.error{background:#462739;border-color:#db8d99}
#snapshotDialog,#clearDialog{width:700px}
#snapshotDialog p,#clearDialog p{color:#aec3da;line-height:1.7}
#snapshotError{color:#f5a6ab!important}
.snapshot-fields{display:flex;flex-wrap:wrap;gap:14px}
.snapshot-fields label{display:flex;flex-direction:column;gap:7px}
.snapshot-fields input,.snapshot-fields select{min-height:44px}
.attendance-filters{display:flex;align-items:end;flex-wrap:wrap;gap:15px;padding:18px;background:#15263a;border:1px solid #38516c;border-radius:8px}
.attendance-filters label{display:grid;gap:7px;font-size:12px;color:#aec6de}
.attendance-filters input{font-size:16px}
.source-switch{display:flex;gap:5px;margin-right:auto}
.source-switch button{min-height:42px}
.source-switch .selected{background:#365d79;border-color:#aad7fa}
.attendance-summary{display:flex;align-items:center;gap:25px;padding:20px 0 7px;flex-wrap:wrap}
.attendance-summary strong{font-size:23px;color:#d4ecff}
.attendance-summary span{color:#9db8d2;font-size:14px}
.attendance-note{color:#8ea8c2;font-size:13px;line-height:1.7}
.leaderboards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:20px 0}
.leaderboard{border:1px solid #36506b;border-radius:8px;background:linear-gradient(155deg,#1a3047,#101e30);padding:16px;min-width:0;align-self:start}
.board-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px;gap:8px}
.board-heading h3{font-size:17px;margin:0}
.board-heading h3 small{font-size:11px;color:#91bce1;margin-left:7px}
.board-heading button{font-size:11px;padding:6px 8px}
.rank-row{width:100%;display:flex;gap:10px;align-items:center;border:0;border-bottom:1px solid #30445a;border-radius:0;background:transparent;padding:11px 3px;text-align:left;font-size:14px}
.rank-row strong{overflow:hidden;text-overflow:ellipsis;flex:1}
.rank-row b{font-size:13px;white-space:nowrap;color:#b6ddfa}
.rank-row small{color:#90acbe;width:35px;text-align:right}
.rank-number{font-family:Georgia,serif;color:#7d9dbb;width:23px}
.rank-row:nth-child(2) .rank-number{color:#f5cc72}
.rank-row:nth-child(3) .rank-number{color:#d4e3f3}
.rank-row:nth-child(4) .rank-number{color:#d3a77d}
.empty-state{padding:30px 0;text-align:center;font-size:13px;color:#7892ad}
.api-tools,.session-list{border:1px solid #334b65;padding:13px;border-radius:6px}
.api-tools>div{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}
.api-tools button,.api-tools input{font-size:13px}
.session-list>div{display:flex;align-items:center;flex-wrap:wrap;gap:15px;padding:13px 0;border-bottom:1px solid #2e435b}
.session-list small{width:100%}
.history-row{display:grid;grid-template-columns:190px 70px 1fr;gap:14px;padding:16px 5px;border-bottom:1px solid #33495f}
.history-row small{grid-column:1/-1;color:#8ca8c3}
@media(min-width:901px) and (max-height:800px){
 header{height:98px}.brand{width:250px}.brand>img{max-height:90px}header>.slogan{height:90px;width:min(570px,44vw)}
 nav{height:42px}.totals{margin-top:7px}.toolbar{margin:6px 0}.row{height:39px}.row.head{height:27px}
 .weapon-button img{width:35px;height:35px}.row input{font-size:14px}.weapon-button span:not(.weapon-placeholder){font-size:14px}
}
@media(max-width:1150px){nav button{font-size:12px;padding:0 8px;gap:5px}.header-right{min-width:140px}.brand{width:240px}.leaderboards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){
 header{height:130px;gap:15px}.brand{width:210px}header>.slogan{width:min(410px,43vw);height:85px}.header-right{min-width:100px}.header-right span{max-width:120px}
 .row{height:55px}.row.head{height:32px}
 nav{overflow-x:auto;flex-wrap:nowrap}
}
@media(max-width:560px){
 header{height:220px;display:flex;flex-direction:column;justify-content:end;align-items:center;padding:40px 12px 8px;gap:0}
 .brand{width:245px}.brand>img{max-height:92px}
 header>.slogan{width:100%;max-width:430px;height:72px;flex-shrink:0}
 .header-right{position:absolute;right:10px;top:3px;min-width:0;padding:0}
 nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));height:auto;overflow:visible;padding:7px 0;gap:3px}
 nav button{font-size:12px;padding:5px 3px;min-height:40px}
 nav button:last-child{grid-column:auto}
 nav button:nth-last-child(2){grid-column:span 2}
 .toolbar h2{font-size:18px}
 .toolbar-actions{gap:6px}
 .admin-actions button{font-size:11px;padding:5px 7px;min-height:36px}
 .row{height:auto;min-height:102px}
 .row.head{height:33px;min-height:33px}
 .row input{font-size:16px}
 .weapon-button img{height:44px;width:44px}
 .totals{gap:5px}
 .attendance-filters{padding:12px;gap:10px}
 .source-switch{width:100%}.source-switch button{flex:1}
 .attendance-filters label{width:calc(50% - 5px)}.attendance-filters input{width:100%;min-width:0;min-height:44px}
 .attendance-summary{gap:12px}.attendance-summary strong{font-size:20px}
 .leaderboards{grid-template-columns:1fr;gap:12px}
 .rank-row{min-height:48px}
 .board-heading button{min-height:40px}
 .snapshot-fields{display:grid;grid-template-columns:1fr 1fr}
 .snapshot-fields input,.snapshot-fields select{width:100%;min-width:0;font-size:16px}
 .api-tools input{width:100%;font-size:16px}
 .history-row{grid-template-columns:1fr 70px}.history-row>span:nth-child(3){grid-column:1/-1}
}
/* Shared roster member refresh stays available across all six squads. */
.team-title .members-refresh-button{font-size:13px;min-height:36px;padding:7px 12px;border:1px solid #668ba1;border-radius:7px;color:#cae4f1;background:#193344;white-space:nowrap}
.team-title .members-refresh-button:disabled{opacity:.6;cursor:wait}
@media(max-width:800px){.team-title{flex-wrap:wrap}.team-title .members-refresh-button{font-size:12px;min-height:34px}}

/* Manual form refresh: compact beside the team count, with touch-sized target. */
.roster-refresh-button{min-height:40px;padding:8px 14px;border:1px solid #bd9357;border-radius:8px;background:#382a20;color:#ffdda4;font-weight:700;white-space:nowrap;cursor:pointer}
.roster-refresh-button:hover:not(:disabled){background:#513a27;border-color:#f1c785}
.roster-refresh-button:focus-visible{outline:2px solid #ffe0a5;outline-offset:3px}
.roster-refresh-button:disabled{opacity:.55;cursor:default}
@media(max-width:600px){.toolbar-actions{flex-wrap:wrap;gap:8px}.roster-refresh-button{min-height:44px;padding:8px 12px}}
