/* Coach dashboard — drill library + program builder UI. */
  .drop{border:2px dashed var(--line);border-radius:6px;background:#fff;padding:30px 20px;text-align:center;transition:.15s;cursor:pointer;}
  .drop:hover,.drop.over{border-color:var(--stitch);background:#fffdf9;}
  .drop svg{width:32px;height:32px;opacity:.35;margin-bottom:10px;}
  .drop .t{font-family:'Oswald',sans-serif;font-size:14px;letter-spacing:1px;text-transform:uppercase;}
  .drop .s{font-size:11px;color:var(--txt-mute);margin-top:6px;}

  .or{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--txt-mute);font-size:11px;letter-spacing:2px;text-transform:uppercase;}
  .or::before,.or::after{content:"";flex:1;height:1px;background:var(--line);}
  .quickadd{background:#fff;border:1px solid var(--line);border-left:3px solid var(--stitch);border-radius:0 4px 4px 0;padding:14px;margin-top:16px;}
  .qa-label{font-family:'Oswald',sans-serif;font-size:12px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--stitch-2);margin-bottom:10px;}
  .qa-row{display:flex;gap:8px;flex-wrap:wrap;}
  .qa-row #qaLink{flex:2;min-width:200px;}
  .qa-row #qaName{flex:1;min-width:130px;}
  .qa-row input,.qa-row select{font-family:'Poppins';font-size:12px;padding:8px 10px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--ink);}
  .qa-row input:focus,.qa-row select:focus{outline:none;border-color:var(--stitch);}
  .qa-hint{font-size:11px;color:var(--txt-mute);margin-top:8px;}
  textarea{width:100%;min-height:110px;font-family:'Courier New',monospace;font-size:12px;padding:12px;border:1px solid var(--line);border-radius:4px;background:#fff;resize:vertical;}
  textarea:focus{outline:none;border-color:var(--stitch);}
  .fmt{background:var(--cream-2);border-radius:4px;padding:12px 14px;font-size:11.5px;color:#4A473E;line-height:1.7;margin-top:14px;}
  .fmt code{background:#fff;padding:1px 6px;border-radius:3px;font-size:11px;}
  .fmt b{color:var(--stitch-2);}

  table{width:100%;border-collapse:collapse;font-size:12.5px;}
  th{text-align:left;font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--txt-mute);font-weight:600;padding:8px;border-bottom:1px solid var(--line);}
  td{padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:middle;}
  td input,td select{width:100%;font-family:'Poppins';font-size:12px;padding:6px 8px;border:1px solid var(--line);border-radius:3px;background:#fff;color:var(--ink);}
  td input:focus,td select:focus{outline:none;border-color:var(--stitch);}
  .td-code{width:54px;} .td-code input{font-family:'Oswald';color:var(--stitch);font-weight:600;text-align:center;}
  .td-cat{width:120px;} .td-dose{width:70px;}
  .td-yt{width:155px;} .td-drive{width:122px;} .td-status{width:118px;} .td-actions{width:195px;white-space:normal;}

  /* Name-priority layout for the Drill Library table (YouTube-migration readability).
     Name gets a wide, non-shrinking column; the section widens on large screens so all
     9 columns fit a 1920 display without horizontal scrolling. CSS-only; no markup/JS change. */
  #tbl td input, #tbl td select{min-width:0;}                               /* let the column widths win over input intrinsic size */
  #tbl th:nth-child(2), #tbl td:nth-child(2){width:265px;min-width:250px;}  /* Name — widest, does not shrink */
  #tbl th:nth-child(4), #tbl td:nth-child(4){min-width:148px;}              /* Coaching "why" — absorbs leftover space */
  @media (min-width:1200px){ #tab-library .wrap{max-width:1360px;} }
  .rmv{background:none;border:none;color:var(--txt-mute);font-size:18px;line-height:1;padding:2px 6px;}
  .rmv:hover{color:var(--stitch);}

  /* CP1 — exercise sync preview (coach -> Supabase) */
  .sync-preview{margin-top:12px;}
  .sync-summary{font-size:12.5px;color:var(--txt-mute);margin-bottom:8px;}
  .sync-summary b{color:var(--ink);}
  .sync-summary .mis-txt{color:var(--stitch);}
  .sync-summary .sync-scope{margin-left:6px;font-style:italic;}
  .sync-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:6px;}
  .sync-table{width:100%;border-collapse:collapse;font-size:12.5px;}
  .sync-table th{text-align:left;font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--txt-mute);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--line);background:var(--cream-3);}
  .sync-table td{padding:7px 10px;border-bottom:1px solid var(--line);vertical-align:middle;}
  .sync-table tr:last-child td{border-bottom:none;}
  .sync-table .st-code{font-family:'Oswald',sans-serif;font-weight:600;color:var(--stitch);}
  .sync-table .st-change{font-size:11px;color:var(--txt-mute);}
  .sync-table tr.k-unchanged{opacity:.6;}
  .sync-badge{font-family:'Oswald',sans-serif;font-size:9px;letter-spacing:1px;text-transform:uppercase;font-weight:600;padding:3px 8px;border-radius:999px;white-space:nowrap;}
  .sync-badge.ins{background:#e6f0e0;color:#3f6b32;}
  .sync-badge.upd{background:#fff3d6;color:#8a5a00;}
  .sync-badge.unc{background:#ececec;color:#8a8577;}
  .sync-badge.mis{background:#ffe3e3;color:var(--stitch-2);}

  /* CP2 — publish to athlete */
  .pub-target{font-size:13px;color:var(--ink);margin:6px 0 12px;}
  .pub-target .pub-none{color:var(--txt-mute);}
  .pub-note{font-size:11.5px;color:var(--txt-mute);margin-top:6px;font-style:italic;}
  .pub-warn{background:#ffe3e3;border:1px solid #f3c4bd;border-left:3px solid var(--stitch);border-radius:4px;padding:10px 14px;font-size:12.5px;color:#7a2018;line-height:1.6;}
  .pub-warn b{color:var(--stitch-2);}

  /* Phase 1 video management — legacy note, video status, per-row actions, search/filter */
  .legacy-note{background:#fff8e6;border:1px solid #f0e2b8;border-left:3px solid #e0a800;border-radius:4px;padding:10px 14px;font-size:12px;color:#5c5747;line-height:1.65;margin:12px 0;}
  .legacy-note b{color:var(--ink);}
  .yt-tag{background:#ffe3e3;color:#c0392b;padding:1px 6px;border-radius:3px;font-weight:600;white-space:nowrap;}
  .drive-tag{background:#eef1f5;color:#4a5568;padding:1px 6px;border-radius:3px;font-weight:600;white-space:nowrap;}

  .lib-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:14px;}
  .lib-search{flex:1;min-width:220px;font-family:'Poppins';font-size:13px;padding:9px 12px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--ink);}
  .lib-search:focus{outline:none;border-color:var(--stitch);}
  .lib-filter{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--txt-mute);display:flex;align-items:center;gap:8px;}
  .lib-filter select{font-family:'Poppins';font-size:13px;padding:8px 10px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--ink);text-transform:none;letter-spacing:0;}
  .lib-filter select:focus{outline:none;border-color:var(--stitch);}

  .vs-select{font-weight:600;}
  .vs-Missing{color:#8a8577;}
  .vs-Ready{color:#1c7c3a;}
  .vs-Needs-Review{color:#b5771a;}
  .vs-Broken{color:#c0392b;}

  .act{font-family:'Oswald',sans-serif;font-size:10px;letter-spacing:.5px;text-transform:uppercase;font-weight:600;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:3px;padding:5px 8px;margin-right:4px;cursor:pointer;transition:.12s;}
  .act:hover{border-color:var(--stitch);color:var(--stitch);}
  .act.save{background:var(--ink);color:var(--cream);border-color:var(--ink);}
  .act.save:hover{color:var(--cream);opacity:.88;}
  .act.save,.act.cancel{display:none;}
  tr.dirty .act.save,tr.dirty .act.cancel{display:inline-block;}
  tr.dirty{background:#fffdf5;}

  .stat{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;color:var(--txt-mute);}
  .stat b{color:var(--ink);}
  .scroll{overflow-x:auto;margin-top:12px;}
  /* program builder */
  .pb-weekbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px;background:var(--cream-3);border:1px solid var(--line);border-radius:6px;padding:12px 16px;}
  .pb-weeknote{font-size:12px;color:var(--txt-mute);flex:1;min-width:170px;}
  .pb-weeknav{display:flex;gap:6px;flex-wrap:wrap;}
  .pb-weeknav button{font-family:'Oswald',sans-serif;font-size:13px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--ink);background:#fff;border:1px solid var(--line);padding:10px 18px;border-radius:3px;transition:.12s;}
  .pb-weeknav button:hover{border-color:var(--stitch);}
  .pb-weeknav button.active{background:var(--ink);border-color:var(--ink);color:var(--cream);}
  .pb-weeknav button .cnt{font-size:10px;opacity:.7;margin-left:6px;}
  #pbCopyPrev:disabled{opacity:.4;cursor:default;}
  .c-count{font-family:'Poppins';font-size:11px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--txt-mute);margin-left:auto;}
  .pb-daynav{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px;}
  .pb-daynav button{font-family:'Oswald',sans-serif;font-size:13px;font-weight:500;letter-spacing:1px;text-transform:uppercase;color:var(--ink);background:#fff;border:1px solid var(--line);padding:9px 15px;border-radius:3px;transition:.12s;}
  .pb-daynav button:hover{border-color:var(--stitch);}
  .pb-daynav button.active{background:var(--stitch);border-color:var(--stitch);color:#fff;}
  .pb-daynav button.rest{opacity:.45;}
  .pb-daynav button .cnt{font-size:10px;opacity:.7;margin-left:5px;}
  .toggle-rest{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--txt-mute);cursor:pointer;}
  .toggle-rest input{width:16px;height:16px;accent-color:var(--stitch);}
  .pb-copyday{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 14px;}
  .pb-copyday select{font-family:'Poppins';font-size:12px;padding:7px 10px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--ink);}
  .pb-copyday select:focus{outline:none;border-color:var(--stitch);}
  .pb-meta{padding:14px;background:var(--cream);border:1px solid var(--line);border-radius:8px;margin:0 0 16px;}
  .pb-meta .pm-line{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:12px;}
  .pb-meta .pm-field{margin-bottom:12px;flex:1;min-width:200px;}
  .pb-meta .pm-field:last-child{margin-bottom:0;}
  .pb-meta .pm-mins{flex:0 0 120px;min-width:110px;}
  .pb-meta label{display:block;font-family:'Oswald',sans-serif;font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--txt-mute);margin-bottom:6px;}
  .pb-meta textarea,.pb-meta input{width:100%;font-family:'Poppins',sans-serif;font-size:13px;padding:9px 11px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink);resize:vertical;}
  .pb-meta textarea:focus,.pb-meta input:focus{outline:none;border-color:var(--stitch);}
  .pm-intensity{display:flex;gap:6px;flex-wrap:wrap;}
  .pm-intensity button{font-family:'Oswald',sans-serif;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--ink);background:#fff;border:1px solid var(--line);padding:9px 13px;border-radius:20px;cursor:pointer;transition:.12s;}
  .pm-intensity button:hover{border-color:var(--stitch);}
  .pm-intensity button.active[data-val="Recovery"]{background:var(--sage);border-color:var(--sage);color:#fff;}
  .pm-intensity button.active[data-val="Build"]{background:var(--gold,#B58B2A);border-color:var(--gold,#B58B2A);color:#fff;}
  .pm-intensity button.active[data-val="High Intent"]{background:var(--stitch);border-color:var(--stitch);color:#fff;}

  /* the day's plan, grouped by block */
  .pb-blockgroup{margin-bottom:16px;}
  .pb-blockgroup .bg-title{font-family:'Oswald',sans-serif;font-size:12px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--stitch-2);margin-bottom:8px;display:flex;align-items:center;gap:8px;}
  .pb-blockgroup .bg-title::after{content:"";flex:1;height:1px;background:var(--line);}
  .pb-item{display:flex;align-items:center;gap:12px;background:var(--cream-3);border:1px solid var(--line);border-left:3px solid var(--ink);border-radius:0 4px 4px 0;padding:9px 12px;margin-bottom:6px;}
  .pb-item .pi-code{font-family:'Oswald';font-size:11px;font-weight:600;letter-spacing:.5px;color:var(--stitch);min-width:38px;}
  .pb-item .pi-name{flex:1;font-size:13px;font-weight:600;}
  .pb-item .pi-dose{width:110px;}
  .pb-item .pi-dose input{width:100%;font-family:'Poppins';font-size:12px;padding:6px 9px;border:1px solid var(--line);border-radius:3px;background:#fff;}
  .pb-item .pi-dose input:focus{outline:none;border-color:var(--stitch);}
  .pb-item .pi-move{display:flex;flex-direction:column;gap:1px;}
  .pb-item .pi-move button{background:none;border:none;color:var(--txt-mute);cursor:pointer;font-size:11px;line-height:1;padding:1px 3px;}
  .pb-item .pi-move button:hover{color:var(--ink);}
  .pb-item .pi-rmv{background:none;border:none;color:var(--txt-mute);font-size:17px;line-height:1;padding:2px 5px;cursor:pointer;}
  .pb-item .pi-rmv:hover{color:var(--stitch);}

  /* drill picker */
  .pb-pick-controls{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;}
  .pb-pick-controls #pbSearch{flex:2;min-width:200px;font-family:'Poppins';font-size:13px;padding:9px 11px;border:1px solid var(--line);border-radius:4px;background:#fff;}
  .pb-pick-controls #pbBlockFilter{flex:1;min-width:140px;font-family:'Poppins';font-size:13px;padding:9px 11px;border:1px solid var(--line);border-radius:4px;background:#fff;}
  .pb-pick-controls input:focus,.pb-pick-controls select:focus{outline:none;border-color:var(--stitch);}
  .pb-libgroup{margin-bottom:14px;}
  .pb-libgroup .lg-t{font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--txt-mute);font-weight:600;margin-bottom:6px;}
  .pb-pill{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:6px 12px;margin:0 6px 6px 0;font-size:12.5px;cursor:pointer;transition:.12s;}
  .pb-pill:hover{border-color:var(--stitch);background:#fffdf9;}
  .pb-pill.added{background:var(--sage);border-color:var(--sage);color:#fff;cursor:default;}
  .pb-pill .pp-code{font-family:'Oswald';font-size:10px;font-weight:600;opacity:.7;}
  .pb-pill .pp-plus{font-weight:700;color:var(--stitch);}
  .pb-pill.added .pp-plus{color:#fff;}
  .pb-restmsg{text-align:center;padding:36px 20px;color:var(--txt-mute);}
  .pb-restmsg .big{font-family:'Oswald',sans-serif;font-size:22px;letter-spacing:1px;text-transform:uppercase;color:var(--ink);opacity:.35;}
