:root{
    --sidebar-width:240px;
    --sidebar-collapsed-width:60px;
    --primary-color:#4a6cf7;
    --primary-light:#e8f1fd;
    --light-bg:#f8f9fa;
    --dark-text:#16181a;
    --gray-200:#edf2f7;
    --gray-300:#e2e8f0;
    --danger-color:#e53e3e;
    --shadow-sm:0 1px 2px rgba(0,0,0,.03);
    --shadow-lg:0 10px 15px rgba(0,0,0,.1);
  }
  
  body{
    margin:0;
    height:100vh;
    display:flex;
    overflow:hidden;
    color:var(--dark-text);
    font-family:'Segoe UI','SF Pro Display',-apple-system,sans-serif;
    background:#f7fafc;
  }
  
/* ============================================================
   2. 侧边栏
   ============================================================ */
#sidebar{width:var(--sidebar-width);background:#f0f3ff;border-right:1px solid var(--gray-300);height:100%;transition:all .3s ease;position:relative;box-shadow:var(--shadow-sm);z-index:1000;display:flex;flex-direction:column;}
#sidebar.collapsed{width:var(--sidebar-collapsed-width);}
.sidebar-header{padding:.75rem 1rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--gray-300);height:56px;}
.logo{display:flex;align-items:center;font-weight:600;font-size:1.1rem;color:var(--primary-color);gap:.5rem;transition:opacity .3s ease;}
#sidebar.collapsed .logo{opacity:0;}
.collapse-btn{background:0 0;border:none;font-size:1.1rem;color:#718096;cursor:pointer;width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;}
.collapse-btn:hover{background:var(--gray-200);}
.sidebar-body{flex:1;overflow-y:auto;padding:.75rem 0;}
.quick-actions{display:flex;flex-direction:column;gap:.25rem;margin-bottom:1rem;}
.quick-btn{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;border-radius:6px;color:var(--dark-text);text-decoration:none;font-size:.9rem;transition:background .2s;border:1px solid transparent;margin:0 .75rem;}
.quick-btn.active{background:var(--primary-light);color:var(--primary-color);border-color:var(--primary-color);}
.quick-btn:hover:not(.active){background:var(--gray-200);border-color:var(--gray-300);}
.quick-btn i{font-size:1rem;min-width:20px;text-align:center;}
.history-title{font-size:.75rem;color:#718096;text-transform:uppercase;letter-spacing:.5px;margin:1rem 0 .5rem .75rem;padding-left:.25rem;}
.history-list{list-style:none;padding:0;margin:0;}
.history-item{display:flex;justify-content:space-between;align-items:center;padding:.4rem .75rem;border-radius:6px;font-size:.85rem;color:var(--dark-text);margin:0 .75rem;cursor:pointer;transition:background .2s;}
.history-item:hover{background:var(--gray-200);}
.history-item-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px;flex:1;}
.history-actions{display:none;gap:.25rem;}
.history-item:hover .history-actions{display:flex;}
.sidebar-footer{padding:.75rem 1rem;border-top:1px solid var(--gray-300);position:relative;}
.user-section{display:flex;align-items:center;gap:.75rem;margin-bottom:.5rem;}
.user-avatar{width:32px;height:32px;border-radius:50%;background:var(--primary-color);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;transition:all .2s;margin-left:1rem;}
.user-avatar:hover{transform:scale(1.05);}
.user-info{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.user-name{font-size:.85rem;font-weight:500;color:var(--dark-text);}
.user-menu-btn{background:0 0;border:none;color:#718096;cursor:pointer;width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;position:relative;}
.user-menu-btn:hover{background:var(--gray-200);}
.shortcut-icons{display:flex;gap:2rem;justify-content:center;}
.shortcut-btn{width:32px;height:32px;border-radius:8px;border:1px solid var(--gray-300);background:#fff;display:flex;align-items:center;justify-content:center;color:#718096;cursor:pointer;transition:all .2s;font-size:.9rem;}
.shortcut-btn:hover{background:var(--primary-color);color:#fff;border-color:var(--primary-color);}
#userDropdown{position:absolute;top:auto;bottom:100%;right:0;background:#fff;border-radius:8px;box-shadow:var(--shadow-lg);border:1px solid var(--gray-300);padding:.5rem 0;z-index:1000;display:none;}
.dropdown-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;color:var(--dark-text);text-decoration:none;font-size:.9rem;transition:background .2s;}
.dropdown-item:hover{background:var(--primary-light);color:var(--primary-color);}
.dropdown-item i{font-size:1rem;min-width:20px;text-align:center;}
#sidebar.collapsed .logo,#sidebar.collapsed .user-info,#sidebar.collapsed .quick-btn span,#sidebar.collapsed .history-item-title,#sidebar.collapsed .user-avatar,#sidebar.collapsed .history-title{display:none;}
#sidebar.collapsed .quick-btn,#sidebar.collapsed .history-item{justify-content:center;padding:.75rem 0;}
#sidebar.collapsed .user-section{justify-content:center;}
#sidebar.collapsed .shortcut-icons{display:none;}
.action-btn{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#718096;cursor:pointer;transition:all .2s;font-size:.9rem;background:0 0;border:none;}
.action-btn:hover{color:var(--primary-color);background:var(--gray-200);}
.action-btn.active{color:var(--primary-color);}
  
  /* ===== 主内容占位 ===== */
  #main-content{flex:1;overflow:hidden;background:#f7fafc;transition:margin-left .3s}
  #main-content.sidebar-collapsed{margin-left:0px;}
  
  /* ===== 折叠状态隐藏 ===== */
  #sidebar.collapsed .logo,
  #sidebar.collapsed .user-info,
  #sidebar.collapsed .quick-btn span,
  #sidebar.collapsed .history-item-title,
  #sidebar.collapsed .user-avatar,
  #sidebar.collapsed .history-title{display:none}
  #sidebar.collapsed .quick-btn,
  #sidebar.collapsed .history-item{justify-content:center;padding:.75rem 0}
  #sidebar.collapsed .user-section{justify-content:center}
  #sidebar.collapsed .shortcut-icons{display:none}
  
  @media(max-width:768px){
    :root{--sidebar-width:60px}
    #sidebar{width:var(--sidebar-width)}
  }
/* 主内容区域样式 */
#main-content {
  flex: 1;
  overflow: hidden;
  background: #f7fafc;
  transition: margin-left .3s;
}

/* 试卷模板样式 */
.paper-template {
  font-family: 'SimSun', '宋体', serif;
}

.paper-header {
  border-bottom: 2px solid #000;
  padding-bottom: 15px;
}

.student-info div {
  margin-bottom: 5px;
  font-size: 14px;
}

.paper-notes {
  border: 1px solid #ddd;
  border-radius: 5px;
}

.paper-notes ol {
  margin-bottom: 0;
  padding-left: 20px;
}

.paper-notes li {
  font-size: 14px;
  margin-bottom: 5px;
}

.questions-container {
  font-size: 15px;
}

.question-item {
  margin-bottom: 20px;
  padding: 10px;
  border: 1px solid transparent;
  border-radius: 5px;
  transition: all 0.2s;
}

.question-item.editing {
  border-color: #4a6cf7;
  background-color: rgba(74, 108, 247, 0.05);
}

.question-title {
  font-weight: bold;
  margin-bottom: 10px;
}

.question-content {
  margin-bottom: 10px;
}

.question-answer {
  color: #28a745;
  display: none;
  margin-top: 5px;
  font-style: italic;
}

.answer-visible .question-answer {
  display: block;
}

/* 拖拽样式 */
.drag-handle {
  cursor: move;
  color: #6c757d;
  margin-right: 8px;
}

.dragging {
  opacity: 0.5;
  border: 2px dashed #4a6cf7;
}

/* 会话视图样式 */
.chat-message {
  border-left: 3px solid #4a6cf7;
}

.chat-message.user {
  border-left-color: #28a745;
  background-color: rgba(40, 167, 69, 0.05);
}

/* 动态字段样式 */
.dynamic-field-group {
  margin-bottom: 15px;
  padding: 15px;
  background-color: #fff;
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

.field-checkbox {
  margin-right: 8px;
}

.field-label {
  font-weight: 500;
  margin-left: 5px;
}

.field-count {
  width: 70px;
  margin-left: 10px;
}

/* 试卷样式 */
.paper-container {
  font-family: 'SimSun', '宋体', 'Times New Roman', serif;
}

.exam-paper {
  max-width: 1200px;
  margin: 0 auto;
  background: white;
  box-shadow: 0 0 10px rgba(0,0,0,0.1);
  font-size: 14px;
  line-height: 1.6;
}

.paper-page {
  padding: 20px;
  background: white;
}

.paper-grid-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  min-height: 100%;
}

.page-column {
  border: 1px solid #e0e0e0;
  padding: 20px;
  background: #fefefe;
  display: flex;
  flex-direction: column;
  min-height: 800px;
}

.header-info {
  text-align: center;
  margin-bottom: 2rem;
  flex-shrink: 0;
}

.header-info h3 {
  font-size: 18px;
  font-weight: bold;
  margin: 0 0 8px 0;
}

.header-info h4 {
  font-size: 16px;
  font-weight: normal;
  margin: 0 0 20px 0;
  color: #666;
}

.notice {
  font-size: 12px;
  text-align: left;
  margin-top: 1rem;
}

.notice ol {
  margin: 8px 0;
  padding-left: 1.2em;
}

.notice li {
  margin: 4px 0;
  line-height: 1.4;
}

.question-column {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.question-item {
  border: 1px solid transparent;
  padding: 12px;
  border-radius: 4px;
  background: white;
  transition: all 0.3s ease;
}

.question-item:hover {
  background: #f8f9fa;
}

.editing-mode .question-item {
  border: 1px dashed #007bff;
  cursor: move;
}

.question-item.dragging {
  opacity: 0.5;
  border: 2px dashed #007bff;
}

.question-header {
  margin-bottom: 8px;
  padding-bottom: 4px;
  border-bottom: 1px solid #e9ecef;
}

.question-content {
  margin-bottom: 12px;
}

.answer-space {
  margin: 12px 0;
}

.answer-space-label {
  font-weight: bold;
  margin-bottom: 4px;
}

.answer-space-area {
  min-height: 100px;
  border: 1px dashed #ccc;
  padding: 8px;
  margin: 8px 0;
  background: #fafafa;
  resize: vertical;
  overflow: auto;
}

.question-answer {
  margin-top: 12px;
  padding: 12px;
  background: #f8f9fa;
  border-radius: 4px;
  border-left: 4px solid #28a745;
}

.answer-label {
  font-weight: bold;
  color: #28a745;
  margin-bottom: 8px;
}

.page-number {
  text-align: center;
  margin-top: 20px;
  font-size: 12px;
  color: #666;
}

.page-break {
  page-break-before: always;
}

/* Markdown 样式 */
.markdown-body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  font-size: 14px;
  line-height: 1.6;
  padding: 20px;
}

.markdown-body h1, .markdown-body h2, .markdown-body h3 {
  margin-top: 24px;
  margin-bottom: 16px;
  font-weight: 600;
  line-height: 1.25;
}

.markdown-body h1 {
  font-size: 2em;
  border-bottom: 1px solid #eaecef;
  padding-bottom: 0.3em;
}

.markdown-body h2 {
  font-size: 1.5em;
  border-bottom: 1px solid #eaecef;
  padding-bottom: 0.3em;
}

.markdown-body p {
  margin-bottom: 16px;
}

.markdown-body ul, .markdown-body ol {
  padding-left: 2em;
  margin-bottom: 16px;
}

.markdown-body li {
  margin-bottom: 4px;
}

.markdown-body blockquote {
  padding: 0 1em;
  color: #6a737d;
  border-left: 0.25em solid #dfe2e5;
  margin-bottom: 16px;
}

.markdown-body code {
  padding: 0.2em 0.4em;
  margin: 0;
  font-size: 85%;
  background-color: rgba(27,31,35,0.05);
  border-radius: 3px;
  font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
}

.markdown-body pre {
  padding: 16px;
  overflow: auto;
  font-size: 85%;
  line-height: 1.45;
  background-color: #f6f8fa;
  border-radius: 3px;
  margin-bottom: 16px;
}

.markdown-body pre code {
  background: none;
  padding: 0;
}

/* 思考过程面板 */
.thinking-panel {
  border: 1px solid #e9ecef;
  border-radius: 4px;
  padding: 12px;
  background: #f8f9fa;
}

.thinking-content {
  font-family: 'Courier New', monospace;
  font-size: 0.85em;
  color: #495057;
}

/* 响应式设计 */
@media (max-width: 768px) {
  .paper-grid-layout {
    grid-template-columns: 1fr;
  }
  
  .page-column {
    min-height: auto;
  }
}

/* 侧边栏样式 */
#sidebar.collapsed {
  width: 60px;
}

#sidebar.collapsed .sidebar-body,
#sidebar.collapsed .sidebar-footer .user-info,
#sidebar.collapsed .history-title {
  display: none;
}

/* 动态字段容器 */
.dynamic-fields-container {
  max-height: 200px;
  overflow-y: auto;
  border: 1px solid #e9ecef;
  border-radius: 4px;
  padding: 12px;
  background: #f8f9fa;
}

/* 表单样式 */
.form-check {
  margin-bottom: 8px;
}

.form-check-input:checked {
  background-color: #0d6efd;
  border-color: #0d6efd;
}

/* 按钮样式 */
.btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.btn-group .btn.active {
  background-color: #0d6efd;
  border-color: #0d6efd;
  color: white;
}

/* 答题卡视图样式 */
#answer-sheet-view {
  height: 100%;
  overflow-y: auto;
  padding: 20px;
  background: #f8f9fa;
}

.answer-sheet-container {
  margin: 0 auto;
}

.answer-sheet-page {
  background: white;
  box-shadow: 0 2px 10px rgba(0,0,0,0.1);
  margin-bottom: 20px;
}

/* 选择题答题框样式 */
.option-box {
  transition: all 0.2s ease;
  cursor: pointer;
  user-select: none;
}

.option-box:hover {
  background: #f8f9fa;
}

.option-box.filled {
  background: #333 !important;
  color: white !important;
}

/* 自定义模态框样式 */
#delete-confirm-modal .modal-content {
  border-radius: 8px;
  box-shadow: 0 10px 25px rgba(0,0,0,0.2);
}

