/* workbench.css — 申报工作台 (declaration workbench) layout: stepper, info bar,
   3-zone body, quota meters, 24-col grid, validation checklist, compact mode. */

.vo-content--wb{ overflow:auto; display:flex; flex-direction:column; gap:14px; padding:18px 24px 22px; }
.vo-content--wb > *{ flex:0 0 auto; }

/* header + stepper */
.wb-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.wb-crumb{ font-size:13px; color:var(--vo-text-3); }
.wb-crumb span{ margin:0 6px; opacity:.6; }
.wb-crumb em{ font-style:normal; font-family:var(--vo-mono); font-weight:600; color:var(--vo-text); }
.wb-steps{ display:flex; align-items:center; margin-top:11px; }
.wb-step{ display:flex; align-items:center; gap:8px; }
.wb-step-dot{ width:22px; height:22px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:11px; font-weight:700; font-family:var(--vo-mono); background:var(--vo-track-bg); color:var(--vo-text-3); border:1.5px solid transparent; flex:0 0 auto; }
.wb-step-t{ font-size:12.5px; color:var(--vo-text-3); font-weight:500; white-space:nowrap; }
.wb-step-bar{ width:34px; height:1.5px; background:var(--vo-track-bg); margin:0 10px; }
.wb-step.is-done .wb-step-dot{ background:var(--vo-accent); color:var(--vo-accent-fg); }
.wb-step.is-done .wb-step-t{ color:var(--vo-text-2); }
.wb-step.is-cur .wb-step-dot{ background:var(--vo-accent-soft); color:var(--vo-accent-strong); border-color:var(--vo-accent); }
.wb-step.is-cur .wb-step-t{ color:var(--vo-text); font-weight:600; }
.wb-head-actions{ display:flex; gap:8px; flex:0 0 auto; flex-wrap:wrap; justify-content:flex-end; }

/* info bar */
.wb-infobar{ display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--vo-card-border); border:1px solid var(--vo-card-border); border-radius:var(--vo-radius); overflow:hidden; }
.wb-info{ background:var(--vo-card-bg); padding:12px 16px; }
.wb-info-l{ font-size:11.5px; color:var(--vo-text-3); }
.wb-info-v{ font-size:15px; font-weight:700; margin:3px 0 2px; display:flex; align-items:center; gap:6px; white-space:nowrap; }
.wb-lock{ color:var(--vo-accent); display:flex; }
.wb-info-s{ font-size:11px; color:var(--vo-text-3); }

/* 3-zone body */
.wb-body{ display:grid; grid-template-columns:248px 1fr 326px; gap:14px; align-items:start; }

/* left rail — quota meters */
.wb-rail{ display:flex; flex-direction:column; gap:12px; }
.wb-rail-title{ font-size:12.5px; font-weight:700; color:var(--vo-text-2); letter-spacing:0.02em; }
.wb-meter{ background:var(--vo-card-bg); border:1px solid var(--vo-card-border); border-radius:var(--vo-radius); padding:13px 14px; box-shadow:var(--vo-card-shadow); }
.wb-meter-head{ display:flex; align-items:center; justify-content:space-between; }
.wb-meter-label{ font-size:12.5px; color:var(--vo-text-2); font-weight:500; }
.wb-meter-pct{ font-family:var(--vo-mono); font-size:12px; font-weight:600; }
.wb-meter-pct--ok{ color:var(--vo-pos); }
.wb-meter-pct--warn{ color:var(--vo-warn); }
.wb-meter-pct--fail{ color:var(--vo-neg); }
.wb-meter-fig{ margin:8px 0 9px; }
.wb-meter-fig b{ font-family:var(--vo-mono); font-size:21px; font-weight:600; }
.wb-meter-fig span{ font-size:12px; color:var(--vo-text-3); }
.wb-meter-track{ height:6px; border-radius:4px; background:var(--vo-track-bg); overflow:hidden; }
.wb-meter-fill{ height:100%; border-radius:4px; }
.wb-meter-fill--ok{ background:var(--vo-accent); }
.wb-meter-fill--warn{ background:var(--vo-warn); }
.wb-meter-fill--fail{ background:var(--vo-neg); }
.wb-meter-sub{ font-size:11px; color:var(--vo-text-3); margin-top:8px; line-height:1.45; }
.wb-rail-note{ display:flex; gap:9px; padding:12px 13px; border-radius:var(--vo-radius); background:var(--vo-warn-soft); border:1px solid var(--vo-warn-border); font-size:11.5px; color:var(--vo-text-2); line-height:1.5; }
.wb-rail-note svg{ color:var(--vo-warn); flex:0 0 auto; margin-top:1px; }

/* center editor */
.wb-editor{ padding:18px 18px 16px; min-width:0; }
.wb-editor-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:10px; }
.wb-tools{ display:flex; gap:7px; flex:0 0 auto; }
.wb-tool{ display:flex; align-items:center; gap:6px; height:32px; padding:0 11px; border-radius:8px; border:1px solid var(--vo-input-border); background:var(--vo-input-bg); color:var(--vo-text-2); font-family:inherit; font-size:12px; font-weight:500; cursor:pointer; }
.wb-tool:hover{ border-color:var(--vo-accent); color:var(--vo-accent-strong); }
.wb-tool svg{ color:var(--vo-accent); }

