/* APVNEXT-20261107: Approvals redesign. Scoped to .apvn / .apvn-modal so nothing
   else in SEC Suite changes. Uses the suite's own tokens, so dark mode follows. */

/* Home: the suite's own page shell at full width; lists are one aligned table. */
.apvn #apvTypeChips { display: none; }
.apvn .apv-scopes .apv-chiprow-label { display: none; }
.apvn-chips { margin: 0 0 12px; }
.apvn-list.appt-panel { padding: 0; gap: 0; overflow: hidden; }
.apv-root.apvn .apv-list { display: block; gap: 0; }
.apvn-grid { display: grid; grid-template-columns: 44px minmax(0, 2.4fr) minmax(0, 1.5fr) 110px 100px; column-gap: 14px; align-items: center; padding: 0 16px 0 12px; }
.apvn-head-row { min-height: 40px; border-bottom: 1px solid var(--border); background: var(--hr-card-bg); font-size: .72rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; color: var(--muted); }
.apvn-c-check { display: flex; align-items: center; justify-content: center; }
.apvn-c-check .apv-bulk-box { width: 17px; height: 17px; margin: 0; flex: none; accent-color: var(--accent); }
.apvn-c-num { text-align: right; font-variant-numeric: tabular-nums; }
.apv-root.apvn .apv-row-wrap.apvn-grid { margin: 0; border: 0; border-top: 1px solid var(--border); border-radius: 0; background: none; }
.apv-root.apvn .apv-list > .apv-row-wrap:first-child { border-top: 0; }
.apv-root.apvn .apv-row-wrap.apvn-grid:hover { background: var(--accent-soft); }
.apv-root.apvn .apv-row-wrap.apvn-grid.is-picked { background: var(--accent-soft); }
/* The button spans the five data columns and repeats them, so rows line up with the header. */
.apvn-row { grid-column: 2 / -1; width: 100%; min-height: 58px; display: grid; grid-template-columns: subgrid; align-items: center; padding: 8px 0; margin: 0; border: 0; border-radius: 0; background: none; box-shadow: none; color: var(--ink); font: inherit; font-size: .87rem; text-align: left; cursor: pointer; }
.apvn-row:hover { background: none; transform: none; box-shadow: none; }
.apvn-row > span { min-width: 0; }
.apvn-c-title strong { display: block; font-weight: 700; font-size: .9rem; overflow-wrap: anywhere; }
.apvn-row small { display: block; color: var(--muted); font-size: .76rem; font-weight: 400; }
.apvn-c-job { font-weight: 600; color: var(--accent); }
.apvn-c-job.is-where { font-weight: 500; color: var(--ink); }
.apvn-c-due { font-size: .8rem; color: var(--muted); white-space: nowrap; }
.apvn-c-due.apvn-overdue, .apvn-c-due.apvn-today { color: var(--hr-red); font-weight: 700; }

.apvn-kpis.ru-kpis { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin-bottom: 14px; }
.apvn-kpis .ru-kpi { min-width: 0; padding: 10px 12px; width: 100%; min-height: 0; text-align: left; }
.apvn-kpis .ru-kpi.is-on { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.apvn-kpis .ru-kpi-label { font-size: .66rem; letter-spacing: .04em; }
.apvn-kpis .ru-kpi-value { font-size: 1.45rem; line-height: 1.15; }
.apvn-kpis .ru-kpi-sub { font-size: .72rem; }
.apvn-kpis .ru-kpi-ic { width: 30px; height: 30px; flex: none; }
.apvn-kpis .ru-kpi-label { white-space: normal; }
.apvn-main { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 16px; align-items: start; margin-top: 2px; }
.apvn-main > * { min-width: 0; }
.apvn-main.no-rail { grid-template-columns: minmax(0, 1fr); }
.apvn-main.no-rail .apvn-rail { display: none; }
.apvn-rail { display: grid; gap: 14px; position: sticky; top: 12px; }
.apvn-rail:empty { display: none; }
.apvn-main:has(.apvn-rail:empty) { grid-template-columns: minmax(0, 1fr); }
.apvn-chart h3 { margin: 0; font-size: .9rem; font-weight: 700; color: var(--ink); }
.apvn-chart ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 11px; }
.apvn-bar { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 8px; font-size: .8rem; }
.apvn-bar-l { color: var(--ink); overflow-wrap: anywhere; }
.apvn-bar-n { color: var(--ink); font-weight: 700; font-variant-numeric: tabular-nums; }
.apvn-bar-t { grid-column: 1 / -1; display: block; height: 6px; border-radius: 3px; background: var(--accent-soft); }
.apvn-bar-t i { display: block; height: 100%; border-radius: 3px; background: var(--accent); }