#delete-confirm-modal .modal-header {
  background: #f8f9fa;
  border-bottom: 1px solid #dee2e6;
}

#delete-confirm-modal .modal-title {
  color: #dc3545;
  font-weight: 600;
}

/* 数学公式样式 */
.katex {
  font-size: 1.1em;
}

.katex-display {
  margin: 1em 0;
  overflow-x: auto;
  overflow-y: hidden;
}

/* 选择题括号样式 */
.choice-parenthesis {
  float: right;
  color: #666;
  margin-left: 10px;
  font-weight: normal;
}

/* 题目类型分组标题 */
.question-group-title {
  font-size: 1.1em;
  font-weight: bold;
  margin: 20px 0 10px 0;
  padding-bottom: 5px;
  border-bottom: 2px solid #007bff;
  color: #333;
}

/* 流式渲染动画 */
.question-item {
  animation: fadeInUp 0.5s ease;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* 答题区域选中状态 */
.answer-space-area.selected {
  border-color: #007bff;
  background-color: #f8f9fa;
  box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25);
}

/* 会话视图 Markdown 样式 */
.message-content h1,
.message-content h2,
.message-content h3,
.message-content h4,
.message-content h5,
.message-content h6 {
  margin: 1em 0 0.5em 0;
  font-weight: 600;
  line-height: 1.25;
}

