/* Admin app: today, requests, mentors, people, settings. */
/* admin */
.admin-tabs{display:none}
@media (max-width:960px){
  /* phone and tablet: one scrolling line of sections, no visible scrollbar */
  .admin-tabs{display:flex;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none;gap:8px;margin-inline:calc(-1 * var(--gutter,16px));padding-inline:var(--gutter,16px)}
  .admin-tabs .chip{white-space:nowrap;flex:0 0 auto}
}
#ab{min-width:0;display:grid;gap:16px;align-content:start}
#ab > *{min-width:0}
.adm .status{text-transform:none;letter-spacing:0;font-size:var(--fs-caption)}
.adm .status.paid,#sheet .status.paid{color:var(--info);background:var(--info-bg);border-color:var(--info)}
.adm-chips{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:8px;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px}
.adm-chips::-webkit-scrollbar{display:none}
.adm-chips .chip{flex:0 0 auto;white-space:nowrap}
.adm-bar{gap:12px;flex-wrap:wrap}
.adm-bar p{flex:1 1 320px;margin:0}
@media (max-width:960px){
  .admin-tabs::-webkit-scrollbar{display:none}
  .admin-tabs .chip[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
}
/* ---------- admin Today ---------- */
#ab .group-h{margin:4px 0 10px}
.task-list{list-style:none;margin:0;padding:0;border:1px solid var(--hair-strong);background:var(--paper)}
.task-list li{display:flex;align-items:center;gap:16px;padding:14px 16px;border-bottom:1px solid var(--hair)}
.task-list li:last-child{border-bottom:0}
.task-list li > span{flex:1 1 auto;min-width:0;font-size:var(--fs-body);line-height:1.4}
.task-list li .btn{flex:0 0 auto}
.task-clear{margin:0;padding:18px 16px;border:1px solid var(--hair-strong);background:var(--paper);font-size:var(--fs-body)}
.numbers{border:0;border-top:1px solid var(--hair-strong);padding:14px 0 0;margin:0;background:none}
.numbers > summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;min-height:44px}
.numbers > summary::-webkit-details-marker{display:none}
.numbers > summary::after{content:"+";margin-left:auto;font-family:var(--mono);font-size:var(--fs-lead)}
.numbers[open] > summary::after{content:"−"}
.num-h{font-family:var(--mono);font-size:var(--fs-caption);font-weight:500;color:var(--muted);margin:16px 0 8px}
.kpi-go{position:absolute;top:10px;right:12px;font-style:normal;font-family:var(--mono);font-size:var(--fs-ui);color:var(--muted)}
@media (max-width:600px){
  .task-list li{gap:12px;padding:12px 14px}
  .task-list li > span{font-size:var(--fs-body-s)}
  .task-list li .btn{min-height:44px;min-width:76px;justify-content:center}
}
.act-row{gap:6px;flex-wrap:wrap}
.adm .act-row .btn.sm,.adm .rq-act .btn.sm{min-height:32px;padding:0 12px}
/* action buttons: one size. The main action spans the row; the follow-ups sit side by side under it (links and buttons alike) */
.adm .act-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;width:100%;max-width:240px;margin-left:auto}
.adm .act-row > .btn:first-child:not(:only-child){grid-column:1/-1}
.adm .act-row > .btn:only-child,.adm .act-row > .btn:nth-child(2):last-child{grid-column:1/-1}
.adm .act-row .btn.sm{height:32px;justify-content:center;text-align:center;white-space:nowrap;padding:0 8px}
.act-note{display:block;margin-bottom:6px}
.m-id{gap:10px;flex-wrap:nowrap}
.m-status{display:grid;gap:6px;justify-items:start}
.m-mail{overflow-wrap:anywhere}
.m-tbl td{vertical-align:top}
.adm .mini-photo{width:36px;height:36px;flex:0 0 36px;border-radius:var(--r-round)}
.adm .mini-photo img{object-fit:cover}
.rq-tbl td{vertical-align:top}
.rq-tbl td.act{min-width:190px}
.due-soon{color:var(--warn);font-weight:500}
.due-late{color:var(--bad);font-weight:500}
.rq-stats{display:flex;flex-wrap:wrap;gap:0;border:1px solid var(--hair-strong);background:var(--paper)}
.rq-stats > span{flex:1 1 150px;padding:10px 14px;border-right:1px solid var(--hair);display:grid;gap:2px}
.rq-stats > span:last-child{border-right:0}
.rq-stats small{font-size:var(--fs-caption);color:var(--muted)}
.rq-stats b{font-size:var(--fs-lead);font-weight:500}
.pay-warn{gap:6px;padding:12px 14px}
.pay-warn .row{gap:8px;flex-wrap:nowrap}
.how{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:10px 14px;border:1px dashed var(--hair-strong)}
.how span{flex:1 1 300px}
.pay-mode{display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:var(--muted);border-top:1px solid var(--hair);padding-top:12px}
.app-links a{overflow-wrap:anywhere}
/* request cards: shown under 1100 px instead of the table (compact, one next step) */
.rq-cards{display:none}
.rq-card{border:1px solid var(--hair-strong);background:var(--paper);padding:12px 14px;display:grid;gap:6px}
.rq-card + .rq-card{margin-top:10px}
.rq-l1{display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.rq-l1 b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rq-price{font-weight:500;white-space:nowrap}
.rq-l2{color:var(--muted);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.rq-l3{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.rq-act{display:flex;gap:8px;align-items:center;margin-top:4px}
.rq-act > .btn{flex:1 1 auto;justify-content:center}
.more{position:relative;flex:0 0 auto;border:0!important;padding:0!important;margin:0!important;background:none}
.more > summary{list-style:none;cursor:pointer}
.more > summary::-webkit-details-marker{display:none}
.more-pop{position:absolute;right:0;bottom:calc(100% + 6px);z-index:20;display:grid;gap:6px;padding:8px;background:var(--paper);border:1px solid var(--hair-strong);box-shadow:4px 4px 0 var(--accent);min-width:190px}
.more-pop .btn{width:100%;justify-content:center}
@media (max-width:1099px){
  .rq-tbl{display:none}
  .rq-cards{display:block}
}
@media (max-width:600px){
  .rq-act .btn,.rq-act summary.btn{min-height:44px!important}
}
@media (max-width:700px){
  /* stacked cards: generic admin tables on phones, the Mentors table under 1100 px */
  .scroll-seg{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;-webkit-overflow-scrolling:touch}
  .scroll-seg .chip{white-space:nowrap;flex:0 0 auto}
  /* phones: the Mentors card is the same compact card, two columns */
  .m-tbl tr{display:grid!important;grid-template-columns:1fr auto;gap:8px 12px;padding:12px 14px!important}
  .m-tbl td{display:block!important;padding:0!important}
  .m-tbl td[data-label]::before{display:block;margin-bottom:4px;padding:0!important}
  .m-tbl td:first-child{grid-column:1/-1}
  .m-tbl td:nth-child(2){grid-column:1/-1}
  .m-tbl td.act{grid-column:1/-1;margin-top:2px!important}
  .m-tbl td:first-child::before,.m-tbl td:nth-child(2)::before{display:none!important}
  .m-tbl td.act .row{grid-template-columns:repeat(auto-fit,minmax(84px,1fr))!important}
}
/* ---------- admin sheets ---------- */
.adm-form{gap:18px}
.fgroup{border:0;margin:0;padding:0;display:grid;gap:14px;min-width:0}
.fgroup legend{font-family:var(--mono);font-size:var(--fs-caption);color:var(--muted);padding:0 0 8px;margin-bottom:4px;border-bottom:1px solid var(--hair);width:100%}
.adm-form .field > span,#apf .field > span,#pf .field > span,#rf .field > span,#mpf .field > span{text-transform:none;letter-spacing:0}
.slug-help.bad{color:var(--bad)}
.photo-row{gap:14px;align-items:center;flex-wrap:wrap}
.adm-foot{position:sticky;bottom:-24px;z-index:4;margin:0 -24px -24px;padding:12px 24px 16px;background:var(--paper);border-top:1px solid var(--hair-strong);display:grid;gap:8px}
.adm-foot .err:empty{display:none}
.discard{display:grid;gap:8px;padding:10px 12px;background:var(--warn-bg);border:1px solid var(--warn)}
.discard[hidden]{display:none}
.discard p{margin:0}
@media (max-width:760px){
  .adm-foot{bottom:calc(-20px - env(safe-area-inset-bottom,0px));margin:0 calc(-1 * var(--gutter-r,16px)) calc(-20px - env(safe-area-inset-bottom,0px)) calc(-1 * var(--gutter,16px));padding:12px var(--gutter-r,16px) calc(14px + env(safe-area-inset-bottom,0px)) var(--gutter,16px)}
  .adm-foot .row .btn{flex:1 1 0;justify-content:center}
}
.ledger{list-style:none;margin:0;padding:0;border:1px solid var(--hair-strong)}
.ledger li{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--hair)}
.ledger li:last-child{border-bottom:0}
.confirm-line{flex:1 1 100%;display:grid;gap:8px}
.confirm-line p{margin:0}
/* ---------- admin: toast with one action (Undo) ---------- */
.adm-toast{position:fixed;z-index:var(--z-tip);right:24px;bottom:calc(var(--player-h,0px) + 24px + env(safe-area-inset-bottom,0px));display:flex;align-items:center;gap:14px;max-width:min(460px,calc(100% - 32px));padding:12px 14px 14px 16px;background:var(--ink);color:var(--paper);border:1px solid var(--ink);box-shadow:4px 4px 0 var(--accent);font-family:var(--mono);font-size:var(--fs-ui);line-height:1.4;overflow:hidden;animation:ss-pop .2s ease-out}
.adm-toast[hidden]{display:none}
.adm-toast span{flex:1 1 auto}
.adm-toast-btn{flex:0 0 auto;background:var(--accent);color:var(--on-accent);border:1px solid var(--accent);font:inherit;font-weight:600;padding:0 14px;min-height:36px;cursor:pointer}
.adm-toast-bar{position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--accent);transform-origin:left;animation:adm-drain linear forwards}
@keyframes adm-drain{from{transform:scaleX(1)}to{transform:scaleX(0)}}
@media (max-width:760px){
  .adm-toast{left:16px;right:16px;max-width:none}
  .adm-toast-btn{min-height:44px}
}
@media (prefers-reduced-motion:reduce){
  .adm-toast{animation:none}
  .adm-toast-bar{animation:none;display:none}
}
/* ---------- admin people: search row controls share one height ---------- */
#ab input[type=search]{border:1px solid var(--hair-strong);background:var(--paper);padding:11px 13px;border-radius:0;font-size:var(--fs-body);-webkit-appearance:none;appearance:none;min-height:46px}
#ab #pCp{min-height:46px}
@media (min-width:701px){
  #ab .panel.stack > .btn.sm{justify-self:start}
}
#mf .grid2,#mf .grid3{align-items:start}
@media (max-width: 960px), (pointer: coarse){
  #acct{min-width:44px;min-height:44px}
}
@media (max-width:600px){
  .rq-stats > span{flex:1 1 0;padding:8px 10px;min-width:0}
  .rq-stats b{font-size:var(--fs-body-s)}
  .rq-stats small{font-size:var(--fs-micro)}
}
.pay-warn .btn{white-space:nowrap;flex:0 0 auto}
.custom-g{gap:8px;flex-wrap:wrap;margin-top:8px}
.custom-g:empty{display:none}
.custom-g .chip{padding-right:4px}
.custom-g .x{border:0;background:none;font:inherit;font-size:var(--fs-body);line-height:1;min-width:28px;min-height:28px;cursor:pointer;color:inherit}
.other-g{gap:8px;flex-wrap:nowrap;margin-top:8px}
.other-g[hidden]{display:none}
.other-g input{flex:1 1 auto;min-width:0}
@media (max-width:600px){
  .rq-card{padding:10px 12px;gap:4px}
  .rq-act{margin-top:2px}
}
.admin-tabs .chip::before{display:none}