/* 24-col grid */
.wb-gridwrap{ margin-top:10px; border:1px solid var(--vo-card-border); border-radius:10px; overflow:hidden; display:flex; }
.wb-grid{ display:flex; width:100%; overflow-x:auto; }
.wb-grid-rowhead{ flex:0 0 auto; position:sticky; left:0; z-index:2; background:var(--vo-inner-bg); border-right:1px solid var(--vo-card-border); }
.wb-gh{ height:34px; display:flex; align-items:center; padding:0 12px; font-size:11px; font-weight:600; color:var(--vo-text-3); white-space:nowrap; border-bottom:1px solid var(--vo-divider); }
.wb-gh:last-child{ border-bottom:none; }
.wb-grid-cols{ display:flex; flex:1; }
.wb-col{ flex:1 0 46px; cursor:pointer; }
.wb-col.is-sel{ background:var(--vo-accent-soft); }
.wb-cell{ height:34px; display:flex; align-items:center; justify-content:center; font-family:var(--vo-mono); font-size:12px; border-bottom:1px solid var(--vo-divider); border-left:1px solid var(--vo-divider); }
.wb-cell:last-child{ border-bottom:none; }
.wb-cell-h{ font-weight:600; color:var(--vo-text-2); background:var(--vo-inner-bg); }
.wb-col.is-sel .wb-cell-h{ background:transparent; color:var(--vo-accent-strong); }
.wb-cell-q{ color:var(--vo-text); }
.wb-cell-p{ color:var(--vo-text-2); }
.wb-cell-p.is-over{ color:var(--vo-neg); font-weight:700; background:var(--vo-neg-soft); }
.wb-cell-p.is-near{ color:var(--vo-warn); font-weight:700; background:var(--vo-warn-soft); }

/* summary */
.wb-summary{ display:flex; align-items:center; gap:26px; margin-top:14px; flex-wrap:wrap; }
.wb-stat{ display:flex; flex-direction:column; gap:3px; }
.wb-stat-l{ font-size:11px; color:var(--vo-text-3); }
.wb-stat-v{ font-family:var(--vo-mono); font-size:16px; font-weight:600; }
.wb-stat-v i{ font-style:normal; font-size:11px; color:var(--vo-text-3); font-weight:400; }
.wb-selbox{ margin-left:auto; display:flex; align-items:center; gap:10px; padding:8px 12px; border-radius:10px; background:var(--vo-inner-bg); border:1px solid var(--vo-card-border); }
.wb-selbox-h{ font-size:11.5px; font-weight:600; color:var(--vo-text-2); font-family:var(--vo-mono); }
.wb-field{ display:flex; align-items:center; gap:6px; font-size:11px; color:var(--vo-text-3); }
.wb-field input{ width:62px; height:30px; border-radius:7px; border:1px solid var(--vo-input-border); background:var(--vo-card-bg); font-family:var(--vo-mono); font-size:13px; font-weight:600; text-align:center; color:var(--vo-text); }
.wb-field.is-over input{ border-color:var(--vo-neg); color:var(--vo-neg); background:var(--vo-neg-soft); }

/* right — validation */
.wb-check{ padding:16px 16px 14px; display:flex; flex-direction:column; }
.wb-check-head{ margin-bottom:12px; }
.wb-check-summary{ display:flex; gap:7px; margin-top:10px; }
.wb-cs{ font-size:11px; font-weight:600; padding:3px 9px; border-radius:7px; }
.wb-cs-pass{ background:var(--vo-pos-soft); color:var(--vo-pos); }
.wb-cs-warn{ background:var(--vo-warn-soft); color:var(--vo-warn); }
.wb-cs-fail{ background:var(--vo-neg-soft); color:var(--vo-neg); }
.wb-checklist{ display:flex; flex-direction:column; }
.wb-citem{ display:flex; gap:11px; padding:11px 2px; border-bottom:1px solid var(--vo-divider); }
.wb-citem:last-child{ border-bottom:none; }
.wb-cicon{ width:22px; height:22px; border-radius:7px; display:flex; align-items:center; justify-content:center; flex:0 0 auto; margin-top:1px; }
.wb-citem--pass .wb-cicon{ background:var(--vo-pos-soft); color:var(--vo-pos); }
.wb-citem--warn .wb-cicon{ background:var(--vo-warn-soft); color:var(--vo-warn); }
.wb-citem--fail .wb-cicon{ background:var(--vo-neg-soft); color:var(--vo-neg); }
.wb-ctitle{ font-size:12.5px; font-weight:600; color:var(--vo-text); }
.wb-citem--fail .wb-ctitle{ color:var(--vo-neg); }
.wb-cdesc{ font-size:11px; color:var(--vo-text-3); margin-top:3px; line-height:1.5; }
.wb-check-foot{ margin-top:14px; padding-top:14px; border-top:1px solid var(--vo-divider); }
.wb-foot-note{ display:flex; align-items:center; gap:7px; font-size:11.5px; color:var(--vo-warn); margin-bottom:11px; }
.wb-foot-btns{ display:flex; gap:8px; }
.wb-foot-btns .vo-btn{ flex:1; justify-content:center; }

/* compact stepper variant */
.wb-steps--compact{ overflow-x:auto; }
.wb-steps--compact .wb-step{ gap:6px; }
.wb-steps--compact .wb-step-bar{ width:10px; margin:0 4px; }
.wb-steps--compact .wb-step-t{ font-size:11.5px; }
.wb-steps--compact .wb-step-dot{ width:19px; height:19px; }

/* compact (dense) mode */
.vo-dense .vo-content--wb{ gap:10px; padding:14px 20px 16px; }
.vo-dense .wb-info{ padding:9px 13px; }
.vo-dense .wb-meter{ padding:11px 12px; }
.vo-dense .wb-meter-fig{ margin:6px 0 7px; }
.vo-dense .wb-editor{ padding:14px 14px 12px; }
.vo-dense .wb-body{ gap:12px; }
.vo-dense .wb-citem{ padding:9px 2px; }
.vo-dense .wb-summary{ gap:20px; margin-top:11px; }
