.ilc-standalone-lesson-player-page{background:#f4f7fb;margin:0}.ilc-standalone-lesson-player{min-height:100vh;padding:24px}.ilc-player-shell{--ilc-blue:#1f4e79;--ilc-blue-dark:#183c5d;--ilc-soft:#eaf2f8;--ilc-soft-2:#f6f9fc;--ilc-border:#d8e2ec;--ilc-text:#1f2937;--ilc-muted:#64748b;--ilc-success:#166534;--ilc-error:#991b1b;--ilc-warning:#92400e;--ilc-radius:18px;max-width:1440px;margin:24px auto;color:var(--ilc-text);font-family:Inter,Arial,sans-serif}.ilc-player-header{background:linear-gradient(135deg,#1f4e79,#2f6ea6);border-radius:var(--ilc-radius);padding:28px 32px;color:#fff;box-shadow:0 16px 40px rgba(15,23,42,.15)}.ilc-player-breadcrumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:18px;color:rgba(255,255,255,.82);font-size:14px}.ilc-player-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.ilc-player-title-row h1{margin:0;color:#fff;font-size:34px;line-height:1.12}.ilc-player-eyebrow{margin:0 0 8px;color:#cde6ff;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.ilc-player-meta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;min-width:220px}.ilc-player-meta span,.ilc-preview-sandbox-label{display:inline-flex;align-items:center;border-radius:999px;background:rgba(255,255,255,.14);padding:7px 10px;font-size:12px;font-weight:700}.ilc-player-layout{display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr);gap:20px;margin-top:20px}.ilc-player-left,.ilc-player-right{min-width:0}.ilc-player-left{display:flex;flex-direction:column;gap:16px}.ilc-player-right{display:flex;flex-direction:column;gap:16px}.ilc-panel{background:#fff;border:1px solid var(--ilc-border);border-radius:var(--ilc-radius);box-shadow:0 10px 28px rgba(15,23,42,.06);padding:22px}.ilc-panel h2{margin:0 0 14px;color:var(--ilc-blue);font-size:20px;line-height:1.25}.ilc-panel p{margin:0 0 12px}.ilc-theory-content{font-size:15px;line-height:1.65}.ilc-theory-note{border-radius:14px;padding:14px 16px;margin:14px 0;background:var(--ilc-soft);border-left:5px solid var(--ilc-blue)}.ilc-theory-warning{background:#fff7ed;border-left-color:#f59e0b}.ilc-theory-code{overflow:auto;background:#0f172a;color:#e5e7eb;border-radius:14px;padding:14px;font-size:13px}.ilc-success-condition{margin-top:14px;padding:12px 14px;border-radius:14px;background:var(--ilc-soft-2);border:1px solid var(--ilc-border);display:grid;gap:5px}.ilc-panel-heading-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.ilc-hints-list{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:10px}.ilc-hint-item{border:1px solid var(--ilc-border);border-radius:14px;padding:12px 14px;background:#fbfdff}.ilc-hint-item p{margin:6px 0 0}.ilc-hint-level{display:inline-flex;border-radius:999px;background:var(--ilc-soft);color:var(--ilc-blue);font-size:11px;font-weight:800;padding:4px 8px;text-transform:uppercase}.ilc-hint-empty{color:var(--ilc-muted);font-size:14px}.ilc-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.88fr);gap:16px;align-items:stretch}.ilc-editor-panel,.ilc-preview-panel{min-height:580px;display:flex;flex-direction:column}.ilc-editor-tabs{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.ilc-editor-tab{border:1px solid var(--ilc-border);border-radius:999px;background:#fff;color:var(--ilc-blue);padding:8px 13px;font-weight:800;cursor:pointer}.ilc-editor-tab.is-active{background:var(--ilc-blue);border-color:var(--ilc-blue);color:#fff}.ilc-editor-panels{flex:1;min-height:0}.ilc-editor-pane{display:block;height:100%}.ilc-editor-pane textarea{width:100%;height:100%;min-height:445px;border:1px solid var(--ilc-border);border-radius:14px;background:#0f172a;color:#e5e7eb;font:14px/1.55 Consolas,Monaco,monospace;padding:16px;box-sizing:border-box;resize:vertical;tab-size:4}.ilc-editor-status-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.ilc-editor-status{color:var(--ilc-muted);font-size:13px}.ilc-preview-panel iframe{width:100%;height:100%;min-height:500px;border:1px solid var(--ilc-border);border-radius:14px;background:#fff}.ilc-check-panel{display:grid;gap:14px}.ilc-check-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.ilc-primary-button,.ilc-secondary-button,.ilc-next-link{border:0;border-radius:12px;padding:11px 16px;font-weight:800;text-decoration:none;cursor:pointer;line-height:1.2;display:inline-flex;align-items:center;justify-content:center}.ilc-primary-button{background:var(--ilc-blue);color:#fff}.ilc-primary-button:hover{background:var(--ilc-blue-dark);color:#fff}.ilc-secondary-button{background:var(--ilc-soft);color:var(--ilc-blue)}.ilc-next-link{background:#16a34a;color:#fff!important}.ilc-next-link.is-disabled{background:#d1d5db;color:#64748b!important;pointer-events:none;cursor:not-allowed}.ilc-check-result{border-radius:14px;padding:14px 16px;border:1px solid var(--ilc-border);background:var(--ilc-soft-2)}.ilc-check-result p{margin:6px 0 0}.ilc-check-result.is-success{background:#ecfdf5;border-color:#bbf7d0;color:var(--ilc-success)}.ilc-check-result.is-error{background:#fef2f2;border-color:#fecaca;color:var(--ilc-error)}.ilc-check-result.is-idle{color:var(--ilc-muted)}.ilc-player-empty{max-width:760px;margin:28px auto;padding:22px;border:1px dashed var(--ilc-border,#d8e2ec);border-radius:16px;background:#fff;color:#64748b}.ilc-player-empty strong{display:block;color:#1f4e79;margin-bottom:8px}.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width:1100px){.ilc-player-layout,.ilc-workspace{grid-template-columns:1fr}.ilc-editor-panel,.ilc-preview-panel{min-height:auto}.ilc-preview-panel iframe{min-height:380px}.ilc-player-title-row{flex-direction:column}.ilc-player-meta{justify-content:flex-start}}@media (max-width:640px){.ilc-standalone-lesson-player{padding:10px}.ilc-player-shell{margin:10px auto}.ilc-player-header,.ilc-panel{padding:18px}.ilc-player-title-row h1{font-size:25px}.ilc-editor-pane textarea{min-height:320px}.ilc-check-actions{align-items:stretch}.ilc-primary-button,.ilc-secondary-button,.ilc-next-link{width:100%}}
.ilc-check-result.is-partial{background:#fffbeb;border-color:#fde68a;color:var(--ilc-warning)}
.ilc-validator-result-list{display:grid;gap:8px;margin:12px 0 0;padding:0;list-style:none}.ilc-validator-result-list li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;align-items:start;border-radius:12px;padding:10px 12px;background:#fff;border:1px solid var(--ilc-border)}.ilc-validator-result-list li.is-success{border-color:#bbf7d0;background:#f0fdf4}.ilc-validator-result-list li.is-error{border-color:#fecaca;background:#fff7f7}.ilc-validator-result-list li span{font-weight:900}.ilc-validator-result-list code{display:inline-flex;margin-bottom:4px;color:var(--ilc-blue);font-weight:800}.ilc-validator-result-list p{margin:0}.ilc-editor-tab.has-validation-error{border-color:#dc2626;color:#991b1b;background:#fef2f2}.ilc-editor-pane textarea.has-validation-error{border-color:#ef4444;box-shadow:0 0 0 3px rgba(239,68,68,.18)}.ilc-primary-button.is-loading,.ilc-primary-button:disabled{opacity:.72;cursor:wait}.ilc-check-result.is-error .ilc-validator-result-list code,.ilc-check-result.is-partial .ilc-validator-result-list code{color:#1f4e79}

.ilc-player-locked{max-width:720px;margin:48px auto;padding:28px;border:1px solid #fecaca;border-radius:18px;background:#fff7f7;color:#7f1d1d}.ilc-player-locked .ilc-primary-button{display:inline-flex;align-items:center;justify-content:center;margin-top:12px;padding:11px 15px;border-radius:12px;background:#2563eb;color:#fff;text-decoration:none;font-weight:700}.ilc-player-locked .ilc-primary-button:hover{background:#1d4ed8}

/* Iteration 6: email-gate */
.ilc-email-gate-shell {
    max-width: 920px;
    margin: 32px auto;
}

.ilc-email-gate-card {
    padding: 32px;
}

.ilc-email-gate-card h1 {
    margin-top: 0;
    max-width: 760px;
}

.ilc-email-gate-benefits {
    margin: 18px 0;
    padding-left: 22px;
}

.ilc-email-gate-benefits li {
    margin: 8px 0;
}

.ilc-email-gate-bonus-list {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 14px;
    padding: 16px 18px;
    margin: 18px 0;
}

.ilc-email-gate-bonus-list ol {
    margin: 8px 0 0 22px;
}

.ilc-email-gate-form {
    margin-top: 22px;
}

.ilc-email-gate-form-row {
    display: grid;
    grid-template-columns: minmax(220px, 1fr) auto;
    gap: 12px;
    align-items: stretch;
}

.ilc-email-gate-form input[type="email"] {
    min-height: 44px;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    padding: 10px 12px;
    font-size: 16px;
    width: 100%;
}

.ilc-email-gate-result {
    margin-top: 18px;
}

@media (max-width: 720px) {
    .ilc-email-gate-form-row {
        grid-template-columns: 1fr;
    }
}

.ilc-runner-console {
    min-height: 220px;
    margin: 0;
    padding: 14px 16px;
    border-radius: 12px;
    background: #0f172a;
    color: #e5e7eb;
    overflow: auto;
    white-space: pre-wrap;
    font: 13px/1.55 ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
}

.ilc-runner-console.is-success {
    border: 1px solid rgba(34, 197, 94, .45);
}

.ilc-runner-console.is-error {
    border: 1px solid rgba(239, 68, 68, .55);
}

.ilc-runner-console.is-partial {
    border: 1px solid rgba(245, 158, 11, .55);
}

.ilc-preview-panel.is-runner-lesson-preview iframe[hidden] {
    display: none;
}

/* v0.19.0 premium lesson polish + custom-code lessons */
.ilc-player-shell{--ilc-blue:#2563eb;--ilc-blue-dark:#1d4ed8;--ilc-soft:#eef4ff;--ilc-soft-2:#f8fafc;--ilc-border:#d9e2ef;--ilc-text:#172033;--ilc-muted:#637083;--ilc-card:#fff;--ilc-ring:rgba(37,99,235,.18);max-width:1360px}
.ilc-player-header{background:linear-gradient(135deg,#0f172a 0%,#1e3a8a 54%,#2563eb 100%);border:1px solid rgba(255,255,255,.16);box-shadow:0 24px 70px rgba(15,23,42,.20)}
.ilc-player-title-row h1{font-size:clamp(26px,3vw,38px);letter-spacing:-.035em;max-width:860px}.ilc-player-meta span{backdrop-filter:blur(8px)}
.ilc-panel{border-color:rgba(148,163,184,.28);box-shadow:0 18px 48px rgba(15,23,42,.075)}
.ilc-primary-button,.ilc-secondary-button,.ilc-next-link,.ilc-editor-tab{transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease,color .16s ease}
.ilc-primary-button:hover,.ilc-secondary-button:hover,.ilc-next-link:not(.is-disabled):hover,.ilc-editor-tab:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(15,23,42,.12)}
.ilc-primary-button:focus-visible,.ilc-secondary-button:focus-visible,.ilc-next-link:focus-visible,.ilc-editor-tab:focus-visible,.ilc-editor-pane textarea:focus,.ilc-gap-slot input:focus,.ilc-choice-answer input:focus-visible{outline:3px solid var(--ilc-ring);outline-offset:2px}
.ilc-check-result{box-shadow:inset 0 1px 0 rgba(255,255,255,.72)}
.ilc-custom-code-layout{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:20px;margin-top:20px;align-items:start}.ilc-custom-code-panel{padding:0;overflow:hidden;background:transparent;border:0;box-shadow:none}.ilc-custom-code-panel>*:first-child{margin-top:0}.ilc-custom-code-panel>*:last-child{margin-bottom:0}.ilc-custom-code-panel:empty{display:none}.ilc-custom-code-panel .ilc-panel,.ilc-custom-code-panel article,.ilc-custom-code-panel section{max-width:100%}.ilc-custom-code-panel img,.ilc-custom-code-panel svg,.ilc-custom-code-panel video,.ilc-custom-code-panel iframe{max-width:100%;height:auto}.ilc-custom-code-panel iframe{border:0}.ilc-custom-code-panel button,.ilc-custom-code-panel a{transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease}.ilc-custom-code-panel button:hover,.ilc-custom-code-panel a:hover{transform:translateY(-1px)}.is-custom-code-lesson .ilc-player-header{margin-bottom:0}.is-custom-code-lesson .ilc-custom-code-theory,.is-custom-code-lesson .ilc-custom-code-practice{min-width:0}.is-custom-code-lesson .ilc-custom-code-panel{word-break:normal;overflow-wrap:anywhere}
@media (max-width:1100px){.ilc-custom-code-layout{grid-template-columns:1fr}}
@media (max-width:640px){.ilc-player-title-row h1{font-size:24px}.ilc-custom-code-layout{gap:14px;margin-top:14px}.ilc-custom-code-panel{border-radius:16px}}

/* Lesson video player */
.ilc-lesson-video {
    width: 100%;
    min-width: 0;
    margin: 0 0 22px;
}

.ilc-custom-code-layout > .ilc-lesson-video {
    grid-column: 1 / -1;
}

.ilc-player-right > .ilc-lesson-video {
    margin-bottom: 18px;
}

.ilc-lesson-video__card {
    border: 1px solid rgba(148, 163, 184, 0.28);
    border-radius: 24px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(248, 250, 252, 0.98));
    box-shadow: 0 24px 70px rgba(15, 23, 42, 0.10);
    padding: 18px;
    overflow: hidden;
}

.ilc-lesson-video__meta {
    margin: 0 0 14px;
}

.ilc-lesson-video__title {
    margin: 0 0 6px;
    font-size: clamp(20px, 2vw, 28px);
    line-height: 1.18;
    letter-spacing: -0.02em;
    color: #0f172a;
}

.ilc-lesson-video__description {
    margin: 0;
    color: #475569;
    font-size: 15px;
    line-height: 1.65;
}

.ilc-lesson-video__description p {
    margin: 0;
}

.ilc-lesson-video__frame {
    position: relative;
    width: 100%;
    border-radius: 20px;
    background: radial-gradient(circle at 50% 10%, #1e293b, #020617 76%);
    overflow: hidden;
    border: 1px solid rgba(15, 23, 42, 0.86);
}

.ilc-lesson-video__player {
    display: block;
    width: 100%;
    max-width: 100%;
    aspect-ratio: 16 / 9;
    background: #020617;
    color: #fff;
    border: 0;
    outline: none;
}

.ilc-lesson-video__watermark {
    position: absolute;
    z-index: 3;
    max-width: min(70%, 360px);
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.38);
    color: rgba(255, 255, 255, 0.88);
    border: 1px solid rgba(255, 255, 255, 0.16);
    font-size: 12px;
    line-height: 1.2;
    letter-spacing: 0.01em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    pointer-events: none;
    user-select: none;
    opacity: var(--ilc-video-watermark-opacity, 0.35);
    backdrop-filter: blur(8px);
    transition: top .45s ease, right .45s ease, bottom .45s ease, left .45s ease, transform .45s ease;
}

.ilc-lesson-video__watermark--top-right { top: 18px; right: 18px; }
.ilc-lesson-video__watermark--top-left { top: 18px; left: 18px; }
.ilc-lesson-video__watermark--bottom-right { right: 18px; bottom: 58px; }
.ilc-lesson-video__watermark--bottom-left { left: 18px; bottom: 58px; }
.ilc-lesson-video__watermark--floating { top: 18px; right: 18px; }

.ilc-lesson-video__blocked {
    border: 1px solid rgba(226, 232, 240, 0.95);
    border-radius: 18px;
    padding: 22px;
    background: #f8fafc;
    color: #334155;
}

.ilc-lesson-video__blocked strong {
    display: block;
    margin-bottom: 8px;
    color: #0f172a;
    font-size: 17px;
}

.ilc-lesson-video__blocked p {
    margin: 0 0 14px;
}

.ilc-lesson-video__blocked-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.ilc-lesson-video__admin-note {
    margin: 12px 4px 0;
    color: #92400e;
    background: #fffbeb;
    border-left: 4px solid #f59e0b;
    padding: 10px 12px;
    border-radius: 12px;
    font-size: 13px;
}

@media (max-width: 760px) {
    .ilc-lesson-video__card {
        padding: 12px;
        border-radius: 18px;
    }

    .ilc-lesson-video__frame {
        border-radius: 16px;
    }

    .ilc-lesson-video__watermark {
        max-width: 78%;
        font-size: 10px;
        padding: 5px 8px;
    }

    .ilc-lesson-video__watermark--top-right { top: 10px; right: 10px; }
    .ilc-lesson-video__watermark--top-left { top: 10px; left: 10px; }
    .ilc-lesson-video__watermark--bottom-right { right: 10px; bottom: 46px; }
    .ilc-lesson-video__watermark--bottom-left { left: 10px; bottom: 46px; }
}

/* Iteration 23: multi-practice stack and lesson downloads */
.ilc-practice-stack,
.ilc-lesson-downloads {
    display: grid;
    gap: 18px;
}

.ilc-practice-stack__header,
.ilc-lesson-downloads__header {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: flex-start;
}

.ilc-practice-stack__progress {
    min-width: 150px;
    padding: 12px 14px;
    border-radius: 16px;
    border: 1px solid rgba(99, 102, 241, .16);
    background: rgba(99, 102, 241, .07);
    text-align: right;
}

.ilc-practice-stack__progress strong {
    display: block;
    font-size: 20px;
    line-height: 1.15;
}

.ilc-practice-stack__progress span {
    display: block;
    margin-top: 4px;
    color: var(--ilc-muted, #64748b);
    font-size: 12px;
}

.ilc-practice-block {
    display: grid;
    gap: 12px;
    border-radius: 22px;
    border: 1px solid rgba(15, 23, 42, .08);
    background: rgba(255, 255, 255, .88);
    box-shadow: 0 18px 45px rgba(15, 23, 42, .07);
    padding: 0;
    overflow: hidden;
}

.ilc-practice-block > .ilc-simple-lesson,
.ilc-practice-block > .ilc-panel,
.ilc-practice-block__custom {
    margin: 0;
}

.ilc-practice-block__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 16px 18px 0;
}

.ilc-practice-block__meta span {
    display: inline-flex;
    align-items: center;
    min-height: 26px;
    border-radius: 999px;
    padding: 4px 10px;
    background: rgba(15, 23, 42, .05);
    color: #475569;
    font-size: 12px;
    font-weight: 700;
}

.ilc-practice-block--completed {
    border-color: rgba(16, 185, 129, .34);
    box-shadow: 0 18px 45px rgba(16, 185, 129, .12);
}

.ilc-practice-block--completed .ilc-practice-block__meta span:first-child::after {
    content: '✓';
    margin-left: 6px;
}

.ilc-practice-block--error {
    border-color: rgba(239, 68, 68, .32);
}

.ilc-practice-block--optional .ilc-practice-block__meta span:last-child {
    background: rgba(100, 116, 139, .08);
    color: #64748b;
}

.ilc-practice-block__head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
}

.ilc-practice-block__title {
    margin: 0 0 8px;
    font-size: 20px;
}

.ilc-practice-block__description {
    color: var(--ilc-muted, #64748b);
}

.ilc-practice-block__body {
    min-width: 0;
}

.ilc-practice-block__result {
    margin-top: 14px;
}

.ilc-practice-stack__actions {
    margin-top: 0;
}

.ilc-lesson-downloads {
    margin-top: 18px;
    padding: 20px;
    border-radius: 24px;
    border: 1px solid rgba(15, 23, 42, .08);
    background: linear-gradient(180deg, rgba(248, 250, 252, .96), rgba(255, 255, 255, .96));
}

.ilc-lesson-downloads__grid {
    display: grid;
    gap: 14px;
}

.ilc-lesson-download {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 16px;
    border-radius: 18px;
    border: 1px solid rgba(15, 23, 42, .08);
    background: #fff;
}

.ilc-lesson-download--locked {
    background: rgba(248, 250, 252, .88);
    color: #64748b;
}

.ilc-lesson-download--unlocked {
    border-color: rgba(16, 185, 129, .28);
}

.ilc-lesson-download__title {
    margin: 0 0 6px;
    font-size: 17px;
}

.ilc-lesson-download__description {
    color: var(--ilc-muted, #64748b);
}

.ilc-lesson-download__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.ilc-lesson-download__meta span {
    border-radius: 999px;
    padding: 4px 9px;
    background: rgba(15, 23, 42, .05);
    font-size: 12px;
    font-weight: 700;
}

.ilc-lesson-download__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    border-radius: 999px;
    padding: 8px 16px;
    background: #0f172a;
    color: #fff;
    text-decoration: none;
    border: 0;
    cursor: pointer;
    white-space: nowrap;
    font-weight: 800;
}

.ilc-lesson-download__button:hover,
.ilc-lesson-download__button:focus {
    color: #fff;
    transform: translateY(-1px);
}

.ilc-lesson-download__button.is-disabled,
.ilc-lesson-download__button:disabled {
    opacity: .45;
    cursor: not-allowed;
    transform: none;
}

.ilc-lesson-download__lock-message {
    margin: 8px 0 0;
    font-size: 12px;
    color: #64748b;
    text-align: right;
}

@media (max-width: 782px) {
    .ilc-practice-stack__header,
    .ilc-lesson-download,
    .ilc-lesson-downloads__header {
        display: grid;
    }
    .ilc-practice-stack__progress {
        text-align: left;
        width: 100%;
    }
    .ilc-lesson-download__button {
        width: 100%;
    }
    .ilc-lesson-download__lock-message {
        text-align: left;
    }
}
