/* BorDoc — Document Review screen.
   Foundations from ../../colors_and_type.css; shared primitives from shared.jsx. */

*{box-sizing:border-box}

/* shared folder-picker popover + Přesunout do… on review screen */
.rs-moveto{position:relative;display:inline-flex}
.rs-moveto-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:60}
.fp-pop{width:340px;max-height:440px;display:flex;flex-direction:column;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);overflow:hidden}
.fp-head{padding:13px 16px;border-bottom:1px solid var(--border);font-size:13px;font-weight:500;color:var(--fg1)}
.fp-body{flex:1;overflow-y:auto;padding:6px 6px 10px}
.fp-branch{display:flex;align-items:center;gap:8px;padding:7px 8px;font-size:13px;color:var(--fg3)}
.fp-branch .lic{color:var(--fg3)}
.fp-leaf{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:var(--radius-sm);font-size:13.5px;color:var(--fg1);cursor:pointer}
.fp-leaf:hover{background:var(--bg-hover)}
.fp-leaf.on{background:var(--bg-selected);color:var(--accent-text)}
.fp-leaf .lic:first-child{color:var(--fg3)}
.fp-leaf.on .lic{color:var(--accent-text)}
.fp-leaf .lic:last-child{margin-left:auto}
.fp-newtag{font-size:10.5px;color:var(--success);background:var(--success-tint);border-radius:var(--radius-full);padding:1px 7px;margin-left:4px}
.fp-create-btn{display:inline-flex;align-items:center;gap:6px;border:none;background:none;color:var(--accent-text);font-size:12.5px;font-weight:500;cursor:pointer;font-family:var(--font-sans);padding:5px 8px;margin-top:2px}
.fp-create-btn:hover{text-decoration:underline}
.fp-create-zone{padding:8px 12px;border-top:1px solid var(--border);background:var(--bg-subtle)}
.fp-create{display:flex;align-items:center;gap:6px;padding:4px 0}
.fp-create-input{flex:1;min-width:0;height:30px;padding:0 9px;border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--fg1);font-family:var(--font-sans);font-size:13px;outline:none}
.fp-create-ok{border:none;background:var(--accent);color:var(--fg-on-accent);border-radius:var(--radius-sm);height:30px;padding:0 11px;font-size:12.5px;font-weight:500;cursor:pointer;font-family:var(--font-sans)}
.fp-create-cancel{border:none;background:none;color:var(--fg3);font-size:12.5px;cursor:pointer;font-family:var(--font-sans);padding:0 4px}
.fp-foot{display:flex;justify-content:flex-end;gap:9px;padding:11px 16px;border-top:1px solid var(--border)}
.fp-head .lic{color:var(--accent-text);margin-right:6px;vertical-align:-2px}
.fp-camphint{padding:8px 16px 4px;font-size:12px;line-height:1.45;color:var(--fg3)}
.fp-camphint b{color:var(--fg2);font-weight:500}
.fp-leaf.disabled{cursor:default;color:var(--fg3);opacity:.7}
.fp-leaf.disabled:hover{background:none}
.fp-currenttag{font-size:10.5px;color:var(--fg3);background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-full);padding:1px 7px;margin-left:auto}
html,body{margin:0;height:100%}
body{font-family:var(--font-sans);font-size:var(--text-base);color:var(--fg1);background:var(--bg-app);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
#root{height:100vh}
:focus-visible{outline:none;box-shadow:var(--ring-focus);border-radius:var(--radius-sm)}
button{font-family:inherit}
.lic{display:inline-flex;align-items:center;justify-content:center;flex:none}
.lic svg{width:100%;height:100%;display:block}

/* ---------- Shell ---------- */
.rs-shell{height:100vh;display:flex;flex-direction:column;overflow:hidden;flex:1;min-width:0}

/* ---------- Top bar ---------- */
.rs-top{flex:none;height:60px;display:flex;align-items:center;gap:16px;padding:0 20px;background:var(--bg-surface);border-bottom:1px solid var(--border);position:relative;z-index:30}

/* horizontal nav: brand + menu (left), portfolio (right) */
.rs-brand{font-size:18px;font-weight:500;color:var(--fg1);text-decoration:none;letter-spacing:-0.01em;white-space:nowrap}
.rs-brand:hover{color:var(--accent-text)}
.rs-menu{position:relative}
.rs-menu-btn{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 13px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--fg2);font-size:14px;font-weight:500;cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.rs-menu-btn:hover{background:var(--bg-hover);color:var(--fg1)}
.rs-menu-btn .lic{width:17px;height:17px}
/* persistent upload button (primary, in top bar) */
.rs-uploadbtn{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 15px;border:1px solid var(--accent);border-radius:var(--radius-md);background:var(--accent);color:var(--fg-on-accent);font-size:14px;font-weight:500;font-family:var(--font-sans);text-decoration:none;white-space:nowrap}
.rs-uploadbtn:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.rs-uploadbtn .lic{width:16px;height:16px}
.rs-portfolio{position:relative}
/* campaign switcher (outer level, before portfolio) */
.rs-campaign{position:relative}
.rs-campaign-btn{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 12px;border:1px solid var(--accent);border-radius:var(--radius-md);background:var(--accent-tint);color:var(--accent-text);font-size:13.5px;font-weight:500;font-family:var(--font-sans);cursor:pointer}
.rs-campaign-btn:hover{background:var(--accent-tint);filter:brightness(.97)}
.rs-campaign-btn .lic{flex:none}
.rs-campaign-btn .camp-name{white-space:nowrap;max-width:160px;overflow:hidden;text-overflow:ellipsis}
.rs-camp-scrim{position:fixed;inset:0;z-index:55}
.rs-campaign-dd{right:auto;left:0;min-width:280px;z-index:56}
.rs-camp-col{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.rs-camp-meta{font-size:11.5px;color:var(--fg3)}
.rs-pf-camp{padding:9px 12px 4px;font-size:12px;color:var(--fg3)}
.rs-pf-camp b{color:var(--fg2);font-weight:500}
.rs-portfolio-btn{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 12px;border:1px solid var(--accent);border-radius:var(--radius-md);background:var(--accent-tint);color:var(--accent-text);font-size:13.5px;font-weight:500;cursor:pointer;transition:background var(--dur) var(--ease),filter var(--dur) var(--ease)}
.rs-portfolio-btn:hover{background:var(--accent-tint);filter:brightness(.97)}
.rs-portfolio-btn .lic{flex:none}
.rs-portfolio-btn .lic:first-child{color:var(--accent-text)}
.rs-portfolio-btn .co-name{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* dropdowns (shown open as design states) */
.rs-dropdown{position:absolute;top:calc(100% + 7px);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:6px;min-width:236px;z-index:40}
.rs-menu-dd{left:0}
.rs-portfolio-dd{right:0}
.rs-navscrim{position:fixed;inset:0;z-index:40}
.rs-dropdown{z-index:50}
/* Účet/Kampaň dropdown must sit ABOVE its own scrim (.rs-camp-scrim z-index:55),
   otherwise the transparent full-viewport scrim swallows every item click and the
   menu just closes (handlers never fire). The compound selector outranks the bare
   .rs-dropdown{z-index:50} above by specificity, so source order can't drop it back
   under the scrim. Portfolio dropdown uses the lower .rs-navscrim (z40) — untouched. */
.rs-dropdown.rs-campaign-dd{z-index:60}
/* searchable portfolio dropdown */
.rs-portfolio-dd{min-width:312px}
.rs-pf-search{position:relative;display:flex;align-items:center;padding:4px 4px 8px}
.rs-pf-search .lic{position:absolute;left:14px;width:16px;height:16px;color:var(--fg3);pointer-events:none}
.rs-pf-input{width:100%;height:38px;padding:0 12px 0 36px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--fg1);font-family:var(--font-sans);font-size:14px;outline:none;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.rs-pf-input::placeholder{color:var(--fg3)}
.rs-pf-input:focus{border-color:var(--accent);box-shadow:var(--ring-focus)}
.rs-pf-list{display:flex;flex-direction:column;gap:1px;max-height:280px;overflow-y:auto}
.rs-pf-item{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:var(--radius-sm);text-decoration:none;cursor:pointer;color:var(--fg2);transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.rs-pf-item:hover{background:var(--bg-hover)}
.rs-pf-item.active{background:var(--bg-selected)}
.rs-pf-item > .lic:first-child{width:18px;height:18px;flex:none;color:var(--fg3)}
.rs-pf-item.active > .lic:first-child,.rs-pf-item.active > .lic:last-child{color:var(--accent-text)}
.rs-pf-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.rs-pf-name{font-size:14px;font-weight:500;color:var(--fg1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rs-pf-item.active .rs-pf-name{color:var(--accent-text)}
.rs-pf-ico{font-size:12px;color:var(--fg3);font-family:var(--font-mono)}
.rs-pf-empty{padding:18px 12px;text-align:center;font-size:13px;color:var(--fg3)}
.rs-switch-err{display:flex;align-items:center;gap:8px;margin:6px 4px;padding:8px 11px;border-radius:var(--radius-sm);background:var(--danger-tint);color:var(--danger);font-size:13px;font-weight:500}
.rs-switch-err .lic{flex:none}
.rs-dd-item{display:flex;align-items:center;gap:11px;height:38px;padding:0 11px;border-radius:var(--radius-sm);color:var(--fg2);font-size:14px;font-weight:500;text-decoration:none;cursor:pointer;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}
.rs-dd-item:hover{background:var(--bg-hover);color:var(--fg1)}
.rs-dd-item.active{background:var(--accent-tint);color:var(--accent-text)}
.rs-dd-item .lic{width:17px;height:17px;flex:none}
.rs-dd-item .nav-label{flex:1;white-space:nowrap}
.rs-dd-item.active .lic:last-child{color:var(--accent-text)}
.rs-dd-badge{min-width:20px;height:20px;padding:0 6px;border-radius:var(--radius-full);background:var(--attention);color:#fff;font-size:12px;font-weight:500;display:inline-flex;align-items:center;justify-content:center;flex:none}
.rs-dd-divider{height:1px;background:var(--border);margin:6px 4px}
.rs-dd-label{font-size:10.5px;font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--fg3);padding:7px 11px 5px}
.rs-back{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 12px 0 9px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--fg2);font-size:14px;font-weight:500;cursor:pointer;transition:background var(--dur) var(--ease)}
.rs-back .lic{width:17px;height:17px}
.rs-back:hover{background:var(--bg-hover);color:var(--fg1)}
.rs-doc{display:flex;align-items:center;gap:12px;min-width:0}
.rs-doc .lic.file{width:20px;height:20px;color:var(--fg3)}
/* document-name: width adapts to the name (size attr), capped so it can't
   overflow the header; full name shows up to the cap, then ellipsis */
.rs-doc .name{font-size:16px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:520px}
.rs-docname-input{font-size:16px;font-weight:500;font-family:var(--font-sans);color:var(--fg1);background:var(--bg-surface);border:1px solid var(--border-focus);border-radius:var(--radius-sm);padding:4px 9px;outline:none;min-width:0;max-width:520px;box-shadow:var(--ring-focus)}
.rs-docname-wrap{display:inline-flex;flex-direction:column;gap:3px;min-width:0}
.rs-docname-hint{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--fg3);padding-left:2px}
.rs-docname-hint .lic{width:12px;height:12px;color:var(--accent-text)}

/* folder location marker + popover (header) */
.rs-folder{position:relative;display:inline-flex}
.rs-folder-btn{width:28px;height:28px;border:none;background:none;border-radius:var(--radius-sm);color:var(--fg3);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.rs-folder-btn:hover{background:var(--bg-hover);color:var(--accent-text)}
.rs-folder-scrim{position:fixed;inset:0;z-index:55}
.rs-folder-pop{position:fixed;z-index:56;display:flex;flex-direction:column;gap:9px;min-width:250px;padding:13px 15px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);white-space:nowrap}
.rs-folder-pop-h{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--fg3)}
.rs-folder-path{display:flex;align-items:center;flex-wrap:wrap;gap:2px;font-size:13.5px;color:var(--fg1)}
.rs-folder-path .seg{display:inline-flex;align-items:center;gap:2px}
.rs-folder-path .seg:first-child .lic{display:none}
.rs-folder-path .seg .lic{width:12px;height:12px;color:var(--fg3)}
.rs-folder-open{display:inline-flex;align-items:center;gap:7px;margin-top:2px;padding-top:9px;border-top:1px solid var(--border);font-size:13px;font-weight:500;color:var(--accent-text);text-decoration:none}
.rs-folder-open:hover{text-decoration:underline}
.rs-folder-open .lic{width:15px;height:15px}
.rs-doc .meta{font-family:var(--font-mono);font-size:12px;color:var(--fg3)}
.rs-spacer{flex:1}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 18px;border-radius:var(--radius-md);font-size:15px;font-weight:500;line-height:1;cursor:pointer;border:1px solid transparent;white-space:nowrap;flex:none;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}
.btn .lic{width:17px;height:17px}
.btn-primary{background:var(--accent);color:var(--fg-on-accent)}
.btn-primary:hover{background:var(--accent-hover)}
.btn-ghost{background:none;color:var(--fg2);border-color:transparent}
.btn-ghost:hover{background:var(--bg-hover);color:var(--fg1)}
.btn-secondary{background:none;color:var(--accent-text);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.btn-secondary:hover{background:var(--accent-tint);color:var(--accent-text);box-shadow:inset 0 0 0 1px var(--accent)}
.btn-danger{background:none;color:var(--danger);border-color:var(--danger)}
.btn-danger:hover{background:var(--danger-tint)}
/* right-hand toolbar group: the three actions sit close; Smazat sits apart to their left */
.rs-actions{display:flex;align-items:center;gap:8px;margin-left:16px}

/* ---------- Modal dialog ---------- */
.rs-overlay{position:fixed;inset:0;background:rgba(21,24,28,.45);display:flex;align-items:center;justify-content:center;padding:24px;z-index:50;animation:rs-fade var(--dur) var(--ease)}
.rs-modal{width:100%;max-width:440px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:24px;animation:rs-rise var(--dur-slow) var(--ease)}
.rs-modal-icon{width:40px;height:40px;border-radius:var(--radius-md);display:inline-flex;align-items:center;justify-content:center;margin-bottom:14px}
.rs-modal-icon.danger{background:var(--danger-tint);color:var(--danger)}
.rs-modal-icon.warn{background:var(--attention-tint);color:var(--attention-text)}
.rs-modal h2{margin:0 0 8px;font-size:18px;font-weight:500;color:var(--fg1);letter-spacing:var(--tracking-tight)}
.rs-modal p{margin:0;font-size:14.5px;line-height:1.55;color:var(--fg2)}
.rs-modal-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}
.btn-danger-solid{background:var(--danger);color:#fff;border-color:transparent}
.btn-danger-solid:hover{background:var(--red-700);filter:brightness(.92)}
@keyframes rs-fade{from{opacity:0}to{opacity:1}}
@keyframes rs-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ---------- Saved toast ---------- */
.rs-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;background:var(--bg-surface);border:1px solid var(--border);border-left:3px solid var(--success);box-shadow:var(--shadow-lg);border-radius:var(--radius-md);padding:12px 16px;font-size:14px;font-weight:500;color:var(--fg1);z-index:60;animation:rs-rise var(--dur-slow) var(--ease)}
.rs-toast .lic{color:var(--success)}

/* ---------- Queue counter (header) ---------- */
.rs-queue{display:inline-flex;align-items:center;padding-left:12px;border-left:1px solid var(--border);white-space:nowrap}
.rs-queue .pos{font-size:13px;font-weight:500;color:var(--fg2)}
.rs-queue .sep{margin:0 8px;color:var(--fg3)}
.rs-queue .att{font-size:13px;color:var(--fg3)}

/* ---------- Done / empty-queue state ---------- */
.rs-done-shell{align-items:center;justify-content:center}
.rs-done{margin:auto;text-align:center;max-width:380px;padding:40px;display:flex;flex-direction:column;align-items:center}
.rs-done-icon{color:var(--success);margin-bottom:12px;display:inline-flex}
.rs-done h2{font-size:24px;font-weight:500;color:var(--fg1);margin:0 0 6px;letter-spacing:var(--tracking-tight)}
.rs-done p{font-size:15px;color:var(--fg2);margin:0 0 22px;line-height:1.5}

/* ---------- Editable line items (left panel) — one card per item ----------
   Each line item (Popis + the five numbers) is wrapped in ONE raised card; inside it,
   each value is a recessed label+value slot (small label on top, value beneath, both
   left-aligned). Numbers pack left so each value sits under its label with no
   edge-to-edge gap. See .rs-item below for the elevation rationale. */
.rs-items{display:flex;flex-direction:column;gap:14px}
/* Each line item is ONE card grouping its description + numeric fields as a single
   unit, clearly separated from the next (the gap above). The card is the RAISED
   surface: white (--bg-surface) on the gray app pane (--bg-app), a --border-strong
   frame + a subtle --shadow-xs lift, so the whole item reads as one block. The inner
   fields RECEDE into it — light --bg-subtle slots inside the white card — instead of
   each being its own white box (the earlier subtle-on-subtle card was invisible
   against the pane, so the white field boxes read as separate items). Elevation, not
   a new visual language: pane < card (white, lifted) < recessed field slots. */
.rs-item{display:flex;flex-direction:column;gap:8px;min-width:0;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-surface);box-shadow:var(--shadow-xs);padding:10px 11px 11px;transition:border-color var(--dur) var(--ease)}
.rs-item:hover{border-color:var(--border-strong)}
.rs-item .rs-cell{display:flex;flex-direction:column;gap:4px;min-width:0;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-subtle);padding:5px 9px 6px;transition:border-color var(--dur) var(--ease)}
.rs-item .rs-cell:hover{border-color:var(--border-strong)}
/* label stays on one line so the "%" in "Sazba %" never drops below it */
.rs-item .rs-field-label{white-space:nowrap}
/* five numeric cells share the full row width responsively (like the top fields'
   1fr/1fr) and reflow on resize — no empty space left on the right */
