.ls-result { display: none; margin-top: 20px; }
.ls-inline { margin: 0 !important; white-space: nowrap; }
#ls-target, #ls-title, #lp-name, #lp-open { background: var(--c-0f1117); color: var(--c-e2e8f0); border: 1.5px solid var(--c-2d3548); border-radius: 8px;
                         padding: 9px 12px; font-size: .9rem; font-family: inherit; outline: none; }
#ls-title { flex: 1; min-width: 140px; }
.ls-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.ls-stat { background: var(--c-1e2330); border: 1px solid var(--c-2d3548); border-radius: 10px; padding: 12px 14px; }
.ls-stat span { font-size: .75rem; color: var(--c-94a3b8); }
.ls-stat b { display: block; font-size: 1.5rem; color: var(--c-f8fafc); margin-top: 4px; }
.ls-stat small { display: block; font-size: .72rem; color: var(--c-64748b); margin-top: 2px; }
.ls-stat.good b { color: var(--c-4ade80); }
.ls-stat.warn b { color: var(--c-fbbf24); }
.ls-stat.bad b { color: var(--c-f87171); }
.ls-after { margin-top: 10px; font-size: .85rem; color: var(--c-4ade80); }
.ls-bars { margin: 16px 0 18px; display: grid; gap: 6px; }
.ls-bar { display: grid; grid-template-columns: 84px 1fr 130px; gap: 10px; align-items: center; font-size: .8rem; color: var(--c-94a3b8); }
.ls-bar > span:first-child { white-space: nowrap; }
.ls-bar .track { background: var(--c-0f1117); border-radius: 4px; height: 12px; overflow: hidden; }
.ls-bar .fill { height: 100%; border-radius: 4px; }
.ls-bar.over > span:first-child { color: var(--c-fbbf24); font-weight: 600; }
.fill.b-基礎 { background: var(--c-4ade80); }
.fill.b-進階 { background: var(--c-60a5fa); }
.fill.b-精熟 { background: var(--c-f472b6); }
.fill.b-none { background: var(--c-64748b); }
.ls-marked { margin-top: 8px; line-height: 2.1; font-size: 1.02rem; background: var(--c-0f1117); border: 1px solid var(--c-2d3548);
              border-radius: 8px; padding: 12px 16px; max-height: 420px; overflow-y: auto; white-space: pre-wrap; }
.ls-over { background: var(--c-3a2a10); color: var(--c-fbbf24); border-radius: 4px; padding: 1px 3px; }
.ls-none { border-bottom: 2px dotted var(--c-f87171); }
.lv-tag.lv-rare { background: var(--c-1e2330); color: var(--c-94a3b8); border: 1px solid var(--c-475569); }
.lc-sum { font-size: .88rem; color: var(--c-cbd5e1); margin-top: 4px; }
.lc-sum b.good { color: var(--c-4ade80); } .lc-sum b.warn { color: var(--c-fbbf24); } .lc-sum b.bad { color: var(--c-f87171); }
.ls-table td.lc-char { font-size: 1.35rem; }
.lc-multi { margin-left: 6px; font-size: .68rem; color: var(--c-fbbf24); border: 1px solid var(--c-a16207); border-radius: 4px; padding: 0 4px; }
.ls-table td.lc-ctx { color: var(--c-94a3b8); font-size: .85rem; }
#lc-title { flex: 1; min-width: 140px; background: var(--c-0f1117); color: var(--c-e2e8f0); border: 1.5px solid var(--c-2d3548); border-radius: 8px;
            padding: 9px 12px; font-size: .9rem; font-family: inherit; outline: none; }
.proper-tag { display: block; width: fit-content; margin-top: 4px; font-size: .68rem; font-weight: 400; color: var(--c-94a3b8);
              border: 1px solid var(--c-475569); border-radius: 4px; padding: 0 5px; }
