/* Platform demo pages: the landing page (/) and the dashboards index (/dashboards/). */

main.demo {
  --accent-soft: rgb(38 92 47 / 8%);
  --domain-test-prep-ink: #8c632d;
  --domain-caltpa: #3f6079;
  --ds-sage-lighter: #6b8861;
  display: block;
  max-width: 1100px;
  margin: 0 auto;
  padding: 56px var(--container-padding, clamp(16px, 3vw, 50px)) 0;
}
main.demo.demo-index { padding: 36px var(--container-padding, clamp(16px, 3vw, 50px)) 96px; }
main.demo a { color: var(--sage-green); }
main.demo a:hover { color: var(--dark-green); }

.demo-title-row {
  display: flex;
  align-items: baseline;
  gap: 16px;
  flex-wrap: wrap;
  padding-bottom: 18px;
  border-bottom: 2px solid var(--sage-dark);
}
.demo-title-row h1 {
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  font-weight: 400;
  color: var(--sage-green);
  margin: 0;
  line-height: 1.1;
}
.demo-note {
  font-family: var(--font-body);
  font-style: italic;
  color: var(--text-light);
  font-size: var(--text-sm);
  margin: 14px 0 0;
}

.demo-h2 {
  font-family: var(--font-display);
  font-size: var(--text-3xl);
  font-weight: 400;
  color: var(--sage-green);
  margin: 0;
  line-height: 1.1;
}
.demo-sub {
  font-family: var(--font-body);
  font-style: italic;
  color: var(--text-light);
  font-size: var(--text-base);
  line-height: 1.6;
  margin: 6px 0 28px;
}
.demo-eyebrow {
  font-family: var(--font-sans);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 2.5px;
  color: var(--text-light);
}

.demo-sep { padding: 56px 0; }
.demo-sep .separator-dot { max-width: 100%; }

/* Dashboards */
.demo-dashboards { padding: 48px 0 8px; }
.demo-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 24px;
}
main.demo a.demo-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  text-decoration: none;
  color: inherit;
  background: var(--card);
  border: 1px solid var(--line);
  border-top: 3px solid var(--sage-green);
  border-radius: var(--radius-md);
  padding: 28px 26px 24px;
  box-shadow: var(--shadow-sm);
  transition: transform .3s cubic-bezier(.22,.61,.36,1), box-shadow .3s;
}
main.demo a.demo-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-hover); color: inherit; }
.demo-card-icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--sage-green);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
}
.demo-card-title { font-family: var(--font-display); font-size: var(--text-xl); color: var(--sage-green); line-height: 1.15; }
.demo-card-blurb { font-family: var(--font-body); color: var(--body); font-size: var(--text-sm); line-height: 1.6; flex: 1; }
.demo-card-foot {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  border-top: 1px solid var(--line);
  padding-top: 12px;
  font-family: var(--font-body);
  font-size: var(--text-sm);
}
.demo-card-count { font-style: italic; color: var(--text-light); }
.demo-card-more { color: var(--sage-green); }