.message-content h1 {
  font-size: 1.5em;
  border-bottom: 1px solid #eaecef;
  padding-bottom: 0.3em;
}

.message-content h2 {
  font-size: 1.3em;
  border-bottom: 1px solid #eaecef;
  padding-bottom: 0.3em;
}

.message-content h3 {
  font-size: 1.2em;
}

.message-content h4 {
  font-size: 1.1em;
}

.message-content h5 {
  font-size: 1em;
}

.message-content h6 {
  font-size: 0.9em;
  color: #6a737d;
}

.message-content p {
  margin: 0.5em 0;
  line-height: 1.6;
}

.message-content ul,
.message-content ol {
  margin: 0.5em 0;
  padding-left: 2em;
}

.message-content li {
  margin: 0.25em 0;
}

.message-content blockquote {
  margin: 1em 0;
  padding: 0 1em;
  border-left: 4px solid #dfe2e5;
  background-color: #f8f9fa;
  color: #6a737d;
}

.message-content table {
  border-collapse: collapse;
  margin: 1em 0;
  width: 100%;
}

.message-content table th,
.message-content table td {
  border: 1px solid #dfe2e5;
  padding: 0.5em 1em;
  text-align: left;
}

.message-content table th {
  background-color: #f6f8fa;
  font-weight: 600;
}

