.roto-page .container{max-width:1260px}.home-link{text-decoration:none;color:var(--ink)}.roto-page .hero h1{font-size:clamp(25px,4vw,36px)}.roto-page button,.roto-page select,.roto-page input:not([type=checkbox]){min-height:42px}.roto-page input,.roto-page select{border:1px solid var(--control-line);border-radius:8px;background:var(--paper);padding:8px;max-width:100%}.roto-page input[type=checkbox]{accent-color:var(--accent);width:18px;height:18px}.data-warning{padding:14px 16px;border:1px solid var(--rose-ink);border-radius:12px;background:#ead9da;color:#69444b;line-height:1.7}.roto-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:12px 0}.roto-toolbar>label{display:flex;gap:8px;align-items:center}.layers{display:flex;gap:14px;flex-wrap:wrap}.layers label{display:flex;align-items:center;gap:5px}#status{min-height:20px;color:var(--accent);line-height:1.6}.roto-overview{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:12px 0}.radar-card,.differences-card,.editor{min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px}.radar-card svg{width:100%;height:auto;max-height:410px;display:block}.radar-card #coverage,.differences-card #unit-note,.coverage-note{font-size:11px;line-height:1.7;color:var(--muted)}.radar-legend{display:flex;flex-wrap:wrap;gap:12px;line-height:1.6;font-size:12px}.radar-legend span:before{content:'';display:inline-block;width:16px;height:3px;margin-right:6px;background:var(--series)}.basis{margin-top:16px;font-size:11px;line-height:1.7;color:var(--muted)}.basis summary{cursor:pointer;font-weight:650}.category-table{width:100%;overflow:auto}.category-table table{table-layout:fixed;font-size:12px}.category-table th,.category-table td{padding:12px 5px;text-align:right;word-break:break-word;white-space:normal}.category-table th:first-child,.category-table td:first-child{text-align:left;width:15%}.category-table td small{display:block;font-size:9px;color:var(--muted);line-height:1.5;margin-top:3px}.delta-good{color:#3d6267}.delta-bad{color:#845d64}.roster-editors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.editor{padding:14px}.editor summary{cursor:pointer;font-size:13px;font-weight:700;line-height:1.6}.editor summary span{color:var(--muted);font-weight:400}.editor p,.saved-panel p{font-size:11px;color:var(--muted);line-height:1.7}.editor fieldset{border:1px solid var(--line);border-radius:9px;margin:12px 0;padding:9px}.editor legend,.editor h4{font-size:12px}.roster-list{display:grid;gap:8px;margin:12px 0}.roster-item{display:flex;gap:8px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:8px 0;min-width:0}.roster-item>span,.roster-item label{min-width:0;overflow-wrap:anywhere;font-size:12px;line-height:1.5}.roster-item label{display:flex;gap:6px;align-items:center}.roster-item small{display:block;font-size:10px;color:var(--muted)}.roster-item button{flex-shrink:0}.search-controls,.save-controls,.load-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:end}.search-controls label,.save-controls label,.load-controls label{display:grid;gap:6px;font-size:12px;min-width:0}.search-controls label:first-child{flex:1;min-width:170px}.search-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}.search-result{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;align-items:center;gap:10px;justify-content:space-between}.search-result>span{min-width:0;font-size:12px;overflow-wrap:anywhere}.search-result small{display:block;font-size:10px;color:var(--muted);line-height:1.5;margin-top:4px}.search-result button{flex-shrink:0}.save-controls{margin-bottom:14px}#storage-warning{color:var(--rose-ink)}#saved-rosters{max-width:260px}.roto-page button:disabled{cursor:default;opacity:.65}
@media(max-width:850px){.roto-overview{grid-template-columns:1fr}.roster-editors{grid-template-columns:1fr}.search-results{grid-template-columns:repeat(2,minmax(0,1fr))}.radar-card svg{max-height:360px}}
@media(max-width:600px){.roto-page .appbar{gap:8px}.roto-page .appbar .brand{font-size:11px}.roto-page .appbar>a.btn-stat{font-size:10px;padding:8px}.roto-page .hero{padding:20px}.roto-toolbar{gap:10px}.layers{width:100%;justify-content:space-between;font-size:12px}.radar-card,.differences-card{padding:12px}.radar-card svg{max-height:315px}.radar-card .player-heading span{font-size:10px}.roto-overview{gap:10px}.category-table table{font-size:11px}.category-table th,.category-table td{padding:10px 3px}.category-table td small{font-size:9px}.search-results{grid-template-columns:1fr}.save-controls label,.load-controls label{flex:1;min-width:125px}.save-controls button,.load-controls button{min-height:44px}.radar-legend{font-size:11px;gap:8px}.editor summary{min-height:28px}.roto-page .player-section{overflow:hidden}}


.opponent-layers{border:1px solid var(--line);border-radius:9px;padding:10px;margin:12px 0;font-size:12px}.opponent-layers legend{font-size:11px;color:var(--muted)}#opponent-layers{display:flex;flex-wrap:wrap;gap:10px 16px}#opponent-layers label{display:flex;align-items:center;gap:6px;min-width:0;overflow-wrap:anywhere}.opponent-controls{display:grid;gap:10px;margin:12px 0}.opponent-controls label{display:grid;gap:6px;font-size:12px}.opponent-controls input,.opponent-controls select{width:100%;min-width:0}.opponent-controls>div{display:flex;gap:8px;flex-wrap:wrap}.category-table th:first-child,.category-table td:first-child{width:60px}.category-table th:not(:first-child){min-width:85px}#opponents-status{overflow-wrap:anywhere}

.category-table th:first-child{position:sticky;left:0;z-index:1;background:var(--panel)}.category-table thead th:first-child{background:#d7dedf}

/* Readable CJK sans-serif typography on desktop and mobile. */
.roto-page{font-family:system-ui,-apple-system,'Noto Sans TC','Noto Sans CJK TC','PingFang TC','Microsoft JhengHei','Heiti TC',sans-serif;font-size:16px;font-weight:500;line-height:1.65;color:#242c33}
.roto-page p,.roto-page small,.roto-page .basis,.roto-page .radar-legend,.roto-page .editor p,.roto-page .saved-panel p,.roto-page .category-table td small{font-size:13px;font-weight:500;line-height:1.7;color:#242c33}
.roto-page .category-table table{font-size:15px;font-variant-numeric:tabular-nums}.roto-page .category-table th{font-size:14px;font-weight:700}.roto-page .category-table td{font-size:15px;padding:14px 8px}.roto-page .category-table td small{margin-top:5px}
.roto-page .player-heading span,.roto-page .roster-item>span,.roto-page .search-result>span,.roto-page label,.roto-page .editor summary,.roto-page .btn-stat,.roto-page .footer{font-size:14px;color:#242c33}.roto-page .editor summary,.roto-page .btn-stat{font-weight:650}
.roto-page #radar text{font-family:inherit;font-size:16px;font-weight:600;fill:#242c33}.roto-page .opponent-layers legend{font-size:13px;color:#242c33}
.table-mode{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0}.table-mode label{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.roto-page #table-mode{font-size:15px;font-weight:600}.roto-page .table-mode p{margin:0;width:100%}
@media(max-width:600px){.roto-page{font-size:15px}.roto-page .category-table td{font-size:14px;padding:12px 7px}.roto-page .category-table th{font-size:13px}.roto-page .radar-legend{font-size:13px}.roto-page .table-mode label{width:100%}.roto-page #table-mode{width:100%}}

@media(max-width:600px){.roto-page #radar text{font-size:19px}}

/* Original player-table interaction, with no vertical inner scroll. */
.roto-page .search-panel,.roto-page .search-panel .dt-scroll{overflow:visible}.roto-page #search-results{display:block;min-width:0;margin:0}.roto-page .picker-controls{position:sticky;top:0;z-index:20;background:var(--panel);padding:12px 0}.roto-page .search-panel .dt-scroll-head{position:sticky!important;top:var(--roto-picker-height,0px);z-index:10;background:#d7dedf}.roto-page #roto-player-table{font-size:15px}.roto-page #roto-player-table small{display:block;font-size:13px}.roto-page #roto-player-table input{width:22px;height:22px}.roto-page .search-panel .dt-layout-row{font-size:14px}.roto-page .search-panel .dt-paging button{min-width:42px}.roto-page .search-panel .dt-scroll-head th{font-size:14px}
.roto-page .search-controls input,.roto-page .search-controls select,.roto-page .save-controls input,.roto-page .save-controls select,.roto-page .load-controls select{width:100%;min-width:0}.roto-page .save-controls label,.roto-page .load-controls label{flex:1;min-width:150px}.roto-page .search-controls label{flex:1;min-width:150px}
.roto-page .search-panel table.dataTable tbody td:first-child{min-width:48px;position:sticky;left:0;z-index:1;background:var(--paper)}.roto-page .search-panel table.dataTable tbody tr:nth-child(even) td:first-child{background:var(--panel)}.roto-page .search-panel .dt-scroll-head th:first-child{position:sticky;left:0;z-index:2;background:#d7dedf}.roto-page .search-panel table.dataTable tbody td:nth-child(2){min-width:160px}
