/*
 * CP Coaching portal panel styles — built on the INC Vision tokens (with fallbacks).
 * v1.0.0
 */
.cp-panel { --_accent: var(--inc-accent,#000000); --_line: var(--inc-line,#e8e8e8); --_muted: var(--inc-muted,#555); }
.cp-table { width:100%; border-collapse:collapse; margin:.5rem 0 1rem; }
.cp-table th, .cp-table td { text-align:left; padding:.5rem .6rem; border-bottom:1px solid var(--_line); }
.cp-table th { font-size:.8rem; text-transform:uppercase; letter-spacing:.06em; color:var(--_muted); }
.cp-list { list-style:none; padding:0; margin:.5rem 0 1rem; display:grid; gap:.6rem; }
.cp-list li { padding:.6rem .75rem; border:1px solid var(--_line); border-radius:var(--inc-radius,10px); background:var(--inc-white,#fff); }
.cp-list li.cp-done { opacity:.6; text-decoration:line-through; }
.cp-muted { color:var(--_muted); font-size:.92rem; }
.cp-chip { display:inline-block; font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; padding:.12rem .5rem; border-radius:999px; background:var(--_accent); color:#fff; vertical-align:middle; }
.cp-chip-soft { background:#ececec; color:#1a1a1a; }
.cp-link { color:var(--_accent); text-decoration:none; font-weight:600; }
.cp-inline { display:inline; margin-left:.4rem; }
.cp-disclosure { margin:.5rem 0 1.25rem; border:1px dashed var(--_line); border-radius:var(--inc-radius,10px); padding:.5rem .75rem; }
.cp-disclosure summary { cursor:pointer; font-weight:600; color:var(--_accent); }
.cp-disclosure .cp-form { margin-top:.75rem; }

/* ---- Bookings (added v1.3.0) ---- */
.cp-bookings { display:flex; gap:.6rem; flex-wrap:wrap; margin:.5rem 0 1.25rem; }
.cp-bookings .cp-btn { display:inline-block; background:var(--inc-accent,#000000); color:#fff; text-decoration:none; padding:.6rem 1.2rem; border-radius:var(--inc-radius,10px); }
.cp-bookings .cp-btn:hover { background:var(--inc-accent-ink,#333333); }
.cp-bookings .cp-btn-soft { background:transparent; border:1px solid var(--inc-line,#e8e8e8); color:var(--inc-accent,#000000); }
.cp-bookings .cp-btn-soft:hover { border-color:var(--inc-accent,#000000); }

/* ---- Leads (added v1.4.0) ---- */
.cp-lead-actions { display:flex; gap:.5rem; align-items:center; margin-top:.5rem; flex-wrap:wrap; }
.cp-lead-form { max-width:520px; }

/* ---- Coaching questions + tracking (added v1.7.0) ---- */
.cp-qa { margin:.5rem 0 0; padding:.5rem .75rem; border-left:3px solid var(--_line,#e8e8e8); display:grid; gap:.35rem; }
.cp-qa dt { font-size:.78rem; text-transform:uppercase; letter-spacing:.04em; color:var(--_muted,#555); }
.cp-qa dd { margin:0 0 .25rem; }
.cp-qa-fields { border:1px solid var(--_line,#e8e8e8); border-radius:var(--inc-radius,10px); padding:.75rem; margin:.5rem 0; }
.cp-qa-fields legend { font-weight:600; padding:0 .4rem; color:var(--_accent,#000); }
.cp-qa-fields .cp-hint { display:block; margin:-.15rem 0 .3rem; font-size:.85rem; }
.cp-qa-fields textarea { width:100%; }

/* ---- Practice sub-menu: secondary underline tabs, clearly subordinate to the
   primary segmented control above it (refined v1.17.1) ---- */
.cp-subnav-wrap { margin-top: 1.25rem; }
.cp-subnav { display:flex; flex-wrap:wrap; gap:.1rem 1.4rem; border-bottom:1px solid var(--_line,#e0e0e0); margin:0 0 1.2rem; }
.cp-subnav-item { -webkit-appearance:none; appearance:none; background:none; border:0; border-bottom:2px solid transparent; margin-bottom:-1px; padding:.5rem .1rem .6rem; font:inherit; font-weight:600; font-size:.9rem; line-height:1.2; color:var(--_muted,#5a5a5a); cursor:pointer; transition:color .12s ease; }
.cp-subnav-item:hover { color:var(--_accent,#000); }
.cp-subnav-item.is-active { color:var(--_accent,#000); border-bottom-color:var(--_accent,#000); }
.cp-subnav-item:focus-visible { outline:2px solid var(--_accent,#000); outline-offset:2px; }
.cp-subpanel-label { margin:.1rem 0 .8rem; }
/* With JS, only the active panel shows and its redundant heading is hidden;
   without JS every panel shows under its own heading so nothing is lost. */
.cp-subnav-js .cp-subpanel { display:none; }
.cp-subnav-js .cp-subpanel.is-active { display:block; }
.cp-subnav-js .cp-subpanel-label { display:none; }

/* ---- Manage coaches (v1.12.0) ---- */
.cp-subhead { font-size: 1rem; font-weight: 700; margin: 1.25rem 0 .5rem; color: var(--_text, #111); }
.cp-fineprint { font-size: .8rem; margin-top: .6rem; }
.cp-btn-link {
  background: none; border: 0; padding: 0; font: inherit; cursor: pointer;
  color: var(--_text, #111); text-decoration: underline;
}
.cp-btn-link:hover { color: #000; }
.cp-btn-danger { color: #8a2b2b; }
.cp-btn-danger:hover { color: #6f1f1f; }

/* ---- Coach dashboard (added v1.15.0) ---- */
.cp-dash-hi { margin:.2rem 0 .1rem; font-size:1.6rem; line-height:1.15; }
.cp-dash-lede { margin:0 0 1.5rem; }
.cp-dash-h { font-size:.78rem; text-transform:uppercase; letter-spacing:.06em; color:var(--_muted,#777); margin:0 0 .55rem; }
.cp-dash-actions { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:.7rem; margin:0 0 1.9rem; }
.cp-dash-card { text-align:left; display:flex; flex-direction:column; gap:.25rem; padding:1rem 1.1rem; border:1px solid var(--_line,#e8e8e8); border-radius:var(--inc-radius,10px); background:var(--inc-white,#fff); cursor:pointer; font:inherit; transition:border-color .12s, background .12s; }
.cp-dash-card:hover { border-color:var(--_accent,#000); background:#fafafa; }
.cp-dash-card:focus-visible { outline:2px solid var(--_accent,#000); outline-offset:2px; }
.cp-dash-card-t { font-weight:700; color:var(--_accent,#000); }
.cp-dash-card-d { font-size:.85rem; color:var(--_muted,#777); }
.cp-dash-tiles { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:.7rem; margin:0 0 .5rem; }
.cp-dash-tile { padding:1rem 1.1rem; border:1px solid var(--_line,#e8e8e8); border-radius:var(--inc-radius,10px); display:flex; flex-direction:column; gap:.2rem; }
.cp-dash-num { font-size:2rem; font-weight:800; line-height:1; color:var(--_accent,#000); }
.cp-dash-lbl { font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--_muted,#777); }

/* ---- Planter record sections (added v1.17.0) ---- */
.cp-panel h4 { margin:1.6rem 0 .5rem; padding-top:.9rem; border-top:1px solid var(--_line,#e8e8e8); font-size:.95rem; letter-spacing:.01em; }
.cp-panel h4:first-of-type { border-top:0; padding-top:0; margin-top:1rem; }
.cp-panel .cp-table td .cp-muted { white-space:nowrap; }

/* ---- Planters list: searchable card list, TPDG-style (v1.17.2) ---- */
.cp-list-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin:.25rem 0 1rem; }
.cp-list-count { margin:0; }
.cp-planter-search { width:100%; padding:.7rem .9rem; font:inherit; background:var(--inc-white,#fff); border:1px solid var(--_line,#e0e0e0); border-radius:var(--inc-radius,10px); margin:0 0 1rem; }
.cp-planter-search:focus { outline:2px solid var(--_accent,#000); border-color:var(--_accent,#000); }
.cp-planter-cards { display:grid; gap:.6rem; }
.cp-planter-card { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.9rem 1.1rem; border:1px solid var(--_line,#e0e0e0); border-radius:var(--inc-radius,10px); background:var(--inc-white,#fff); text-decoration:none; color:inherit; transition:border-color .12s ease, box-shadow .12s ease; }
.cp-planter-card:hover { border-color:var(--_accent,#000); box-shadow:0 1px 3px rgba(0,0,0,.08); }
.cp-planter-main { display:grid; gap:.15rem; min-width:0; }
.cp-planter-name { font-weight:700; color:var(--_accent,#000); }
.cp-planter-sub { font-size:.9rem; color:var(--_muted,#5a5a5a); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cp-planter-last { font-size:.82rem; }
.cp-planter-meta { display:flex; align-items:center; gap:.7rem; flex-shrink:0; }
.cp-planter-open { font-weight:600; color:var(--_accent,#000); white-space:nowrap; }

/* ---- Planter record: TPDG-style cards, header & tool-history timeline (v1.17.3) ---- */
.cp-rec-back { margin:.25rem 0 1rem; }
.cp-card { background:var(--inc-white,#fff); border:1px solid var(--_line,#e0e0e0); border-radius:var(--inc-radius,10px); padding:1.2rem 1.35rem; margin:0 0 1.1rem; }
.cp-card .cp-card-title { margin:0 0 .85rem; padding:0; border:0; font-size:1.05rem; }
.cp-rec .cp-rec-top { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.cp-rec-name { margin:0; font-size:1.5rem; font-weight:700; }
.cp-rec-cols { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin-top:1.1rem; padding-top:1.1rem; border-top:1px solid var(--_line,#e0e0e0); }
.cp-rec-h { font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--_muted,#5a5a5a); margin-bottom:.5rem; }
.cp-rec-row { display:flex; justify-content:space-between; gap:1rem; padding:.25rem 0; }
.cp-rec-k { color:var(--_muted,#5a5a5a); font-size:.9rem; }
.cp-rec-v { font-weight:600; text-align:right; word-break:break-word; }
.cp-th { display:flex; flex-direction:column; }
.cp-th-item { display:flex; align-items:center; gap:.85rem; padding:.7rem 0; border-top:1px solid var(--_line,#e0e0e0); }
.cp-th-item:first-child { border-top:0; }
.cp-th-status { flex:0 0 auto; min-width:5.5rem; text-align:center; }
.cp-th-main { display:flex; flex-direction:column; gap:.1rem; flex:1; min-width:0; }
.cp-th-tool { font-weight:600; }
.cp-th-label { font-size:.84rem; color:var(--_muted,#5a5a5a); }
.cp-th-time { font-size:.82rem; color:var(--_muted,#5a5a5a); white-space:nowrap; flex:0 0 auto; }
@media (max-width:560px){ .cp-rec-cols{ grid-template-columns:1fr; gap:1rem; } .cp-th-item{ flex-wrap:wrap; } .cp-th-time{ width:100%; padding-left:6.35rem; } }
.cp-th-link { color:var(--_ink,#000); font-weight:600; text-decoration:none; border-bottom:1px solid rgba(0,0,0,0.35); }
.cp-th-link:hover { border-bottom-color:var(--_ink,#000); }

/* ---- Dashboard line of sight (v1.18.0) ---- */
.cp-los { display:flex; flex-direction:column; }
.cp-los-row { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.7rem 0; border-top:1px solid var(--_line,#e0e0e0); flex-wrap:wrap; }
.cp-los-row:first-child { border-top:0; }
.cp-los-main { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; min-width:0; }
.cp-los-name { font-weight:600; color:var(--_ink,#000); text-decoration:none; border-bottom:1px solid rgba(0,0,0,.35); }
.cp-los-name:hover { border-bottom-color:var(--_ink,#000); }
.cp-los-tools { display:flex; gap:.4rem; flex-wrap:wrap; justify-content:flex-end; }
.cp-los-tool { font-size:.76rem; padding:.2rem .55rem; border-radius:999px; border:1px solid var(--_line,#e0e0e0); color:var(--_muted,#5a5a5a); background:var(--inc-surface,#f4f4f4); white-space:nowrap; }
.cp-los-tool.is-done { background:var(--inc-accent,#000); color:var(--inc-white,#fff); border-color:var(--inc-accent,#000); text-decoration:none; }
a.cp-los-tool.is-done:hover { opacity:.82; }
.cp-los-none { font-size:.8rem; color:var(--_muted,#5a5a5a); }
.cp-los-coach { margin:0 0 1.1rem; }
.cp-los-coach:last-child { margin-bottom:0; }
.cp-los-coach-head { display:flex; align-items:baseline; justify-content:space-between; gap:1rem; padding:.55rem 0 .4rem; border-bottom:2px solid var(--inc-accent,#000); margin-bottom:.2rem; flex-wrap:wrap; }
.cp-los-coach-name { font-weight:700; font-size:1.02rem; }
.cp-los-coach-meta { font-size:.82rem; color:var(--_muted,#5a5a5a); }
@media (max-width:560px){ .cp-los-row{ align-items:flex-start; } .cp-los-tools{ justify-content:flex-start; } }
.cp-send-tool { padding:.6rem 0; border-top:1px solid var(--_line,#e0e0e0); }
.cp-send-tool:first-child { border-top:0; }
.cp-send-tool-label { font-weight:600; margin-bottom:.35rem; }
.cp-send-tool form { margin:.25rem 0 0 !important; }

/* ---- Archive: permanent-delete confirm (v1.20.0) ---- */
.cp-del-confirm { display:flex; align-items:center; gap:.5rem; margin:0; }
.cp-del-confirm input[type="text"] {
  font:inherit; font-size:.8rem; padding:.25rem .5rem; max-width:11rem;
  border:1px solid var(--_rule,#ccc); background:#fff; color:var(--_text,#111);
}
