/* Parents keep Glacier, with compact controls and one task at a time. */
.app:has(.parent) { align-self:start; }
.parent .parent-notice:empty,.parent #sound-settings-note:empty,.parent #new-note:empty { display:none; }
.parent-nav { display:flex; gap:4px; border-bottom:1px solid var(--outline-soft); }
.parent-nav-button { flex:1; min-height:48px; padding:10px 8px; border:0; border-bottom:3px solid transparent; background:none; color:var(--ink); font:inherit; font-size:17px; font-weight:650; cursor:pointer; border-radius:8px 8px 0 0; }
.parent-nav-button[aria-pressed=true] { border-bottom-color:var(--ink); background:var(--guide-bg); }
.parent-nav-button:focus-visible { outline:3px solid var(--focus); outline-offset:2px; }
.parent-section { display:grid; gap:16px; min-width:0; }
.parent-section[hidden] { display:none; }
.parent .current-heading { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.parent .current-list-name { margin:0 0 6px; color:var(--ink-muted); font-size:15px; }
.parent .edit-list li { display:grid; grid-template-columns:minmax(0,1fr) 48px 48px; align-items:start; gap:6px; }
.parent .edit-list .edit-field { width:100%; min-width:0; }
.parent .edit-list button { width:48px; height:48px; min-height:48px; padding:0; font-size:26px; }
.parent button[data-hear] svg,.parent button[data-hear-row] svg { display:block; width:22px; height:22px; margin:auto; }
.parent .edit-list { gap:8px; }
.parent .parent-save-bar { display:flex; flex-wrap:wrap; align-items:center; gap:8px; position:relative; z-index:2; padding:10px 0 4px; background:var(--guide-bg); }
.parent .parent-save-bar .btn { font-size:17px; padding-inline:14px; }
.parent .starter-words { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 12px; list-style:none; padding:0; margin:0; }
.parent .starter-words li { display:flex; align-items:center; justify-content:space-between; min-width:0; gap:6px; color:var(--ink); }
.parent .starter-words span { overflow-wrap:anywhere; }
.parent .starter-words button { flex:none; width:48px; padding:0; }
.parent .new-week[open] { display:block; }
.parent .new-week > label { display:block; margin:16px 0 6px; font-weight:650; }
.parent .new-week > .help { margin:8px 0 12px; }
.parent .new-week #list-name { width:100%; }
.parent .import-options { margin:10px 0; gap:2px; }
.parent .import-options details summary { font-size:14px; font-weight:500; }
.parent .sound-mode { font-weight:650; margin:4px 0 12px; }
.parent .card .help { line-height:1.5; }
.parent .card .field-error { line-height:1.35; }
.parent .parent-notice { margin:0; }
.parent #copy-starter,.parent #add-word { justify-self:start; }
@media(max-width:600px) {
 .parent { gap:12px; }
 .parent .card { padding:12px; }
 .parent .parent-heading .title { font-size:28px; }
 .parent .current-heading h3 { font-size:20px; }
 .parent .current-heading .btn { font-size:14px; padding-inline:12px; }
 .parent .starter-words { column-gap:10px; }
 .parent .edit-word { padding-inline:10px; }
}

.parent #current-week .parent-save-bar { position:sticky; top:max(8px,env(safe-area-inset-top)); }
.parent .edit-word { scroll-margin-top:90px; }
.parent button:disabled { opacity:.5; cursor:not-allowed; box-shadow:none; }

/* Native details content does not inherit the card's grid gap. Give its
   paragraphs, fields and actions explicit spacing instead. */
.parent details.card[open] > summary { margin-bottom:16px; }
.parent details.card[open] > h3 + .help { margin-top:8px; }
.parent details.card[open] > .help + .row,
.parent details.card[open] > .help + button,
.parent details.card[open] > .sound-settings-preview + .row { margin-top:16px; }
.parent details.card[open] > .help + .sound-settings { margin-top:16px; }
.parent details.card[open] > .help + .learning-words { margin-top:16px; }
.parent details.card[open] > .learning-words + .help { margin-top:16px; }
.parent details.card[open] > .row + .notice:not(:empty) { margin-top:12px; }
.parent details.card[open] > .row { gap:12px; }
.parent .sound-help { margin-top:20px; }
.parent .sound-help[open] > summary { margin-bottom:12px; }
.parent .new-week > label { margin-top:20px; margin-bottom:8px; }
.parent .new-week .import-options { margin-top:16px; margin-bottom:16px; gap:8px; }
.parent .new-week .parent-save-bar { padding-top:16px; gap:12px; }
.parent .new-week .preview:not(:empty) { margin-top:16px; }
.parent .new-week #new-note:not(:empty) { margin-top:12px; }
.parent #current-week { row-gap:12px; }
.parent #current-week .parent-save-bar { padding-bottom:8px; }
.parent #current-week > #copy-starter,
.parent #current-week > #add-word { margin-top:4px; }
.parent #sound-recorder { display:grid; gap:12px; }
.parent #sound-recorder > .help,
.parent #sound-recorder > .notice { margin:0; }