.rs-item-row{display:grid;grid-template-columns:0.8fr 1fr 0.7fr 1fr 1.1fr;gap:8px}
/* numbers left-aligned, directly beneath their label (was right-edge) */
.rs-input.num{text-align:left}
.rs-subtotal{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:7px;padding:7px 11px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-subtle)}
.rs-subtotal .lab{font-size:13px;font-weight:500;color:var(--fg2)}
.rs-subtotal .val{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:14px;color:var(--fg1)}
.rs-subtotal.warn{background:var(--attention-tint);border-color:var(--attention)}
.rs-subtotal.warn .lab,.rs-subtotal.warn .val{color:var(--attention-text)}
.rs-mismatch .ref{font-weight:500}

/* ---------- Split ---------- */
/* left pane narrowed so the document (right) renders larger; left still fits two
   short fields side-by-side (IČO+DIČ) comfortably */
.rs-split{flex:1;display:grid;grid-template-columns:32% 68%;min-height:0}
.rs-left{overflow-y:auto;border-right:1px solid var(--border);background:var(--bg-app)}
.rs-left-inner{padding:12px 16px 28px}
.rs-right{background:var(--bg-subtle);display:flex;flex-direction:column;min-height:0}
/* single merged row: queue nav + document actions, fluid so all six fit one line */
.rs-actions-bar{flex:none;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:7px clamp(3px,0.4vw,6px);padding:10px clamp(8px,1vw,16px);background:var(--bg-surface);border-bottom:1px solid var(--border)}
.rs-actions-bar .btn{height:clamp(32px,4vh,38px);padding:0 clamp(5px,0.6vw,9px);font-size:clamp(11px,0.82vw,12.5px);gap:clamp(2px,0.35vw,5px);white-space:nowrap;min-width:0}
.rs-actions-bar .btn .lic{width:clamp(11px,0.8vw,13px);height:clamp(11px,0.8vw,13px);flex:none}
.rs-actions-bar .btn:disabled{opacity:.5;cursor:not-allowed}
/* overflow "…" menu in action bar */
.rs-actions-bar .btn-danger{margin:0 clamp(0px,0.3vw,4px)}
.rs-right-scroll{flex:1;min-height:0;overflow:hidden;padding:24px;display:flex;justify-content:center}

