/* Content layout: shared library, knowledge, editor, and admin surfaces.
   Player and top navigation geometry are intentionally owned elsewhere. */
/* 增量风格节点：将 Roots 扩展留给未来，当前地图聚焦 Blues 家族。 */
.map-node[data-style="boogie"] {
  left:55%;
  top:78%;
}
.map-node[data-style="jazz"] {
  left:32%;
  top:77%;
}
html {
  scroll-behavior:smooth;
}
body {
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  background:linear-gradient(180deg,#faf7f1 0,#f3efe8 100%);
}
.app-shell {
  max-width:1180px;
}
.topbar {
  position:relative;
  padding:6px 0 24px;
  border-bottom:1px solid rgba(18,24,39,.1);
}
.main-nav {
  display:flex;
  align-items:center;
  gap:6px;
  padding:4px;
  border-radius:24px;
  background:rgba(255,255,255,.7);
  box-shadow:0 1px 0 rgba(18,24,39,.08);
}
.main-nav a {
  padding:7px 12px;
  border-radius:18px;
  color:var(--muted);
  text-decoration:none;
  font-size:12px;
  transition:.18s;
}
.main-nav a:hover {
  background:#fff;
  color:var(--ink);
}
.session-status {
  padding:6px 10px;
  border:1px solid var(--line);
  border-radius:16px;
  background:rgba(255,255,255,.55);
}
.topbar-actions {
  display:flex;
  align-items:center;
  gap:7px;
}
.admin-entry {
  padding:7px 10px;
  border:1px solid #252b39;
  border-radius:16px;
  background:#252b39;
  color:#fff;
  font-size:10px;
}
.hero {
  min-height:230px;
  align-items:center;
  padding:30px 0 28px;
}
.hero h1 {
  max-width:700px;
  font-family:"Songti SC","STSong","Times New Roman",serif;
}
.hero h1 em {
  font-family:Georgia,"Times New Roman",serif;
}
.hero-actions {
  display:flex;
  align-items:center;
  gap:18px;
  margin-top:25px;
}
.hero-actions a {
  text-decoration:none;
  font-size:13px;
}
.primary-link {
  padding:10px 16px;
  border-radius:4px;
  background:var(--orange);
  color:#fff;
  box-shadow:0 8px 18px rgba(232,93,48,.18);
}
.text-link {
  color:var(--ink);
}
.now-playing {
  position:relative;
  overflow:hidden;
  min-width:235px;
  border:1px solid #30394d;
  border-radius:6px 26px 6px 6px;
}
.now-playing::after {
  content:"";
  position:absolute;
  width:85px;
  height:85px;
  right:-28px;
  bottom:-42px;
  border:1px solid rgba(245,190,69,.45);
  border-radius:50%;
}
.product-pillars {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1px;
  overflow:hidden;
  margin-top:70px;
  border-radius:8px;
  background:#343b4b;
  box-shadow:0 14px 32px rgba(27,31,42,.11);
}
.product-pillars article {
  padding:25px 28px;
  background:#222937;
  color:#fff;
}
.product-pillars article:last-child {
  background:#2d3545;
}
.product-pillars span {
  color:var(--yellow);
  font:9px "SFMono-Regular",Consolas,monospace;
  letter-spacing:.1em;
}
.product-pillars h2 {
  margin:9px 0 7px;
  font:700 21px/1.15 "Songti SC","STSong","Times New Roman",serif;
}
.product-pillars p {
  max-width:470px;
  margin:0;
  color:#b7c0d0;
  font-size:11px;
  line-height:1.7;
}
.journey {
  padding-top:14px;
}
.journey-layout {
  display:block;
}
.journey-heading-tools {
  display:flex;
  align-items:flex-end;
  flex-direction:column;
  gap:10px;
}
.journey-heading-tools p {
  max-width:440px;
  margin:0;
  color:var(--muted);
  font-size:12px;
  text-align:right;
}
.journey-mode {
  display:flex;
  padding:3px;
  border-radius:18px;
  background:#e8e3db;
}
.journey-mode button {
  border:0;
  border-radius:15px;
  padding:6px 11px;
  background:transparent;
  color:var(--muted);
  font-size:10px;
}
.journey-mode button.active {
  background:#fff;
  color:var(--ink);
  box-shadow:0 1px 5px rgba(18,24,39,.12);
}
.atlas {
  min-height:0;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-inline:contain;
  scrollbar-width:thin;
  scrollbar-color:#5b6577 transparent;
}
.atlas-inner {
  position:relative;
  min-width:800px;
  height:382px;
  overflow:hidden;
}
.atlas-inner::before {
  content:"";
  position:absolute;
  inset:0;
  opacity:.2;
  background-image:linear-gradient(#6a7281 1px,transparent 1px),linear-gradient(90deg,#6a7281 1px,transparent 1px);
  background-size:40px 40px;
}
.atlas .atlas-legend {
  z-index:2;
  inset:18px 24px auto;
}
.atlas .atlas-route {
  z-index:1;
  width:700px;
  height:160px;
  left:45px;
  top:165px;
  border-top:2px dashed rgba(245,190,69,.62);
  transform:rotate(-1deg);
  border-radius:50%;
}
.atlas .map-node {
  left:var(--node-x) !important;
  top:var(--node-y) !important;
  width:128px;
  max-width:128px;
  padding:8px 7px 8px 20px;
  border-radius:5px;
  transition:transform .18s,background .18s;
}
.atlas .map-node:hover {
  transform:translateY(-3px);
  background:rgba(255,255,255,.07);
}
.atlas .map-node.active {
  transform:translateY(-3px);
  background:rgba(255,255,255,.12);
  box-shadow:0 0 0 1px rgba(255,255,255,.2),0 10px 22px rgba(0,0,0,.14);
}
.atlas .map-node-pin {
  left:7px;
  top:15px;
}
.atlas .map-node strong {
  font-family:Georgia,"Times New Roman",serif;
  font-size:15px;
}
.atlas .map-node small {
  line-height:1.35;
}
.groove-atlas {
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:7px;
  min-width:0;
  padding:12px;
}
.groove-card {
  min-width:0;
  min-height:70px;
  padding:9px 10px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:5px;
  background:rgba(255,255,255,.055);
  color:#fff;
  text-align:left;
}
.groove-card:hover,.groove-card.active {
  border-color:var(--yellow);
  background:rgba(245,190,69,.12);
}
.groove-card span,.groove-card small {
  display:block;
  overflow:hidden;
  color:#aeb7c8;
  font:8px/1.45 "SFMono-Regular",Consolas,monospace;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.groove-card span b {
  margin-right:7px;
  color:var(--yellow);
  font-weight:600;
}
.groove-card strong {
  display:block;
  margin:4px 0 3px;
  overflow:hidden;
  font:700 14px Georgia,serif;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.groove-card.active span {
  color:#f2d481;
}
.style-panel[hidden],.style-dossier[hidden] {
  display:none;
}
.style-panel {
  min-height:382px;
  padding:25px;
  box-shadow:0 10px 30px rgba(27,31,42,.06);
}
.style-panel-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.verified-badge {
  padding:4px 7px;
  border-radius:10px;
  background:#eaf4ed;
  color:#39724b;
  font-size:9px;
  white-space:nowrap;
}
.style-panel h3 {
  font-family:Georgia,"Times New Roman",serif;
  font-size:26px;
  line-height:1.08;
}
.style-type {
  display:inline-block;
  margin-top:10px;
  padding:4px 7px;
  border:1px solid #ded8cf;
  border-radius:12px;
  color:#636a79;
  font-size:9px;
  line-height:1.2;
}
.variant-summary {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
  margin-top:15px;
}
.variant-summary span {
  padding:9px;
  border-radius:4px;
  background:#f3efe8;
  color:var(--muted);
  font-size:10px;
}
.variant-summary strong {
  display:block;
  color:var(--ink);
  font:700 17px Georgia,serif;
}
.style-dossier {
  margin-top:16px;
  padding:24px 25px;
  border:1px solid var(--line);
  border-radius:8px;
  background:rgba(255,255,255,.62);
}
.style-dossier header {
  display:grid;
  grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);
  align-items:end;
  gap:28px;
  padding-bottom:18px;
  border-bottom:1px solid var(--line);
}
.style-dossier header h3 {
  margin:0;
  font:700 24px/1.1 "Songti SC","STSong","Times New Roman",serif;
}
.style-dossier header > p {
  margin:0;
  color:var(--muted);
  font-size:12px;
  line-height:1.75;
}
.dossier-grid {
  display:grid;
  grid-template-columns:1.3fr 1fr 1.15fr;
  gap:0;
}
.dossier-grid section {
  padding:19px 22px 0 0;
}
.dossier-grid section + section {
  padding-left:22px;
  border-left:1px solid var(--line);
}
.dossier-grid.groove-roles {
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.dossier-grid span {
  color:var(--orange);
  font:10px "SFMono-Regular",Consolas,monospace;
  letter-spacing:.09em;
}
.dossier-grid p,.dossier-grid ul {
  margin:8px 0 0;
  color:#555d6c;
  font-size:12px;
  line-height:1.7;
}
.dossier-grid ul {
  padding-left:17px;
}

.practice-policy {
  display:flex;
  align-items:center;
  gap:15px;
  margin:-2px 0 14px;
  padding:11px 14px;
  border-left:3px solid var(--yellow);
  background:#f7efd9;
}
.practice-policy span {
  flex:0 0 auto;
  color:#8b6430;
  font:9px "SFMono-Regular",Consolas,monospace;
  letter-spacing:.08em;
}
.practice-policy p {
  margin:0;
  color:#626873;
  font-size:11px;
  line-height:1.6;
}
.source-audit-link {
  color:#475268;
  font:9px "SFMono-Regular",Consolas,monospace;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}
.source-audit-link:hover,.source-audit-link:focus-visible {
  color:var(--orange);
}
.arrangement {
  margin-top:2px;
  border-radius:8px;
}
.arrangement h2,.section-heading h2 {
  font-family:"Songti SC","STSong","Times New Roman",serif;
}
.edit-arrangement {
  border-color:#c9c2b8;
  background:#f8f4ee;
}
.timeline-wrap {
  overflow:visible;
}
.timeline {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  min-width:0;
  gap:7px;
}
.bar {
  width:auto;
  min-width:0;
  height:84px;
  border-radius:4px;
}
.bar.current {
  box-shadow:0 8px 16px rgba(232,93,48,.12);
}
.mixer {
  display:block;
  overflow:hidden;
  border:1px solid #303342;
  border-radius:7px;
  background:#171821;
  color:#f5f6fa;
  box-shadow:0 13px 28px rgba(20,22,31,.14);
}
.mixer-table-head,.mixer-channel {
  display:grid;
  grid-template-columns:minmax(190px,1.15fr) 48px 48px minmax(190px,1fr) minmax(125px,.62fr);
  align-items:center;
  gap:8px;
}
.mixer-table-head {
  padding:9px 14px;
  background:#101118;
  color:#9ca3b6;
  font:9px "SFMono-Regular",Consolas,monospace;
  letter-spacing:.08em;
}
.mixer-table-head span:not(:first-child) {
  text-align:center;
}
.mixer-channel {
  position:relative;
  min-width:0;
  padding:8px 14px;
  border:0;
  border-top:1px solid #333541;
  border-radius:0;
  background:#20212b;
  transition:.15s;
}
.mixer-channel:nth-of-type(even) {
  background:#252631;
}
.mixer-channel::before {
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:4px;
  background:#db5143;
}
.mixer-channel.bass-channel::before {
  background:#e4c53f;
}
.mixer-channel.drums-channel::before {
  background:#6655ef;
}
.mixer-channel.keys-channel::before {
  background:#4e9bd8;
}
.track-identity {
  display:flex;
  align-items:center;
  min-width:0;
  gap:10px;
}
.track-identity > span:not(.track-icon) {
  min-width:0;
}
.track-icon {
  display:grid;
  place-items:center;
  flex:0 0 29px;
  width:29px;
  height:29px;
  border:1px solid #53586b;
  border-radius:4px;
  background:#2d303c;
  color:#f5f6fa;
  font:700 12px Georgia,serif;
}
.track-identity strong,.track-identity small {
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.track-identity strong {
  font-size:13px;
}
.track-identity small {
  margin-top:2px;
  color:#8e96a9;
  font-size:9px;
}
.mixer-channel > button {
  width:31px;
  height:26px;
  justify-self:center;
  border:1px solid #444858;
  border-radius:4px;
  background:#181922;
  color:#778096;
  font:700 9px "SFMono-Regular",Consolas,monospace;
}
.mixer-channel > button:hover {
  border-color:#71798d;
  color:#fff;
}
.mixer-channel > button[data-mute].active {
  border-color:#d7604c;
  background:#b74638;
  color:#fff;
}
.mixer-channel > button[data-solo].active {
  border-color:#e3b934;
  background:#e4b83d;
  color:#171821;
}
.channel-slider,.pan-slider {
  display:grid;
  grid-template-columns:minmax(65px,1fr) 39px;
  align-items:center;
  gap:8px;
}
.channel-slider input[type=range],.pan-slider input[type=range] {
  min-width:0;
  margin:0;
  accent-color:#dbe1ed;
}
.mixer-channel output {
  margin:0;
  color:#c5cada;
  font:9px "SFMono-Regular",Consolas,monospace;
  text-align:right;
}
.mixer-channel.muted {
  opacity:.48;
}
.mixer-channel.soloed {
  opacity:1;
  background:#30313c;
  box-shadow:inset 0 0 0 1px rgba(245,190,69,.38);
}
.track-settings {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  flex:0 0 auto;
  min-width:28px;
  height:26px;
  margin-left:auto;
  padding:0 6px;
  border:1px solid #484c5d;
  border-radius:4px;
  background:#181922;
  color:#919aac;
  font-size:12px;
  line-height:1;
  cursor:pointer;
}
.track-settings-label {
  font:8px "SFMono-Regular",Consolas,monospace;
  white-space:nowrap;
}
.track-settings:hover,.track-settings:focus-visible,.track-settings.active {
  border-color:#7f70f0;
  color:#fff;
  outline:none;
}
.track-settings.active {
  background:#34304f;
}
.drum-submixer[hidden],.guitar-submixer[hidden] {
  display:none;
}
.drum-submixer,.guitar-submixer {
  border-top:1px solid #3a3d49;
  background:#292b36;
}
.drum-piece-grid {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:8px;
  padding:12px 14px 13px 48px;
}
.drum-piece-grid label {
  min-width:0;
  padding:9px;
  border:1px solid #404351;
  border-radius:4px;
  background:#1d1f28;
}
.drum-piece-grid span,.drum-piece-grid output {
  font:8px "SFMono-Regular",Consolas,monospace;
}
.drum-piece-grid span {
  color:#a9b0c0;
}
.drum-piece-grid output {
  float:right;
  color:#f0c654;
}
.drum-piece-grid input[type=range] {
  width:100%;
  margin:9px 0 0;
  accent-color:#7f70f0;
}
.guitar-source-control {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:12px 14px 13px 48px;
  color:#a9b0c0;
}
.guitar-source-control strong,.guitar-source-control small {
  display:block;
}
.guitar-source-control strong {
  color:#f1f2f7;
  font-size:11px;
}
.guitar-source-control small {
  margin-top:3px;
  color:#8991a5;
  font-size:9px;
  line-height:1.4;
}
.guitar-source-control select {
  min-width:250px;
  padding:7px 28px 7px 9px;
  border:1px solid #474b5a;
  border-radius:4px;
  background:#1d1f28;
  color:#eef0f6;
  font-size:10px;
}
.visually-hidden {
  position:absolute !important;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
/* 2026-09 accompaniment workflow: structured audio editing */
.editor-dialog,.admin-page {
  overscroll-behavior:contain;
}
.admin-taxonomy-row {
  position:relative;
  z-index:5;
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  align-items:start;
  gap:10px;
  margin:16px 0 12px;
}
.admin-taxonomy-groove,.taxonomy-picker {
  min-width:0;
  color:var(--ink);
  font-size:11px;
  font-weight:850;
}
.admin-taxonomy-groove {
  display:block;
}
.admin-taxonomy-groove select,.taxonomy-picker summary {
  box-sizing:border-box;
  width:100%;
  min-height:64px;
  border:3px solid var(--ink);
  background:var(--white);
  color:var(--ink);
}
.admin-taxonomy-groove select {
  padding:8px 34px 8px 10px;
  font-weight:800;
}
.taxonomy-picker {
  position:relative;
}
.taxonomy-picker summary {
  display:grid;
  align-content:center;
  gap:2px;
  padding:6px 34px 6px 10px;
  cursor:pointer;
  list-style:none;
}
.taxonomy-picker summary::-webkit-details-marker {
  display:none;
}
.taxonomy-picker summary::after {
  content:"▾";
  position:absolute;
  right:12px;
  top:16px;
  font-size:13px;
}
.taxonomy-picker[open] summary {
  background:var(--yellow);
}
.taxonomy-picker summary span {
  font-size:10px;
}
.taxonomy-picker summary strong {
  overflow:hidden;
  font-size:12px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.taxonomy-picker-options {
  position:absolute;
  z-index:20;
  left:0;
  right:0;
  top:calc(100% + 5px);
  max-height:270px;
  overflow:auto;
  padding:6px;
  border:3px solid var(--ink);
  background:var(--white);
  box-shadow:5px 5px 0 var(--ink);
}
.taxonomy-picker-options label {
  display:grid;
  grid-template-columns:18px 1fr;
  align-items:start;
  gap:7px;
  padding:8px 7px;
  border-bottom:1px solid #c9c2b8;
  color:var(--ink);
  font-size:10px;
  line-height:1.35;
  cursor:pointer;
}
.taxonomy-picker-options label:last-child {
  border-bottom:0;
}
.taxonomy-picker-options label:hover {
  background:var(--yellow);
}
.taxonomy-picker-options input {
  width:17px;
  height:17px;
  margin:0;
  accent-color:var(--blue);
}
.audio-source-range-error {
  margin:9px 0 0;
  padding:8px 10px;
  border:3px solid var(--red);
  background:var(--white);
  color:#7f211a;
  font-size:11px;
  font-weight:900;
  line-height:1.45;
}
.audio-source-range-error[hidden] {
  display:none;
}
.reset-source-bars {
  align-self:start;
  min-height:30px;
  padding:4px 7px;
  border:2px solid var(--ink);
  background:var(--yellow);
  color:var(--ink);
  font-size:9px;
  font-weight:900;
  cursor:pointer;
}
.reset-source-bars:hover,.reset-source-bars:focus-visible {
  background:var(--ink);
  color:var(--yellow);
}
#editorForm input:focus-visible,#editorForm select:focus-visible {
  outline-color:var(--blue);
}
#editorForm [aria-invalid="true"] {
  outline:3px solid var(--red);
  outline-offset:3px;
}
.audio-workflow-label {
  display:flex;
  align-items:center;
  gap:7px;
  margin:14px 0 8px;
  color:var(--ink);
  font-size:12px;
  font-weight:900;
}
.audio-workflow-label span,.audio-source-ranges > div:first-child strong b {
  display:inline-grid;
  width:22px;
  height:22px;
  place-items:center;
  background:var(--ink);
  color:var(--yellow);
  font-size:10px;
  font-style:normal;
}
.audio-section-tabs-wrap {
  margin-top:14px;
  padding-top:1px;
  border-top:3px solid var(--ink);
}
.beat-editor-toggle-row {
  display:flex;
  align-items:center;
  gap:10px;
  margin:12px 0 8px;
}
.beat-editor-toggle-row button,.beat-chord-editor > button {
  min-height:38px;
  padding:7px 10px;
  border:3px solid var(--ink);
  background:var(--yellow);
  color:var(--ink);
  font-weight:900;
  cursor:pointer;
}
.beat-editor-toggle-row button[aria-expanded="true"] {
  background:var(--blue);
  color:var(--white);
}
.beat-editor-toggle-row span {
  color:var(--muted);
  font-size:10px;
  font-weight:750;
}
.beat-chord-editor {
  margin-bottom:12px;
  padding:10px;
  border:3px solid var(--ink);
  background:#dff6ec;
}
.beat-chord-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:7px;
}
.beat-chord-cell {
  display:grid;
  gap:4px;
  padding:7px;
  border:2px solid var(--ink);
  background:var(--white);
  color:var(--ink);
  font-size:10px;
  font-weight:850;
}
.beat-chord-cell.selected {
  background:var(--yellow);
  box-shadow:3px 3px 0 var(--ink);
}
.beat-chord-cell input {
  min-width:0;
  width:100%;
  min-height:37px;
  padding:6px 7px;
  border:2px solid var(--ink);
  background:var(--white);
  color:var(--ink);
  font-weight:900;
}
.beat-chord-editor > button {
  margin-top:8px;
  background:var(--white);
}
.bar-chord-split {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  width:100%;
  gap:4px;
}
.bar-chord-split > span {
  display:grid;
  min-width:0;
  place-items:center;
  overflow:hidden;
  padding:0 1px;
  line-height:1;
  letter-spacing:-.03em;
  text-overflow:clip;
  white-space:nowrap;
}
@media (max-width:900px) {
  .admin-taxonomy-row {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:700px) {
  .groove-backing-list {
    max-height:42dvh;
  }
  .groove-backing-choice {
    min-height:54px;
  }
  .admin-taxonomy-row {
    grid-template-columns:1fr 1fr;
  }
  .taxonomy-picker-options {
    position:fixed;
    z-index:80;
    inset:auto 10px 10px;
    max-height:54dvh;
    box-shadow:5px 5px 0 var(--ink);
  }
  .beat-chord-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media (max-width:420px) {
  .admin-taxonomy-row {
    grid-template-columns:1fr;
  }
  .beat-editor-toggle-row {
    align-items:flex-start;
    flex-direction:column;
  }
}
.arrangement-actions {
  display:flex;
  align-items:center;
  gap:12px;
}
.edit-arrangement {
  border:1px solid var(--ink);
  border-radius:4px;
  background:transparent;
  color:var(--ink);
  padding:7px 10px;
  font-size:11px;
}
.edit-arrangement:hover {
  background:var(--ink);
  color:#fff;
}
.editor-dialog {
  width:100vw;
  max-width:none;
  height:100dvh;
  max-height:none;
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:var(--white);
  color:var(--ink);
  box-shadow:0 28px 80px rgba(12,18,31,.35);
}
.editor-dialog::backdrop {
  background:rgba(12,18,31,.62);
  backdrop-filter:blur(3px);
}
.admin-page {
  width:100%;
  min-height:100vh;
  background:#f8f5ef;
  color:var(--ink);
}
.admin-page[hidden]{display:none}
body.admin-page-active{overflow:auto;background:#f8f5ef}
body.admin-page-active .app-shell{max-width:none;padding:0}
body.admin-page-active .app-shell>:not(#adminDialog):not(#editorDialog){display:none!important}
.admin-pane.midi-admin-pane{padding:0;border:0;border-radius:0;background:transparent}
.midi-admin-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.midi-admin-head p{margin-bottom:0}
.admin-shell {
  width:min(1600px,100%);
  min-height:100vh;
  margin:0 auto;
  padding:24px clamp(20px,3vw,48px) 48px;
}
.admin-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
}
.admin-head h2 {
  margin:3px 0 6px;
  font:700 28px/1.1 "Songti SC","STSong","Times New Roman",serif;
}
.admin-head small {
  color:var(--muted);
  font-size:10px;
}
.admin-page .dialog-close{position:static;width:auto;min-height:36px;padding:6px 11px;border:1px solid var(--ink);border-radius:7px;background:transparent;font-size:11px;font-weight:800}
.admin-security-note {
  display:flex;
  align-items:center;
  gap:12px;
  margin:18px 0;
  padding:11px 13px;
  border-left:3px solid var(--yellow);
  background:#f2e9d3;
}
.admin-security-note strong {
  flex:0 0 auto;
  color:#835d2c;
  font-size:10px;
}
.admin-security-note span {
  color:#646b78;
  font-size:10px;
  line-height:1.5;
}
.admin-tabs {
  display:flex;
  gap:4px;
  padding:4px;
  border-radius:6px;
  background:#e8e3db;
}
.admin-tabs button {
  flex:1;
  padding:8px;
  border:0;
  border-radius:4px;
  background:transparent;
  color:var(--muted);
  font-size:11px;
}
.admin-tabs button.active {
  background:#fff;
  color:var(--ink);
  box-shadow:0 1px 5px rgba(18,24,39,.1);
}
.admin-pane {
  margin-top:13px;
  padding:18px;
  border:1px solid var(--line);
  border-radius:7px;
  background:#fff;
}
.admin-pane[hidden] {
  display:none;
}
.admin-pane-copy h3 {
  margin:0;
  font-size:16px;
}
.admin-pane-copy p {
  margin:5px 0 15px;
  color:var(--muted);
  font-size:10px;
  line-height:1.6;
}
.admin-fields {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
}
.admin-fields label {
  min-width:0;
  color:var(--muted);
  font-size:9px;
}
.admin-fields input,.admin-fields select,.admin-fields textarea {
  box-sizing:border-box;
  width:100%;
  min-width:0;
  margin-top:5px;
  padding:8px 9px;
  border:1px solid var(--line);
  border-radius:4px;
  background:#faf9f6;
  color:var(--ink);
  font-size:10px;
}
.admin-fields textarea {
  min-height:76px;
  resize:vertical;
  font:inherit;
  line-height:1.5;
}
.admin-description-field {
  grid-column:1 / -1;
}
.admin-description-field small {
  display:block;
  margin-top:5px;
  line-height:1.45;
}
.admin-file input {
  padding:6px;
}
.admin-submit {
  margin-top:13px;
  padding:9px 13px;
  border:0;
  border-radius:4px;
  background:#263149;
  color:#fff;
  font-size:11px;
}
.taxonomy-admin-intro {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
}
.taxonomy-admin-intro > span {
  max-width:330px;
  padding:9px 11px;
  border:1px solid var(--line);
  border-radius:5px;
  background:#eef9f3;
  color:#315e4e;
  font-size:10px;
  line-height:1.45;
}
.taxonomy-admin-layout {
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  gap:13px;
  margin-top:16px;
}
.taxonomy-admin-axes {
  display:flex;
  flex-direction:column;
  gap:7px;
}
.taxonomy-admin-axes button {
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:52px;
  padding:10px 11px;
  border:2px solid var(--ink);
  border-radius:7px;
  background:#fff;
  color:var(--ink);
  text-align:left;
  transition:transform .16s ease,background-color .16s ease,box-shadow .16s ease;
}
.taxonomy-admin-axes button:nth-child(2) { background:#dff2fb; }
.taxonomy-admin-axes button:nth-child(3) { background:#e1f5ec; }
.taxonomy-admin-axes button:nth-child(4) { background:#ffe0dc; }
.taxonomy-admin-axes button.active {
  background:var(--yellow);
  box-shadow:0 5px 14px rgba(24,49,83,.16);
  transform:translateY(-2px);
}
.taxonomy-admin-axes strong {
  font-size:13px;
}
.taxonomy-admin-axes small {
  color:var(--muted);
  font-size:9px;
  font-weight:850;
}
.taxonomy-admin-workspace {
  min-width:0;
  overflow:hidden;
  border:2px solid var(--ink);
  border-radius:9px;
  background:#fff;
}
.taxonomy-admin-workspace > header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:13px 15px;
  border-bottom:2px solid var(--ink);
  background:#fff6cd;
}
.taxonomy-admin-workspace h4,
.taxonomy-admin-workspace p {
  margin:0;
}
.taxonomy-admin-workspace h4 {
  font-size:17px;
}
.taxonomy-admin-workspace header p {
  margin-top:3px;
  color:#5c6676;
  font-size:10px;
}
#newTaxonomyCategory {
  flex:0 0 auto;
  min-height:44px;
  padding:8px 11px;
  border:2px solid var(--ink);
  border-radius:6px;
  background:var(--yellow);
  color:var(--ink);
  font-size:11px;
  font-weight:850;
}
.taxonomy-admin-content {
  display:grid;
  grid-template-columns:minmax(230px,.8fr) minmax(330px,1.2fr);
  min-height:390px;
}
.taxonomy-category-list {
  max-height:500px;
  overflow:auto;
  padding:10px;
  border-right:1px solid var(--line);
  background:#f8f5ef;
  scrollbar-color:var(--ink) #e7e0d5;
}
.taxonomy-category-row {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:5px 10px;
  width:100%;
  min-height:62px;
  margin-bottom:7px;
  padding:9px 10px;
  border:1px solid #bcb5aa;
  border-radius:6px;
  background:#fff;
  color:var(--ink);
  text-align:left;
}
.taxonomy-category-row > span {
  min-width:0;
}
.taxonomy-category-row strong,
.taxonomy-category-row small {
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.taxonomy-category-row strong {
  font-size:12px;
}
.taxonomy-category-row small {
  margin-top:4px;
  color:var(--muted);
  font-size:9px;
}
.taxonomy-category-row em {
  color:#546176;
  font-size:9px;
  font-style:normal;
  font-weight:750;
}
.taxonomy-category-badges {
  grid-column:1 / -1;
  display:flex;
  gap:5px;
  justify-self:start;
}
.taxonomy-category-row b {
  justify-self:start;
  padding:3px 6px;
  border-radius:99px;
  background:#e6f5ee;
  color:#315e4e;
  font-size:8px;
}
.taxonomy-category-row .taxonomy-visibility-badge {
  background:#dff1fb;
  color:#234e68;
}
.taxonomy-category-row.is-hidden {
  background:#eeeae3;
  color:#657083;
}
.taxonomy-category-row.is-hidden .taxonomy-visibility-badge {
  background:#f8dfdc;
  color:#8f2f29;
}
.taxonomy-category-row.active {
  border:2px solid var(--ink);
  background:var(--yellow);
  box-shadow:0 5px 13px rgba(24,49,83,.14);
}
.taxonomy-category-row:hover {
  border-color:var(--ink);
  transform:translateY(-1px);
}
.taxonomy-category-empty {
  margin:0;
  padding:24px 12px;
  color:var(--muted);
  text-align:center;
  font-size:11px;
}
.taxonomy-category-editor {
  padding:16px;
  background:#fff;
}
.taxonomy-category-editor-heading {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:15px;
}
.taxonomy-category-editor-heading h5 {
  margin:0 0 4px;
  font-size:16px;
}
.taxonomy-category-editor-heading span {
  color:#596578;
  font-size:10px;
}
#cancelTaxonomyCategoryEdit {
  width:44px;
  min-height:44px;
  border:1px solid var(--line);
  border-radius:6px;
  background:#fff;
  color:var(--ink);
  font-size:20px;
}
.taxonomy-category-fields {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:11px;
}
.taxonomy-category-fields label {
  display:grid;
  align-content:start;
  gap:5px;
  color:#4f5a6c;
  font-size:10px;
  font-weight:800;
}
.taxonomy-category-fields input,
.taxonomy-category-fields select,
.taxonomy-category-fields textarea {
  width:100%;
  min-width:0;
  border:1px solid #aaa399;
  border-radius:5px;
  background:#fbfaf7;
  color:var(--ink);
  font:500 12px/1.4 system-ui,-apple-system,"PingFang SC",sans-serif;
}
.taxonomy-category-fields input,
.taxonomy-category-fields select {
  min-height:42px;
  padding:8px 9px;
}
.taxonomy-category-fields textarea {
  min-height:96px;
  padding:9px;
  resize:vertical;
}
.taxonomy-category-fields small {
  color:#667185;
  font-size:9px;
  line-height:1.45;
}
.taxonomy-category-summary {
  grid-column:1 / -1;
}
.taxonomy-visibility-field {
  grid-column:1 / -1;
  grid-template-columns:auto minmax(0,1fr) !important;
  align-items:center !important;
  padding:10px 12px;
  border:1px solid #aaa399;
  border-radius:6px;
  background:#f6f3ec;
}
.taxonomy-visibility-field input {
  width:20px;
  min-height:20px;
  margin:0;
  accent-color:var(--ink);
}
.taxonomy-visibility-field span,
.taxonomy-visibility-field strong,
.taxonomy-visibility-field small {
  display:block;
  min-width:0;
}
.taxonomy-visibility-field strong {
  color:var(--ink);
  font-size:11px;
}
.taxonomy-visibility-field small {
  margin-top:2px;
  font-weight:600;
}
.taxonomy-detail-fields {
  display:grid;
  grid-column:1 / -1;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:11px;
  min-width:0;
  margin:2px 0 0;
  padding:12px;
  border:1px dashed #aaa399;
  border-radius:7px;
  background:#f6f3ec;
}
.taxonomy-detail-fields legend {
  padding:0 5px;
  color:#4f5a6c;
  font-size:10px;
  font-weight:900;
}
.taxonomy-detail-fields > label:first-of-type {
  grid-column:1 / -1;
}
#taxonomyCategoryMessage {
  display:block;
  min-height:34px;
  padding-top:10px;
  color:#9a332c;
  font-size:10px;
  line-height:1.45;
}
.taxonomy-category-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  padding-top:12px;
  border-top:1px solid var(--line);
}
.taxonomy-category-actions button {
  min-height:44px;
  margin:0;
  padding:8px 11px;
  border:1px solid var(--ink);
  border-radius:6px;
  background:#fff;
  color:var(--ink);
  font-size:10px;
  font-weight:850;
}
.taxonomy-category-actions .admin-submit {
  border-width:2px;
  background:var(--yellow);
}
.taxonomy-category-actions .taxonomy-delete-action {
  margin-right:auto;
  border-color:#a7352d;
  color:#8f2f29;
  background:#fff1ef;
}
.taxonomy-admin-axes button:focus-visible,
.taxonomy-category-row:focus-visible,
.taxonomy-category-actions button:focus-visible,
#newTaxonomyCategory:focus-visible,
#cancelTaxonomyCategoryEdit:focus-visible,
.taxonomy-category-fields :focus-visible {
  outline:3px solid var(--blue);
  outline-offset:2px;
}
@media (max-width:780px) {
  .taxonomy-admin-intro {
    flex-direction:column;
  }
  .taxonomy-admin-intro > span {
    max-width:none;
  }
  .taxonomy-admin-layout {
    grid-template-columns:1fr;
  }
  .taxonomy-admin-axes {
    display:grid;
    grid-template-columns:repeat(4,minmax(100px,1fr));
    overflow-x:auto;
    padding:3px 2px 8px;
  }
  .taxonomy-admin-content {
    grid-template-columns:1fr;
  }
  .taxonomy-category-list {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    max-height:250px;
    border-right:0;
    border-bottom:1px solid var(--line);
  }
}
@media (max-width:520px) {
  .taxonomy-admin-workspace > header {
    align-items:flex-start;
    flex-direction:column;
  }
  #newTaxonomyCategory {
    width:100%;
  }
  .taxonomy-category-list,
  .taxonomy-category-fields {
    grid-template-columns:1fr;
  }
  .taxonomy-category-summary {
    grid-column:auto;
  }
  .taxonomy-detail-fields {
    grid-column:auto;
    grid-template-columns:1fr;
  }
  .taxonomy-detail-fields > label:first-of-type {
    grid-column:auto;
  }
  .taxonomy-category-actions {
    align-items:stretch;
    flex-direction:column;
  }
  .taxonomy-category-actions .taxonomy-delete-action {
    margin-right:0;
  }
}
.admin-roadmap {
  padding:18px;
  border:1px dashed #bbb3a8;
  border-radius:5px;
  background:#f6f2eb;
}
.admin-roadmap span,.admin-roadmap strong {
  display:block;
}
.admin-roadmap span {
  color:var(--orange);
  font:9px "SFMono-Regular",Consolas,monospace;
}
.admin-roadmap strong {
  margin-top:8px;
  font-size:13px;
}
.admin-library {
  margin-top:15px;
}
.admin-library-heading {
  display:flex;
  align-items:end;
  justify-content:space-between;
  padding-bottom:8px;
  border-bottom:1px solid var(--line);
}
.admin-library h3 {
  margin:0;
  font-size:14px;
}
.admin-library small {
  color:var(--muted);
  font-size:9px;
}
.admin-backing-migration {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px 18px;
  margin-top:12px;
  padding:14px;
  border:2px solid var(--ink);
  border-radius:8px;
  background:#e1f5ec;
  box-shadow:0 5px 14px rgba(24,49,83,.12);
}
.admin-backing-migration[hidden] {
  display:none;
}
.admin-backing-migration h4,
.admin-backing-migration p {
  margin:0;
}
.admin-backing-migration h4 {
  font-size:13px;
}
.admin-backing-migration p {
  max-width:68ch;
  margin-top:4px;
  color:#315e4e;
  font-size:10px;
  line-height:1.5;
}
.admin-migration-actions {
  display:flex;
  align-items:center;
  gap:8px;
}
.admin-migration-actions button {
  min-height:44px;
  padding:8px 12px;
  border:2px solid var(--ink);
  border-radius:6px;
  background:var(--yellow);
  color:var(--ink);
  font-size:11px;
  font-weight:850;
  cursor:pointer;
}
.admin-migration-actions button:hover {
  transform:translateY(-1px);
  box-shadow:0 4px 10px rgba(24,49,83,.16);
}
.admin-migration-actions button:focus-visible {
  outline:3px solid var(--blue);
  outline-offset:3px;
}
.admin-migration-actions button:disabled {
  cursor:wait;
  opacity:.58;
  transform:none;
  box-shadow:none;
}
#backingMigrationMessage {
  grid-column:1 / -1;
  min-height:1.4em;
  color:var(--ink);
  font-size:10px;
  font-weight:750;
}
.admin-asset-list > p {
  margin:0;
  padding:20px;
  color:var(--muted);
  text-align:center;
  font-size:10px;
}
.admin-asset {
  display:grid;
  grid-template-columns:minmax(190px,1fr) minmax(180px,.8fr) auto;
  align-items:center;
  gap:12px;
  padding:10px 0;
  border-bottom:1px solid var(--line);
}
.admin-asset span,.admin-asset strong,.admin-asset small {
  display:block;
}
.admin-asset span {
  color:var(--orange);
  font:8px "SFMono-Regular",Consolas,monospace;
}
.admin-asset strong {
  margin:3px 0;
  font-size:11px;
}
.admin-asset small {
  color:var(--muted);
  font-size:9px;
}
.admin-asset audio {
  width:100%;
  height:32px;
}
.admin-asset button {
  padding:6px 8px;
  border:1px solid var(--line);
  border-radius:4px;
  background:#fff;
  color:var(--ink);
  font-size:9px;
}
.editor-form {
  padding:25px;
}
.editor-head {
  display:flex;
  align-items:start;
  justify-content:space-between;
}
.editor-head h2 {
  margin:0;
  font:700 30px/1 "Playfair Display",serif;
}
.dialog-close {
  border:0;
  background:transparent;
  color:var(--muted);
  font-size:28px;
  line-height:1;
}
.editor-notice {
  margin:18px 0;
  padding:10px 12px;
  border-left:3px solid var(--yellow);
  background:#faf4e6;
  color:#626873;
  font-size:12px;
}
.editor-fields {
  display:grid;
  grid-template-columns:1.6fr .7fr .7fr .8fr;
  gap:10px;
}
.editor-fields label {
  color:var(--muted);
  font-size:11px;
}
.editor-fields input,.editor-fields select {
  width:100%;
  margin-top:6px;
  padding:9px 10px;
  border:1px solid var(--line);
  border-radius:4px;
  background:white;
  color:var(--ink);
}
.editor-playback-defaults {
  margin:12px 0 0;
  color:var(--muted);
  font-size:11px;
  line-height:1.5;
}
.editor-save-status {
  display:block;
  margin:10px 0 0;
  padding:9px 11px;
  border:1px solid var(--line);
  border-radius:4px;
  background:#f7f4ee;
  color:var(--muted);
  font-size:11px;
  font-weight:700;
  line-height:1.45;
}
.editor-save-status[data-state="dirty"] {
  border-color:#b99220;
  background:#fff7d6;
  color:#604d12;
}
.editor-save-status[data-state="saving"] {
  border-color:var(--blue);
  background:#eaf2fa;
  color:#183153;
}
.editor-save-status[data-state="error"] {
  border-color:var(--red);
  background:#fff0ed;
  color:#7f211a;
}
.editor-bars-head {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:12px;
  margin:24px 0 10px;
}
.editor-bars-head span,.editor-bars-head small {
  display:block;
}
.editor-bars-head span {
  font-weight:600;
}
.editor-bars-head small {
  margin-top:2px;
  color:var(--muted);
  font-size:10px;
}
.editor-bars-head button {
  border:1px solid var(--line);
  border-radius:4px;
  background:white;
  padding:7px 10px;
  color:var(--ink);
  font-size:11px;
}
.editor-bars {
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:7px;
  max-height:280px;
  overflow:auto;
  padding:2px;
}
.editor-bar {
  position:relative;
  padding:7px;
  border:1px solid var(--line);
  border-top:3px solid var(--orange);
  border-radius:4px;
  background:#f7f4ee;
}
.editor-bar.selected {
  outline:2px solid rgba(47,99,232,.28);
  border-color:var(--blue);
}
.editor-bar.preview-current {
  background: var(--yellow, #ffda3d);
  box-shadow: 0 0 0 4px #ff665e;
}
.editor-bar-number {
  display:block;
  color:var(--muted);
  font:9px "DM Mono",monospace;
}
.editor-bar-chords {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:6px;
  margin-top:5px;
}
.editor-bar.has-multiple-chords .editor-bar-chords {
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.editor-bar-chord-slot {
  min-width:0;
}
.editor-bar input {
  box-sizing:border-box;
  width:100%;
  min-width:0;
  margin-top:0;
  padding:5px 3px;
  border:0;
  border-bottom:1px solid #cfc8bd;
  background:transparent;
  color:var(--ink);
  font:600 16px "Playfair Display",serif;
}
.editor-bar.has-multiple-chords input {
  font-size:14px;
}
.editor-bar button {
  position:absolute;
  top:4px;
  right:4px;
  border:0;
  background:transparent;
  color:#a29b92;
}
.editor-footer {
  position:sticky;
  z-index:8;
  bottom:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-top:22px;
  padding:14px 0 2px;
  border-top:1px solid var(--line);
  background:var(--white);
  box-shadow:0 -12px 22px rgba(255,253,245,.92);
}
.editor-footer-status > span {
  color:var(--muted);
  font:11px "DM Mono",monospace;
}
.editor-footer .editor-footer-status { display:block; min-width:0; }
.editor-footer .editor-save-status { display:block; margin:4px 12px 0 0; padding:0; }
.editor-footer-actions { flex-shrink:0; }
.editor-footer button {
  border-radius:4px;
  padding:9px 13px;
}
.cancel-edit {
  border:1px solid var(--line);
  background:transparent;
  color:var(--muted);
}
.save-edit {
  margin-left:7px;
  border:1px solid var(--orange);
  background:var(--orange);
  color:#fff;
  font-weight:600;
}
.chord-builder {
  margin-top:16px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:6px;
  background:#f2eee7;
}
.chord-builder-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:10px;
}
.chord-builder-head span,.chord-builder-head small {
  display:block;
}
.chord-builder-head span {
  font-weight:650;
}
.chord-builder-head small {
  margin-top:2px;
  color:var(--muted);
  font-size:10px;
}
.chord-builder-head output {
  min-width:80px;
  color:var(--blue);
  font:700 24px Georgia,serif;
  text-align:right;
}
.progression-presets {
  display:grid;
  grid-template-columns:auto minmax(180px,1fr) auto;
  align-items:center;
  gap:7px;
  margin:0 0 12px;
  padding:10px;
  border-left:4px solid var(--yellow);
  background:rgba(255,255,255,.62);
}
.progression-presets label {
  color:var(--ink);
  font-size:10px;
  font-weight:750;
}
.progression-presets select {
  min-width:0;
  padding:8px;
  border:1px solid #cfc8bd;
  border-radius:4px;
  background:#fff;
  color:var(--ink);
}
.progression-presets button {
  min-height:34px;
  border:0;
  border-radius:4px;
  padding:8px 11px;
  background:var(--ink);
  color:#fff;
  font-size:10px;
  font-weight:700;
}
.progression-presets small {
  grid-column:2 / -1;
  color:var(--muted);
  font-size:9px;
}
.chord-builder-grid {
  display:grid;
  grid-template-columns:1.35fr .8fr 1fr 1fr .85fr auto;
  align-items:end;
  gap:7px;
}
.chord-builder-grid label {
  min-width:0;
  color:var(--muted);
  font-size:9px;
}
.chord-builder-grid select {
  width:100%;
  margin-top:5px;
  padding:8px;
  border:1px solid #cfc8bd;
  border-radius:4px;
  background:#fff;
  color:var(--ink);
}
.chord-builder-grid button {
  min-height:34px;
  border:0;
  border-radius:4px;
  padding:8px 11px;
  background:var(--blue);
  color:#fff;
  font-size:10px;
}
.chord-examples {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  margin-top:11px;
}
.chord-examples span {
  margin-right:3px;
  color:var(--muted);
  font-size:9px;
  font-weight:700;
}
.chord-examples button {
  min-width:38px;
  border:1px solid #bfb7aa;
  border-radius:14px;
  padding:5px 9px;
  background:#fff;
  color:var(--ink);
  font:600 10px "SFMono-Regular",Consolas,monospace;
  cursor:pointer;
}
.chord-examples button:hover {
  border-color:var(--blue);
  color:var(--blue);
}
.chord-examples button:focus-visible,.progression-presets button:focus-visible {
  outline:3px solid var(--blue);
  outline-offset:2px;
}
@media (max-width:700px) {
  .main-nav {
    display:none;
  }
  .topbar {
    padding-bottom:16px;
  }
  .session-status {
    display:none;
  }
  .hero {
    min-height:auto;
    padding:24px 0 28px;
  }
  .hero h1 {
    font-size:45px;
  }
  .hero-actions {
    margin-top:18px;
  }
  .product-pillars {
    grid-template-columns:1fr;
  }
  .product-pillars article {
    padding:20px;
  }
  .journey {
    padding-top:12px;
  }
  .journey-heading-tools {
    align-items:flex-start;
    margin-top:10px;
  }
  .journey-heading-tools p {
    text-align:left;
  }
  .journey-layout {
    display:block;
  }
  .atlas {
    min-height:0;
    overflow-x:auto;
  }
  .atlas-inner {
    min-width:800px;
    height:350px;
  }
  .atlas .map-node {
    top:calc(var(--node-y) - 18px) !important;
  }
  .atlas .atlas-route {
    top:145px;
  }
  .groove-atlas {
    display:flex;
    width:max-content;
    min-width:100%;
    padding:10px;
  }
  .groove-card {
    flex:0 0 166px;
    min-height:70px;
  }
  .groove-card strong {
    font-size:14px;
  }
  .style-panel {
    min-height:auto;
  }
  .style-dossier header,.dossier-grid,.dossier-grid.groove-roles {
    grid-template-columns:1fr;
  }
  .style-dossier header {
    gap:12px;
  }
  .dossier-grid section {
    padding:17px 0 0;
  }
  .dossier-grid section + section {
    padding-left:0;
    border-left:0;
  }
  .practice-policy {
    align-items:flex-start;
    flex-direction:column;
    gap:5px;
  }
  .arrangement-actions {
    align-items:end;
    flex-direction:column;
    gap:5px;
  }
  .mixer-table-head,.mixer-channel {
    grid-template-columns:minmax(140px,1.1fr) 32px 32px minmax(88px,1fr);
    gap:4px;
  }
  .mixer-table-head span:last-child,.pan-slider {
    display:none;
  }
  .mixer-channel {
    padding:8px 9px;
  }
  .mixer-channel > button {
    width:27px;
  }
  .track-identity {
    gap:6px;
  }
  .track-icon {
    flex-basis:24px;
    width:24px;
    height:24px;
  }
  .track-settings {
    min-width:49px;
    height:24px;
    padding:0 5px;
  }
  .drum-piece-grid {
    grid-template-columns:repeat(3,minmax(0,1fr));
    padding:12px;
  }
  .guitar-source-control {
    padding:12px;
  }
  .guitar-source-control select {
    min-width:0;
    max-width:58%;
  }
  .editor-form,.admin-shell {
    padding:18px;
  }
  .editor-fields {
    grid-template-columns:1fr 1fr;
  }
  .editor-bars {
    grid-template-columns:repeat(3,1fr);
  }
  .progression-presets {
    grid-template-columns:1fr auto;
  }
  .progression-presets label {
    grid-column:1 / -1;
  }
  .progression-presets small {
    grid-column:1 / -1;
  }
  .chord-builder-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .chord-builder-grid button {
    grid-column:1 / -1;
  }
  .admin-fields {
    grid-template-columns:1fr 1fr;
  }
  .admin-asset {
    grid-template-columns:1fr;
  }
  .admin-asset audio {
    max-width:360px;
  }
}
@media (max-width:430px) {
  .hero h1 {
    font-size:39px;
  }
  .hero-actions {
    justify-content:space-between;
  }
  .primary-link {
    padding:9px 13px;
  }
  .timeline {
    gap:5px;
  }
  .bar {
    height:76px;
    padding:8px;
  }
  .bar-chord {
    margin-top:9px;
    font-size:18px;
  }
  .editor-fields,.admin-fields {
    grid-template-columns:1fr;
  }
  .editor-footer {
    align-items:flex-start;
    flex-direction:column;
    gap:12px;
  }
  .editor-footer > div {
    width:100%;
    display:flex;
  }
  .editor-footer button {
    flex:1;
  }
  .timeline-help {
    align-items:flex-start;
    flex-direction:column;
    gap:3px;
  }
  .track-identity small {
    display:none;
  }
  .mixer-table-head,.mixer-channel {
    grid-template-columns:minmax(138px,1fr) 30px 30px minmax(88px,1fr);
  }
  .channel-slider {
    grid-template-columns:minmax(50px,1fr) 32px;
    gap:3px;
  }
  .drum-piece-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .guitar-source-control {
    align-items:flex-start;
    flex-direction:column;
    gap:8px;
  }
  .guitar-source-control select {
    width:100%;
    max-width:none;
  }
}
/* BLUES JUKE: collage workstation visual system */
:root {
  --ink: #101010;
  --paper: #fff7df;
  --white: #fffdf5;
  --muted: #4a463d;
  --line: #101010;
  --yellow: #f7e632;
  --orange: #f0442f;
  --blue: #145cff;
  --red: #f0442f;
  --shadow: 9px 11px 0 rgba(16, 16, 16, .16);
  --soft-shadow: 0 14px 32px rgba(16, 16, 16, .16);
  --window-border: 4px solid var(--ink);
  --window-radius: 0;
  --master-level: 78%;
}
html {
  scroll-behavior: smooth;
}
body {
  min-width: 320px;
  background-color: var(--paper);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Ccircle cx='2' cy='2' r='.6' fill='%23101010' fill-opacity='.11'/%3E%3Ccircle cx='14' cy='11' r='.45' fill='%23101010' fill-opacity='.08'/%3E%3C/svg%3E");
  color: var(--ink);
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Noto Sans SC", sans-serif;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 20;
  opacity: .08;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cpath d='M6 17c18-6 25 6 38 1M29 63c12-10 22 4 39-5M-6 44c17 3 19-11 38-9' fill='none' stroke='%23101010' stroke-width='1.3'/%3E%3C/svg%3E");
}
::selection {
  background: var(--yellow);
  color: var(--ink);
}
button, input, select {
  border-radius: 0;
}
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 3px;
}
button:disabled {
  cursor: not-allowed;
  opacity: .48;
}
input[type="range"] {
  accent-color: var(--red);
}
button, a, input, select {
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
h1, h2, h3 {
  text-wrap: balance;
}
[id] {
  scroll-margin-top: 20px;
}
.skip-link {
  position: fixed;
  left: 12px;
  top: 12px;
  z-index: 100;
  padding: 9px 12px;
  border: 3px solid var(--ink);
  background: var(--yellow);
  color: var(--ink);
  font-weight: 850;
  text-decoration: none;
  transform: translateY(-180%);
}
.skip-link:focus-visible {
  transform: translateY(0);
}
.track-settings:focus-visible, .compact-control select:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 3px;
}
.app-shell {
  display: flex;
  flex-direction: column;
  max-width: 1440px;
  padding: 18px clamp(14px, 3vw, 44px) 56px;
}
.topbar {
  order: 0;
  min-height: 64px;
  padding: 10px 14px;
  border: var(--window-border);
  background: var(--yellow);
  box-shadow: var(--shadow);
}
.topbar h1, h2, h3 {
  font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
  letter-spacing: .035em;
}
.main-nav {
  display: flex;
  gap: 2px;
}
.main-nav a {
  padding: 7px 9px;
  color: var(--ink);
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}
.main-nav a:hover {
  background: var(--ink);
  color: var(--yellow);
}
.topbar-actions {
  gap: 12px;
}
.session-status {
  color: var(--ink);
  font-size: 12px;
  font-weight: 750;
}
.session-status span {
  background: var(--blue);
  border: 2px solid var(--ink);
}
.admin-entry {
  border: 3px solid var(--ink);
  background: var(--white);
  color: var(--ink);
  font-weight: 850;
  box-shadow: 3px 3px 0 var(--ink);
}
.admin-entry:hover {
  background: var(--blue);
  color: var(--white);
}
.admin-entry:active {
  box-shadow: 0 0 0 var(--ink);
  transform: translate(3px, 3px);
}
.hero {
  order: 1;
  position: relative;
  align-items: end;
  gap: 24px;
  min-height: 230px;
  margin: 22px 0 18px;
  padding: 28px 34px 24px;
  border: var(--window-border);
  background: var(--white);
  box-shadow: var(--shadow);
  overflow: hidden;
}
.hero::after {
  content: "BLUES / 12 BAR / FEEL";
  position: absolute;
  right: -14px;
  top: 20px;
  padding: 7px 18px;
  border: 3px solid var(--ink);
  background: var(--red);
  color: var(--white);
  font: 900 13px/1 Impact, sans-serif;
  letter-spacing: .12em;
  transform: rotate(4deg);
}
.eyebrow {
  display: none;
}
.hero h1 {
  max-width: 680px;
  font: 900 clamp(42px, 6vw, 82px)/.85 Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
  letter-spacing: .025em;
  text-transform: uppercase;
}
.hero h1 em {
  color: var(--blue);
  font-style: normal;
  text-shadow: 3px 3px 0 var(--yellow);
}
.lede {
  max-width: 610px;
  color: var(--ink);
  font-size: 15px;
  font-weight: 650;
  line-height: 1.55;
}
.hero-actions {
  gap: 12px;
}
.primary-link, .text-link {
  border: 3px solid var(--ink);
  border-radius: 0;
  padding: 10px 14px;
  color: var(--ink);
  font-size: 13px;
  font-weight: 900;
  text-decoration: none;
}
.primary-link {
  background: var(--red);
  color: var(--white);
  box-shadow: 3px 3px 0 var(--ink);
}
.primary-link:hover {
  background: var(--blue);
}
.text-link:hover {
  background: var(--yellow);
}
.now-playing {
  min-width: 250px;
  margin-bottom: 6px;
  border: 4px solid var(--ink);
  border-radius: 0;
  background: var(--ink);
  box-shadow: 6px 6px 0 var(--blue);
}
.now-playing strong {
  color: var(--yellow);
  font: 900 28px/1 Impact, sans-serif;
  letter-spacing: .04em;
}
.now-playing span,.now-playing small {
  color: var(--white);
}
.tempo-popover {
  border: 3px solid var(--ink);
  border-radius: 0;
  background: var(--yellow);
  box-shadow: var(--shadow);
}
.tempo-popover small {
  color: var(--ink);
  font-weight: 700;
}
.human-speed-presets[hidden],.intro-visibility-toggle[hidden],.audio-section-tabs-wrap[hidden],.backing-composer[hidden] {
  display:none;
}
.speed-preset-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:5px;
}
.speed-preset-grid button {
  min-height:34px;
  border:2px solid var(--ink);
  background:var(--paper);
  color:var(--ink);
  font:900 12px/1 "SFMono-Regular",Consolas,monospace;
  cursor:pointer;
}
.speed-preset-grid button:hover,.speed-preset-grid button.active {
  background:var(--blue);
  color:var(--white);
}
.speed-preset-grid button:focus-visible {
  outline:3px solid var(--red);
  outline-offset:2px;
}
.human-speed-presets > small {
  margin-top:8px;
  line-height:1.45;
  text-align:left;
}
.arrangement {
  order: 3;
  position: relative;
  margin: 0 0 22px;
  padding: 70px 24px 26px;
  border: var(--window-border);
  border-radius: 0;
  background: var(--white);
  box-shadow: 10px 11px 0 var(--red);
}
.arrangement::before {
  content: "CHORD WINDOW / 12 BAR GRID";
  background: var(--blue);
  color: var(--white);
}
.arrangement::after {
  color: var(--yellow);
}
.arrangement-title {
  align-items: center;
}
.arrangement h2 {
  font: 900 34px/1 Impact, sans-serif;
  letter-spacing: .03em;
}
.arrangement-actions {
  gap: 10px;
  font-weight: 800;
}
.edit-arrangement {
  border: 3px solid var(--ink);
  border-radius: 0;
  background: var(--yellow);
  color: var(--ink);
  font-weight: 900;
  box-shadow: 3px 3px 0 var(--ink);
}
.edit-arrangement:hover {
  background: var(--red);
  color: var(--white);
}
.timeline {
  gap: 8px;
}
.bar {
  height: 104px;
  border: 3px solid var(--ink);
  border-radius: 0;
  background: var(--paper);
  color: var(--ink);
  box-shadow: 3px 3px 0 rgba(16,16,16,.18);
}
.bar:hover {
  background: var(--yellow);
  transform: translate(-1px,-1px);
}
.bar.selected {
  background: var(--yellow);
}
.bar.current {
  background: var(--red);
  color: var(--white);
  box-shadow: 5px 5px 0 var(--ink);
}
.bar-number,.bar-function {
  font-weight: 850;
}
.bar-chord {
  font: 900 32px/1 Impact, sans-serif;
}
.timeline-help {
  border-top: 2px dashed var(--ink);
  color: var(--ink);
}
.mixer-heading {
  margin-top: 30px;
  padding: 9px 12px;
  border: 3px solid var(--ink);
  border-bottom: 0;
  background: var(--yellow);
  color: var(--ink);
  font-weight: 900;
}
.mixer {
  border: 3px solid var(--ink);
  border-radius: 0;
  box-shadow: none;
}
.mixer-table-head {
  background: var(--ink);
  color: var(--white);
}
.mixer-channel {
  background: var(--white);
  color: var(--ink);
  border-top: 2px solid var(--ink);
}
.mixer-channel:nth-of-type(even) {
  background: var(--paper);
}
.track-icon {
  border: 2px solid var(--ink);
  border-radius: 0;
  background: var(--yellow);
  color: var(--ink);
}
.track-identity strong {
  font-size: 14px;
}
.mixer-channel > button {
  border: 2px solid var(--ink);
  border-radius: 0;
  background: var(--white);
  color: var(--ink);
}
.mixer-channel > button:hover {
  background: var(--blue);
  color: var(--white);
}
.mixer-channel > button[data-mute].active {
  background: var(--red);
}
.mixer-channel > button[data-solo].active {
  background: var(--yellow);
}
.drum-submixer,.guitar-submixer {
  background: var(--yellow);
  border-top: 3px solid var(--ink);
}
.drum-piece-grid label,.guitar-source-control select {
  border: 2px solid var(--ink);
  border-radius: 0;
  background: var(--white);
  color: var(--ink);
}
.timeline-help > div {
  min-width:0;
}
.intro-visibility-toggle {
  min-height:36px;
  padding:7px 10px;
  border:2px solid var(--ink);
  background:var(--paper);
  color:var(--ink);
  font-weight:900;
  cursor:pointer;
  white-space:nowrap;
}
.intro-visibility-toggle[aria-pressed="true"] {
  background:var(--mem-mint,#91e4c3);
}
.intro-visibility-toggle:hover {
  background:var(--yellow);
}
.intro-visibility-toggle:focus-visible {
  outline:3px solid var(--blue);
  outline-offset:3px;
}
.timeline.intro-collapsed .section-intro {
  display:none;
}
.bar.section-intro {
  background:var(--mem-mint,#91e4c3);
}
.bar.section-ending {
  background:var(--blue);
  color:var(--white);
}
.bar.section-ending .bar-number,.bar.section-ending .bar-function {
  color:var(--white);
}
.bar.section-loop .bar-function {
  color:var(--ink);
}
.audio-section-tabs {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 16px;
}
.audio-section-tabs button {
  flex:0 1 150px;
  min-width:120px;
  min-height:48px;
  padding:8px 12px;
  border:3px solid var(--ink);
  background:var(--paper);
  color:var(--ink);
  font-weight:900;
  cursor:pointer;
  box-shadow:3px 3px 0 rgba(16,16,16,.18);
}
.audio-section-tabs .shared-section-tab-count {
  display:inline-grid;
  min-width:24px;
  min-height:24px;
  place-items:center;
  margin-left:6px;
  background:var(--ink);
  color:var(--white);
}
.audio-section-tabs .shared-section-tab-label{display:inline}
.human-editor-preview{display:grid;grid-template-columns:auto auto minmax(180px,1fr) auto;align-items:center;gap:8px;margin:10px 0;padding:8px 10px;border:1px solid var(--line,#c9c2b4);border-radius:8px;background:#17365d;color:#fff}.human-editor-preview[hidden]{display:none}.human-editor-preview button{min-height:36px;padding:6px 12px;background:#fff;color:#17365d}.human-editor-preview label{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700}.human-editor-preview input{width:100%;min-height:24px;padding:0;accent-color:#ffd83d}.human-editor-preview output{font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}.human-editor-preview .human-editor-preview-status{grid-column:1/-1;min-height:14px;color:#fff3b0;white-space:normal}.human-editor-preview audio{display:none}@media(max-width:720px){.human-editor-preview{grid-template-columns:1fr 1fr}.human-editor-preview label,.human-editor-preview output{grid-column:1/-1}}
.audio-section-tabs button.active {
  background:var(--yellow);
  transform:translate(-1px,-1px);
  box-shadow:5px 5px 0 var(--ink);
}
.audio-section-tabs button:focus-visible {
  outline:3px solid var(--blue);
  outline-offset:3px;
}
.editor-section-empty {
  grid-column:1/-1;
  margin:0;
  padding:28px 16px;
  border:3px dashed var(--ink);
  background:var(--paper);
  color:var(--ink);
  text-align:center;
  font-weight:800;
}
.chord-builder button:disabled {
  opacity:.45;
  cursor:not-allowed;
}
.admin-fields label > small {
  display:block;
  margin-top:4px;
  color:var(--muted);
  line-height:1.35;
}
.editor-bar-tools {
  display:flex;
  align-items:end;
  gap:8px;
}
.editor-history-tools {
  display:flex;
  gap:5px;
}
.editor-history-tools button {
  display:inline-flex;
  min-width:72px;
  align-items:center;
  justify-content:center;
  gap:6px;
  background:var(--white);
}
.editor-history-tools svg {
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.editor-history-tools button:disabled {
  opacity:.38;
  cursor:not-allowed;
}
.editor-bar-tools label {
  color:var(--ink);
  font-size:11px;
  font-weight:800;
}
.editor-bar-tools input {
  display:block;
  width:84px;
  min-height:40px;
  margin-top:4px;
  padding:6px 8px;
  border:3px solid var(--ink);
  background:var(--white);
  color:var(--ink);
  font-weight:900;
}
.editor-bar-tools button {
  min-height:40px;
}
.editor-leave-dialog,
.lab-leave-dialog {
  width:min(520px,calc(100vw - 32px));
  padding:0;
  border:3px solid var(--ink);
  border-radius:14px;
  background:var(--white);
  color:var(--ink);
  box-shadow:8px 8px 0 rgba(24,49,83,.25);
}
.editor-leave-dialog::backdrop,
.lab-leave-dialog::backdrop { background:rgba(24,49,83,.48); }
.editor-leave-dialog section,
.lab-leave-dialog section { padding:22px; }
.editor-leave-dialog h3,
.lab-leave-dialog h2 { margin:0; font-size:22px; }
.editor-leave-dialog p,
.lab-leave-dialog p { margin:8px 0 18px; }
.editor-leave-dialog section>div,
.lab-leave-dialog section>div { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; }
.editor-leave-dialog button,
.lab-leave-dialog button { min-height:42px; }
.editor-leave-dialog .save-edit,
.lab-leave-dialog .save { background:var(--yellow); }
.backing-list-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.backing-list-head p {
  margin-bottom:0;
}
.backing-list-head .admin-submit {
  flex:0 0 auto;
  margin:0;
}
.backing-list-actions {
  display:flex;
  align-items:center;
  gap:8px;
}
.midi-editor-link {
  display:inline-flex;
  align-items:center;
  min-height:40px;
  text-decoration:none;
}
.backing-composer {
  margin-top:16px;
  padding-top:16px;
  border-top:3px solid var(--ink);
}
.backing-timing-mode {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:16px 0;
  padding:0;
  border:0;
}
.backing-timing-mode legend {
  grid-column:1/-1;
  margin-bottom:8px;
  color:var(--ink);
  font-size:13px;
  font-weight:900;
}
.backing-timing-mode label {
  position:relative;
  min-width:0;
  cursor:pointer;
}
.backing-timing-mode input {
  position:absolute;
  inline-size:1px;
  block-size:1px;
  opacity:0;
}
.backing-timing-mode span {
  display:flex;
  min-height:76px;
  flex-direction:column;
  justify-content:center;
  gap:4px;
  padding:12px 14px;
  border:3px solid var(--ink);
  border-radius:10px;
  background:var(--white);
  transition:transform 140ms ease,background-color 140ms ease,box-shadow 140ms ease;
}
.backing-timing-mode strong {
  font-size:15px;
  line-height:1.2;
}
.backing-timing-mode small {
  color:#294566;
  font-size:10px;
  font-weight:750;
  line-height:1.45;
}
.backing-timing-mode input:checked + span {
  background:var(--mem-yellow,var(--yellow));
  box-shadow:4px 5px 0 var(--mem-blue,#5bc2e7);
}
.backing-timing-mode input:focus-visible + span {
  outline:3px solid var(--blue);
  outline-offset:3px;
}
.backing-timing-mode label:hover span {
  transform:translateY(-2px);
}
#backingBpmField[hidden],
#backingFirstBarField[hidden],
#editorTempoField[hidden] {
  display:none;
}
.backing-composer-actions {
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:14px;
}
.backing-composer-actions > button {
  min-height:42px;
  padding:8px 14px;
  border:3px solid var(--ink);
  background:var(--paper);
  color:var(--ink);
  font-weight:900;
}
.backing-composer-actions .admin-submit {
  margin:0;
  background:var(--mem-mint,#91e4c3);
}
.barline-sync-editor {
  margin-top:20px;
  padding:16px;
  border:3px solid var(--ink);
  border-radius:14px;
  background:var(--mem-cream,var(--white));
  box-shadow:6px 7px 0 var(--mem-blue,#5bc2e7);
}
.barline-sync-editor[hidden] {
  display:none;
}
.barline-sync-heading {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
}
.barline-sync-heading h4 {
  margin:0;
  font-size:21px;
  line-height:1.15;
}
.barline-sync-heading p {
  max-width:68ch;
  margin:7px 0 0;
  color:#243f61;
  font-size:11px;
  font-weight:750;
  line-height:1.55;
}
#barlineSyncState {
  flex:0 0 auto;
  padding:7px 10px;
  border:2px solid var(--ink);
  border-radius:999px;
  background:var(--mem-yellow,var(--yellow));
  font-size:10px;
  font-weight:900;
  white-space:nowrap;
}
.barline-sync-controls {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:9px;
  margin:16px 0 6px;
}
.barline-sync-controls input,
.barline-sync-controls button,
.barline-selection input,
.barline-nudge button,
.barline-sync-actions button {
  min-height:44px;
  border:2px solid var(--ink);
  border-radius:8px;
  background:var(--white);
  color:var(--ink);
  font-weight:900;
}
.barline-sync-controls button {
  align-self:stretch;
  padding:8px 12px;
}
.barline-sync-controls .barline-analysis-primary {
  background:var(--mem-yellow,var(--yellow));
}
.barline-sync-controls .barline-analysis-preserve {
  background:var(--mem-mint,#91e4c3);
}
.barline-sync-controls .barline-analysis-reset {
  background:var(--mem-pink,#ffb8b0);
}
.barline-sync-controls button:disabled {
  cursor:not-allowed;
  opacity:.48;
}
.barline-analysis-guide {
  display:block;
  margin:0 2px 12px;
  color:#405570;
  font-size:10px;
  font-weight:750;
  line-height:1.45;
}
.barline-workbench {
  margin:0 0 12px;
  padding:10px;
  border:2px solid var(--ink);
  border-radius:10px;
  background:rgba(255,255,255,.6);
}
#barlineSyncAudio {
  display:block;
  width:100%;
  min-height:44px;
  margin:0 0 7px;
}
.barline-wave-tools {
  display:grid;
  grid-template-columns:minmax(280px,560px) auto;
  align-items:center;
  gap:10px;
}
.barline-view-controls {
  display:grid;
  grid-template-columns:44px minmax(180px,1fr) 44px auto;
  align-items:center;
  gap:8px;
  margin:0;
}
.barline-view-controls button {
  min-height:44px;
  padding:7px 11px;
  border:2px solid var(--ink);
  border-radius:8px;
  background:var(--white);
  color:var(--ink);
  font-weight:900;
}
.barline-view-controls label {
  display:grid;
  grid-template-columns:auto minmax(90px,1fr) 36px;
  align-items:center;
  gap:8px;
  color:var(--ink);
  font-size:10px;
  font-weight:900;
}
.barline-view-controls input,
.barline-viewport-control input {
  width:100%;
  accent-color:var(--red,#ff665c);
}
.barline-view-controls output {
  font-variant-numeric:tabular-nums;
  text-align:end;
}
.barline-history-controls {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  margin:0;
}
.barline-shortcut-hint {
  justify-self:end;
  color:#243f61;
  font-size:10px;
  font-weight:850;
  white-space:nowrap;
}
.barline-selection button {
  min-width:56px;
  min-height:44px;
  padding:7px 10px;
  border:2px solid var(--ink);
  border-radius:8px;
  background:var(--white);
  color:var(--ink);
  font-weight:900;
  font-size:13px;
  line-height:1.2;
  white-space:nowrap;
}
.barline-selection button:disabled {
  cursor:not-allowed;
  opacity:.42;
}
.barline-selection .barline-add-current {
  background:var(--mem-yellow,var(--yellow));
}
.barline-reference-tool,
.barline-density-tool {
  margin:0 0 12px;
  padding:12px;
  border:2px solid var(--ink);
  border-radius:10px;
}
.barline-reference-tool {
  background:#dff8ed;
}
.barline-density-tool {
  background:#fff4bd;
}
.barline-density-tool > summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:44px;
  cursor:pointer;
  list-style:none;
}
.barline-density-tool > summary::-webkit-details-marker {
  display:none;
}
.barline-density-tool > summary span,
.barline-density-tool > summary strong,
.barline-density-tool > summary small {
  display:block;
}
.barline-density-tool > summary strong {
  font-size:13px;
}
.barline-density-tool > summary small {
  margin-top:2px;
  color:#405570;
  font-size:9px;
  font-weight:750;
}
.barline-density-tool > summary b {
  flex:0 0 auto;
  padding:5px 9px;
  border:2px solid var(--ink);
  border-radius:999px;
  background:var(--white);
  font-size:9px;
}
.barline-density-tool[open] > summary b::before {
  content:"收起";
}
.barline-density-tool[open] > summary b {
  font-size:0;
}
.barline-density-tool[open] > summary b::before {
  font-size:9px;
}
.barline-density-body {
  display:grid;
  grid-template-columns:minmax(150px,.42fr) minmax(280px,1fr);
  gap:8px 10px;
  margin-top:8px;
  padding-top:9px;
  border-top:2px solid rgba(24,49,83,.28);
}
.barline-reference-heading {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}
.barline-reference-heading strong,
.barline-reference-heading small,
.barline-reference-guide {
  display:block;
}
.barline-reference-heading strong {
  font-size:13px;
}
.barline-reference-heading small,
.barline-reference-guide {
  margin-top:4px;
  color:#294b42;
  font-size:10px;
  font-weight:750;
  line-height:1.5;
}
#barlineReferenceSummary {
  flex:0 0 auto;
  padding:6px 9px;
  border:2px solid var(--ink);
  border-radius:999px;
  background:var(--white);
  color:var(--ink);
  font-size:9px;
  font-weight:900;
  white-space:nowrap;
}
.barline-reference-actions {
  display:grid;
  grid-template-columns:1fr 1fr 1.25fr;
  gap:8px;
  margin-top:10px;
}
.barline-reference-actions button {
  min-height:44px;
  padding:7px 10px;
  border:2px solid var(--ink);
  border-radius:8px;
  background:var(--white);
  color:var(--ink);
  font-weight:900;
}
.barline-reference-actions .admin-submit {
  margin:0;
  background:var(--mem-yellow,var(--yellow));
}
.barline-reference-actions button:disabled {
  cursor:not-allowed;
  opacity:.46;
}
.barline-density-heading,
.barline-density-controls,
.barline-correction-preview {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
}
.barline-density-tool label {
  display:grid;
  gap:4px;
  color:var(--ink);
  font-size:9px;
  font-weight:900;
}
.barline-density-tool select,
.barline-density-tool button {
  min-height:44px;
  border:2px solid var(--ink);
  border-radius:8px;
  background:var(--white);
  color:var(--ink);
  font-weight:900;
}
.barline-density-tool select {
  min-width:190px;
  padding:7px 34px 7px 10px;
}
.barline-density-controls {
  margin:0;
}
.barline-density-controls label {
  flex:1;
}
.barline-density-controls select {
  width:100%;
}
.barline-density-controls button {
  flex:0 0 150px;
  padding:7px 12px;
  background:var(--mem-yellow,var(--yellow));
}
.barline-range-controls {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:9px;
  padding:9px;
  border:2px dashed rgba(24,49,83,.6);
  border-radius:8px;
  background:rgba(255,255,255,.55);
  grid-column:1/-1;
}
.barline-range-controls[hidden] {
  display:none;
}
.barline-range-controls output {
  color:#243f61;
  font-size:10px;
  font-weight:850;
  line-height:1.4;
}
.barline-range-controls > div {
  display:flex;
  flex:0 0 auto;
  gap:7px;
}
.barline-range-controls button {
  padding:7px 10px;
}
.barline-correction-preview {
  align-items:center;
  margin-top:10px;
  padding-top:10px;
  border-top:2px solid rgba(24,49,83,.28);
  grid-column:1/-1;
}
.barline-correction-preview[hidden] {
  display:none;
}
.barline-correction-preview output {
  color:#243f61;
  font-size:10px;
  font-weight:850;
  line-height:1.45;
}
.barline-correction-preview > div {
  display:flex;
  flex:0 0 auto;
  gap:7px;
}
.barline-correction-preview button {
  padding:7px 12px;
}
.barline-correction-preview .admin-submit {
  margin:0;
  background:var(--mem-mint,#91e4c3);
}
.barline-waveform {
  position:relative;
  height:180px;
  overflow:hidden;
  border:3px solid var(--ink);
  border-radius:10px;
  background:#fff9e8;
  touch-action:none;
  cursor:crosshair;
}
.barline-waveform-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:9px 1px 6px;
}
.barline-waveform-heading strong {
  font-size:11px;
}
.barline-waveform-heading small {
  display:flex;
  align-items:center;
  gap:6px;
  color:#405570;
  font-size:9px;
  font-weight:800;
}
.barline-waveform-heading i {
  display:block;
  width:3px;
  height:14px;
  background:var(--blue);
}
.barline-waveform:focus-visible {
  outline:3px solid var(--blue);
  outline-offset:3px;
}
#barlineWaveformCanvas,
.barline-reference-highlight,
.barline-range-highlight,
.barline-beat-layer,
.barline-preview-layer,
.barline-marker-layer {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.barline-range-highlight {
  z-index:1;
  border-inline:2px solid rgba(47,99,232,.72);
  background:rgba(91,194,231,.22);
  pointer-events:none;
}
.barline-reference-highlight {
  z-index:1;
  border-inline:2px solid rgba(184,131,0,.8);
  background:rgba(255,216,62,.25);
  pointer-events:none;
}
.barline-reference-highlight[hidden] {
  display:none;
}
.barline-range-highlight[hidden] {
  display:none;
}
.barline-beat-layer {
  z-index:2;
  pointer-events:none;
}
.barline-preview-layer {
  z-index:4;
  pointer-events:none;
}
.barline-preview-marker {
  position:absolute;
  top:0;
  bottom:0;
  width:0;
  border-left:3px dashed #168c6a;
}
.barline-preview-marker span {
  position:absolute;
  top:8px;
  left:4px;
  padding:2px 5px;
  border:1px solid #11674f;
  border-radius:4px;
  background:#d8f8eb;
  color:#0d5945;
  font-size:8px;
  font-style:normal;
  font-weight:900;
  white-space:nowrap;
}
.barline-waveform.previewing-correction .barline-marker-layer {
  opacity:.28;
}
.barline-waveform.previewing-correction .barline-marker span {
  opacity:0;
}
.barline-beat-tick {
  position:absolute;
  bottom:0;
  width:1px;
  height:35%;
  background:rgba(24,49,83,.45);
}
.barline-beat-tick.downbeat {
  width:2px;
  height:58%;
  background:rgba(24,49,83,.72);
}
.barline-marker-layer {
  z-index:3;
  pointer-events:none;
}
.barline-marker {
  position:absolute;
  top:0;
  bottom:0;
  width:21px;
  min-width:21px;
  padding:0;
  border:0;
  background:transparent;
  transform:translateX(-10px);
  pointer-events:auto;
  touch-action:none;
  cursor:ew-resize;
}
.barline-marker::after {
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:9px;
  width:3px;
  background:var(--red,#ff665c);
  box-shadow:0 0 0 1px rgba(255,255,255,.75);
}
.barline-marker span {
  position:absolute;
  z-index:1;
  top:8px;
  left:50%;
  min-width:28px;
  padding:4px 6px;
  border:2px solid var(--ink);
  border-radius:999px;
  background:var(--white);
  color:var(--ink);
  font-size:9px;
  font-weight:900;
  transform:translateX(-50%);
}
.barline-marker.start span {
  left:10px;
  min-width:max-content;
  transform:none;
}
.barline-marker.end span {
  right:11px;
  left:auto;
  transform:none;
}
.barline-marker.selected::after {
  width:5px;
  left:8px;
  background:var(--blue);
}
.barline-marker.selected span {
  background:var(--blue);
  color:var(--white);
}
.barline-marker.reference::after {
  background:#b87800;
}
.barline-marker.reference span {
  background:#fff0a6;
}
.barline-marker.reference.selected span {
  background:var(--blue);
  color:var(--white);
}
.barline-playhead {
  position:absolute;
  z-index:5;
  top:0;
  bottom:0;
  left:0;
  width:3px;
  min-width:3px;
  padding:0;
  border:0;
  background:var(--blue);
  pointer-events:none;
}
.barline-playhead::before {
  content:"";
  position:absolute;
  top:0;
  left:50%;
  border:6px solid transparent;
  border-top-color:var(--blue);
  transform:translateX(-50%);
}
.barline-viewport-control {
  display:grid;
  grid-template-columns:auto minmax(180px,1fr);
  align-items:center;
  gap:10px;
  margin:8px 0 0;
  color:var(--ink);
  font-size:10px;
  font-weight:900;
}
.barline-viewport-control[hidden] {
  display:none;
}
.barline-selection {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 12px;
  margin-top:10px;
  padding:10px;
  border:2px solid var(--ink);
  border-radius:9px;
  background:var(--mem-pink,#ffb8b0);
}
.barline-selection[hidden] {
  display:none;
}
.barline-selection > strong {
  flex:1 0 125px;
  font-size:12px;
}
.barline-selection label {
  display:flex;
  align-items:center;
  gap:6px;
  font-size:9px;
  font-weight:900;
}
.barline-selection input {
  width:100px;
  min-width:0;
  min-height:44px;
  margin:0;
  padding:7px;
  font-size:13px;
}
.barline-nudge,
.barline-edit-actions,
.barline-sync-actions {
  display:flex;
  gap:7px;
}
.barline-nudge button,
.barline-sync-actions button {
  flex:1;
  padding:7px 10px;
}
.barline-selection #deleteSelectedBarline {
  background:var(--red,#ff665c);
}
.barline-sync-actions {
  justify-content:flex-end;
  margin-top:10px;
}
.barline-sync-actions button {
  flex:0 1 230px;
}
.barline-sync-actions .admin-submit {
  margin:0;
  background:var(--mem-mint,#91e4c3);
}
#barlineSyncMessage {
  display:block;
  min-height:1.5em;
  margin-top:9px;
  color:#243f61;
  font-size:10px;
  font-weight:800;
  line-height:1.5;
}
.admin-file small {
  display:block;
  margin-top:5px;
  color:var(--ink);
  line-height:1.4;
}
.asset-visibility-note {
  margin-top:5px;
  color:var(--red)!important;
  font-weight:800;
}
.admin-backing-filters {
  display:grid;
  grid-template-columns:minmax(180px,1.4fr) repeat(4,minmax(120px,1fr));
  gap:8px;
  margin:14px 0;
  padding:12px;
  border:3px solid var(--ink);
  background:var(--yellow);
}
.admin-backing-filters[hidden] {
  display:none;
}
.admin-backing-filters label {
  color:var(--ink);
  font-size:10px;
  font-weight:900;
}
.admin-backing-filters input,.admin-backing-filters select {
  width:100%;
  min-height:38px;
  margin-top:4px;
  padding:6px 8px;
  border:2px solid var(--ink);
  background:var(--white);
  color:var(--ink);
}
.admin-asset-tags {
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:9px;
}
.admin-asset-axis {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:4px;
  padding:4px;
  border:2px solid var(--ink);
  background:var(--white);
}
.admin-asset-axis b {
  padding:3px 5px;
  background:var(--ink);
  color:var(--white);
  font-size:9px;
}
.admin-asset-axis em {
  padding:3px 5px;
  background:var(--yellow);
  color:var(--ink);
  font-size:9px;
  font-style:normal;
  font-weight:800;
}
.admin-asset-axis em.missing {
  background:#ded8cc;
  color:#5c554b;
}
@media (max-width:700px) {
  .audio-section-tabs {
    flex-wrap:nowrap;
    gap:5px;
    overflow-x:auto;
    padding:2px 2px 7px;
    scroll-snap-type:x proximity;
  }
  .audio-section-tabs button {
    flex:0 0 112px;
    min-width:112px;
    padding:7px 4px;
    font-size:11px;
    scroll-snap-align:start;
  }
  .editor-bars-head {
    align-items:flex-start;
    flex-direction:column;
    gap:10px;
  }
  .editor-bar-tools {
    width:100%;
  }
  .editor-bar-tools button {
    flex:1;
  }
  .backing-list-head {
    align-items:flex-start;
    flex-direction:column;
  }
  .backing-list-actions {
    width:100%;
    align-items:stretch;
    flex-direction:column;
  }
  .backing-list-actions .admin-submit {
    justify-content:center;
    width:100%;
  }
  .backing-composer-actions {
    flex-direction:column;
  }
  .backing-composer-actions > button {
    width:100%;
  }
  .barline-sync-editor {
    padding:12px;
    box-shadow:4px 5px 0 var(--mem-blue,#5bc2e7);
  }
  .barline-sync-heading {
    flex-direction:column;
    gap:9px;
  }
  .barline-sync-controls,
  .barline-selection,
  .barline-reference-heading,
  .barline-density-heading,
  .barline-density-controls,
  .barline-correction-preview {
    grid-template-columns:1fr;
  }
  .barline-density-heading,
  .barline-reference-heading,
  .barline-density-controls,
  .barline-correction-preview {
    display:grid;
    align-items:stretch;
  }
  .barline-wave-tools,
  .barline-density-body {
    grid-template-columns:1fr;
  }
  .barline-history-controls {
    flex-wrap:wrap;
    justify-content:flex-start;
  }
  .barline-selection > strong { flex-basis:100%; }
  .barline-selection .barline-edit-actions { flex:1 1 auto; }
  .barline-reference-actions {
    grid-template-columns:1fr 1fr;
  }
  .barline-reference-actions .admin-submit { grid-column:1 / -1; }
  #barlineReferenceSummary {
    justify-self:start;
  }
  .barline-density-tool select,
  .barline-density-controls button {
    width:100%;
    min-width:0;
  }
  .barline-correction-preview > div {
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .barline-range-controls {
    align-items:stretch;
    flex-direction:column;
  }
  .barline-range-controls > div {
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .backing-timing-mode {
    grid-template-columns:1fr;
  }
  .barline-view-controls {
    grid-template-columns:44px minmax(0,1fr) 44px;
  }
  .barline-view-controls label {
    grid-template-columns:1fr 42px;
    font-size:0;
  }
  .barline-view-controls label input {
    grid-column:1;
  }
  .barline-view-controls label output {
    grid-column:2;
    font-size:10px;
  }
  .barline-view-controls button:last-child {
    grid-column:1/-1;
  }
  .barline-waveform-heading {
    align-items:flex-start;
    flex-direction:column;
    gap:3px;
  }
  .barline-waveform {
    height:150px;
  }
  .barline-marker span {
    top:6px;
    min-width:25px;
    padding:3px 5px;
  }
  .barline-sync-actions {
    flex-wrap:wrap;
  }
  .barline-sync-actions button {
    flex:1 1 120px;
  }
  .barline-selection .barline-nudge { flex-wrap:nowrap; }
  .barline-selection .barline-nudge button { flex:0 0 auto; }
  .audio-source-range-fields,.admin-backing-filters {
    grid-template-columns:1fr;
  }
  .admin-backing-migration {
    grid-template-columns:1fr;
  }
  .admin-migration-actions,
  .admin-migration-actions button {
    width:100%;
  }
}
.journey {
  order: 4;
  position: relative;
  margin: 0 0 22px;
  padding: 70px 24px 26px;
  border: var(--window-border);
  border-radius: 0;
  background: var(--white);
  box-shadow: 8px 10px 0 var(--yellow);
}
.journey::before {
  content: "GROOVE SELECTOR";
  background: var(--red);
  color: var(--white);
}
.journey::after {
  color: var(--yellow);
}
.section-heading {
  align-items: start;
}
.section-heading h2 {
  font: 900 34px/1 Impact, sans-serif;
  letter-spacing: .03em;
}
.journey-heading-tools {
  align-items: end;
}
.journey-heading-tools p {
  color: var(--ink);
  font-weight: 650;
}
.source-audit-link {
  color: var(--blue);
  font-weight: 850;
}
.atlas {
  border: 4px solid var(--ink);
  border-radius: 0;
  background: var(--blue);
  box-shadow: 6px 6px 0 var(--ink);
}
.atlas::before {
  opacity: .23;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Ccircle cx='2' cy='2' r='1.4' fill='white'/%3E%3C/svg%3E");
  background-size: 12px 12px;
}
.groove-card,.map-node.active {
  border-radius: 0;
}
.style-panel,.style-dossier {
  border: 4px solid var(--ink);
  border-radius: 0;
  background: var(--yellow);
  box-shadow: 5px 5px 0 var(--ink);
}
.style-panel h3 {
  font-family: Impact, sans-serif;
}
.map-node:hover strong {
  color: var(--yellow);
}
.learning-library {
  order: 6;
  position: relative;
  margin: 0 0 22px;
  padding: 70px 24px 26px;
  border: var(--window-border);
  background: var(--white);
  box-shadow: 10px 10px 0 var(--blue);
}
.learning-library::before {
  content: "LEARNING LIBRARY";
  background: var(--yellow);
}
.learning-library::after {
  color: var(--red);
}
.library-window-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 16px;
}
.window-kicker {
  display: block;
  margin: 0 0 7px;
  color: var(--red);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
}
.learning-library h2,.practice-window h2,.notes-window h2 {
  max-width: 650px;
  margin: 0;
  font: 900 clamp(28px, 3.7vw, 48px)/.95 Impact, sans-serif;
  letter-spacing: .035em;
}
.library-search {
  min-width: min(100%, 300px);
}
.library-search input {
  width: 100%;
  min-height: 48px;
  border: 3px solid var(--ink);
  background: var(--paper);
  padding: 9px 12px;
  color: var(--ink);
  font-weight: 700;
}
.library-search input::placeholder {
  color: #595247;
  opacity: 1;
}
.library-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 14px;
}
.library-filters button,.library-filters select {
  min-height: 34px;
  border: 3px solid var(--ink);
  background: var(--white);
  color: var(--ink);
  padding: 4px 10px;
  font-size: 12px;
  font-weight: 850;
}
.library-filters button:hover,.library-filters button.active {
  background: var(--red);
  color: var(--white);
}
.library-card-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.library-card {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 10px;
  min-height: 190px;
  padding: 14px;
  border: 3px solid var(--ink);
  background: var(--paper);
  box-shadow: 4px 5px 0 var(--ink);
}
.library-card:nth-child(2n) {
  background: var(--yellow);
}
.library-card:nth-child(3n) {
  background: var(--blue);
  color: var(--white);
}
.library-card small {
  font-size: 10px;
  font-weight: 900;
}
.library-card h3 {
  margin: 5px 0 8px;
  font: 900 23px/.95 Impact, sans-serif;
  letter-spacing: .035em;
}
.library-card p {
  margin: 0;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.5;
}
.library-index {
  font: 900 20px/1 Impact, sans-serif;
}
.bookmark-button {
  align-self: start;
  border: 2px solid var(--ink);
  background: var(--white);
  color: var(--ink);
  font-size: 21px;
  line-height: 1;
}
.bookmark-button:hover,.bookmark-button[aria-pressed="true"] {
  background: var(--red);
  color: var(--white);
}
.library-empty {
  margin: 16px 0 0;
  padding: 12px;
  border: 3px dashed var(--ink);
  font-weight: 750;
}
.practice-notes-grid {
  order: 7;
  display: grid;
  grid-template-columns: 1.4fr .85fr;
  gap: 18px;
  margin: 0 0 26px;
}
.practice-window,.notes-window {
  position: relative;
  overflow: hidden;
  border: var(--window-border);
  background: var(--white);
  box-shadow: var(--shadow);
}
.practice-window {
  background: var(--red);
  color: var(--white);
}
.notes-window {
  background: var(--yellow);
}
.mini-window-bar {
  position: relative;
  display: flex;
  align-items: center;
  gap: 5px;
  min-height: 42px;
  padding: 0 14px;
  border-bottom: 3px solid var(--ink);
  background: var(--paper);
  color: var(--ink);
}
.mini-window-bar span {
  width: 10px;
  height: 10px;
  border: 2px solid var(--ink);
  border-radius: 50%;
  background: var(--red);
}
.mini-window-bar span:nth-child(2) {
  background: var(--yellow);
}
.mini-window-bar span:nth-child(3) {
  background: var(--blue);
}
.mini-window-bar strong {
  margin-left: 8px;
  font: 900 14px/1 Impact, sans-serif;
  letter-spacing: .07em;
}
.practice-body,.notes-body {
  padding: 24px;
}
.practice-body .window-kicker {
  color: var(--yellow);
}
.practice-window h2 {
  color: var(--white);
}
.practice-window p,.notes-window p {
  max-width: 52ch;
  margin: 12px 0 0;
  font-weight: 700;
  line-height: 1.55;
}
.practice-meter {
  height: 18px;
  margin: 24px 0 14px;
  border: 3px solid var(--ink);
  background: var(--white);
}
.practice-meter span {
  display: block;
  height: 100%;
  background: var(--yellow);
}
.practice-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.practice-badge {
  border: 2px solid var(--ink);
  background: var(--blue);
  color: var(--white);
  padding: 5px 8px;
  font-size: 11px;
  font-weight: 900;
}
.notes-window a {
  display: inline-block;
  margin-top: 22px;
  border: 3px solid var(--ink);
  background: var(--white);
  color: var(--ink);
  padding: 9px 11px;
  font-weight: 900;
  text-decoration: none;
  box-shadow: 3px 3px 0 var(--ink);
}
.notes-window a:hover {
  background: var(--blue);
  color: var(--white);
}
.product-pillars {
  display: none;
}
.atlas-inner::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'%3E%3Cpath d='M0 .5H40M.5 0V40' stroke='%23fff' stroke-opacity='.42' stroke-width='1'/%3E%3C/svg%3E");
  background-size: 40px 40px;
}
footer {
  max-width: 1440px;
  margin: 0 auto 24px;
  padding: 14px 18px;
  border: 4px solid var(--ink);
  background: var(--ink);
  color: var(--white);
  font-weight: 750;
}
footer a {
  color: var(--yellow);
}
@media (prefers-reduced-motion: no-preference) {
  .arrangement,.journey,.backing-library,.learning-library,.practice-window,.notes-window {
    animation: window-arrive .42s cubic-bezier(.16,1,.3,1) both;
  }
  .library-card,.bar,.primary-link,.notes-window a {
    transition: transform .16s ease, background-color .16s ease, color .16s ease, box-shadow .16s ease;
  }
  .library-card:hover {
    transform: translate(-2px,-3px) rotate(-.4deg);
  }
}
@keyframes window-arrive {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
  }
}
@media (max-width: 980px) {
  .topbar {
    flex-wrap: wrap;
    gap: 12px;
  }
  .main-nav {
    order: 3;
    width: 100%;
    overflow-x: auto;
  }
  .library-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .hero {
    align-items: start;
  }
  .now-playing {
    min-width: 220px;
  }
}
@media (max-width: 700px) {
  .app-shell {
    padding: 10px 10px 36px;
  }
  .topbar {
    padding: 9px;
  }
  .topbar-actions {
    margin-left: auto;
  }
  .session-status {
    display: none;
  }
  .main-nav a {
    white-space: nowrap;
  }
  .hero {
    display: block;
    min-height: 0;
    margin: 16px 0;
    padding: 24px 18px 18px;
  }
  .hero::after {
    display: none;
  }
  .hero h1 {
    max-width: 420px;
    font-size: clamp(44px, 15vw, 62px);
  }
  .lede {
    font-size: 14px;
  }
  .now-playing {
    width: min(100%, 300px);
    margin: 22px 0 0;
  }
  .arrangement,.journey,.backing-library,.learning-library {
    padding: 62px 14px 18px;
  }
  .arrangement {
    box-shadow: 7px 8px 0 var(--red);
  }
  .arrangement-title,.section-heading,.library-window-head {
    display: block;
  }
  .arrangement-actions,.journey-heading-tools {
    margin-top: 12px;
    align-items: start;
  }
  .timeline {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap:4px;
  }
  .bar {
    height:68px;
    padding:6px;
  }
  .bar-chord {
    margin-top:6px;
    font-size:18px;
  }
  .bar-number,.bar-function {
    font-size:9px;
  }
  .mixer-table-head {
    display: none;
  }
  .mixer-channel {
    grid-template-columns: minmax(118px,1fr) 30px 30px minmax(80px,1fr);
  }
  .pan-slider {
    display: none;
  }
  .journey-layout {
    display: block;
  }
  .atlas {
    min-height: 300px;
  }
  .style-panel {
    min-height: 0;
    margin-top: 14px;
  }
  .library-search {
    display: block;
    margin-top: 16px;
  }
  .library-card-grid,.practice-notes-grid {
    grid-template-columns: 1fr;
  }
  .library-card {
    min-height: 150px;
  }
  .practice-notes-grid {
    gap: 14px;
  }
  .guitar-source-control {
    display: grid;
  }
  .guitar-source-control select {
    min-width: 0;
  }
  .drum-piece-grid {
    padding: 12px;
  }
}