.apvn .apv-filterbar { margin: 0 0 10px; }
.apvn .apv-filter-fields { gap: 8px; align-items: center; }
.apvn .apv-filter-q { min-width: 0; }
.apvn .apv-filter-date input { width: 132px; }
.apvn .apv-views-bar:empty, .apvn .apv-filter-chips:empty { display: none; }
/* List tabs: quick filters on the left, search on the right, one line. */
.apvn-main.has-toolbar #apvBody { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 12px; align-items: center; }
.apvn-main.has-toolbar #apvListArea { display: contents; }
.apvn-main.has-toolbar #apvListArea > * { grid-column: 1 / -1; }
.apvn-main.has-toolbar #apvListArea > .apvn-chips, .apvn-main.has-toolbar .apv-scopes { grid-column: 1; grid-row: 1; margin: 0 0 10px; }
.apvn-main.has-toolbar .apv-filterbar { grid-column: 2; grid-row: 1; margin: 0 0 10px; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 8px; align-items: center; }
.apvn-main.has-toolbar .apv-filter-toggle-row { display: block; order: 2; flex: none; margin: 0; padding: 0; }
.apvn-main.has-toolbar .apv-filter-fields { display: flex !important; flex: 0 1 auto; flex-wrap: wrap; min-width: 0; margin: 0; padding: 0; border: 0; background: none; box-shadow: none; }
.apvn-main.has-toolbar .apv-filter-fields:not(.is-open) > :not(.apv-filter-q):not(.apv-export-btn) { display: none !important; }
.apvn-main.has-toolbar .apv-filter-q { flex: none; width: 170px; }
.apvn-main.has-toolbar .apv-filter-fields.is-open .apv-filter-q { flex: 1 1 200px; }
.apvn-main.has-toolbar .apv-filterbar:has(.apv-filter-fields.is-open) { grid-column: 1 / -1; grid-row: 2; flex-wrap: wrap; }
.apvn-main.has-toolbar .apv-views-bar:empty { display: none; }
#apvNxMain[data-tab="inbox"] .apv-export-btn, #apvNxMain[data-tab="mine"] .apv-export-btn { display: none !important; }
.apvn-others { margin-top: 12px; }
.apvn-others > summary { cursor: pointer; list-style: none; display: inline-flex; padding: 7px 14px; border: 1px solid var(--border); border-radius: 10px; background: var(--card); color: var(--ink); font-size: .82rem; font-weight: 600; }
.apvn-others > summary::-webkit-details-marker { display: none; }
.apvn-others > summary::after { content: ' ▾'; white-space: pre; color: var(--muted); }
.apvn-others[open] > summary { margin-bottom: 10px; }
.apvn .apvn-list { clear: both; }
.apvn-chips { min-height: 36px; align-items: center; flex-wrap: wrap; gap: 6px; }
.apvn-chips .apv-chip, .apvn .apv-scopes .apv-chip { padding: 4px 10px; font-size: .78rem; width: auto; }
.apvn .apv-scopes { flex-wrap: wrap; gap: 6px; }
.apv-root.apvn { gap: 10px; }
.apvn .appt-tabs { margin-bottom: 0; }
.apvn .apv-body { margin: 0; padding: 0; }
.apvn-main { padding-top: 0; }

.apvn-row:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.apvn-sec-head:focus-visible, .apvn-pick:focus-visible, .apvn-more > summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.apvn .apv-showing-line { display: none; }