/* ---------- Summary banner ---------- */
.rs-summary{display:flex;align-items:center;gap:8px;padding:7px 12px;border-radius:var(--radius-md);font-size:12.5px;font-weight:500;margin-bottom:10px}
.rs-summary .lic{width:16px;height:16px;flex:none}
.rs-summary.warn{background:var(--attention-tint);color:var(--attention-text)}
.rs-summary.ok{background:var(--success-tint);color:var(--success)}
.rs-summary .sub{font-weight:400;color:inherit;opacity:.85;margin-left:2px}

/* possible-duplicate banner + "open the matched doc" link */
.rs-dupbanner{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--radius-md);font-size:12.5px;background:var(--attention-tint);color:var(--attention-text);margin-bottom:10px}
.rs-dupbanner .lic{flex:none}
.rs-dupbanner span{flex:1;min-width:0}
.rs-duplink{flex:none;border:1px solid var(--attention);background:var(--bg-surface);color:var(--attention-text);border-radius:var(--radius-sm);padding:4px 9px;font-size:12px;font-weight:500;cursor:pointer;font-family:var(--font-sans);white-space:nowrap}
.rs-duplink:hover{background:var(--attention-tint)}
.rs-duplink:disabled{opacity:.5;cursor:not-allowed}
.rs-duplink:disabled:hover{background:var(--bg-surface)}

