:root {
  --menu-offset: 140px;
  --bg: #f5f7fa;
  --card: #ffffff;
  --ink: #1f2733;
  --muted: #6b7685;
  --line: #e4e9f0;
  --primary: #2563eb;
  --primary-ink: #fff;
  --green: #16a34a;
  --red: #dc2626;
  --amber: #d97706;
  --soft: #eef3ff;
}
#mainTabs .tab { user-select:none; -webkit-user-select:none; touch-action:pan-y; }
#mainTabs .menu-dragging { color:transparent!important; background:#e6efff!important; outline:2px dashed #93b4f8; box-shadow:inset 0 0 0 2px #fff; }
#mainTabs .menu-dragging * { visibility:hidden; }
.menu-is-dragging,.menu-is-dragging * { cursor:grabbing!important; }
.menu-drag-ghost { position:fixed; z-index:10000; pointer-events:none; margin:0; display:flex; align-items:center; justify-content:center; gap:4px; background:#fff; border:1px solid #aec7fa; box-shadow:0 16px 35px #183b6740,0 4px 10px #183b6725; transform:scale(1.06) rotate(-1deg); animation:menu-lift .16s ease-out; }
@keyframes menu-lift { from { transform:scale(1);box-shadow:0 2px 4px #183b6710; } }
@media(prefers-reduced-motion:reduce) { .menu-drag-ghost { animation:none;transform:none; } }
.menu-reset { position:absolute; right:24px; bottom:6px; font-size:20px; }
.menu-save-status { position:absolute; right:56px; bottom:10px; max-width:65%; font-size:12px; color:#64748b; }
#stickyMenu.is-collapsed .menu-reset,#stickyMenu.is-collapsed .menu-save-status { display:none; }
#vlTable { max-height:calc(100vh - var(--menu-offset) - 60px); overflow:auto; }
#vlTable .vl-sort-button { border:0; background:transparent; color:inherit; font:inherit; font-weight:700; white-space:nowrap; cursor:pointer; padding:5px 2px; }
#vlTable .vl-sort-button:focus-visible { outline:2px solid #2563eb; }
* { box-sizing: border-box; }
body {
  margin: 0;
  font-family: -apple-system, "Segoe UI", "Microsoft YaHei", Roboto, sans-serif;
  background: var(--bg);
  color: var(--ink);
  font-size: 14px;
}
.topbar {
  display: flex; justify-content: space-between; align-items: center;
  padding: 14px 22px; background: var(--card); border-bottom: 1px solid var(--line);
  flex-wrap: wrap; gap: 12px;
}
.brand { display: flex; gap: 12px; align-items: center; }
.brand-logo { display:block; width:42px; height:42px; object-fit:contain; border-radius:13px; }
.title { font-size: 18px; font-weight: 700; }
.subtitle { color: var(--muted); font-size: 12px; margin-top: 2px; }
.top-actions { display: flex; gap: 16px; flex-wrap: wrap; }
.top-actions label, .card label, .panel label {
  display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--muted);
}
input, select, textarea {
  font: inherit; color: var(--ink); padding: 7px 9px;
  border: 1px solid var(--line); border-radius: 8px; background: #fff; width: 100%;
}
input[readonly] { background: #f1f4f8; color: var(--ink); }
.tabs { display: flex; gap: 6px; padding: 12px 22px 0; flex-wrap: wrap; }
#stickyMenu { position: sticky; top: 0; z-index: 20; background: var(--bg); padding-bottom: 6px; box-shadow: 0 3px 8px #1836580a; }
#stickyMenu .tabs { max-height: 55vh; overflow-y: auto; }
#stickyMenu.is-collapsed .tabs { display: none; }
#stickyMenu.is-collapsed { background: transparent; box-shadow: none; pointer-events: none; }
#menuToggle { display: block; width: 80px; height: 28px; padding: 0; margin: 5px auto 0; border: 1px solid #d3dff2; border-radius: 0 0 16px 16px; background: #edf3fc; color: #48658d; box-shadow: 0 3px 8px #23467416; cursor: pointer; font-size: 15px; letter-spacing: 0; pointer-events: auto; }
#menuToggle:hover { background: #dfeaff; color: #1d4ed8; }
#menuToggle:focus-visible, .dt-card:focus-visible { outline: 3px solid #2563eb; outline-offset: 2px; }
html { scroll-padding-top: var(--menu-offset); }
.repair-form, #dtDetail { scroll-margin-top: var(--menu-offset); }
#downtimePanel { margin-top: 10px; }
.dt-heading, .dt-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.dt-heading h2 { font-size: 20px; }
.dt-filters, .dt-fields { display: grid; grid-template-columns: repeat(auto-fit,minmax(160px,1fr)); gap: 12px; align-items: end; margin: 12px 0; }
.dt-filters input, .dt-filters select, .dt-fields input, .dt-fields select { width: 100%; min-width: 0; height: 40px; min-height: 40px; max-height: 40px; flex: none; }
.dt-filters > label, .dt-fields > label { min-width: 0; height: auto; }
.dt-filters > button { justify-self: start; align-self: end; min-height: 40px; }
.dt-checks { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px 0; }
.panel .dt-check { display: inline-flex; flex-direction: row; align-items: center; gap: 7px; background: #f5f8fd; border: 1px solid #dce5f2; border-radius: 8px; padding: 8px 12px; cursor: pointer; color: #354c69; }
.dt-check input[type=checkbox] { width: 16px; height: 16px; min-height: 16px; padding: 0; margin: 0; flex: none; accent-color: #2563eb; }
.dt-check:has(input:checked) { background: #eaf1ff; border-color: #7ca5f5; }
.dt-fault-filter summary { cursor: pointer; color: #3f5c80; padding: 8px 0; }
.dt-cards { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 12px; margin: 12px 0; }
.dt-card { text-align: left; border: 1px solid #dce5f2; background: #fff; border-radius: 12px; padding: 16px; color: #345171; cursor: pointer; min-width: 0; }
.dt-card span { display: block; min-height: 34px; line-height: 1.4; }
.dt-card strong { display: block; font-size: 30px; margin-top: 6px; }
.dt-card.selected { outline: 2px solid #2563eb; outline-offset: -2px; background: #f0f5ff; }
.dt-card.dt-parts strong { color: #b7790c; }.dt-card.dt-major strong { color: #c53434; }.dt-card.dt-delivery strong { color: #138367; }
.dt-table-wrap { overflow: auto; max-height: 580px; border: 1px solid #e4e9f0; border-radius: 10px; }
.dt-table { min-width: 1050px; border-collapse: separate; border-spacing: 0; }
.dt-table th { position: sticky; top: 0; z-index: 2; padding: 12px; }
.dt-table td { text-align: left; padding: 14px 12px; max-width: 240px; overflow-wrap: anywhere; }
.dt-table small, .dt-detail-grid small { display: block; color: #6b7685; font-size: 12px; margin-top: 6px; }
.dt-badge { display: inline-block; padding: 4px 8px; border-radius: 6px; background: #edf3ff; color: #315c9b; }
.dt-badge.dt-parts { background: #fff4dc; color: #97650a; }.dt-badge.dt-major { background: #fff0ee; color: #b03131; }.dt-badge.dt-delivery { background: #e7f8f0; color: #187450; }
.dt-detail { padding: 20px; border: 1px solid #ccdcef; border-radius: 12px; background: #fafcff; margin-top: 14px; }
.dt-detail-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); gap: 14px; margin-bottom: 14px; overflow-wrap: anywhere; }
.dt-actions { justify-content: flex-start; margin: 12px 0; }
.dt-detail details { border-top: 1px solid #e4e9f0; padding-top: 12px; }
.dt-editor { min-width: 0; margin: 16px 0; padding: 14px; border: 1px solid #dce5f2; border-radius: 12px; }
.dt-editor legend { color: #315c9b; padding: 0 6px; font-weight: 600; }
.dt-fault-label { color: #4e6686; font-size: 12px; }
@media(max-width:900px) { .dt-cards { grid-template-columns: repeat(2,minmax(0,1fr)); } .dt-card:first-child { grid-column: 1 / -1; } .dt-card { padding: 12px; } .dt-card span { min-height: 0; } }
@media(max-width:480px) { #stickyMenu .tabs { padding: 8px 10px 0; } #stickyMenu .tab { padding: 8px 10px; font-size: 12px; } .dt-filters, .dt-fields { grid-template-columns: 1fr; } .dt-detail { padding: 12px; } .dt-detail-grid { grid-template-columns: 1fr; } }
.tab {
  border: none; background: transparent; color: var(--muted);
  padding: 10px 16px; border-radius: 10px 10px 0 0; cursor: pointer; font-size: 14px; font-weight: 600;
}
.tab.active { background: var(--card); color: var(--primary); box-shadow: 0 -2px 6px rgba(0,0,0,.04); }
main { padding: 18px 22px 60px; }
.panel { display: none; }
.panel.active { display: block; }
.card {
  background: var(--card); border: 1px solid var(--line); border-radius: 14px;
  padding: 18px 20px; margin-bottom: 16px; box-shadow: 0 1px 3px rgba(16,24,40,.04);
}
.card h2 { margin: 0 0 4px; font-size: 16px; }
.card h3 { margin: 0 0 10px; font-size: 14px; color: var(--primary); }
.hint { color: var(--muted); font-size: 12px; margin: 4px 0 14px; }
.table-wrap { overflow-x: auto; }
table { border-collapse: collapse; width: 100%; min-width: 640px; }
th, td { border: 1px solid var(--line); padding: 8px 10px; text-align: center; }
th { background: var(--soft); font-size: 12px; }
td input { text-align: center; padding: 6px; }
.total-row td { background: #f8fafc; font-weight: 700; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; }
.full { width: 100%; }
.money-eq { color: var(--muted); font-size: 12px; margin-top: 10px; }
.actions { margin-top: 8px; display: flex; align-items: center; gap: 14px; }
.btn-primary {
  background: var(--primary); color: var(--primary-ink); border: none;
  padding: 11px 22px; border-radius: 10px; font-weight: 700; cursor: pointer; font-size: 14px;
}
.btn-primary:hover { background: #1d4ed8; }
.btn-logout{align-self:center;border:1px solid #fecaca;background:#fff1f2;color:#b91c1c;padding:8px 11px;border-radius:8px;font-weight:700;cursor:pointer;white-space:nowrap}.btn-logout:hover{background:#fee2e2}
.btn-account{align-self:center;border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;padding:8px 11px;border-radius:8px;font-weight:700;cursor:pointer;white-space:nowrap}.btn-account:hover{background:#dbeafe}.field-hint{display:block;margin-top:4px;color:var(--muted);font-size:12px}.password-card{max-width:430px}
.btn-mini {
  background: var(--soft); color: var(--primary); border: 1px solid #dbe5ff;
  padding: 8px 14px; border-radius: 8px; cursor: pointer; font-weight: 600; margin-top: 10px;
}
.save-status { color: var(--green); font-size: 13px; }
.note-list { margin-top: 12px; display: flex; flex-direction: column; gap: 8px; }
.note-item { background: #f8fafc; border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; }
.note-item .who { font-weight: 700; color: var(--primary); font-size: 12px; }
.note-item .when { color: var(--muted); font-size: 11px; margin-left: 8px; }
.summary-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; margin-bottom: 16px; }
.kpi {
  background: linear-gradient(180deg, #ffffff 0%, #f7fafd 100%);
  border: 1px solid var(--line); border-radius: 16px; padding: 18px 16px 14px;
  box-shadow: 0 1px 3px rgba(16,24,40,.06);
  transition: transform .12s ease, box-shadow .12s ease;
}
.kpi:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(16,24,40,.10); }
.kpi .kpi-label, .kpi-label { color: var(--muted); font-size: 12px; font-weight: 600; }
.kpi .kpi-value, .kpi-value { font-size: 28px; font-weight: 900; margin-top: 6px; color: var(--ink); line-height: 1.15; letter-spacing: .2px; }
.kpi .kpi-sub, .kpi-sub { color: var(--muted); font-size: 11px; margin-top: 5px; }
.kpi .label { color: var(--muted); font-size: 12px; font-weight: 600; }
.kpi .value { font-size: 28px; font-weight: 900; margin-top: 6px; color: var(--ink); line-height: 1.15; }
.kpi .sub { color: var(--muted); font-size: 11px; margin-top: 5px; }
.value.green { color: var(--green); }
.value.red { color: var(--red); }
.value.amber { color: var(--amber); }
.value-green { color: var(--green) !important; }
.value-red { color: var(--red) !important; }
.value-blue { color: var(--primary) !important; }
.value-amber { color: var(--amber) !important; }
.value-teal { color: #0d9488 !important; }
.value-purple { color: #7c3aed !important; }
/* 公司回款页 */
.coboard-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 1100px) { .coboard-grid { grid-template-columns: 1fr; } }
.coboard-card {
  border-radius: 18px; border: 1px solid var(--line);
  overflow: hidden; box-shadow: 0 2px 10px rgba(16,24,40,.06);
  background: var(--card); display: flex; flex-direction: column;
}
.coboard-head {
  display: flex; align-items: center; gap: 10px;
  padding: 16px 18px 14px; color: #fff;
  background: linear-gradient(120deg, #2563eb, #1d4ed8);
}
.coboard-head .cb-logo {
  width: 36px; height: 36px; border-radius: 10px; background: rgba(255,255,255,.22);
  display: flex; align-items: center; justify-content: center; font-size: 20px; font-weight: 800; color: #fff;
}
.coboard-head .cb-title { font-size: 17px; font-weight: 800; color: #fff; }
.coboard-head .cb-sub { font-size: 12px; opacity: .85; color: #fff; margin-top: 2px; }
.coboard-body { padding: 14px 16px 16px; flex: 1; }
.coboard-sec { margin-top: 14px; }
.coboard-sec:first-child { margin-top: 0; }
.coboard-sec-title {
  display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 800; color: var(--ink);
  margin-bottom: 10px;
}
.coboard-sec-title::before {
  content: ''; width: 4px; height: 14px; border-radius: 2px; background: var(--primary);
}
.coboard-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.coboard-kpi {
  background: linear-gradient(180deg, #ffffff, #f7fafd); border: 1px solid var(--line);
  border-radius: 14px; padding: 12px 12px 10px; position: relative; overflow: hidden;
}
.coboard-kpi .kpi-label { font-size: 11px; }
.coboard-kpi .kpi-value { font-size: 26px; }
.coboard-kpi.dark { background: linear-gradient(180deg, #1e293b, #0f172a); border-color: #1e293b; }
.coboard-kpi.dark .kpi-label { color: #94a3b8; }
.coboard-kpi.dark .kpi-value { color: #fff; }
.coboard-kpi.dark .kpi-sub { color: #64748b; }
.bar { height: 8px; background: #eef2f7; border-radius: 6px; overflow: hidden; margin-top: 8px; }
.bar > span { display: block; height: 100%; background: var(--primary); }
.mini-table { width: 100%; border-collapse: collapse; }
.mini-table th, .mini-table td { border: 1px solid var(--line); padding: 7px 9px; font-size: 13px; }
.mini-table th { background: var(--soft); }
.trend { display: flex; flex-direction: column; gap: 18px; margin-top: 8px; }
.trend-card { border: 1px solid var(--line); border-radius: 12px; padding: 12px; }
.trend-card h4 { margin: 0 0 8px; font-size: 13px; }
.svg-chart { width: 100%; height: auto; }
.pill { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 700; }
.pill.green { background: #dcfce7; color: var(--green); }
.pill.red { background: #fee2e2; color: var(--red); }
.overlay { position: fixed; inset: 0; background: rgba(15,23,42,.55); display: flex; align-items: center; justify-content: center; z-index: 50; }
.overlay.hidden { display: none; }
.login-card { background: #fff; border-radius: 16px; padding: 26px 28px; width: 320px; box-shadow: 0 10px 40px rgba(0,0,0,.2); }
.login-card h2 { margin: 0 0 6px; font-size: 17px; }
.login-card input { margin: 12px 0; }
.login-card .btn-primary { width: 100%; }
.login-err { color: var(--red); font-size: 13px; min-height: 16px; margin-top: 6px; }
#loginOverlay{padding:28px;background:radial-gradient(circle at 8% 92%,#d8ecff 0,transparent 29%),radial-gradient(circle at 92% 94%,#e6f3ff 0,transparent 32%),linear-gradient(115deg,#f9fcff,#f2f7ff 55%,#fbfdff);overflow:auto}
.login-shell{position:relative;width:min(1160px,100%);min-height:620px;display:grid;grid-template-columns:minmax(400px,1.08fr) minmax(400px,.92fr);gap:52px;align-items:center}.login-shell:before,.login-shell:after{content:"";position:absolute;pointer-events:none;border:1px solid rgba(96,165,250,.16);border-radius:50%}.login-shell:before{width:780px;height:780px;left:-420px;bottom:-480px}.login-shell:after{width:670px;height:670px;left:70px;top:-570px}
.login-brand-panel{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:520px;padding:46px 32px;color:#102c61;overflow:hidden}.login-brand-panel:before{content:"";position:absolute;inset:45px 40px 45px 30px;background:repeating-linear-gradient(145deg,transparent 0 42px,rgba(96,165,250,.075) 43px 44px),repeating-linear-gradient(30deg,transparent 0 62px,rgba(96,165,250,.06) 63px 64px);mask-image:linear-gradient(to bottom,transparent,black 18%,black 82%,transparent);pointer-events:none}.login-brand-copy,.login-brand-foot{position:relative;z-index:1}.login-brand-copy{display:flex;flex-direction:column;align-items:center;text-align:center}.login-logo-wrap{width:150px;height:150px;display:grid;place-items:center;padding:11px;border-radius:37px;background:rgba(255,255,255,.97);box-shadow:0 18px 36px rgba(62,104,164,.16)}.login-logo-wrap img{display:block;width:100%;height:100%;object-fit:contain;border-radius:27px}
.login-brand-name{margin-top:30px;font-size:46px;line-height:1.08;font-weight:800;letter-spacing:-1.8px}.login-brand-subtitle{margin:12px 0 0;font-size:20px;color:#48658f;font-weight:600}.login-brand-foot{display:grid;justify-items:center;gap:12px;margin-top:55px;text-align:center;color:#7890b2;font-size:13px;letter-spacing:.14em}.login-brand-foot:before{content:"";width:66px;height:6px;border-radius:999px;background:linear-gradient(90deg,#f2397a,#ffb847,#3c9cf3)}.login-brand-foot strong{font-size:17px;letter-spacing:0;color:#355582}
.login-form-panel{display:flex;flex-direction:column;justify-content:center;min-height:548px;box-sizing:border-box;padding:42px 50px;background:rgba(255,255,255,.94);border:1px solid rgba(220,230,244,.9);border-radius:26px;box-shadow:0 22px 55px rgba(65,96,144,.14)}.login-form-top{display:flex;justify-content:flex-end;align-items:center;min-height:40px;margin-bottom:25px}.login-mobile-brand{display:none}.login-lang{display:flex;align-items:center;gap:8px;font-size:12px;color:#64748b;font-weight:700}.login-lang select{border:1px solid #d8e2f1;border-radius:9px;background:#fff;color:#1e3a6d;padding:8px 28px 8px 10px;font:inherit;font-size:13px}
.login-form-heading{margin-bottom:27px}.login-form-heading h2{margin:0;color:#102a5b;font-size:37px;letter-spacing:-1px}.login-form-heading p{margin:9px 0 0;color:#6b7c9d;font-size:14px}.login-field{display:block;margin:16px 0}.login-field>span{display:block;margin-bottom:7px;color:#314567;font-weight:700;font-size:14px}.login-field input{box-sizing:border-box;width:100%;margin:0;padding:13px 14px;border:1px solid #d8e2f1;border-radius:10px;background:#fbfdff;color:#152b55;font-size:15px;outline:none;transition:border-color .18s,box-shadow .18s}.login-field input:focus{border-color:#2876e8;box-shadow:0 0 0 3px rgba(40,118,232,.12)}.login-form-panel .btn-primary{width:100%;margin-top:10px;padding:14px 20px;border-radius:10px;font-size:15px;box-shadow:0 9px 18px rgba(37,99,235,.18)}.login-form-panel .login-err{margin-top:10px}.login-support{margin:25px 0 0;text-align:center;font-size:12px;color:#8391aa}
@media (max-width:820px){#loginOverlay{align-items:stretch;padding:0}.login-shell{min-height:100%;display:block}.login-shell:before,.login-shell:after,.login-brand-panel{display:none}.login-form-panel{min-height:100vh;border:0;border-radius:0;box-shadow:none;justify-content:center;padding:32px 26px}.login-form-top{justify-content:space-between;margin-bottom:42px}.login-mobile-brand{display:flex;align-items:center;gap:8px;color:#183d83;font-size:14px}.login-mobile-brand img{width:34px;height:34px;object-fit:contain;border-radius:10px}.login-form-heading h2{font-size:29px}}
#boardFill { margin: -4px 0 12px; }
.hint.warn { background: #fff7ed; color: #c2410c; border: 1px solid #fed7aa; border-radius: 8px; padding: 8px 12px; }
.hint.ok { background: #f0fdf4; color: #16a34a; border: 1px solid #bbf7d0; border-radius: 8px; padding: 8px 12px; }
.hidden { display: none !important; }

/* v21.3 司机运营 BI：历史收款页升级为只读工作台；旧填报节点保留用于历史兼容。 */
#panel-driver > :not(#driverBiWorkbench):not(#driverKpi){display:none}
#panel-driver #driverKpi{display:none}
.driver-bi .bi-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}
.driver-bi .bi-head h2{margin:0;font-size:26px}
.driver-bi .bi-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.driver-bi .bi-tab{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 12px;cursor:pointer;font-weight:650;color:var(--muted)}
.driver-bi .bi-tab.active{background:#173f6b;color:#fff;border-color:#173f6b}
.driver-bi .bi-filters{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:10px;padding:14px;background:#fff;border:1px solid var(--line);border-radius:12px}
.driver-bi .bi-filters label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}
.driver-bi .bi-table td,.driver-bi .bi-table th{text-align:left}
.driver-bi #biRows{max-height:65vh;overflow:auto;position:relative;overscroll-behavior:contain}
.driver-bi #biRows thead th{position:sticky;top:0;z-index:4;background:#edf3ff;box-shadow:0 1px 0 var(--line);white-space:nowrap}
.driver-bi .bi-sort{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:700;cursor:pointer;text-align:left;white-space:nowrap}
.driver-bi .bi-sort span{color:#7890b3;font-size:11px}.driver-bi .bi-sort.active span{color:#1d4ed8}
.driver-bi .bi-risk{color:#b91c1c;font-size:12px;font-weight:700}
@media(max-width:850px){.driver-bi .bi-filters{grid-template-columns:1fr 1fr}.driver-bi .bi-head{display:block}}

/* 司机出勤 */
.att-row { display: flex; align-items: flex-end; gap: 16px; margin-top: 14px; flex-wrap: wrap; }
.att-row label { width: 200px; }

/* 主管名单（设置） */
.sup-row { display: flex; gap: 10px; align-items: center; margin-bottom: 8px; }
.sup-row .sup-name { flex: 1; }
.sup-row .sup-role { width: 160px; }
.sup-row .sup-del { background: #fee2e2; color: var(--red); border: 1px solid #fecaca; border-radius: 8px; padding: 7px 12px; cursor: pointer; font-weight: 700; }
.sup-row .sup-del:hover { background: #fecaca; }

/* 维修台账 */
.repair-form { margin-top: 14px; border: 1px dashed var(--line); border-radius: 12px; padding: 16px; background: #fbfdff; }
.repair-list { margin-top: 16px; display: flex; flex-direction: column; gap: 10px; }
.repair-item { border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; background: #fff; }
.repair-item.open { border-left: 4px solid var(--amber); }
.repair-item.done { border-left: 4px solid var(--green); }
.repair-item .r-top { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.repair-item .r-title { font-weight: 700; }
.repair-item .r-meta { color: var(--muted); font-size: 12px; margin-top: 6px; line-height: 1.7; }
.repair-item .r-actions { display: flex; gap: 8px; }
.repair-item .pill.amber { background: #fef3c7; color: #b45309; }
.repair-item .pill.green { background: #dcfce7; color: var(--green); }

/* 司机日报表 */
.upload-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 8px; }
.upload-row input[type=file] { flex: 1; min-width: 220px; }
.photo-list { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 16px; }
.photo-item { width: 220px; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: #fff; display: flex; flex-direction: column; }
.photo-item img { width: 100%; height: 150px; object-fit: cover; background: #f1f5f9; }
.photo-meta { padding: 8px 10px; font-size: 12px; }
.photo-meta .hint { font-size: 11px; margin: 4px 0; }
.photo-meta button { margin-top: 4px; }
#driverTable { min-width: 1120px; }   /* 给车牌/姓名留足宽度，窄屏横向滚动而非挤压 */
#driverTableWrap { max-height: 62vh; overflow: auto; }   /* 表单较高时框内纵向滚动，表头 sticky 常驻 */
#driverTable thead th { position: sticky; top: 0; z-index: 3; background: var(--soft); box-shadow: 0 1px 0 var(--line); }
#driverTable tfoot.total-row { position: sticky; bottom: 0; z-index: 3; }
#driverTable tfoot.total-row td { background: #eef2f7; box-shadow: 0 -1px 0 var(--line); }
#driverTable input { width: 100%; box-sizing: border-box; }
#driverTable .d-plate { min-width: 170px; }   /* 车牌列加宽，复制前一天时也能看清完整车牌 */
#driverTable .d-name { min-width: 150px; }
#driverTable .d-model { min-width: 90px; }
#driverTable input[type=number] { min-width: 110px; }

/* ================= v16.0 岗位工作台样式 ================= */
.link { background: none; border: none; color: var(--primary); cursor: pointer; font-weight: 700; font-size: 12px; padding: 2px 4px; }
.link:hover { text-decoration: underline; }
.link.danger { color: var(--red); }
.link.ok { color: var(--green); }
.tag { display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.tag-open { background: #fef3c7; color: #b45309; }
.tag-done { background: #dcfce7; color: var(--green); }
.tag-type { background: var(--soft); color: var(--primary); }
.tag-link { background: #ede9fe; color: #6d28d9; }
.tag-warn { background: #fee2e2; color: var(--red); }

/* 大按钮（防呆 · 移动端友好） */
.btn-big {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  border: none; border-radius: 14px; padding: 18px 34px;
  font-size: 20px; font-weight: 800; color: #fff; cursor: pointer; width: 100%;
  box-shadow: 0 4px 12px rgba(0,0,0,.12); transition: transform .1s ease, box-shadow .1s ease;
}
.btn-big:active { transform: scale(.98); }
.btn-big-green { background: linear-gradient(135deg, #22c55e, #15803d); }
.btn-big-red { background: linear-gradient(135deg, #ef4444, #b91c1c); }
.btn-big-amber { background: linear-gradient(135deg, #f59e0b, #b45309); }
.btn-big-blue { background: linear-gradient(135deg, #3b82f6, #1d4ed8); }

/* 达成率卡片 */
.staff-kpi-wrap { margin-bottom: 14px; }
.kpi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.kpi-card {
  background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 14px 16px;
  box-shadow: 0 1px 3px rgba(16,24,40,.05);
}
.kpi-card-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 10px; }
.kpi-card-head b { font-size: 14px; }
.kpi-ach { font-size: 15px; font-weight: 900; }
.kpi-ach.ok { color: var(--green); }
.kpi-ach.warn { color: var(--amber); }
.kpi-ach.bad { color: var(--red); }
.kpi-bar { height: 10px; background: #eef2f7; border-radius: 8px; overflow: hidden; }
.kpi-bar > div { height: 100%; border-radius: 8px; transition: width .4s ease; }
.kpi-card-meta { color: var(--muted); font-size: 12px; margin-top: 8px; }
.card-kpi-ov h3 { margin-bottom: 12px; }

/* 维修/事故/违章/退车 列表条目 */
.repair-item .repair-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.repair-item .repair-head b { font-size: 15px; }
.repair-item .repair-id { color: var(--muted); font-size: 12px; }
.repair-item .repair-actions { margin-left: auto; display: flex; gap: 6px; flex-wrap: wrap; }
.repair-item .repair-meta { display: flex; flex-wrap: wrap; gap: 6px 18px; color: var(--muted); font-size: 12px; margin-top: 8px; line-height: 1.7; }

/* 验车清单 */
.insp-wrap { margin: 12px 0 4px; }
.insp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 10px; margin-top: 8px; }
.insp-item { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; background: #fbfdff; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.insp-item b { flex: 1; min-width: 80px; }
.insp-item label { flex-direction: row; align-items: center; gap: 4px; display: inline-flex; font-size: 12px; color: var(--ink); }
.insp-item input[type="radio"] { width: auto; }
.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.section-title-row h3{margin:0}.inline-search{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--muted);font-weight:700}.inline-search input{min-width:220px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:#fff}
.damage-items-wrap{margin:14px 0}.damage-section{border:1px solid #dbeafe;border-radius:12px;background:linear-gradient(135deg,#f8fbff,#fff);padding:12px;margin-top:10px}.damage-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.damage-section-head b{color:#1d4ed8}.damage-section-head .hint{margin:2px 0 0;font-size:12px}.damage-row{display:grid;grid-template-columns:repeat(6,minmax(105px,1fr)) auto;gap:8px;align-items:end;margin-top:10px;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fff}.damage-row label{min-width:0}.damage-row label span{display:block;margin:0 0 4px;color:var(--muted);font-size:11px;font-weight:700}.damage-row input,.damage-row select{width:100%;box-sizing:border-box;padding:7px 8px;border:1px solid var(--line);border-radius:7px;background:#fff}.damage-row .damage-remove{margin-bottom:1px;white-space:nowrap}.damage-empty{padding:9px 0 1px;color:var(--muted);font-size:13px}
@media (max-width:900px){.damage-row{grid-template-columns:repeat(3,minmax(130px,1fr)) auto}}@media (max-width:600px){.inline-search{width:100%}.inline-search input{flex:1;min-width:0}.damage-row{grid-template-columns:repeat(2,minmax(0,1fr))}.damage-row .damage-remove{grid-column:span 2;justify-self:start}}

/* 岗位目标配置 */
.target-row { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; flex-wrap: wrap; }
.target-row span:first-child { width: 150px; font-weight: 700; color: var(--ink); }
.target-row .t-target { width: 120px; }
.target-row .target-unit { color: var(--muted); font-size: 12px; }

/* 车辆档案时间线 */
.timeline { position: relative; padding-left: 22px; display: flex; flex-direction: column; gap: 14px; }
.timeline::before { content: ''; position: absolute; left: 7px; top: 4px; bottom: 4px; width: 2px; background: var(--line); }
.tl-item { position: relative; }
.tl-dot { position: absolute; left: -22px; top: 3px; width: 14px; height: 14px; border-radius: 50%; border: 3px solid #fff; box-shadow: 0 0 0 2px var(--line); background: var(--muted); }
.tl-dot.tl-rent { background: #16a34a; }
.tl-dot.tl-repair { background: #2563eb; }
.tl-dot.tl-accident { background: #dc2626; }
.tl-dot.tl-violation { background: #d97706; }
.tl-dot.tl-return { background: #0d9488; }
.tl-body { background: #f8fafc; border: 1px solid var(--line); border-radius: 10px; padding: 8px 12px; }
.tl-date { font-size: 11px; color: var(--muted); font-weight: 700; }
.tl-text { font-size: 13px; margin-top: 2px; line-height: 1.6; }

/* 移动端适配（非洲员工常使用手机） */
@media (max-width: 720px) {
  .tabs { padding: 10px 10px 0; }
  .tab { padding: 10px 12px; font-size: 13px; }
  main { padding: 12px 10px 40px; }
  .card { padding: 14px; }
  .btn-big { font-size: 17px; padding: 15px 20px; }
  .repair-item .repair-actions { margin-left: 0; width: 100%; justify-content: flex-start; }
  .top-actions label { width: 100%; }
}


/* ================= v17 每日收款 + 出租签约 ================= */
.tag-ok { background: #dcfce7; color: var(--green); }
.tag-danger { background: #fee2e2; color: var(--red); }
/* 车辆档案批量录入 */
#vaBatchCard textarea { width: 100%; box-sizing: border-box; margin: 8px 0 12px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; font: inherit; line-height: 1.7; tab-size: 18; white-space: pre; overflow: auto; }
#vaBatchCard .actions { display: flex; gap: 10px; flex-wrap: wrap; }
#vaBatchCard .btn-mini { margin-top: 0; min-height: 42px; }
#vaBatchToggle { margin-top: 0; align-self: end; min-height: 42px; }
#vaBatchCard button:disabled { opacity: .55; cursor: not-allowed; }
#vaBatchPreview { max-height: 440px; margin-top: 12px; }
#vaBatchPreview table { min-width: 850px; }
#vaBatchPreview th { position: sticky; top: 0; z-index: 1; background: var(--soft); }
#vaBatchPreview small { display: block; font-weight: normal; color: var(--muted); margin: 3px 0; }
.va-batch-changed { background: #eff6ff; color: #1d4ed8; font-weight: 700; }
.va-batch-status { margin-top: 12px; font-size: 14px; }
.va-batch-status.ok { color: #047857; }
.va-batch-status.error { color: #b91c1c; }
.va-batch-status ul { max-height: 200px; overflow: auto; padding-left: 24px; }
#cashConfirmSummary { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; }
#cashConfirmSummary .kpi-card { padding: 18px; min-width: 0; }
#cashConfirmSummary .kpi-val { font-size: 26px; font-weight: 800; color: #2563eb; margin-bottom: 6px; }
#cashReconcileDetail { padding-top: 12px; }
#assetCareNotice summary { cursor: pointer; padding-bottom: 10px; }
#dailyTable { min-width: 1280px; }
#dailyTableWrap { max-height: min(68vh, 760px); overflow: auto; position: relative; overscroll-behavior: contain; }
#dailyTable thead th { position: sticky; top: 0; z-index: 3; background: var(--soft); box-shadow: 0 1px 0 var(--line); }
#dailyTable tfoot.total-row { position: sticky; bottom: 0; z-index: 3; }
#dailyTable tfoot.total-row td { background: #eef2f7; box-shadow: 0 -1px 0 var(--line); }
#dailyTable input { width: 100%; box-sizing: border-box; }
#dailyTable input[type=number] { min-width: 92px; }
#dailyTable .ro { background: #f1f5f9; color: #475569; font-weight: 700; }
#dailyTable .num { text-align: right; font-variant-numeric: tabular-nums; }
#dailyTable td { white-space: nowrap; }
#dailyTable .dc-deposit-hint { display: block; white-space: normal; overflow-wrap: anywhere; margin: 6px 0 0; line-height: 1.4; font-size: 12px; color: var(--muted); text-align: center; }
#dailyTable .dc-note { min-width: 110px; }
#dailyCards .kpi-card { background: linear-gradient(135deg, rgba(82,196,26,.08), rgba(82,196,26,.16)); }
#dailyCards .kpi-val { font-size: 22px; font-weight: 800; color: var(--green); }
#dailyCards .kpi-label { color: var(--muted); font-size: 12px; margin-top: 2px; }
#rentalPlate, #rentalCompany { min-width: 180px; }
#rentalDriverList .btn-mini, #rentalContractList .btn-mini { white-space: nowrap; }
#rentalContractList .mini-table { min-width: 1000px; }
@media (max-width: 768px) {
  #dailyTable input[type=number] { min-width: 72px; }
  #dailyCards .kpi-val { font-size: 18px; }
}

/* ===== v18 审批中心 ===== */
.reject-reason {
  width: 100%; padding: 8px 10px; border: 1px solid #ddd; border-radius: 8px;
  font-size: 13px; box-sizing: border-box; display: block;
}
.reject-reason:focus { border-color: #ea6668; outline: none; }
#approvalList .repair-item { margin-bottom: 10px; }
#approvalList .actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
#approvalList .btn-primary { padding: 8px 16px; font-size: 13px; }

/* v20 配件库 */
.tab-row{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.sub-tab{padding:7px 14px;border:1px solid var(--line);background:#fff;border-radius:8px;cursor:pointer;font-size:13px}
.sub-tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.btn-sm{padding:3px 8px;font-size:12px;border-radius:6px;border:1px solid var(--line);background:#fff;cursor:pointer}
.parts-sub .data-table{width:100%;border-collapse:collapse;font-size:13px}
.parts-sub .data-table th,.parts-sub .data-table td{border:1px solid var(--line);padding:7px 9px;text-align:left}
.parts-sub .data-table th{background:var(--soft)}
.repair-parts .mini-table{margin-top:4px}

/* 电车经营工作台：大数字、强状态色，手机上也能一眼完成当天工作 */
.workbench-hero{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:22px 24px;margin-bottom:14px;border-radius:16px;background:linear-gradient(120deg,#083344,#0f766e 55%,#14b8a6);color:#fff;box-shadow:0 10px 24px rgba(15,118,110,.18)}
.workbench-hero h2{margin:0 0 6px;font-size:24px}.workbench-hero p{margin:0;line-height:1.65;max-width:760px;color:#d9fffa}.hero-badge{padding:11px 14px;border:1px solid rgba(255,255,255,.4);border-radius:999px;background:rgba(255,255,255,.14);font-weight:800;white-space:nowrap}
.profit-hero{background:linear-gradient(120deg,#312e81,#4338ca 55%,#7c3aed)}.profit-hero p{color:#ede9fe}
.accident-hero{background:linear-gradient(120deg,#3f0d12,#b91c1c 55%,#fb7185)}.accident-hero p{color:#fff1f2}.violation-hero{background:linear-gradient(120deg,#3b2502,#c2410c 55%,#f59e0b)}.violation-hero p{color:#fff7ed}
.maintenance-hero{background:linear-gradient(120deg,#172554,#1d4ed8 55%,#38bdf8)}.maintenance-hero p{color:#eff6ff}.maintenance-board .summary-card{border-top:4px solid #2563eb;background:linear-gradient(150deg,#fff,#eff6ff)}.maintenance-board .summary-card:nth-child(3n){border-top-color:#dc2626}
.board-filter{display:flex;align-items:end;gap:12px;padding:13px 16px;margin-bottom:0}.board-filter label{min-width:190px}.board-filter label span{display:block;color:var(--muted);font-size:12px;font-weight:700;margin-bottom:5px}.board-filter select{width:100%;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff}.board-filter .btn-mini{margin:0 0 1px}.accident-board .summary-card{border-top:4px solid #e11d48;background:linear-gradient(150deg,#fff,#fff1f2)}.accident-board .summary-card:nth-child(2n){border-top-color:#7c3aed}.violation-board .summary-card{border-top:4px solid #f59e0b;background:linear-gradient(150deg,#fff,#fffbeb)}.violation-board .summary-card:nth-child(3n){border-top-color:#ea580c}.import-box{border:1px dashed #f59e0b;background:#fffbeb;margin-top:12px}.import-box h3{margin-top:0;color:#92400e}.import-box textarea{width:100%;box-sizing:border-box;border:1px solid #fcd34d;border-radius:9px;padding:9px;font:inherit;line-height:1.5;background:#fff}
@media (max-width:720px){.board-filter{align-items:stretch;flex-direction:column}.board-filter label{min-width:0}.board-filter .btn-mini{align-self:flex-start}}
#chargeKpis,#profitKpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:10px;margin-top:12px}.energy-kpi{background:linear-gradient(135deg,#ecfeff,#ccfbf1);border-color:#99f6e4}.energy-kpi .kpi-val{color:#0f766e}.profit-main{background:linear-gradient(135deg,#ede9fe,#ddd6fe)!important;border-color:#c4b5fd}.profit-main .kpi-val{color:#5b21b6}
.charge-repeat-alert{margin-top:12px;padding:12px 14px;border:1px solid #fbbf24;border-radius:12px;background:linear-gradient(135deg,#fffbeb,#fff7ed);color:#92400e}.charge-repeat-alert>b{display:block;font-size:15px}.charge-repeat-alert>span{display:block;margin-top:3px;font-size:13px}.charge-repeat-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.charge-repeat-chips strong{padding:5px 9px;border-radius:999px;background:#fef3c7;color:#9a3412;font-size:13px}.charge-edit-table input{width:100%;min-width:72px;padding:5px 6px;border:1px solid var(--line);border-radius:6px;background:#fff}.charge-edit-table td{vertical-align:middle}.btn-danger{border-color:#fca5a5!important;color:#b91c1c!important;background:#fff1f2!important}
.todo-row{display:flex;align-items:center;gap:10px;padding:11px 10px;border-bottom:1px solid var(--line)}.todo-row span:nth-child(2){flex:1;color:var(--muted)}.todo-done{opacity:.64;background:#f0fdf4}.cost-num{color:#b91c1c}.profit-num{font-weight:800;color:#047857}.profit-table td{vertical-align:middle}
.qr-card{display:flex;gap:20px;align-items:center;padding:16px;border:1px dashed #14b8a6;border-radius:14px;background:#f0fdfa;max-width:560px}.qr-card img{background:#fff;padding:8px;border-radius:10px}.qr-card h3{margin:0 0 8px}.qr-card .btn-mini{display:inline-block;text-decoration:none;margin-right:6px}
@media (max-width:720px){.workbench-hero{padding:18px;align-items:flex-start;flex-direction:column}.workbench-hero h2{font-size:21px}.hero-badge{white-space:normal}.qr-card{flex-direction:column;align-items:flex-start}}

/* v20.8 组织架构：一人可多岗，岗位与系统权限分开管理。 */
#violationLedger .actions{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0;align-items:center}
#violationLedger .actions button{flex:none;white-space:nowrap}
#violationLedger .actions label{display:flex;flex-direction:column;gap:6px;flex:0 1 220px;min-width:0}
#violationLedger .actions input{width:100%;height:40px;min-height:40px;max-height:40px;flex:none;box-sizing:border-box}
#violationLedger>.actions{align-items:flex-end}
#violationLedger .actions select{width:140px;flex:none}
#vlSummary{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:12px;margin:16px 0}
#vlTable{max-height:65vh;overflow:auto}#vlTable thead th{position:sticky;top:0;z-index:3;background:#eef3ff;box-shadow:0 1px 0 #dbe3ef}
#vlSummary .kpi-card{padding:18px;background:white;border:1px solid #dbeafe;border-radius:14px}
#vlSummary .kpi-val{font-size:27px;font-weight:800;color:#1d4ed8}
#vlSummary .kpi-label{margin-top:6px;color:#64748b}
#vlDetails{margin-top:18px;overflow:auto}#violationLedger th{white-space:nowrap}#vlEditor .grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}#vlEditor input,#vlEditor select{width:100%}
@media(max-width:760px){#vlSummary{grid-template-columns:repeat(2,minmax(0,1fr))}}
.org-user-row{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:9px;align-items:end;padding:13px;margin:10px 0;border:1px solid var(--line);border-radius:12px;background:linear-gradient(135deg,#f8fbff,#fff)}.org-user-row>label:not(.org-check),.org-role-cell{min-width:0}.org-user-row label>span,.org-role-cell>span{display:block;font-size:11px;color:var(--muted);font-weight:700;margin-bottom:4px}.org-user-row input[type=text],.org-user-row input[type=password],.org-user-row select{width:100%;box-sizing:border-box;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff}.org-role-cell{grid-column:1/-1}.u-roles{display:flex;flex-wrap:wrap;gap:6px}.u-roles label{display:inline-flex;align-items:center;gap:3px;padding:5px 8px;border:1px solid #dbeafe;border-radius:999px;background:#eff6ff;color:#1e40af;font-size:12px;white-space:nowrap}.u-roles input{width:auto}.org-check{display:flex;align-items:center;gap:5px;color:var(--ink);font-size:12px;font-weight:700;padding:7px 0}.org-check input{width:auto}@media (max-width:900px){.org-user-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:520px){.org-user-row{grid-template-columns:1fr}.org-role-cell{grid-column:auto}}
#newSettlements{margin:16px 0;padding:20px;min-width:0}
#newSettlements .table-wrap{max-height:60vh;overflow:auto}
#newSettlements th{position:sticky;top:0;background:#edf3ff;z-index:1}
#nsEditor .card{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
#nsEditor label{display:flex;flex-direction:column;gap:6px;min-width:0}
#nsEditor input,#nsEditor select{height:42px;min-height:42px;max-height:42px;width:100%;box-sizing:border-box;flex:none}
#nsEditor button{align-self:end;min-height:42px}
#nsEditor [role=status]{grid-column:1/-1;color:#b42318}
/* Finance Center: scoped layout, no global label/input sizing changes. */
#financeCenter [hidden], #financeLegacyHandover[hidden] { display:none !important; }
#financeCenter { color:var(--text,#152d48); }
.fc-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; margin:20px 0; }
.fc-heading h2 { margin:0 0 8px; }
.fc-heading p { margin:0; color:var(--muted); font-size:13px; }
.fc-badge { background:#e6f4f1; color:#147267; padding:9px 14px; border-radius:22px; font-size:12px; white-space:nowrap; }
.fc-tabs { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px; }
.fc-tabs button { border:1px solid #d5e0f1; border-radius:9px; padding:12px 17px; background:#fff; color:#426284; cursor:pointer; font-weight:600; }
.fc-tabs button.active { color:white; background:#2463e8; border-color:#2463e8; }
#financeCenter .fc-filters { display:flex; flex-wrap:wrap; align-items:flex-end; gap:12px; padding:18px; }
#financeCenter .fc-filters label { display:flex; flex:1 1 140px; min-width:0; flex-direction:column; gap:7px; font-size:12px; color:var(--muted); }
#financeCenter .fc-filters .fc-search { flex:2 1 210px; }
#financeCenter input, #financeCenter select { box-sizing:border-box; width:100%; min-width:0; height:42px; min-height:42px; max-height:42px; padding:8px 10px; margin:0; line-height:normal; border:1px solid #dce4ef; border-radius:8px; background:white; color:#183953; }
.fc-message { margin:10px 0; font-size:13px; color:#147267; }
.fc-message:empty { display:none; }
.fc-period { font-size:12px; color:#526e8a; margin:6px 0; }
#fcDepositReview { scroll-margin-top:230px; }
.fc-deposit-amounts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:16px 0; }
.fc-deposit-amounts div { background:#f2f6fc; border-radius:10px; padding:16px; font-size:12px; color:#56718d; }
.fc-deposit-amounts strong { display:block; font-size:27px; margin-top:10px; color:#183a58; overflow-wrap:anywhere; }
#financeCenter .fc-deposit-check { display:flex; flex-direction:row; justify-content:flex-start; align-items:center; gap:10px; margin:16px 0; font-size:13px; }
#financeCenter .fc-deposit-check input { width:18px; min-width:18px; height:18px; min-height:18px; max-height:18px; flex:none; }
.fc-deposit-sources { margin:18px 0; }
.fc-deposit-sources summary { cursor:pointer; color:#2459a0; padding:10px 0; }
@media(max-width:560px) { .fc-deposit-amounts { grid-template-columns:1fr; } }
.fc-kpis { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:18px 0; }
.fc-kpi { display:flex; flex-direction:column; gap:10px; padding:22px; border:1px solid #dce4ef; border-radius:15px; background:white; }
.fc-kpi span { font-size:13px; color:#566b86; }
.fc-kpi strong { font-size:clamp(25px,3vw,35px); font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.fc-kpi small { color:var(--muted); font-size:11px; }
.fc-kpi.in strong,.fc-in { color:#098c73; }
.fc-kpi.out strong,.fc-out { color:#ce6334; }
.fc-kpi.net { background:#183a58; }
.fc-kpi.net span,.fc-kpi.net small { color:#b7cde0; }
.fc-kpi.net strong { color:white; }
.fc-note { color:#65758b; font-size:13px; line-height:1.75; margin:12px 0 18px; }
.fc-warning { background:#fff5df; color:#775114; border-radius:10px; padding:14px; }
.fc-error { color:#bf3434 !important; }
.fc-dual { display:grid; grid-template-columns:1.1fr 1fr; gap:16px; }
#financeCenter .card { min-width:0; }
.fc-table-wrap { overflow:auto; max-height:620px; border:1px solid #e0e7f0; border-radius:9px; }
#financeCenter table { width:100%; border-collapse:separate; border-spacing:0; font-size:13px; }
#financeCenter th { position:sticky; top:0; z-index:1; background:#edf3fb; text-align:left; white-space:nowrap; padding:13px; border-bottom:1px solid #dbe4ef; }
#financeCenter td { text-align:left; vertical-align:middle; padding:12px 13px; background:white; border-bottom:1px solid #edf0f4; max-width:320px; overflow-wrap:anywhere; }
#financeCenter tbody tr:last-child td { border-bottom:0; }
#financeCenter td small { display:block; color:#79879b; margin-top:5px; }
#financeCenter td.fc-empty { text-align:center; padding:36px; color:#8795a5; }
.fc-link { background:transparent; border:0; color:#2463e8; cursor:pointer; padding:0; font:inherit; }
.fc-toolbar { display:flex; gap:12px; justify-content:space-between; align-items:center; flex-wrap:wrap; margin-bottom:16px; }
.fc-toolbar h3 { margin:0; }
.fc-tag { display:inline-block; border-radius:5px; padding:4px 7px; font-size:12px; background:#eef3f9; color:#536681; white-space:nowrap; }
.fc-tag.confirmed { background:#e3f4ed; color:#147257; }
.fc-tag.void { background:#fff0ec; color:#ad4d41; }
.fc-row-actions { min-width:200px; }
.fc-row-actions button { margin:3px; }
.fc-pagination { display:flex; justify-content:flex-end; align-items:center; gap:14px; margin-top:14px; font-size:13px; }
.fc-form-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:20px; }
#financeCenter .fc-form-grid label { display:flex; flex-direction:column; gap:7px; min-width:0; font-size:13px; color:#65758b; }
#fcEditor,#fcDetail { scroll-margin-top:230px; }
.fc-entry-form { border:2px solid #c6d9fc; }
.fc-audit { font-size:12px; color:#65758b; border-top:1px solid #e1e7f0; padding-top:12px; }
#fcDetail pre,.fc-pre { white-space:pre-wrap; overflow-wrap:anywhere; }
@media(max-width:1000px) { .fc-dual { grid-template-columns:1fr; } .fc-form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:560px) { .fc-heading { align-items:flex-start; flex-direction:column; } .fc-badge { white-space:normal; } .fc-tabs { display:grid; grid-template-columns:1fr 1fr; } .fc-tabs button { padding:11px 6px; } .fc-kpis { grid-template-columns:1fr; gap:8px; } .fc-kpi { padding:15px 18px; } .fc-kpi strong { font-size:29px; } .fc-form-grid { grid-template-columns:1fr; } #financeCenter .fc-filters label { flex-basis:calc(50% - 12px); } #financeCenter .fc-filters .fc-search { flex-basis:100%; } #financeCenter .card { padding:15px; } }
.cd-editor .cd-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px}
.cd-editor .cd-fields label{display:flex;flex-direction:column;gap:6px;min-width:0}
.cd-editor .cd-fields input,.cd-editor .cd-fields select{height:42px;min-height:42px;max-height:42px;width:100%;box-sizing:border-box}
.cd-editor .cd-confirm{display:flex;flex-direction:row;align-items:flex-start;gap:8px;margin:16px 0;line-height:1.6}
.cd-editor .actions{flex-wrap:wrap}
.cd-editor .cd-confirm input{width:18px;height:18px;min-height:18px;flex:0 0 18px}
.cd-editor details p{overflow-wrap:anywhere}
.settlement-detail{margin-top:16px;padding:16px;border:1px solid #d8e4f7;border-radius:14px;background:#f8fbff}
.settlement-detail .repair-head h3{margin:0}
.maintenance-search-row,.daily-search-row{display:grid;grid-template-columns:minmax(260px,420px) auto 1fr;gap:10px;align-items:end;margin:12px 0}
.maintenance-search-row label,.daily-search-row label{margin:0}
.maintenance-search-row .btn-mini,.daily-search-row .btn-mini{height:42px}
@media(max-width:700px){.maintenance-search-row,.daily-search-row{grid-template-columns:1fr auto}.maintenance-search-row .hint,.daily-search-row .hint{grid-column:1/-1}}
