/* ════════════════════════════════════════════════════════
 * flow-modal.css — 收款/付款/转账 共享弹窗组件样式
 * 配套: accounts/flow-modal.js
 * 自包含：不依赖页面自身的 .modal 系列样式（后加载覆盖页面同名类）
 * ════════════════════════════════════════════════════════ */

/* ── 弹窗基础 ── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.4);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:999;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity 0.2s;}
.modal-overlay.show{opacity:1;pointer-events:all;}
.modal{background:#fff;border-radius:16px;box-shadow:0 16px 48px rgba(0,0,0,0.12);width:700px;max-width:94vw;max-height:90vh;overflow-y:auto;padding:28px;}
.modal h3{font-size:17px;font-weight:700;margin-bottom:20px;letter-spacing:-.02em;}
.modal .field{margin-bottom:14px;}
.modal label{display:block;font-size:13px;font-weight:600;color:var(--text-secondary,#6e6e73);margin-bottom:5px;}
.modal input[type=text],.modal input[type=number],.modal select,.modal textarea{width:100%;height:38px;padding:0 10px;border:1px solid rgba(0,0,0,0.07);border-radius:8px;font-size:14px;outline:none;font-family:var(--font,sans-serif);color:var(--text-primary,#1d1d1f);background:#fff;}
.modal input[type=date]{height:38px;padding:0 10px;border:1px solid rgba(0,0,0,0.07);border-radius:8px;font-size:14px;outline:none;font-family:var(--font,sans-serif);background:#fff;}
.modal textarea{height:70px;padding:8px 10px;resize:vertical;}
.modal input:focus,.modal select:focus,.modal textarea:focus{border-color:var(--accent,#1a56db);box-shadow:0 0 0 3px rgba(26,86,219,0.10);}
.modal-btns{display:flex;gap:10px;justify-content:flex-end;margin-top:20px;}

/* ── 按钮（兜底，页面已有同名类则后加载覆盖） ── */
.btn{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 18px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;border:none;transition:all 0.2s ease;text-decoration:none;font-family:var(--font,sans-serif);}
.btn-primary{background:var(--accent,#1a56db);color:#fff;}
.btn-primary:hover{background:#1446b8;}
.btn-ghost{background:transparent;color:var(--text-secondary,#6e6e73);border:1px solid rgba(0,0,0,0.07);}
.btn-ghost:hover{background:rgba(0,0,0,.04);}
.btn-sm{height:30px;padding:0 10px;font-size:12px;}

/* ── 搜索选择器（往来单位下拉） ── */
.search-select{position:relative;}
.search-select input{width:100% !important;}
.search-select .dropdown{position:absolute;top:100%;left:0;width:760px;max-height:200px;overflow-y:auto;background:#fff;border:1px solid var(--accent,#1a56db);border-top:none;border-radius:0 0 8px 8px;z-index:10001;box-shadow:0 4px 12px rgba(0,0,0,0.1);}
.search-select .dropdown .item{padding:10px 12px;font-size:13px;cursor:pointer;border-bottom:0.5px solid rgba(0,0,0,0.07);display:flex;justify-content:space-between;align-items:center;}
.search-select .dropdown .item:last-child{border-bottom:none;}
.search-select .dropdown .item:hover,.search-select .dropdown .item.active{background:rgba(26,86,219,0.10);}
.search-select .dropdown .item .sub{font-size:11px;color:var(--text-muted,#aeaeb2);}

/* ── 往来单位余额标签 ── */
.bal-tag{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:6px;font-size:12px;background:#f8fafc;border:1px solid rgba(0,0,0,0.07);white-space:nowrap;}
.bal-tag b{font-variant-numeric:tabular-nums;}
.bal-tag .bal-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;}
.bal-tag.debt .bal-dot{background:#d97706;}
.bal-tag.debt{color:#92400e;background:#fef3c7;border-color:#fde68a;}
.bal-tag.adv .bal-dot{background:#15803d;}
.bal-tag.adv{color:#15803d;background:#f0fdf4;border-color:#bbf7d0;}
.bal-tag.zero .bal-dot{background:#9ca3af;}
.bal-tag.zero{color:var(--text-muted,#aeaeb2);}

/* ── 隐藏已收/已付开关 ── */
.hide-paid-toggle{font-size:12px;color:var(--text-secondary,#6e6e73);cursor:pointer;display:inline-flex;align-items:center;gap:4px;user-select:none;white-space:nowrap;flex-shrink:0;}
.hide-paid-toggle input{accent-color:var(--accent,#1a56db);cursor:pointer;}

/* ── 关联单据多选列表 ── */
.order-list{padding:2px 0;}
.order-item{display:flex;align-items:center;gap:8px;padding:6px 10px;border-bottom:0.5px solid rgba(0,0,0,0.07);cursor:pointer;transition:background 0.15s;font-size:13px;}
.order-item:hover{background:rgba(26,86,219,0.04);}
.order-item:last-child{border-bottom:none;}
.order-item .check-box{width:16px;height:16px;border:1.5px solid #d1d5db;border-radius:4px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all 0.15s;}
.order-item.checked .check-box{background:var(--accent,#1a56db);border-color:var(--accent,#1a56db);}
.order-item.checked .check-box::after{content:'';width:5px;height:8px;border:solid #fff;border-width:0 1.5px 1.5px 0;transform:rotate(45deg);margin-top:-1px;}
.order-item .order-info{flex:1;min-width:0;display:flex;align-items:center;gap:8px;}
.order-item .order-no{font-family:var(--font-mono,monospace);font-size:12px;color:var(--accent,#1a56db);white-space:nowrap;}
.order-item .order-date{font-size:11px;color:var(--text-muted,#aeaeb2);white-space:nowrap;}
.order-item .order-amt{font-size:12px;color:var(--text-secondary,#6e6e73);white-space:nowrap;}
.order-item .order-amt::before{content:'结算 ';color:var(--text-muted,#aeaeb2);font-size:11px;}
.order-item .order-unpaid{font-size:12px;font-weight:600;color:#b45309;white-space:nowrap;}
.order-item .doc-type-tag{display:inline-block;padding:1px 5px;border-radius:3px;font-size:10px;background:#fef3c7;color:#92400e;flex-shrink:0;}
.order-item .alloc-wrap{display:flex;align-items:center;gap:6px;margin-left:auto;white-space:nowrap;}
.order-item .alloc-wrap.hidden{display:none;}
.order-item .alloc-input{width:96px;height:26px;font-size:12px;padding:0 6px;border:1px solid rgba(0,0,0,0.07);border-radius:6px;text-align:right;font-family:var(--font-mono,monospace);outline:none;}
.order-item .alloc-input:focus{border-color:var(--accent,#1a56db);}
.order-item .alloc-input.over{border-color:#dc2626;background:rgba(220,38,38,.06);color:#dc2626;}
.alloc-hint{font-size:12px;color:var(--text-muted,#aeaeb2);margin-top:4px;}
.alloc-hint.over{color:#dc2626;}
.alloc-hint b{font-weight:600;color:var(--text-primary,#1d1d1f);}

/* ── 快捷填入按钮 ── */
.quick-fill{margin-top:4px;display:flex;flex-wrap:wrap;gap:4px;align-items:center;}
.quick-fill-label{font-size:10px;color:var(--text-muted,#aeaeb2);margin-right:2px;font-weight:400;white-space:nowrap;user-select:none;}
.quick-fill-btn{height:22px;padding:0 7px;border-radius:4px;border:0.5px solid rgba(0,0,0,0.07);background:transparent;font-size:11px;color:var(--text-secondary,#6e6e73);cursor:pointer;transition:all 0.2s ease;font-family:var(--font,sans-serif);line-height:1;white-space:nowrap;}
.quick-fill-btn:hover{background:rgba(26,86,219,0.10);color:var(--accent,#1a56db);border-color:var(--accent,#1a56db);}
.quick-fill-btn.active{background:var(--accent,#1a56db);color:#fff;border-color:var(--accent,#1a56db);}

/* ── 布局工具 ── */
.hidden{display:none !important;}
.flex-row{display:flex;gap:12px;}
.flex-row .field{flex:1;}
.text-muted{color:var(--text-muted,#aeaeb2);}

/* ── Toast ── */
.toast{position:fixed;top:80px;left:50%;transform:translateX(-50%);padding:10px 24px;border-radius:8px;font-size:14px;font-weight:600;z-index:9999;animation:fmFadeIn 0.3s ease;box-shadow:0 4px 16px rgba(0,0,0,0.12);}
.toast-success{background:#dcfce7;color:#15803d;}
.toast-error{background:#fef2f2;color:#dc2626;}
.toast-warn{background:#fef3c7;color:#92400e;}
@keyframes fmFadeIn{from{opacity:0;transform:translateX(-50%) translateY(8px);}to{opacity:1;transform:translateX(-50%) translateY(0);}}