/* Data & Analytics */
.demo-analytics {
  min-height: calc(100vh - 80px);
  display: flex;
  flex-direction: column;
  gap: 28px;
  justify-content: center;
}
.demo-analytics-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; }
.demo-analytics-head .demo-sub { margin: 6px 0 0; }
.demo-sample { font-family: var(--font-body); font-size: var(--text-sm); color: var(--text-light); }
.demo-panel {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-md);
  padding: clamp(24px, 4vw, 44px);
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.demo-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 24px; }
.demo-stat { border-top: 2px solid var(--sage-dark); padding-top: 12px; }
.demo-stat-v { font-family: var(--font-display); font-size: var(--text-2xl); color: var(--sage-dark); line-height: 1; }
.demo-stat-l { font-family: var(--font-body); font-size: var(--text-sm); color: var(--text-light); margin-top: 6px; }
.demo-panel-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 40px; }
.demo-chart { display: flex; flex-direction: column; gap: 12px; }
.demo-panel-label { font-family: var(--font-body); font-size: var(--text-sm); color: var(--text-dark); }
.demo-bars { display: flex; align-items: flex-end; gap: 10px; height: 200px; border-bottom: 1.5px solid var(--sage-dark); }
.demo-bar {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  height: 100%;
}
.demo-bar span { font-family: var(--font-body); font-size: 14px; color: var(--text-light); }
.demo-bar i { display: block; width: 100%; background: var(--ds-sage-lighter); border-radius: 4px 4px 0 0; }
.demo-bar.is-last i { background: var(--sage-green); }
.demo-bar-labels { display: flex; gap: 10px; font-family: var(--font-body); font-size: 14px; color: var(--text-muted); }
.demo-bar-labels span { flex: 1; text-align: center; }
.demo-eval { display: flex; flex-direction: column; gap: 14px; }
.demo-eval blockquote {
  margin: 0;
  border-left: 4px solid var(--sage-green);
  padding: 4px 0 4px 18px;
  font-family: var(--font-body);
  font-style: italic;
  color: var(--body);
  font-size: var(--text-base);
  line-height: 1.7;
}
.demo-eval-next { font-family: var(--font-body); font-size: var(--text-sm); color: var(--text-light); }
.demo-cta-row { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
main.demo a.btn-primary, main.demo a.btn-primary:hover { color: #fff; }
.demo-cta-note { font-family: var(--font-body); font-style: italic; color: var(--text-light); font-size: var(--text-sm); }

/* Learning Apps and the dashboards index rows */
.demo-apps { display: flex; flex-direction: column; gap: 12px; }
.demo-apps .demo-sub { margin: 0 0 28px; }
.demo-app-list { display: flex; flex-direction: column; gap: 64px; }
.demo-app { display: flex; flex-wrap: wrap; gap: clamp(24px, 4vw, 56px); align-items: center; }
.demo-app.is-reverse { flex-direction: row-reverse; }
.demo-shot {
  display: block;
  flex: 1.4 1 360px;
  aspect-ratio: 16 / 10;
  border-radius: var(--radius-md);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  border: 1px solid var(--line);
  background: var(--cream);
}
.demo-shot img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top left; }
.demo-shot-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  font-family: var(--font-body);
  font-style: italic;
  color: var(--text-light);
  font-size: var(--text-sm);
  padding: 16px;
  text-align: center;
}
.demo-app-text { flex: 1 1 280px; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.demo-app-title { font-family: var(--font-display); font-size: var(--text-2xl); color: var(--sage-green); line-height: 1.15; }
.demo-app-text p { margin: 0; font-family: var(--font-body); color: var(--body); font-size: var(--text-base); line-height: 1.7; }
main.demo .demo-app-link {
  font-family: var(--font-body);
  font-size: var(--text-base);
  text-decoration: none;
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin: -6px 0;
}
.demo-soon { font-family: var(--font-body); font-style: italic; color: var(--text-light); font-size: var(--text-sm); margin: 36px 0 0; }

/* Try the Tools */
.demo-tools { padding-bottom: 88px; }
.demo-tools .demo-sub { margin: 6px 0 32px; }
.demo-tool-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 32px; }
.demo-tool {
  background: var(--card);
  border: 2px solid var(--beige);
  border-radius: var(--radius-md);
  padding: 28px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}
