/* ===== AI 學習中心 / 學習資料投餵器 =====
   與全站同一套色票（app.css 的 --c-*）；所有字號下限 12px，
   舒適模式覆寫放在 comfort.css 末尾，確保可讀性稽核通過。 */
.learn{
  padding:20px 24px 48px;overflow-y:auto;flex:1;min-width:0;
  background:var(--c-bg);
}
.learn h2{font-size:19px;color:var(--c-primary);margin:0 0 4px;font-weight:800;letter-spacing:.2px}
.learn h3{margin:0 0 12px;font-size:13.5px;color:var(--c-primary);font-weight:700}
.learn .sub{font-size:12.5px;color:var(--c-muted);line-height:1.6}
.learn .card{background:#fff;border:1px solid var(--c-border);border-radius:9px;
  padding:16px 18px;box-shadow:var(--sh-sm);margin-bottom:14px}
.ln-beta{font-size:12px;font-weight:600;color:#fff;background:var(--c-primary-l);
  border-radius:10px;padding:2px 9px;margin-left:8px;vertical-align:2px}
.ln-h3sub{font-size:12px;font-weight:400;color:var(--c-muted);margin-left:8px}
.ln-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.ln-head-act{display:flex;gap:8px;flex:0 0 auto}
.ln-empty{padding:18px;text-align:center;color:var(--c-muted);font-size:12.5px;
  border:1px dashed var(--c-border);border-radius:7px;background:#fbfdff;line-height:1.7}
.ln-hint{font-size:12.5px;color:#475569;line-height:1.8;background:#f8fbfe;
  border:1px solid #e3edf7;border-radius:6px;padding:10px 12px;margin-top:10px}

/* ---- 飛輪路徑 ---- */
.ln-flow{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:14px}
.ln-step{font-size:12.5px;font-weight:700;color:#94a3b8;background:#fff;
  border:1px solid var(--c-border);border-radius:16px;padding:5px 13px;white-space:nowrap}
.ln-step.on{color:#fff;background:var(--c-primary);border-color:var(--c-primary);
  box-shadow:0 2px 8px rgba(15,76,129,.18)}
.ln-arrow{color:#94a3b8;font-size:13px}
.ln-flow-t{margin-left:auto;font-size:12px;color:var(--c-muted)}

/* ---- KPI ---- */
.ln-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:12px}
.ln-kpi{background:#fff;border:1px solid var(--c-border);border-radius:9px;
  padding:13px 16px;box-shadow:var(--sh-sm);display:flex;flex-direction:column;gap:3px}
.ln-kpi span{font-size:12px;color:var(--c-muted)}
.ln-kpi b{font-size:25px;line-height:1.15;color:var(--c-primary);font-weight:800}
.ln-kpi em{font-size:12px;color:#475569;font-style:normal}
.ln-note{font-size:12.5px;line-height:1.85;color:#475569;background:#fffbeb;
  border:1px solid #fde68a;border-left:4px solid var(--c-warn);
  border-radius:6px;padding:10px 14px;margin-bottom:14px}
.ln-note b{color:#92400e}

/* ---- 兩欄 ---- */
.ln-cols{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);gap:14px;align-items:start}
@media (max-width:1180px){.ln-cols{grid-template-columns:1fr}}

/* ---- 投餵 ---- */
.ln-tabs{display:flex;gap:4px;margin-bottom:12px;border-bottom:1px solid var(--c-border)}
.ln-tabs button{font-family:inherit;font-size:12.5px;font-weight:600;color:var(--c-muted);
  background:none;border:none;border-bottom:2px solid transparent;padding:7px 14px;cursor:pointer}
.ln-tabs button.on{color:var(--c-primary);border-bottom-color:var(--c-primary)}
.ln-drop{border:2px dashed #c7d9ea;border-radius:8px;background:#f8fbfe;
  padding:18px 14px;text-align:center;transition:.15s}
.ln-drop.over{border-color:var(--c-primary-l);background:#eef7ff}
.ln-drop-t{font-size:13px;font-weight:600;color:#334155}
.ln-drop-s{font-size:12px;color:var(--c-muted);margin-top:7px;line-height:1.6}
.ln-vopts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;
  margin-top:12px;padding:12px;background:#f8fbfe;border:1px solid #e3edf7;border-radius:7px}
.ln-vopts label,.ln-frow label,.ln-gf-row label,.ln-fld{display:flex;flex-direction:column;gap:4px;
  font-size:12px;color:#475569;font-weight:600}
.ln-wide{grid-column:1 / -1}
.ln-vopts input,.ln-frow input,.ln-frow select,.ln-gf-row input,.ln-gf-row select,
.ln-bulkbar select,.ln-filters input,.ln-filters select,.ln-st-code,.ln-fld input{
  font-family:inherit;font-size:12.5px;color:var(--c-text);background:#fff;
  border:1px solid var(--c-border);border-radius:5px;padding:5px 8px;width:100%;
}
.ln-vopts input:focus,.ln-frow input:focus,.ln-st-code:focus,.ln-fld input:focus{
  outline:none;border-color:var(--c-primary-l);box-shadow:0 0 0 2px rgba(30,136,199,.12)}
.ln-vopts .ln-check{flex-direction:row;align-items:center;gap:7px;font-weight:500}
.ln-vopts .ln-check input{width:auto}
.ln-vopts .btn{grid-column:1 / -1;justify-self:start}
.ln-frow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
@media (max-width:760px){.ln-frow,.ln-vopts{grid-template-columns:1fr}}
.ln-staged{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));
  gap:10px;margin:12px 0;max-height:330px;overflow-y:auto;padding:2px}
.ln-st{border:1px solid var(--c-border);border-radius:7px;overflow:hidden;background:#fff;
  display:flex;flex-direction:column}
.ln-st-img{height:104px;background:#0b1a28;display:flex;align-items:center;justify-content:center}
.ln-st-img img{width:100%;height:100%;object-fit:cover;display:block}
.ln-st-b{padding:7px 8px 8px;display:flex;flex-direction:column;gap:5px}
.ln-st-n{font-size:12px;font-weight:600;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ln-st-m{font-size:12px;color:var(--c-muted)}
.ln-st-code{padding:4px 7px !important;text-transform:uppercase}
.ln-sug{font-family:inherit;font-size:12px;color:#0f4c81;background:#eaf5ff;
  border:1px solid #c9e2f7;border-radius:4px;padding:3px 6px;cursor:pointer;text-align:left}
.ln-sug:hover{background:#d8ecff}
.ln-st-sug{font-size:12px;line-height:1.5}
.ln-act{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-top:1px solid var(--c-border);padding-top:11px}
.ln-act .btn:last-child{margin-left:auto}
.ln-prog{font-size:12px;color:var(--c-muted);flex:1;min-width:120px;line-height:1.5}

/* ---- 評估 / 閘門 ---- */
.ln-gate-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:12px;color:var(--c-muted)}
.ln-mode{font-size:12px;font-weight:700;border-radius:12px;padding:3px 10px;color:#fff;background:#64748b}
.ln-mode.advisory{background:var(--c-primary-l)}
.ln-mode.production{background:var(--c-ok)}
.ln-mode.locked{background:#94a3b8}
.ln-gate-m{font-size:12.5px;color:#475569;line-height:1.8;margin-top:6px}
.ln-eact{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
.ln-eval-res{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}
.ln-eval-res>div{background:#f8fbfe;border:1px solid #e3edf7;border-radius:6px;
  padding:8px 10px;display:flex;flex-direction:column;gap:2px}
.ln-eval-res span{font-size:12px;color:var(--c-muted)}
.ln-eval-res b{font-size:17px;color:var(--c-primary);font-weight:800}
.ln-eval-note{font-size:12.5px;color:#92400e;background:#fffbeb;border:1px solid #fde68a;
  border-radius:6px;padding:9px 11px;margin-top:10px;line-height:1.75}
.ln-eval-note.ok{color:#166534;background:#f0fdf4;border-color:#bbf7d0}
.ln-gateform{margin-top:14px;border-top:1px dashed var(--c-border);padding-top:12px}
.ln-gf-t{font-size:12.5px;font-weight:700;color:var(--c-primary);margin-bottom:8px}
.ln-gf-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:8px}
@media (max-width:760px){.ln-gf-row{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ln-gateform .ln-wide{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#475569;font-weight:600;margin-bottom:8px}
.ln-gateform .ln-wide input{font-family:inherit;font-size:12.5px;padding:5px 8px;
  border:1px solid var(--c-border);border-radius:5px;width:100%}
.ln-gf-note{font-size:12px;color:var(--c-muted);line-height:1.7;margin-bottom:8px}

/* ---- 標註工作台 ---- */
.ln-lhead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.ln-lhead h3{margin:0}
.ln-filters{display:flex;gap:6px;flex-wrap:wrap}
.ln-filters input,.ln-filters select{width:auto;min-width:112px}
.ln-bulkbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  background:#f8fbfe;border:1px solid #e3edf7;border-radius:6px;padding:8px 10px;margin-bottom:12px}
.ln-bulkbar span{font-size:12.5px;color:#475569}
.ln-bulkbar b{color:var(--c-primary);font-size:14px}
.ln-bulkbar select{width:auto;min-width:190px;max-width:280px}
.ln-assets{display:grid;grid-template-columns:repeat(auto-fill,minmax(184px,1fr));gap:10px}
.ln-as{border:1px solid var(--c-border);border-radius:7px;overflow:hidden;background:#fff;
  display:flex;flex-direction:column;transition:.15s}
.ln-as.sel{border-color:var(--c-primary-l);box-shadow:0 0 0 2px rgba(30,136,199,.18)}
.ln-as-img{position:relative;height:118px;background:#0b1a28}
.ln-as-img img{width:100%;height:100%;object-fit:cover;display:block}
.ln-noimg{height:100%;display:flex;align-items:center;justify-content:center;
  color:#94a3b8;font-size:12px;background:#f1f5f9}
.ln-ck{position:absolute;left:6px;top:6px;background:rgba(255,255,255,.92);
  border-radius:4px;padding:2px 4px;line-height:1;cursor:pointer}
.ln-ck input{width:15px;height:15px;cursor:pointer;margin:0;vertical-align:middle}
.ln-as-b{padding:8px 9px 9px;display:flex;flex-direction:column;gap:5px}
.ln-as-t{display:flex;align-items:center;justify-content:space-between;gap:5px;font-size:12.5px;color:#334155}
.ln-tag{font-size:12px;border-radius:9px;padding:1px 7px;background:#eef2f7;color:#64748b}
.ln-tag.labeled{background:#dcfce7;color:#166534}
.ln-tag.rejected{background:#fee2e2;color:#991b1b}
.ln-as-c{font-size:13px;min-height:19px}
.ln-code{color:var(--c-primary);letter-spacing:.5px}
.ln-as-m{font-size:12px;color:var(--c-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ln-as-act{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}

/* ---- 單張標註彈窗 ---- */
.ln-modal{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(240px,1fr);gap:16px}
@media (max-width:720px){.ln-modal{grid-template-columns:1fr}}
.ln-modal-img{background:#0b1a28;border-radius:6px;min-height:240px;overflow:hidden;
  display:flex;align-items:center;justify-content:center}
.ln-modal-img img{width:100%;max-height:420px;object-fit:contain;display:block}
.ln-modal-img .ln-noimg{width:100%}
.ln-modal-b{display:flex;flex-direction:column;gap:8px}
.ln-kv{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;
  border-bottom:1px solid #f1f5f9;padding-bottom:5px;color:var(--c-muted)}
.ln-kv b{color:#334155;font-weight:600;text-align:right;word-break:break-all}
.ln-fld{margin-top:4px}
.ln-modal-ai{font-size:12.5px;line-height:1.7;border:1px solid #e3edf7;
  border-radius:6px;padding:9px 10px;background:#f8fbfe;margin-top:4px}
.ln-ai-t{font-size:12px;color:var(--c-muted);margin-bottom:6px}
.ln-ai-item{font-family:inherit;font-size:12.5px;display:inline-flex;gap:8px;align-items:center;
  background:#eaf5ff;border:1px solid #c9e2f7;color:#0f4c81;border-radius:5px;
  padding:3px 9px;margin:0 5px 5px 0;cursor:pointer}
.ln-ai-item:hover{background:#d8ecff}
.ln-ai-item span{color:#64748b;font-size:12px}

/* ---- 評估歷程 ---- */
.ln-tbl{width:100%;border-collapse:collapse;font-size:12.5px}
.ln-tbl th{text-align:left;font-size:12px;color:var(--c-muted);font-weight:600;
  background:#f8fbfe;border-bottom:1px solid var(--c-border);padding:7px 9px}
.ln-tbl td{border-bottom:1px solid #f1f5f9;padding:6px 9px;color:#334155}
.ln-tbl-note{color:var(--c-muted);max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ================= 階段 2：模型與訓練 ================= */
.ln-models{margin-top:14px}
.am-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px}
.am-head h3,.am-bhead h4{font-size:14px;margin:0;color:#1e293b}
.am-note,.am-note2{font-size:12.5px;line-height:1.8;color:#475569;background:#fffbeb;
  border:1px solid #fde68a;border-radius:6px;padding:9px 12px;margin-bottom:12px}
.am-note b{color:#92400e}
.am-note2{background:#f8fbfe;border-color:#e3edf7;margin-top:9px}
.am-kpis{margin-bottom:14px}
.am-block{border-top:1px dashed var(--c-border);padding-top:14px;margin-top:14px}
.am-bhead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.am-controls{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:12px}
.am-controls label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#475569;font-weight:600}
.am-controls select,.am-controls input{font-family:inherit;font-size:12.5px;
  padding:5px 8px;border:1px solid var(--c-border);border-radius:5px;background:#fff;color:#1e293b}
.am-controls .am-check,.am-check{display:flex;flex-direction:row;align-items:center;gap:6px;
  font-size:12.5px;color:#475569;font-weight:600}
.am-check input{width:15px;height:15px;margin:0}
.am-controls .am-check input{width:15px;height:15px;padding:0;margin:0;
  border:1px solid #cbd5e1;background:#fff;box-shadow:none}
.am-form{background:#f8fbfe;border:1px solid #e3edf7;border-radius:8px;padding:12px;margin-bottom:12px}
.am-fgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px}
.am-fgrid label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#475569;font-weight:600}
.am-fgrid input,.am-fgrid select{font-family:inherit;font-size:12.5px;padding:5px 8px;
  border:1px solid var(--c-border);border-radius:5px;background:#fff;color:#1e293b;width:100%;box-sizing:border-box}
.am-fgrid .am-wide{grid-column:1 / -1}
.am-fgrid .am-check{flex-direction:row;align-items:center;padding-top:14px}
.am-fact{display:flex;gap:8px;align-items:center;margin-top:12px}
.am-prog{font-size:12.5px;color:var(--c-muted)}
.am-hint{font-weight:400;color:var(--c-muted);font-size:12px}
.am-list,.am-runs{overflow-x:auto}
.am-tbl{min-width:720px}
.am-tbl td small,.am-tbl th small{display:block;font-size:12px;color:var(--c-muted);font-weight:400;margin-top:2px}
.am-ops{white-space:nowrap}
.am-ops .btn{margin-right:4px}
.am-empty{font-size:12.5px;color:var(--c-muted);background:#f8fbfe;border:1px dashed var(--c-border);
  border-radius:6px;padding:12px;line-height:1.8}
.am-ok{color:#166534;font-weight:600;font-size:12.5px}
.am-bad{color:#b91c1c;font-weight:600;font-size:12.5px}
.am-mute{color:var(--c-muted);font-size:12.5px}
.am-verdict{font-size:13px;line-height:1.8;border-radius:7px;padding:10px 12px;margin-bottom:10px;
  border:1px solid;background:#f8fbfe}
.am-verdict small{display:block;font-size:12px;color:#64748b;margin-top:3px}
.am-good{border-color:#bbf7d0;background:#f0fdf4;color:#166534}
.am-warn{border-color:#fde68a;background:#fffbeb;color:#92400e}
.am-neutral{border-color:#e2e8f0;color:#334155}
.am-fusion-row{background:#eef6ff}
.am-fusion-row td{font-weight:600}
.am-skip,.am-sub{font-size:12.5px;color:#64748b;line-height:1.8;margin-top:9px}
.am-sub{font-weight:600;color:#334155}
@media(max-width:900px){.am-fgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.am-fgrid{grid-template-columns:1fr}}
