/* ===========================================================
   MAX3 Momentum OS — Person (Student/Staff) Profile
   Scoped under .profile. Tokens from tokens.css.
   Action hub + collapsible history modules for one person.
   =========================================================== */
.profile{padding:20px 24px 48px;max-width:1080px}

/* breadcrumb back row */
.profile .pback{display:flex;align-items:center;gap:8px;margin-bottom:14px;font-size:12px;color:var(--m3-text-3);font-weight:600}
.profile .pback a{color:var(--m3-text-2);cursor:pointer}
.profile .pback a:hover{color:var(--m3-lime)}
.profile .pback .sep{opacity:.5}

/* ---- header ---- */
.profile .phead{background:var(--m3-surface);border:1px solid var(--m3-line);border-radius:var(--radius);
  padding:18px 20px;display:flex;align-items:center;gap:18px;margin-bottom:14px}
.profile .pav{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:20px;font-weight:800;flex:0 0 auto;overflow:hidden;background-repeat:no-repeat;box-shadow:0 0 0 2px var(--m3-surface),0 0 0 4px var(--belt,var(--m3-line))}
/* FD-CP19 student photo upload badge (profile header) */
.profile .pav-wrap{position:relative;display:inline-flex;flex:0 0 auto}
.profile .pav-cam{position:absolute;right:-2px;bottom:-2px;width:23px;height:23px;border-radius:50%;background:var(--lime,#7cbb00);color:#111;font-size:11px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 0 0 2px var(--m3-surface,#111);user-select:none}
.profile .pav-cam:hover{filter:brightness(1.08)}
.profile .pid{min-width:0;flex:1}
.profile .pname{font-size:21px;font-weight:800;letter-spacing:-.4px;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.profile .newflag{font-size:9.5px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;padding:2px 7px;border-radius:5px;background:var(--m3-blue);color:#06223a}
.profile .pmeta{font-size:12.5px;color:var(--m3-text-2);margin-top:4px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.profile .pmeta .sep{color:var(--m3-text-3)}
.profile .pmeta .hh{color:var(--m3-blue);cursor:pointer;font-weight:600;white-space:nowrap}
.profile .pmeta .hh-btn{display:inline-flex;align-items:center;gap:4px;background:rgba(59,158,232,.12);border:1px solid rgba(59,158,232,.4);
  color:var(--m3-blue);font-family:var(--ff);font-size:11.5px;font-weight:700;border-radius:6px;padding:3px 9px;cursor:pointer;white-space:nowrap}
.profile .pmeta .hh-btn:hover{background:rgba(59,158,232,.2)}
.profile .pmeta .hh-chev{font-weight:600;opacity:.7}
.profile .pmeta .hh:hover{text-decoration:underline}
.profile .standing{display:inline-flex;align-items:center;gap:6px;font-weight:700}
.profile .standing .dot{width:8px;height:8px;border-radius:50%}
.profile .standing.good{color:var(--m3-lime)} .profile .standing.good .dot{background:var(--m3-lime)}
.profile .pmeta .pref-pill{font-size:11.5px;font-weight:700;color:var(--m3-text-2);background:var(--m3-surface-2);border:1px solid var(--m3-line);border-radius:6px;padding:3px 9px;white-space:nowrap}

.belt-chip{font-size:10px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;padding:3px 9px;border-radius:5px;
  border:1.5px solid var(--belt,var(--m3-line));color:var(--belt-text,var(--m3-text-2));background:transparent;white-space:nowrap}
.profile .memtype{font-size:9.5px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;padding:3px 9px;border-radius:5px}
.profile .memtype.basic{background:var(--m3-surface-3);color:var(--m3-text-2);border:1px solid var(--m3-line)}
.profile .memtype.lead{background:rgba(59,158,232,.15);color:var(--m3-blue);border:1px solid rgba(59,158,232,.4)}

/* ---- pinned-note alert strip (under hero, above actions) ---- */
.profile .pin-alerts{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.profile .pin-alert{display:flex;align-items:center;gap:10px;background:rgba(245,166,35,.12);
  border:1px solid rgba(245,166,35,.45);border-left:3px solid var(--m3-amber);border-radius:9px;padding:11px 14px}
.profile .pin-alert .pa-ic{color:var(--m3-amber);font-size:13px;flex:0 0 auto}
.profile .pin-alert .pa-tx{font-size:13px;font-weight:700;color:#f0c98a}
.profile .pin-alert .pa-until{margin-left:auto;font-size:10.5px;font-weight:700;color:var(--m3-amber);
  background:rgba(245,166,35,.16);border:1px solid rgba(245,166,35,.4);border-radius:5px;padding:2px 8px;white-space:nowrap}

/* ---- notes module ---- */
.profile .notes-add{background:var(--m3-bg);border:1px solid var(--m3-line);border-radius:9px;padding:10px;margin-bottom:12px}
.profile .notes-ta{width:100%;border:0;background:transparent;color:var(--m3-text);font-family:var(--ff);font-size:13px;resize:none;height:46px;outline:none}
.profile .notes-addrow{display:flex;align-items:center;gap:12px;margin-top:8px;padding-top:8px;border-top:1px solid var(--m3-line)}
.profile .notes-pinchk{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--m3-text-2);font-weight:600;cursor:pointer}
.profile .notes-pinchk input{accent-color:var(--m3-amber);width:14px;height:14px}
.profile .notes-save{margin-left:auto;padding:7px 13px;font-size:12px}
.profile .notes-list{display:flex;flex-direction:column;gap:9px}
.profile .note-item{border:1px solid var(--m3-line);border-radius:9px;padding:11px 13px;background:var(--m3-surface)}
.profile .note-item.pinned{border-color:rgba(245,166,35,.4);background:rgba(245,166,35,.05)}
.profile .note-top{display:flex;align-items:center;gap:9px}
.profile .note-pinflag{font-size:9px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;color:#15200a;background:var(--m3-amber);border-radius:4px;padding:2px 7px}
.profile .note-auth{font-size:12px;font-weight:700;color:var(--m3-text)}
.profile .note-date{font-size:11px;color:var(--m3-text-3);font-weight:600}
.profile .note-pinbtn{margin-left:auto;background:var(--m3-surface-2);border:1px solid var(--m3-line);color:var(--m3-text-2);
  border-radius:6px;padding:4px 11px;font-size:11px;font-weight:700;cursor:pointer;font-family:var(--ff)}
.profile .note-pinbtn:hover{border-color:var(--m3-gray);color:var(--m3-text)}
.profile .note-pinbtn.on{background:rgba(245,166,35,.16);border-color:rgba(245,166,35,.45);color:var(--m3-amber)}
.profile .note-text{font-size:13px;color:var(--m3-text);margin-top:6px;line-height:1.45;text-wrap:pretty}
.profile .note-until{display:inline-block;font-size:10px;color:var(--m3-amber);font-weight:700;margin-top:6px}
.profile .notes-pinuntil{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--m3-text-2);font-weight:600}
.profile .notes-pinuntil select{background:var(--m3-surface-2);border:1px solid var(--m3-line);color:var(--m3-text);border-radius:6px;padding:4px 7px;font-family:var(--ff);font-size:11.5px;font-weight:600;cursor:pointer}
.profile .note-pinwrap{margin-left:auto;position:relative;display:inline-flex}
.profile .note-pinwrap .note-pinbtn{margin-left:0}
.profile .np-scrim{position:fixed;inset:0;z-index:25}
.profile .np-menu{position:absolute;top:30px;right:0;z-index:30;background:var(--m3-surface);border:1px solid var(--m3-line);border-radius:9px;padding:6px;box-shadow:0 16px 44px rgba(0,0,0,.5);min-width:200px;display:flex;flex-direction:column;animation:profpop .14s ease}
.profile .np-menu-h{font-size:9.5px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;color:var(--m3-text-3);padding:5px 8px 6px}
.profile .np-menu button{display:flex;width:100%;background:none;border:0;color:var(--m3-text-2);font-family:var(--ff);font-size:12px;font-weight:600;text-align:left;padding:7px 9px;border-radius:6px;cursor:pointer}
.profile .np-menu button:hover{background:var(--m3-surface-2);color:var(--m3-text)}
.profile .note-exp{display:inline-block;font-size:10px;color:var(--m3-text-3);font-weight:600;margin-top:6px;font-style:italic}

/* ---- action row ---- */
.profile .pacts{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap;position:relative}
/* mock-data-retirement: neutral note when the Hayes-seeded actions honest-degrade in live */
.profile .pacts-na{align-self:center;font-size:11.5px;font-weight:600;font-style:italic;color:var(--m3-text-3)}
.profile .btn{border:0;border-radius:8px;padding:9px 14px;font-size:12.5px;font-weight:700;cursor:pointer;font-family:var(--ff);display:inline-flex;align-items:center;gap:7px}
.profile .btn.primary{background:var(--m3-lime);color:#15200a}
.profile .btn.primary:hover{filter:brightness(1.06)}
.profile .btn.ghost{background:var(--m3-surface-2);color:var(--m3-text);border:1px solid var(--m3-line)}
.profile .btn.ghost:hover{border-color:var(--m3-gray)}
.profile .btn.fam{background:rgba(59,158,232,.14);color:var(--m3-blue);border:1px solid rgba(59,158,232,.45)}
.profile .btn.fam:hover{background:rgba(59,158,232,.22)}
.profile .btn.freeze{background:rgba(59,158,232,.14);color:#9cc7e8;border:1px solid rgba(59,158,232,.5)}
.profile .btn.freeze:hover{background:rgba(59,158,232,.22)}
.profile .btn.danger{background:rgba(204,34,34,.12);color:#f0a3a3;border:1px solid rgba(204,34,34,.5)}
.profile .btn.danger:hover{background:rgba(204,34,34,.2)}

/* ---- cancel / freeze request workspace (step 2) ----
   A flagged card, amber-accented like the dashboard strip + pin alerts, but the
   full workspace: reason · duration · live countdown · Reach out / Cancel / Freeze. */
.profile .reqws{border:1px solid rgba(245,166,35,.6);border-radius:11px;background:rgba(245,166,35,.05);margin-bottom:16px;overflow:hidden}
.profile .reqws.freeze{border-color:rgba(59,158,232,.5);background:rgba(59,158,232,.05)}
.profile .rw-head{display:flex;align-items:center;gap:9px;padding:11px 15px 10px;border-bottom:1px solid rgba(245,166,35,.22);flex-wrap:wrap}
.profile .reqws.freeze .rw-head{border-bottom-color:rgba(59,158,232,.22)}
.profile .rw-ic{color:var(--m3-amber);font-size:14px;flex:0 0 auto}
.profile .reqws.freeze .rw-ic{color:var(--m3-blue)}
.profile .rw-kind{font-size:13px;font-weight:800;color:#f0c98a;letter-spacing:.2px}
.profile .reqws.freeze .rw-kind{color:#a8d2f0}
.profile .rw-src{font-size:11px;color:var(--m3-text-3)}
.profile .rw-clock{margin-left:auto;font-size:11px;font-weight:700;color:var(--m3-amber);background:rgba(245,166,35,.14);border:1px solid rgba(245,166,35,.4);border-radius:6px;padding:3px 9px;white-space:nowrap}
.profile .reqws.freeze .rw-clock{color:var(--m3-blue);background:rgba(59,158,232,.14);border-color:rgba(59,158,232,.4)}
.profile .rw-body{padding:11px 15px 4px;display:flex;flex-direction:column;gap:6px}
.profile .rw-field{display:flex;gap:10px;align-items:baseline}
.profile .rw-lab{flex:0 0 64px;font-size:10.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--m3-text-3)}
.profile .rw-val{font-size:13px;color:var(--m3-text);font-weight:600}
.profile .rw-meta{font-size:11px;color:var(--m3-text-3);text-wrap:pretty}
.profile .rw-pref{font-size:11.5px;color:var(--m3-text-2);margin-top:1px}
.profile .rw-pref b{color:var(--m3-text);font-weight:700}
.profile .rw-reached{font-size:11.5px;font-weight:700;color:var(--m3-lime);margin-top:2px}
.profile .rw-acts{display:flex;gap:8px;padding:11px 15px 14px;flex-wrap:wrap}
.profile .rw-confirm{padding:12px 15px 14px;border-top:1px solid var(--m3-line-2);margin-top:6px}
.profile .rw-ctitle{font-size:12.5px;font-weight:800;color:var(--m3-text);margin-bottom:9px}
.profile .rw-daterow{display:flex;align-items:center;gap:10px;margin-bottom:9px;flex-wrap:wrap}
.profile .rw-datelab{font-size:10.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--m3-text-3)}
.profile .rw-date{border:1px solid rgba(59,158,232,.5);background:var(--m3-surface-2);color:var(--m3-text);border-radius:7px;padding:7px 11px;font-size:13px;font-weight:700;font-family:var(--ff);color-scheme:dark;cursor:pointer}
.profile .rw-date:focus{outline:none;border-color:var(--m3-blue)}
.profile .rw-datehint{font-size:10.5px;color:var(--m3-text-3)}
.profile .rw-dateerr{font-size:11px;font-weight:700;color:var(--m3-amber);margin-bottom:9px}
.profile .rw-cnote{font-size:11.5px;color:var(--m3-text-2);line-height:1.55;text-wrap:pretty;margin-bottom:11px}
.profile .rw-cnote b{color:var(--m3-text)}
.profile .rw-cacts{display:flex;gap:8px}
.profile .reqws.resolved{display:flex;align-items:center;gap:11px;padding:13px 15px;border-color:var(--m3-line);background:var(--m3-surface)}
.profile .reqws.resolved .rw-ic{color:var(--m3-lime);font-size:15px}
.profile .rw-rmsg{font-size:12.5px;font-weight:600;color:var(--m3-text-2);flex:1;text-wrap:pretty}
.profile .rw-dismiss{flex:0 0 auto;background:var(--m3-surface-2);border:1px solid var(--m3-line);color:var(--m3-text-2);border-radius:7px;padding:6px 12px;font-size:11.5px;font-weight:700;cursor:pointer;font-family:var(--ff)}
.profile .rw-dismiss:hover{border-color:var(--m3-gray)}
.profile .more-menu{position:absolute;top:46px;right:0;z-index:30;background:var(--m3-surface);border:1px solid var(--m3-line);
  border-radius:10px;padding:6px;box-shadow:0 18px 50px rgba(0,0,0,.55);min-width:210px;animation:profpop .14s ease}
@keyframes profpop{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.profile .more-menu button{display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;color:var(--m3-text-2);
  font-family:var(--ff);font-size:12.5px;font-weight:600;text-align:left;padding:9px 10px;border-radius:7px;cursor:pointer}
.profile .more-menu button:hover{background:var(--m3-surface-2);color:var(--m3-text)}
.profile .more-menu .mm-ic{width:16px;text-align:center;color:var(--m3-text-3)}
.profile .more-menu .gated{margin-left:auto;font-size:9px;font-weight:800;color:var(--m3-text-3);border:1px solid var(--m3-line);border-radius:4px;padding:1px 5px}
.profile .more-menu .div{height:1px;background:var(--m3-line);margin:5px 4px}

/* ---- collapsible module ---- */
.profile .module{background:var(--m3-surface);border:1px solid var(--m3-line);border-radius:var(--radius);margin-bottom:10px;overflow:hidden}
.profile .module.open{border-color:#3d3d3d}
.profile .mod-head{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;user-select:none}
.profile .mod-head:hover{background:var(--m3-surface-2)}
.profile .mod-ic{width:30px;height:30px;border-radius:8px;background:var(--m3-surface-2);display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--m3-text-2);flex:0 0 auto}
.profile .module.open .mod-ic{background:var(--m3-lime-wash);color:var(--m3-lime)}
.profile .mod-tt{min-width:0;flex:1}
.profile .mod-t{font-size:13.5px;font-weight:700;letter-spacing:-.1px}
.profile .mod-s{font-size:11.5px;color:var(--m3-text-3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.profile .mod-cv{margin-right:6px;color:var(--m3-text-3);font-size:13px;transition:transform .18s cubic-bezier(.4,0,.2,1)}
.profile .module.open .mod-cv{transform:rotate(90deg);color:var(--m3-lime)}
.profile .mod-body{padding:4px 16px 18px;border-top:1px solid var(--m3-line);animation:profdrop .18s ease}
@keyframes profdrop{from{opacity:0}to{opacity:1}}

/* section header inside a module */
.profile .ssub{font-size:10px;letter-spacing:.5px;text-transform:uppercase;color:var(--m3-text-3);font-weight:700;margin:16px 0 9px}
.profile .ssub:first-child{margin-top:14px}

/* key-value grid (profile/contact) */
.profile .kvg{display:grid;grid-template-columns:1fr 1fr;gap:13px 18px}
.profile .kv .k{font-size:9.5px;letter-spacing:.4px;text-transform:uppercase;color:var(--m3-text-3);font-weight:700}
.profile .kv .v{font-size:13px;font-weight:600;margin-top:3px;display:flex;align-items:center;gap:8px}
.profile .kv .v .edit{color:var(--m3-blue);font-size:10.5px;font-weight:700;cursor:pointer;margin-left:auto}
.profile .v .gpill{font-size:8.5px;font-weight:800;letter-spacing:.3px;color:var(--m3-text-3);border:1px solid var(--m3-line);border-radius:4px;padding:1px 5px;text-transform:uppercase}
.profile .tagrow{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.profile .tag{font-size:10px;font-weight:700;padding:3px 9px;border-radius:5px;background:var(--m3-surface-3);color:var(--m3-text-2);border:1px solid var(--m3-line)}

/* belt history timeline */
.profile .belts{display:flex;flex-wrap:wrap;gap:0}
.profile .bnode{display:flex;align-items:center;gap:0}
.profile .bnode .bdot{width:13px;height:13px;border-radius:50%;border:2px solid var(--bc);background:var(--bc);flex:0 0 auto}
.profile .bnode.cur .bdot{box-shadow:0 0 0 3px color-mix(in srgb,var(--bc) 30%,transparent)}
.profile .bnode .blabel{margin:0 4px 0 7px}
.profile .bnode .bn{font-size:12px;font-weight:700}
.profile .bnode .bd{font-size:10px;color:var(--m3-text-3)}
.profile .bnode .bline{width:34px;height:2px;background:var(--m3-line);margin:0 2px}

/* stripes 3 */
.profile .stripes3{display:flex;gap:5px;align-items:center}
.profile .stbox{width:28px;height:18px;border-radius:4px;display:flex;align-items:center;justify-content:center;border:1px solid var(--m3-line);background:var(--m3-surface-3)}
.profile .stbox.earned{border:0}
.profile .stbox .ck{font-size:11px;font-weight:900}
.profile .stbox.s-red.earned{background:var(--m3-red)} .profile .stbox.s-red.earned .ck{color:#fff}
.profile .stbox.s-white.earned{background:#fff} .profile .stbox.s-white.earned .ck{color:#111}
.profile .stbox.s-black.earned{background:#4a4a4a} .profile .stbox.s-black.earned .ck{color:#fff}
.profile .stbox.empty{opacity:.5}

/* generic history rows */
.profile .rows{display:flex;flex-direction:column;border:1px solid var(--m3-line);border-radius:8px;overflow:hidden}
.profile .hrow{display:grid;align-items:center;gap:12px;padding:10px 13px;border-bottom:1px solid var(--m3-line);font-size:12.5px}
.profile .hrow:last-child{border-bottom:0}
.profile .hrow.head{background:var(--m3-surface-3);font-size:9.5px;letter-spacing:.4px;text-transform:uppercase;color:var(--m3-text-3);font-weight:700}
.profile .hrow .dt{color:var(--m3-text-3);font-family:var(--mono);font-size:11.5px;white-space:nowrap}
.profile .hrow b{font-weight:600}
.profile .hrow .mono{font-family:var(--mono);font-weight:700}
.profile .hrow.test{grid-template-columns:84px 1fr 70px 90px}
.profile .hrow.att{grid-template-columns:84px 1fr 90px}
.profile .hrow.credit{grid-template-columns:1fr 64px 64px 64px}

.profile .stt{font-size:9px;font-weight:800;letter-spacing:.3px;padding:2px 7px;border-radius:5px;text-transform:uppercase;justify-self:start}
.profile .stt.ok{background:rgba(170,221,68,.15);color:var(--m3-lime)}
.profile .stt.miss{background:rgba(204,34,34,.14);color:#ff8b8b}
.profile .stt.up{background:rgba(59,158,232,.15);color:var(--m3-blue)}

/* stat tiles */
.profile .tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.profile .tile{background:var(--m3-surface-3);border:1px solid var(--m3-line);border-radius:8px;padding:12px 13px}
.profile .tile .tn{font-size:20px;font-weight:800;font-family:var(--mono);letter-spacing:-.5px;line-height:1}
.profile .tile .tn .unlim{color:var(--m3-blue)}
.profile .tile .tl{font-size:9.5px;letter-spacing:.3px;text-transform:uppercase;color:var(--m3-text-3);font-weight:700;margin-top:6px}

/* billing lines (person) */
.profile .pbline{display:flex;align-items:center;gap:14px;padding:11px 13px;border:1px solid var(--m3-line);border-radius:8px;margin-bottom:8px}
.profile .pbline .pl{flex:1;min-width:0}
.profile .pbline .pl .pn{font-size:13px;font-weight:700}
.profile .pbline .pl .ps{font-size:11px;color:var(--m3-text-2);margin-top:1px}
.profile .pbline .pa{font-size:15px;font-weight:800;font-family:var(--mono)}
.profile .pbline .pa small{font-size:10px;color:var(--m3-text-3);font-weight:600}
.profile .hhref{background:var(--m3-surface-3);border:1px solid var(--m3-line);border-radius:8px;padding:11px 13px;font-size:12px;color:var(--m3-text-2);display:flex;align-items:center;gap:8px}
.profile .hhref b{color:var(--m3-text);font-family:var(--mono)}
.profile .hhref .open{margin-left:auto;color:var(--m3-blue);font-weight:700;cursor:pointer}
/* FD-CP33 convert / change-plan affordance (live billing module) */
.profile .pconv-rows{margin-top:10px;display:flex;flex-direction:column;gap:7px}
.profile .pconv-row{display:flex;align-items:center;gap:10px;padding:8px 11px;border:1px dashed var(--m3-line);border-radius:8px}
.profile .pconv-lab{flex:1;min-width:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.profile .pconv-plan{font-size:12px;font-weight:700;color:var(--m3-text)}
.profile .pconv-kind{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--m3-text-3);background:var(--m3-surface-3);border:1px solid var(--m3-line);border-radius:5px;padding:1px 6px}
.profile .pconv-kind.addon{color:var(--m3-blue)}
.profile .pconv-acts{flex-shrink:0;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.profile .pconv-btn{flex-shrink:0;font-size:11px;font-weight:700;color:var(--m3-text-2);background:var(--m3-surface-2);border:1px solid var(--m3-line);border-radius:7px;padding:5px 10px;cursor:pointer}
.profile .pconv-btn:hover{color:var(--m3-text);border-color:var(--m3-text-3)}

/* events / clubs */
.profile .evrow{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--m3-line)}
.profile .evrow:last-child{border-bottom:0}
.profile .evrow .ev-ic{width:32px;height:32px;border-radius:8px;background:var(--m3-surface-3);display:flex;align-items:center;justify-content:center;font-size:14px;flex:0 0 auto}
.profile .evrow .ev-t{font-size:13px;font-weight:700}
.profile .evrow .ev-s{font-size:11px;color:var(--m3-text-3);margin-top:1px}
.profile .evrow .ev-r{margin-left:auto}
.profile .pill{font-size:9px;font-weight:800;letter-spacing:.3px;padding:2px 8px;border-radius:5px;text-transform:uppercase;white-space:nowrap}
.profile .pill.lime{background:var(--m3-lime);color:#15200a}
.profile .pill.blue{background:var(--m3-blue);color:#06223a}
.profile .pill.amber{background:var(--m3-amber);color:#3a2a00}
.profile .pill.ghost{background:var(--m3-surface-3);color:var(--m3-text-3);border:1px solid var(--m3-line)}

/* communication thread (compact) */
.profile .pthread{display:flex;flex-direction:column;gap:9px;padding:6px 0}
.profile .pmsg{max-width:78%;font-size:12.5px;line-height:1.5;padding:8px 11px;border-radius:12px}
.profile .pmsg .by{font-size:9px;font-weight:700;opacity:.8;margin-bottom:2px}
.profile .pmsg.them{align-self:flex-start;background:var(--m3-surface-2);color:var(--m3-text);border-bottom-left-radius:4px}
.profile .pmsg.us{align-self:flex-end;background:var(--m3-lime);color:#15200a;border-bottom-right-radius:4px}
.profile .pmsg .tm{font-size:9px;opacity:.55;margin-top:3px;text-align:right}

/* staff lens banner */
.profile .stafflens{display:flex;align-items:center;gap:9px;background:rgba(59,158,232,.08);border:1px solid rgba(59,158,232,.3);
  border-radius:8px;padding:9px 13px;margin-bottom:12px;font-size:12px;color:var(--m3-text-2)}
.profile .stafflens b{color:var(--m3-blue)}

/* membership modal (reuse pattern, scoped) */
.profile .modal-scrim{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:80;display:flex;align-items:center;justify-content:center;animation:proffade .15s}
@keyframes proffade{from{opacity:0}to{opacity:1}}
.profile .modal{width:520px;max-width:92vw;background:var(--m3-surface);border:1px solid var(--m3-line);border-radius:var(--radius);
  box-shadow:0 24px 70px rgba(0,0,0,.6);animation:profmpop .18s cubic-bezier(.2,.7,.2,1);max-height:90vh;display:flex;flex-direction:column}
@keyframes profmpop{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.profile .modal-h{padding:16px 20px;border-bottom:1px solid var(--m3-line);display:flex;align-items:center;gap:11px}
.profile .modal-h .mi{width:34px;height:34px;border-radius:9px;background:var(--m3-lime);color:#111;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:800}
.profile .modal-h .mt{font-size:15px;font-weight:800}
.profile .modal-h .ms{font-size:11.5px;color:var(--m3-text-3)}
.profile .modal-h .mx{margin-left:auto;background:none;border:0;color:var(--m3-text-3);font-size:18px;cursor:pointer;font-family:var(--ff)}
.profile .modal-b{padding:18px 20px;overflow-y:auto}
.profile .mopts{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:14px}
.profile .mopt{border:1px solid var(--m3-line);background:var(--m3-bg);border-radius:8px;padding:11px 12px;cursor:pointer}
.profile .mopt.on{border-color:var(--m3-lime);background:rgba(170,221,68,.08)}
.profile .mopt .po-t{font-size:13px;font-weight:700}
.profile .mopt .po-s{font-size:11px;color:var(--m3-text-3);margin-top:2px}
.profile .mrow{background:var(--m3-bg);border:1px solid var(--m3-line);border-radius:8px;padding:10px 12px;font-size:12.5px;display:flex;align-items:center;gap:8px;margin-bottom:10px}
.profile .mrow .tag{margin-left:auto;font-size:9.5px;color:var(--m3-text-3);background:none;border:0;padding:0}
.profile .modal-f{padding:14px 20px;border-top:1px solid var(--m3-line);display:flex;align-items:center;gap:10px}
.profile .modal-f .ph{font-size:11px;color:var(--m3-text-3);flex:1}

@media (max-width:760px){ .profile .kvg{grid-template-columns:1fr} .profile .tiles{grid-template-columns:1fr 1fr} }

/* 5e (Prompt B) — Notify proactive-contact modal */
.profile .notify-ta{width:100%;min-height:96px;resize:vertical;background:var(--m3-surface-2,#222);border:1px solid var(--m3-line,#333);
  border-radius:9px;color:var(--m3-text,#eee);font-size:13px;line-height:1.5;padding:10px 12px;font-family:inherit}
.profile .notify-ta:focus{outline:none;border-color:var(--m3-lime,#AADD44)}
.profile .notify-note{margin-top:8px;font-size:10.5px;color:var(--m3-text-3,#888);line-height:1.5;text-wrap:pretty}
.profile .notify-sent{padding:18px 6px;font-size:13.5px;font-weight:700;color:var(--m3-lime,#AADD44);text-align:center}

/* Pass 3 bug fix — the slide-up entrance animated FROM opacity:0 with no
   fill-mode; frozen-animation / reduced-motion environments hold frame 0,
   stranding the modal invisible (the “slide-formatting bug”). Same
   neutralization as progress.css — the visible base state always applies.
   Declared LAST so it wins the cascade over the per-element animation rules. */
.profile .modal-scrim,.profile .modal,.profile .more-menu,.profile .np-menu,.profile .mod-body{animation:none}
.profile .pacts .btn{white-space:nowrap}

/* ---- ACCOUNT CREDIT (Account-Credit brief, step 1) — violet = money/store-credit,
   deliberately distinct from the lime class-credit chips ---- */
.profile{--m3-violet:#b791e8;--m3-violet-wash:rgba(183,145,232,.13)}
.profile .pmeta .acct-pill{font-size:11.5px;font-weight:800;color:var(--m3-violet);background:var(--m3-violet-wash);border:1px solid rgba(183,145,232,.4);border-radius:6px;padding:3px 9px;white-space:nowrap;letter-spacing:.1px}
.profile .acct-hero{display:flex;gap:18px;align-items:center;background:var(--m3-surface-3);border:1px solid var(--m3-line);border-radius:10px;padding:16px 18px;margin-top:14px;flex-wrap:wrap}
.profile .acct-bal{flex:0 0 auto;min-width:128px;padding-right:18px;border-right:1px solid var(--m3-line)}
.profile .acct-amt{font-size:32px;font-weight:800;font-family:var(--mono);letter-spacing:-1px;line-height:1;color:var(--m3-violet)}
.profile .acct-lab{font-size:9.5px;letter-spacing:.4px;text-transform:uppercase;color:var(--m3-text-3);font-weight:700;margin-top:8px}
.profile .acct-explain{flex:1;min-width:220px;font-size:12.5px;line-height:1.55;color:var(--m3-text-2)}
.profile .acct-explain b{color:var(--m3-text);font-weight:700}
.profile .acct-vs{margin-top:8px;font-size:11.5px;line-height:1.5;color:var(--m3-text-3);background:var(--m3-violet-wash);border-radius:6px;padding:7px 10px}
.profile .acct-vs b{color:var(--m3-violet);font-weight:700}
.profile .hrow.acct{grid-template-columns:72px 1fr 92px 78px;align-items:start}
.profile .hrow.acct .dt{padding-top:1px}
.profile .acct-reason{font-size:11px;color:var(--m3-text-3);margin-top:3px;font-weight:400;line-height:1.4}
.profile .acct-by{color:var(--m3-text-3)}
.profile .acct-delta{justify-self:end;font-weight:800}
.profile .acct-delta.pos{color:var(--m3-lime)}
.profile .acct-delta.neg{color:var(--m3-text-2)}
.profile .hrow.acct .mono:last-child{justify-self:end;color:var(--m3-text)}
.profile .acct-empty{font-size:12px;color:var(--m3-text-3);background:var(--m3-surface-3);border:1px solid var(--m3-line);border-radius:8px;padding:14px 15px}
.profile .acct-foot{font-size:11px;line-height:1.5;color:var(--m3-text-3);margin-top:12px}
.profile .acct-soon{color:var(--m3-violet);font-weight:600}
@media (max-width:760px){ .profile .acct-bal{border-right:0;border-bottom:1px solid var(--m3-line);padding-right:0;padding-bottom:12px;width:100%} }

/* account-credit — Add-credit action row + modal (step 4) */
.profile .acct-actrow{display:flex;align-items:center;gap:12px;margin-top:12px;flex-wrap:wrap}
.profile .acct-add{border:1px solid rgba(183,145,232,.5);background:var(--m3-violet-wash);color:var(--m3-violet);
  border-radius:8px;padding:8px 14px;font-size:12.5px;font-weight:700;cursor:pointer;font-family:var(--ff)}
.profile .acct-add:hover{background:rgba(183,145,232,.2)}
.profile .acct-locked{display:inline-flex;align-items:center;gap:8px;border:1px dashed var(--m3-line);color:var(--m3-text-3);
  border-radius:8px;padding:8px 14px;font-size:12.5px;font-weight:700}
.profile .acct-lk{font-size:10px;font-weight:800;letter-spacing:.3px;color:var(--m3-text-3)}
.profile .acct-actnote{font-size:11px;color:var(--m3-text-3)}
.profile .modal-h .mi.acct{background:var(--m3-violet-wash);color:var(--m3-violet)}
.profile .acct-mlab{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--m3-text-3)}
.profile .acct-aminput{margin-left:auto;display:inline-flex;align-items:center;gap:3px;background:var(--m3-surface-2);
  border:1px solid var(--m3-line);border-radius:8px;padding:6px 11px;font-family:var(--mono);font-weight:800}
.profile .acct-aminput small{color:var(--m3-text-3);font-size:13px}
.profile .acct-aminput input{width:90px;background:none;border:0;outline:none;color:var(--m3-violet);font-family:var(--mono);
  font-size:17px;font-weight:800;text-align:right}
.profile .acct-mfield{display:flex;flex-direction:column;gap:9px;margin-top:14px}
.profile .acct-chips{display:flex;gap:7px;flex-wrap:wrap}
.profile .acct-chip{border:1px solid var(--m3-line);background:var(--m3-surface-2);color:var(--m3-text-2);
  border-radius:16px;padding:5px 12px;font-size:11.5px;font-weight:700;cursor:pointer;font-family:var(--ff)}
.profile .acct-chip:hover{border-color:var(--m3-gray)}
.profile .acct-chip.on{background:var(--m3-violet-wash);border-color:rgba(183,145,232,.55);color:var(--m3-violet)}
.profile .acct-rinput{width:100%;background:var(--m3-surface-2);border:1px solid var(--m3-line);border-radius:8px;
  color:var(--m3-text);font-family:var(--ff);font-size:12.5px;padding:9px 11px;box-sizing:border-box}
.profile .acct-rinput:focus{outline:none;border-color:rgba(183,145,232,.6)}
.profile .btn.primary.acct-confirm{background:var(--m3-violet);color:#1c1430}

/* Wave 3.4: live empty-state for modules/tabs with no live data source yet */
.mod-empty{color:var(--m3-text-3);font-size:13px;line-height:1.55;padding:14px 4px}

/* Wave 3.5: live program tracks (read-only, from /v1/students/:id) */
.track-rows{display:flex;flex-direction:column;gap:6px;margin:2px 0 6px}
.track-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;background:var(--m3-surface-2);border:1px solid var(--m3-line);border-radius:7px}
.track-prog{font-size:13px;font-weight:700;color:var(--m3-text)}
.track-st{font-size:11px;font-weight:700;text-transform:capitalize;color:var(--m3-text-3)}
.track-st.on{color:var(--m3-lime)}

/* Live membership status pill (read-only, FD-CP2 seam · live-only). Additive. */
.mem-live-pill{font-size:11px;font-weight:800;text-transform:capitalize;color:var(--m3-text-2,#C6C6C6);
  border:1px solid var(--m3-line,#3A3A3A);border-radius:6px;padding:2px 8px}

/* ===========================================================
   FD-CP145 — Documents module (signed agreements & waivers).
   Signed copies live on the PERSON; Settings only configures the document.
   =========================================================== */
.pfdoc-view{
  background:none;border:none;padding:0 0 0 8px;cursor:pointer;
  font-size:11.5px;font-weight:700;color:var(--m3-lime);white-space:nowrap
}
.pfdoc-view:hover{text-decoration:underline;text-underline-offset:2px}

.pfdoc-modal{max-width:720px;width:min(720px,92vw)}
.pfdoc-modal .modal-b{max-height:70vh;overflow-y:auto}
.pfdoc-meta{font-size:11.5px;color:var(--m3-text-2);margin-bottom:4px}
.pfdoc-summary{
  border:1px solid var(--m3-line-2);border-radius:8px;background:var(--m3-surface-3);
  padding:10px 12px;margin:10px 0 14px;display:flex;flex-direction:column;gap:5px
}
.pfdoc-srow{display:flex;gap:10px;font-size:12px;color:var(--m3-text-2)}
.pfdoc-srow span{min-width:96px;flex:0 0 auto;color:var(--m3-text-3)}
.pfdoc-srow b{color:var(--m3-text);font-weight:600}
.pfdoc-p{font-size:12.5px;color:var(--m3-text-2);line-height:1.6;margin:0 0 12px}
.pfdoc-sec{margin:0 0 14px}
.pfdoc-sec h4{font-size:12.5px;font-weight:800;color:var(--m3-text);margin:0 0 5px}
.pfdoc-sec p{font-size:12px;color:var(--m3-text-2);line-height:1.65;margin:0;text-wrap:pretty}
.pfdoc-note{
  font-size:11px;color:var(--m3-text-3);border-top:1px solid var(--m3-line);
  padding-top:10px;margin:14px 0 0;text-wrap:pretty
}
