/* Language Through Stories — Speaking frontend v1
 * Canonical Story Speaking presentation. Existing recording, persistence,
 * access and completion logic remains server-authoritative.
 */

.lts-speaking-tab-icon{width:17px;height:17px;vertical-align:-3px;margin-right:7px}
.lts-speaking-shell{--sp-blue:var(--lts-blue,#4352A6);--sp-ink:var(--lts-ink,#20344D);--sp-muted:var(--lts-ink-soft,#5F6B7A);--sp-paper:var(--lts-paper,#fff);--sp-line:var(--lts-parchment-deep,#E9E1D6);--sp-parchment:var(--lts-parchment,#F6F1E8);--sp-success:var(--lts-success,#4E7A5B);--sp-success-soft:#EEF6F0;--sp-error:#9E2B25;max-width:980px;margin:0 auto;padding:4px 0 28px;color:var(--sp-ink)}
.lts-speaking-shell,.lts-speaking-shell *{box-sizing:border-box}
.lts-speaking-shell button,.lts-speaking-shell a{font:inherit}
.lts-speaking-shell--story-v2{max-width:860px;margin:0 auto;padding:0}
.lts-speaking-message{min-height:20px;margin-top:12px;font-size:13px}.lts-speaking-message:empty{min-height:0;margin-top:0}.lts-speaking-message.is-error{color:var(--sp-error)}.lts-speaking-message.is-success{color:var(--sp-success);font-weight:700}

/* Legacy tab cards remain compatible, but now use the same quiet interaction language. */
.lts-speaking-goal{padding:16px 18px;border-radius:14px;background:#F2F4FC;border:1px solid #D9DEF2;margin-bottom:18px;font-weight:700;line-height:1.45}.lts-speaking-goal.is-complete{background:var(--sp-success-soft);border-color:#BFE2CB}.lts-speaking-goal small{display:block;font-weight:500;margin-top:3px}
.lts-speaking-cards{display:grid;gap:12px}.lts-speaking-card{background:var(--sp-paper);border:1px solid var(--sp-line);border-radius:16px;overflow:hidden}.lts-speaking-card-toggle{width:100%;min-height:66px;padding:14px 16px;border:0;background:var(--sp-paper);color:inherit;display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}.lts-speaking-card-toggle:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(32,52,77,.05)}
.lts-speaking-card-toggle:focus-visible,.lts-speaking-task-row:focus-visible,.lts-speaking-help-toggle:focus-visible,.lts-speaking-button:focus-visible,.lts-speaking-record-button:focus-visible,.lts-speaking-help-close:focus-visible{outline:3px solid var(--sp-blue);outline-offset:2px}
.lts-speaking-card-icon{width:24px;height:24px;flex:0 0 auto}.lts-speaking-card-copy{flex:1;min-width:0}.lts-speaking-card-copy strong{display:block;font-size:17px}.lts-speaking-card-copy span{display:block;font-size:13px;color:var(--sp-muted);margin-top:2px}.lts-speaking-chevron{width:20px;height:20px;transition:transform .18s ease}.lts-speaking-card.is-open .lts-speaking-chevron{transform:rotate(180deg)}
.lts-speaking-card-body{display:none;border-top:1px solid var(--sp-line);padding:4px 12px 10px}.lts-speaking-card.is-open .lts-speaking-card-body{display:block}.lts-speaking-task-row{width:100%;border:0;background:transparent;display:flex;align-items:center;gap:10px;padding:11px 4px;text-align:left;color:inherit;cursor:pointer;border-bottom:1px solid #EEE8DF}.lts-speaking-task-row:last-child{border-bottom:0}.lts-speaking-task-status{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#F0F1F3;color:var(--sp-muted);font-size:12px;font-weight:700;flex:0 0 auto}.lts-speaking-task-status.is-done{background:var(--sp-success-soft);color:var(--sp-success)}.lts-speaking-task-status svg{width:16px;height:16px}.lts-speaking-task-label{flex:1;min-width:0;font-weight:600}.lts-speaking-task-action{font-size:12px;color:var(--sp-muted)}.lts-speaking-task-action svg{width:18px;height:18px}

/* Canonical task detail */
.lts-speaking-task-view{display:none}.lts-speaking-task-view.is-active{display:block}.lts-speaking-shell--reference-v1 .lts-speaking-task-view{max-width:860px;margin:0 auto;padding:0}.lts-speaking-back{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--sp-blue);font-weight:700;padding:8px 0;cursor:pointer}.lts-speaking-back svg{width:18px;height:18px}
.lts-speaking-task-meta{margin:0 0 8px;color:var(--sp-muted);font-size:11px;line-height:1.35;letter-spacing:.06em;text-transform:uppercase;font-weight:800}.lts-speaking-prompt{margin:0;color:var(--sp-ink);font-size:30px;line-height:1.18;letter-spacing:-.03em;font-weight:700}.lts-speaking-english-toggle{display:inline-flex;align-items:center;min-height:40px;margin-top:8px;padding:0;border:0;background:transparent!important;color:var(--sp-blue)!important;font-weight:800;font-size:13px;cursor:pointer}.lts-speaking-english-toggle:hover,.lts-speaking-english-toggle:focus-visible,.lts-speaking-english-toggle:active{background:transparent!important;color:var(--sp-blue)!important}.lts-speaking-english{display:none;margin:0 0 14px;color:var(--sp-muted);font-size:14px;line-height:1.5}.lts-speaking-english.is-open{display:block}.lts-speaking-picture{margin:0 0 18px}.lts-speaking-picture img{display:block;width:100%;max-height:390px;aspect-ratio:16/9;object-fit:cover;border:1px solid var(--sp-line);border-radius:18px}

/* Support chips and closable support panel */
.lts-speaking-help-buttons{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 16px}.lts-speaking-help-toggle{min-height:40px;padding:0 13px;border:1px solid #CFD5E2;border-radius:999px;background:var(--sp-paper)!important;color:var(--sp-ink)!important;font-size:12px;font-weight:800;cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.lts-speaking-help-toggle:hover,.lts-speaking-help-toggle:focus-visible,.lts-speaking-help-toggle:active{background:var(--sp-paper)!important;color:var(--sp-ink)!important;border-color:var(--sp-blue);transform:translateY(-1px);box-shadow:0 6px 16px rgba(32,52,77,.05)}.lts-speaking-help-toggle[aria-expanded="true"]{border:2px solid var(--sp-blue);background:#F2F4FC!important;color:var(--sp-blue)!important}
.lts-speaking-help-panel{position:relative;display:none;margin:-4px 0 16px;padding:14px 44px 14px 16px;border:1px solid var(--sp-line);border-radius:14px;background:#F8F5EF;color:var(--sp-ink);font-size:13px;line-height:1.55}.lts-speaking-help-panel.is-open{display:block}.lts-speaking-help-panel p{margin:0}.lts-speaking-help-panel ul,.lts-speaking-help-panel ol{margin:0;padding-left:18px}.lts-speaking-help-panel li+li{margin-top:4px}.lts-speaking-help-close{position:absolute;top:8px;right:8px;display:flex;width:32px;height:32px;align-items:center;justify-content:center;padding:0;border:0;border-radius:50%;background:transparent!important;color:var(--sp-ink)!important;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}.lts-speaking-help-close:hover,.lts-speaking-help-close:focus-visible,.lts-speaking-help-close:active{background:transparent!important;color:var(--sp-ink)!important;transform:translateY(-1px) scale(1.02);box-shadow:0 5px 13px rgba(32,52,77,.07)}.lts-speaking-help-close svg{width:17px;height:17px}

/* Recorder */
.lts-speaking-recorder{margin-top:20px;padding:24px;border:1px solid var(--sp-line);border-radius:18px;background:var(--sp-paper);text-align:center}.lts-speaking-recorder-main{display:flex;flex-direction:column;align-items:center;text-align:center}.lts-speaking-record-button{display:flex;width:64px;height:64px;align-items:center;justify-content:center;border:0;border-radius:50%;background:var(--sp-blue)!important;color:#fff!important;box-shadow:0 8px 20px rgba(67,82,166,.18);cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}.lts-speaking-record-button:hover,.lts-speaking-record-button:focus-visible,.lts-speaking-record-button:active{background:var(--sp-blue)!important;color:#fff!important;transform:translateY(-1px) scale(1.015);box-shadow:0 11px 24px rgba(67,82,166,.2)}.lts-speaking-record-button svg{width:28px;height:28px}.lts-speaking-record-button.is-recording{background:#A83A35!important}.lts-speaking-timer{margin-top:9px;font-size:25px;font-weight:800;font-variant-numeric:tabular-nums}.lts-speaking-rec-note{margin-top:4px;color:var(--sp-muted);font-size:12px;line-height:1.45}.lts-speaking-privacy{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:13px;color:var(--sp-muted);font-size:11px}.lts-speaking-privacy svg{width:14px;height:14px}.lts-speaking-secondary-controls,.lts-speaking-preview-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;margin-top:12px}
.lts-speaking-button{min-height:44px;padding:9px 14px;border:1px solid #C8D0DA;border-radius:999px;background:#fff!important;color:var(--sp-ink)!important;font-weight:700;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}.lts-speaking-button:hover,.lts-speaking-button:focus-visible,.lts-speaking-button:active{background:#fff!important;color:var(--sp-ink)!important;transform:translateY(-1px) scale(1.008);box-shadow:0 8px 18px rgba(32,52,77,.08)}.lts-speaking-button.is-primary{border-color:var(--sp-blue);background:var(--sp-blue)!important;color:#fff!important}.lts-speaking-button.is-primary:hover,.lts-speaking-button.is-primary:focus-visible,.lts-speaking-button.is-primary:active{background:var(--sp-blue)!important;color:#fff!important}.lts-speaking-button.is-danger{border-color:transparent;background:transparent!important;color:var(--sp-error)!important}.lts-speaking-button.is-danger:hover,.lts-speaking-button.is-danger:focus-visible,.lts-speaking-button.is-danger:active{background:transparent!important;color:var(--sp-error)!important}.lts-speaking-button:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}

.lts-speaking-preview{display:none;margin-top:16px}.lts-speaking-preview.is-open{display:block}.lts-speaking-preview audio,.lts-speaking-recordings audio{width:100%;height:44px}.lts-speaking-recordings{margin-top:24px;padding-top:18px;border-top:1px solid var(--sp-line);text-align:left}.lts-speaking-recordings h4{margin:0 0 11px;font-size:15px;font-weight:800}.lts-speaking-recording{padding:12px 0;border-top:1px solid #F0ECE6}.lts-speaking-recording:first-of-type{border-top:0}.lts-speaking-recording-meta{margin-bottom:8px;color:var(--sp-muted);font-size:11px}.lts-speaking-recording-delete{display:inline-flex;min-height:36px;align-items:center;gap:6px;margin-top:6px;padding:0 4px;border:0;background:transparent!important;color:var(--sp-error)!important;font-size:11px;font-weight:800;cursor:pointer}.lts-speaking-recording-delete:hover,.lts-speaking-recording-delete:focus-visible,.lts-speaking-recording-delete:active{background:transparent!important;color:var(--sp-error)!important}.lts-speaking-recording-delete svg{width:14px;height:14px}.lts-speaking-recording-delete:disabled{opacity:.5;cursor:default}

.lts-speaking-saved-state{margin-top:16px;padding:18px;border:1px solid #BFE2CB;border-radius:16px;background:#F1FAF4;text-align:center}.lts-speaking-saved-state[hidden]{display:none}.lts-speaking-saved-state__check{display:grid;width:44px;height:44px;place-items:center;margin:0 auto 8px;border-radius:50%;background:#DDF2E4;color:var(--sp-success)}.lts-speaking-saved-state__check svg{width:24px;height:24px}.lts-speaking-saved-state h4{margin:0;font-size:20px}.lts-speaking-saved-state p{margin:6px 0 0;color:#486353}.lts-speaking-saved-state__actions{display:grid;gap:8px;margin-top:16px}.lts-speaking-saved-state__actions .lts-speaking-button{width:100%}

.lts-speaking-gate{padding:22px;border:1px solid var(--sp-line);border-radius:16px;background:var(--sp-paper);text-align:center}.lts-speaking-gate p{margin:0 0 14px}.lts-speaking-gate a{display:inline-flex;min-height:44px;align-items:center;justify-content:center;padding:0 18px;border-radius:999px;background:var(--sp-blue);color:#fff!important;text-decoration:none;font-weight:700}

/* Leave/delete modals: neutral close/action language, no yellow interaction. */
.lts-speaking-dialog-open{overflow:hidden}.lts-speaking-leave-dialog[hidden],.lts-speaking-delete-dialog[hidden]{display:none}.lts-speaking-leave-dialog,.lts-speaking-delete-dialog{position:fixed;inset:0;z-index:100001;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(20,32,48,.48)}.lts-speaking-leave-dialog__panel,.lts-speaking-delete-dialog__panel{width:min(460px,100%);padding:24px;border-radius:18px;background:#fff;color:var(--sp-ink);box-shadow:0 18px 60px rgba(20,32,48,.25)}.lts-speaking-leave-dialog__panel h3,.lts-speaking-delete-dialog__panel h3{margin:0 0 10px;font-size:24px;line-height:1.2}.lts-speaking-leave-dialog__panel p,.lts-speaking-delete-dialog__panel p{margin:0;color:var(--sp-muted);line-height:1.55}.lts-speaking-leave-dialog__actions,.lts-speaking-delete-dialog__actions{display:grid;gap:10px;margin-top:20px}.lts-speaking-leave-dialog__actions .lts-speaking-button,.lts-speaking-delete-dialog__actions .lts-speaking-button{width:100%}.lts-speaking-delete-dialog__actions{grid-template-columns:1fr 1fr}.lts-speaking-delete-dialog__actions .is-danger-solid{border-color:var(--sp-error);background:var(--sp-error)!important;color:#fff!important}.lts-speaking-delete-dialog__actions .is-danger-solid:hover,.lts-speaking-delete-dialog__actions .is-danger-solid:focus-visible,.lts-speaking-delete-dialog__actions .is-danger-solid:active{background:var(--sp-error)!important;color:#fff!important}

@media(min-width:640px){.lts-speaking-saved-state__actions{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:900px){.lts-speaking-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.lts-speaking-card.is-open{grid-column:auto}.lts-speaking-card-body{position:relative}.lts-speaking-task-view{max-width:760px;margin:0 auto}.lts-speaking-card-body{grid-column:1/-1}}
@media(max-width:640px){.lts-speaking-shell--reference-v1 .lts-speaking-task-view{max-width:none}.lts-speaking-task-meta{font-size:11px}.lts-speaking-prompt{font-size:25px}.lts-speaking-picture img{max-height:none;border-radius:14px}.lts-speaking-help-buttons{flex-wrap:nowrap;overflow-x:auto;padding-bottom:3px;scrollbar-width:none}.lts-speaking-help-buttons::-webkit-scrollbar{display:none}.lts-speaking-help-toggle{flex:0 0 auto}.lts-speaking-help-panel{font-size:13px;line-height:1.5}.lts-speaking-recorder{padding:20px 14px}.lts-speaking-record-button{width:60px;height:60px}.lts-speaking-recordings{margin-top:20px}.lts-speaking-leave-dialog,.lts-speaking-delete-dialog{padding:16px}.lts-speaking-leave-dialog__panel,.lts-speaking-delete-dialog__panel{padding:20px}.lts-speaking-leave-dialog__panel h3,.lts-speaking-delete-dialog__panel h3{font-size:21px}}
@media(prefers-reduced-motion:reduce){.lts-speaking-shell *{transition:none!important;scroll-behavior:auto!important}}

/* Core 0.15.155 — match the compact two-action practice confirmation.
   When there is an unsaved recording eligible for Save, the existing three-
   option recording safety dialog stays unchanged. */
.lts-speaking-leave-dialog:has([data-lts-speaking-leave-save][hidden]) .lts-speaking-leave-dialog__panel {
    width: min(364px, 100%);
    padding: 24px 22px 20px;
}
.lts-speaking-leave-dialog:has([data-lts-speaking-leave-save][hidden]) .lts-speaking-leave-dialog__panel h3 {
    font-size: 21px;
    line-height: 1.2;
    margin-bottom: 8px;
}
.lts-speaking-leave-dialog:has([data-lts-speaking-leave-save][hidden]) .lts-speaking-leave-dialog__panel p { font-size: 14px; }
.lts-speaking-leave-dialog__actions:has([data-lts-speaking-leave-save][hidden]) {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}
.lts-speaking-leave-dialog__actions:has([data-lts-speaking-leave-save][hidden]) .lts-speaking-button {
    min-width: 0;
    min-height: 42px;
    padding: 9px 8px;
    font-size: 14px;
    line-height: 1.25;
}
.lts-speaking-leave-dialog__actions:has([data-lts-speaking-leave-save][hidden]) [data-lts-speaking-leave-discard] {
    border-color: var(--sp-blue);
    color: var(--sp-blue) !important;
}
.lts-speaking-leave-dialog__actions:has([data-lts-speaking-leave-save][hidden]) [data-lts-speaking-leave-stay] {
    border-color: var(--sp-blue);
    background: var(--sp-blue) !important;
    color: #fff !important;
}
@media (max-width: 470px) {
    .lts-speaking-leave-dialog:has([data-lts-speaking-leave-save][hidden]) .lts-speaking-leave-dialog__panel { padding: 20px 18px 18px; }
    .lts-speaking-leave-dialog:has([data-lts-speaking-leave-save][hidden]) .lts-speaking-leave-dialog__panel h3 { font-size: 19px; }
    .lts-speaking-leave-dialog:has([data-lts-speaking-leave-save][hidden]) .lts-speaking-leave-dialog__panel p { font-size: 13px; }
    .lts-speaking-leave-dialog__actions:has([data-lts-speaking-leave-save][hidden]) .lts-speaking-button { font-size: 13px; min-height: 40px; }
}

/* v0.15.326 — Approved Speaking recorder UX. One instruction at a time,
   restrained microphone feedback and a saved player with an adjacent delete
   affordance. Limited to Story Speaking, not the admin proof or other flows. */
.lts-speaking-shell--story-v2 .lts-speaking-recorder {
    border-radius:24px;
    padding:25px clamp(14px,4vw,28px) 26px;
}
.lts-speaking-shell--story-v2 .lts-speaking-recorder-main {gap:0}
.lts-speaking-shell--story-v2 .lts-speaking-record-button {
    position:relative;
    isolation:isolate;
    width:90px;height:90px;
    margin:16px auto 0;
    border-radius:50%;
    background:var(--sp-blue)!important;
    color:#fff!important;
    box-shadow:0 10px 26px rgba(67,82,166,.18);
    transition:transform .16s ease,box-shadow .16s ease;
    -webkit-tap-highlight-color:transparent;
}
.lts-speaking-shell--story-v2 .lts-speaking-record-button svg {width:32px;height:32px}
@media(hover:hover) {
    .lts-speaking-shell--story-v2 .lts-speaking-record-button:hover {
        transform:translateY(-2px);
        box-shadow:0 13px 30px rgba(67,82,166,.24),0 0 0 6px rgba(67,82,166,.07);
    }
}
.lts-speaking-shell--story-v2 .lts-speaking-record-button:active {
    transform:scale(.95);
    box-shadow:0 3px 12px rgba(67,82,166,.22),0 0 0 8px rgba(67,82,166,.13);
}
.lts-speaking-shell--story-v2 .lts-speaking-record-button.is-recording {
    background:#A83A35!important;
    box-shadow:0 9px 24px rgba(168,58,53,.24);
}
.lts-speaking-shell--story-v2 .lts-speaking-record-button.is-recording::after {
    content:"";
    position:absolute;
    inset:-7px;
    border:2px solid rgba(168,58,53,.45);
    border-radius:50%;
    pointer-events:none;
    z-index:-1;
    animation:lts-speaking-record-ring 2.2s ease-out infinite;
}
@keyframes lts-speaking-record-ring {
    0% {transform:scale(.88);opacity:.6}
    75%,100% {transform:scale(1.16);opacity:0}
}
.lts-speaking-shell--story-v2 .lts-speaking-timer {
    margin-top:18px;
    color:var(--sp-ink);
    font-size:clamp(30px,5vw,40px);
    line-height:1.15;
    letter-spacing:-.03em;
}
.lts-speaking-shell--story-v2 .lts-speaking-rec-note {
    margin-top:9px;
    color:var(--sp-muted);
    font-size:14px;
    line-height:1.35;
}
.lts-speaking-shell--story-v2 .lts-speaking-privacy {
    margin-top:24px;
    font-size:12px;
}
.lts-speaking-shell--story-v2 .lts-speaking-preview {
    margin-top:2px;
    text-align:center;
}
.lts-speaking-shell--story-v2 .lts-speaking-recorder:has(.lts-speaking-preview.is-open) .lts-speaking-recorder-main,
.lts-speaking-shell--story-v2 .lts-speaking-recorder:has(.lts-speaking-preview.is-open) .lts-speaking-secondary-controls,
.lts-speaking-shell--story-v2 .lts-speaking-recorder:has(.lts-speaking-preview.is-open) .lts-speaking-privacy {
    display:none;
}
.lts-speaking-shell--story-v2 .lts-speaking-review-check {
    width:64px;height:64px;margin:7px auto 18px;
    display:grid;place-items:center;
    border-radius:50%;
    background:rgba(67,82,166,.07);
    border:1px solid rgba(67,82,166,.12);
    color:var(--sp-blue);
}
.lts-speaking-shell--story-v2 .lts-speaking-review-check svg {width:30px;height:30px}
.lts-speaking-shell--story-v2 .lts-speaking-review-heading {
    margin:0 0 5px;
    font-size:clamp(20px,4vw,24px);
    line-height:1.2;font-weight:800;color:var(--sp-ink);
}
.lts-speaking-shell--story-v2 .lts-speaking-review-help {
    margin:0 0 23px;color:var(--sp-muted);
    font-size:14px;line-height:1.4;
}
.lts-speaking-shell--story-v2 .lts-speaking-review-player,
.lts-speaking-shell--story-v2 .lts-speaking-recording {
    min-width:0;
    border:1px solid var(--sp-line);
    border-radius:19px;
    background:rgba(67,82,166,.035);
    padding:11px 12px;
}
.lts-speaking-shell--story-v2 .lts-speaking-review-player audio,
.lts-speaking-shell--story-v2 .lts-speaking-recording audio {
    display:block;min-width:0;width:100%;height:48px;
    border-radius:12px;
}
.lts-speaking-shell--story-v2 .lts-speaking-preview-actions {
    margin:22px auto 0;
    gap:10px;
}
.lts-speaking-shell--story-v2 .lts-speaking-preview-actions .lts-speaking-button {
    min-height:46px;padding:10px 22px;
}
.lts-speaking-shell--story-v2 .lts-speaking-preview-actions [data-lts-speaking-delete-local] {
    display:none;
}
.lts-speaking-shell--story-v2 .lts-speaking-recorder.has-saved-recordings .lts-speaking-recorder-main,
.lts-speaking-shell--story-v2 .lts-speaking-recorder.has-saved-recordings .lts-speaking-secondary-controls,
.lts-speaking-shell--story-v2 .lts-speaking-recorder.has-saved-recordings .lts-speaking-privacy,
.lts-speaking-shell--story-v2 .lts-speaking-recorder.has-saved-recordings .lts-speaking-preview,
.lts-speaking-shell--story-v2 .lts-speaking-recorder .lts-speaking-saved-state {
    display:none !important;
}
.lts-speaking-shell--story-v2 .lts-speaking-recordings {
    margin:0;padding:0;border:0;
}
.lts-speaking-shell--story-v2 .lts-speaking-recordings > h4,
.lts-speaking-shell--story-v2 .lts-speaking-recording-meta {display:none}
.lts-speaking-shell--story-v2 .lts-speaking-recording {
    display:grid;
    grid-template-columns:minmax(0,1fr) 44px;
    align-items:center;
    gap:8px;
    margin:0 0 10px;
    border:1px solid var(--sp-line);
    text-align:left;
}
.lts-speaking-shell--story-v2 .lts-speaking-recording:last-child {margin-bottom:0}
.lts-speaking-shell--story-v2 .lts-speaking-recording-delete {
    display:grid;place-items:center;
    width:44px;height:44px;min-height:44px;
    padding:0;margin:0;
    border:0;border-radius:50%;
    color:var(--sp-ink)!important;
    box-shadow:none;
    transition:background-color .16s ease,transform .16s ease,box-shadow .16s ease;
}
.lts-speaking-shell--story-v2 .lts-speaking-recording-delete svg {width:21px;height:21px}
.lts-speaking-shell--story-v2 .lts-speaking-recording-delete span {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(hover:hover) {
    .lts-speaking-shell--story-v2 .lts-speaking-recording-delete:hover {
        background:rgba(67,82,166,.08)!important;
        box-shadow:0 4px 12px rgba(32,52,77,.08);
    }
}
.lts-speaking-shell--story-v2 .lts-speaking-recording-delete:focus-visible {outline:2px solid var(--sp-blue);outline-offset:2px}
.lts-speaking-shell--story-v2 .lts-speaking-recording-delete:active {
    background:rgba(67,82,166,.12)!important;
    transform:scale(.94);
}
/* The established shared responsive modal system places this confirmation
   in a desktop center dialog or mobile bottom sheet. Keep the same two actions. */
.lts-speaking-delete-dialog__panel {position:relative}
.lts-speaking-delete-dialog__panel p:empty {display:none}
.lts-speaking-delete-dialog__panel h3 {padding-right:34px}
@media(max-width:700px) {
    .lts-speaking-shell--story-v2 .lts-speaking-recorder {padding:21px 14px 23px;border-radius:22px}
    .lts-speaking-shell--story-v2 .lts-speaking-review-player,
    .lts-speaking-shell--story-v2 .lts-speaking-recording {padding:9px 8px}
    .lts-speaking-delete-dialog__panel {padding-top:38px!important}
    .lts-speaking-delete-dialog__grabber {
        position:absolute;left:50%;top:12px;transform:translateX(-50%);
        width:44px;height:5px;border-radius:999px;
        background:#CACBD0;pointer-events:none;
    }
    .lts-speaking-delete-dialog:not([hidden]) .lts-speaking-delete-dialog__panel {
        animation:lts-speaking-delete-rise .28s cubic-bezier(.22,1,.36,1) both;
    }
}
@keyframes lts-speaking-delete-rise {from {translate:0 95%;opacity:.7}to {translate:0 0;opacity:1}}
html[data-lts-theme="dark"] .lts-speaking-shell--story-v2 :is(.lts-speaking-review-player,.lts-speaking-recording) {
    background:rgba(170,183,255,.055);border-color:var(--sp-line);
}
html[data-lts-theme="dark"] .lts-speaking-shell--story-v2 .lts-speaking-review-check {
    background:rgba(170,183,255,.11);color:#B7C5FF;
}
@media(prefers-reduced-motion:reduce) {
    .lts-speaking-shell--story-v2 .lts-speaking-record-button.is-recording::after,
    .lts-speaking-delete-dialog:not([hidden]) .lts-speaking-delete-dialog__panel {
        animation:none!important;
    }
}


/* Core 0.15.329 — Speaking Close confirmation: identical two-action layout
   on activity picker and task screens; keep existing responsive modal skin. */
.lts-speaking-leave-dialog__panel [data-lts-speaking-leave-body][hidden] { display: none !important; }
.lts-speaking-leave-dialog--close-only .lts-speaking-leave-dialog__panel {
    width: min(420px,100%);
    padding: 28px 24px 24px;
}
.lts-speaking-leave-dialog--close-only .lts-speaking-leave-dialog__panel h3 {
    padding-right: 34px;
    margin-bottom: 0;
    font-size: clamp(20px,3vw,24px);
}
.lts-speaking-leave-dialog--close-only .lts-speaking-leave-dialog__actions {
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 12px;
    margin-top: 24px;
}
.lts-speaking-leave-dialog--close-only .lts-speaking-leave-dialog__actions .lts-speaking-button {
    min-width: 0;
    min-height: 46px;
}
.lts-speaking-leave-dialog--close-only [data-lts-speaking-standalone-leave] {
    background: #fff !important;
    border-color: #4352A6;
    color: #20344D !important;
}
.lts-speaking-leave-dialog--close-only [data-lts-speaking-standalone-stay] {
    background: #4352A6 !important;
    color: #fff !important;
}
@media (max-width: 700px) {
    .lts-speaking-leave-dialog--close-only .lts-speaking-leave-dialog__panel {
        padding: 26px 23px max(30px,env(safe-area-inset-bottom));
    }
}
html[data-lts-theme="dark"] .lts-speaking-leave-dialog--close-only [data-lts-speaking-standalone-leave] {
    background: transparent !important;
    border-color: #aab9ea !important;
    color: #e5edff !important;
}


/* Core v0.15.329 — Speaking confirmation fixes. Keep action labels readable,
   delete confirmation single-question, and X click feedback consistent. */
.lts-speaking-delete-dialog__panel h3 { margin-bottom:0; }
.lts-speaking-leave-dialog__actions > .lts-speaking-button[hidden],
.lts-speaking-delete-dialog__actions > .lts-speaking-button[hidden] { display:none!important; }
.lts-speaking-leave-dialog.is-unsaved-take .lts-speaking-leave-dialog__actions {
    display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px;
}
.lts-speaking-leave-dialog.is-unsaved-take .lts-speaking-leave-dialog__actions [data-lts-speaking-leave-stay] {
    grid-column:1/-1;
}
.lts-speaking-leave-dialog .lts-speaking-leave-dialog__actions .lts-speaking-button,
.lts-speaking-delete-dialog .lts-speaking-delete-dialog__actions .lts-speaking-button {
    display:inline-flex; align-items:center; justify-content:center;
    min-width:0; min-height:46px; line-height:1.25; font-size:15px;
    padding:10px 12px; white-space:normal; overflow-wrap:break-word;
    color:#20344D!important; background:#fff!important; border:1px solid #c8d0da;
}
.lts-speaking-leave-dialog .lts-speaking-leave-dialog__actions .lts-speaking-button.is-primary {
    background:#4352A6!important; color:#fff!important; border-color:#4352A6!important;
}
.lts-speaking-delete-dialog .lts-speaking-delete-dialog__actions .lts-speaking-button.is-danger-solid {
    background:#9e2b25!important; color:#fff!important; border-color:#9e2b25!important;
}
body.lts-core-navigation-v1 :is(.lts-speaking-leave-dialog,.lts-speaking-delete-dialog) .lts-speaking-modal-close:is(:hover,:focus-visible):not(:active):not(.is-press-feedback) {
    background:transparent!important; background-color:transparent!important; box-shadow:none!important;
}
body.lts-core-navigation-v1 :is(.lts-speaking-leave-dialog,.lts-speaking-delete-dialog) .lts-speaking-modal-close:is(:active,.is-press-feedback) {
    background:rgba(67,82,166,.11)!important; box-shadow:0 5px 17px rgba(32,52,77,.14)!important;
    transform:scale(.95)!important;
}
@media(max-width:390px) {
    .lts-speaking-leave-dialog.is-unsaved-take .lts-speaking-leave-dialog__actions {grid-template-columns:1fr;}
    .lts-speaking-leave-dialog.is-unsaved-take .lts-speaking-leave-dialog__actions [data-lts-speaking-leave-stay] {grid-column:auto;}
}
html[data-lts-theme="dark"] .lts-speaking-leave-dialog .lts-speaking-leave-dialog__actions .lts-speaking-button:not(.is-primary),
html[data-lts-theme="dark"] .lts-speaking-delete-dialog .lts-speaking-delete-dialog__actions .lts-speaking-button:not(.is-danger-solid) {
    background:var(--lts-dark-raised,#20344D)!important;
    color:var(--lts-ink,#e5edff)!important;
    border-color:var(--lts-dark-line,#56647d)!important;
}
html[data-lts-theme="dark"] body.lts-core-navigation-v1 :is(.lts-speaking-leave-dialog,.lts-speaking-delete-dialog) .lts-speaking-modal-close:is(:active,.is-press-feedback) {
    background:rgba(191,203,255,.16)!important;box-shadow:0 5px 16px rgba(0,0,0,.28)!important;
}
@media(prefers-reduced-motion:reduce){
    body.lts-core-navigation-v1 :is(.lts-speaking-leave-dialog,.lts-speaking-delete-dialog) .lts-speaking-modal-close {transition:none!important;}
}


/* Core v0.15.329 — Unsaved Speaking confirmation has only Leave and Save.
   Hide the normal Stay action in this state without leaving a grid row behind. */
.lts-speaking-leave-dialog.is-unsaved-take .lts-speaking-leave-dialog__actions {
    grid-template-columns:repeat(2,minmax(0,1fr));
}
.lts-speaking-leave-dialog.is-unsaved-take .lts-speaking-leave-dialog__actions [data-lts-speaking-leave-stay] {
    display:none!important;
}
@media(max-width:390px) {
    .lts-speaking-leave-dialog.is-unsaved-take .lts-speaking-leave-dialog__actions {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}


/* Core 0.15.331 — consistent Question / Picture / Summary task controls.
   The shared recorder is used by all three task kinds. When a take is shorter
   than 15 seconds, Save remains visible but unusable rather than making the
   two-action confirmation unexpectedly lose a button. */
.lts-speaking-leave-dialog.is-unsaved-take .lts-speaking-leave-dialog__actions [data-lts-speaking-leave-save]:disabled {
    display:inline-flex!important;
    opacity:.48;
    cursor:not-allowed;
    transform:none!important;
    box-shadow:none!important;
}
/* Picture prompts show the same uncropped artwork as the Picture picker.
   Scoped to Story v2 Speaking; no changes to cards or admin proof views. */
.lts-speaking-shell--story-v2 .lts-speaking-task-view .lts-speaking-picture img {
    width:100%;
    height:auto;
    max-height:none;
    aspect-ratio:auto;
    object-fit:contain;
}
