/* =========================================================================
   Shared styles for interactive teaching materials (html/js)
   Import after site.css — inherits the "technical journal" design system.
   ========================================================================= */

.app-shell { min-height: 100vh; display: flex; flex-direction: column; }

.app-bar {
  background: var(--paper);
  border-bottom: 1px solid var(--line);
  position: sticky; top: 0; z-index: 10;
}
.app-bar .wrap {
  display: flex; align-items: center; gap: 18px;
  padding-top: 14px; padding-bottom: 13px;
}
.app-bar .back {
  font-size: 13.5px; font-weight: 500;
  color: var(--accent);
  display: inline-flex; align-items: center; gap: 6px;
  text-decoration: none;
}
.app-bar .back:hover { color: var(--accent-dk); text-decoration: underline; text-underline-offset: 3px; }
.app-bar .crumb {
  font-family: var(--mono);
  font-size: 11.5px; letter-spacing: .06em;
  color: var(--ink-faint);
  border-left: 1px solid var(--line-mid); padding-left: 18px;
}
.app-bar .crumb b { color: var(--ink); font-weight: 600; }

.app-main { flex: 1; padding: 44px 0 72px; }

.app-title {
  font-family: var(--display);
  font-size: 24px; font-weight: 600; margin: 0 0 4px; letter-spacing: -0.01em;
}
.app-title-jp { color: var(--ink-soft); font-size: 14px; margin: 0 0 24px; }

/* generic card / stage used by interactive materials */
.stage {
  background: var(--surface);
  border: 1px solid var(--line-mid);
  border-radius: var(--radius);
  padding: 26px;
}

/* hero shown on not-yet-posted materials */
.ph-hero { text-align: center; padding: 64px 24px; }
.ph-hero .ph-icon {
  width: 68px; height: 68px; margin: 0 auto 24px;
  display: grid; place-items: center;
  background: var(--paper); color: var(--accent);
  border: 1px solid var(--line-mid);
  font-size: 24px;
  position: relative;
}
.ph-hero .ph-tag {
  display: inline-block;
  font-family: var(--mono);
  font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase;
  color: var(--warn-ink); background: var(--warn-bg);
  border: 1px solid var(--warn-line);
  padding: 4px 12px; border-radius: 999px; font-weight: 600;
  margin-bottom: 16px;
}
.ph-hero h1 {
  font-family: var(--display);
  font-size: 25px; font-weight: 600; margin: 0 0 8px; letter-spacing: -0.01em;
}
.ph-hero .sub { color: var(--ink-soft); margin: 0 0 26px; font-family: var(--mono); font-size: 12.5px; }
.ph-hero .ph-note { display: inline-block; text-align: left; max-width: 560px; }