.ls-focus { outline: 2px solid var(--c-7dd3fc); outline-offset: 1px; border-radius: 4px; }
.ls-table tr.ls-focus-row td { background: var(--c-1e3a5f); }
.ls-marked mark { background: var(--c-1a3a2a); color: var(--c-4ade80); border-radius: 4px; padding: 1px 3px; }
.ls-words-wrap { overflow-x: auto; max-height: 520px; overflow-y: auto; margin-top: 10px; }
.ls-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.ls-table th, .ls-table td { border-bottom: 1px solid var(--c-2d3548); padding: 8px 6px; text-align: left; vertical-align: middle; }
.ls-table th { color: var(--c-7dd3fc); font-weight: 600; font-size: .8rem; position: sticky; top: 0; background: var(--c-161b26); }
.ls-table td.word { font-weight: 600; color: var(--c-f1f5f9); white-space: nowrap; }
.ls-table .rw-syn { padding: 3px 8px; font-size: .85rem; margin: 2px; }
.ls-table .ls-still { opacity: .55; }
.ls-table tr.ls-ign td { opacity: .4; }
.ls-table .ls-ign-btn { font-size: .75rem; padding: 4px 8px; white-space: nowrap; }
.ls-table td.an-anto .rw-syn { border-color: var(--c-9d174d); }
.ve-opt { display: flex !important; align-items: center; gap: 6px; font-size: .85rem; color: var(--c-cbd5e1); cursor: pointer; }
.ve-word { border: 1px solid var(--c-2d3548); border-radius: 10px; padding: 12px 14px; margin-top: 12px; background: var(--c-161b26); }
.ve-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ve-head b { font-size: 1.25rem; color: var(--c-f8fafc); }
.ve-read { color: var(--c-94a3b8); font-size: .85rem; white-space: pre-line; }
.ve-en { color: var(--c-7dd3fc); font-size: .85rem; }
.ve-head .ve-del { margin-left: auto; font-size: .75rem; padding: 4px 10px; }
.ve-ctx { margin-top: 8px; font-size: .85rem; color: var(--c-94a3b8); }
.ve-ctx b { color: var(--c-fbbf24); }
.ve-src { margin-top: 10px; font-size: .72rem; color: var(--c-64748b); letter-spacing: .08em; }
.ve-sense { display: flex; align-items: flex-start; gap: 8px; margin-top: 6px; font-size: .92rem; }
.ve-sense input { margin-top: 5px; }
.ve-sense.off .ve-def { color: var(--c-64748b); }
.ve-def, .ve-ex-edit { flex: 1; outline: none; border-radius: 5px; padding: 1px 4px; }
.ve-def:focus, .ve-ex-edit:focus { background: var(--c-0f1117); box-shadow: 0 0 0 1px var(--c-2563eb); }
.ve-senses details { margin-top: 8px; }
.ve-senses summary { cursor: pointer; font-size: .8rem; color: var(--c-7dd3fc); }
.ve-add { margin-top: 8px; font-size: .75rem; padding: 3px 10px; }
.ve-exs { margin-top: 12px; border-top: 1px dashed var(--c-2d3548); padding-top: 10px; font-size: .85rem; }
.ve-exs .ve-opt-row { display: flex; gap: 6px; align-items: flex-start; margin-top: 4px; color: var(--c-cbd5e1); cursor: pointer; }
.ve-exs .ve-opt-row input { margin-top: 4px; }
.ve-kind { font-size: .7rem; color: var(--c-64748b); border: 1px solid var(--c-2d3548); border-radius: 4px; padding: 0 5px; white-space: nowrap; }
.ve-ex-edit { display: block; margin-top: 8px; background: var(--c-0f1117); border: 1px solid var(--c-2d3548); padding: 8px 10px; color: var(--c-e2e8f0); min-height: 1.6em; }

/* 一課一專案 */
.lp-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:12px 16px;}
.lp-bar #lp-name{flex:1 1 200px;min-width:160px;}
.lp-bar #lp-open{flex:0 1 240px;max-width:100%;}
.lp-bar #lp-status{flex-basis:100%;margin-top:0;}
/* 生詞表：近義／反義詞（可直接改） */
.ve-rel { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin-top: 8px; font-size: .85rem; }
.ve-rel-edit { min-width: 6em; padding: 2px 8px; border: 1px dashed var(--c-2d3548); border-radius: 6px; color: var(--c-e2e8f0); outline: none; }
.ve-rel-edit:focus { border-color: var(--c-4f8ef7); }
.ve-rel-edit:empty::before { content: "—"; color: var(--c-475569); }

/* 備課結果的分類：點標題展開／收合（課文分析預設展開） */
.lp-group { margin-top: 16px; border: 1px solid var(--c-2d3548); border-radius: 12px; background: var(--c-131722);
             width: 100%; max-width: var(--content-w); }
.lp-group > summary { list-style: none; cursor: pointer; display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap;
                      padding: 14px 18px; border-radius: 12px; user-select: none; }
.lp-group > summary::-webkit-details-marker { display: none; }
.lp-group > summary::before { content: "▸"; color: var(--c-7dd3fc); font-size: .9rem; transition: transform .15s; }
.lp-group[open] > summary::before { transform: rotate(90deg); }
.lp-group > summary:hover { background: var(--c-1a2030); }
.lg-title { font-size: 1.05rem; font-weight: 700; color: var(--c-f8fafc); }
.lg-desc { font-size: .8rem; color: var(--c-94a3b8); }
.lp-group > .card { margin: 0 12px 12px; width: auto; }
.lp-group > .card:first-of-type { margin-top: 0; }
.lp-pack-table { margin: 10px 0 4px; font-size: .82rem; }
.lp-pack-table td:nth-child(n+3), .lp-pack-table th:nth-child(n+3) { text-align: center; white-space: nowrap; }

/* 操作步驟、一鍵產生 */
.lp-steps { margin: 0 0 14px 1.3em; padding: 0; font-size: .85rem; color: var(--c-94a3b8); line-height: 1.8; }
.lp-steps b { color: var(--c-e2e8f0); }
.lp-quick { border-color: var(--c-166534); background: var(--c-132219); }
.lp-quick-row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; font-size: .9rem; color: var(--c-cbd5e1); }
.lp-quick-row > div { flex: 1; min-width: 260px; }
#lp-quick-status { margin-top: 10px; color: var(--c-4ade80); font-size: .88rem; }