/* wrong/foreign/missing-receiver banner — backend-flagged (WRONG_RECEIVER /
   RECEIVER_FOREIGN / RECEIVER_MISSING). Danger styling: more serious than the
   attention-tinted duplicate banner — the doc may belong to another firm. */
.rs-recvbanner{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--radius-md);font-size:12.5px;background:var(--danger-tint);color:var(--danger);margin-bottom:10px;font-weight:500}
.rs-recvbanner .lic{flex:none}
.rs-recvbanner span{flex:1;min-width:0;font-weight:400}
/* "This is my company" override action inside the receiver banner — outlined on
   surface so it reads as a deliberate confirm, not part of the red warning text. */
.rs-recvconfirm{flex:none;display:inline-flex;align-items:center;gap:5px;border:1px solid var(--danger);background:var(--bg-surface);color:var(--danger);border-radius:var(--radius-sm);padding:5px 11px;font-size:12px;font-weight:500;cursor:pointer;font-family:var(--font-sans);white-space:nowrap}
.rs-recvconfirm .lic{flex:none}
.rs-recvconfirm:hover{background:var(--danger-tint)}
.rs-recvconfirm:disabled{opacity:.5;cursor:not-allowed}
.rs-recvconfirm:disabled:hover{background:var(--bg-surface)}
/* Success variant — e.g. the filename banner once the suggested rename is applied
   (calm green; the action is no longer a warning, just a pending confirmation). */
