/* Practice Desk Sandbox. Everything is scoped under .ppd-app so theme styles and these styles don't collide. */
.ppd-app,.ppd-gate,.ppd-toast{
  --ppd-navy:#2e4057;--ppd-cream:#f6f0eb;--ppd-sky:#c7d9e5;--ppd-white:#fff;
  --ppd-line:#E2DAD2;--ppd-muted:#6A7585;--ppd-sky-soft:#E6EEF4;--ppd-navy-deep:#233246;
  --ppd-alert:#A34A3C;--ppd-alert-soft:#F7E9E5;
}
.ppd-app{font-family:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--ppd-cream);color:var(--ppd-navy);font-size:15px;line-height:1.55;border-radius:16px;overflow:hidden;text-align:left;margin:0 0 24px}
.ppd-app *,.ppd-app *::before,.ppd-app *::after{box-sizing:border-box}
.ppd-app [hidden]{display:none!important}
.ppd-app h2,.ppd-app h3,.ppd-app h4{font-family:inherit;color:var(--ppd-navy);text-transform:none;letter-spacing:normal;line-height:1.3;margin:0;padding:0}
.ppd-app p{margin:0}
.ppd-app a{color:var(--ppd-navy)}
.ppd-app :focus-visible{outline:3px solid var(--ppd-navy);outline-offset:2px}
.ppd-head :focus-visible{outline-color:var(--ppd-sky)}

