.ec-studio-file-upload { display:grid; gap:16px; min-width:0; padding:20px; border:1px solid #c8dcdf; border-radius:12px; background:#f7fbfb; }
.ec-studio-file-upload [hidden], .ec-lesson-file [hidden] { display:none !important; }
.ec-studio-file-upload .ec-studio-field { min-width:0; }
.ec-studio-file-upload .ec-studio-field small, .ec-studio-file-upload .ec-studio-check small { display:block; margin-top:6px; color:#52616e; font-size:13px; line-height:1.5; font-weight:400; }
.ec-studio-file-upload input[type=file] { min-width:0; max-width:100%; padding:6px; background:#fff; font-size:14px; }
.ec-studio-file-upload input[type=file]::file-selector-button { min-height:40px; margin-right:10px; padding:8px 14px; border:1px solid #b9d8dc; border-radius:6px; color:#075e65; background:#edf8f8; font:inherit; cursor:pointer; }
.ec-studio-file-current, .ec-studio-file-status, .ec-studio-file-access { margin:0; font-size:13px; line-height:1.6; color:#435568; overflow-wrap:anywhere; }
.ec-studio-file-current { font-weight:600; }
.ec-studio-file-status:empty { display:none; }
.ec-studio-file-status { color:#076668; }
.ec-studio-file-access { padding-top:10px; border-top:1px solid #d9e6e8; }
.ec-studio-curriculum-row__actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px 14px; }
.ec-studio-curriculum-row__actions a { min-height:32px; display:inline-flex; align-items:center; }
.ec-lesson-file { --ec-file-border:#d4dfe6; --ec-file-ink:#163342; --ec-file-soft:#f5f8fa; width:100%; min-width:0; margin:24px 0; border:1px solid var(--ec-file-border); border-radius:12px; overflow:hidden; background:#fff; color:var(--ec-file-ink); text-align:left; box-sizing:border-box; }
.ec-lesson-file *, .ec-lesson-file *::before, .ec-lesson-file *::after { box-sizing:border-box; }
.ec-lesson-file__head { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:18px 20px; }
.ec-lesson-file__head>div { min-width:0; }
.ec-lesson-file__head h2 { margin:0 0 5px; font-size:clamp(16px,2vw,21px); line-height:1.35; overflow-wrap:anywhere; color:inherit; }
.ec-lesson-file__head p { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0; color:#526475; font-size:12px; line-height:1.5; }
.ec-lesson-file__head p span { border:1px solid #c8dce0; border-radius:20px; padding:2px 8px; color:#12676d; background:#eff8f8; }
.ec-lesson-file__link { flex:none; display:inline-flex; justify-content:center; align-items:center; min-height:44px; padding:10px 16px; border:1px solid #0c8589; border-radius:7px; background:#0c8589; color:#fff !important; text-decoration:none; font-size:14px; font-weight:700; }
.ec-lesson-file__link:hover { background:#07666d; }
.ec-lesson-file__notice { margin:0; padding:12px 20px; border-top:1px solid var(--ec-file-border); background:#eff8f8; color:#345a63; font-size:13px; line-height:1.6; }
.ec-lesson-file__toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:10px 14px; border-top:1px solid var(--ec-file-border); border-bottom:1px solid var(--ec-file-border); background:var(--ec-file-soft); }
.ec-lesson-file__toolbar button, .ec-lesson-file__toolbar select { min-height:42px; border:1px solid #c7d5df; border-radius:7px; padding:8px 12px; background:#fff; color:#184453; font:inherit; font-size:13px; cursor:pointer; }
.ec-lesson-file__toolbar button { display:inline-flex; align-items:center; justify-content:center; gap:5px; }
.ec-lesson-file__toolbar button>span[aria-hidden] { font-size:23px; line-height:1; }
.ec-lesson-file__toolbar button:hover:not(:disabled) { background:#e4f4f4; border-color:#128a8e; }
.ec-lesson-file__toolbar button:disabled { opacity:.43; cursor:default; }
.ec-lesson-file :focus-visible, .ec-studio-file-upload :focus-visible { outline:3px solid #55bbc9; outline-offset:3px; }
.ec-lesson-file__page-count { font-size:13px; min-width:90px; text-align:center; white-space:nowrap; }
.ec-lesson-file__zoom { display:flex; align-items:center; gap:7px; font-size:12px; margin-left:auto; }
.ec-lesson-file__toolbar .ec-lesson-file__fullscreen { margin-left:auto; }
.ec-lesson-file__zoom+.ec-lesson-file__fullscreen { margin-left:0; }
.ec-lesson-file__stage { width:100%; min-width:0; max-height:75svh; overflow:auto; overscroll-behavior:contain; background:#eaf0f4; }
.ec-lesson-file[data-preview-kind=pdf] .ec-lesson-file__stage { padding:12px; }
.ec-lesson-file__stage canvas { display:block; margin:0 auto; background:#fff; box-shadow:0 1px 8px #15334220; }
.ec-lesson-file__image { display:block; max-width:100%; max-height:70svh; object-fit:contain; margin:0 auto; }
.ec-lesson-file[data-preview-kind=video] .ec-lesson-file__stage, .ec-lesson-file[data-preview-kind=audio] .ec-lesson-file__stage, .ec-lesson-file[data-preview-kind=microsoft] .ec-lesson-file__stage { max-height:none; background:#fff; overflow:visible; }
.ec-lesson-file__media-layout { display:grid; gap:0; min-width:0; }
.ec-lesson-file__video { display:block; width:100%; min-width:0; max-height:70svh; aspect-ratio:16/9; background:#0d1721; }
.ec-lesson-file__media-layout audio { display:block; width:calc(100% - 32px); margin:20px 16px; min-width:0; }
.ec-lesson-file__transcript { min-width:0; margin:0; border-top:1px solid var(--ec-file-border); background:#f8fbfc; font-size:14px; }
.ec-lesson-file__transcript summary, .ec-lesson-file__page-text summary { padding:14px 18px; cursor:pointer; font-weight:700; color:#146570; }
.ec-lesson-file__transcript>div { padding:0 18px 18px; max-height:60svh; overflow:auto; line-height:1.75; white-space:pre-wrap; overflow-wrap:anywhere; }
.ec-lesson-file__media-layout.is-transcript-open { grid-template-columns:minmax(0,2fr) minmax(240px,1fr); align-items:start; }
.ec-lesson-file__media-layout.is-transcript-open .ec-lesson-file__transcript { height:100%; border-top:0; border-left:1px solid var(--ec-file-border); }
.ec-lesson-file__microsoft { display:block; width:100%; min-height:420px; height:min(65vw,680px); border:0; background:#f0f3f6; }
.ec-lesson-file__stage .ec-cookie-embed { min-width:0; }
.ec-lesson-file__document { padding:24px clamp(18px,4vw,48px); background:#fff; max-width:900px; margin:16px auto; line-height:1.8; }
.ec-lesson-file__document p { margin:0 0 1em; overflow-wrap:anywhere; white-space:pre-wrap; }
.ec-lesson-file__workbook { padding:12px; }
.ec-lesson-file__table-scroll { width:100%; overflow-x:auto; margin-bottom:18px; background:#fff; border:1px solid #cbd8e0; border-radius:6px; }
.ec-lesson-file__table-scroll table { width:100%; border-collapse:collapse; font-size:13px; line-height:1.5; }
.ec-lesson-file__table-scroll caption { padding:12px; background:#f1f7f8; text-align:left; color:#14616a; font-weight:700; }
.ec-lesson-file__table-scroll th, .ec-lesson-file__table-scroll td { min-width:100px; max-width:420px; padding:8px 12px; border:1px solid #dce5ea; white-space:pre-wrap; overflow-wrap:anywhere; vertical-align:top; }
.ec-lesson-file__table-scroll th { min-width:40px; width:40px; background:#f5f8fa; color:#607382; font-weight:400; text-align:center; }
.ec-lesson-file__text { margin:0; padding:20px; color:inherit; background:#fff; white-space:pre-wrap; overflow-wrap:anywhere; font:14px/1.7 ui-monospace,Consolas,monospace; }
.ec-lesson-file__slide { position:relative; container-type:inline-size; min-width:0; max-width:1200px; margin:0 auto; padding:5%; background:#fff; overflow:hidden; line-height:1.4; }
.ec-lesson-file__slide--positioned { padding:0; }
.ec-lesson-file__slide h3 { margin:0 0 1em; }
.ec-lesson-file__slide p { white-space:pre-wrap; }
.ec-lesson-file__slide>img { max-width:100%; max-height:45svh; object-fit:contain; }
.ec-lesson-file__slide .ec-lesson-file__slide-element { position:absolute; margin:0; overflow:hidden; white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.2; }
.ec-lesson-file__slide img.ec-lesson-file__slide-element { max-width:none; max-height:none; object-fit:contain; }
.ec-lesson-file__status { margin:0; padding:12px 18px; font-size:13px; line-height:1.6; color:#526475; border-top:1px solid var(--ec-file-border); overflow-wrap:anywhere; }
.ec-lesson-file__status:empty { display:none; }
.ec-lesson-file__status.is-error { color:#923525; background:#fff3ee; }
.ec-lesson-file__page-text { border-top:1px solid var(--ec-file-border); background:#fafcfd; font-size:14px; }
.ec-lesson-file__page-text>div { padding:0 18px 18px; max-height:35svh; overflow:auto; white-space:pre-wrap; line-height:1.7; overflow-wrap:anywhere; }
.ec-lesson-file__download-only { padding:24px 20px; background:#f8fbfc; }
.ec-lesson-file__download-only p { margin:0; font-size:14px; line-height:1.7; }
.ec-lesson-file--locked { padding:20px; background:#f5f9fb; }
.ec-lesson-file--locked h2 { font-size:19px; margin:0 0 8px; }
.ec-lesson-file--locked p { line-height:1.7; font-size:14px; margin:0 0 16px; }
.ec-lesson-file:fullscreen { width:100vw; height:100vh; margin:0; border:0; border-radius:0; overflow-y:auto; background:#fff; }
.ec-lesson-file:fullscreen .ec-lesson-file__stage { max-height:calc(100svh - 180px); }
.ec-reader.is-dark .ec-lesson-file { --ec-file-border:#526271; --ec-file-ink:#e6edf4; --ec-file-soft:#253743; background:#1c2e3b; }
.ec-reader.is-dark .ec-lesson-file__head p, .ec-reader.is-dark .ec-lesson-file__status { color:#c5d3df; }
.ec-reader.is-dark .ec-lesson-file__transcript, .ec-reader.is-dark .ec-lesson-file__page-text { background:#213642; }
.ec-reader.is-dark .ec-lesson-file__transcript summary, .ec-reader.is-dark .ec-lesson-file__page-text summary { color:#88dde0; }
.ec-reader.is-dark .ec-lesson-file__document, .ec-reader.is-dark .ec-lesson-file__text, .ec-reader.is-dark .ec-lesson-file__workbook { color:#163342; }
@media (max-width:720px) {
    .ec-studio-file-upload { padding:14px; gap:14px; }
    .ec-lesson-file { margin:18px 0; border-radius:9px; }
    .ec-lesson-file__head { padding:14px; align-items:flex-start; flex-wrap:wrap; gap:10px; }
    .ec-lesson-file__head h2 { font-size:17px; }
    .ec-lesson-file__link { min-height:42px; }
    .ec-lesson-file__toolbar { padding:8px; gap:6px; }
    .ec-lesson-file__toolbar button, .ec-lesson-file__toolbar select { min-height:44px; padding:8px 10px; }
    .ec-lesson-file__toolbar .ec-file-control-label { display:none; }
    .ec-lesson-file__page-count { min-width:78px; font-size:12px; }
    .ec-lesson-file__zoom { margin-left:0; }
    .ec-lesson-file__zoom>select { max-width:110px; }
    .ec-lesson-file__toolbar .ec-lesson-file__fullscreen { margin-left:auto; }
    .ec-lesson-file__stage { max-height:68svh; }
    .ec-lesson-file__media-layout.is-transcript-open { grid-template-columns:minmax(0,1fr); }
    .ec-lesson-file__media-layout.is-transcript-open .ec-lesson-file__transcript { border-top:1px solid var(--ec-file-border); border-left:0; }
    .ec-lesson-file__microsoft { min-height:300px; height:65svh; max-height:600px; }
    .ec-lesson-file__notice { padding:10px 14px; }
    .ec-lesson-file__document { margin:8px; padding:16px; font-size:15px; }
    .ec-lesson-file__slide:not(.ec-lesson-file__slide--positioned) { font-size:12px; }
}
