:root{--rating:#175b9a;--rating-soft:#e9f3fc}
.rating-container{max-width:1080px;margin:0 auto;padding:20px 16px 60px}
.rating-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.rating-headline{font-size:clamp(21px,2.5vw,29px);line-height:1.5;overflow-wrap:anywhere;margin:8px 0}
.rating-help{font-size:15px;line-height:1.7;color:#4a5568;margin:8px 0 14px}
.rating-chips{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}
.rating-chip{padding:6px 10px;background:#edf4fa;color:#244767;border-radius:100px;font-size:13px;font-weight:750}
.rating-section-title{margin:24px 0 12px;padding:10px 13px;border-left:5px solid var(--rating);background:#eff5fb;border-radius:5px;font-size:20px}
.rating-player{border:1px solid #cbd8e5;border-left:5px solid var(--rating);border-radius:12px;background:#fff;padding:13px 15px;margin:10px 0;min-width:0}
.rating-player-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.rating-player-name{font-weight:850;font-size:17px;overflow-wrap:anywhere}.rating-position{font-size:13px;color:#536477;margin-right:8px}
.rating-selected{font-size:14px;font-weight:800;padding:5px 9px;background:#edf2f7;border-radius:8px}
.rating-points{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:5px}
.rating-point{min-width:0;min-height:43px;border:1px solid #acbfce;border-radius:8px;background:#fff;color:#213747;font-size:15px;font-weight:850;padding:5px 2px;cursor:pointer}
.rating-point:hover{border-color:var(--rating)}.rating-point[aria-pressed="true"]{background:var(--rating);border-color:var(--rating);color:#fff}
.rating-point.rating-skip{grid-column:1/-1;background:#f7f8fa;color:#49556a}
.rating-point.rating-skip[aria-pressed="true"]{background:#58667c;color:#fff;border-color:#58667c}
.rating-player.missing{border-color:#cb4747}.rating-player.missing .rating-selected{background:#ffe8e8;color:#8b2424}
.rating-submit-row{display:flex;align-items:center;gap:13px;flex-wrap:wrap;margin-top:20px}.rating-submit-row button{font-size:16px;padding:12px 24px}
.rating-progress{color:#335066;font-weight:800;font-size:14px}
.rating-results-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}
.rating-stat{border:1px solid #cbd8e5;border-top:4px solid var(--rating);border-radius:10px;padding:13px;background:#fff}
.rating-stat small{display:block;color:#566477}.rating-stat strong{display:block;font-size:26px;margin-top:4px}
.rating-table-wrap{overflow-x:auto;border:2px solid #7b8fa3;border-radius:7px;margin-top:12px}
.rating-table{width:100%;border-collapse:collapse;font-size:15px;min-width:560px;background:#fff}
.rating-table th,.rating-table td{border:1px solid #b9c8d4;padding:9px 10px;overflow-wrap:anywhere}
.rating-table th{background:#e9eff6;position:sticky;top:0;z-index:1;text-align:left}
.rating-table tr:nth-child(even){background:#f7faff}
.rating-table th.numeric,.rating-table td.numeric{text-align:center;font-variant-numeric:tabular-nums}
.rating-table .rating-name{font-weight:850}.rating-empty{color:#6d7885}
.rating-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:14px 0}
.rating-toolbar .btn{font-size:14px}.rating-copy{width:min(740px,100%);min-height:125px;font-size:13px}
.rating-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.rating-editor-grid label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:850}
.rating-editor-grid input,.rating-editor-grid select,.rating-editor-grid textarea{width:100%;font-size:15px;padding:10px;border:1px solid #b4c5d4;border-radius:8px;background:#fff}
.rating-editor-grid textarea{min-height:145px;line-height:1.6}
.rating-full{grid-column:1/-1}
.rating-manager-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.rating-manager-item{border:1px solid #ccd8e3;border-radius:10px;background:#fff;padding:14px}
.rating-manager-item strong{display:block;line-height:1.5;overflow-wrap:anywhere}
.rating-manager-item small{display:block;color:#657284;margin:5px 0}
.rating-alert{padding:11px 13px;border-radius:8px;background:#fff5dc;border:1px solid #edcf82;margin:12px 0;overflow-wrap:anywhere}
.rating-ok{background:#e7f7ed;border-color:#b5e2c4}
.rating-export-host{position:fixed;left:-100000px;top:0;pointer-events:none}
.rating-export-card{width:1000px;background:#fff;color:#172b41;padding:28px 32px;font-family:Arial,'Noto Sans JP',sans-serif}
.rating-export-card .rating-table th{position:static}.rating-export-card h1{font-size:30px;line-height:1.4;overflow-wrap:anywhere}
.rating-export-card .rating-table{font-size:18px}.rating-export-card .rating-table th,.rating-export-card .rating-table td{padding:9px}
@media(max-width:800px){.rating-points{grid-template-columns:repeat(5,minmax(0,1fr))}.rating-manager-list,.rating-editor-grid{grid-template-columns:1fr}.rating-full{grid-column:1}.rating-point{min-height:44px}.rating-results-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:460px){.rating-container{padding:13px 10px 50px}.rating-player{padding:11px 9px}.rating-point{font-size:14px}.rating-results-stats{grid-template-columns:1fr 1fr}}

/* v6.1：視認性を優先した自動入力・選手配置 */
.rating-guide{display:flex;flex-wrap:wrap;gap:9px;margin:5px 0 17px}
.rating-step{background:#e7f1ff;color:#174b80;border:1px solid #bfd9f7;border-radius:999px;padding:8px 12px;font-size:14px;font-weight:850}
.rating-step:nth-child(2){background:#fff3c7;color:#725000;border-color:#f1da83}
.rating-step:nth-child(3){background:#e3f5e9;color:#1b6836;border-color:#b5dfc2}
.rating-import-panel{background:#f1f7ff;border:2px solid #b9d8fc;border-radius:15px;padding:16px;margin:16px 0 20px}
.rating-import-panel h3,.rating-roster h3,.rating-mini-heading{margin:0 0 9px;font-size:21px;color:#1d354b}
.rating-source{width:100%;min-height:152px;max-width:100%;padding:12px;font-size:15px;line-height:1.55;border:1.5px solid #9cb9d4;border-radius:9px;background:white}
.rating-import-summary{font-size:14px;color:#355369;font-weight:800;overflow-wrap:anywhere}
.rating-mini-heading{margin-top:20px;padding:10px 12px;background:#f1f5fa;border-radius:8px}
.rating-roster{margin-top:21px}.rating-roster-head .rating-help{margin-top:2px}
.rating-position-legend,.rating-roster-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:10px 0 14px}
.position-legend{border-radius:999px;padding:6px 12px;font-size:14px;font-weight:850}
.position-gk,.position-legend.position-gk{--pc:#ba2635;--pbg:#fff0f1;--pborder:#e8969e;background:var(--pbg);color:var(--pc)}
.position-df,.position-legend.position-df{--pc:#135eaf;--pbg:#edf5ff;--pborder:#9ac7f3;background:var(--pbg);color:var(--pc)}
.position-mf,.position-legend.position-mf{--pc:#775600;--pbg:#fff8d5;--pborder:#e8c65a;background:var(--pbg);color:var(--pc)}
.position-fw,.position-legend.position-fw{--pc:#137344;--pbg:#eaf8ef;--pborder:#91d2ab;background:var(--pbg);color:var(--pc)}
.rating-roster-block{border:1px solid #cbd9e4;border-radius:12px;padding:13px 12px 14px;background:#fcfdff;margin:13px 0 18px}
.rating-roster-title{display:flex;gap:10px;justify-content:space-between;align-items:center;border-radius:8px;padding:10px 13px;margin-bottom:11px;font-size:18px}
.starter-title{background:#dcecff;color:#134c87}.sub-title{background:#e4f4e8;color:#21623a}
.rating-roster-title span{font-size:14px;font-weight:800}.rating-count-error{color:#b4202e!important}
.rating-roster-rows{display:grid;grid-template-columns:1fr;gap:7px;margin-bottom:10px}
.rating-edit-row{display:grid;grid-template-columns:32px minmax(120px,1.5fr) minmax(93px,.8fr) minmax(85px,.7fr) minmax(105px,.8fr) 112px;align-items:center;gap:7px;background:var(--pbg);border:1px solid var(--pborder);border-left:5px solid var(--pc);border-radius:10px;padding:8px 9px;min-width:0}
.rating-edit-row>input,.rating-edit-row>select{width:100%;min-width:0;padding:8px 7px;font-size:15px;background:#fff;color:#1d3347;border:1px solid #aebdcc;border-radius:7px}
.rating-edit-number{font-weight:900;color:var(--pc);font-size:16px;text-align:center}
.rating-played{display:flex;gap:5px;align-items:center;font-size:14px;color:#1f3b52;font-weight:800;white-space:nowrap;cursor:pointer}
.rating-played input{width:18px;height:18px;accent-color:#248a45}
.rating-required{font-size:13px;color:#48586a;font-weight:700;text-align:center}
.rating-move{display:flex;gap:4px;justify-content:flex-end}
.rating-move button{min-width:32px;height:34px;border:1px solid #b8c9d9;background:white;border-radius:7px;font-size:17px;font-weight:800;cursor:pointer;color:#2b485f}
.rating-move button:last-child{color:#a52831}.rating-move button:disabled{opacity:.3;cursor:default}
.rating-edit-row :focus-visible{outline:3px solid #256bb4;outline-offset:2px}
/* 採点カードもポジションカラーで統一 */
.rating-player.position-gk,.rating-player.position-df,.rating-player.position-mf,.rating-player.position-fw{background:var(--pbg);border-color:var(--pborder);border-left:5px solid var(--pc)}
.rating-player.position-gk .rating-player-name,.rating-player.position-df .rating-player-name,.rating-player.position-mf .rating-player-name,.rating-player.position-fw .rating-player-name{color:var(--pc)}
.rating-player.position-mf .rating-player-name{color:#665000}
.rating-player.position-gk .rating-point[aria-pressed="true"],.rating-player.position-df .rating-point[aria-pressed="true"],.rating-player.position-mf .rating-point[aria-pressed="true"],.rating-player.position-fw .rating-point[aria-pressed="true"]{background:var(--pc);border-color:var(--pc);color:#fff}
.rating-player.position-mf .rating-point[aria-pressed="true"]{background:#8b6a00;border-color:#8b6a00;color:#fff}
.rating-player .rating-point.rating-skip[aria-pressed="true"]{background:#4e6070;border-color:#4e6070}
.rating-player .rating-position{display:inline-block;color:var(--pc);background:white;border:1px solid var(--pborder);border-radius:6px;padding:3px 7px;font-size:13px;font-weight:900;margin-right:10px}
.rating-player .rating-selected{background:white;border:1px solid var(--pborder);font-size:15px}
.rating-section-title{background:#edf3fa;color:#183d66}
@media(max-width:880px){.rating-edit-row{grid-template-columns:29px minmax(110px,1fr) minmax(80px,.7fr) minmax(80px,.6fr);gap:6px}.rating-played,.rating-required{grid-column:2/4}.rating-move{grid-column:4;grid-row:2}}
@media(max-width:600px){.rating-edit-row{grid-template-columns:28px minmax(0,1fr) minmax(0,.85fr);gap:6px}.rating-edit-number{grid-row:1}.rating-name-input{grid-column:2/4}.rating-edit-row>select[data-field="position"]{grid-column:2}.rating-edit-row>select[data-field="role"]{grid-column:3}.rating-played,.rating-required{grid-column:2}.rating-move{grid-column:3;grid-row:3}.rating-roster-block{padding:10px 8px}.rating-import-panel{padding:12px}}
.rating-table-row.position-gk td{background:#fff5f5}.rating-table-row.position-df td{background:#f0f6ff}.rating-table-row.position-mf td{background:#fffbea}.rating-table-row.position-fw td{background:#f0faf3}
.rating-result-position{display:inline-block;margin-right:8px;min-width:26px;padding:2px 5px;border-radius:5px;background:var(--pbg);border:1px solid var(--pborder);color:var(--pc);font-weight:850;font-size:13px;white-space:nowrap}
.position-unknown{--pc:#526579;--pbg:#f4f6f8;--pborder:#cbd5df}

/* v6.2：4ポジションボタン・途中出場者のみ・締切プリセット・過去採点 */
.rating-deadline-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.rating-deadline-picker button{border:1px solid #b2c6d8;background:white;border-radius:8px;padding:9px 3px;font-size:13px;font-weight:800;cursor:pointer;color:#245171}
.rating-deadline-picker button.active{background:#17639d;border-color:#17639d;color:white}
.rating-deadline-picker button:focus-visible,.rating-position-button:focus-visible{outline:3px solid #1474bb;outline-offset:2px}
.rating-editor-grid .rating-help{font-size:12px;font-weight:600;margin:0}
.rating-edit-row{grid-template-columns:30px minmax(100px,1.2fr) minmax(170px,1.4fr) minmax(91px,.8fr) minmax(64px,.5fr) 112px}
.rating-position-buttons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
.rating-position-button{min-width:0;border:1px solid #c5cbd3;border-radius:7px;font-size:13px;font-weight:900;padding:9px 1px;cursor:pointer;background:#e5e7eb;color:#535d6b;text-align:center}
.rating-position-button.active{background:var(--pc);color:white;border-color:var(--pc)}
.rating-required{white-space:nowrap}
.rating-history{margin:1px 0 12px;padding:9px 11px;background:white;border:1px solid var(--pborder);border-radius:8px}
.rating-history-summary{display:flex;align-items:center;flex-wrap:wrap;gap:7px 13px;color:#1c3548;font-size:14px}
.rating-history-summary strong{font-size:21px;font-variant-numeric:tabular-nums;color:var(--pc)}
.rating-history-title{font-size:12px;font-weight:800;color:#516275}
.rating-history-empty{font-size:12px;color:#64748b;margin-bottom:10px}
.rating-history-details summary{cursor:pointer;font-size:12px;font-weight:700;color:#2265a0;margin-top:7px}
.rating-history-details ul{margin:6px 0 2px;padding-left:22px;font-size:13px;line-height:1.8}
.rating-details-section{margin-top:25px}.rating-details-section h2{font-size:20px}
.rating-detail{border:1px solid var(--pborder);border-left:4px solid var(--pc);border-radius:8px;margin:6px 0;background:var(--pbg)}
.rating-detail summary{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 12px;cursor:pointer;font-size:14px}
.rating-detail summary span{font-weight:800;margin-right:auto}.rating-detail summary strong{font-size:16px;color:var(--pc)}
.rating-detail summary small{font-size:12px;color:#4b6072}
.rating-detail-values{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;padding:4px 10px 10px}
.rating-detail-values span{background:#fff;border:1px solid #ccd8df;border-radius:6px;padding:6px 3px;text-align:center;font-size:12px}
.rating-detail-values b{display:block;font-size:13px}
.rating-detail>.rating-help{margin:0 10px 10px;font-size:12px}
@media(max-width:880px){.rating-edit-row{grid-template-columns:30px minmax(120px,1fr) minmax(170px,1.15fr);gap:7px}.rating-edit-number{grid-column:1}.rating-name-input{grid-column:2/4}.rating-position-buttons{grid-column:2/4}.rating-edit-row>select[data-field="role"]{grid-column:2;grid-row:auto}.rating-required{grid-column:3}.rating-move{grid-column:2/4;grid-row:auto;justify-content:flex-start}}
@media(max-width:460px){.rating-detail-values{grid-template-columns:repeat(3,minmax(0,1fr))}.rating-deadline-picker button{font-size:12px}}

/* v6.3：番号の隣に出場区分、未選択ボタンはグレー、数字は中央 */
.rating-edit-row{grid-template-columns:30px 135px minmax(115px,1fr) minmax(170px,1.25fr) 65px 112px}
.rating-role-buttons{display:grid;grid-template-columns:1fr 1.38fr;gap:4px;min-width:0}
.rating-role-button{min-width:0;padding:9px 2px;border:1px solid #c5cbd3;border-radius:7px;background:#e5e7eb;color:#535d6b;font-size:12px;font-weight:850;cursor:pointer;white-space:nowrap;text-align:center}
.rating-role-button.starter.active{background:#236baf;color:#fff;border-color:#236baf}
.rating-role-button.sub.active{background:#21864b;color:#fff;border-color:#21864b}
.rating-role-button:disabled,.rating-position-button:disabled{cursor:default;opacity:.75}
.rating-role-button:focus-visible{outline:3px solid #1474bb;outline-offset:2px}
.rating-title-reset{align-self:flex-start;margin-top:3px}
.rating-point,.rating-selected,.rating-stat,.rating-history-summary strong,.rating-detail summary strong{text-align:center;font-variant-numeric:tabular-nums}
.rating-history-summary strong{display:inline-block;min-width:55px}
.rating-detail summary strong,.rating-detail summary small{min-width:65px;text-align:center}
@media(max-width:1000px){
 .rating-edit-row{grid-template-columns:30px 135px minmax(0,1fr) minmax(170px,1fr)}
 .rating-edit-number{grid-column:1;grid-row:1}
 .rating-role-buttons{grid-column:2;grid-row:1}
 .rating-name-input{grid-column:3/5;grid-row:1}
 .rating-position-buttons{grid-column:2/4;grid-row:2}
 .rating-required{grid-column:4;grid-row:2}
 .rating-move{grid-column:2/5;grid-row:3;justify-content:flex-start}
}
@media(max-width:560px){
 .rating-edit-row{grid-template-columns:28px 135px minmax(0,1fr);gap:6px}
 .rating-edit-number{grid-column:1;grid-row:1}
 .rating-role-buttons{grid-column:2;grid-row:1}
 .rating-name-input{grid-column:1/4;grid-row:2}
 .rating-position-buttons{grid-column:1/4;grid-row:3}
 .rating-required{grid-column:3;grid-row:1}
 .rating-move{grid-column:1/4;grid-row:4}
}

/* v6.4：投票結果をシンプルに、本人比較と管理者の集計操作を分離 */
.rating-status-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin:14px 0}
.rating-status-row .rating-help{margin:0}.rating-status-label{display:inline-block;padding:5px 12px;border:1px solid #e7cd7f;border-radius:999px;background:#fff4d6;color:#765300;font-size:13px;font-weight:900}
.rating-status-label.closed{background:#e4f5e9;color:#1b6836;border-color:#aedfc1}
.rating-my-panel{margin:16px 0;padding:13px 15px;border-radius:11px;border:1px solid #c0dcf5;background:#f0f7ff}
.rating-my-panel h2{font-size:17px;margin:0}.rating-my-panel .rating-header{margin:0}.rating-my-panel .rating-help{margin:7px 0 0}
.rating-my-label{font-size:12px;color:#36536a}.rating-my-score{font-weight:900;color:#175b9a;background:#eaf4ff}
.rating-result-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:15px 0 5px}
.rating-order-buttons{display:flex;gap:6px;flex-wrap:wrap}.rating-order-buttons button{padding:8px 10px;border:1px solid #bdcad7;border-radius:8px;background:#f1f3f5;color:#526174;font-weight:850;cursor:pointer}
.rating-order-buttons button.active{background:#1c5d96;color:#fff;border-color:#1c5d96}
.rating-table .rating-my-column{background:#dbeeff}.rating-main-results th:nth-child(3),.rating-main-results td:nth-child(3){text-align:center}
.rating-admin-result-tools{margin-top:28px;padding:14px;border:1px solid #bfccd8;border-radius:11px;background:#f7f9fb}
.rating-admin-result-tools h2{font-size:18px;margin:0}.rating-manager-metrics{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-top:9px;font-size:13px}
.rating-manager-metrics>span:not(.rating-status-label){background:#f1f5f9;border-radius:7px;padding:5px 8px}
.rating-table td.numeric,.rating-table th.numeric,.rating-detail-values span,.rating-manager-metrics b{text-align:center;font-variant-numeric:tabular-nums}
@media(max-width:560px){.rating-main-results{min-width:560px}.rating-my-panel{padding:12px 10px}.rating-status-row{align-items:flex-start}}
/* v6.5: non-public match visibility and guarded permanent deletion */
.rating-status-label.is-private{background:#e8edf3;border-color:#ccd4dd;color:#435369}
.rating-delete-button{border:1px solid #d9a6ab;background:#fff3f4;color:#a42536;font-weight:800}
.rating-delete-button:hover{background:#ffe1e5}