.demo-tool-title { font-family: var(--font-display); font-size: var(--text-xl); color: var(--sage-green); margin-top: 4px; }
.demo-tool-blurb { margin: 6px 0 0; font-family: var(--font-body); font-size: var(--text-sm); color: var(--body); line-height: 1.6; }
.demo-drop {
  cursor: pointer;
  border: 2px dashed var(--ds-sage-lighter);
  border-radius: var(--radius-sm);
  padding: 28px 16px;
  text-align: center;
  background: var(--soft-white);
  transition: background .2s;
  width: 100%;
  font: inherit;
  color: inherit;
}
.demo-drop.is-over { background: var(--accent-soft); }
.demo-drop i { font-size: 24px; color: var(--sage-green); }
.demo-drop-main { margin-top: 8px; font-family: var(--font-body); color: var(--sage-green); font-size: var(--text-base); }
.demo-drop-sub { font-family: var(--font-body); font-size: 14px; color: var(--text-light); font-style: italic; }
.demo-uploads { display: flex; flex-direction: column; }
.demo-upload { display: flex; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line); }
.demo-upload-thumb {
  width: 44px;
  height: 44px;
  border-radius: 6px;
  background: var(--cream) center / cover no-repeat;
  border: 1px solid var(--line);
  flex: none;
}
.demo-upload-name {
  flex: 1;
  min-width: 0;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.demo-upload-status { font-family: var(--font-body); font-size: 14px; white-space: nowrap; color: var(--text-light); }
.demo-upload-status.is-sent { color: var(--domain-test-prep-ink); }
.demo-upload-status.is-reviewed { color: var(--sage-green); }
.demo-checkin { background: var(--parchment-light); border-radius: var(--radius-sm); padding: 20px; display: flex; flex-direction: column; gap: 14px; }
.demo-checkin-q { font-family: var(--font-body); font-size: var(--text-base); color: var(--text-dark); }
.demo-checkin-scale { display: flex; gap: 10px; flex-wrap: wrap; }
.demo-checkin-scale button {
  cursor: pointer;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 2px solid var(--sage-green);
  background: #fff;
  color: var(--sage-green);
  font-family: var(--font-body);
  font-size: 18px;
  transition: background .2s;
}
.demo-checkin-scale button[aria-pressed="true"] { background: var(--sage-green); color: #fff; }
.demo-checkin-ends { display: flex; justify-content: space-between; font-family: var(--font-body); font-size: 14px; color: var(--text-muted); max-width: 290px; }
.demo-checkin-note { font-family: var(--font-body); font-size: var(--text-sm); font-style: italic; color: var(--body); min-height: 1.6em; }
.demo-tool-soon { font-family: var(--font-body); font-style: italic; color: var(--text-light); font-size: var(--text-sm); margin: 0; }
.demo-guitar { margin: 28px 0 0; font-family: var(--font-body); font-size: var(--text-sm); color: var(--body); }

/* Dashboards index */
.demo-index-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  padding-bottom: 18px;
  border-bottom: 2px solid var(--sage-dark);
}
main.demo .demo-back {
  font-family: var(--font-body);
  text-decoration: none;
  font-size: var(--text-sm);
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
.demo-tabs { display: flex; gap: 8px; flex-wrap: wrap; }
.demo-tabs button {
  cursor: pointer;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  padding: 6px 16px;
  min-height: 44px;
  border-radius: 20px;
  border: 1.5px solid var(--sage-green);
  background: transparent;
  color: var(--sage-green);
  transition: background .2s;
}
.demo-tabs button[aria-selected="true"] { background: var(--sage-green); color: #fff; }
.demo-index-section { padding-top: 44px; }
.demo-index-section + .demo-index-section { padding-top: 64px; }
.demo-index-section h1 {
  font-family: var(--font-display);
  font-size: var(--text-3xl);
  font-weight: 400;
  color: var(--sage-green);
  margin: 0;
  line-height: 1.1;
}
.demo-index-section .demo-sub { margin: 8px 0 12px; }
.demo-index-list { display: flex; flex-direction: column; }
.demo-item {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(20px, 4vw, 48px);
  align-items: center;
  padding: 40px 0;
  border-bottom: 1px solid var(--line);
}
.demo-item .demo-shot { flex: 1 1 340px; }
.demo-item-text { flex: 1 1 300px; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.demo-item-eyebrow.is-caltpa { color: var(--domain-caltpa); }
.demo-item-title { font-family: var(--font-display); font-size: var(--text-2xl); color: var(--sage-green); line-height: 1.15; }
.demo-item-text p { margin: 0; font-family: var(--font-body); color: var(--body); font-size: var(--text-base); line-height: 1.7; }
.demo-item-text p.demo-item-who { color: var(--text-light); font-size: var(--text-sm); font-style: italic; }
main.demo .demo-item-cta {
  margin: 0 0 -7px;
  font-family: var(--font-body);
  font-size: var(--text-base);
  text-decoration: none;
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
.js-tabs .demo-index-section[hidden] { display: none; }

@media (prefers-reduced-motion: reduce) {
  main.demo a.demo-card { transition: none; }
  main.demo a.demo-card:hover { transform: none; }
}
@media (max-width: 420px) {
  .demo-shot, .demo-item .demo-shot { flex-basis: 100%; }
  .demo-tool-grid { grid-template-columns: 1fr; }
  .demo-panel-cols { grid-template-columns: 1fr; }
}
