/* BorDoc global app sidebar (icon-rail → expands on hover/pin). Loaded globally; injected by shared.jsx. */
body.bd-has-rail{padding-left:var(--bd-rail,64px);transition:padding-left var(--dur,.16s) var(--ease,cubic-bezier(.4,0,.2,1))}
body.bd-pinned{padding-left:236px}
.bd-rail{position:fixed;top:0;left:0;bottom:0;width:64px;z-index:80;background:var(--bg-surface);border-right:1px solid var(--border);overflow:hidden;display:flex;flex-direction:column;transition:width var(--dur,.16s) var(--ease,cubic-bezier(.4,0,.2,1)),box-shadow var(--dur,.16s) var(--ease)}
.bd-rail:hover,.bd-rail.pinned{width:236px;box-shadow:var(--shadow-lg)}
.bd-rail:hover .bd-lbl,.bd-rail.pinned .bd-lbl{opacity:1}
.bd-brand{height:60px;flex:none;display:flex;align-items:center;gap:11px;padding-left:16px;border-bottom:1px solid var(--border);overflow:hidden;white-space:nowrap;text-decoration:none}
.bd-fav{width:32px;height:32px;flex:none;border-radius:7px}
.bd-fav-d{display:none}
[data-theme="dark"] .bd-fav-l{display:none}
[data-theme="dark"] .bd-fav-d{display:block}
.bd-word{font-weight:900;font-size:17px;letter-spacing:-.5px;opacity:0;transition:opacity var(--dur,.16s)}
.bd-rail:hover .bd-word,.bd-rail.pinned .bd-word{opacity:1}
.bd-word .bg{color:var(--accent-text)}.bd-word .bs{color:var(--fg1)}
.bd-nav{flex:1;overflow-y:auto;overflow-x:hidden;padding:10px 8px;display:flex;flex-direction:column;gap:2px}
.bd-grp{font-size:11px;font-weight:500;color:var(--fg3);text-transform:uppercase;letter-spacing:.5px;padding:12px 12px 4px;white-space:nowrap;overflow:hidden}
.bd-item{display:flex;align-items:center;gap:13px;height:42px;padding:0 12px;border-radius:var(--radius-md,8px);color:var(--fg2);text-decoration:none;white-space:nowrap;overflow:hidden;position:relative;cursor:pointer;transition:background var(--dur,.16s),color var(--dur,.16s)}
button.bd-item{width:100%;border:0;background:none;font:inherit;text-align:left;cursor:pointer}
.bd-item:hover{background:var(--bg-hover);color:var(--fg1)}
.bd-item.active{background:var(--accent-tint);color:var(--accent-text)}
.bd-item.active::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}
.bd-item .bd-ic{flex:none;width:20px;height:20px;display:flex;align-items:center;justify-content:center}
.bd-item .bd-ic svg{width:20px;height:20px}
.bd-lbl{opacity:0;transition:opacity var(--dur,.16s);font-weight:500;font-size:14px}
.bd-badge{margin-left:auto;background:var(--attention);color:#fff;font-size:11px;font-weight:500;min-width:20px;height:20px;border-radius:10px;display:flex;align-items:center;justify-content:center;padding:0 6px;flex:none}
[data-theme="dark"] .bd-badge{color:#15181C}
.bd-foot{flex:none;border-top:1px solid var(--border);padding:8px;display:flex;flex-direction:column;gap:2px}
/* old top "Menu" burger is replaced by the rail; the duplicate "BorDoc" wordmark in the top bar is hidden (rail carries the brand) */
body.bd-has-rail .rs-menu{display:none}
body.bd-has-rail .rs-brand{display:none}
@media (max-width:760px){
  body.bd-has-rail{padding-left:0}
  .bd-rail{width:0;border:none}
  .bd-rail:hover{width:0;box-shadow:none}
  .bd-rail:hover .bd-lbl,.bd-rail:hover .bd-word{opacity:0}
  .bd-rail.mobopen{width:236px;border-right:1px solid var(--border);box-shadow:var(--shadow-lg)}
  .bd-rail.mobopen .bd-lbl,.bd-rail.mobopen .bd-word{opacity:1}
  .bd-burger{position:fixed;top:9px;left:10px;z-index:81;width:34px;height:34px;border:1px solid var(--border-strong);border-radius:8px;background:var(--bg-surface);color:var(--fg2);display:flex;align-items:center;justify-content:center;cursor:pointer}
}
.dk-head .dk-head-upload{margin-left:12px}
/* mobile-only toggles: hidden on desktop */
.dk-mtoggle{display:none}

/* desktop hides mobile table master-detail */
.tb-mob{display:none}
@media (max-width:760px){
  /* swap the wide table for a master-detail record view */
  .tb-region{display:none !important}
  .tb-mob{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;background:var(--bg-surface);margin:0 2px}
  .tb-mob-list-h{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--fg3);padding:10px 14px;border-bottom:1px solid var(--border);background:var(--bg-subtle)}
  .tb-mob-item{display:flex;align-items:center;gap:10px;width:100%;border:none;background:none;border-bottom:1px solid var(--border);padding:13px 14px;font-family:var(--font-sans);font-size:14.5px;color:var(--fg1);cursor:pointer;text-align:left}
  .tb-mob-item:last-child{border-bottom:none}
  .tb-mob-item.on{background:var(--bg-selected);color:var(--accent-text)}
  .tb-mob-item-v{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .tb-mob-item .lic{flex:none;color:var(--fg3)}
  /* detail opens as a full-screen sheet */
  .tb-mob-detail{position:fixed;inset:0;z-index:90;background:var(--bg-app);display:flex;flex-direction:column;animation:tbmob-in .18s var(--ease)}
  .tb-mob-detail-h{flex:none;display:flex;align-items:center;gap:8px;height:52px;padding:0 12px;border-bottom:1px solid var(--border);background:var(--bg-surface)}
  .tb-mob-back{width:36px;height:36px;flex:none;border:none;background:none;border-radius:var(--radius-sm);color:var(--fg2);display:flex;align-items:center;justify-content:center;cursor:pointer}
  .tb-mob-back:hover{background:var(--bg-hover)}
  .tb-mob-detail-title{font-size:16px;font-weight:500;color:var(--fg1);min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .tb-mob-open{width:36px;height:36px;flex:none;border:1px solid var(--border-strong);background:var(--bg-surface);border-radius:var(--radius-sm);color:var(--fg2);display:flex;align-items:center;justify-content:center;text-decoration:none}
  .tb-mob-editbtn,.tb-mob-save{flex:none;display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 13px;border-radius:var(--radius-md);font-size:13.5px;font-weight:500;cursor:pointer;font-family:var(--font-sans)}
  .tb-mob-editbtn{border:1px solid var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:none;color:var(--accent-text)}
  .tb-mob-save{border:none;background:var(--accent);color:var(--fg-on-accent)}
  .tb-mob-fvalue.editable{border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:4px 8px;background:var(--bg-surface);text-align:left;outline:none}
  .tb-mob-fvalue.editable:focus{border-color:var(--accent);box-shadow:var(--ring-focus)}
  .tb-mob-fields{flex:1;overflow-y:auto;padding:4px 0}
  .tb-mob-field{display:flex;align-items:flex-start;gap:14px;padding:11px 16px;border-bottom:1px solid var(--border)}
  .tb-mob-flabel{flex:none;width:42%;font-size:12.5px;color:var(--fg3);line-height:1.4}
  .tb-mob-fvalue{flex:1;min-width:0;font-size:14px;color:var(--fg1);text-align:right;word-break:break-word;font-variant-numeric:tabular-nums}
}
@keyframes tbmob-in{from{transform:translateX(16px);opacity:.4}to{transform:none;opacity:1}}

/* mobile: settings layouts stack & grids collapse to one column (prevents off-screen clipping) */
@media (max-width:760px){
  .acc-cols{grid-template-columns:1fr !important;display:block !important}
  .acc-nav{position:static !important;flex-direction:row !important;flex-wrap:wrap;gap:6px !important;margin-bottom:14px;overflow-x:auto}
  .acc-nav-item{flex:none}
  .st-options{grid-template-columns:1fr !important}
  .acc-row3,.pay-fields,.adm-pf-grid,.cs-grid,.cmp-stats,.adm-surch-grid{grid-template-columns:1fr !important}
  .wz-plans{grid-template-columns:1fr !important}
  .gh-row{flex-wrap:wrap}
  .gh-acts{flex-direction:row;align-self:flex-start}
  /* GdprHistory: let meta/top wrap, nothing clips off the card edge */
  .gh-top{gap:6px}
  .gh-subj{width:100%}
  .gh-meta{word-break:break-word}
  .gh-meta b{white-space:normal}
  .gh-main{width:100%}
  .gh-arch{flex-wrap:wrap}
  /* storage sync/cloud panels: header rows wrap so titles/text don't squish into 1-char columns */
  .hp-head{flex-wrap:wrap}
  .hp-head-txt{flex:1 1 100%;order:3}
  .hp-badge{margin-left:auto}
  .st-sync-head{flex-wrap:wrap}
  .st-reauth{flex-wrap:wrap}
  .st-reauth .btn{margin-top:6px}
  .sj-filters .sj-sel{flex:1 1 auto}
  .hp-demo{flex-wrap:wrap}
}

/* header switcher visibility by page scope (data-scope on shell):
   portfolio = both, campaign = campaign only, account = neither */
[data-scope="account"] .rs-campaign,[data-scope="account"] .rs-portfolio{display:none}
[data-scope="campaign"] .rs-portfolio{display:none}

/* mobile: let the whole page scroll (header scrolls away) instead of locking the shell to the viewport with an inner-only scroll */
@media (max-width:760px){
  html,body{height:auto;overflow-y:auto}
  [class$="-shell"]{height:auto !important;min-height:0 !important;overflow:visible !important}
  [class$="-main"],.main,.rs-split,.rs-left,.rs-right,.dk-body,.dk-pane,.dk-tablewrap,.tb-region{height:auto !important;min-height:0 !important;overflow:visible !important;flex:none !important}
  .rs-top{position:relative !important}
  /* hide vertical scrollbars on mobile, but KEEP horizontal scrollbars (handy under tables, don't interfere) */
  html,body{scrollbar-width:none}
  html::-webkit-scrollbar,body::-webkit-scrollbar{width:0 !important;display:none !important}
  .dk-tablewrap,.dk-scroll,.tb-scroll,.adm-table,.pay-table{scrollbar-width:thin}
  .dk-tablewrap::-webkit-scrollbar,.dk-scroll::-webkit-scrollbar,.tb-scroll::-webkit-scrollbar{height:8px;display:block}
  .dk-tablewrap::-webkit-scrollbar:vertical{width:0;display:none}
  /* review screen: document info (filename/folder/queue) drops below the etalon nav row */
  .rs-top .rs-doc{order:4;flex:1 1 100%;min-width:0;margin-top:2px}
}
@media (max-width:760px){
  .dk-head .dk-head-upload{order:2;margin-left:auto}
}

.bd-burger{display:none}
@media (max-width:760px){.bd-burger{display:flex}}

/* ============ Global fluid/responsive layer (phones & narrow screens) ============ */
@media (max-width:760px){
  /* make room for the fixed burger inside top bars */
  .rs-top{padding-left:52px !important;height:auto !important;min-height:54px;flex-wrap:wrap;gap:8px !important;row-gap:8px;padding-top:8px;padding-bottom:8px;align-items:center}
  .rs-context{display:none}
  .rs-top .rs-spacer{display:none}
  /* campaign + portfolio pills in the first row; upload button on its OWN row BELOW them */
  /* campaign + portfolio ALWAYS share one row (each takes half, name truncates); upload full-width below */
  .rs-top .rs-campaign{order:1;flex:1 1 0;min-width:0}
  .rs-top .rs-portfolio{order:2;flex:1 1 0;min-width:0}
  .rs-top .rs-campaign-btn,.rs-top .rs-portfolio-btn{width:100%;min-width:0;padding:0 10px;overflow:hidden}
  .rs-top .camp-name,.rs-top .co-name{display:inline-block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .rs-top .rs-uploadbtn{order:3;flex:1 1 100%;justify-content:center}
  .rs-uploadbtn .nav-label,.rs-uploadbtn span:not(.lic){}
  /* touch targets */
  .btn,.rs-portfolio-btn,.rs-campaign-btn,.rs-menu-btn,.dk-chip,.chip{min-height:42px}
  .co-name,.camp-name{max-width:96px}

  /* Document review: stack scan + fields vertically (collapse the grid to 1 column) */
  .rs-split{display:flex !important;flex-direction:column !important;grid-template-columns:1fr !important;overflow-y:auto}
  .rs-left,.rs-right{width:100% !important;flex:none !important;border-right:none !important;border-left:none !important}
  .rs-right{min-height:62vh;border-top:1px solid var(--border)}
  .rs-actions-bar{flex-wrap:wrap;height:auto;row-gap:8px;padding:10px 12px}
  /* inner field grids → single column on phones */
  .rs-fields,.rs-fields.grid6{grid-template-columns:1fr 1fr !important}
  .rs-item-row{grid-template-columns:1fr !important}

  /* Documents: header wraps so view-tabs (Doklady/Tabulky) never clip off-screen */
  .dk-head{flex-wrap:wrap;row-gap:8px;padding:12px 14px !important}
  .dk-head h1{font-size:20px}
  .dk-head .rs-spacer{display:none}
  .dk-viewtabs{order:3;width:100%;overflow-x:auto}
  .dk-viewtab{flex:1;justify-content:center;white-space:nowrap}
  /* Documents: collapse folder tree, table full width + horizontal scroll */
  .dk-body{flex-direction:column}
  .dk-tree{width:100% !important;max-height:none;border-right:none;border-bottom:1px solid var(--border)}
  /* mobile toggles for tree + filters (hidden on desktop) */
  .dk-mtoggle{display:flex;align-items:center;gap:9px;width:auto;margin:0 14px 10px;padding:0 14px;height:44px;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--fg1);font:inherit;font-size:14px;font-weight:500;cursor:pointer}
  .dk-mtree{margin:12px 14px 0}
  .dk-treewrap{max-height:0;overflow:hidden;transition:max-height var(--dur,.16s) var(--ease)}
  .dk-treewrap.mopen{max-height:50vh;overflow-y:auto;margin:10px 0 4px}
  .dk-treewrap .dk-tree{border-bottom:none}
  .dk-mfilt-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);margin-left:2px}
  .dk-toolbar{max-height:0;overflow:hidden;padding:0 !important;border:none;transition:max-height var(--dur,.16s) var(--ease)}
  .dk-toolbar.mopen{max-height:600px;overflow:visible;padding:0 14px 6px !important}
  .dk-toolbar .dk-filters{flex-wrap:wrap;gap:8px}
  .dk-tablewrap,.dk-scroll,.tb-scroll{overflow-x:auto}

  /* Settings / account / access / billing / campaigns: stack nav above content */
  .acc-cols{grid-template-columns:1fr !important;gap:18px}
  .acc-nav{position:static !important;flex-direction:row;overflow-x:auto;gap:6px;padding-bottom:6px}
  .acc-nav-item{white-space:nowrap;flex:none}
  .acc-nav-group{display:none}

  /* generic dense rows / grids → single column */
  .cmp-stats,.pr-grid,.wz-plans,.adm-split{grid-template-columns:1fr !important;display:grid;gap:12px}
  /* dashboard hero/stats/recent grids → stack */
  .action-row,.stats,.rec-row{grid-template-columns:1fr !important}
  .rec-row{gap:4px 12px}
  /* dropdowns anchored to viewport so they never shift off-screen on phones */
  .rs-campaign-dd,.rs-portfolio-dd,.rs-menu-dd{position:fixed !important;top:58px !important;left:10px !important;right:10px !important;width:auto !important;max-width:none !important}
  .pr-grid{grid-template-columns:1fr !important}
  .acc-row3{grid-template-columns:1fr !important}
  /* sub-grids the global layer hadn't covered yet (check-settings / billing /
     account 2-up + the fixed-240px label row) → single column on phones */
  .kd-mode,.kd-locks,.kd-checks,.pay-cardrow,.bill-row-ids,.acc-codes,.acc-select-row{grid-template-columns:1fr !important}

  /* tighten page paddings so content isn't cramped */
  .acc-inner,.set-inner,.main-inner,.up-inner,.pricing-inner,.pr-inner,.sp3-inner{padding-left:14px !important;padding-right:14px !important}
  .main-inner{padding-top:12px !important}
  /* settings header: half the height, lighter below */
  .set-head{margin-bottom:12px !important}
  .set-head h1{font-size:20px;margin:2px 0 4px !important}
  .set-head .sub{font-size:13px}
  .set-grouplabel{margin-top:14px !important}
  /* page head: show only the centered page title, hide campaign/portfolio/date subtext to save vertical space */
  .dash-camp,.page-head .meta,.dk-sub{display:none !important}
  .page-head{text-align:center;margin-bottom:8px;padding-top:4px !important}
  .page-head h1{font-size:20px;margin:0}
  .dk-head{justify-content:center;text-align:center;padding:10px 14px !important}
  .dk-head h1{width:100%;text-align:center;font-size:21px;margin:0}
  .dk-head .dk-viewtabs{order:3;width:100%}

  /* tables never push the page wider than the screen */
  table{min-width:0}
  .adm-table,.pay-table{display:block;overflow-x:auto;white-space:nowrap}

  /* modals fit small screens */
  .rs-modal,.acc-modal,.tb-dialog,.adm-planform,.fp-pop{max-width:94vw !important}
}
@media (max-width:480px){
  .rs-top{padding-left:50px !important}
  .acc-head h1,.page-head h1,.set-head h1{font-size:20px}
}
