/* Shared lesson plan editor (Admin now, teachers later). Plain CSS, same palette as life-skills.css. */
.lp-form { --lp-ink:#1e293b; --lp-muted:#526177; --lp-line:#e2e8f0; --lp-blue:#2f72c4; color:var(--lp-ink); background:#fff; font-family:'Nunito',sans-serif; font-size:15px; line-height:1.5; }
.lp-form *, .lp-form *::before, .lp-form *::after { box-sizing:border-box; }
.lp-form :is(a,button,input,textarea,label):focus-visible { outline:3px solid #1d4ed8; outline-offset:2px; }
.lp-block { margin:0 0 20px; padding:20px; background:#fff; border:1px solid var(--lp-line); border-radius:12px; }
.lp-heading { margin:0 0 14px; font-size:20px; font-weight:900; color:var(--lp-ink); }
.lp-label { display:block; margin-bottom:4px; font-size:13px; font-weight:800; color:var(--lp-muted); }
.lp-input { width:100%; min-height:40px; padding:8px 12px; border:1px solid var(--lp-line); border-radius:8px; background:#fff; color:var(--lp-ink); font:inherit; }
.lp-input:focus { border-color:var(--lp-blue); }
.lp-input:disabled { background:#f8fafc; color:var(--lp-muted); }
textarea.lp-input { display:block; resize:none; overflow:hidden; line-height:1.5; }
.lp-info { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:14px; }
.lp-info .lp-wide { grid-column:1 / -1; }
.lp-field { display:block; }
.lp-row { display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end; margin-bottom:10px; }
.lp-grow { flex:1 1 240px; }
.lp-minutes { flex:0 0 110px; }
.lp-group, .lp-lines { margin-bottom:14px; }
.lp-line { margin-bottom:8px; }
.lp-line[data-level="1"] { margin-left:24px; }
.lp-line[data-level="2"] { margin-left:48px; }
.lp-line-row { display:flex; flex-wrap:wrap; gap:8px; align-items:flex-start; }
.lp-line-text { flex:1 1 240px; min-width:0; }
.lp-error { margin-top:6px; color:#b91c1c; font-weight:700; }
.lp-tools { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.lp-preview { margin:4px 0 0 2px; padding:6px 10px; border-radius:8px; background:#eaf5fa; color:var(--lp-ink); font-size:14px; }
.lp-btn { display:inline-flex; align-items:center; justify-content:center; min-width:40px; min-height:40px; padding:6px 12px; border:1px solid var(--lp-line); border-radius:8px; background:#fff; color:var(--lp-ink); font:800 14px/1.2 'Nunito',sans-serif; cursor:pointer; }
.lp-btn:hover:not(:disabled) { border-color:var(--lp-blue); color:var(--lp-blue); }
.lp-btn:disabled, .lp-btn.lp-disabled { opacity:.45; cursor:not-allowed; }
.lp-btn-bold { font-weight:900; }
.lp-btn-add { position:relative; border-style:dashed; color:var(--lp-blue); }
.lp-btn-danger:hover:not(:disabled) { border-color:#dc2626; color:#dc2626; }
.lp-activity { margin:0 0 18px; padding:16px; border:1px solid var(--lp-line); border-radius:12px; background:#f8fafc; }
.lp-step { margin:14px 0; padding:14px; border:1px solid var(--lp-line); border-radius:12px; background:#fff; }
.lp-columns { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.lp-images { margin-top:10px; }
.lp-image-list { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:8px; }
.lp-image { position:relative; margin:0; }
.lp-image img { display:block; max-width:140px; max-height:110px; border:1px solid var(--lp-line); border-radius:8px; }
.lp-image .lp-btn { position:absolute; top:4px; right:4px; background:#fff; }
.lp-file { position:absolute; width:1px; height:1px; opacity:0; overflow:hidden; }
.lp-total { margin:12px 0 0; font-weight:900; color:var(--lp-blue); }
.lp-flag { background:#fff7dd; border-color:#f6e3a8; }
.lp-activity.lp-flag, .lp-step.lp-flag, .lp-group.lp-flag { padding:12px; border:1px solid #f6e3a8; border-radius:12px; }
.lp-notice { margin-bottom:16px; padding:12px; border:1px solid #f6e3a8; border-radius:12px; background:#fff7dd; }
.lp-flag-note { display:flex; flex-wrap:wrap; gap:8px; align-items:center; justify-content:space-between; margin-bottom:8px; color:#8a5a00; font-weight:700; }
@media (max-width:720px) {
    .lp-columns { grid-template-columns:1fr; }
    .lp-block { padding:14px; }
    .lp-line-text { flex-basis:100%; }
}

/* Admin pages of the Giáo án module (list, import dialog, review page). */
.lp-admin { color:#1e293b; font-family:'Nunito',sans-serif; }
.lp-admin *, .lp-admin *::before, .lp-admin *::after { box-sizing:border-box; }
.lp-admin-header { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:16px; margin-bottom:16px; }
.lp-admin-header h1 { margin:0; font-size:26px; font-weight:900; }
.lp-admin-header p { margin:2px 0 0; color:#526177; }
.lp-admin .ant-alert { margin-bottom:12px; }
.lp-list-filters { display:grid; grid-template-columns:minmax(200px,2fr) repeat(3,minmax(140px,1fr)); gap:10px; margin-bottom:14px; }
.lp-list-filters .ant-select { width:100%; }
.lp-list-actions { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.lp-delete { display:inline-flex; flex-direction:column; align-items:flex-start; }
.lp-delete small { color:#526177; font-size:12px; }
.lp-import-field { display:block; margin-bottom:14px; }
.lp-import-field span { display:block; margin-bottom:4px; font-weight:800; color:#526177; }
.lp-import-files, .lp-import-results { margin:14px 0 0; padding:0; list-style:none; max-height:260px; overflow:auto; }
.lp-import-files li, .lp-import-results li { display:flex; flex-wrap:wrap; gap:4px 12px; align-items:center; justify-content:space-between; padding:6px 0; border-bottom:1px solid #e2e8f0; overflow-wrap:anywhere; }
.lp-import-results li { justify-content:flex-start; }
.lp-import-results li[data-ok="true"] strong::before { content:'✓ '; color:#15803d; }
.lp-import-results li[data-ok="false"] strong::before { content:'✗ '; color:#b91c1c; }
.lp-import-error { color:#b91c1c; }
.lp-import-problems { margin-top:12px; }
.lp-import-problems ul { margin:0; padding-left:18px; }
.lp-edit-bar { position:sticky; top:var(--lp-bar-top, 0px); z-index:5; display:flex; flex-wrap:wrap; gap:8px 12px; align-items:center; margin-bottom:12px; padding:10px 14px; background:#fff; border:1px solid #e2e8f0; border-radius:12px; }
.lp-edit-title { flex:1 1 200px; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:16px; }
.lp-edit-actions { display:flex; flex-wrap:wrap; gap:8px; margin-left:auto; }
.lp-unsaved { color:#b45309; font-weight:800; font-size:13px; }
.lp-edit .lp-source { display:none; }
@media (min-width:1200px) {
    .lp-split { display:grid; grid-template-columns:1fr 1fr; gap:16px; height:var(--lp-split-height, 70vh); }
    .lp-edit .lp-source, .lp-pane { display:block; min-height:0; height:100%; overflow:auto; border:1px solid #e2e8f0; border-radius:12px; background:#f8fafc; }
    .lp-source iframe { display:block; width:100%; height:100%; border:0; }
    .lp-pane { position:relative; padding:12px; }
}
@media (max-width:720px) {
    .lp-list-filters { grid-template-columns:1fr; }
    .lp-edit-actions { margin-left:0; width:100%; }
}
.lp-material { margin:0 0 12px; }
.lp-material-after { margin:0 0 12px; max-width:520px; }
.lp-hint { display:block; margin-top:4px; font-size:13px; color:var(--lp-muted); }