.rs-recvbanner.ok{background:var(--success-tint);color:var(--success)}

/* Filename-mismatch banner: full width, message wraps normally; the single-doc rename
   link sits INSIDE the box, the auto-rename action sits BELOW it (see .rs-fnblock). */
.rs-recvbanner.rs-fnbanner{flex-direction:column;align-items:stretch;gap:10px}
/* WARNING tone (pre-rename) — a calm amber "needs a small correction" notice, NOT the
   red danger of the receiver banner: warm attention tint, normal dark body text, amber
   triangle. Scoped to the filename banner so the receiver/danger banner stays red. */
.rs-recvbanner.rs-fnwarn{background:var(--attention-tint);color:var(--fg1)}
.rs-recvbanner.rs-fnwarn .lic{color:var(--attention-text)}
/* The single-doc rename action — OUTLINED green, distinct from the filled-green primary
   "Uložit" (btn-primary) so the two greens don't blend. */
.rs-fnbtn-rename{flex:none;border:1px solid var(--accent);background:var(--bg-surface);color:var(--accent-text);border-radius:var(--radius-sm);padding:5px 11px;font-size:12px;font-weight:500;cursor:pointer;font-family:var(--font-sans);white-space:nowrap}
.rs-fnbtn-rename:hover{background:var(--accent-tint)}
.rs-fnbanner-msg{display:flex;align-items:flex-start;gap:8px}
.rs-fnbanner-msg .lic{flex:none;margin-top:1px}
.rs-fnbanner-msg span{flex:1;min-width:0}
.rs-fnbanner-actions{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.rs-fnbanner-note{display:flex;align-items:flex-start;gap:6px;font-size:12px;font-weight:400;color:var(--success)}
.rs-fnbanner-note .lic{flex:none;margin-top:1px}
/* Group the banner box + the full-width auto-rename button beneath it as one unit. */
.rs-fnblock{margin-bottom:10px}
.rs-fnblock .rs-recvbanner{margin-bottom:8px}
/* The auto-rename action — a distinct, FULL-WIDTH filled BLUE button (the design's
   primary-blue token), set directly below the banner and apart from the plain outlined
   single-doc rename link inside it. */
.rs-fnbtn-auto{display:block;width:100%;text-align:center;border:1px solid var(--blue-600);background:var(--blue-600);color:var(--fg-on-accent);border-radius:var(--radius-sm);padding:8px 12px;font-size:12.5px;font-weight:500;cursor:pointer;font-family:var(--font-sans)}
.rs-fnbtn-auto:hover{background:var(--blue-700);border-color:var(--blue-700)}
.rs-fnbtn-auto:disabled{opacity:.5;cursor:not-allowed}
.rs-fnbtn-auto:disabled:hover{background:var(--blue-600);border-color:var(--blue-600)}

/* ---------- Field group (compact / Digitoo-density default) ---------- */
.rs-group{margin-bottom:12px}
.rs-group-head{display:flex;align-items:center;gap:7px;margin-bottom:5px}
.rs-group-head .lic{width:14px;height:14px;color:var(--fg3)}
.rs-group-head h3{font-size:11px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--fg3);margin:0}
.rs-fields{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.rs-fields.grid6{grid-template-columns:repeat(6,1fr)}
.rs-field.full{grid-column:1 / -1}

/* ---------- Field (tight: short height, small label, no full-width stretch) ---------- */
.rs-field{position:relative;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-surface);padding:4px 9px 5px;cursor:text;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.rs-field:hover{border-color:var(--border-strong)}
.rs-field.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.rs-field.review{border-color:var(--attention);background:var(--attention-tint)}
.rs-field.review.active{box-shadow:0 0 0 1px var(--attention)}
.rs-field.review::before{content:"";position:absolute;left:0;top:5px;bottom:5px;width:3px;background:var(--attention);border-radius:3px}
/* label + status indicator sit together on the left (no space-between gap that
   visually detaches the value from its label) */
.rs-field-top{display:flex;align-items:center;justify-content:flex-start;gap:7px;margin-bottom:0}
.rs-field-label{font-size:10.5px;font-weight:500;color:var(--fg3);letter-spacing:.01em}
.rs-field.review .rs-field-label{color:var(--attention-text)}
.rs-input{width:100%;border:none;background:none;outline:none;font-family:var(--font-sans);font-size:13.5px;color:var(--fg1);padding:0;line-height:1.25}
.rs-input.mono{font-family:var(--font-mono)}
/* read-only mode: fields look like quiet displayed values, not inputs */
.rs-field.readonly{cursor:default}
.rs-field.readonly .rs-input{cursor:default}
.rs-input[readonly]{cursor:default}

.rs-input::placeholder{color:var(--fg3)}

/* ---------- Status indicators ---------- */
.ind{display:inline-flex;align-items:center;gap:4px;flex:none;line-height:1}
.ind .lic{width:15px;height:15px}
.ind.ai{color:var(--fg3)}
.ind.verified{color:var(--success)}
.ind.review{height:21px;padding:0 7px;border-radius:var(--radius-sm);background:var(--attention);color:#fff;font-size:11px;font-weight:500;cursor:pointer}
.ind.review .lic{width:12px;height:12px}

/* ---------- Total mismatch note ---------- */
.rs-mismatch{display:flex;align-items:flex-start;gap:7px;margin-top:7px;padding:7px 9px;border-radius:var(--radius-sm);background:var(--attention-tint);color:var(--attention-text);font-size:12px;line-height:1.4}
.rs-mismatch .lic{width:14px;height:14px;margin-top:1px;flex:none}
.rs-mismatch b{font-family:var(--font-mono);font-weight:500}

/* per-field inline warning (e.g. DUZP missing) */
.rs-field-warn{display:flex;align-items:flex-start;gap:6px;margin-top:7px;font-size:11.5px;line-height:1.4;color:var(--attention-text)}
.rs-field-warn .lic{width:13px;height:13px;margin-top:1px;flex:none}

/* ---------- Line items ---------- */
.rs-li-wrap{margin-top:26px}
.rs-li-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.rs-li-head .lic{width:16px;height:16px;color:var(--fg3)}
.rs-li-head h3{font-size:12px;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--fg3);margin:0}
.rs-li{width:100%;border-collapse:collapse;font-size:13px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}
.rs-li thead th{text-align:left;background:var(--bg-subtle);color:var(--fg2);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.03em;padding:8px 10px;border-bottom:1px solid var(--border);white-space:nowrap}
.rs-li th.r,.rs-li td.r{text-align:right}
.rs-li th.c,.rs-li td.c{text-align:center}
.rs-li tbody td{padding:8px 10px;border-bottom:1px solid var(--border);color:var(--fg1);vertical-align:top}
.rs-li tbody tr:last-child td{border-bottom:none}
.rs-li .num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.rs-li .desc{color:var(--fg1)}
.rs-li tfoot td{padding:9px 10px;font-size:13px;border-top:2px solid var(--border-strong)}
.rs-li tfoot .num{font-family:var(--font-mono)}
.rs-li tfoot .lab{color:var(--fg2)}
.rs-li tfoot .grand{font-weight:500}

/* ---------- Document preview (real uploaded file in an iframe) ---------- */
.scan-frame{position:relative;width:100%;max-width:920px;display:flex;flex-direction:column;min-height:0}
/* Custom document viewer: fills the pane; our own zoom bar floats over it. The toolbar
   label + "open original" button were removed so the document sits at the top. */
.doc-view{position:relative;flex:1;min-height:0;background:var(--bg-app,#e9eaee);border:1px solid var(--border);box-shadow:var(--shadow-md);border-radius:4px;overflow:hidden;display:flex;flex-direction:column}
.doc-view-msg{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-size:13.5px;color:var(--fg2)}
.doc-view-msg .lic{width:20px;height:20px;color:var(--fg3)}
/* scrollable viewport — an image, or PDF pages stacked vertically */
.dv-scroll{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;align-items:center}
.dv-img-scroll{align-items:flex-start}
.dv-img-scroll.pannable{cursor:grab}
.dv-img-scroll.pannable:active{cursor:grabbing}
.dv-img{display:block;width:100%;height:auto;user-select:none}
.dv-pdf-scroll{padding:12px;gap:12px}
.dv-pdf-page{display:block;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.18);max-width:none}
/* ADR-121: обгортки сторінки/зображення — масштабуються разом з рендером, тож
   overlay-бокси всередині (position:absolute, відсотки) переживають зум/скрол. */
.dv-canvas-wrap{position:relative;display:block}
.dv-page-wrap{position:relative;display:inline-block;line-height:0}
/* помаранчевий бокс підсвічування поля (стиль Rossum/Digitoo) */
.dv-highlight{position:absolute;border:2px solid #f97316;background:rgba(249,115,22,.14);border-radius:2px;pointer-events:none;z-index:1;box-shadow:0 0 0 1px rgba(255,255,255,.6)}
.dv-highlight-label{position:absolute;top:-16px;left:-2px;display:inline-block;background:#f97316;color:#fff;font-size:10px;line-height:14px;padding:0 5px;border-radius:3px;white-space:nowrap;font-weight:500}
/* ненав'язливий хінт, поки локатор рахує позиції */
.dv-locating-hint{position:absolute;left:12px;bottom:12px;display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--fg2);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:3px 8px;box-shadow:var(--shadow-md);z-index:2}
.dv-locating-hint .lic{width:13px;height:13px;color:var(--fg3)}
/* floating zoom control (bottom-right of the pane), shared by image + PDF */
.dv-zoombar{position:absolute;right:12px;bottom:12px;display:flex;align-items:center;gap:2px;padding:3px;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:2}
.dv-zoombar button{width:30px;height:30px;border:none;background:none;border-radius:var(--radius-sm);color:var(--fg2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.dv-zoombar button:hover{background:var(--bg-hover);color:var(--fg1)}
.dv-zoombar button:disabled{opacity:.4;cursor:not-allowed}
.dv-zoombar button .lic{width:16px;height:16px}
.dv-zoomval{min-width:42px;text-align:center;font-size:12px;font-variant-numeric:tabular-nums;color:var(--fg2)}

/* duplicate split-screen comparison (ADR-104) */
.rs-cmp-overlay{position:fixed;inset:0;z-index:60;background:var(--bg-app,#f4f5f7);display:flex;flex-direction:column;animation:rs-fade var(--dur) var(--ease)}
.rs-cmp-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;border-bottom:1px solid var(--border);background:var(--bg-surface)}
.rs-cmp-head-title{display:flex;align-items:center;gap:8px;font-size:15.5px;font-weight:500;color:var(--fg1)}
.rs-cmp-head-actions{display:flex;align-items:center;gap:8px}
.rs-cmp-body{flex:1;display:flex;min-height:0}
.rs-cmp-pane{flex:1;min-width:0;display:flex;flex-direction:column;border-right:1px solid var(--border)}
.rs-cmp-pane:last-child{border-right:none}
.rs-cmp-pane-head{padding:12px 16px;border-bottom:1px solid var(--border);background:var(--bg-surface)}
.rs-cmp-pane-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rs-cmp-badge{flex:none;border-radius:var(--radius-sm);padding:2px 9px;font-size:11.5px;font-weight:600;letter-spacing:var(--tracking-tight)}
.rs-cmp-badge.new{background:var(--attention-tint);color:var(--attention-text)}
.rs-cmp-badge.existing{background:var(--accent-tint);color:var(--accent-text)}
.rs-cmp-name{font-size:13.5px;font-weight:500;color:var(--fg1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rs-cmp-state{font-size:12px;color:var(--fg2)}
.rs-cmp-meta{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:6px;font-size:12px;color:var(--fg2)}
.rs-cmp-meta b{color:var(--fg1);font-weight:500}
.rs-cmp-frame{flex:1;min-height:0;background:var(--bg-app,#e9eaee)}
.rs-cmp-frame iframe{width:100%;height:100%;border:none;display:block}
.rs-cmp-empty{height:100%;display:flex;align-items:center;justify-content:center;font-size:13.5px;color:var(--fg2)}
