/* ===== 04-components.css —— 通用卡片 / 表格 / 筛选条 / 统计行 / 统计弹窗（源自原型 V2.10，行区间 298-436） ===== */
  /* ===== Generic card ===== */
  .card{
    background:var(--card);
    border:1px solid var(--border);
    border-radius:var(--radius-card);
    box-shadow:var(--shadow-card);
    padding:20px;
  }
  .card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
  .card-title{font:700 18px/1 var(--font-cn);color:var(--text-strong);}
  .card-link{font:500 13px/1 var(--font-cn);color:var(--text-label);cursor:pointer;text-decoration:none;}
  .card-link:hover{color:var(--navy-600);}

  /* Badges */
  .badge{display:inline-flex;align-items:center;padding:5px 12px;border-radius:999px;font:500 12px/1 var(--font-cn);flex:none;white-space:nowrap;}
  .badge-gold{background:#F7EFD9;color:#A8821F;}
  .badge-navy{background:#E7EEF5;color:#2E5A86;}
  .badge-orange{background:#FDEBE0;color:#C26A0E;}
  .badge-green{background:#E4F4EA;color:#2E9E5B;}
  .badge-gray{background:#F1F2F6;color:#7A8494;}
  .badge-red{background:var(--danger-bg);color:var(--danger);}

  .type-tag{font:500 13px/1 var(--font-cn);}
  .type-blue{color:#2E5A86;}
  .type-orange{color:#C26A0E;}
  .type-green{color:#2E9E5B;}
  .type-gold{color:#A8821F;}
  .type-bluegray{color:#5B6675;}

  /* ===== Tables ===== */
  .table{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);overflow-x:auto;}
  .table-head{
    display:grid;align-items:center;
    padding:0 20px;height:48px;
    border-bottom:1px solid #EAECEF;
    font:500 13px/1 var(--font-cn);color:var(--text-label);
  }
  .table-row{
    display:grid;align-items:center;
    padding:0 20px;min-height:64px;
    border-bottom:1px solid #F0F1F5;
  }
  .table-row:last-child{border-bottom:none;}
  .table-row.clickable{cursor:pointer;transition:background .12s;}
  .table-row.clickable:hover{background:#F7F9FC;}
  .col-name{font:500 14px/1.3 var(--font-cn);color:var(--text-strong);}
  .col-soft{font:400 13px/1.4 var(--font-cn);color:var(--text-label);}
  .col-num{font:400 13px/1.4 var(--font-num);color:var(--text-label);font-variant-numeric:tabular-nums;}

  .grid-cases{grid-template-columns:minmax(0,1fr) 150px 90px 110px 100px 100px;min-width:880px;}
  /* V3.3：材料表在「类型」后新增「证明目的」列 —— 证明目的文字较长，
     给足弹性宽度（minmax(0,1.1fr)），其余列保持原宽，整体最小宽度上调。 */
  .grid-materials{grid-template-columns:minmax(0,1fr) 90px minmax(0,1.1fr) 80px 110px 150px 100px;min-width:1060px;}
  /* V3.21：去掉「操作」列（导出改在详情弹窗里做），4 列 → 3 列 */
  .grid-docs{grid-template-columns:minmax(0,1fr) 130px 110px;min-width:520px;}
  .grid-evidence{grid-template-columns:84px minmax(0,1fr) 80px minmax(0,.9fr) 132px 110px;min-width:860px;}
  .grid-team{grid-template-columns:minmax(0,1fr) 110px 90px 90px 130px;min-width:680px;}
  .grid-log{grid-template-columns:140px 110px 120px minmax(0,1fr) 90px;min-width:760px;}
  .grid-bill{grid-template-columns:150px 110px minmax(0,1fr) 110px 100px;min-width:700px;}

  .row-count{
    font:500 12px/1 var(--font-cn);color:var(--text-meta);
    background:var(--input-bg);border-radius:999px;padding:7px 12px;white-space:nowrap;
  }
  .empty-state{
    padding:44px 20px;text-align:center;
    font:400 13px/1.7 var(--font-cn);color:var(--text-meta);
  }

  /* ===== FilterBar (cases) ===== */
  .filter-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
  .filter-search{
    width:360px;height:42px;flex:none;
    background:var(--input-bg);border-radius:10px;
    display:flex;align-items:center;gap:8px;padding:0 14px;
  }
  .filter-search svg{width:16px;height:16px;flex:none;}
  .filter-search input{
    flex:1;border:none;background:transparent;outline:none;min-width:0;
    font:400 14px/1 var(--font-cn);color:var(--text-body);
  }
  .filter-search input::placeholder{color:var(--text-meta);}
  .status-chips{display:flex;gap:8px;flex-wrap:wrap;}
  .chips{display:flex;gap:8px;flex-wrap:wrap;padding:0 16px 6px;}
  .chip{
    padding:8px 14px;border-radius:999px;cursor:pointer;
    font:500 13px/1 var(--font-cn);border:none;
    background:var(--input-bg);color:var(--text-label);
    transition:background .15s,color .15s;
  }
  .chip.active{background:var(--gold-tint);color:#A8821F;}
  .new-case-btn{
    margin-left:auto;height:42px;
    background:var(--gold);color:var(--navy-800);
    border:none;border-radius:10px;cursor:pointer;
    padding:0 16px;font:600 14px/1 var(--font-cn);
    display:flex;align-items:center;gap:8px;white-space:nowrap;
  }
  .new-case-btn svg{width:16px;height:16px;stroke:#0E2A47;}

  /* ===== Stats row ===== */
  .stats-row{display:flex;gap:16px;flex-wrap:wrap;}
  .stat-card{
    flex:1;min-width:200px;background:var(--card);
    border:1px solid var(--border);border-radius:var(--radius-card);
    box-shadow:var(--shadow-card);
    padding:16px 18px;
    display:flex;flex-direction:column;gap:6px;
    position:relative;cursor:pointer;
  }
  .stat-card .label{font:500 13px/1.4 var(--font-cn);color:var(--text-label);}
  .stat-card .number{font:700 30px/1 var(--font-num);color:var(--text-strong);font-variant-numeric:tabular-nums;}
  .stat-card .sub{font:500 12px/1.4 var(--font-cn);color:var(--text-meta);}
  .stat-card .stat-more{position:absolute;top:14px;right:14px;display:flex;align-items:center;gap:2px;
    font:600 11px/1 var(--font-cn);color:var(--gold,#C9A24A);opacity:.85;pointer-events:none;}
  .stat-card .stat-more svg{width:11px;height:11px;}

  /* ===== 统计明细弹窗（V2.8） ===== */
  .stat-counts{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;}
  .stat-chip{font:500 12px/1 var(--font-cn);color:var(--text-label);background:var(--input-bg,#F1F2F6);
    padding:6px 10px;border-radius:20px;display:inline-flex;align-items:center;gap:4px;}
  .stat-chip b{font:700 13px/1 var(--font-num);color:var(--text-strong);}
  .stat-chip.gold{background:var(--gold-tint);color:#8A6D1F;}
  .stat-chip.gold b{color:#8A6D1F;}
  .stat-chip.green{background:#E4F4EA;color:#1E7A44;}
  .stat-chip.green b{color:#1E7A44;}
  .stat-chip.navy{background:#E8EEF5;color:#2E5A86;}
  .stat-chip.navy b{color:#2E5A86;}
  .stat-chip.red{background:var(--danger-bg);color:var(--danger);}
  .stat-chip.red b{color:var(--danger);}
  .stat-list{display:flex;flex-direction:column;gap:8px;max-height:min(56vh,420px);overflow:auto;padding-right:2px;}
  .stat-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);
    border-radius:10px;background:var(--card);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease;}
  .stat-row:hover{border-color:rgba(201,162,74,.55);background:#FDFBF4;box-shadow:0 4px 12px rgba(13,26,51,.07);}
  .stat-row .s-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;}
  .stat-row .s-name{font:500 13px/1.4 var(--font-cn);color:var(--text-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .stat-row .s-meta{font:400 11px/1.3 var(--font-cn);color:var(--text-meta);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .stat-row .s-num{font:700 13px/1 var(--font-num);color:var(--navy-600);flex-shrink:0;}
  .stat-row .s-arrow{width:14px;height:14px;color:var(--gold,#C9A24A);flex-shrink:0;opacity:.9;}
  .stat-bar{flex:1;min-width:80px;height:6px;border-radius:3px;background:#EEF1F5;overflow:hidden;flex-shrink:0;}
  .stat-bar-fill{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,#2E5A86,#C9A24A);transition:width .3s ease;}


  /* V3.41：个人中心整页下线，「我的账号」名片样式随之移除。
     账号身份改由「设置中心 · 身份」承载（.session-row / .rc-avatar）；
     V3.64 该块自「安全与留痕」迁入「身份与授权」，原名「当前会话」已更名。 */