/* Header */
.ppd-head{background:var(--ppd-navy);color:var(--ppd-cream);padding:24px 24px 0}
.ppd-app .ppd-title{font-family:"IBM Plex Serif",Georgia,serif;font-size:1.6rem;font-weight:600;color:var(--ppd-cream);margin:0 0 4px}
.ppd-app .ppd-sub{color:var(--ppd-sky);font-size:.92rem;max-width:62ch;margin:0 0 14px}
.ppd-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding-bottom:18px}
.ppd-app .ppd-viewer{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ppd-app .ppd-viewer:empty{display:none}
.ppd-app .ppd-viewer label{margin:0;color:var(--ppd-sky);font-size:.85rem}
.ppd-app .ppd-viewer select{width:auto;min-width:240px;max-width:100%}
.ppd-app .ppd-save{font-size:.82rem;color:var(--ppd-sky)}
.ppd-app .ppd-save[data-state="error"]{color:#FFD9D1;font-weight:600}
.ppd-tabs{display:flex;gap:6px;overflow-x:auto}
.ppd-app .ppd-tab{background:transparent;border:0;color:var(--ppd-sky);padding:11px 16px;margin:0;font:inherit;font-weight:500;cursor:pointer;border-radius:10px 10px 0 0;white-space:nowrap;box-shadow:none;text-transform:none;letter-spacing:normal;line-height:1.4}
.ppd-app .ppd-tab:hover{color:var(--ppd-white);background:transparent}
.ppd-app .ppd-tab[aria-selected="true"]{background:var(--ppd-cream);color:var(--ppd-navy);font-weight:600}
.ppd-notice{background:#FFF4D6;color:#5C4510;padding:12px 24px;font-size:.9rem}

/* Body */
.ppd-body{padding:26px 24px 36px}
.ppd-app .ppd-h{font-family:"IBM Plex Serif",Georgia,serif;font-size:1.3rem;font-weight:600;margin:0 0 6px}
.ppd-app .ppd-lede{color:var(--ppd-muted);max-width:68ch;margin:0 0 18px}
.ppd-app .ppd-coach{background:var(--ppd-sky-soft);border-radius:12px;padding:14px 18px;margin:0 0 22px;font-size:.9rem;max-width:80ch}
.ppd-app .ppd-coach b{display:block;margin-bottom:3px}
.ppd-app .ppd-ro-banner{background:var(--ppd-sky);border-radius:12px;padding:12px 16px;margin:0 0 20px;font-size:.9rem;font-weight:500}
.ppd-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px}
.ppd-panel{background:var(--ppd-white);border:1px solid var(--ppd-line);border-radius:14px;padding:20px}
.ppd-app .ppd-panel h3{font-size:1rem;font-weight:600;margin:0 0 12px}
.ppd-app .ppd-mt{margin-top:22px}

/* Forms */
.ppd-app label{display:block;font-size:.84rem;font-weight:600;margin:12px 0 5px;color:var(--ppd-navy)}
.ppd-app label.ppd-check{display:flex;align-items:center;gap:8px;font-weight:500}
.ppd-app .ppd-req{color:var(--ppd-alert)}
.ppd-app input:not([type="checkbox"]),.ppd-app select,.ppd-app textarea{width:100%;height:auto;margin:0;padding:9px 11px;border:1px solid var(--ppd-line);border-radius:8px;font:inherit;background:var(--ppd-white);color:var(--ppd-navy);box-shadow:none;line-height:1.4}
.ppd-app input[type="checkbox"]{width:auto;margin:0;accent-color:var(--ppd-navy)}
.ppd-app input:focus,.ppd-app select:focus,.ppd-app textarea:focus{border-color:var(--ppd-navy)}
.ppd-app textarea{min-height:84px;resize:vertical}
.ppd-app select:disabled,.ppd-app input:disabled{background:var(--ppd-cream);cursor:not-allowed}
.ppd-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ppd-row2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ppd-app .ppd-hint{font-size:.78rem;color:var(--ppd-muted);margin-top:4px}
.ppd-app .ppd-err{border-color:var(--ppd-alert)!important;background:var(--ppd-alert-soft)!important}
.ppd-app .ppd-errors{background:var(--ppd-alert-soft);color:var(--ppd-alert);border-radius:8px;padding:10px 14px;margin-top:14px;font-size:.88rem}
.ppd-app .ppd-errors:empty{display:none}
.ppd-app .ppd-btn{display:inline-block;background:var(--ppd-navy);color:var(--ppd-cream);border:1px solid var(--ppd-navy);border-radius:8px;padding:10px 18px;margin:16px 8px 0 0;font:inherit;font-weight:600;cursor:pointer;box-shadow:none;text-transform:none;letter-spacing:normal;line-height:1.3}
.ppd-app .ppd-btn:hover{background:var(--ppd-navy-deep);color:var(--ppd-cream)}
.ppd-app .ppd-btn.ppd-ghost{background:transparent;color:var(--ppd-navy)}
.ppd-app .ppd-btn.ppd-ghost:hover{background:var(--ppd-sky-soft)}
.ppd-app .ppd-btn.ppd-small{padding:6px 12px;font-size:.82rem;margin-top:8px}
.ppd-inline{display:flex;gap:8px;align-items:flex-end}
.ppd-app .ppd-inline .ppd-btn{margin:0;white-space:nowrap}

/* Listings */
.ppd-listing{border:1px solid var(--ppd-line);border-radius:10px;padding:14px;margin-bottom:12px}
.ppd-app .ppd-price{font-family:"IBM Plex Serif",Georgia,serif;font-size:1.35rem;font-weight:600;margin-top:6px}
.ppd-app .ppd-meta{color:var(--ppd-muted);font-size:.85rem}
.ppd-app .ppd-remarks{margin:8px 0 0;font-size:.88rem}
.ppd-app .ppd-private{margin-top:8px;font-size:.82rem;color:var(--ppd-muted);border-top:1px dashed var(--ppd-line);padding-top:8px}
.ppd-status{display:inline-block;font-size:.75rem;font-weight:600;padding:3px 10px;border-radius:20px;background:var(--ppd-sky);color:var(--ppd-navy)}
.ppd-status[data-s="Pending"],.ppd-status[data-s="Contingent"]{background:#EDE0D2;color:#6B4E2E}
.ppd-status[data-s="Closed"]{background:var(--ppd-navy);color:var(--ppd-cream)}
.ppd-status[data-s="Withdrawn"],.ppd-status[data-s="Expired"]{background:var(--ppd-alert-soft);color:var(--ppd-alert)}

/* Pipeline */
.ppd-board{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px}
.ppd-col{min-width:200px;flex:1;background:var(--ppd-sky-soft);border-radius:12px;padding:10px}
.ppd-app .ppd-col h4{margin:2px 4px 10px;font-size:.85rem;font-weight:600}
.ppd-app .ppd-col h4 span{color:var(--ppd-muted);font-weight:400}
.ppd-app .ppd-card{display:block;width:100%;text-align:left;background:var(--ppd-white);color:var(--ppd-navy);border-radius:8px;padding:10px 12px;margin:0 0 8px;border:1px solid transparent;font:inherit;font-size:.85rem;cursor:pointer;box-shadow:none;text-transform:none;letter-spacing:normal}
.ppd-app .ppd-card:hover{border-color:var(--ppd-sky);background:var(--ppd-white);color:var(--ppd-navy)}
.ppd-app .ppd-card strong{display:block}
.ppd-tag{display:inline-block;font-size:.72rem;background:var(--ppd-cream);padding:2px 8px;border-radius:20px;margin:4px 3px 0 0}

/* Action plan timeline */
.ppd-timeline{position:relative;margin:10px 0 0 8px;padding-left:24px;border-left:2px solid var(--ppd-sky)}
.ppd-step{position:relative;margin-bottom:16px}
.ppd-step::before{content:"";position:absolute;left:-32px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--ppd-navy);border:3px solid var(--ppd-sky)}
.ppd-app .ppd-day{font-weight:700;font-size:.85rem}
.ppd-app .ppd-kind{font-size:.74rem;font-weight:600;padding:2px 9px;border-radius:20px;background:var(--ppd-sky);color:var(--ppd-navy);margin-left:8px}
.ppd-app .ppd-step p{margin:4px 0 0;font-size:.86rem;color:var(--ppd-muted)}
.ppd-app .ppd-remove{background:none;border:0;padding:0;margin-left:8px;color:var(--ppd-alert);cursor:pointer;font:inherit;font-size:.78rem;box-shadow:none;text-decoration:underline}

/* Tasks */
.ppd-table-wrap{overflow-x:auto}
.ppd-app table{width:100%;border-collapse:collapse;font-size:.88rem;margin:0;border:0}
.ppd-app th,.ppd-app td{text-align:left;padding:10px 8px;border:0;border-bottom:1px solid var(--ppd-line);vertical-align:top;background:transparent}
.ppd-app th{font-size:.8rem;color:var(--ppd-muted);font-weight:600}
.ppd-app tr.ppd-overdue td{background:var(--ppd-alert-soft)}
.ppd-app tr.ppd-done td{color:var(--ppd-muted);text-decoration:line-through}
.ppd-app .ppd-empty{color:var(--ppd-muted);font-style:italic;padding:10px 0}

/* Lead dialog */
.ppd-app .ppd-dialog{border:0;border-radius:14px;max-width:520px;width:92%;padding:0;color:var(--ppd-navy);background:var(--ppd-white)}
.ppd-app .ppd-dialog::backdrop{background:rgba(46,64,87,.55)}
.ppd-inner{padding:22px}
.ppd-app .ppd-inner p{margin:6px 0;font-size:.9rem}
.ppd-notes{font-size:.85rem;margin-top:10px}
.ppd-notes div{border-top:1px solid var(--ppd-line);padding:6px 0}

/* View-only mode for instructors */
.ppd-ro .ppd-edit-only{display:none!important}
.ppd-ro .ppd-grid{grid-template-columns:minmax(0,1fr)}

/* Gate messages and toast */
.ppd-gate{font-family:"IBM Plex Sans",system-ui,sans-serif;background:var(--ppd-cream);color:var(--ppd-navy);border-radius:14px;padding:20px 24px;margin:0 0 24px}
.ppd-gate p{margin:0 0 8px}
.ppd-gate a{color:var(--ppd-navy);font-weight:600}
.ppd-gate .ppd-gate-btn{display:inline-block;background:var(--ppd-navy);color:var(--ppd-cream);padding:9px 18px;border-radius:8px;text-decoration:none}
.ppd-toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:100000;background:var(--ppd-navy);color:var(--ppd-cream);font-family:"IBM Plex Sans",system-ui,sans-serif;padding:10px 20px;border-radius:24px;font-size:.9rem;opacity:0;transition:opacity .2s;pointer-events:none;max-width:90vw}
.ppd-toast.ppd-show{opacity:1}

@media (max-width:760px){
  .ppd-grid{grid-template-columns:minmax(0,1fr)}
  .ppd-body{padding:20px 16px 30px}
  .ppd-head{padding:20px 16px 0}
  .ppd-row{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (prefers-reduced-motion:reduce){.ppd-toast{transition:none}}

/* Public challenge */
.ppd-c-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start}
.ppd-app .ppd-c-gap{margin-top:10px}
.ppd-app .ppd-c-feedback{margin-top:14px;font-size:.9rem}
.ppd-app .ppd-c-feedback p{background:var(--ppd-sky-soft);border-radius:8px;padding:10px 12px}
.ppd-app .ppd-c-feedback p.ppd-c-bad{background:var(--ppd-alert-soft);color:var(--ppd-alert);font-weight:600}
.ppd-app .ppd-c-list{margin:12px 0 0;padding-left:18px;font-size:.9rem}
.ppd-app .ppd-c-list li{margin-bottom:8px}
.ppd-app .ppd-c-pitch{margin-top:18px;padding-top:16px;border-top:1px solid var(--ppd-line)}
.ppd-app .ppd-c-pitch p{font-weight:500}
.ppd-app a.ppd-btn{text-decoration:none}
.ppd-head .ppd-bar:empty{padding-bottom:6px}
@media (max-width:760px){.ppd-c-grid{grid-template-columns:minmax(0,1fr)}}
.ppd-app [tabindex="-1"]:focus{outline:none}
