html,body{width:100%;height:100%;max-width:100%;overflow:hidden}
table{min-width:0}
.sheet-status-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:7px}
.sheet-status-head .section-line{margin:0}
.roster-tabs{display:flex;align-items:center;gap:7px;margin:-18px -18px 16px;padding:10px 18px;border-bottom:1px solid #d8dfe3;background:#f8fafb}
.roster-tab{background:#fff;border-color:#c3cdd3;font-weight:650}
.roster-tab b{margin-left:6px;font-size:12px}
.roster-tab.active{background:var(--navy);border-color:var(--navy);color:#fff}
.status-legend{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;color:#5f6e77;font:11px Segoe UI,Arial,sans-serif}
.status-legend span{display:flex;align-items:center;gap:4px}
.status-dot{display:inline-block;width:13px;height:13px;border-radius:3px;border:1px solid #7e8a91;vertical-align:middle}
.status-new{background:#69c779}.status-stayed{background:#cbd2d6}.status-changed{background:#f0cf58}.status-moved{background:#70aee0}.status-missing{background:#eea45b}.status-unclear{background:#b79adb}.status-none{background:#f7f8f9;border-color:#b8c1c6}
.status-dot.reviewed{position:relative}.status-dot.reviewed::after{content:'✓';position:absolute;inset:-3px 0 0;color:#64737c;font:700 12px Segoe UI;text-align:center}
.cell-mark{font-weight:650}.cell-new{background:#d7f1dc!important}.cell-changed{background:#fff0ad!important}.cell-moved{background:#d8ebf9!important}.cell-missing{background:#f9dfc4!important}.cell-unclear{background:#eadff5!important}
.status-column,.status-cell{width:3%!important;min-width:28px!important;max-width:38px!important;text-align:center!important;padding:4px!important}
.person-check{width:14px;height:14px;margin:0 3px 0 0;vertical-align:middle;cursor:pointer}
.status-cell .status-dot{vertical-align:middle}
.topbar{position:sticky;top:0;z-index:100}
.workspace{width:100%;height:calc(100vh - 66px);min-height:0;max-width:100vw;overflow:hidden}
.workspace main{display:flex;flex-direction:column;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden}
.sheet-head,.toolbar,.sheet{width:100%;max-width:100%}
.sheet-head,.toolbar{flex:0 0 auto}
.sheet{display:flex;flex:1 1 auto;min-height:0;flex-direction:column}
.toolbar{display:flex;flex-wrap:wrap;align-items:center;padding:18px}
.toolbar>span{flex:1 1 20px}
.toolbar #folderBtn{margin-left:auto}
.toolbar .danger-action{color:#9a3535;border-color:#d9aaaa;background:#fff7f7}
.toolbar .danger-action:hover{background:#f8dddd}
.toolbar #addPersonBtn{background:#2f7d4a!important;border-color:#2f7d4a!important;color:#fff!important}
.toolbar #editPersonBtn{background:#e7f1f8;border-color:#8fb5cf;color:#234f6b}
.toolbar #deletePersonBtn{background:#f9e1e1;border-color:#d79a9a;color:#8d2f2f}
.toolbar #reviewedBtn{background:#e2f3e6;border-color:#88bd94;color:#28643a}
.toolbar #seasonChangeBtn{background:#eee5f7;border-color:#b59acc;color:#60417b}
.toolbar #copyBtn,.toolbar #extraBtn{background:#e6f2f8;border-color:#94bccf;color:#285c73}
.toolbar #moveBtn{background:#fff0dc;border-color:#d7ae75;color:#80551f}
.toolbar #formerBtn{background:#edf0f2;border-color:#b8c1c6;color:#4e5c64}
.toolbar #folderBtn{background:#f3f5f6;border-color:#bdc7cd;color:#46565f}
.toolbar #reviewPlanBtn{background:#eee5f7;border-color:#b59acc;color:#60417b}
.toolbar #settingsBtn{background:#dde7ed;border-color:#92a9b7;color:#29485b}
#settingsDialog,#reviewPlanDialog{margin-left:auto;margin-right:18px}
#sourceSetupDialog{margin-left:auto;margin-right:18px}
.dialog-head-actions{display:flex;align-items:center;gap:9px}
.setup-primary{background:#173b57!important;border-color:#173b57!important;color:#fff!important;font-weight:700}
.source-setup-toolbar{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-bottom:12px}.source-setup-toolbar label{display:grid;gap:5px;min-width:210px}.source-setup-toolbar select{min-width:210px}.source-setup-toolbar .source-setup-website{flex:1 1 310px}.source-setup-toolbar .source-setup-website input{width:100%}
.source-setup-teams{display:grid;gap:10px;max-height:58vh;overflow:auto;margin-top:12px;padding-right:4px}
.source-setup-notice{margin-top:10px;padding:10px 12px;border:1px solid #aabac3;border-left-width:5px;border-radius:7px;background:#eef4f7;color:#294e61;font-weight:650}.source-setup-success{border-color:#79ad86;background:#e4f3e7;color:#245c35}.source-setup-warning{border-color:#d0aa50;background:#fff4cd;color:#705800}.source-setup-info{border-color:#91adbc;background:#eef4f7;color:#294e61}
.source-setup-discovered{display:grid;gap:10px;margin-top:10px;padding:12px;border:1px solid #9fbdca;border-radius:8px;background:#f4f9fb}.source-discovered-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.source-discovered-head span{color:#657780;font-size:12px}.source-discovered-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.source-discovered-list label{display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid #d2dee4;border-radius:6px;background:#fff}.source-discovered-list input{margin:0}.source-discovered-list small{display:block;color:#71808a;margin-top:2px}.source-setup-discovered>button{justify-self:end}
.source-setup-team{display:grid;grid-template-columns:minmax(250px,1.5fr) minmax(260px,1fr) auto;gap:10px 14px;align-items:end;padding:12px;border:1px solid #d5dee3;border-radius:9px;background:#fff}
.source-setup-team-head{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px}.source-setup-team-head small{display:block;margin-top:2px;color:#71808a}.source-setup-team label{display:grid;gap:5px}.source-setup-sources{display:grid;gap:5px}.source-setup-sources>span{font-size:12px;color:#5c6b74}.source-setup-sources>div{display:flex;gap:5px;flex-wrap:wrap}.source-setup-source{min-width:0}.setup-source-badge{display:inline-flex;align-items:center;padding:5px 7px;border:1px solid #a9bec9;border-radius:5px;background:#edf4f7;color:#294e61;font-size:12px;font-weight:650}.setup-source-empty{border-color:#c9cfd3;background:#f5f6f7;color:#6a747a}
.source-setup-actions{display:flex;justify-content:flex-end}.source-setup-actions button{white-space:nowrap}
.setup-status{display:inline-flex;padding:5px 8px;border-radius:5px;font-size:12px;font-weight:700}.setup-ready{background:#dcefe1;color:#245c35}.setup-warning{background:#fff0b8;color:#705800}.setup-missing,.setup-error{background:#f7dfc7;color:#7b4b1e}.setup-neutral{background:#e7edf1;color:#425863}
@media(max-width:900px){.source-setup-team{grid-template-columns:1fr}.source-setup-team-head,.source-setup-actions{grid-column:1}.source-setup-actions{justify-content:flex-start}}
#sourceDialog{width:min(560px,92vw);margin-left:auto;margin-right:18px}
#sourceForm>label,#sourceAdditionalFields label{display:grid;gap:5px;margin-bottom:12px}
#sourceAdditionalFields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
#sourceDialog [hidden]{display:none!important}
.admin-row .review-source-button{border-color:#b59acc;background:#eee5f7;color:#60417b}
.admin-row .review-source-button:disabled{opacity:.45;cursor:not-allowed}
.admin-row.team-admin-row{grid-template-columns:repeat(5,minmax(0,1fr))}
.admin-row.team-admin-row>span{grid-column:1/-1;min-width:0}
.admin-row.team-admin-row .mini{padding:5px 4px;white-space:nowrap}
.admin-row.organization-admin-row{grid-template-columns:1fr auto auto auto}.admin-row.organization-admin-row .mini{white-space:nowrap}
#organizationWebsiteForm>label{display:grid;gap:5px}
@media(max-width:900px){.source-discovered-list{grid-template-columns:1fr}.admin-row.organization-admin-row{grid-template-columns:1fr auto}.admin-row.organization-admin-row>span{grid-column:1/-1}}
#fupaClubSearchBtn{background:#173b57;color:#fff;border-color:#173b57;font-weight:700;white-space:nowrap}
.sheet-head{display:grid;grid-template-columns:1fr auto;align-items:end}.sheet-head .selectors{justify-self:end}
#fupaClubSearchDialog{margin-left:auto;margin-right:18px}
.person-source-tabs{display:flex;gap:7px;margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid #d9e1e5}.person-source-tab{background:#eef2f4;border-color:#b8c4cb;color:#40545f;font-weight:700}.person-source-tab.active{background:#173b57;border-color:#173b57;color:#fff}
.fupa-search-filters{display:flex;align-items:stretch;justify-content:center;gap:7px;flex:1 1 auto;margin:0 18px;min-width:0}
.fupa-search-filters[hidden]{display:none!important}
.fupa-filter{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:92px;padding:6px 10px;border-width:1px;font:600 12px/1.15 Segoe UI,Arial,sans-serif;white-space:nowrap}
.fupa-filter b{margin-top:3px;font-size:14px}.fupa-filter-all{background:#edf1f3;border-color:#aebbc3;color:#40525d}.fupa-filter-safe{background:#dcefe1;border-color:#86bb94;color:#245c35}.fupa-filter-likely{background:#fff0b8;border-color:#d6b94d;color:#705800}.fupa-filter-unclear{background:#e7dcf2;border-color:#b096c8;color:#63427e}.fupa-filter-missing{background:#f7dfc7;border-color:#d5a36f;color:#7b4b1e}
.fupa-filter.active{box-shadow:0 0 0 2px #173b57 inset,0 1px 2px #0002}
.fupa-search-results{max-height:58vh;overflow:auto;margin-top:12px;display:grid;gap:12px}
.fupa-person-review[hidden]{display:none}
.fupa-person-review{border:1px solid #d5dee3;border-radius:9px;overflow:hidden;background:#fff}
.fupa-person-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;background:#e9eef1}
.fupa-compare-table{width:100%;table-layout:fixed;border-collapse:collapse;font-family:Segoe UI,Arial,sans-serif}
.fupa-compare-table th,.fupa-compare-table td{height:auto;padding:8px 9px;border:1px solid #dce3e7;vertical-align:middle;text-align:left;white-space:normal;overflow-wrap:anywhere}
.fupa-compare-table thead th{background:#f1f4f6;font-size:12px}.fupa-compare-table th:first-child{width:125px}
.fupa-compare-table .fupa-stored-row th{background:#edf1f3}.fupa-compare-table .fupa-stored-row td{background:#f8fafb}
.fupa-compare-table .fupa-new-row th{background:#e9f5ec}.fupa-compare-table .fupa-new-row td{background:#f4fbf6}
.fupa-compare-table td.fupa-different{background:#fff0b8!important;font-weight:700}
.fupa-field-choice{display:flex;align-items:center;gap:7px;cursor:pointer}.fupa-field-choice input{width:16px;height:16px;margin:0;cursor:pointer}.fupa-field-choice span{font-weight:700}
.fupa-change-summary{display:flex;align-items:flex-start;flex-wrap:wrap;gap:6px 10px;padding:9px 12px;background:#fbfcfc;color:#52636d}
.fupa-change-summary span{display:inline-block;padding:3px 6px;border-radius:4px;background:#fff0b8;color:#6f5700}
.fupa-change-summary .fupa-apply-person{margin-left:auto;background:#2f7d4a;border-color:#2f7d4a;color:#fff;font-weight:700}.fupa-change-summary .fupa-apply-person:disabled{opacity:.45;cursor:not-allowed}
.fupa-confidence{display:inline-block;padding:4px 7px;border-radius:5px;font-weight:700;white-space:nowrap}
.fupa-safe{background:#dcefe1;color:#245c35}.fupa-likely{background:#fff0b8;color:#705800}.fupa-unclear{background:#e7dcf2;color:#63427e}.fupa-missing{background:#f7dfc7;color:#7b4b1e}
.sfv-access-note{display:grid;gap:8px;padding:14px;border:1px solid #e2c58c;border-left:5px solid #d69c2f;border-radius:8px;background:#fff8e7;color:#5d4a24}.sfv-access-note strong{font-size:15px;color:#5b4214}.sfv-access-note>div{display:flex;gap:8px;flex-wrap:wrap}.sfv-access-note a,.sfv-source-links a{display:inline-block;padding:7px 10px;border:1px solid #c8a860;border-radius:6px;background:#fff;color:#66501f;font-weight:700;text-decoration:none}.sfv-source-links{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding:11px 13px;border:1px solid #d9e1e5;border-radius:8px;background:#f8fafb}.sfv-source-links strong{width:100%}.source-panel-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:12px}.source-panel-actions button:disabled{opacity:.45;cursor:not-allowed}.wikidata-table-scroll{overflow-x:auto}.wikidata-compare-table{min-width:1250px}.wikidata-compare-table th:first-child{width:130px}
.source-link-button{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border:1px solid #9aaeb9;border-radius:6px;background:#fff;color:#173b4f;font-weight:700;text-decoration:none}.source-link-button:hover{background:#eef4f7}.volleybox-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.volleybox-card-actions .source-link-button{border-color:#76a7bf;color:#145a78}.fupa-confidence.volleybox-pending{background:#fff0c8;color:#6c4e00}.fupa-confidence.volleybox-checked{background:#dff1df;color:#1d5b26}
@media(max-width:900px){.sheet-head{display:flex}.sheet-head .selectors{align-self:stretch}}
@media(max-width:900px){.fupa-search-filters{order:3;flex-basis:100%;justify-content:flex-start;overflow-x:auto;margin:8px 0 0}.fupa-filter{min-width:88px}}
.grid-wrap{flex:1 1 auto;width:100%;max-width:100%;min-width:0;min-height:0;height:auto;overflow-x:hidden;overflow-y:auto;scrollbar-gutter:stable}
.tree-panel{position:static;height:100%;min-height:0;overflow:auto;align-self:start;scrollbar-gutter:stable}
.club-label{cursor:pointer}
.club-node.collapsed .club-label::before{content:'▸'}
.club-node.collapsed .club-teams{display:none}
.save-state{white-space:nowrap}.save-state button:disabled{opacity:.45;cursor:default}
.search-tools{display:flex;align-items:center;gap:7px;min-width:0}.search-tools .global-search{width:min(330px,28vw);margin:0}.search-tools>button{white-space:nowrap;background:#27475e;color:#fff;border-color:#4b6577}
.backup-list{border:1px solid #dbe2e6;border-radius:8px;overflow:hidden}
.backup-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:11px 13px;border-bottom:1px solid #e5eaed}
.backup-row:last-child{border-bottom:0}.backup-row span{display:flex;flex-direction:column}.backup-row small{color:#78858d;margin-top:2px}
.duplicates-list{display:grid;gap:12px;max-height:58vh;overflow:auto}.duplicate-group{border:1px solid #d8e0e5;border-radius:9px;overflow:hidden}.duplicate-group>h3{margin:0;padding:9px 12px;background:#eef2f4;font-size:14px}.duplicate-person{display:grid;grid-template-columns:1fr 1.5fr auto;gap:12px;align-items:center;padding:10px 12px;border-top:1px solid #e4e9ec}.duplicate-person:first-of-type{border-top:0}.duplicate-person small{display:block;color:#71808a;margin-top:2px}.duplicate-person button{white-space:nowrap}
.season-change-settings{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}.season-change-settings label{display:grid;gap:5px}.season-change-head,.season-change-row{display:grid;grid-template-columns:1.15fr .9fr 1.3fr;gap:10px;align-items:center}.season-change-head{padding:7px 10px;background:#e7edf1;font-size:12px;font-weight:700}.season-change-list{max-height:50vh;overflow:auto;border:1px solid #d7dfe4;border-top:0}.season-change-row{padding:8px 10px;border-bottom:1px solid #e4e9ec}.season-change-row:last-child{border-bottom:0}.season-change-row small{display:block;color:#71808a;margin-top:2px}.season-target select,.season-target input{width:100%}.season-target em{color:#78858d;font-style:normal}
.review-plan-wrap{max-height:58vh;overflow:auto}.review-plan-table{width:100%;table-layout:auto;font-family:Segoe UI,Arial,sans-serif}.review-plan-table th{height:auto;white-space:normal;text-align:center;vertical-align:middle}.review-plan-table td{background:#f6f8f9;padding:8px}.review-plan-table td:first-child{min-width:145px}.review-plan-table small{display:block;color:#71808a;margin-top:3px}.review-plan-table input{width:120px}.review-plan-table .source-url,.review-plan-table .source-note{display:block;width:220px}.review-plan-table .source-note{margin-top:5px}.review-plan-table .start-review{white-space:nowrap;background:#eee5f7;border-color:#b59acc;color:#60417b}.review-check-output{margin-top:12px;padding:11px 13px;border:1px solid #d9e1e5;border-radius:8px;background:#f7f9fa;color:#53636c}.review-check-output a{color:#285f80;word-break:break-all}
.grid-wrap{max-height:none}
.grid-wrap thead th{position:sticky;top:0;z-index:8}
.grid-wrap thead th{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;text-align:center;line-height:1.08;height:55px}
.grid-wrap th:first-child,.grid-wrap td:first-child{position:sticky;left:0;z-index:6}
.grid-wrap th:nth-child(2),.grid-wrap td:nth-child(2){position:sticky;left:var(--status-col,38px);z-index:6}
.grid-wrap th:nth-child(3),.grid-wrap td:nth-child(3){position:sticky;left:calc(var(--status-col,38px) + var(--name-col,112px));z-index:6}
.grid-wrap th:first-child,.grid-wrap th:nth-child(2),.grid-wrap th:nth-child(3){z-index:10;background:var(--navy-light)}
.grid-wrap td:first-child,.grid-wrap td:nth-child(2),.grid-wrap td:nth-child(3){background:var(--gray)}
.grid-wrap tr.selected td:first-child,.grid-wrap tr.selected td:nth-child(2),.grid-wrap tr.selected td:nth-child(3){outline:2px solid #2f6689;outline-offset:-2px}
@media(max-width:900px){html,body{height:auto;overflow-y:auto}.workspace{height:auto;overflow:visible}.workspace main{height:auto;overflow:visible}.tree-panel{position:static;height:auto;max-height:none}.sheet{display:block}.grid-wrap{height:65vh;min-height:320px}.sheet-status-head{align-items:flex-start;flex-direction:column}.status-legend{justify-content:flex-start}.toolbar>span{display:none}.search-tools{order:3;width:100%}.search-tools .global-search{width:100%}.duplicate-person,.season-change-head,.season-change-row,.season-change-settings{grid-template-columns:1fr}}
.review-plan-table .check-info{min-width:170px;text-align:center}
.review-plan-table .review-source{display:block;width:150px;margin:0 auto 6px;padding:6px}.review-plan-table .start-review{display:block;margin:auto}
.roster-tabs .team-review-tab{margin-left:8px;border-color:#b59acc;background:#eee5f7;color:#60417b;font-weight:600;white-space:nowrap}
.scan-new{margin-top:10px;padding:9px 11px;border-left:4px solid #4da96a;background:#eef8f1}.scan-new ul{margin:6px 0 8px;padding-left:22px}.scan-new button{background:#e2f3e7;border-color:#79bb8c;color:#245e35;font-weight:600}
.team-source-links{display:inline-flex;align-items:center;gap:6px;margin-left:6px;min-width:0}.team-source-links a{display:inline-block;max-width:135px;padding:6px 9px;border:1px solid #aebbc3;border-radius:6px;background:#fff;color:#315f78;font:600 12px/1.2 Segoe UI,Arial,sans-serif;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-source-links a:hover{background:#edf6fa;border-color:#72a5bf}
.scan-missing{margin-top:10px;padding:9px 11px;border-left:4px solid #e4a255;background:#fff5e9}.review-choices{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin-top:7px}.review-choices label{display:flex;align-items:center;gap:6px}.review-choices input{width:auto}.review-confirm{display:flex;justify-content:flex-end;margin:12px 0 8px}.review-confirm button{background:#173b57;color:#fff;border-color:#173b57;font-weight:700}
.grid-wrap td.club-since-current{background:#ffe27a!important;color:#342900!important;font-weight:700}
.grid-wrap tbody td:nth-child(5),.grid-wrap tbody td:nth-child(6),.grid-wrap tbody td:nth-child(9),.grid-wrap tbody td:nth-child(10),.grid-wrap tbody td:nth-child(12),.grid-wrap tbody td:nth-child(13){text-align:center;vertical-align:middle}
.grid-wrap tbody td:nth-child(14),.grid-wrap tbody td:nth-child(15),.grid-wrap tbody td:nth-child(16){text-align:left;vertical-align:middle}