/* Quotation form */
.apv-proc-modal.apv-modal-wide:has(.apv-quo-card) { width: min(720px, 100%); }
.apv-quo-card { display: flex; flex-direction: column; gap: 10px; }
.apv-quo-card > .apv-quo-head { order: -3; }
.apv-quo-card > .apv-proc-strip { order: -2; }
.apv-quo-card > .apv-quo-files { order: -1; }
.apv-quo-card .apv-quo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.apv-quo-card:not(.show-more) .apv-quo-grid > label:has(#apvQuoFContact0, [id^="apvQuoFContact"], [id^="apvQuoFSub"], [id^="apvQuoFGst"], [id^="apvQuoFWar"], [id^="apvQuoFDel"], [id^="apvQuoFValid"]) { display: none; }
.apv-quo-card .apvn-morefields { align-self: flex-start; width: auto; padding: 2px 0; border: 0; background: none; color: var(--accent); font: inherit; font-size: .82rem; font-weight: 600; cursor: pointer; box-shadow: none; }
.apv-quo-card .apvn-morefields:hover { background: none; transform: none; }
.apv-quo-card .apv-quo-rec { order: 3; }

.apvn .apvn-btn-on { border-color: var(--accent); color: var(--accent); }

/* To pay */
.apvn-pay-row { display: grid; grid-template-columns: minmax(0, 2.2fr) minmax(0, 1.3fr) 100px 96px 104px; column-gap: 12px; align-items: center; padding: 10px 2px; border-top: 1px solid var(--border); }
.apv-acct-rows .apvn-pay-row:first-child { border-top: 0; }
.apvn-pay-open { min-width: 0; width: auto; display: grid; gap: 1px; padding: 0; border: 0; background: none; box-shadow: none; color: var(--ink); font: inherit; font-size: .87rem; text-align: left; cursor: pointer; }
.apvn-pay-open:hover { background: none; color: var(--accent); transform: none; }
.apvn-pay-open strong { font-weight: 700; overflow-wrap: anywhere; }
.apvn-pay-open small, .apvn-pay-what small { display: block; color: var(--muted); font-size: .76rem; font-weight: 400; }
.apvn-pay-what { min-width: 0; font-size: .85rem; font-weight: 600; }
.apvn-pay-done { justify-self: end; font-size: .8rem; font-weight: 700; color: var(--ok); }
.apvn-pay-note { grid-column: 1 / -1; margin: 6px 0 0; font-size: .78rem; color: var(--muted); }

/* Action-card home */
.apvn-hero { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.apvn-hero h2 { margin: 0; font-size: 1.55rem; font-weight: 800; line-height: 1.2; color: var(--ink); }
.apvn-hero p { margin: 2px 0 0; color: var(--muted); font-size: .85rem; }
.apvn-hero-acts { display: flex; align-items: center; gap: 8px; }
.apvn-menu { position: relative; }
.apvn-menu > summary { list-style: none; cursor: pointer; padding: 8px 14px; border: 1px solid var(--border); border-radius: 10px; background: var(--card); color: var(--ink); font-size: .85rem; font-weight: 600; }
.apvn-menu > summary::-webkit-details-marker { display: none; }
.apvn-menu > div { position: absolute; right: 0; top: calc(100% + 6px); z-index: 20; min-width: 190px; padding: 6px; display: grid; background: var(--card); border: 1px solid var(--border); border-radius: 10px; box-shadow: 0 10px 28px rgba(30,27,75,.14); }
.apvn-menu > div button { width: 100%; padding: 8px 10px; border: 0; border-radius: 7px; background: none; box-shadow: none; color: var(--ink); font: inherit; font-size: .85rem; font-weight: 600; text-align: left; cursor: pointer; transform: none; }
.apvn-menu > div button:hover { background: var(--accent-soft); transform: none; }
.apvn-kpis.ru-kpis { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.apvn-kpis .apvn-kpi-hot, .apvn-kpis .apvn-kpi-hot:hover { background: #4f46e5; border-color: #4f46e5; color: #fff; }
.apvn-kpis .apvn-kpi-hot .ru-kpi-label, .apvn-kpis .apvn-kpi-hot .ru-kpi-value, .apvn-kpis .apvn-kpi-hot .ru-kpi-sub { color: #fff; }
.apvn-kpis .apvn-kpi-hot .ru-kpi-ic { display: none; }
.apvn-cards { grid-column: 1 / -1; display: grid; gap: 10px; }
.apvn-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 18px; align-items: start; padding: 14px 18px; background: var(--card); border: 1px solid var(--border); border-radius: 14px; }
.apvn-card.is-open { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.apvn-card h3 { margin: 0; font-size: 1rem; font-weight: 700; color: var(--ink); overflow-wrap: anywhere; }
.apvn-card-main p { margin: 2px 0 0; color: var(--muted); font-size: .82rem; overflow-wrap: anywhere; }
.apvn-card-amt { font-size: 1.15rem; font-weight: 800; color: var(--ink); text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.apvn-card-warn { grid-column: 1 / -1; margin: 6px 0 0; padding: 6px 10px; border-radius: 8px; background: var(--dk-warn, #fdf0dc); color: #92400e; font-size: .78rem; }
.apvn-card-ask { grid-column: 1 / -1; margin: 8px 0 0; font-size: .84rem; color: var(--muted); }
.apvn-card-ask b { display: block; color: var(--ink); font-size: .88rem; }
.apvn-card-note { grid-column: 1 / -1; display: grid; gap: 4px; margin-top: 8px; font-size: .82rem; font-weight: 600; color: var(--ink); }
.apvn-card-acts { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 10px; }
.apvn-go, .apvn-alt, .apvn-view { width: auto; min-height: 38px; padding: 0 14px; border-radius: 9px; font: inherit; font-size: .85rem; font-weight: 700; cursor: pointer; box-shadow: none; white-space: nowrap; }
.apvn-go { border: 1px solid #047857; background: #047857; color: #fff; }
.apvn-go:hover { background: #065f46; transform: none; }
.apvn-go.is-plain { border-color: #4f46e5; background: #4f46e5; }
.apvn-go.is-plain:hover { border-color: #4338ca; background: #4338ca; }
.apvn-go.is-bad { border-color: #b91c1c; background: #b91c1c; }
.apvn-go.is-bad:hover { border-color: #991b1b; background: #991b1b; }
.apvn-go:disabled { opacity: .55; cursor: wait; }
.apvn-alt { border: 1px solid var(--border); background: var(--card); color: var(--ink); }
.apvn-alt:hover { background: var(--accent-soft); transform: none; }
.apvn-view { border: 0; background: none; color: var(--muted); font-weight: 600; }
.apvn-view:hover { background: none; color: var(--accent); transform: none; }
.apvn-wait { font-size: .84rem; font-weight: 600; color: var(--muted); }
.apvn-due { margin-left: auto; padding: 2px 10px; border-radius: 999px; background: var(--accent-soft); color: var(--ink); font-size: .76rem; font-weight: 700; white-space: nowrap; }
.apvn-due.is-late { background: #b91c1c; color: #fff; }
.apvn-switch { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 10px 0; }
.apvn-textbtn { width: auto; padding: 4px 0; border: 0; background: none; box-shadow: none; color: var(--accent); font: inherit; font-size: .84rem; font-weight: 700; cursor: pointer; }
.apvn-textbtn:hover { background: none; transform: none; }
.apvn-empty { grid-column: 1 / -1; padding: 46px 20px; text-align: center; background: var(--card); border: 1px solid var(--border); border-radius: 14px; }
.apvn-empty h3 { margin: 0; font-size: 1.1rem; font-weight: 800; color: var(--ink); }
.apvn-empty p { margin: 4px 0 0; color: var(--muted); font-size: .85rem; }
#apvNxMain[data-tab="inbox"]:not(.show-search) .apv-filterbar { display: none; }
.apvn-mine { display: grid; gap: 12px; }
.apvn-mine button { width: 100%; display: grid; gap: 2px; padding: 0; border: 0; background: none; box-shadow: none; color: var(--ink); font: inherit; text-align: left; cursor: pointer; transform: none; }
.apvn-mine button:hover { background: none; color: var(--accent); transform: none; }
.apvn-mine strong { font-size: .85rem; font-weight: 700; overflow-wrap: anywhere; }
.apvn-mine small { color: var(--muted); font-size: .76rem; }
.apvn-prog { display: flex; gap: 3px; margin-top: 3px; }
.apvn-prog i { flex: 1 1 0; height: 6px; border-radius: 3px; background: var(--accent-soft); }
.apvn-prog i.d { background: var(--ok); }
.apvn-prog i.n { background: var(--accent); }

/* The request opens as a side panel, so the list stays in view. */
#apvDetailOverlay.appt-overlay { justify-content: flex-end; align-items: stretch; padding: 0; background: rgba(20, 18, 43, .22); backdrop-filter: none; -webkit-backdrop-filter: none; }
#apvDetailOverlay .apvn-modal.appt-modal { width: min(680px, 100%); max-width: 680px; height: 100%; max-height: 100%; margin: 0; border-radius: 16px 0 0 16px; }

/* Side panel: same language as the cards */
.apvn-modal .apv-decide-go, .apvn-modal #apvQdApproveBtn, .apvn-modal .apv-stage-prim { background: #047857; border-color: #047857; color: #fff; }
.apvn-modal .apv-decide-go:hover:not(:disabled), .apvn-modal .apv-stage-prim:hover:not(:disabled) { background: #065f46; transform: none; }
.apvn-modal .apv-decide-go:disabled { background: var(--accent-soft); border-color: var(--border); color: var(--muted); }
.apvn-modal .apv-decide-go:disabled .apv-decide-go-main, .apvn-modal .apv-decide-go:disabled .apv-decide-go-sub { color: var(--muted); }
.apvn-modal .apv-stage-card, .apvn-modal .apv-decide-card { border-radius: 14px; }
.apvn-card-prog { grid-column: 1 / -1; margin-top: 8px; }
.apvn-head.appt-modal-head { position: sticky; top: 0; z-index: 3; background: var(--card); }
.apvn-head-main h3 { font-size: 1.1rem; }
.apvn-modal .appt-modal-body { display: flex; flex-direction: column; gap: 12px; }
.apvn-modal .appt-modal-body > * { min-width: 0; }
.apvn-modal .apvn-track { margin-bottom: 0; }
.apvn-modal .apv-decide-sum { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px 12px; }
.apvn-modal .apv-decide-sum-l { font-size: .68rem; }
.apvn-modal .apv-decide-sum-v { font-size: .85rem; overflow-wrap: anywhere; }
.apvn-modal .apvn-more > summary { background: var(--card); }

.apvn-head-main .apv-reqno { justify-self: start; width: max-content; max-width: 100%; }
.apvn-collect-empty #apvStageQuoGo, .apvn-collect-empty .apv-stage-quietrow, .apvn-collect-empty #apvQuoEditBtn { display: none; }
.apvn-collect-empty .apv-stage-quos { display: block; }
.apvn-collect-empty .apv-stage-addquo { width: 100%; min-height: 96px; border: 1px dashed var(--accent); border-radius: 12px; background: var(--accent-soft); }

/* Request page */
.apvn-modal.appt-modal { max-width: 760px; }
.apvn-head.appt-modal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.apvn-head-main { min-width: 0; display: grid; gap: 2px; }
.apvn-head-main h3 { margin: 0; font-size: 1.2rem; font-weight: 800; overflow-wrap: anywhere; }
.apvn-track { list-style: none; display: flex; gap: 4px; margin: 0 0 16px; padding: 0; }
.apvn-track li { flex: 1 1 0; min-width: 0; padding-top: 6px; border-top: 3px solid var(--border); font-size: .76rem; font-weight: 600; color: var(--muted); }
.apvn-track li.is-done { border-top-color: var(--ok); color: var(--ok); }
.apvn-track li.is-now { border-top-color: var(--accent); color: var(--accent); font-weight: 800; }
.apvn-modal .apv-reqpage { display: grid; gap: 14px; }
.apvn-modal .apv-reqpage > * { min-width: 0; }
.apvn-modal .apv-stage-card, .apvn-modal .apv-decide-card { border: 1px solid var(--border); border-radius: 12px; box-shadow: none; padding: 16px; background: var(--card); }
.apvn-modal .apv-decide { margin: 0; }
.apvn-modal .apv-stage-title, .apvn-modal .apv-decide-title { font-size: 1.2rem; font-weight: 800; color: var(--ink); margin: 0; }
.apvn-modal .apv-stage-sub, .apvn-modal .apv-decide-step { font-size: .84rem; color: var(--muted); }
.apvn-modal .apv-decide-head { display: grid; gap: 2px; }
.apvn-modal .apv-decide-hint { display: none; }
.apvn-modal .apv-decide-sum { padding: 0; background: none; border: 0; }
.apvn-modal .apv-decide-sum-sub { display: none; }

.apvn-similar { font-size: .85rem; padding: 8px 12px; border-radius: 10px; background: var(--accent-soft); }
.apvn-similar > summary { cursor: pointer; font-weight: 600; list-style: none; }
.apvn-similar > summary::-webkit-details-marker { display: none; }
.apvn-similar[open] > summary { margin-bottom: 8px; }

/* Approval box: decide top to bottom, with the note before the button. */
.apvn-modal .apv-decide-card { display: flex; flex-direction: column; gap: 12px; }
.apvn-modal .apv-decide-note { order: 1; margin: 0; }
.apvn-modal #apvApproveBtn { order: 2; }
.apvn-modal .apv-decide-quiet { order: 3; margin: 0; }
.apvn-modal .apv-decide-filebox { order: 4; }
.apvn-modal .apv-decide-go { min-height: 44px; padding: 8px 14px; border-radius: 10px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; text-align: left; }
.apvn-modal .apv-decide-go-main { font-size: .95rem; }
.apvn-modal .apv-decide-go-sub { font-size: .78rem; font-weight: 500; }
.apvn-modal #apvDecideSendToHost .apv-linkbtn { width: auto; padding: 3px 10px; border: 1px solid var(--accent); border-radius: 8px; background: var(--card); color: var(--accent); font-weight: 700; text-decoration: none; }
.apvn-modal .apv-stage-foot:empty { display: none; }
.apvn-modal .apv-stage-quos { gap: 8px; }
.apvn-modal .apv-stage-quo-big { padding: 10px 12px; }
.apvn-modal .apv-stage-head { margin-bottom: 8px; }

/* Quotation box: note, then decide. */
.apvn-modal .apv-stage-card:has(#apvQdApproveBtn) { display: flex; flex-direction: column; gap: 10px; }
.apvn-modal .apv-stage-card:has(#apvQdApproveBtn) .apv-decide-note { order: 1; margin: 0; }
.apvn-modal #apvQdApproveBtn { order: 2; }
.apvn-modal .apv-stage-card:has(#apvQdApproveBtn) .apv-decide-quiet { order: 3; margin: 0; }
.apvn-modal .apv-stage-card .apv-stage-head { margin-bottom: 0; }

/* Sections inside a request */
.apvn-sec-body > .apv-section-title, .apvn-sec-body .apv-timeline-wrap > .apv-section-title { display: none; }
.apvn-sec-body .apv-dcard { border: 0; box-shadow: none; padding: 0; background: none; }
.apvn-sec-body .apv-dcard-head .apv-section-title { display: none; }
.apvn-sec-body .apv-dcard + .apv-dcard { margin-top: 12px; }

/* More */
.apvn-more { font-size: .85rem; }
.apvn-more > summary { cursor: pointer; list-style: none; display: inline-flex; padding: 6px 14px; border: 1px solid var(--border); border-radius: 10px; color: var(--ink); font-weight: 600; font-size: .82rem; }
.apvn-more > summary::-webkit-details-marker { display: none; }
.apvn-more > summary::after { content: ' ▾'; white-space: pre; color: var(--muted); }
.apvn-more-body { display: grid; gap: 2px; padding-top: 6px; justify-items: start; }
.apvn-more-btn { width: auto; padding: 6px 0; border: 0; background: none; color: var(--ink); font: inherit; font-weight: 600; cursor: pointer; box-shadow: none; }
.apvn-more-btn:hover { color: var(--accent); background: none; transform: none; }
.apvn-more .apv-stage-extras { width: 100%; margin: 0; padding: 0; border: 0; background: none; }

/* Sections */
.apvn-sections { margin-top: 14px; border: 1px solid var(--border); border-radius: 12px; overflow: hidden; background: var(--card); }
.apvn-sec + .apvn-sec { border-top: 1px solid var(--border); }
.apvn-sec-head { width: 100%; display: flex; justify-content: space-between; gap: 12px; padding: 11px 16px; border: 0; background: none; color: var(--ink); font: inherit; font-size: .88rem; font-weight: 600; cursor: pointer; box-shadow: none; text-align: left; }
.apvn-sec-head:hover { background: var(--accent-soft); transform: none; }
.apvn-sec-body { padding: 4px 16px 16px; min-width: 0; overflow-x: auto; }

/* New request */
.apvn-picks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.apvn-pick { width: auto; display: grid; gap: 2px; align-content: start; padding: 10px 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--card); color: var(--ink); font: inherit; text-align: left; cursor: pointer; box-shadow: none; }
.apvn-pick:hover { transform: none; background: var(--accent-soft); }
.apvn-pick b { font-size: .9rem; font-weight: 700; }
.apvn-pick small { font-size: .76rem; color: var(--muted); line-height: 1.35; }
.apvn-pick.is-on { border-color: var(--accent); background: var(--accent-soft); }
.apvn-sub { margin-top: 8px; flex-wrap: wrap; }
.apvn-sub .apv-chiprow-label { display: block; width: 100%; }
.apvn-create #apvCreateTips { display: none; }
.apvn-create.appt-modal { width: min(760px, 100%); }
.apvn-create .apv-create-grid-stepped { grid-template-columns: minmax(0, 1fr); }
.apvn-create .apv-create-side:not(:has(> :not(#apvCreateTips):not(.hidden):not([hidden]))) { display: none; }
.apvn-morefields { align-self: flex-start; }
.apvn-create .apv-create-step { gap: 10px; }
.apvn-create .apv-steps { margin-bottom: 8px; }
.apvn-create .appt-field { gap: 3px; }
.apvn-create #apvDescription { min-height: 64px; }
.apvn-create .apv-purchase-summary { font-size: .85rem; font-weight: 600; }
.apvn-create:not(.show-more) .apvn-opt { display: none !important; }
.apvn-morefields { width: auto; padding: 4px 0; border: 0; background: none; color: var(--accent); font: inherit; font-size: .85rem; font-weight: 600; cursor: pointer; box-shadow: none; }
.apvn-morefields:hover { background: none; transform: none; }

@media (max-width: 1440px) {
  .apvn-kpis .ru-kpi-ic { display: none; }
}
@media (max-width: 1280px) {
  .apvn-kpis.ru-kpis { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .apvn-main { grid-template-columns: minmax(0, 1fr); }
  .apvn-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
}
@media (max-width: 640px) {
  .apvn-modal .apv-decide-sum { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .apvn-due { margin-left: 0; }
  .apvn-hero h2 { font-size: 1.3rem; }
  .apvn-hero-acts { width: 100%; }
  .apvn-hero-acts .appt-btn-primary { flex: 1 1 auto; }
  #apvDetailOverlay .apvn-modal.appt-modal { border-radius: 0; }
}
@media (max-width: 900px) {
  .apvn-main.has-toolbar #apvBody { grid-template-columns: minmax(0, 1fr); }
  .apvn-main.has-toolbar .apv-filterbar { grid-column: 1; grid-row: 1; flex-wrap: wrap; }
  .apvn-main.has-toolbar .apv-filter-q { flex: 1 1 140px; width: auto; }
  .apvn-main.has-toolbar #apvListArea > .apvn-chips, .apvn-main.has-toolbar .apv-scopes { grid-row: 2; }
  .apvn-pay-row { grid-template-columns: minmax(0, 1fr) auto; gap: 4px 10px; }
  .apvn-pay-open, .apvn-pay-what { grid-column: 1 / -1; }
  .apvn-c-due:empty { display: none; }
  .apvn-kpis.ru-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .apvn-rail { grid-template-columns: minmax(0, 1fr); }
  .apvn-head-row { grid-template-columns: 44px 1fr; }
  .apvn-head-row > span:not(.apvn-c-check):not(:nth-child(2)) { display: none; }
  .apvn-grid { grid-template-columns: 44px minmax(0, 1fr); padding-right: 12px; }
  .apvn-row { grid-column: 2; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 12px; }
  .apvn-c-title, .apvn-c-job { grid-column: 1 / -1; }
  .apvn-c-num { text-align: left; }
}
@media (max-width: 640px) {
  .apvn .appt-header { gap: 8px; }
  .apvn .appt-header-actions { display: flex; flex-wrap: wrap; gap: 6px; }
  .apvn .appt-header-actions .appt-btn-ghost { padding: 4px 9px !important; min-height: 30px !important; font-size: .74rem !important; flex: 0 0 auto; width: auto !important; }
  .apvn .appt-header-actions .appt-btn-primary { order: -1; width: 100%; }
  .apvn-kpis.ru-kpis { display: flex; gap: 8px; overflow-x: auto; scroll-snap-type: x proximity; padding-bottom: 4px; margin-bottom: 4px; }
  .apvn-kpis .ru-kpi { flex: 0 0 132px; scroll-snap-align: start; }
  .apvn .appt-tabs { flex-wrap: nowrap; overflow-x: auto; }
  .apvn .apv-view-btn { flex: none; }
  .apvn-main.has-toolbar .apv-export-btn { display: none !important; }
  .apvn-picks { grid-template-columns: minmax(0, 1fr); }
  .apv-quo-card .apv-quo-grid { grid-template-columns: minmax(0, 1fr); }
  .apvn-track li { font-size: .68rem; }
  .apvn-sec-body { padding: 4px 12px 12px; }
}
.apvn-sec-head:focus-visible { outline-offset: -2px; }
@media (max-width: 640px) {
    .apvn-menu > div { right: auto; left: 0; }
}

/* New request form: even spacing, more room, one selected style (APVNEXT-20261107 form polish) */
.apvn-create .appt-modal-head { padding: 20px 28px; }
.apvn-create .appt-modal-body { padding: 20px 28px 28px; gap: 0; }
.apvn-create .appt-modal-foot { padding: 14px 28px; }
.apvn-create .apv-steps { margin-bottom: 24px; }
.apvn-create .apv-create-step { gap: 22px; }
.apvn-create .apv-create-step > :empty { display: none; }
.apvn-create .apv-create-step > .appt-field,
.apvn-create .apv-create-step > label.appt-field { margin: 0; }
.apvn-create .appt-field { gap: 7px; }
.apvn-create .appt-field-label { font-size: .86rem; }
.apvn-create .appt-input { min-height: 42px; }
.apvn-create #apvDescription { min-height: 88px; }

.apvn-create .apvn-picks { gap: 12px; margin-top: 2px; }
.apvn-create .apvn-pick { position: relative; gap: 4px; padding: 14px 40px 14px 16px; border-radius: 12px; transition: border-color .15s, background .15s; }
.apvn-create .apvn-pick b { font-size: .95rem; }
.apvn-create .apvn-pick small { font-size: .8rem; line-height: 1.4; }
.apvn-create .apvn-pick::after { content: ""; position: absolute; top: 14px; right: 14px; width: 16px; height: 16px; border-radius: 50%; border: 1.5px solid var(--border); background: var(--card); box-sizing: border-box; }
.apvn-create .apvn-pick.is-on { border-color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }
.apvn-create .apvn-pick.is-on::after { border: 5px solid var(--accent); background: var(--card); }

.apvn-create .apvn-sub { margin-top: 20px; gap: 8px; }
.apvn-create .apvn-sub .apv-chiprow-label { margin: 0 0 2px; font-size: .86rem; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--ink); }
.apvn-create .apvn-sub .apv-chip { padding: 8px 14px; font-size: .84rem; border-radius: 999px; }
.apvn-create .apvn-sub .apv-chip.is-on,
.apvn-create .apvn-sub .apv-chip.is-on:hover { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); box-shadow: inset 0 0 0 1px var(--accent); }

.apvn-create .apvn-morefields { margin: -6px 0 -8px; }
.apvn-create .apv-purchase-details { border-radius: 12px; background: var(--card); }
.apvn-create .apv-purchase-summary { display: flex; align-items: center; gap: 10px; padding: 14px 16px; font-size: .9rem; list-style: none; }
.apvn-create .apv-purchase-summary::-webkit-details-marker { display: none; }
.apvn-create .apv-purchase-summary::before { content: ""; width: 7px; height: 7px; border-right: 2px solid var(--muted); border-bottom: 2px solid var(--muted); transform: rotate(-45deg); transition: transform .15s; flex: none; }
.apvn-create .apv-purchase-details[open] > .apv-purchase-summary::before { transform: rotate(45deg); }
.apvn-create .apv-purchase-details[open] > .apv-purchase-summary { border-bottom: 1px solid var(--border); }
.apvn-create .apv-purchase-fields { gap: 18px; padding: 16px; }

/* Rows of fields: every box on one line, even when a label wraps to two lines. */
.apvn-create .appt-field-row { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); grid-template-rows: auto auto auto auto; column-gap: 14px; row-gap: 0; }
.apvn-create .appt-field-row:has(> .apv-field-narrow) { grid-template-columns: minmax(0, 1.3fr) minmax(0, .6fr) minmax(0, 1.3fr); }
.apvn-create .appt-field-row:has(> .apv-field-wide):not(:has(> .apv-field-narrow)) { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
.apvn-create .appt-field-row > .appt-field-row { display: contents; }
.apvn-create .appt-field-row > .appt-field,
.apvn-create .appt-field-row > .appt-field-row > .appt-field { display: grid; grid-row: span 4; grid-template-rows: subgrid; row-gap: 7px; margin: 0; align-content: start; }
.apvn-create .appt-field-row > .appt-field > .appt-field-label,
.apvn-create .appt-field-row > .appt-field-row > .appt-field > .appt-field-label { align-self: end; }
.apvn-create .appt-field-label em { font-weight: 500; color: var(--muted); }
.apvn-create .apv-fs { padding: 14px 18px 18px; gap: 18px; border-radius: 12px; }
.apvn-create .apv-fs legend { padding: 0 6px; font-size: .86rem; }
.apvn-create .appt-hint { font-size: .76rem; line-height: 1.4; }

/* Steps 2 and 3 (Who approves, Check and send): same room and rhythm as step 1. */
.apvn-create .apv-create-grid { gap: 22px; }
.apvn-create .apv-create-step > .apv-step-intro { gap: 4px; margin-bottom: -6px; }
.apvn-create .apv-step-title { font-size: 1.05rem; }
.apvn-create .apv-step-intro .apv-scope-line { font-size: .84rem; }
.apvn-create .apv-step-card,
.apvn-create .apv-create-side .apv-side-card { padding: 18px 20px; gap: 10px; border-radius: 12px; }
.apvn-create .apv-side-title { font-size: .95rem; font-weight: 700; }
.apvn-create .apv-step-card .apv-scope-line,
.apvn-create .apv-create-side .apv-scope-line { font-size: .82rem; line-height: 1.45; }
.apvn-create .apv-route-list { gap: 8px; margin-top: 4px; }
.apvn-create .apv-route-list > li { align-items: center; gap: 12px; padding: 10px 14px; border: 1px solid var(--border); border-radius: 10px; }
.apvn-create .apv-route-list .apv-wf-pv-idx { width: 26px; height: 26px; font-size: .78rem; }
.apvn-create .apv-route-list strong { font-size: .9rem; }
.apvn-create .apv-route-list small { font-size: .78rem; color: var(--muted); }
.apvn-create #apvOverrideToggle { align-self: flex-start; margin-top: 2px; font-size: .84rem; }
.apvn-create .apv-cc-chips { min-height: 0; }
.apvn-create .apv-review-kv { grid-template-columns: 140px minmax(0, 1fr); gap: 0; margin: 2px 0 6px; font-size: .88rem; }
.apvn-create .apv-review-kv dt,
.apvn-create .apv-review-kv dd { padding: 9px 0; border-bottom: 1px solid var(--border); }
.apvn-create .apv-review-kv dt:last-of-type,
.apvn-create .apv-review-kv dd:last-of-type { border-bottom: 0; }
.apvn-create .apv-review-kv dd { font-weight: 600; }
.apvn-create #apvReviewCard > .apv-side-title + .apv-chain,
.apvn-create #apvReviewCard > .apv-chain { margin-top: 6px; }
.apvn-create .apv-proc-assist-note { font-size: .84rem; padding: 4px 0 4px 12px; }
.apvn-create .apv-step-card > :empty { display: none; }
.apvn-create #apvReviewCard .apv-chain { margin-bottom: 0; }

@media (max-width: 640px) {
    .apvn-create .appt-modal-head, .apvn-create .appt-modal-foot { padding-left: 16px; padding-right: 16px; }
    .apvn-create .appt-modal-body { padding: 16px 16px 20px; }
    .apvn-create .apvn-picks { grid-template-columns: minmax(0, 1fr); }
    .apvn-create .apv-create-step { gap: 18px; }
    .apvn-create .apv-steps-item { flex: 0 0 auto; }
    .apvn-create .apv-steps-item.is-on { flex: 1 1 auto; }
    .apvn-create .apv-steps-item.is-on .apv-steps-btn span { white-space: nowrap; }
    .apvn-create .apv-steps { margin-bottom: 18px; }
    .apvn-create .apv-step-card,
    .apvn-create .apv-create-side .apv-side-card { padding: 16px; }
    .apvn-create .apv-review-kv { grid-template-columns: 110px minmax(0, 1fr); }
    .apvn-create .appt-field-row,
    .apvn-create .appt-field-row:has(> .apv-field-narrow),
    .apvn-create .appt-field-row:has(> .apv-field-wide):not(:has(> .apv-field-narrow)) { display: flex; flex-direction: column; gap: 18px; }
    .apvn-create .appt-field-row > .appt-field,
    .apvn-create .appt-field-row > .appt-field-row > .appt-field { display: flex; flex-direction: column; gap: 7px; }
    .apvn-create .appt-field-row > .appt-field-row { display: contents; }
}
