/* ============================================================
   Position Trainer — SuperChessPrep
   Scoped under .pt-app. Auto-generated from the standalone CSS.
   Edit pgn-position-trainer.html's <style> and re-run the build.
   ============================================================ */

.pt-app{
    --pt-bg:#1c1a17;
    --pt-panel:#26231f;
    --pt-panel-2:#302c27;
    --pt-line:#433d35;
    --pt-ink:#ece6db;
    --pt-ink-dim:#9b9387;
    --pt-gold:#cda55b;
    --pt-gold-soft:#e5c585;
    --pt-sq-light:#f0d9b5;
    --pt-sq-dark:#b58863;
    --pt-ok:#7faa46;
    --pt-ok-deep:#5d8533;
    --pt-err:#c4554d;
    --pt-err-deep:#9c3d36;
    --pt-sel:rgba(255,228,120,.62);
    --pt-serif:'Fraunces',Georgia,'Times New Roman',serif;
    --pt-sans:'Hanken Grotesk',ui-sans-serif,system-ui,sans-serif;
  
  max-width:980px;
  margin:0 auto;
  padding:24px 18px 60px;
  font-family:var(--pt-sans);
  color:var(--pt-ink);
}
.pt-app *{box-sizing:border-box}
.pt-screen{display:none;animation:pt-rise .45s cubic-bezier(.2,.7,.2,1) both}
  .pt-screen.active{display:block}
  @keyframes pt-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

  /* ---------- quiz screen ---------- */
  .pt-grid{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:26px;align-items:start}
  @media(max-width:780px){.pt-grid{grid-template-columns:1fr}}

  .pt-card{
    background:var(--pt-panel);border:1px solid var(--pt-line);border-radius:16px;
    padding:18px;
  }
  .pt-prompt{
    display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap;
  }
  .pt-turn{
    display:flex;align-items:center;gap:7px;
    font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.12em;
    padding:5px 11px;border-radius:999px;border:1px solid var(--pt-line);
  }
  .pt-turn .pt-disc{width:13px;height:13px;border-radius:50%;border:1px solid #000}
  .pt-turn.white .pt-disc{background:#f4f1e8}
  .pt-turn.black .pt-disc{background:#1d1b18}
  .pt-ask{font-family:var(--pt-serif);font-weight:600;font-size:1.18rem}
  .pt-context{
    color:var(--pt-ink-dim);font-size:.88rem;font-style:italic;
    margin-bottom:14px;min-height:1.1em;
  }
  .pt-context .ev{font-style:normal;color:var(--pt-gold);font-weight:600;margin-right:6px}

  /* board */
  .pt-board-wrap{position:relative;width:100%;max-width:560px;margin:0 auto}
  .pt-board{
    width:100%;aspect-ratio:1;
    display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);
    border-radius:8px;overflow:hidden;
    box-shadow:0 22px 48px -22px rgba(0,0,0,.8);
    user-select:none;
    touch-action:none;       /* allow drag on touch without page-scroll fighting */
  }
  .pt-sq{position:relative;display:flex;align-items:center;justify-content:center}
  .pt-sq.light{background:var(--pt-sq-light)}
  .pt-sq.dark{background:var(--pt-sq-dark)}
  .pt-sq .pt-piece{
    width:92%;height:92%;pointer-events:none;
    -webkit-user-drag:none;user-select:none;
    filter:drop-shadow(0 2px 2px rgba(0,0,0,.32));
    transition:transform .08s;
  }
  .pt-sq.pickable{cursor:grab}
  .pt-sq.dragging-source{cursor:grabbing}
  .pt-sq.dragging-source .pt-piece{opacity:.25}
  .pt-sq.drop-target::after{content:"";position:absolute;inset:8%;border:4px solid rgba(255,255,255,.65);border-radius:50%;z-index:4;pointer-events:none}
  .pt-drag-ghost{position:fixed;pointer-events:none;z-index:9999;filter:drop-shadow(0 10px 10px rgba(0,0,0,.55));cursor:grabbing;transform:translateZ(0)}
  .pt-sq.sel::after{content:"";position:absolute;inset:0;background:var(--pt-sel)}
  .pt-sq.lastmove::before{content:"";position:absolute;inset:0;background:rgba(205,165,91,.30)}
  .pt-sq .pt-dot{
    position:absolute;width:30%;height:30%;border-radius:50%;
    background:rgba(20,22,16,.26);z-index:2;
  }
  .pt-sq .pt-ring{
    position:absolute;inset:8%;border-radius:50%;
    border:5px solid rgba(20,22,16,.26);box-sizing:border-box;z-index:2;
  }
  .pt-sq.good{animation:pt-flashGood .55s ease}
  .pt-sq.wrong{animation:pt-flashWrong .55s ease}
  @keyframes pt-flashGood{0%,100%{box-shadow:inset 0 0 0 0 transparent}45%{box-shadow:inset 0 0 0 6px var(--pt-ok)}}
  @keyframes pt-flashWrong{0%,100%{box-shadow:inset 0 0 0 0 transparent}45%{box-shadow:inset 0 0 0 6px var(--pt-err)}}
  .pt-coord{
    position:absolute;font-size:.6rem;font-weight:700;line-height:1;
    z-index:3;pointer-events:none;opacity:.7;
  }
  .pt-coord.file{right:3px;bottom:2px}
  .pt-coord.rank{left:3px;top:2px}

  .pt-board-foot{display:flex;justify-content:space-between;align-items:center;margin-top:14px;gap:12px}
  .pt-sol-slot{display:flex;align-items:center;justify-content:center;flex:1;min-height:34px}
  .pt-sol-shown{
    font-family:var(--pt-serif);font-weight:700;font-size:1rem;letter-spacing:.01em;
    padding:7px 16px;border-radius:9px;display:inline-flex;align-items:center;gap:8px;
    background:linear-gradient(180deg,rgba(127,170,70,.22),rgba(127,170,70,.08));
    border:1px solid rgba(127,170,70,.55);color:#cfe7a8;
    animation:pt-rise .3s ease both;
  }
  .pt-sol-shown .icon{font-size:.9rem;line-height:1}
  .pt-sol-shown.revealed{
    background:linear-gradient(180deg,rgba(205,165,91,.22),rgba(205,165,91,.08));
    border-color:rgba(205,165,91,.55);color:var(--pt-gold-soft);
  }
  .pt-mini{
    background:var(--pt-panel-2);border:1px solid var(--line2,rgba(255,255,255,.14));color:var(--pt-ink);
    border-radius:9px;padding:8px 14px;font-size:.82rem;font-weight:600;cursor:pointer;font-family:var(--pt-sans);
    transition:transform .12s,border-color .2s,background .2s;
  }
  .pt-mini:hover{border-color:var(--pt-gold);transform:translateY(-1px)}
  #viewSolBtn{background:rgba(205,165,91,.16);border-color:rgba(205,165,91,.4);color:var(--pt-gold-soft)}
  #viewSolBtn:hover{background:rgba(205,165,91,.26)}
  #quitBtn{background:rgba(196,85,77,.12);border-color:rgba(196,85,77,.32);color:#e0998f}
  #quitBtn:hover{background:rgba(196,85,77,.2);border-color:rgba(196,85,77,.5)}

  /* feedback panel below board */
  .pt-feedback{
    margin-top:16px;border-radius:12px;padding:15px 17px;display:none;
    border:1px solid var(--pt-line);background:var(--pt-panel-2);
  }
  .pt-feedback.show{display:block;animation:pt-rise .3s ease both}
  .pt-feedback.solved{border-color:var(--pt-ok-deep);background:rgba(127,170,70,.12)}
  .pt-feedback.revealed{border-color:var(--pt-gold);background:rgba(205,165,91,.10)}
  .pt-feedback .ftitle{font-weight:700;display:flex;align-items:center;gap:8px;margin-bottom:5px}
  .pt-feedback.solved .ftitle{color:var(--pt-ok)}
  .pt-feedback.revealed .ftitle{color:var(--pt-gold-soft)}
  .pt-feedback .fexpl{color:var(--pt-ink-dim);font-size:.9rem;line-height:1.5}
  .pt-feedback .pt-move-pill{
    font-family:var(--pt-serif);font-weight:700;
    background:#000;color:var(--pt-gold-soft);padding:1px 9px;border-radius:6px;
  }

  /* ---------- side panel ---------- */
  .pt-side{display:flex;flex-direction:column;gap:16px}
  .pt-panel{background:var(--pt-panel);border:1px solid var(--pt-line);border-radius:14px;padding:18px}
  .pt-panel h4{
    font-size:.74rem;text-transform:uppercase;letter-spacing:.18em;
    color:var(--pt-ink-dim);margin-bottom:14px;font-weight:700;
  }
  .pt-dots{display:flex;gap:8px;margin-bottom:16px}
  .pt-pdot{
    flex:1;height:7px;border-radius:999px;background:var(--pt-line);
  }
  .pt-pdot.done-ok{background:var(--pt-ok)}
  .pt-pdot.done-miss{background:var(--pt-err)}
  .pt-pdot.current{background:var(--pt-gold)}
  .pt-bignum{font-family:var(--pt-serif);font-weight:700;font-size:2.6rem;line-height:1}
  .pt-bignum .of{color:var(--pt-ink-dim);font-size:1.4rem}
  .pt-score-row{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:4px}
  .pt-score-label{color:var(--pt-ink-dim);font-size:.85rem}
  .pt-counter{font-size:.9rem;color:var(--pt-ink-dim);margin-top:10px}
  .pt-counter b{color:var(--pt-ink)}
  .pt-rules{font-size:.84rem;color:var(--pt-ink-dim);line-height:1.6}
  .pt-rules li{margin-left:16px;margin-bottom:3px}

  /* Game Notation panel */
  .pt-pgn-panel{animation:pt-rise .4s ease both}
  .pt-pgn-line{
    font-size:.92rem;line-height:1.65;color:var(--pt-ink);
    max-height:380px;overflow-y:auto;padding-right:6px;
  }
  .pt-pgn-line::-webkit-scrollbar{width:6px}
  .pt-pgn-line::-webkit-scrollbar-thumb{background:var(--pt-line);border-radius:3px}
  .pt-pgn-line .mn{
    color:var(--pt-ink-dim);font-weight:700;font-size:.82rem;
    margin-right:3px;font-variant-numeric:tabular-nums;
  }
  .pt-pgn-line .san{
    font-family:var(--pt-serif);font-weight:600;color:var(--pt-ink);
    margin-right:7px;white-space:nowrap;
  }
  .pt-pgn-line .san.sol{color:var(--pt-ok);font-weight:700}
  .pt-pgn-line .san.clickable{
    cursor:pointer;padding:1px 5px;border-radius:4px;
    transition:background .15s,color .15s;
  }
  .pt-pgn-line .san.clickable:hover{background:rgba(205,165,91,.16);color:var(--pt-gold-soft)}
  .pt-pgn-line .san.clickable.current{background:rgba(205,165,91,.32);color:var(--pt-gold-soft)}
  .pt-pgn-line .san.sol.clickable.current{background:rgba(127,170,70,.32);color:var(--pt-ok)}
  .pt-pgn-line .nag{color:var(--pt-gold);font-weight:700;margin-right:5px}
  .pt-pgn-line .comment{
    display:block;color:var(--pt-ink-dim);font-style:italic;
    font-size:.84rem;line-height:1.5;
    margin:3px 0 8px 0;padding:4px 0 4px 10px;
    border-left:2px solid var(--pt-line);
  }
  .pt-pgn-line .var{
    display:block;font-size:.86rem;color:var(--pt-ink-dim);
    margin:4px 0;padding:3px 0 3px 12px;
    border-left:2px solid rgba(205,165,91,.30);
  }
  .pt-pgn-line .var .san{color:#bdb39e}
  .pt-pgn-line .result{
    color:var(--pt-ink-dim);font-weight:700;margin-left:6px;
  }

  /* ---------- result screen ---------- */
  .pt-result{
    background:var(--pt-panel);border:1px solid var(--pt-line);border-radius:18px;
    padding:34px;text-align:center;max-width:560px;margin:0 auto;
  }
  .pt-result .pt-grade{font-family:var(--pt-serif);font-weight:700;font-size:1.05rem;letter-spacing:.16em;text-transform:uppercase;color:var(--pt-gold)}
  .pt-result .pt-final{
    font-family:var(--pt-serif);font-weight:700;font-size:5rem;line-height:1;margin:8px 0 2px;
  }
  .pt-result .pt-final .pt-slash{color:var(--pt-ink-dim)}
  .pt-result .pt-verdict{color:var(--pt-ink-dim);margin-bottom:24px}
  .pt-breakdown{text-align:left;display:flex;flex-direction:column;gap:9px;margin-bottom:8px}
  .pt-brow{
    display:flex;align-items:center;gap:12px;
    background:var(--pt-panel-2);border:1px solid var(--pt-line);border-radius:10px;
    padding:11px 14px;
  }
  .pt-brow .bicon{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:700;flex-shrink:0}
  .pt-brow .bicon.ok{background:rgba(127,170,70,.2);color:var(--pt-ok)}
  .pt-brow .bicon.miss{background:rgba(196,85,77,.2);color:var(--pt-err)}
  .pt-brow .bname{font-weight:600}
  .pt-brow .bstat{color:var(--pt-ink-dim);font-size:.84rem}
  .pt-brow .bmove{margin-left:auto;font-family:var(--pt-serif);font-weight:700;color:var(--pt-gold-soft)}

  /* ---------- modal (pop-up error) ---------- */
  .pt-overlay{
    position:fixed;inset:0;background:rgba(10,9,8,.72);
    display:none;align-items:center;justify-content:center;padding:22px;z-index:50;
    backdrop-filter:blur(3px);
  }
  .pt-overlay.show{display:flex;animation:pt-fade .2s ease both}
  @keyframes pt-fade{from{opacity:0}to{opacity:1}}
  .pt-modal{
    background:var(--pt-panel);border:1px solid var(--pt-err-deep);border-radius:16px;
    max-width:430px;width:100%;padding:26px;
    box-shadow:0 30px 70px -20px rgba(0,0,0,.85);
    animation:pt-pop .28s cubic-bezier(.2,.8,.2,1) both;
  }
  @keyframes pt-pop{from{opacity:0;transform:scale(.9) translateY(10px)}to{opacity:1;transform:none}}
  .pt-modal .mhead{display:flex;align-items:center;gap:12px;margin-bottom:12px}
  .pt-modal .mx{
    width:42px;height:42px;border-radius:50%;flex-shrink:0;
    background:rgba(196,85,77,.16);color:var(--pt-err);
    display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:800;
    border:1px solid var(--pt-err-deep);
  }
  .pt-modal h3{font-family:var(--pt-serif);font-weight:600;font-size:1.3rem}
  .pt-modal .mbody{color:var(--pt-ink-dim);font-size:.93rem;line-height:1.55;margin-bottom:20px}
  .pt-modal .mbody .pill{
    font-family:var(--pt-serif);font-weight:700;color:var(--pt-ink);
    background:var(--pt-panel-2);padding:1px 8px;border-radius:5px;
  }
  .pt-modal .mbtns{display:flex;gap:10px}
  .pt-modal .mbtns .pt-btn{flex:1;padding:11px 14px;font-size:.9rem}


/* ---------- loading / error / setup (picker) ---------- */
.pt-app .pt-load{text-align:center;padding:60px 20px;color:var(--pt-ink-dim)}
.pt-app .pt-spin{
  width:42px;height:42px;margin:0 auto 16px;border-radius:50%;
  border:3px solid rgba(205,165,91,.22);border-top-color:var(--pt-gold);
  animation:pt-spin 1s linear infinite;
}
@keyframes pt-spin{to{transform:rotate(360deg)}}
.pt-app .pt-fatal{
  background:var(--pt-panel);border:1px solid var(--pt-err-deep);border-radius:14px;
  padding:26px;text-align:center;max-width:520px;margin:30px auto;
}
.pt-app .pt-fatal h3{font-family:var(--pt-serif);color:var(--pt-err);font-size:1.3rem;margin-bottom:8px}
.pt-app .pt-fatal p{color:var(--pt-ink-dim);font-size:.92rem;margin-bottom:14px}

.pt-app .pt-lead{font-family:var(--pt-serif);font-weight:700;font-size:2.05rem;line-height:1.15;margin-bottom:8px;color:var(--pt-gold)}
.pt-app .pt-sub{color:var(--pt-ink-dim);font-size:1rem;max-width:60ch;margin-bottom:26px}

.pt-app .pt-setup{
  background:var(--pt-panel);border:1px solid var(--pt-line);border-radius:14px;
  padding:20px 22px;max-width:640px;
}
.pt-app .pt-field{margin-bottom:18px}
.pt-app .pt-field:last-child{margin-bottom:0}
.pt-app .pt-field label{
  display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;
  color:var(--pt-ink-dim);margin-bottom:9px;font-weight:700;
}
.pt-app .pt-select{
  width:100%;background:var(--pt-panel-2);color:var(--pt-ink);
  border:1px solid var(--pt-line);border-radius:10px;padding:12px 14px;
  font-family:var(--pt-sans);font-size:.95rem;cursor:pointer;
}
.pt-app .pt-stepper{display:inline-flex;align-items:center;border:1px solid var(--pt-line);border-radius:10px;overflow:hidden}
.pt-app .pt-stepper button{
  background:var(--pt-panel-2);border:0;color:var(--pt-ink);
  width:42px;height:44px;font-size:1.3rem;cursor:pointer;transition:background .15s;
}
.pt-app .pt-stepper button:hover{background:var(--pt-line)}
.pt-app .pt-stepper .pt-val{width:58px;text-align:center;font-weight:700;font-size:1.1rem;font-variant-numeric:tabular-nums}
.pt-app .pt-meta{color:var(--pt-ink-dim);font-size:.84rem;margin-top:9px}

/* ---------- buttons ---------- */
.pt-app .pt-btn{
  font-family:var(--pt-sans);font-weight:700;font-size:.96rem;
  border:0;border-radius:11px;padding:13px 26px;cursor:pointer;
  transition:transform .12s,box-shadow .2s,background .2s;
  letter-spacing:.01em;text-decoration:none;display:inline-block;
}
.pt-app .pt-btn:active{transform:translateY(1px)}
.pt-app .pt-btn-gold{background:linear-gradient(180deg,var(--pt-gold-soft),var(--pt-gold));color:#2a2113;box-shadow:0 6px 18px -8px rgba(205,165,91,.7)}
.pt-app .pt-btn-gold:hover{background:linear-gradient(180deg,#eed29a,var(--pt-gold-soft))}
.pt-app .pt-btn-ghost{background:var(--pt-panel-2);color:var(--pt-ink);border:1px solid var(--pt-line)}
.pt-app .pt-btn-ghost:hover{background:var(--pt-line)}
.pt-app .pt-btn-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}
.pt-app .pt-btn[disabled]{opacity:.4;cursor:not-allowed}

/* ---------- dashboard (Editorial) ---------- */
.pt-app .pt-back{
  display:inline-flex;align-items:center;gap:6px;
  background:var(--pt-panel-2);border:1px solid var(--pt-line2,rgba(255,255,255,.14));
  color:var(--pt-ink);font-family:var(--pt-sans);font-weight:600;
  font-size:.84rem;cursor:pointer;padding:8px 16px;border-radius:999px;margin-bottom:18px;
  transition:border-color .2s,transform .12s,background .2s,color .2s;
}
.pt-app .pt-back:hover{border-color:var(--pt-gold);color:var(--pt-gold-soft);transform:translateX(-2px)}

/* Pagination controls below the dashboard grid */
.pt-app .pt-pagination{
  display:flex;justify-content:center;align-items:center;gap:6px;
  margin:32px auto 8px;flex-wrap:wrap;
}
.pt-app .pt-page-btn{
  min-width:38px;height:38px;padding:0 12px;
  background:var(--pt-panel-2);border:1px solid var(--pt-line2,rgba(255,255,255,.14));
  color:var(--pt-ink);font-family:var(--pt-sans);font-weight:600;font-size:.88rem;
  border-radius:10px;cursor:pointer;
  transition:border-color .2s,background .2s,color .2s,transform .12s;
}
.pt-app .pt-page-btn:hover:not(:disabled){border-color:var(--pt-gold);color:var(--pt-gold-soft);transform:translateY(-1px)}
.pt-app .pt-page-btn.active{
  background:linear-gradient(180deg,rgba(205,165,91,.22),rgba(205,165,91,.14));
  border-color:rgba(205,165,91,.55);color:var(--pt-gold-soft);
}
.pt-app .pt-page-btn:disabled{opacity:.35;cursor:not-allowed}
.pt-app .pt-page-nav{font-size:1.1rem;font-weight:700}
.pt-app .pt-page-ellipsis{color:var(--pt-ink-dim);padding:0 4px;font-weight:600}

/* Featured tag on study cards */
.pt-app .pt-dashcard-feat{color:var(--pt-gold-soft);font-weight:700;letter-spacing:.04em}

/* Per-card progress bar */
.pt-app .pt-dashcard-progress{margin:10px 0 4px}
.pt-app .pt-dashcard-progbar{
  height:6px;background:rgba(255,255,255,.07);border-radius:999px;overflow:hidden;margin-bottom:6px;
}
.pt-app .pt-dashcard-progbar > span{
  display:block;height:100%;
  background:linear-gradient(90deg,var(--pt-gold-soft),var(--pt-gold));
  border-radius:999px;transition:width .3s;
}
.pt-app .pt-dashcard-progtxt{font-size:.78rem;color:var(--pt-ink-dim);font-weight:600;letter-spacing:.02em}

/* Mode tabs on the setup screen */
.pt-app .pt-mode-tabs{
  display:flex;gap:6px;flex-wrap:wrap;
  background:rgba(255,255,255,.04);border:1px solid var(--pt-line2,rgba(255,255,255,.1));
  border-radius:14px;padding:5px;margin:6px 0 18px;
}
/* Inner setup box: keep the original ~640px width, just centre it horizontally. */
.pt-app .pt-setup{margin-left:auto;margin-right:auto}

/* Big primary "Start training" button — green, prominent, the only CTA on the setup screen. */
.pt-app .pt-btn-green{
  background:linear-gradient(180deg,#4ea868,#3e8a55);color:#fff;
  border:0;font-weight:700;font-size:1rem;padding:14px 32px;border-radius:12px;
  cursor:pointer;font-family:var(--pt-sans);letter-spacing:.01em;
  box-shadow:0 8px 24px -10px rgba(62,138,85,.55);
  transition:transform .12s,box-shadow .2s,background .2s;
}
.pt-app .pt-btn-green:hover{
  background:linear-gradient(180deg,#5cb877,#479a61);
  transform:translateY(-1px);
  box-shadow:0 12px 28px -10px rgba(62,138,85,.7);
}
.pt-app .pt-btn-green:active{transform:translateY(0)}

/* "Next position" button pinned to the top of the quiz prompt — desktop only. */
.pt-app .pt-prompt{position:relative}
.pt-app .pt-next-top{
  position:absolute;top:-2px;right:0;
  background:var(--pt-panel-2);color:var(--pt-ink);
  border:1px solid var(--pt-line2,rgba(255,255,255,.14));
  font-family:var(--pt-sans);font-weight:600;font-size:.85rem;
  padding:8px 16px;border-radius:10px;cursor:pointer;
  transition:border-color .2s,background .2s,transform .12s,color .2s;
}
.pt-app .pt-next-top:hover{
  border-color:var(--pt-gold);color:var(--pt-gold-soft);
  transform:translateY(-1px);
}
@media (max-width:900px){
  .pt-app .pt-next-top{display:none}
}
.pt-app .pt-mode-tab{
  flex:1;min-width:120px;padding:9px 14px;
  background:transparent;border:0;border-radius:10px;
  color:var(--pt-ink-dim);font-family:var(--pt-sans);font-weight:600;font-size:.86rem;cursor:pointer;
  transition:background .18s,color .18s;
}
.pt-app .pt-mode-tab:hover{color:var(--pt-ink)}
.pt-app .pt-mode-tab.active{
  background:linear-gradient(180deg,rgba(205,165,91,.22),rgba(205,165,91,.12));
  color:var(--pt-gold-soft);box-shadow:inset 0 0 0 1px rgba(205,165,91,.4);
}

/* Filter pills (Random + Pick) */
.pt-app .pt-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.pt-app .pt-pill{
  padding:6px 14px;border-radius:999px;
  background:var(--pt-panel-2);border:1px solid var(--pt-line2,rgba(255,255,255,.14));
  color:var(--pt-ink-dim);font-family:var(--pt-sans);font-size:.82rem;font-weight:600;cursor:pointer;
  transition:border-color .2s,background .2s,color .2s;
}
.pt-app .pt-pill:hover{color:var(--pt-ink);border-color:var(--pt-gold)}
.pt-app .pt-pill.active{
  background:rgba(205,165,91,.18);color:var(--pt-gold-soft);
  border-color:rgba(205,165,91,.55);
}

/* Pick mode: action row + list */
.pt-app .pt-pick-actions{display:flex;align-items:center;gap:10px;margin:14px 0 8px;flex-wrap:wrap}
.pt-app .pt-pick-count{color:var(--pt-ink-dim);font-size:.85rem;margin-left:auto}
.pt-app .pt-pick-count b{color:var(--pt-gold-soft)}
.pt-app .pt-picklist{
  max-height:340px;overflow:auto;
  border:1px solid var(--pt-line2,rgba(255,255,255,.12));
  border-radius:12px;padding:6px;background:rgba(255,255,255,.02);
}
.pt-app .pt-picklist-empty{padding:22px;text-align:center;color:var(--pt-ink-dim);font-size:.9rem}
.pt-app .pt-pickrow{
  display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:8px;cursor:pointer;font-size:.9rem;
  transition:background .15s;
}
.pt-app .pt-pickrow:hover{background:rgba(255,255,255,.04)}
.pt-app .pt-pickrow input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--pt-gold)}
.pt-app .pt-pickname{color:var(--pt-ink);font-weight:500}
.pt-app .pt-pickbadge{
  width:22px;height:22px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.07);color:var(--pt-ink-dim);font-size:.78rem;font-weight:700;flex-shrink:0;
}
.pt-app .pt-pickbadge-done{background:rgba(120,180,120,.22);color:#9ed79b}
.pt-app .pt-pickbadge-failed{background:rgba(196,85,77,.22);color:#e0998f}

/* board-foot buttons — filled accents (ids are pt- prefixed in the integrated build) */
.pt-app #pt-view-sol{background:rgba(205,165,91,.16);border-color:rgba(205,165,91,.42);color:var(--pt-gold-soft)}
.pt-app #pt-view-sol:hover{background:rgba(205,165,91,.26);border-color:rgba(205,165,91,.6)}
.pt-app #pt-quit{background:rgba(196,85,77,.12);border-color:rgba(196,85,77,.34);color:#e0998f}
.pt-app #pt-quit:hover{background:rgba(196,85,77,.2);border-color:rgba(196,85,77,.55)}

.pt-app .pt-dash-hero{text-align:center;padding:6px 0 2px}
.pt-app .pt-dash-kik{font-family:var(--pt-sans);font-size:.74rem;letter-spacing:.34em;text-transform:uppercase;color:var(--pt-gold);margin-bottom:16px}
.pt-app .pt-dash-h1{font-family:var(--pt-serif);font-weight:600;font-size:clamp(2.4rem,5.5vw,3.8rem);line-height:1;letter-spacing:-.02em;color:var(--pt-ink)}
.pt-app .pt-dash-h1 em{font-style:italic;color:var(--pt-gold-soft)}
.pt-app .pt-dash-sub{color:var(--pt-ink-dim);max-width:540px;margin:16px auto 0;font-size:1rem;line-height:1.55}
.pt-app .pt-dash-rule{width:56px;height:1px;background:var(--pt-gold);margin:26px auto 0;opacity:.6}

.pt-app .pt-preset-bar{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin:30px 0 36px}
.pt-app .pt-preset{
  font-family:var(--pt-serif);font-size:.95rem;cursor:pointer;
  padding:7px 4px;border:0;background:none;color:var(--pt-ink-dim);
  border-bottom:1.5px solid transparent;transition:.15s;
}
.pt-app .pt-preset:hover{color:var(--pt-ink)}
.pt-app .pt-preset.active{color:var(--pt-gold-soft);border-color:var(--pt-gold)}

.pt-app .pt-dashcard-grid{display:grid;grid-template-columns:1fr;gap:22px}
@media(min-width:760px){.pt-app .pt-dashcard-grid{grid-template-columns:1fr 1fr}}
.pt-app .pt-dashcard{
  display:flex;gap:22px;cursor:pointer;position:relative;overflow:hidden;
  background:linear-gradient(180deg,var(--pt-panel-2),var(--pt-panel));
  border:1px solid var(--pt-line);border-radius:4px;padding:22px;
  transition:transform .2s,border-color .2s;
}
.pt-app .pt-dashcard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--pt-gold);transform:scaleY(0);transform-origin:top;transition:transform .25s}
.pt-app .pt-dashcard:hover{border-color:var(--pt-line2,rgba(255,255,255,.14));transform:translateY(-3px)}
.pt-app .pt-dashcard:hover::before{transform:scaleY(1)}
.pt-app .pt-dashcard-board{flex-shrink:0;width:128px;height:128px;border-radius:3px;overflow:hidden;box-shadow:0 12px 26px -16px rgba(0,0,0,.85)}
.pt-app .pt-dashmini{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);width:100%;height:100%}
.pt-app .pt-dashmini-sq{position:relative;display:flex;align-items:center;justify-content:center}
.pt-app .pt-dashmini-sq.l{background:var(--pt-sq-light)}
.pt-app .pt-dashmini-sq.d{background:var(--pt-sq-dark)}
.pt-app .pt-dashmini-sq img{width:100%;height:100%}
.pt-app .pt-dashcard-board-rand{display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 40%,#3a3119,#161109);font-size:2.6rem}
.pt-app .pt-dashcard-random{align-items:center}
.pt-app .pt-dashcard-body{flex:1;min-width:0}
.pt-app .pt-dashcard-num{font-family:var(--pt-serif);font-size:.78rem;color:var(--pt-gold);letter-spacing:.06em;margin-bottom:8px}
.pt-app .pt-dashcard-title{font-family:var(--pt-serif);font-weight:600;font-size:1.25rem;line-height:1.15;color:var(--pt-ink);margin-bottom:8px}
.pt-app .pt-dashcard-desc{color:var(--pt-ink-dim);font-size:.88rem;line-height:1.45;margin-bottom:16px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pt-app .pt-dashcard-foot{display:flex;gap:18px;flex-wrap:wrap;font-size:.8rem;color:var(--pt-ink-faint,var(--pt-ink-dim));font-variant-numeric:tabular-nums}
.pt-app .pt-dashcard-ch{color:var(--pt-gold-soft)}