.message-content table tr:nth-child(even) {
  background-color: #f8f9fa;
}

.message-content hr {
  height: 1px;
  background-color: #e1e4e8;
  border: 0;
  margin: 1.5em 0;
}

.message-content strong {
  font-weight: 600;
}

.message-content em {
  font-style: italic;
}

.message-content code {
  background-color: rgba(175, 184, 193, 0.2);
  border-radius: 3px;
  padding: 0.2em 0.4em;
  font-size: 0.9em;
  font-family: 'SFMono-Regular', 'Consolas', 'Liberation Mono', 'Menlo', monospace;
}

.code-block-container {
  background: #f8f9fa;
  border: 1px solid #e9ecef;
  border-radius: 6px;
  margin: 1em 0;
  overflow: hidden;
}

.code-language {
  background: #495057;
  color: white;
  padding: 4px 8px;
  font-size: 0.8em;
  font-family: 'Courier New', monospace;
}

.code-content {
  padding: 1em;
  margin: 0;
  overflow-x: auto;
  font-family: 'Courier New', monospace;
  font-size: 0.9em;
  line-height: 1.4;
  background: #f8f9fa;
  color: #333;
}

.message-content pre {
  background: #f8f9fa;
  border-radius: 6px;
  padding: 1em;
  overflow: auto;
  margin: 1em 0;
}

