/* ===== 05-dashboard.css —— 工作台（源自原型 V2.10，行区间 437-523） ===== */
  /* ===== Welcome banner (home) ===== */
  .banner{
    min-height:140px;border-radius:var(--radius-lg);
    background:var(--banner-grad);
    padding:26px 32px;
    display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
    color:#fff;
  }
  .banner .greeting{font:700 24px/1.3 var(--font-cn);color:#fff;}
  .banner .greeting-sub{font:400 13px/1.5 var(--font-cn);color:var(--text-onnavy);margin-top:6px;}
  .banner-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
  .btn-cta{
    display:flex;align-items:center;gap:8px;
    background:var(--gold);color:var(--navy-800);
    border:none;border-radius:10px;cursor:pointer;
    padding:12px 18px;font:600 14px/1 var(--font-cn);
  }
  .btn-cta svg{width:18px;height:18px;stroke:#0E2A47;}
  .btn-ghost{
    display:flex;align-items:center;gap:8px;
    background:transparent;color:var(--gold-soft);
    border:1px solid rgba(201,162,74,.6);border-radius:10px;cursor:pointer;
    padding:12px 18px;font:500 14px/1 var(--font-cn);
  }

  /* ===== Home main grid ===== */
  .main-grid{display:flex;gap:20px;align-items:flex-start;}
  .col-left{flex:1;min-width:0;display:flex;flex-direction:column;gap:20px;}
  .col-right{width:370px;flex:none;display:flex;flex-direction:column;gap:20px;}

  /* V2.26：案件概览行改为三行信息（案件名 / 客户·类型·标的 / AI 环节进度条），行高自适应 */
  /* V3.17：「案件概览」卡下线后 .case-row / .case-info / .case-name / .case-client /
     .case-prog / .cp-bar / .cp-txt 一并移除（页面不再渲染）。
     .type-dot 保留 —— 系统公告卡仍在用。 */
  .type-dot{width:8px;height:8px;border-radius:4px;flex:none;}

  .task-row{display:flex;align-items:center;gap:12px;min-height:40px;cursor:pointer;}
  .checkbox{width:18px;height:18px;border-radius:5px;flex:none;display:flex;align-items:center;justify-content:center;}
  .checkbox.done{background:var(--gold);}
  .checkbox.todo{background:#fff;border:1.5px solid #C7CFD9;}
  .task-text{flex:1;font:400 14px/1.3 var(--font-cn);}
  .task-text.done{color:var(--text-meta);text-decoration:line-through;}
  .task-text.todo{color:var(--text-body);}
  .task-time{font:500 12px/1 var(--font-num);color:var(--text-meta);flex:none;}
  .task-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;}
  .task-case{font:400 11px/1.3 var(--font-cn);color:var(--navy-600);background:var(--gold-tint);align-self:flex-start;padding:2px 7px;border-radius:5px;cursor:pointer;transition:background .12s,color .12s,transform .12s;user-select:none;}
  .task-case::after{content:'›';margin-left:3px;font-weight:700;opacity:.55;}
  .task-case:hover{background:var(--gold);color:#fff;transform:translateX(1px);}
  .task-case:hover::after{opacity:1;}
  .task-main{cursor:pointer;}
  .task-main:hover .task-text.todo{color:var(--navy-600);}
  .check-mark{width:11px;height:11px;}

  /* V3.19：「最近文书」卡片下线 —— .doc-row / .doc-icon / .doc-info / .doc-name /
     .doc-meta 样式一并移除（页面不再渲染）。
     .doc-clickable 保留 —— 文书中心的表格行仍在用它。 */
  .doc-clickable{outline:none;}

  /* V3.16：「AI 助手」卡片下线 —— .ai-* / .ar-* / .quick-* 样式一并移除（页面不再渲染）。 */

  .home-todo-more{
    display:flex;align-items:center;justify-content:center;gap:6px;
    padding:12px 4px;font:500 12px/1 var(--font-cn);color:var(--navy-600);
    cursor:pointer;border-top:1px solid #F2F3F7;
    transition:color .12s,background .12s;user-select:none;
  }
  .home-todo-more:hover{color:var(--gold);background:#FAFBFD;}
  .home-todo-more svg{width:12px;height:12px;}

  .ann-row{display:flex;align-items:center;gap:12px;height:50px;}
  .ann-row + .ann-row{border-top:1px solid #F2F3F7;}
  .ann-info{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0;}
  .ann-title{font:500 14px/1.3 var(--font-cn);color:var(--text-body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .ann-meta{font:400 12px/1.4 var(--font-cn);color:var(--text-meta);}
  .ann-row.ann-clickable{cursor:pointer;transition:background .12s;padding-right:14px;}
  .ann-row.ann-clickable:hover{background:#F7F9FC;}
  .ann-row.ann-unread .ann-title{color:var(--text-strong);font-weight:600;}
  .unread-dot{width:7px;height:7px;border-radius:999px;background:#C0392B;flex:none;align-self:center;}


  /* ===== 实时新闻（V3.17）=====
     工作台「实时新闻」卡：当天法律新闻与典型案例混排，每条带类型标签。
     配色沿用工作台既有的蓝 / 金 / 绿三色系：新闻=蓝、典型案例=金、司法解释=绿。 */
  .news-src{font:400 11px/1 var(--font-cn);color:var(--text-meta);margin-left:auto;}
  .news-src.live{color:#2E9E5B;}
  /* V4.00：stale=真实但非本次抓取（琥珀），unavailable=暂不可用（砖红） */
  .news-src.stale{color:#C9A24A;}
  .news-src.unavailable{color:#B45B4E;}
  .news-loading{font:400 13px/1.6 var(--font-cn);color:var(--text-meta);padding:14px 2px;}
  .news-row{
    display:flex;align-items:center;gap:10px;
    min-height:40px;padding:9px 0;color:inherit;text-decoration:none;
  }
  /* V3.18：可点击 —— 悬停整行高亮，右侧出现「›」提示可展开阅读 */
  .news-row.clickable{cursor:pointer;transition:background .12s;border-radius:6px;}
  .news-row.clickable:hover{background:#F7F9FC;}
  .news-row.clickable:hover .news-title{color:var(--navy-600);text-decoration:underline;text-underline-offset:3px;}
  .news-row.clickable:focus-visible{outline:2px solid var(--gold);outline-offset:2px;}
  .news-go{
    flex:none;display:flex;align-items:center;color:var(--text-meta);opacity:0;
    transition:opacity .12s,transform .12s;
  }
  .news-go svg{stroke:currentColor;}
  .news-row.clickable:hover .news-go{opacity:1;transform:translateX(2px);color:var(--navy-600);}
  .news-row + .news-row{border-top:1px solid #F2F3F7;}
  /* 类型标签 */
  .news-tag{
    flex:none;font:600 10px/1 var(--font-cn);letter-spacing:.3px;
    padding:4px 7px;border-radius:5px;white-space:nowrap;
  }
  .news-tag.news{color:#2E5A86;background:#E8EEF5;}
  .news-tag.case{color:#8A6100;background:var(--gold-tint);}
  .news-tag.rule{color:#1E7A44;background:#E7F3EB;}
  /* 标题：一行截断 */
  .news-title{
    flex:1;min-width:0;font:400 13px/1.5 var(--font-cn);color:var(--text-body);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .12s;
  }
  /* 日期标签 */
  .news-date{flex:none;font:400 11px/1 var(--font-num);color:var(--text-meta);white-space:nowrap;}

  /* ===== 资讯阅读弹窗（V3.18）=====
     工作台「实时新闻」点开某条 → 站内弹窗阅读全文。
     正文用报纸式的段落排版：首行缩进、1.9 行距，长文也耐读。 */
  #modalNews .modal{
    width:720px;max-width:100%;
    max-height:86vh;display:flex;flex-direction:column;padding:0;overflow:hidden;
  }
  #modalNews .modal-head{
    margin:0;padding:20px 24px 16px;border-bottom:1px solid var(--border);flex:none;
  }
  #modalNews .modal-title{font-size:16px;}
  #modalNews .modal-body{
    flex:1;min-height:0;overflow-y:auto;padding:22px 26px;gap:0;
  }
  #modalNews .modal-foot{
    margin:0;padding:14px 24px;border-top:1px solid var(--border);
    justify-content:space-between;flex:none;
  }
  /* 标题区 */
  .news-article-head{display:flex;flex-direction:column;gap:9px;padding-bottom:16px;border-bottom:1px solid #F2F3F7;}
  .news-article-title{font:700 19px/1.5 var(--font-cn);color:var(--text-strong);margin:0;}
  .news-article-meta{font:400 12px/1.4 var(--font-num);color:var(--text-meta);}
  /* 正文 */
  .news-article-text{padding-top:16px;display:flex;flex-direction:column;gap:14px;}
  .news-article-text p{
    margin:0;font:400 15px/1.95 var(--font-cn);color:var(--text-body);
    text-indent:2em;text-align:justify;
  }
  /* 加载态 / 失败 / 提示 */
  .news-article-loading{
    padding:22px 0;font:400 13px/1.7 var(--font-cn);color:var(--text-meta);text-align:center;
  }
  .news-article-note{
    margin-top:16px;padding:12px 14px;border-radius:9px;background:var(--gold-tint);
    font:400 12.5px/1.7 var(--font-cn);color:#8a6d1f;
  }
