<!doctype html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <meta name="theme-color" content="#f6f8fc" />
  <title>班务台 · 班级管理平台</title>
  <link rel="stylesheet" href="styles.css?v=20260925-dashboard-trends" />
  <link rel="stylesheet" href="theme-glass.css?v=20260926-glass4" />
</head>
<body>
  <section class="auth-screen" id="authScreen">
    <div class="auth-card">
      <div class="brand-block auth-brand"><div class="brand-mark">班</div><div><strong>班务台</strong><span>班级管理平台</span></div></div>
      <div class="auth-copy"><p class="kicker" id="authKicker">安全登录</p><h1 id="authHeading">进入班级工作台</h1><p id="authDescription">请使用学校分配的账号登录，系统会按角色展示可用功能。</p></div>
      <form class="modal-form auth-form" id="loginForm"><label class="field"><span>账号</span><input name="username" autocomplete="username" required placeholder="输入登录账号" /></label><label class="field"><span>密码</span><input name="password" type="password" autocomplete="current-password" required placeholder="输入密码" /></label><button class="button button-primary" type="submit">登录工作台</button><p class="auth-error" id="authError"></p></form>
      <form class="modal-form auth-form" id="setupForm" hidden><label class="field"><span>班主任姓名</span><input name="display_name" autocomplete="name" required placeholder="输入姓名" /></label><label class="field"><span>登录账号</span><input name="username" autocomplete="username" required placeholder="设置登录账号" /></label><label class="field"><span>登录密码</span><input name="password" type="password" autocomplete="new-password" minlength="6" required placeholder="至少 6 位" /></label><button class="button button-primary" type="submit">创建班主任账号</button><p class="auth-error" id="setupError"></p></form>
    </div>
  </section>
  <div class="app-shell">
    <aside class="sidebar" aria-label="主导航">
      <div class="brand-block">
        <div class="brand-mark">班</div>
        <div>
          <strong>班务台</strong>
          <span>班级管理平台</span>
        </div>
      </div>
      <div class="side-class">
        <span class="eyebrow"><span class="icon-image icon-image-school" aria-hidden="true"><img src="/assets/icons/school.png" alt="" /></span> 当前管理班级</span>
        <button class="class-switcher" type="button" id="classSwitcher">
          <span><b id="sideClassName">未设置班级</b><small id="sideStudentCount">共 0 名学生</small></span>
          <span class="chevron" aria-hidden="true">⌄</span>
        </button>
      </div>
      <nav class="nav-list">
        <p class="nav-label">工作台</p>
        <button class="nav-item active" data-view="dashboard" aria-current="page" type="button"><span class="nav-icon image-icon" aria-hidden="true"><img src="/assets/icons/home.png" alt="" /></span>班级总览</button>
        <button class="nav-item" data-view="attendance" type="button"><span class="nav-icon image-icon" aria-hidden="true"><img src="/assets/icons/attendance.png" alt="" /></span>考勤管理 <em id="attendanceNavCount" hidden>0</em></button>
        <button class="nav-item" data-view="students" type="button"><span class="nav-icon image-icon" aria-hidden="true"><img src="/assets/icons/students.png" alt="" /></span>学生档案</button>
        <button class="nav-item" data-view="behavior" type="button"><span class="nav-icon image-icon" aria-hidden="true"><img src="/assets/icons/behavior.png" alt="" /></span>表现记录</button>
        <button class="nav-item" type="button" id="aiSidebarButton" aria-expanded="false" aria-controls="aiSidebarPanel"><span class="nav-icon image-icon" aria-hidden="true"><img src="/assets/icons/ai.png" alt="" /></span>AI 小助手</button>
        <button class="nav-item" data-view="points" type="button"><span class="nav-icon image-icon" aria-hidden="true"><img src="/assets/icons/points.png" alt="" /></span>积分规则与管理</button>
        <button class="nav-item" data-view="fees" type="button"><span class="nav-icon image-icon" aria-hidden="true"><img src="/assets/icons/fees.png" alt="" /></span>班费管理</button>
        <p class="nav-label secondary-label">沟通协作</p>
        <button class="nav-item" data-view="notice" type="button"><span class="nav-icon image-icon" aria-hidden="true"><img src="/assets/icons/notice.png" alt="" /></span>通知与家校</button>
        <button class="nav-item" data-view="schedule" type="button"><span class="nav-icon image-icon" aria-hidden="true"><img src="/assets/icons/schedule.png" alt="" /></span>课程与值日</button>
      </nav>
      <div class="sidebar-bottom">
        <button class="nav-item" type="button" id="settingsButton"><span class="nav-icon icon-settings" aria-hidden="true"></span>班级设置</button>
        <div class="teacher-card">
          <div class="avatar teacher-avatar" id="currentUserAvatar">—</div>
        <div><strong id="currentUserName">—</strong><span id="currentUserRole">—</span></div>
          <button type="button" class="more-button" id="accountButton" aria-label="账户菜单">···</button>
        </div>
      </div>
    </aside>

    <aside class="ai-sidebar-panel" id="aiSidebarPanel" aria-label="AI 小助手" hidden>
      <div class="ai-drawer-heading"><div><strong>AI 小助手</strong><small>班级数据助手</small></div><div class="ai-drawer-actions"><button class="icon-button" type="button" id="aiChatClearButton" aria-label="清空对话" title="清空对话">↺</button><button class="icon-button" type="button" id="aiSidebarClose" aria-label="关闭 AI 面板" title="关闭">×</button></div></div>
      <div id="aiChatMessages" class="ai-chat-messages" aria-live="polite"><div class="ai-welcome"><div class="ai-welcome-title">你好，童老师</div><p>今天需要我帮你处理什么？</p><div class="ai-welcome-prompts"><button type="button" data-ai-prompt="统计今日班级考勤数据，告诉我出勤、缺勤、请假和迟到情况。">统计今日考勤数据</button><button type="button" data-ai-prompt="分析近期学生表现记录趋势，指出需要重点关注的变化。">分析近期表现趋势</button><button type="button" data-ai-prompt="总结今日待办事项重点，并按优先级列出。">总结今日待办重点</button></div></div></div>
      <form id="aiChatForm" class="ai-chat-form"><textarea id="aiChatInput" rows="3" maxlength="4000" placeholder="输入问题，例如：分析近 30 天考勤异常"></textarea><div id="aiAttachmentPreview" class="ai-attachment-preview" hidden></div><div class="ai-chat-actions"><div class="ai-input-tools"><label class="ai-attach-button" for="aiFileInput" title="添加文件" aria-label="添加文件">＋<span>添加文件</span><input id="aiFileInput" type="file" accept="image/*,.pdf,.csv,.txt,.json,.md,.markdown,.docx,.pptx" /></label><span class="form-hint">请勿发送不必要的敏感信息。</span></div><button class="button button-primary" type="submit" id="aiChatSendButton">发送</button></div></form>
      <details class="ai-shortcuts"><summary>常用分析</summary><div class="ai-prompt-list"><button type="button" data-ai-prompt="分析近 30 天考勤异常，按学生统计迟到、缺勤和请假次数，并列出需要优先跟进的人。">分析考勤异常</button><button type="button" data-ai-prompt="提取当前积分低于 0 分的学生，输出姓名、学号、当前积分和最近一条扣分原因。">提取低积分学生</button><button type="button" data-ai-prompt="分析近 30 天表现记录的主要问题和积极变化，按类别给出数量和班级管理建议。">分析表现变化</button><button type="button" data-ai-prompt="汇总班费收入、支出和当前余额，并按项目列出支出最多的项目。">汇总班费</button><button type="button" data-ai-prompt="提取所有被标记为重点关注或系部关注的学生，列出关注等级和已登记的关注事项。不要推断数据中没有的健康结论。">提取关注名单</button></div></details>
    </aside>

    <button class="ai-floating-button" id="aiFloatingButton" type="button" aria-label="打开 AI 小助手" title="打开 AI 小助手">
      <span class="ai-floating-character" aria-hidden="true"><i></i><b></b><em></em></span>
      <span class="ai-floating-label">AI 小助手</span>
    </button>

    <main class="main-content">
      <header class="topbar">
        <div class="breadcrumb"><span>工作台</span><b>/</b><strong id="pageTitle">班级总览</strong></div>
        <div class="top-actions">
          <button class="icon-button" type="button" aria-label="搜索" id="searchButton"><span class="flat-icon icon-search" aria-hidden="true"></span></button>
          <button class="icon-button notification-trigger" type="button" aria-label="消息通知" id="notificationButton"><span class="icon-image icon-image-bell" aria-hidden="true"><img src="/assets/icons/bell.png" alt="" /></span><span id="notificationCount" hidden></span></button>
          <div class="top-date"><span>周三</span><strong>09月23日</strong></div>
        </div>
      </header>

      <div class="content-wrap">
        <section class="view active" id="dashboardView">
          <div class="welcome-row">
            <div>
              <h1><span id="welcomeGreeting">早上好</span>，<span id="welcomeUserName">老师</span></h1>
            </div>
            <div class="header-actions">
              <button class="button button-ghost" type="button" id="quickRecordButton"><span>＋</span> 快速记录</button>
              <button class="button button-primary" type="button" id="noticeButton"><span>↗</span> 发通知</button>
            </div>
          </div>

          <div class="metric-grid">
            <article class="metric-card accent-green">
              <div class="metric-top"><span>今日到课率</span><span class="metric-icon"><img src="/assets/icons/attendance.png" alt="" /></span></div>
              <div class="metric-value" id="dashboardAttendanceMetric">0<span>%</span></div>
              <div class="progress" id="dashboardAttendanceProgress" role="progressbar" aria-label="今日到课率" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"><i style="width:0"></i></div>
              <div class="metric-chart" id="dashboardAttendanceTrend" role="img" aria-label="近七日到课率趋势"></div>
            </article>
            <article class="metric-card accent-orange">
              <div class="metric-top"><span>待处理考勤</span><span class="metric-icon"><img src="/assets/icons/warning.png" alt="" /></span></div>
              <div class="metric-value" id="dashboardPendingMetric">0<span>人</span></div>
              <div class="metric-chart" id="dashboardPendingTrend" role="img" aria-label="近七日待跟进人数趋势"></div>
            </article>
            <article class="metric-card accent-blue">
              <div class="metric-top"><span>全班当前积分</span><span class="metric-icon"><img src="/assets/icons/points.png" alt="" /></span></div>
              <div class="metric-value" id="dashboardScoreMetric">0<span>分</span></div>
              <div class="metric-chart metric-chart-diverging" id="dashboardScoreTrend" role="img" aria-label="近七日每日积分净变化"></div>
            </article>
            <article class="metric-card accent-purple">
              <div class="metric-top"><span>班级通知</span><span class="metric-icon"><img src="/assets/icons/notice.png" alt="" /></span></div>
              <div class="metric-value" id="dashboardNoticeMetric">0<span>次</span></div>
              <div class="metric-chart" id="dashboardNoticeTrend" role="img" aria-label="近七日通知发布量趋势"></div>
            </article>
          </div>

          <section class="panel dashboard-messages-panel" id="dashboardMessagesPanel">
            <div class="panel-heading"><div><h2><span class="panel-title-emoji" aria-hidden="true">✉</span>消息通知</h2></div><span class="dashboard-message-count" id="dashboardMessageCount">0</span></div>
            <div class="dashboard-message-list" id="dashboardMessageList"><p class="empty-state">暂无新消息</p></div>
          </section>

          <div class="dashboard-grid">
            <section class="panel attendance-panel">
              <div class="panel-heading">
                <div><h2><span class="panel-title-emoji" aria-hidden="true">📊</span>今日考勤</h2></div>
                <button class="text-button" type="button" data-view-link="attendance">查看全部 <span>→</span></button>
              </div>
              <div class="dashboard-attendance-charts" id="dashboardAttendanceCharts"><p class="empty-state">暂无今日课程安排</p></div>
            </section>

            <section class="panel todo-panel">
              <div class="panel-heading"><div><h2><span class="panel-title-emoji" aria-hidden="true">📌</span>待办事项</h2></div><span class="count-badge">0</span></div>
              <div class="todo-list" id="todoList"></div>
              <button class="full-button muted" type="button" id="addTodoButton">＋ 添加待办</button>
            </section>
          </div>

          <div class="lower-grid">
            <section class="panel activity-panel">
              <div class="panel-heading"><div><h2><span class="panel-title-emoji" aria-hidden="true">💬</span>班级动态</h2></div><button class="text-button" type="button" data-view-link="behavior">查看记录 <span>→</span></button></div>
              <div class="activity-list" id="dashboardActivityList"><p class="empty-state">暂无班级动态</p></div>
            </section>
            <section class="panel schedule-panel">
              <div class="panel-heading"><div><h2><span class="panel-title-emoji" aria-hidden="true">📚</span>今日课表</h2></div><button class="icon-button small" type="button" aria-label="打开课程与值日" data-view-link="schedule">↗</button></div>
              <div class="schedule-list" id="dashboardScheduleList"><p class="empty-state">暂无课程安排</p></div>
            </section>
          </div>
        </section>

        <section class="view workspace-view" id="attendanceView">
          <div class="view-title"><div><p class="kicker">工作台 / 考勤</p><h1>考勤管理</h1><p class="subtitle">按节次完成点名，异常记录会自动进入待办。</p></div><button class="button button-primary" type="button" id="newAttendanceButton">＋ 新建考勤</button></div>
          <div class="workspace-toolbar"><label class="field compact-field"><span>日期</span><input type="date" id="attendanceDate" /></label><label class="field compact-field"><span>课程</span><select id="attendanceLesson"><option>第 1 节</option><option>第 2 节</option><option>第 3 节</option></select></label><div class="toolbar-spacer"></div><button class="button button-ghost" type="button" id="exportAttendanceButton">↓ 导出记录</button></div>
          <div class="quick-stats"><div class="quick-stat"><span>应到</span><strong id="attendanceCount">0 <small>人</small></strong></div><div class="quick-stat green-stat"><span>已到</span><strong id="presentCount">0 <small>人</small></strong></div><button class="quick-stat orange-stat" type="button" data-attendance-filter="late" aria-pressed="false"><span>迟到</span><strong id="lateCount">0 <small>人</small></strong></button><button class="quick-stat red-stat" type="button" data-attendance-filter="absent-leave" aria-pressed="false"><span>缺勤 / 请假</span><strong id="absentCount">0 <small>人</small></strong></button></div>
          <section class="panel table-panel attendance-record-panel"><div class="table-heading"><div><h2 class="attendance-panel-title">考勤记录</h2><p class="attendance-panel-subtitle">选择日期和课程后查看或登记考勤</p></div><div class="table-heading-actions"><button class="text-button" type="button" id="attendanceApprovalsButton" hidden>待审批</button><button class="text-button" type="button" id="clearAttendanceFilter" hidden>显示全部学生</button><span class="saved-label" id="attendanceSaved">尚无记录</span><span class="attendance-request-status" id="attendanceRequestStatus"></span></div></div><div class="attendance-quick-actions"><button class="button button-primary" type="button" id="markAllPresentButton">✓ 全员到课</button><button class="button button-ghost" type="button" id="addAttendanceExceptionButton">＋ 登记异常</button><button class="button button-ghost" type="button" id="attendanceShowAllButton">查看全班</button></div><div id="attendanceTable" class="attendance-roster"></div><div class="table-footer"><span>默认全员到课，只需登记迟到、缺勤或请假</span><div class="attendance-footer-actions"><button class="button button-ghost" type="button" id="editAttendanceButton" hidden>修改考勤</button><button class="button button-primary" type="button" id="saveAttendanceButton">保存本节考勤</button></div></div></section>
          <section class="panel monthly-leave-panel"><div class="table-heading"><div><h2>月度请假统计</h2><p>按学生汇总当月已登记的请假次数</p></div><div class="monthly-leave-controls"><label class="field compact-field"><span>月份</span><input type="month" id="attendanceLeaveMonth" /></label><label class="field compact-field"><span>请假较多门槛</span><input type="number" id="attendanceLeaveThreshold" min="1" max="99" value="3" /></label></div></div><div class="table-wrap"><table class="data-table"><thead><tr><th>学生</th><th>学号</th><th>请假次数</th><th>标记</th></tr></thead><tbody id="monthlyLeaveTable"><tr><td colspan="4" class="no-results">正在加载月度统计</td></tr></tbody></table></div></section>
        </section>
        <section class="view workspace-view" id="studentsView">
          <div class="view-title"><div><p class="kicker">工作台 / 学生档案</p><h1>学生档案</h1><p class="subtitle">集中管理基础信息、学籍资料、家庭联系人和成长记录。</p></div><div class="header-actions"><button class="button button-ghost" type="button" id="importStudentsButton">↓ 批量导入</button><button class="button button-ghost" type="button" id="batchPhotosButton">▧ 批量添加证件照</button><button class="button button-primary" type="button" id="addStudentButton">＋ 添加学生</button></div></div>
          <div class="workspace-toolbar"><label class="search-field"><span>⌕</span><input id="studentSearch" type="search" placeholder="搜索姓名、学号或标签" /></label><label class="select-field"><select id="studentFilter"><option value="all">全部学生</option><option value="重点关注">重点关注</option><option value="住校生">住校生</option><option value="技能之星">技能之星</option></select></label><div class="toolbar-spacer"></div><div class="view-toggle" role="group" aria-label="档案显示方式"><button class="active" type="button" data-student-view="list" aria-pressed="true" aria-label="列表视图" title="列表视图">☷</button><button type="button" data-student-view="cards" aria-pressed="false" aria-label="卡片视图" title="卡片视图">▦</button></div><span class="result-count" id="studentResultCount">共 0 位学生</span></div>
          <section class="panel table-panel student-results"><div class="table-heading"><div><h2>班级学生</h2><p>点击学生姓名查看成长记录和家校联系人。</p></div><button class="text-button" type="button" id="clearStudentFilter">清除筛选</button></div><div class="table-wrap" id="studentListView"><table class="data-table"><thead><tr><th>学生</th><th>学号</th><th>就读方式</th><th>班级职务</th><th>家长联系方式</th><th>近 30 天表现</th><th></th></tr></thead><tbody id="studentTable"></tbody></table></div><div class="student-card-grid" id="studentCardsView" hidden></div></section>
        </section>
        <section class="view workspace-view" id="behaviorView">
          <div class="view-title"><div><p class="kicker">工作台 / 表现记录</p><h1>学生行为表现</h1><p class="subtitle">从班级整体变化到每位学生的具体行为，持续记录、对照和跟进。</p></div><button class="button button-primary" type="button" id="behaviorButton">＋ 记录表现</button></div>
          <div class="behavior-toolbar"><div class="view-toggle behavior-view-toggle" role="tablist" aria-label="表现分析视角"><button class="active" type="button" data-behavior-view="class" role="tab" aria-selected="true">班级整体</button><button type="button" data-behavior-view="student" role="tab" aria-selected="false">个人画像</button></div><label class="field compact-field"><span>统计范围</span><select id="behaviorPeriod"><option value="7">近 7 天</option><option value="30" selected>近 30 天</option><option value="90">近 90 天</option><option value="all">全部记录</option></select></label><span class="behavior-range-label" id="behaviorRangeLabel"></span></div>
          <section id="behaviorClassView" class="behavior-analysis-view">
            <div class="behavior-metrics" id="behaviorMetrics"></div>
            <section class="panel score-leaderboard-panel">
              <div class="score-board-heading"><div><h2>班级积分榜</h2><p id="scoreBoardPeriodLabel">本周积分 · 周一至今</p><small>按周期内积分净值排名，未产生记录按 0 分计</small></div><div class="view-toggle score-period-tabs" role="group" aria-label="积分榜周期"><button class="active" type="button" data-score-period="week" aria-pressed="true">周榜</button><button type="button" data-score-period="month" aria-pressed="false">月榜</button><button type="button" data-score-period="semester" aria-pressed="false">学期榜</button></div></div>
              <div class="score-leaderboard-grid"><section class="score-rank-section rank-best"><div class="score-rank-heading"><span class="rank-mark" aria-hidden="true">🏅</span><div><h3>积分最好</h3><p>本周期积分最高</p></div></div><div id="scoreBestRanking" class="score-rank-list"></div></section><section class="score-rank-section rank-low"><div class="score-rank-heading"><span class="rank-mark" aria-hidden="true">😞</span><div><h3>积分最低</h3><p>本周期积分最低</p></div></div><div id="scoreLowestRanking" class="score-rank-list"></div></section><section class="score-rank-section rank-rise"><div class="score-rank-heading"><span class="rank-mark" aria-hidden="true">📈</span><div><h3>积分提升最快</h3><p>较上期同阶段积分提升</p></div></div><div id="scoreRiseRanking" class="score-rank-list"></div></section></div>
            </section>
            <div class="behavior-analysis-grid"><section class="panel behavior-analysis-panel"><div class="analysis-heading"><div><h2>行为变化</h2><p>按日汇总正向与需改进记录</p></div><span class="chart-legend"><i class="positive-dot"></i>正向 <i class="caution-dot"></i>需改进</span></div><div id="behaviorTrend" class="behavior-trend"></div></section><section class="panel behavior-analysis-panel"><div class="analysis-heading"><div><h2>行为类别</h2><p>了解近期记录集中在哪些方面</p></div></div><div id="behaviorCategories" class="behavior-categories"></div></section></div>
            <section class="panel behavior-students-panel"><div class="analysis-heading"><div><h2>需要关注的学生</h2><p>按需改进记录数排序，可直接查看个人画像</p></div><span id="behaviorCoverage" class="analysis-count"></span></div><div id="behaviorStudentRanking" class="behavior-ranking"></div></section>
          </section>
          <section id="behaviorStudentView" class="behavior-analysis-view" hidden>
            <div class="behavior-student-picker"><label class="field compact-field"><span>选择学生</span><select id="behaviorStudentSelect"></select></label><span id="behaviorStudentContext"></span><button class="button button-ghost" type="button" id="behaviorViewProfileButton" disabled>查看档案</button></div>
            <div class="behavior-metrics" id="behaviorStudentMetrics"></div>
            <div class="behavior-analysis-grid"><section class="panel behavior-analysis-panel"><div class="analysis-heading"><div><h2>个人变化</h2><p>所选时间范围内的行为记录</p></div></div><div id="behaviorStudentTrend" class="behavior-trend"></div></section><section class="panel behavior-analysis-panel"><div class="analysis-heading"><div><h2>记录构成</h2><p>正向激励与需改进事项</p></div></div><div id="behaviorStudentBreakdown" class="behavior-categories"></div></section></div>
          </section>
          <section class="panel table-panel"><div class="table-heading behavior-record-heading"><div><h2 id="behaviorRecordsTitle">行为记录明细</h2><p>每条记录保留具体事实和后续处理，支持按学生与类型筛选。</p></div><div class="behavior-record-filters"><label class="search-field"><span>⌕</span><input id="behaviorSearch" type="search" placeholder="搜索学生或记录内容" /></label><select class="small-select" id="behaviorFilter"><option value="all">全部类型</option><option value="positive">正向激励</option><option value="caution">需改进</option></select></div></div><div class="record-list" id="behaviorList"></div></section>
        </section>
        <section class="view workspace-view" id="pointsView">
          <div class="view-title"><div><p class="kicker">学生成长 / 积分</p><h1>积分规则与管理</h1><p class="subtitle">维护班级计分办法、学生基础分，并查看考勤与行为产生的积分流水。</p></div><div class="header-actions"><button class="button button-ghost" type="button" id="editBaseScoresButton">调整基础分</button><button class="button button-primary" type="button" id="addPointRuleButton">＋ 新增规则</button></div></div>
          <div class="points-summary" id="pointsSummary"></div>
          <div class="points-toolbar"><div class="view-toggle" id="pointCategoryTabs" role="tablist" aria-label="积分规则分类"></div><label class="search-field"><span>⌕</span><input id="pointRuleSearch" type="search" placeholder="搜索规则、细类或说明" /></label><label class="points-active-toggle"><input id="showInactivePointRules" type="checkbox" />显示停用</label></div>
          <section class="panel table-panel point-rules-panel"><div class="table-heading"><div><h2>积分项目与规则</h2><p>正分为奖励，负分为扣分；调整只影响之后产生的记录。</p></div><span class="result-count" id="pointRuleCount"></span></div><div class="table-wrap"><table class="data-table point-rules-table"><thead><tr><th>分类</th><th>细类</th><th>积分项目</th><th>分值</th><th>规则说明</th><th>状态</th><th></th></tr></thead><tbody id="pointRuleTable"></tbody></table></div></section>
          <section class="panel table-panel point-ledger-panel"><div class="table-heading"><div><h2>积分流水</h2><p>显示最近 1000 条自动计分与行为记录。</p></div><label class="field compact-field"><span>学生</span><select id="pointLedgerStudent"><option value="all">全班学生</option></select></label></div><div class="table-wrap"><table class="data-table"><thead><tr><th>时间</th><th>学生</th><th>分类</th><th>积分项目</th><th>说明</th><th>变动</th><th>当前积分</th></tr></thead><tbody id="pointLedgerTable"></tbody></table></div></section>
        </section>
        <section class="view workspace-view" id="feesView">
          <div class="view-title"><div><p class="kicker">班级财务 / 班费</p><h1>班费管理</h1><p class="subtitle">登记班费收支，随时查看余额和每一笔明细。</p></div><div class="header-actions"><button class="button button-ghost" type="button" id="scanFeeButton">▧ 拍照识别</button><button class="button button-primary" type="button" id="addFeeButton">＋ 记一笔班费</button></div></div>
          <div class="points-summary fee-summary" id="feeSummary"></div>
          <section class="panel table-panel fee-ledger-panel"><div class="table-heading"><div><h2>班费明细</h2><p>收入和支出按发生日期倒序排列，删除记录后余额会自动更新。</p></div><div class="fee-ledger-controls"><label class="field compact-field"><span>收支筛选</span><select id="feeTypeFilter"><option value="all">全部</option><option value="income">收入</option><option value="expense">支出</option></select></label><span class="result-count" id="feeEntryCount"></span></div></div><div class="table-wrap"><table class="data-table"><thead><tr><th>日期</th><th>收支</th><th>项目</th><th>金额</th><th>经手人</th><th>备注</th><th>登记人</th><th></th></tr></thead><tbody id="feeTable"></tbody></table></div></section>
        </section>
        <section class="view workspace-view" id="noticeView">
          <div class="view-title"><div><p class="kicker">沟通协作 / 通知与家校</p><h1>通知与家校</h1><p class="subtitle">统一管理班级通知、家长留言和回执情况。</p></div><button class="button button-primary" type="button" id="newNoticeButton">↗ 发通知</button></div>
          <div class="notice-layout"><section class="panel notice-list-panel"><div class="table-heading"><div><h2>已发送通知</h2><p id="noticeSummary">暂无通知记录</p></div></div><div id="noticeList" class="notice-list"></div></section><section class="panel message-panel"><div class="table-heading"><div><h2>家长留言</h2><p>家长留言会显示在这里。</p></div><span class="count-badge">0</span></div><p class="empty-state">暂无家长留言</p></section></div>
        </section>
        <section class="view workspace-view" id="scheduleView">
          <div class="view-title"><div><p class="kicker">沟通协作 / 课程与值日</p><h1>课程与值日</h1><p class="subtitle">把每天的课程、实训和班级值日排得清楚明白。</p></div><div class="header-actions"><button class="button schedule-edit-toggle" type="button" id="toggleScheduleEditButton" role="switch" aria-checked="false" aria-controls="weeklyScheduleGrid" hidden><span class="schedule-switch-track" aria-hidden="true"></span>编辑课程</button><button class="button button-primary" type="button" id="editScheduleButton" hidden>＋ 添加课程</button></div></div>
          <div class="schedule-layout"><section class="panel table-panel"><div class="table-heading"><div><h2>本周课程</h2><p>按星期查看课程安排</p></div><button class="button button-ghost" type="button" id="todayScheduleButton">回到今天</button></div><div class="week-grid" id="weeklyScheduleGrid"></div></section><section class="panel duty-panel"><div class="table-heading"><div><h2>今日值日</h2><p>完成后勾选事项</p></div><span class="status-pill green" id="dutyStatus">暂无安排</span></div><div class="duty-list" id="dutyList"><p class="empty-state">暂无值日安排</p></div><button class="full-button muted" type="button" id="editDutiesButton">＋ 编辑值日安排</button></section></div>
        </section>
      </div>
    </main>
  </div>
  <div class="modal-backdrop" id="modalBackdrop" hidden><section class="modal" role="dialog" aria-modal="true" aria-labelledby="modalTitle"><div class="modal-heading"><h2 id="modalTitle">新建记录</h2><button class="modal-close" type="button" id="modalClose" aria-label="关闭">×</button></div><div id="modalBody"></div></section></div>
  <div class="toast" id="toast" role="status" aria-live="polite"></div>
  <script src="app.js?v=20260925-ai-floating"></script>
</body>
</html>
    background: rgba(255, 255, 255, 0.96);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
}
