/* ============================================================
   USC SNOW CLUB — E-BOARD ADMIN
   Shared by every page in /admin/. Builds on styles.css + pages.css
   (portal header, cards, buttons); only admin-specific pieces here.
   ============================================================ */
html,body{background:var(--cream)}
[hidden]{display:none !important}

/* header menu (portal-nav from pages.css) */
.portal-menu button{display:flex;width:100%;justify-content:space-between;gap:14px;padding:10px 12px;font-size:13.5px;
  border-radius:var(--radius);background:none;border:0;font-family:var(--font-body);cursor:pointer;color:inherit;text-align:left}
.portal-menu button:hover{background:var(--cream)}

/* layout: section nav + page */
.adm{display:grid;grid-template-columns:210px minmax(0,1fr);gap:22px;align-items:start;padding:26px var(--pad-x) 70px}
.adm-nav{position:sticky;top:16px;display:flex;flex-direction:column;gap:2px}
.adm-nav a{display:block;padding:10px 12px;border-radius:var(--radius);font-family:var(--font-display);font-weight:700;
  font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--black);border-left:3px solid transparent}
.adm-nav a:hover{background:var(--white)}
.adm-nav a[aria-current="page"]{background:var(--white);border-left-color:var(--red);color:var(--red)}
.adm-main{min-width:0}
.adm-main h1{font-size:30px;line-height:1.05;margin-bottom:18px}

/* access / loading / error card */
.gate{max-width:560px;margin:10px auto 0}
.gate h2{font-size:30px;line-height:1.05}
.gate p{font-size:15px;line-height:1.6;color:#444;margin-top:12px}
.gate .btns{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}

/* saved / error toast */
.adm-toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:60;max-width:min(560px,calc(100vw - 32px));
  background:var(--black);color:var(--white);border-radius:var(--radius);padding:12px 18px;font-size:14px;line-height:1.5;
  box-shadow:0 12px 30px rgba(5,6,7,.25);border-left:4px solid #3fbf6a}
.adm-toast.err{border-left-color:var(--red)}

/* shared bits */
.lead{font-size:13.5px;color:#666;line-height:1.55;margin:-6px 0 14px}
.muted{font-size:13px;color:#8a857f}
.loading{font-size:13.5px;color:#8a857f}
.loading::before{content:"";display:inline-block;width:12px;height:12px;margin-right:8px;vertical-align:-1px;border-radius:50%;
  border:2px solid #d8d4cf;border-top-color:var(--red);animation:adm-spin .8s linear infinite}
@keyframes adm-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.loading::before{animation:none}}
.msg{font-size:13.5px;line-height:1.5}
.msg.err{color:var(--red)}
.msg.ok{color:#127a2e}
.f label{display:block;font-family:var(--font-display);font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin:12px 0 6px}
.f select,.f input,.f textarea{width:100%;padding:10px 12px;border:1px solid #d8d4cf;border-radius:var(--radius);font-family:var(--font-body);font-size:14px;background:var(--white)}
.f textarea{min-height:80px;resize:vertical}
.f .two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.f .two > *,.f input{min-width:0}
.f .hint{font-size:12px;color:#8a857f;margin-top:5px;line-height:1.45}
.f .btn{margin-top:14px;border:0}
.f .wide{width:100%}
.sm{font-family:var(--font-display);font-weight:700;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;padding:6px 10px;
  border-radius:var(--radius);border:1px solid var(--black);background:transparent;color:var(--black);cursor:pointer}
.sm:hover{background:var(--black);color:var(--white)}
.sm.red{border-color:var(--red);color:var(--red)}
.sm.red:hover{background:var(--red);color:var(--white)}
.sm:disabled{opacity:.5;cursor:default}
.tag{display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:2px 7px;border-radius:999px;
  margin-left:6px;vertical-align:1px;white-space:nowrap;background:#e7e4e0;color:#555}
.tag.sched{background:#fde7c8;color:#7a4a00}
.tag.you{background:var(--black);color:var(--white)}
.tag.ok{background:#dcf1e2;color:#11612a}

/* dashboard */
.dash{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.dash .span{grid-column:1 / -1}
.role{border-top:1px solid #eeebe7;padding:14px 0}
.role:first-of-type{border-top:0;padding-top:0}
.role h4{font-family:var(--font-display);font-weight:800;font-size:19px;text-transform:uppercase;letter-spacing:.03em}
.role .when{font-size:12.5px;color:#666;margin-top:3px}
.role .resp{font-size:14px;line-height:1.6;margin-top:8px;white-space:pre-wrap;color:#333}
.role .res-h{font-family:var(--font-display);font-weight:700;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;margin-top:12px;color:#555}
.role .res{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:6px}
.role .res li{font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.role .res a{color:var(--red);font-weight:600;text-decoration:none}
.role .res a:hover{text-decoration:underline}
.role .res span{display:block;font-size:12.5px;color:#666}
.role .res-none{font-size:13px;margin-top:6px}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.stat{background:var(--cream);border-radius:var(--radius);padding:12px}
.stat b{display:block;font-family:var(--font-display);font-weight:800;font-size:30px;line-height:1}
.stat span{display:block;margin-top:4px;font-size:12px;line-height:1.35;color:#666}
.list{list-style:none;margin:0;padding:0}
.list li{border-top:1px solid #eeebe7;padding:9px 0;font-size:13.5px;line-height:1.5}
.list li:first-child{border-top:0;padding-top:0}
.list .dt{color:#666;font-size:12.5px}
.go{display:inline-block;margin-top:12px;font-size:13px;font-weight:600;color:var(--red)}

/* change log */
.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-bottom:14px}
.filters > div{flex:1 1 200px}
.filters label{margin-top:0}
.log{list-style:none;margin:0;padding:0}
.log > li{border-top:1px solid #eeebe7;padding:12px 0;display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px}
.log > li:first-child{border-top:0}
.log .at{font-size:12.5px;color:#666}
.log .what{font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.log .who{font-size:12.5px;color:#666;overflow-wrap:anywhere}
.log dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:2px 12px;margin:6px 0 0;font-size:12.5px}
.log dt{color:#666}
.log dd{margin:0;overflow-wrap:anywhere}

@media (max-width:860px){
  .adm{grid-template-columns:1fr;gap:14px;padding-top:14px}
  .adm-nav{position:static;flex-direction:row;overflow-x:auto;gap:6px;padding-bottom:4px;-webkit-overflow-scrolling:touch}
  .adm-nav a{white-space:nowrap;border-left:0;border-bottom:3px solid transparent;background:var(--white)}
  .adm-nav a[aria-current="page"]{border-bottom-color:var(--red)}
  .dash{grid-template-columns:1fr}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .f .two{grid-template-columns:1fr}
  .log > li{grid-template-columns:1fr;gap:4px}
}
