/* 问号图标 */ .help-icon { display: inline-block; margin-left: 8px; color: #888; font-weight: bold; cursor: help; } .help-icon:hover { color: #4CAF50; } /* Portal Tooltip(挂在 body 下) */ .tooltip-portal { position: fixed; /* 不受父级 overflow 影响 */ left: 0; top: 0; z-index: 999999; /* 足够高,覆盖侧栏等 */ display: none; opacity: 0; transition: opacity .08s linear; background: rgba(0,0,0,.9); color: #fff; padding: 6px 10px; border-radius: 6px; font-size: 13px; line-height: 1.4; pointer-events: none; /* 鼠标穿透,避免闪烁 */ white-space: nowrap; box-shadow: 0 4px 12px rgba(0,0,0,.25); } .add-step-btn, .add-phase-btn { background-color: #4CAF50; color: white; display: block; border: none; padding: 5px 10px; font-size: 14px; border-radius: 5px; cursor: pointer; margin-top: 5px; margin-left: 10px; } .add-step-btn{ margin-left: 30px; } .add-step-btn:hover, .add-phase-btn:hover { background-color: #45a049; } /* 增加按钮与大纲列表的间距 */ #outline-tree li { margin: 5px 0; } #outline-tree li.lvl2 { padding-left: 1px; } #outline-tree li.lvl3 { padding-left: 20px; } /* 删除模式下可删除的节点样式 */ .outline.delete-mode #outline-tree .lvl2, .outline.delete-mode #outline-tree .lvl3 { border: 1px solid #dc2626; /* 红色边框 */ border-radius: 6px; padding: 4px 6px; transition: background-color .15s ease, box-shadow .15s ease; cursor: pointer; } .outline.delete-mode #outline-tree .lvl2:hover, .outline.delete-mode #outline-tree .lvl3:hover { background: rgba(220,38,38,.06); /* 微红背景 */ box-shadow: 0 0 0 2px rgba(220,38,38,.15) inset; } /* 删除按钮样式(可按需调整) */ .delete-btn { margin-left: 6px; border: none; background: transparent; cursor: pointer; padding: 6px; border-radius: 8px; } .delete-btn[aria-pressed="true"] { background: rgba(220,38,38,.12); outline: 2px solid #dc2626; } .delete-btn:focus-visible { outline: 2px solid #4c9ffe; } .details-header { display:flex; justify-content:space-between; align-items:center; } .close-btn { border:none; background:transparent; font-size:22px; cursor:pointer; } /* 主体布局 */ .lesson-editor { display:flex; height: calc(100vh - 20px); gap: 12px; padding: 12px; } .outline { width: 280px; border:1px solid #eee; border-radius:10px; padding:10px; overflow:auto; background:#fafafa; } .outline-header { font-weight:700; margin-bottom:8px; } #outline-tree { list-style:none; padding-left:0; } #outline-tree li { margin:4px 0; cursor:pointer; } #outline-tree .lvl1 { font-weight:700; } #outline-tree .lvl2 { margin-left:12px; } #outline-tree .lvl3 { margin-left:24px; } #outline-tree li.active { background:#eaf6ff; border-radius:6px; font-weight: bold; } .editor-pane { flex:1; display:flex; flex-direction:column; min-width:0; border:1px solid #eee; border-radius:10px; } .editor-tabs { display:flex; align-items:center; gap:8px; padding:8px; border-bottom:1px solid #eee; } .tab-btn { border:1px solid #ddd; background:#fff; padding:6px 10px; border-radius:8px; cursor:pointer; } .tab-btn.active { background:#f0f8ff; border-color:#a0c4ff; } .actions { margin-left:auto; } .actions button { padding:6px 12px; border:none; border-radius:8px; background:#4CAF50; color:#fff; cursor:pointer; } .tab-content { flex:1; padding:8px;display: flex; } .tab { display:none; height:100%; } .tab.active { display:block; height:100%; } textarea { width:100%; height: calc(100vh - 180px); border:1px solid #ddd; border-radius:8px; padding:10px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; box-sizing:border-box; resize: vertical; }