.pd-ui { --pd-navy:#1b2b4a; --pd-gold:#d9ad43; --pd-line:#d6dce5; color:#26364d; letter-spacing:0; }
body.campus-ui #plannerDashboardPanel:not([hidden]) { display:flex; flex:1 1 0; flex-direction:column; gap:0; min-height:0; min-width:0; overflow:hidden; animation:none; }
.pd-ui [hidden] { display:none !important; }
.pd-ui :is(h2,h3,p) { margin:0; overflow-wrap:anywhere; }
.pd-ui h2 { font-size:22px; line-height:1.4; }
.pd-ui h3 { font-size:16px; }
.pd-ui svg { width:17px; height:17px; flex:0 0 17px; }
.pd-ui :is(button,input,select) { font:inherit; font-size:14px; letter-spacing:0; min-width:0; }
.pd-ui button { display:inline-flex; align-items:center; justify-content:center; gap:5px; border:1px solid #bac5d4; border-radius:4px; padding:7px 10px; min-height:36px; background:#fff; color:#26364d; line-height:1.4; white-space:normal; }
.pd-ui button:hover { border-color:#aa8025; background:#fff8e9; }
.pd-ui button.pd-primary { background:var(--pd-navy); border-color:var(--pd-navy); color:#fff; }
.pd-ui button.pd-link { border:0; background:transparent; color:#586981; padding-inline:4px; }
.pd-ui button.pd-icon { padding:6px; width:36px; flex:0 0 36px; }
.pd-ui :is(button,input,select):focus-visible { outline:3px solid #d9ad43; outline-offset:2px; }
.pd-ui select,.pd-ui input { height:38px; padding:7px 9px; background:#fff; border:1px solid #bac5d4; border-radius:4px; }
.pd-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:0 0 12px; flex:0 0 auto; }
#pdSummary { font-size:12px; color:#677487; }
.pd-tools { display:flex; align-items:center; gap:8px; min-width:0; }
.pd-tools label { font-size:13px; margin:0; }
.pd-tools select { width:190px; max-width:100%; }
.pd-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); background:white; border-block:1px solid var(--pd-line); flex:0 0 auto; margin-bottom:12px; }
body.campus-ui .pd-ui button.pd-metric { border:0; border-radius:0; border-right:1px solid var(--pd-line); padding:12px 18px; text-align:left; display:block; background:transparent; }
.pd-ui button.pd-metric:last-child { border-right:0; }
.pd-metric > span { font-size:12px; display:block; color:#657187; margin-bottom:4px; }
.pd-metric strong { font-size:26px; font-weight:700; margin-right:7px; }
.pd-metric small { font-size:11px; color:#6d7c8b; }
body.campus-ui .pd-ui button.pd-metric[aria-pressed=true] { box-shadow:inset 0 -3px var(--pd-gold); }
.pd-roster-tools { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:10px; flex:0 0 auto; }
.pd-filters { display:flex; gap:3px; flex-wrap:wrap; }
.pd-ui .pd-filters button { border-color:transparent; background:transparent; font-size:13px; padding:6px 10px; }
.pd-ui .pd-filters button[aria-pressed=true] { border-color:#c4cdd9; background:#fff; font-weight:700; }
.pd-search { display:flex; align-items:center; gap:7px; margin:0; min-width:0; }
.pd-search input { width:210px; max-width:100%; }
.pd-roster-scroll { flex:1 1 0; min-height:0; overflow:auto; overscroll-behavior:contain; background:#fff; border:1px solid var(--pd-line); scrollbar-gutter:stable; -webkit-overflow-scrolling:touch; }
.pd-roster { width:100%; table-layout:fixed; border-collapse:separate; border-spacing:0; font-size:14px; }
.pd-roster th { position:sticky; top:0; z-index:1; background:#eaf0f5; color:#40526c; font-size:12px; text-align:left; padding:11px 12px; border-bottom:1px solid #cdd6e2; }
.pd-roster th:nth-child(1) { width:16%; }.pd-roster th:nth-child(2) { width:17%; }.pd-roster th:nth-child(3) { width:15%; }.pd-roster th:nth-child(4) { width:28%; }.pd-roster th:nth-child(5) { width:24%; }
.pd-roster td { padding:13px 12px; border-bottom:1px solid #e0e6ef; vertical-align:middle; overflow-wrap:anywhere; }
.pd-roster tr:hover td { background:#f9fbfd; }
.pd-roster small { display:block; font-size:11px; color:#69798e; margin-top:6px; line-height:1.5; }
.pd-roster td>strong>span { font-weight:400; font-size:12px; }
.pd-student-name { display:flex; align-items:center; gap:9px; }
.pd-student-name>div { min-width:0; }.pd-student-name strong { font-size:15px; }.pd-student-name small { margin-top:4px; }
.pd-avatar { display:flex; align-items:center; justify-content:center; flex:0 0 33px; width:33px; height:36px; background:#eaf0f6; color:#4b5b72; border-radius:4px; font-weight:700; }
.pd-badge { display:inline-block; background:#eff2f5; color:#647083; padding:3px 7px; border-radius:3px; font-size:12px; line-height:1.5; }
.pd-status-draft,.pd-status-returned { color:#986315; background:#fff1d4; }
.pd-status-pending_review { color:#3266a3; background:#edf3fd; }
.pd-status-published,.pd-status-approved { color:#237253; background:#e9f5ee; }
.pd-receipt-line { display:flex; align-items:center; gap:6px; margin:4px 0; font-size:12px; }
.pd-receipt-line>span { flex:0 0 29px; color:#798699; }.pd-receipt-line small { margin:0; }
.pd-ui .pd-receipt-line button { min-height:30px; border:0; padding:4px 0; background:transparent; color:#86601e; font-size:12px; text-align:left; justify-content:flex-start; }
.pd-ui .pd-receipt-line button.pd-confirmed { color:#237253; }
.pd-row-actions { display:flex; flex-wrap:wrap; gap:6px; }
.pd-row-actions button { font-size:12px; padding:6px 8px; min-height:32px; }
.pd-mobile-label { display:none; }
.pd-empty { text-align:center; padding:36px 16px; color:#65758b; }
.pd-empty button { margin-top:12px; }
.pd-error { border-left:3px solid #ae4141; background:#fff1ef; color:#972d2d; padding:10px; display:flex; justify-content:space-between; align-items:center; gap:10px; }
#pdLoading { padding:16px; font-size:13px; }
.pd-student-bar { flex:0 0 auto; display:flex; align-items:center; gap:8px; border-bottom:1px solid #ccd6e2; padding:0 0 9px; margin-bottom:10px; }
.pd-student-bar label { font-size:12px; margin:0; color:#67758a; }
.pd-student-bar select { max-width:230px; flex:0 1 200px; }
#pdWorkNumber { margin-left:auto; color:#647083; font-size:12px; }
.pd-dialog { width:760px; max-width:calc(100vw - 24px); max-height:calc(100vh - 24px); max-height:calc(100dvh - 24px); border:1px solid #cbd5e1; padding:0; border-radius:7px; background:#fff; color:#26364d; overflow:auto; }
.pd-dialog::backdrop { background:#14243c77; }
.pd-dialog>header { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:16px 20px; border-bottom:1px solid #d6dce5; position:sticky; top:0; background:#fff; z-index:1; }
.pd-dialog h2 { font-size:18px; }
#pdDetailBody { padding:20px; }
.pd-parent-receipt { margin-top:16px; border-block:1px solid #d9e2ee; padding:16px 0; }
.pd-parent-receipt>div { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; }
.pd-parent-receipt dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:16px 0 0; }
.pd-parent-receipt dt { font-size:12px; color:#637086; }.pd-parent-receipt dd { margin:5px 0 0; font-size:14px; }
.pd-record { display:flex; gap:12px; justify-content:space-between; align-items:center; padding:16px 0; border-bottom:1px solid #dbe3ed; }
.pd-record h3 { margin:8px 0; }.pd-record small { color:#68798f; }
@media screen and (max-width:1100px) {
  .pd-roster { min-width:850px; }
  .pd-metric small { display:block; margin-top:3px; }
  .pd-tools select { width:160px; }
  .pd-roster-tools { flex-wrap:wrap; }
  .pd-search { margin-left:auto; }
}
@media screen and (max-width:680px) {
  body.campus-ui #plannerDashboardPanel:not([hidden]) { min-height:320px; flex:1 1 auto; overflow:visible; }
  .pd-heading { align-items:flex-start; flex-wrap:wrap; gap:10px; }.pd-ui h2 { font-size:20px; }
  .pd-tools { width:100%; }.pd-tools select { flex:1; width:auto; }
  .pd-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); margin-bottom:8px; }
  body.campus-ui .pd-ui button.pd-metric { padding:10px 12px; border-bottom:1px solid #d6dce5; }
  .pd-metric strong { font-size:24px; }.pd-metric small { display:inline; }
  .pd-roster-tools { gap:8px; }.pd-search { width:100%; }.pd-search input { width:100%; flex:1; }
  .pd-ui :is(button,input,select) { min-height:44px; }.pd-ui :is(input,select) { font-size:16px; }
  .pd-filters { gap:0; width:100%; }.pd-filters button { flex:1 0 45%; }
  .pd-roster-scroll { flex:0 0 auto; overflow:visible; border:0; background:transparent; }
  .pd-roster,.pd-roster tbody { display:block; min-width:0; width:100%; }.pd-roster thead { display:none; }
  .pd-roster tr { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); background:#fff; border:1px solid #d6dce5; border-radius:5px; margin-bottom:10px; padding:12px; }
  .pd-roster td { padding:7px 0; border:0; min-width:0; }.pd-roster td:first-child,.pd-roster td:nth-child(4),.pd-roster td:last-child { grid-column:1/-1; }
  .pd-roster td:nth-child(2) { padding-right:10px; }.pd-roster tr:hover td { background:transparent; }
  .pd-mobile-label { display:block; font-size:12px; color:#67748a; margin-bottom:6px; }
  .pd-ui .pd-receipt-line button { font-size:13px; min-height:36px; }
  .pd-row-actions button { flex:1 1 auto; font-size:13px; }
  .pd-student-bar { display:grid; grid-template-columns:auto minmax(0,1fr); gap:7px; }
  #pdBack { grid-column:1/-1; justify-self:start; }.pd-student-bar select { max-width:100%; width:100%; }.pd-student-bar #pdWorkNumber { display:none; }
  .pd-parent-receipt dl { grid-template-columns:minmax(0,1fr); gap:10px; }
  .pd-record { flex-direction:column; align-items:stretch; }.pd-dialog>header { padding:12px 16px; }#pdDetailBody { padding:16px; }
}
@media screen and (max-height:650px) and (min-width:681px) {
  .pd-heading { padding-bottom:8px; }.pd-heading h2 { font-size:20px; }
  body.campus-ui .pd-ui button.pd-metric { padding:6px 14px; }.pd-metric strong { font-size:22px; }
  .pd-metrics { margin-bottom:7px; }.pd-roster td { padding:9px 12px; }
}
@media print { #plannerDashboardPanel,#pdStudentBar,#pdDetails { display:none !important; } }