.message-content pre code {
  background: none;
  padding: 0;
  border-radius: 0;
}

/* 自定义模态框样式 */
#delete-confirm-modal .modal-content {
  border-radius: 8px;
  box-shadow: 0 10px 25px rgba(0,0,0,0.2);
}

#delete-confirm-modal .modal-header {
  background: #f8f9fa;
  border-bottom: 1px solid #dee2e6;
}

#delete-confirm-modal .modal-title {
  color: #dc3545;
  font-weight: 600;
}

/* 流式渲染动画 */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.question-item {
  animation: fadeInUp 0.5s ease;
}

/* 结果容器布局优化 */
#result-container {
  height: calc(100% - 120px);
  overflow-x: hidden;
  overflow-y: auto;
  background: #f8f9fa;
}

/* 视图切换时的布局调整 */
#paper-view, #answer-sheet-view {
  width: 100%;
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
}

/* 确保所有视图容器正确显示 */
#paper-view:not(.d-none),
#answer-sheet-view:not(.d-none) {
  display: block;
  height: 100%;
}

/* 响应式调整 */
@media (max-height: 800px) {
  .paper-page,
  .answer-sheet-page {
    transform: scale(0.7) !important;
  }
}

@media (max-height: 600px) {
  .paper-page,
  .answer-sheet-page {
    transform: scale(0.6) !important;
  }
}