/* Player collections: existing 4388 paper, ink and warm red palette. */
.pl-page { --pl-paper:var(--surface,#fffefa); --pl-ink:var(--text,#1c1917); --pl-red:var(--accent,#9d2f1b); --pl-line:var(--line,#e2dbcf); color:var(--pl-ink); min-width:0; }
.pl-page [hidden], .player-lists-entry [hidden] { display:none !important; }
.pl-page h1,.pl-page h2,.pl-entry-copy h2 { font-family:var(--serif,Georgia,"Noto Serif TC",serif); }
.pl-intro,.pl-detail-head,.pl-owner-head { border-top:2px solid var(--pl-ink); padding:24px 0; margin-bottom:12px; }
.pl-kicker,.pl-tile-kicker { color:var(--pl-red); font-weight:700; font-size:12px; letter-spacing:.045em; }
.pl-page h1 { font-size:clamp(27px,4vw,43px); line-height:1.25; margin:10px 0 14px; overflow-wrap:anywhere; }
.pl-intro>p:not(.pl-kicker),.pl-owner-head>p:not(.pl-kicker) { max-width:720px; }
.pl-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin:18px 0 12px; }
.pl-button { display:inline-flex; min-height:44px; align-items:center; justify-content:center; gap:8px; padding:10px 18px; border:1px solid var(--pl-red,var(--accent,#9d2f1b)); border-radius:4px; background:var(--pl-red,var(--accent,#9d2f1b)); color:#fff; font:inherit; font-weight:700; cursor:pointer; line-height:1.4; text-align:center; }
.pl-button:hover { color:#fff; filter:brightness(.93); }
.pl-button:disabled { opacity:.55; cursor:wait; }
.pl-button.pl-secondary { color:var(--pl-ink,var(--text)); border-color:var(--pl-line,var(--line)); background:transparent; }
.pl-button.pl-secondary:hover { color:var(--pl-red,var(--accent)); filter:none; border-color:currentColor; }
.pl-text-link { display:inline-flex; align-items:center; min-height:44px; border:0; padding:6px 0; color:var(--pl-red,var(--accent)); background:none; font:inherit; font-weight:650; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.pl-privacy-note,.pl-selection-note,.pl-tile-foot,.pl-detail-by,.pl-owned p { color:var(--muted,#78716c); font-size:13px; line-height:1.65; }
.pl-privacy-note { max-width:850px; margin:12px 0; }
.pl-tiles { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr)); gap:18px; }
.pl-tile { min-width:0; border:1px solid var(--pl-line); border-top:4px solid var(--pl-red); background:var(--pl-paper); }
.pl-tile-link { display:flex; flex-direction:column; height:100%; min-height:245px; gap:12px; padding:22px; }
.pl-tile h2 { font-size:25px; line-height:1.3; margin:0; overflow-wrap:anywhere; }
.pl-tile p { margin:0 0 8px; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; white-space:pre-line; overflow-wrap:anywhere; }
.pl-tile-foot { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; margin-top:auto; }
.pl-tile-saves { color:var(--pl-red); font-size:13px; font-weight:650; }
.pl-directory-sorts { display:flex; flex-wrap:wrap; gap:8px; margin:6px 0 10px; }
.pl-directory-sorts a { display:inline-flex; align-items:center; min-height:44px; padding:8px 16px; background:var(--soft); border:1px solid var(--pl-line); border-radius:3px; font-weight:650; }
.pl-directory-sorts a[aria-current="page"] { color:#fff; background:var(--pl-ink); border-color:var(--pl-ink); }
.pl-ranking-note { margin:0 0 20px; color:var(--muted); font-size:13px; line-height:1.65; }
.pl-page :is(a,button,input,textarea):focus-visible { outline:2px solid var(--pl-red); outline-offset:3px; }
.pl-alias { color:var(--pl-ink); font-weight:650; overflow-wrap:anywhere; }
.pl-more { margin:24px 0; text-align:center; }
.pl-empty { padding:30px 22px; background:var(--soft,#eee8df); border:1px dashed var(--pl-line); margin:16px 0; }
.pl-empty>span { font-size:34px; color:var(--pl-red); }
.pl-empty h2 { margin:8px 0; font-size:23px; }
.pl-empty p { max-width:650px; }
.pl-breadcrumb { display:flex; gap:8px; flex-wrap:wrap; color:var(--muted); font-size:13px; margin:8px 0 16px; }
.pl-breadcrumb a { text-decoration:underline; }
.pl-detail-by { display:block; margin:0 0 16px; overflow-wrap:anywhere; }
.pl-description { max-width:800px; white-space:pre-line; overflow-wrap:anywhere; line-height:1.8; }
.pl-share { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-top:20px; }
.pl-share-status { font-size:13px; flex-basis:100%; }
.pl-share [data-list-manual] { flex-basis:100%; min-width:0; }
.pl-share label { display:block; font-size:13px; }
.pl-share input { display:block; width:100%; max-width:680px; min-height:44px; margin-top:6px; padding:10px; border:1px solid var(--pl-line); background:var(--pl-paper); }
.pl-game { min-width:0; display:flex; flex-direction:column; align-self:stretch; gap:10px; }
.pl-game>.card { flex:1; min-width:0; margin:0; }
.pl-game .pl-play { width:100%; margin-bottom:14px; }
.pl-owner-summary { display:flex; flex-wrap:wrap; align-items:center; gap:8px 20px; padding:12px 0; border-bottom:1px solid var(--pl-line); }
.pl-owner-summary b { color:var(--pl-red); margin-left:8px; }
.pl-private-account { margin-left:auto; color:var(--muted); font-size:12px; overflow-wrap:anywhere; }
.pl-owned { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:18px 0; border-bottom:1px solid var(--pl-line); }
.pl-owned>div { min-width:0; }
.pl-owned h2 { margin:8px 0; font-size:22px; overflow-wrap:anywhere; }
.pl-owned p { margin:0; overflow-wrap:anywhere; }
.pl-owned .pl-actions { flex-shrink:0; margin:0; }
.pl-visibility-badge { display:inline-flex; padding:3px 8px; border:1px solid var(--pl-line); border-radius:3px; font-size:12px; background:var(--soft); }
.pl-message { padding:14px 18px; border-left:4px solid var(--pl-red); background:var(--soft); overflow-wrap:anywhere; }
.pl-first-note { color:var(--muted); margin:18px 0; }
.pl-editor { margin-top:26px; border-top:2px solid var(--pl-ink); padding:24px 0; scroll-margin-top:140px; }
.pl-editor>h2 { margin:0 0 20px; font-size:26px; }
.pl-fields { max-width:800px; display:grid; gap:16px; }
.pl-fields label,.pl-selection-tools>label { display:block; font-size:14px; font-weight:650; }
.pl-fields input,.pl-fields textarea,.pl-selection-tools input { width:100%; min-height:44px; padding:11px 12px; border:1px solid var(--pl-line); border-radius:3px; background:var(--pl-paper); margin-top:6px; font:inherit; font-weight:400; }
.pl-fields textarea { resize:vertical; }
.pl-fields .pl-privacy-note { margin:-8px 0 0; }
.pl-editor fieldset { min-width:0; padding:18px; margin:24px 0; border:1px solid var(--pl-line); }
.pl-editor legend { padding:0 6px; font-weight:700; }
.pl-visibility-option { display:flex; align-items:flex-start; gap:12px; padding:14px 10px; border-bottom:1px solid var(--pl-line); cursor:pointer; }
.pl-visibility-option:last-child { border-bottom:0; }
.pl-visibility-option input { width:20px; height:20px; flex:none; accent-color:var(--pl-red); margin-top:2px; }
.pl-visibility-option strong,.pl-visibility-option small { display:block; }
.pl-visibility-option small { color:var(--muted); font-size:13px; font-weight:400; margin-top:5px; line-height:1.6; }
.pl-visibility-option:has(input:checked) { background:var(--soft); }
.pl-selection-note { margin:0 0 16px; }
.pl-selection-tools { display:flex; flex-wrap:wrap; gap:12px 18px; align-items:end; margin:12px 0; }
.pl-selection-tools>label { flex:1; min-width:180px; }
.pl-selection-tools [data-list-count] { min-height:44px; display:flex; align-items:center; font-weight:700; color:var(--pl-red); white-space:nowrap; }
.pl-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px 18px; max-height:460px; overflow:auto; overscroll-behavior:contain; padding:4px 2px; }
.pl-option { display:flex; align-items:flex-start; gap:12px; min-height:54px; padding:12px 8px; border-bottom:1px solid var(--pl-line); cursor:pointer; }
.pl-option input { width:20px; height:20px; flex:none; accent-color:var(--pl-red); margin-top:2px; }
.pl-option span { min-width:0; }
.pl-option strong,.pl-option small { display:block; overflow-wrap:anywhere; }
.pl-option strong { font-size:14px; font-weight:600; }
.pl-option small { font-size:12px; color:var(--muted); }
.pl-option:has(input:checked) { background:var(--soft); }
.pl-option:has(input:disabled) { opacity:.5; cursor:default; }
.pl-save-row { display:flex; gap:12px 20px; flex-wrap:wrap; align-items:center; }
.pl-form-status { flex-basis:100%; font-size:13px; margin:0; color:var(--pl-red); }
.player-lists-entry { --pl-red:var(--accent,#9d2f1b); --pl-ink:var(--text); --pl-line:var(--line); display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px 24px; border:1px solid var(--line) !important; border-left:5px solid var(--accent) !important; padding:18px 20px !important; margin:14px 0 20px; background:var(--soft) !important; }
.pl-entry-copy { flex:1; min-width:220px; }
.pl-entry-copy h2 { font-size:23px; margin:2px 0 6px; }
.pl-entry-copy p { margin:0; max-width:650px; font-size:14px; }
.player-lists-entry .pl-actions { margin:0; }
.pl-fav-entry { margin:20px 0; }
.pl-bookmark-form { display:inline-flex; align-items:center; flex-wrap:wrap; gap:8px; margin:0; }
.pl-bookmark-form [role="status"] { font-size:12px; color:var(--muted); }
.pl-saved-section { border-top:2px solid var(--pl-ink); margin-top:26px; padding:20px 0; scroll-margin-top:140px; }
.pl-saved-section h2 { margin:0; font-size:25px; }
.pl-saved-item h3 { margin:0 0 8px; font-size:20px; }
.pl-saved-item h3 a { text-decoration:underline; text-underline-offset:4px; }
@media(max-width:639px) {
  .pl-intro,.pl-detail-head,.pl-owner-head { padding:20px 0; }
  .pl-page h1 { font-size:29px; }
  .pl-tile-link { min-height:220px; padding:20px; }
  .pl-owned { align-items:flex-start; flex-direction:column; gap:12px; }
  .pl-private-account { flex-basis:100%; margin-left:0; }
  .pl-editor fieldset { padding:12px; }
  .pl-options { grid-template-columns:minmax(0,1fr); max-height:390px; }
  .pl-selection-tools>label { min-width:0; flex-basis:100%; }
  .pl-selection-tools { align-items:center; }
  .pl-entry-copy { min-width:0; flex-basis:100%; }
  .player-lists-entry { padding:16px !important; }
  .player-lists-entry .pl-actions { gap:8px 14px; }
  .pl-share .pl-button { flex:1 1 130px; }
}
/* A private saved-games shelf with optional lists, without a creation wizard. */
.pl-collection-head { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:16px 0 22px; border-top:2px solid var(--pl-ink); }
.pl-collection-head h1 { margin:4px 0; font-size:34px; }
.pl-collection-head .pl-kicker { margin:0; }
[data-private-collections] [hidden] { display:none !important; }
.pl-dashboard { display:grid; grid-template-columns:210px minmax(0,1fr); align-items:start; gap:28px; }
.pl-rail { min-width:0; }
.pl-list-nav { display:grid; gap:6px; }
.pl-list-nav a { min-width:0; display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:58px; padding:12px; border:1px solid var(--pl-line); border-radius:3px; }
.pl-list-nav a>span { min-width:0; overflow-wrap:anywhere; font-weight:650; }
.pl-list-nav small { display:block; margin-top:3px; font-size:11px; font-weight:400; color:var(--muted); }
.pl-list-nav b { font-size:13px; font-weight:500; flex:none; color:var(--muted); }
.pl-list-nav a.on { border-color:var(--pl-red); background:var(--soft); }
.pl-list-nav .pl-drop-ready { outline:2px dashed var(--pl-red); outline-offset:3px; background:var(--soft); }
.pl-quick-create { border-top:1px solid var(--pl-line); margin-top:18px; padding-top:14px; }
.pl-quick-create label { display:block; font-size:13px; font-weight:700; margin-bottom:8px; }
.pl-quick-create>div { display:flex; gap:6px; }
.pl-quick-create input { width:0; flex:1; min-width:0; min-height:44px; padding:9px; border:1px solid var(--pl-line); background:var(--pl-paper); color:var(--pl-ink); font:inherit; font-size:13px; }
.pl-quick-create button { flex:none; width:44px; min-height:44px; border:1px solid var(--pl-red); border-radius:3px; background:var(--pl-red); color:#fff; font-size:22px; cursor:pointer; }
.pl-quick-create small { display:block; margin:8px 0; color:var(--muted); font-size:11px; line-height:1.65; }
.pl-drag-hint { margin:16px 0 0; font-size:12px; color:var(--muted); line-height:1.7; }
.pl-collection-content { min-width:0; }
.pl-current-heading { display:flex; justify-content:space-between; align-items:start; flex-wrap:wrap; gap:6px 16px; margin-bottom:8px; }
.pl-current-heading h2 { margin:0 0 6px; font-size:26px; overflow-wrap:anywhere; }
.pl-current-heading p { margin:0; font-size:12px; color:var(--muted); }
.pl-dashboard-share { gap:6px 14px; margin:4px 0 12px; }
.pl-dashboard-share .pl-button { min-height:38px; padding:7px 11px; font-size:12px; }
.pl-list-settings { border-top:1px solid var(--pl-line); border-bottom:1px solid var(--pl-line); padding:11px 0; margin:12px 0; }
.pl-list-settings summary { cursor:pointer; font-size:13px; font-weight:650; min-height:24px; }
.pl-list-settings form { margin:18px 0 10px; }
.pl-fields select { display:block; width:100%; min-height:44px; border:1px solid var(--pl-line); background:var(--pl-paper); color:var(--pl-ink); font:inherit; margin-top:6px; padding:9px; }
.pl-list-settings .pl-button { margin-top:16px; }
.pl-dashboard-status { min-height:0; margin:10px 0; color:var(--pl-red); font-size:13px; line-height:1.65; }
.pl-dashboard-status:empty { margin:0 0 14px; }
.pl-collection-grid { grid-template-columns:repeat(auto-fill,minmax(min(100%,190px),1fr)); gap:22px 16px; }
.pl-collection-game { display:flex; flex-direction:column; gap:8px; min-width:0; }
.pl-collection-game>.card { flex:1; min-width:0; width:100%; margin:0; }
.pl-game-tools { display:grid; gap:4px; }
.pl-game-add { display:flex; align-items:stretch; gap:5px; }
.pl-game-add select { min-width:0; width:0; flex:1; padding:7px 5px; min-height:40px; font:inherit; font-size:12px; color:var(--pl-ink); background:var(--pl-paper); border:1px solid var(--pl-line); border-radius:3px; }
.pl-game-add button { min-height:40px; flex:none; padding:7px; background:var(--soft); color:var(--pl-ink); border:1px solid var(--pl-line); border-radius:3px; font:inherit; font-size:12px; cursor:pointer; }
.pl-remove-game { border:0; padding:5px 0; min-height:36px; color:var(--muted); background:none; font:inherit; font-size:12px; text-decoration:underline; text-align:left; cursor:pointer; }
.pl-game-tools :disabled { opacity:.5; cursor:wait; }
.pl-account { margin-top:24px; padding-top:14px; border-top:1px solid var(--pl-line); font-size:12px; color:var(--muted); overflow-wrap:anywhere; }
.pl-account p { margin:0 0 12px; }
.pl-account #fav-msg { display:block; margin-top:8px; }
[data-list-native-status] { display:block; margin-top:8px; font-size:12px; color:var(--pl-red); }
@media(max-width:767px) {
  .pl-collection-head { align-items:flex-start; padding:14px 0 18px; }
  .pl-collection-head h1 { font-size:29px; }
  .pl-collection-head>.pl-text-link { font-size:12px; }
  .pl-dashboard { grid-template-columns:minmax(0,1fr); gap:22px; }
  .pl-list-nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pl-list-nav a { min-height:56px; padding:9px; gap:7px; font-size:12px; }
  .pl-quick-create { display:grid; grid-template-columns:auto minmax(0,1fr); gap:6px 12px; align-items:center; margin-top:12px; padding-top:12px; }
  .pl-quick-create label { margin:0; }
  .pl-quick-create small,.pl-quick-create [data-list-native-status] { grid-column:1/-1; margin:0; }
  .pl-drag-hint { display:none; }
  .pl-current-heading h2 { font-size:23px; }
  .pl-collection-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 12px; }
  .pl-game-add { flex-wrap:wrap; }
  .pl-game-add select { width:100%; flex-basis:100%; }
  .pl-game-add button { width:100%; }
}
