.roster-toolbar{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.roster-qr-dialog{width:min(760px,calc(100vw - 32px));max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);overflow:hidden}
.roster-qr-card{width:auto;max-width:100%;max-height:calc(100dvh - 32px);overflow-y:auto;overflow-x:hidden;box-sizing:border-box}
.roster-qr-video-wrap{position:relative;overflow:hidden;min-height:320px;margin:16px 0;border-radius:18px;background:#101828}
.roster-qr-reader{width:100%;min-height:320px;background:#101828;color:#fff}
.roster-qr-reader video{display:block!important;width:100%!important;min-height:320px;max-height:55vh;object-fit:cover;border:0!important}
.roster-qr-reader img{max-width:100%}
.roster-qr-reader>div{border:0!important}
.roster-qr-reader #qr-shaded-region{border-color:rgba(0,0,0,.42)!important}
.roster-qr-actions{display:flex;gap:8px;flex-wrap:wrap}
.roster-qr-file-label{cursor:pointer}
.roster-import-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}
.roster-import-summary div{display:flex;flex-direction:column}
.roster-import-mode{display:flex;gap:18px;flex-wrap:wrap;margin:18px 0 0;padding:14px;border:1px solid var(--line,#e5e7eb);border-radius:14px}
.roster-import-mode legend{padding:0 6px;font-weight:700}
.roster-import-mode label{display:flex;align-items:center;gap:7px}
@media(max-width:640px){
  .roster-title-row{align-items:flex-start}.roster-toolbar{width:100%;justify-content:flex-start}
  .roster-qr-dialog{width:calc(100vw - 20px);max-width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}
  .roster-qr-card{padding:18px;max-height:calc(100dvh - 20px)}
  .roster-qr-video-wrap,.roster-qr-reader,.roster-qr-reader video{min-height:260px}
  .roster-qr-actions .btn{flex:1}.roster-import-summary{align-items:flex-start;flex-direction:column}
  .dialog-header,.dialog-header>div{min-width:0}.dialog-header h3,.dialog-header p{overflow-wrap:anywhere}
}
.roster-qr-debug{margin-top:14px;border:1px solid var(--line,#d8dee9);border-radius:12px;background:#f8fafc}
.roster-qr-debug summary{padding:10px 12px;font-weight:700;cursor:pointer;user-select:none}
.roster-qr-debug[open] summary{border-bottom:1px solid var(--line,#d8dee9)}
.roster-qr-debug-toolbar{display:flex;gap:8px;flex-wrap:wrap;padding:10px 12px 0}
.roster-qr-debug pre{max-height:260px;margin:10px 12px 12px;padding:12px;overflow:auto;border-radius:9px;background:#0b1220;color:#d7e3f4;font:12px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}


/* v0.19 – UX náhledu importu podle dashboard redesignu */
.roster-import-preview{display:grid;gap:18px}
.roster-import-hero{display:flex;align-items:center;gap:14px;padding:18px;border:1px solid #c4c5d7;border-radius:16px;background:linear-gradient(135deg,#f0f3ff,#fff)}
.roster-import-hero h3{margin:2px 0 3px;color:#111c2d;font-size:24px;line-height:1.2}
.roster-import-icon{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;border-radius:14px;background:#dce1ff;color:#0037b0;font-size:24px;font-weight:800}
.roster-import-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.roster-import-stat{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border:1px solid #c4c5d7;border-radius:14px;background:#fff}
.roster-import-stat span{color:#747686;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.roster-import-stat strong{color:#111c2d;font-size:26px;line-height:1.1}
.roster-import-stat.is-new{background:#effcf5;border-color:#b7ebcd}.roster-import-stat.is-new strong{color:#087443}
.roster-import-stat.is-duplicate{background:#fff8e8;border-color:#f4d494}.roster-import-stat.is-duplicate strong{color:#9a5b00}
.roster-import-notice{display:flex;gap:6px;flex-direction:column;padding:13px 15px;border-left:4px solid #2151da;border-radius:8px;background:#f0f3ff;color:#111c2d}
.roster-import-notice span{color:#434655;font-size:14px}
.roster-import-list-head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}
.roster-import-list-head>div{display:flex;flex-direction:column;gap:2px}.roster-import-list-head .status-pill{white-space:nowrap}
.roster-import-table-wrap{max-height:300px;overflow:auto;border-radius:14px;border:1px solid #c4c5d7}
.roster-import-table{margin:0}.roster-import-table th{position:sticky;top:0;z-index:1;background:#f0f3ff}
.roster-import-table tr.is-new{background:#fbfffd}.roster-import-table tr.is-duplicate{background:#fffdf8}
.roster-player-number{display:inline-grid;place-items:center;min-width:34px;height:30px;padding:0 8px;border-radius:8px;background:#e7eeff;color:#0037b0;font-weight:800}
.roster-player-name{display:flex;flex-direction:column}.roster-player-name small{display:none;color:#747686}
.roster-import-result{display:inline-flex;align-items:center;min-height:26px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:800;white-space:nowrap}
.roster-import-result.is-new{background:#dcf7e8;color:#087443}.roster-import-result.is-duplicate{background:#fff0c7;color:#8a5200}
.roster-import-mode{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0;padding:0;border:0}
.roster-import-mode legend{grid-column:1/-1;padding:0 0 2px;color:#111c2d;font-size:14px;font-weight:800}
.roster-import-choice{position:relative;display:grid!important;grid-template-columns:auto auto 1fr;align-items:flex-start!important;gap:11px!important;padding:15px;border:1px solid #c4c5d7;border-radius:14px;background:#fff;cursor:pointer;transition:border-color .18s,box-shadow .18s,background .18s}
.roster-import-choice:hover{border-color:#2151da}.roster-import-choice.is-selected{border-color:#0037b0;background:#f0f3ff;box-shadow:0 0 0 2px rgba(0,55,176,.08)}
.roster-import-choice input{margin-top:5px}.roster-import-choice-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#e7eeff;color:#0037b0;font-size:20px;font-weight:800}
.roster-import-choice>span:last-child{display:flex;flex-direction:column;gap:4px}.roster-import-choice strong{color:#111c2d}.roster-import-choice small{color:#434655;line-height:1.35}
.roster-import-footer{margin-top:0;padding-top:2px}.roster-import-footer .btn-primary{min-width:170px}
@media(max-width:640px){
  .roster-import-hero{align-items:flex-start;padding:15px}.roster-import-hero h3{font-size:21px}
  .roster-import-stats{grid-template-columns:repeat(3,1fr);gap:7px}.roster-import-stat{padding:10px}.roster-import-stat strong{font-size:22px}.roster-import-stat span{font-size:10px}
  .roster-import-list-head{align-items:flex-start;flex-direction:column}.roster-import-mode{grid-template-columns:1fr}.roster-import-table th:nth-child(3),.roster-import-table td:nth-child(3){display:none}.roster-player-name small{display:block}
  .roster-import-footer{display:grid;grid-template-columns:1fr}.roster-import-footer .btn{width:100%}
}
