/* Admin dashboard: hero, three-figure summary, and the section cards.
   Card styling is scoped here rather than in styles.css so the Student and Teacher
   portals, which share styles.css, are entirely unaffected. */

.hub-hero{padding:6px 0 24px}
.hub-hero .eyebrow{margin:0;color:var(--orange);font:600 10px "Jost",sans-serif;letter-spacing:.17em;text-transform:uppercase}
.hub-hero h1{margin:10px 0 0;font:600 clamp(34px,4.4vw,52px)/1.06 "Cormorant Garamond",Georgia,serif;color:var(--ink)}
.hub-hero .hub-lede{max-width:56ch;margin:12px 0 0;color:var(--muted);font-size:13.5px;line-height:1.65}
.hub-hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap}
.dashboard-session-controls{display:flex;align-items:center;gap:10px;padding-top:8px}

/* Three live figures. Each carries a real number, never decoration. */
.hub-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin:0 0 34px}
.hub-tile{position:relative;padding:18px 19px;border:1px solid var(--line);border-radius:15px;
  background:var(--paper);box-shadow:0 5px 16px rgba(91,66,36,.035)}
.hub-tile .tile-icon{display:grid;place-items:center;width:32px;height:32px;margin-bottom:12px;
  border-radius:10px;background:var(--cream);color:var(--orange)}
.hub-tile .tile-icon svg{width:17px;height:17px;display:block}
.hub-tile .tile-label{margin:0;color:var(--muted);font:600 9px "Jost",sans-serif;letter-spacing:.14em;text-transform:uppercase}
.hub-tile .tile-value{display:block;margin:6px 0 0;font:600 30px/1.12 "Cormorant Garamond",Georgia,serif;color:var(--ink)}
.hub-tile .tile-note{display:block;margin-top:7px;color:var(--muted);font-size:11.5px;line-height:1.5}
.hub-tile.tile-wide{grid-column:span 2}

.hub-summary-state{margin:0 0 22px;padding:13px 15px;border:1px solid var(--line);border-radius:11px;
  background:var(--paper);color:var(--muted);font-size:12px}
.hub-summary-state[data-state="error"]{border-color:#e3b8a3;background:#fbeee8;color:#9b4c25}

.hub-section-heading{margin:0 0 15px;color:var(--muted);font:600 9.5px "Jost",sans-serif;
  letter-spacing:.15em;text-transform:uppercase;opacity:.85}

/* Section cards. The illustration sits in a soft tinted well so it reads as part of the
   card rather than a pasted-on graphic, and the whole card lifts gently on hover. */
body.has-admin-shell .dashboard{display:grid;grid-template-columns:repeat(auto-fill,minmax(258px,1fr));
  gap:15px;margin:0 0 44px}
/* styles.css lays the original dashboard out on a fixed six-column grid with each card
   spanning two. This grid is auto-fill instead, so the span must be reset -- including the
   nth-child overrides that stylesheet also carries. */
body.has-admin-shell .dashboard .card,
body.has-admin-shell .dashboard .card:nth-child(4),
body.has-admin-shell .dashboard .card:nth-child(5),
body.has-admin-shell .dashboard .card:nth-child(6){grid-column:auto}
body.has-admin-shell .dashboard .card{position:relative;display:flex;flex-direction:column;gap:15px;
  min-height:0;justify-content:flex-start;padding:22px;border:1px solid var(--line);border-radius:17px;
  background:var(--paper);color:inherit;text-decoration:none;box-shadow:0 5px 16px rgba(91,66,36,.035);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
body.has-admin-shell .dashboard .card:hover{transform:translateY(-2px);border-color:rgba(181,98,46,.34);
  box-shadow:0 12px 26px rgba(91,66,36,.09)}
body.has-admin-shell .dashboard .card:focus-visible{outline:2px solid var(--orange);outline-offset:3px}

.card-art{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;
  background:linear-gradient(150deg,var(--cream),#f3e8d6);color:var(--orange);
  transition:color .18s ease}
.card-art svg{width:27px;height:27px;display:block}
body.has-admin-shell .dashboard .card:hover .card-art{color:#8e4a24}

.card-body h2{margin:0;font:600 25px/1.15 "Cormorant Garamond",Georgia,serif;color:var(--ink)}
.card-body p{margin:6px 0 0;color:var(--muted);font-size:12.5px;line-height:1.55}

/* Sections not yet connected keep their place but read as unavailable. */
body.has-admin-shell .dashboard .card.staging-not-connected{opacity:.55;pointer-events:none;box-shadow:none}
body.has-admin-shell .dashboard .card .connection-state{margin-top:auto;color:var(--muted);
  font:600 8.5px "Jost",sans-serif;letter-spacing:.11em;text-transform:uppercase}

body.has-admin-shell>main>footer{margin:0;padding:22px 0 34px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;gap:14px;color:var(--muted);font-size:11px}
body.has-admin-shell>main>footer p{margin:0}

@media(max-width:650px){
  .hub-tile.tile-wide{grid-column:auto}
  .hub-hero{padding:0 0 18px}
  body.has-admin-shell .dashboard{grid-template-columns:1fr;gap:13px}
  body.has-admin-shell>main>footer{flex-direction:column;gap:5px}
}
