/* ============================================================
   移动端优化 + 收支详情 / 凭证查看（classfund mobile v1）
   不改动 app.js，通过独立样式与脚本增强
   ============================================================ */

/* ---------- 收支详情（移动端底部抽屉 / 桌面居中弹窗） ---------- */
.txd-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none;align-items:center;justify-content:center;z-index:1000;}
.txd-overlay.open{display:flex;}
.txd-sheet{background:var(--glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border:1px solid var(--glass-border);box-shadow:0 25px 70px rgba(0,0,0,.3);
  border-radius:16px;width:min(560px,92vw);max-height:min(86vh,720px);overflow-y:auto;
  padding:18px 18px calc(18px + env(safe-area-inset-bottom));}
.txd-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;}
.txd-head h3{font-size:17px;margin:0;}
.txd-close{border:none;background:var(--bg-sidebar);color:var(--text);width:32px;height:32px;border-radius:10px;font-size:16px;line-height:1;}
.txd-amount{font-size:28px;font-weight:800;letter-spacing:-.5px;margin:2px 0 14px;}
.txd-amount.income{color:var(--success);}
.txd-amount.expense{color:var(--danger);}
.txd-rows{display:flex;flex-direction:column;gap:1px;background:var(--border);border-radius:12px;overflow:hidden;}
.txd-row{display:flex;gap:12px;padding:11px 13px;background:var(--bg-card);font-size:13px;}
.txd-row .k{flex:0 0 76px;color:var(--text-secondary);}
.txd-row .v{flex:1;word-break:break-word;white-space:pre-wrap;}
.txd-sec{margin-top:16px;}
.txd-sec > b{display:block;font-size:13px;margin-bottom:8px;}
.txd-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px;}
.txd-thumb{position:relative;display:block;padding:0;border:1px solid var(--border);border-radius:10px;
  overflow:hidden;background:var(--bg-sidebar);aspect-ratio:4/3;}
.txd-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.txd-thumb .tag{position:absolute;right:4px;bottom:4px;background:rgba(0,0,0,.55);color:#fff;
  font-size:10px;padding:1px 6px;border-radius:20px;}
.txd-actions{display:flex;gap:8px;margin-top:18px;flex-wrap:wrap;}

/* ---------- 图片 / 发票凭证查看器 ---------- */
.iv-overlay{position:fixed;inset:0;background:rgba(0,0,0,.92);display:none;z-index:1100;
  flex-direction:column;user-select:none;-webkit-user-select:none;}
.iv-overlay.open{display:flex;}
.iv-bar{display:flex;align-items:center;justify-content:space-between;padding:calc(8px + env(safe-area-inset-top)) 12px 8px;color:#fff;font-size:13px;}
.iv-bar .iv-title{opacity:.85;}
.iv-bar .iv-btns{display:flex;gap:8px;}
.iv-btn{border:none;background:rgba(255,255,255,.14);color:#fff;min-width:38px;height:38px;border-radius:11px;
  font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center;}
.iv-btn:active{background:rgba(255,255,255,.28);}
.iv-stage{flex:1;position:relative;overflow:hidden;touch-action:none;display:flex;align-items:center;justify-content:center;}
.iv-img{max-width:100%;max-height:100%;transform-origin:center center;will-change:transform;transition:transform .12s ease-out;
  -webkit-user-drag:none;}
.iv-img.zoomed{transition:none;cursor:grab;}
.iv-nav{position:absolute;top:50%;transform:translateY(-50%);border:none;background:rgba(255,255,255,.16);color:#fff;
  width:40px;height:56px;border-radius:12px;font-size:20px;}
.iv-nav.prev{left:10px;}
.iv-nav.next{right:10px;}
.iv-nav[disabled]{opacity:.25;}
.iv-hint{color:rgba(255,255,255,.6);font-size:11px;text-align:center;padding:6px 0 calc(10px + env(safe-area-inset-bottom));}

/* ---------- 移动端通用优化 ---------- */
@media (max-width:768px){
  /* 详情改成底部抽屉，手指更好够到 */
  .txd-overlay{align-items:flex-end;}
  .txd-sheet{width:100%;max-width:none;border-radius:20px 20px 0 0;max-height:92vh;
    padding-bottom:calc(20px + env(safe-area-inset-bottom));}
  .txd-sheet::before{content:'';display:block;width:38px;height:4px;border-radius:4px;background:var(--border);margin:-6px auto 10px;}
  .txd-row .k{flex-basis:64px;}
  .txd-thumbs{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));}

  /* 表格：行更高、可点、描述换行 */
  .table-wrap table tbody tr{cursor:pointer;position:relative;}
  .table-wrap table tbody tr:active{background:var(--table-hover);}
  .table-wrap th,.table-wrap td{padding:12px 8px;}
  .table-wrap td.m-col-desc{max-width:none;white-space:normal;overflow:visible;text-overflow:clip;min-width:96px;}
  .m-hide-mobile{display:none !important;}
  .table-wrap table tbody tr::after{content:'›';position:absolute;right:6px;top:50%;transform:translateY(-50%);
    color:var(--text-secondary);opacity:.5;font-size:16px;pointer-events:none;}
  /* 行内按钮换行不挤压 */
  .table-wrap td:last-child{white-space:nowrap;}
  .table-wrap td .btn-sm{padding:6px 8px;font-size:12px;}
}
@media (max-width:480px){
  .txd-amount{font-size:24px;}
  .iv-nav{width:34px;height:48px;}
}
/* 移动端工具栏 / 筛选：允许横向滚动，不换行挤压 */
@media (max-width:640px){
  .toolbar{flex-wrap:wrap;gap:6px;}
  .toolbar input,.toolbar select{flex:1 1 calc(50% - 6px);min-width:0;}
  .section-header{flex-wrap:wrap;}
}

/* 详情入口按钮：移动端加大点击区域 */
.m-detail-btn{min-width:36px;padding:4px 8px;font-size:15px;line-height:1.1;}
@media (max-width:768px){
  .m-detail-btn{min-width:44px;min-height:34px;font-size:17px;}
  #dashboardRecent tbody tr,#transactionTable tbody tr{cursor:pointer;}
}
