.rd-ui { --rd-border: var(--cpd-color-gray-400, #bdc4cc); --rd-accent: var(--cpd-color-text-action-primary, #397cff); color:var(--cpd-color-text-primary,#20232a); font:14.5px/1.5 var(--cpd-font-family-sans,var(--font,Inter,sans-serif)); background:var(--cpd-color-bg-canvas-default,#fff); }
.rd-disk { display:grid; grid-template:var(--rd-header-height,60px) minmax(0,1fr) / var(--rd-sidebar-width,350px) minmax(0,1fr); height:100%; min-height:0; }
.rd-disk[hidden] { display:none; }
.rd-ui [hidden],.rd-template-authoring[hidden],.rd-template-authoring [hidden] { display:none !important; }
.rd-ui[data-mode=standalone] { --cpd-color-bg-canvas-default:var(--surface,#fff); --cpd-color-text-primary:var(--ink,#20232a); --cpd-color-text-secondary:var(--muted,#637087); --rd-border:var(--line,#dce1e8); --rd-accent:var(--accent,#4c6fff); --rd-content-background:var(--bg,#eef1f8); --rd-track:var(--track,#edf0f9); }
.rd-disk { position:relative; }
.rd-standalone-shell { height:100dvh; display:grid; grid-template-rows:48px minmax(0,1fr); background:var(--surface,#fff); color:var(--ink,#20232a); }
.rd-standalone-shell > header { display:flex; align-items:center; gap:12px; padding:0 20px; border-bottom:1px solid var(--line,#dce1e8); }
.rd-standalone-shell > header > span:first-of-type { margin-left:auto; }
.rd-standalone-shell > header button { border:1px solid var(--line,#dce1e8); border-radius:8px; padding:6px 12px; background:transparent; color:inherit; cursor:pointer; }
.rd-standalone-avatar { display:inline-flex; align-items:center; justify-content:center; flex:none; width:24px; height:24px; overflow:hidden; border-radius:50%; background:var(--accent,#4c6fff); color:white; font-size:10px; }
.rd-standalone-avatar img { width:100%; height:100%; object-fit:cover; }
.rd-disk[data-details=true] { grid-template-columns:var(--rd-sidebar-width,350px) minmax(0,1fr) 380px; }
.rd-disk__search { grid-area:1/1; }
.rd-disk__header { grid-column:2/-1; grid-row:1; }
.rd-disk__sidebar { grid-area:2/1; }
.rd-disk__content { grid-area:2/2; container-type:inline-size; }
.rd-disk__details { grid-area:2/3; min-height:0; min-width:0; overflow:auto; padding:20px; border-left:1px solid var(--rd-border); background:var(--cpd-color-bg-canvas-default,#fff); z-index:30; }
.rd-disk__details header { display:flex; align-items:flex-start; gap:8px; }
.rd-disk__details header h2 { flex:1; min-width:0; overflow-wrap:anywhere; font-size:18px; }
.rd-disk__details button, .rd-button { padding:8px 12px; border:1px solid var(--rd-border); border-radius:8px; background:transparent; }
.rd-disk__details section { border-top:1px solid var(--rd-border); margin-top:16px; padding-top:16px; }
.rd-disk__detail-actions { display:flex; flex-wrap:wrap; gap:8px; }
.rd-disk__details form label { display:grid; gap:8px; margin:16px 0 8px; }
.rd-disk__details form input { min-width:0; padding:8px; }
.rd-disk__access-person { display:flex; align-items:center; gap:8px; margin:8px 0; }
.rd-disk__access-person > span { min-width:0; overflow:hidden; text-overflow:ellipsis; }
.rd-disk__access-person small { margin-left:auto; }
.rd-disk__version { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0; }
.rd-access__controls { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:8px 0; }
.rd-access > label { display:flex; align-items:center; gap:8px; margin:12px 0; }
.rd-access > label input:not([type=checkbox]) { width:100%; min-width:0; padding:8px; }
.rd-access__row { border-top:1px solid var(--rd-border); padding:8px 0; }
.rd-access__results { list-style:none; margin:0; padding:0; max-height:200px; overflow:auto; }
.rd-access__results button { display:block; width:100%; text-align:left; }
.rd-access__results small { display:block; font-size:11px; overflow-wrap:anywhere; }
.rd-access__recipient-id { overflow-wrap:anywhere; font-size:12px; }
.rd-search { display:flex; flex:1; min-width:0; align-items:center; gap:8px; height:36px; border:1px solid var(--rd-border); border-radius:24px; padding:0 14px; color:var(--cpd-color-text-secondary,#656d77); }
.rd-search > span { display:flex; align-items:center; flex:none; }
.rd-search input { min-width:0; width:0; flex:1; margin:0; padding:0; border:0; border-radius:0; background:transparent; outline:none; box-shadow:none; color:inherit; }
.rd-disk .rd-search input:focus-visible { outline:none; box-shadow:none; }
.rd-search:focus-within { outline:2px solid var(--rd-accent); }
.rd-search kbd { white-space:nowrap; font:inherit; }
.rd-ui, .rd-ui * { box-sizing:border-box; }
.rd-icon { display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px; flex:none; font-size:18px; line-height:0; }
.rd-icon svg { display:block; }
.rd-file-icon { width:40px; height:40px; display:flex; align-items:center; justify-content:center; border-radius:12px; color:white; font-size:11px; font-weight:600; background:#8a94ad; }
.rd-file-icon.ic-doc { background:var(--c-doc,#4c6fff); }
.rd-file-icon.ic-pdf { background:var(--c-pdf,#f2544b); }
.rd-file-icon.ic-xls { background:var(--c-xls,#1aa564); }
.rd-file-icon.ic-ppt { background:var(--c-ppt,#f39c3d); }
.rd-file-icon.ic-img { background:var(--c-img,#12b5a5); }
.rd-disk__folder-name { display:flex; align-items:center; gap:12px; min-width:0; }
.rd-disk__folder-name > span:last-child { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rd-disk__folder-row { display:flex; align-items:center; gap:8px; background:var(--cpd-color-bg-canvas-default,#fff); border-radius:12px; }
.rd-disk__folders .rd-disk__folder-open { flex:1; min-width:0; gap:12px; }
.rd-disk__folders .rd-disk__folder-info { flex:none; width:36px; height:36px; padding:0; margin-right:10px; align-items:center; justify-content:center; }
.rd-avatar-stack { display:flex; flex:none; align-items:center; }
.rd-avatar-stack > * + * { margin-left:-6px; }
:where(.rd-ui) button, :where(.rd-ui) input { font:inherit; }
:where(.rd-ui) button { color:inherit; cursor:pointer; }
.rd-ui button:focus-visible, .rd-ui input:focus-visible { outline:2px solid var(--rd-accent); outline-offset:2px; }
.rd-disk__search { display:flex; align-items:center; padding:12px; border-right:1px solid var(--rd-border); border-bottom:1px solid var(--rd-border); }
.rd-disk__header { display:flex; align-items:center; gap:8px; padding:0 16px; border-bottom:1px solid var(--rd-border); }
.rd-disk__toolbar { margin-left:auto; display:flex; align-items:center; gap:8px; }
.rd-upload__button { display:flex; align-items:center; justify-content:center; width:36px; height:36px; padding:0; border:1px solid var(--rd-border); border-radius:10px; background:transparent; }
.rd-upload__button svg { display:block; flex:none; }
.rd-upload__menu { position:absolute; right:16px; top:calc(var(--rd-header-height,60px) - 4px); z-index:40; min-width:220px; padding:6px; border-radius:12px; background:var(--cpd-color-bg-canvas-default,#fff); box-shadow:0 8px 24px #0003; }
.rd-upload__menu button { display:flex; align-items:center; gap:8px; width:100%; padding:10px 12px; border:0; border-radius:8px; text-align:left; background:transparent; }
.rd-upload__menu button:hover { background:var(--cpd-color-bg-action-secondary-hovered,#eef1f8); }
.rd-upload__error { position:absolute; right:20px; bottom:20px; z-index:65; max-width:min(440px,calc(100% - 40px)); padding:16px; background:var(--cpd-color-bg-canvas-default,#fff); border:1px solid var(--rd-border); border-radius:12px; box-shadow:0 8px 24px #0003; }
.rd-upload__error button { margin-left:8px; }
.rd-upload__progress { position:absolute; right:20px; bottom:20px; width:min(440px,calc(100% - 40px)); max-height:50%; overflow:auto; padding:16px; border-radius:12px; box-shadow:0 8px 30px #0003; background:var(--cpd-color-bg-canvas-default,#fff); z-index:60; }
.rd-upload__progress header { display:flex; justify-content:space-between; gap:8px; }
.rd-upload__progress > div { display:grid; gap:6px; margin-top:12px; overflow-wrap:anywhere; }
.rd-upload__progress progress { width:100%; }
.rd-disk__sidebar { min-height:0; overflow:hidden; display:flex; flex-direction:column; padding:12px; border-right:1px solid var(--rd-border); }
.rd-disk__navigation-scroll { min-height:0; flex:1 1 auto; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; }
.rd-disk__sidebar > .rd-disk__storage { flex:none; margin-top:12px; }
.rd-disk__sidebar button { display:flex; align-items:center; gap:8px; width:100%; min-height:39px; margin:2px 0; padding:8px 12px; border:0; border-radius:10px; background:transparent; text-align:left; }
.rd-disk__sidebar button[aria-current=page] { color:var(--rd-accent); background:var(--cpd-color-bg-action-secondary-pressed,#e6efff); }
.rd-disk__sidebar .rd-icon { color:var(--cpd-color-icon-secondary,#9ba6be); }
.rd-disk__sidebar button[aria-current=page] .rd-icon,.rd-disk__folder-name .rd-icon { color:var(--rd-accent); }
.rd-disk__sidebar h3 { font-size:12px; margin-top:24px; }
.rd-folder-tree__row { display:flex; align-items:center; gap:2px; }
.rd-disk__sidebar .rd-folder-tree__toggle { flex:none; width:18px; min-height:32px; padding:0; justify-content:center; }
.rd-folder-tree__spacer { width:18px; flex:none; }
.rd-disk__sidebar .rd-folder-tree__name { min-width:0; flex:1; }
.rd-folder-tree__name > span:last-child { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rd-folder-up { display:inline-flex; flex:none; align-items:center; justify-content:center; gap:7px; min-height:34px; padding:6px 10px; border:1px solid var(--rd-border); border-radius:8px; background:transparent; color:inherit; font:inherit; font-size:13px; white-space:nowrap; cursor:pointer; }
.rd-folder-up > span { font-size:18px; line-height:1; }
.rd-disk__file-count { flex:none; white-space:nowrap; padding:4px 9px; border:1px solid var(--rd-border); border-radius:20px; background:var(--rd-accent-soft,#eaeeff); color:var(--cpd-color-text-secondary,#65718a); font-size:12px; line-height:1.3; }
.rd-disk__storage { display:flex; align-items:center; gap:12px; padding:12px; margin-top:28px; background:var(--surface-2,var(--cpd-color-bg-subtle-secondary,#f6f8fc)); border-radius:14px; }
.rd-disk__storage svg { flex:none; }
.rd-disk__storage strong { display:block; margin-top:6px; }
.rd-disk__content { overflow:auto; min-width:0; }
.rd-content { padding:24px; background:var(--rd-content-background,#eef1f8); }
.rd-disk__statistics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-bottom:24px; }
.rd-disk__stat { display:block; position:relative; min-height:150px; border:2px solid transparent; border-radius:16px; background:var(--cpd-color-bg-canvas-default,#fff); text-align:left; overflow:hidden; }
.rd-disk__stat[aria-pressed=true] { border-color:var(--rd-accent); }
.rd-disk__stat svg { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.rd-disk__stat-label { position:absolute; left:18px; top:18px; font-weight:600; }
.rd-disk__stat-count { position:absolute; left:18px; bottom:18px; font-size:28px; }
.rd-disk__stat-percent { position:absolute; right:12px; bottom:24px; font-size:24px; font-weight:700; }
.rd-disk__folders { display:grid; gap:8px; margin-bottom:24px; }
.rd-disk__deleted-folder { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 18px; background:var(--cpd-color-bg-canvas-default,#fff); border-radius:12px; }
.rd-disk__folders button { display:flex; justify-content:space-between; padding:18px; border:0; border-radius:12px; background:var(--cpd-color-bg-canvas-default,#fff); }
.rd-disk__files { display:grid; gap:8px; }
.rd-disk__file,.rd-disk__list-head { display:grid; grid-template-columns:20px 40px minmax(100px,1fr) 110px minmax(80px,150px) minmax(60px,140px) 90px 28px; align-items:center; gap:12px; padding:16px; border-radius:12px; background:var(--cpd-color-bg-canvas-default,#fff); }
.rd-disk__list-head { background:transparent; font-size:12px; color:var(--cpd-color-text-secondary,#8a94ad); }
.rd-disk__date { font-size:12px; color:var(--cpd-color-text-secondary,#8a94ad); }
.rd-disk__star { display:flex; align-items:center; justify-content:center; padding:0; width:28px; height:28px; border:0; background:transparent; color:var(--cpd-color-text-secondary,#8a94ad); }
.rd-disk__star[aria-pressed=true] { color:#e6aa31; }
.rd-disk__files--grid { grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:14px; }
.rd-disk__files--grid .rd-disk__file { display:flex; flex-direction:column; position:relative; padding:24px 12px 12px; }
.rd-disk__files--grid input[type=checkbox] { position:absolute; top:8px; left:8px; }
.rd-disk__files--grid .rd-file-icon { width:64px; height:64px; font-size:14px; margin-top:12px; }
.rd-disk__files--grid .rd-disk__filename { width:100%; min-height:36px; text-align:center; }
.rd-disk__files--grid .rd-disk__date,.rd-disk__files--grid .rd-disk__owner,.rd-disk__files--grid .rd-disk__room { display:none; }
.rd-disk__files--grid .rd-disk__star { position:absolute; top:6px; right:6px; }
.rd-sort { position:relative; }
.rd-sort > button { width:36px; height:36px; display:flex; align-items:center; justify-content:center; padding:0; border:1px solid var(--rd-border); border-radius:9px; color:inherit; background:transparent; }
.rd-sort__menu { position:absolute; right:0; top:calc(100% + 8px); z-index:25; padding:16px; min-width:220px; background:var(--cpd-color-bg-canvas-default,#fff); box-shadow:0 8px 24px #0003; border-radius:12px; }
.rd-sort__menu label { display:grid; gap:6px; margin-bottom:12px; }
.rd-disk__filename, .rd-disk__room { min-width:0; text-align:left; border:0; padding:0; background:transparent; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rd-disk__owner { display:flex; gap:6px; align-items:center; min-width:0; }
.rd-disk__owner > span:last-child { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.rd-person-name { min-width:0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.rd-disk__actions { display:flex; align-items:center; gap:8px; position:relative; }
.rd-disk__actions button { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:36px; border:1px solid var(--rd-border); border-radius:10px; padding:8px 12px; background:var(--cpd-color-bg-canvas-default,#fff); }
.rd-disk__create-menu { position:absolute; right:0; top:calc(100% + 8px); z-index:20; min-width:210px; padding:6px; border-radius:12px; background:var(--cpd-color-bg-canvas-default,#fff); box-shadow:0 8px 24px #0003; }
.rd-disk__create-menu button { display:flex; width:100%; border:0; justify-content:flex-start; }
.rd-disk__create-menu svg { flex:none; }
.rd-disk__dialog-backdrop { position:fixed; inset:0; z-index:100; background:#0005; display:grid; place-items:center; }
.rd-disk__dialog { width:min(440px,90vw); padding:24px; border-radius:16px; background:var(--cpd-color-bg-canvas-default,#fff); }
.rd-disk__dialog label { display:grid; gap:8px; }
.rd-disk__dialog input { padding:10px; }
.rd-disk__dialog > div { display:flex; justify-content:flex-end; gap:8px; margin-top:20px; }
.rd-gallery__mosaic { position:relative; }
.rd-gallery h2 { font-size:18px; }
.rd-gallery h2 span { font-size:14px; font-weight:400; }
.rd-photo { position:absolute; min-width:0; overflow:hidden; border-radius:10px; background:var(--cpd-color-bg-canvas-default,#fff); }
.rd-photo__open { padding:0; border:0; width:100%; height:100%; background:transparent; }
.rd-photo img { display:block; width:100%; height:100%; object-fit:contain; }
.rd-photo > input { position:absolute; top:8px; left:8px; width:20px; height:20px; }
.rd-photo__name { position:absolute; bottom:0; left:0; right:0; padding:5px 8px; color:white; background:#0008; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; pointer-events:none; }
.rd-view-modes { display:flex; gap:4px; }
.rd-view-modes button, .rd-button--icon { width:36px; height:36px; display:flex; align-items:center; justify-content:center; padding:0; border:1px solid var(--rd-border); border-radius:9px; color:inherit; background:transparent; }
.rd-view-modes button[aria-pressed=true], .rd-button--icon[aria-pressed=true] { color:var(--rd-accent); background:var(--rd-content-background,#eef1f8); }
.rd-photo-viewer { position:fixed; inset:0; width:100vw; height:100dvh; max-width:none; max-height:none; margin:0; padding:0; border:0; display:flex; flex-direction:column; background:#15171cf5; color:white; }
.rd-photo-viewer:not([open]) { display:none; }
.rd-photo-viewer header { display:flex; align-items:center; gap:16px; padding:12px 20px; }
.rd-photo-viewer header strong { flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rd-photo-viewer button { display:flex; align-items:center; justify-content:center; min-width:36px; min-height:36px; padding:8px; background:transparent; border:1px solid #ffffff40; border-radius:8px; color:inherit; cursor:pointer; }
.rd-photo-viewer__stage { display:flex; align-items:center; justify-content:center; gap:12px; flex:1; min-height:0; padding:12px; }
.rd-photo-viewer__stage img,.rd-photo-viewer__stage video { min-width:0; max-width:calc(100% - 100px); max-height:100%; object-fit:contain; }
.rd-template-authoring[hidden] { display:none; }
.rd-templates[hidden] { display:none; }
.rd-templates table { width:100%; border-collapse:collapse; background:var(--cpd-color-bg-canvas-default,#fff); }
.rd-templates th,.rd-templates td { text-align:left; vertical-align:top; border-bottom:1px solid var(--rd-border,#bdc4cc); padding:12px; }
.rd-templates button { cursor:pointer; color:inherit; font:inherit; background:var(--cpd-color-bg-canvas-default,#fff); border:1px solid var(--rd-border,#bdc4cc); border-radius:8px; padding:8px 12px; }
.rd-templates [role=tablist] { display:flex; flex-wrap:wrap; gap:8px; margin:16px 0; }
.rd-templates [role=tab][aria-selected=true] { border-color:var(--rd-accent,#4c6fff); color:var(--rd-accent,#4c6fff); }
.rd-templates article,.rd-templates details { background:var(--cpd-color-bg-canvas-default,#fff); padding:16px; border-radius:10px; margin:12px 0; }
.rd-templates h2 { font-size:18px; }
.rd-templates h3 { font-size:14px; }
.rd-template-authoring .ta-scrim { position:fixed; inset:0; display:flex; align-items:center; justify-content:center; background:#0005; }
.rd-template-authoring .modal { background:var(--cpd-color-bg-canvas-default,var(--surface,#fff)); color:var(--cpd-color-text-primary,var(--ink,#20232a)); border-radius:14px; box-shadow:0 16px 48px #0003; font:14px var(--cpd-font-family-sans,var(--font,Inter,sans-serif)); }
.rd-template-authoring .modal > .head { display:flex; align-items:center; justify-content:space-between; padding:16px 20px; border-bottom:1px solid var(--rd-border,#bdc4cc); }
.rd-template-authoring .modal > .body { padding:20px; }
.rd-template-authoring button { cursor:pointer; font:inherit; padding:8px 12px; border:1px solid var(--rd-border,#bdc4cc); border-radius:8px; background:var(--cpd-color-bg-canvas-default,#fff); color:inherit; }
.rd-template-authoring button.primary { color:white; background:var(--rd-accent,#4c6fff); }
.rd-template-authoring button:disabled { opacity:.5; cursor:default; }
.rd-template-authoring .mbtns { display:flex; gap:8px; justify-content:flex-end; margin-top:16px; }
@media(max-width:1100px) { .rd-disk[data-details=true] { grid-template-columns:var(--rd-sidebar-width,350px) minmax(0,1fr); } .rd-disk__details { position:absolute; right:0; top:var(--rd-header-height,60px); bottom:0; width:min(380px,100%); box-shadow:-4px 0 16px #0001; } }

.rd-annotations label { display:grid; gap:6px; margin:10px 0; }
.rd-annotations input:not([type=checkbox]),.rd-annotations textarea { width:100%; min-width:0; }
.rd-annotations input[type=color] { max-width:64px; height:32px; padding:2px; }
.rd-annotations .rd-annotations__check { display:flex; align-items:center; gap:8px; }
.rd-annotations__check input { width:auto; }
.rd-tag { display:flex; align-items:center; gap:6px; margin:8px 0; }
.rd-tag > span { border-left:4px solid var(--rd-border); padding-left:6px; overflow-wrap:anywhere; }
.rd-comment { padding:12px 0; border-bottom:1px solid var(--rd-border); }
.rd-comment header { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.rd-comment time { font-size:11px; color:var(--cpd-color-text-secondary,#637087); }
.rd-comment p { white-space:pre-wrap; overflow-wrap:anywhere; }
.rd-comment__actions { display:flex; flex-wrap:wrap; gap:6px; }
.rd-comment__actions button { font-size:12px; padding:4px 8px; }

.rd-history__filters { display:flex; flex-wrap:wrap; align-items:end; gap:12px; margin-bottom:20px; }
.rd-history__filters label { display:grid; gap:6px; }
.rd-history button,.rd-history select,.rd-history input { font:inherit; color:inherit; background:var(--cpd-color-bg-canvas-default,#fff); border:1px solid var(--rd-border); border-radius:8px; padding:8px 12px; }
.rd-history__item { display:flex; align-items:center; flex-wrap:wrap; gap:8px; padding:12px; margin:8px 0; border-radius:12px; background:var(--cpd-color-bg-canvas-default,#fff); }
.rd-history__item time { margin-left:auto; color:var(--cpd-color-text-secondary,#637087); }
.rd-history__item .rd-person-name { max-width:200px; }

.rd-links { min-width:0; }
.rd-link-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:10px 0; }
.rd-link-card { padding:16px; margin:14px 0; border:1px solid var(--rd-border); border-radius:12px; background:var(--cpd-color-bg-canvas-default,#fff); }
.rd-links button { color:inherit; font:inherit; padding:8px 12px; border:1px solid var(--rd-border); border-radius:8px; background:var(--cpd-color-bg-canvas-default,#fff); }
.rd-links input:not([type=checkbox]),.rd-links textarea { width:100%; min-width:0; color:inherit; font:inherit; background:transparent; padding:8px; border:1px solid var(--rd-border); border-radius:8px; }
.rd-link-editor fieldset { min-width:0; border:0; padding:0; }
.rd-link-editor label { display:grid; gap:6px; margin:10px 0; }
.rd-link-editor .rd-link-check { display:flex; align-items:center; gap:8px; }
.rd-link-check input { width:auto; }
.rd-link-card p { overflow-wrap:anywhere; }

.rd-versions button { margin:4px 4px 4px 0; }
.rd-versions form label { display:grid; gap:6px; margin:8px 0; }
.rd-version-row { padding:12px 0; border-top:1px solid var(--rd-border); margin-top:12px; }
.rd-version-row > strong { display:block; overflow-wrap:anywhere; }
.rd-version-actions { display:flex; flex-wrap:wrap; gap:4px; }
.rd-version-upload { margin:12px 0; }
.rd-version-upload progress { width:100%; }
.rd-version-diff { white-space:pre-wrap; overflow-wrap:anywhere; padding:12px; background:var(--cpd-color-bg-canvas-default,#fff); }
.rd-version-diff__add { background:#dff7e8; color:#145b30; }
.rd-version-diff__del { background:#ffe4e4; color:#802424; text-decoration:line-through; }
.rd-version-preview { width:min(1100px,95vw); height:90dvh; max-width:none; max-height:none; padding:0; border:1px solid var(--rd-border,#bdc4cc); border-radius:12px; background:var(--cpd-color-bg-canvas-default,var(--surface,#fff)); color:var(--cpd-color-text-primary,var(--ink,#20232a)); font:14px var(--cpd-font-family-sans,var(--font,sans-serif)); }
.rd-version-preview[open] { display:flex; flex-direction:column; }
.rd-version-preview:not([open]) { display:none; }
.rd-version-preview header { display:flex; align-items:center; gap:12px; padding:12px 16px; }
.rd-version-preview header strong { min-width:0; flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rd-version-preview button { color:inherit; background:transparent; border:1px solid var(--rd-border,#bdc4cc); padding:8px 12px; border-radius:8px; cursor:pointer; }
.rd-version-preview__body { flex:1; min-height:0; overflow:auto; padding:12px; }
.rd-version-preview iframe { width:100%; height:100%; border:0; }
.rd-version-preview img,.rd-version-preview video { width:100%; height:100%; object-fit:contain; }
.rd-version-preview pre { white-space:pre-wrap; overflow-wrap:anywhere; }
.rd-comparison { --ink:var(--cpd-color-text-primary,#20232a); --muted:var(--cpd-color-text-secondary,#637087); --surface:var(--cpd-color-bg-canvas-default,#fff); --surface-2:var(--cpd-color-bg-subtle-secondary,#f6f8fc); --line2:var(--cpd-color-border-interactive-secondary,#dce1e8); --accent:var(--cpd-color-text-action-primary,#4c6fff); --warn:#b32c34; --c-doc:#4c6fff; font:14px var(--cpd-font-family-sans,var(--font,sans-serif)); color:var(--ink); }
.rd-comparison[hidden] { display:none!important; }
.rd-comparison .scrim { position:fixed; inset:0; display:flex; align-items:center; justify-content:center; background:#0005; padding:20px; }
.rd-comparison .modal { max-height:90dvh; overflow:auto; border-radius:14px; background:var(--surface); color:var(--ink); box-shadow:0 16px 48px #0003; }
.rd-comparison .head { display:flex; align-items:center; gap:8px; padding:16px; border-bottom:1px solid var(--line2); }
.rd-comparison .head .x { margin-left:auto; }
.rd-comparison .body { padding:20px; }
.rd-comparison button { color:inherit; font:inherit; background:var(--surface); border:1px solid var(--line2); border-radius:8px; padding:8px 12px; cursor:pointer; }
.rd-comparison .bi { display:inline-flex; vertical-align:middle; }

/* Канонический каталог занимает область содержимого; его стили ограничены этим корнем. */
.rd-template-runtime--page { height:auto; min-width:0; font-family:inherit; }
.rd-template-runtime.rd-template-runtime--page .template-page { margin:0; padding:0; width:100%; height:auto; overflow:visible; }
.rd-template-runtime--portals { height:auto; }
.rd-template-runtime[hidden] { display:none!important; }
.rd-folder-cover { display:inline-flex; width:40px; height:40px; flex:0 0 40px; align-items:center; justify-content:center; border-radius:10px; overflow:hidden; background:var(--rd-accent-soft,#eaeeff); color:var(--rd-accent,#4c6fff); }
.rd-folder-cover img { width:100%; height:100%; object-fit:cover; }
.rd-folder-cover .rd-icon { width:20px; height:20px; }
.rd-bulk-actions { flex:1; min-width:0; }
.rd-bulk__toolbar { display:flex; align-items:center; gap:6px; overflow-x:auto; max-width:100%; }
.rd-bulk__toolbar button { display:inline-flex; align-items:center; justify-content:center; gap:6px; flex-shrink:0; min-height:36px; padding:7px 10px; border:1px solid var(--rd-border); border-radius:10px; background:transparent; white-space:nowrap; }
.rd-bulk__toolbar button:disabled { opacity:.55; cursor:default; }
.rd-bulk__toolbar .rd-bulk__danger { color:var(--cpd-color-text-critical-primary,#c33341); }
.rd-bulk__count { white-space:nowrap; flex-shrink:0; font-weight:600; }
.rd-bulk__spacer { flex:1; }
.rd-bulk__error { margin:2px 0; font-size:12px; color:var(--cpd-color-text-critical-primary,#c33341); }
.rd-template-runtime.rd-bulk-actions-portals { height:auto; }
.rd-disk__folder-row > input[type="checkbox"] { flex:0 0 18px; width:18px; height:18px; margin:0 0 0 14px; accent-color:var(--rd-accent,#4c6fff); }
.rd-modal-layer[hidden] { display:none !important; }
.rd-modal-layer { position:fixed; inset:0; z-index:1600; display:flex; align-items:center; justify-content:center; padding:24px; background:#15203566; font:14px var(--cpd-font-family-sans,var(--font,Inter,sans-serif)); color:var(--cpd-color-text-primary,#20232a); }
.rd-modal,.rd-modal * { box-sizing:border-box; }
.rd-modal { width:min(560px,100%); max-height:90dvh; overflow:auto; border:1px solid var(--cpd-color-gray-400,#bdc4cc); border-radius:16px; padding:20px; background:var(--cpd-color-bg-canvas-default,#fff); box-shadow:0 16px 48px #15203533; }
.rd-modal header { display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.rd-modal h2 { flex:1; margin:0; font-size:18px; }
.rd-modal button,.rd-modal input,.rd-modal select,.rd-modal textarea { font:inherit; color:inherit; }
.rd-modal button { padding:8px 12px; border:1px solid var(--cpd-color-gray-400,#bdc4cc); border-radius:8px; background:transparent; cursor:pointer; }
.rd-modal button:disabled { opacity:.55; cursor:default; }
.rd-modal button:focus-visible,.rd-modal input:focus-visible,.rd-modal select:focus-visible { outline:2px solid var(--cpd-color-text-action-primary,#397cff); outline-offset:2px; }
.rd-modal label { display:flex; align-items:center; gap:8px; margin:12px 0; }
.rd-modal input:not([type=checkbox]),.rd-modal select { min-width:0; padding:8px; border:1px solid var(--cpd-color-gray-400,#bdc4cc); border-radius:8px; }
.rd-modal input:not([type=checkbox]) { flex:1; }
.rd-modal footer { display:flex; justify-content:flex-end; gap:8px; margin-top:18px; }
.rd-modal .rd-modal__choices { display:grid; gap:8px; }
.rd-modal__choices button { text-align:left; }
.rd-modal .rd-modal__danger { color:var(--cpd-color-text-critical-primary,#c33341); }
.rd-modal .rd-modal__primary { background:var(--cpd-color-text-action-primary,#397cff); color:white; border-color:transparent; }
.rd-modal.rd-modal--wide { width:min(1100px,100%); }
.rd-bulk__message { display:flex; align-items:center; gap:8px; margin:0; font-size:12px; }
.rd-bulk__message button { border:0; background:transparent; }
.rd-modal__tags { display:flex; gap:6px; flex-wrap:wrap; }
.ta-react-fields { min-width:0; border:0; padding:0; margin:0; }
.rd-modal .ta-field { flex-direction:column; align-items:stretch; }
.rd-modal .ta-body { padding:0; overflow:visible; }
.rd-modal textarea { display:block; width:100%; min-width:0; resize:vertical; padding:10px; border:1px solid var(--cpd-color-gray-400,#bdc4cc); border-radius:8px; }
.rd-modal pre { max-width:100%; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; }
.rd-modal code { overflow-wrap:anywhere; }
.rd-modal fieldset { min-width:0; }
.rd-modal .template-validation-form { display:grid; grid-template-columns:minmax(240px,1fr) minmax(0,2fr); gap:20px; }
.rd-modal .template-validation-rule-options label { display:flex; align-items:flex-start; }
.rd-modal .template-validation-table { width:100%; border-collapse:collapse; }
.rd-modal .template-validation-table td,.rd-modal .template-validation-table th { vertical-align:top; padding:8px; border-bottom:1px solid var(--cpd-color-gray-400,#bdc4cc); text-align:left; }
.rd-modal .template-validation-summary { display:flex; flex-wrap:wrap; gap:10px; }
.rd-modal .template-config-toolbar,.rd-modal .template-config-version { display:flex; flex-wrap:wrap; gap:8px; margin:8px 0; }
.rd-template-runtime .template-toolbar,.rd-template-runtime .template-download-action { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.rd-template-runtime .template-about-stats li { display:flex; flex-direction:column; gap:6px; }
.rd-template-runtime .template-record-tabs { display:flex; gap:8px; }
.rd-template-runtime .template-record-tabs button { display:inline-flex; align-items:center; gap:6px; }
@media(max-width:800px) { .rd-modal .template-validation-form { grid-template-columns:1fr; } }

.rd-disk__workspace { grid-column:2/-1; grid-row:1/-1; min-width:0; min-height:0; overflow:hidden; background:var(--cpd-color-bg-canvas-default,#fff); }
.rd-disk[data-workspace=true] .rd-disk__details { display:none; }
.rd-tag-list { display:grid; gap:4px; }
.rd-tag-list h3 { margin:16px 0 8px; font-size:12px; }
.rd-tag-list button { display:flex; align-items:center; gap:10px; width:100%; padding:10px 12px; border:0; border-radius:10px; text-align:left; background:transparent; }
.rd-tag-list button[aria-current=page] { color:var(--rd-accent); background:var(--cpd-color-bg-action-primary-rest,#e6efff); }
.rd-tag-list button span:not(.rd-icon) { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rd-tag-list small { margin-left:auto; }
.rd-public-access { min-height:100dvh; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:24px; font:15px var(--cpd-font-family-sans,var(--font,Inter,sans-serif)); color:var(--ink,#20232a); background:var(--bg,#eef1f8); }
.rd-public-access > header { display:flex; align-items:center; gap:12px; font-size:26px; margin-bottom:24px; }
.rd-public-access > header img { width:36px; height:36px; }
.rd-public-access__card { width:min(560px,100%); background:var(--surface,#fff); padding:32px; border-radius:18px; box-shadow:0 10px 30px #15203514; }
.rd-public-access__card h1 { margin-top:0; font-size:24px; }
.rd-public-access__card label { display:flex; gap:8px; flex-wrap:wrap; margin:14px 0; }
.rd-public-access__card input:not([type=checkbox]) { width:100%; min-width:0; padding:10px; border:1px solid #bdc4cc; border-radius:8px; font:inherit; }
.rd-public-access__card button { padding:10px 16px; border:1px solid #bdc4cc; border-radius:8px; margin:4px; background:transparent; color:inherit; font:inherit; cursor:pointer; }
.rd-public-access__card button:disabled { opacity:.55; cursor:default; }
.rd-public-access__trap { position:absolute; left:-10000px; width:1px!important; height:1px; opacity:0; }
.rd-markdown { max-width:100%; overflow-wrap:anywhere; line-height:1.6; }
.rd-markdown pre { overflow:auto; padding:12px; background:var(--cpd-color-bg-subtle-primary,#f3f5f9); border-radius:8px; white-space:pre; }
.rd-markdown table { border-collapse:collapse; width:100%; }
.rd-markdown th,.rd-markdown td { padding:8px 12px; border:1px solid var(--cpd-color-gray-400,#bdc4cc); text-align:left; }
.rd-markdown th { font-weight:600; background:var(--cpd-color-bg-subtle-primary,#f3f5f9); }
.rd-markdown blockquote { border-left:3px solid var(--cpd-color-gray-400,#bdc4cc); margin-left:0; padding-left:16px; }
.rd-document-workspace { display:flex; flex-direction:column; height:100%; min-width:0; min-height:0; }
.rd-document-workspace > header { min-height:60px; display:flex; align-items:center; gap:12px; border-bottom:1px solid var(--cpd-color-gray-400,#bdc4cc); padding:8px 16px; }
.rd-document-workspace [role=tablist] { display:flex; gap:6px; flex:1; min-width:0; overflow:auto; }
.rd-document-workspace button { display:inline-flex; align-items:center; gap:6px; padding:8px 12px; background:transparent; border:1px solid var(--cpd-color-gray-400,#bdc4cc); border-radius:8px; white-space:nowrap; color:inherit; font:inherit; cursor:pointer; }
.rd-document-tab { display:flex; flex:none; }
.rd-document-tab [aria-selected=true] { background:var(--cpd-color-bg-action-primary-rest,#e6efff); }
.rd-document-preview { flex:1; min-height:0; overflow:auto; padding:24px; }
.rd-document-preview:has(> iframe) { padding:0; }
.rd-document-preview > iframe { border:0; width:100%; height:100%; min-height:500px; }
.rd-document-preview > img,.rd-document-preview > video { display:block; max-width:100%; max-height:100%; object-fit:contain; margin:auto; }
.rd-document-preview > pre { white-space:pre-wrap; overflow-wrap:anywhere; }
.rd-embedded-browser-shell { height:100dvh; min-width:0; min-height:0; }
.rd-service-workspace { height:100%; overflow:auto; }
.rd-service-workspace > header { position:sticky; top:0; display:flex; align-items:center; gap:16px; min-height:60px; padding:12px 24px; border-bottom:1px solid var(--cpd-color-gray-400,#bdc4cc); background:var(--cpd-color-bg-canvas-default,#fff); z-index:1; }
.rd-service-panel { padding:24px; max-width:1300px; margin:auto; }
.rd-service-panel header { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.rd-service-panel article,.rd-service-panel > section { padding:16px 0; border-bottom:1px solid var(--cpd-color-gray-400,#bdc4cc); }
.rd-service-panel button,.rd-service-workspace > header button { padding:8px 12px; border:1px solid var(--cpd-color-gray-400,#bdc4cc); border-radius:8px; background:transparent; color:inherit; font:inherit; cursor:pointer; margin:3px; }
.rd-service-panel button:disabled { opacity:.55; cursor:default; }
.rd-service-panel label { display:flex; align-items:center; gap:8px; margin:12px 0; }
.rd-service-panel input:not([type=checkbox]),.rd-service-panel select { padding:8px; border:1px solid var(--cpd-color-gray-400,#bdc4cc); border-radius:8px; font:inherit; color:inherit; background:transparent; }
.rd-service-panel table { width:100%; border-collapse:collapse; }
.rd-service-panel td,.rd-service-panel th { padding:10px; border-bottom:1px solid var(--cpd-color-gray-400,#bdc4cc); text-align:left; vertical-align:top; }
.rd-service-panel td small { display:block; }
.rd-service-facts { display:grid; grid-template-columns:minmax(150px,1fr) 2fr; gap:8px; }
.rd-service-facts dd { margin:0; }
.rd-service-filters { display:flex; flex-wrap:wrap; gap:12px; }
.rd-service-navigation { display:grid; gap:4px; margin-top:20px; }
.rd-service-navigation button { display:flex; align-items:center; gap:10px; width:100%; padding:10px 12px; border:0; border-radius:10px; text-align:left; background:transparent; }
.rd-service-panel input[type=checkbox],.rd-public-access input[type=checkbox],.rd-modal input[type=checkbox] { width:16px; height:16px; flex:none; padding:0; }
.rd-service-danger { color:var(--cpd-color-text-critical-primary,#c33341)!important; }

.rd-relation-graph { display:grid; gap:12px; padding:12px; border:1px solid var(--rd-border); border-radius:12px; overflow-wrap:anywhere; }

/* Template registry: the title receives the flexible width in both hosts. */
.rd-template-runtime .template-registry col.template-registry-col-number{width:56px}
.rd-template-runtime .template-registry col.template-registry-col-code{width:76px}
.rd-template-runtime .template-registry col.template-registry-col-format{width:84px}
.rd-template-runtime .template-registry col.template-registry-col-stage{width:24%}
.rd-template-runtime .template-registry .template-registry-name a{white-space:normal;overflow-wrap:anywhere;text-overflow:clip}
.rd-template-runtime .template-registry .template-registry-name{align-items:center}

.rd-change-summary__toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0;align-items:center}.rd-change-summary__toolbar input{flex:1;min-width:160px}.rd-change-summary__item{border:1px solid var(--rd-border,#dfe3eb);border-radius:8px;padding:12px;margin:8px 0}.rd-change-summary__item small{display:block;margin:6px 0}.rd-change-summary__item p{overflow-wrap:anywhere}.content-compare-change:focus{outline:2px solid var(--rd-accent,#4e68ff);outline-offset:2px}
.rd-change-summary__section>summary{cursor:pointer;padding:12px;display:list-item}.rd-change-summary__section>summary small{display:block;margin:5px 0 0 16px;color:var(--rd-muted,#6b7485)}

.rd-popup-menu { min-width:240px; padding:6px; border:1px solid var(--rd-border); border-radius:12px; background:var(--cpd-color-bg-canvas-default,#fff); box-shadow:0 8px 28px #0002; }
.rd-popup-menu > button { color:inherit; font:inherit; display:flex; align-items:center; gap:10px; width:100%; min-height:40px; padding:9px 10px; border:0; border-radius:7px; background:transparent; text-align:left; white-space:nowrap; }
.rd-popup-menu > button:hover, .rd-popup-menu > button:focus-visible { background:var(--surface-2,var(--cpd-color-bg-subtle-secondary,#f1f3f7)); }
.rd-popup-menu > button[aria-checked=true] { color:var(--rd-accent); }
.rd-popup-menu__caption { padding:6px 10px; color:var(--cpd-color-text-secondary,#737b89); font-size:12px; font-weight:600; }
.rd-popup-menu__divider { height:1px; margin:5px 4px; background:var(--rd-border); }
.rd-popup-menu__check { display:flex; margin-left:auto; width:18px; }
.rd-popup-menu__direction { width:18px; text-align:center; font-size:18px; }

.rd-room-folders { container-type:inline-size; display:grid; gap:10px; margin:20px 0; }
.rd-room-folders .rd-room-card { display:grid; grid-template-columns:44px minmax(160px,1fr) auto 88px; align-items:center; gap:16px; width:100%; padding:16px 20px; border:1px solid transparent; border-radius:12px; background:var(--cpd-color-bg-canvas-default,#fff); text-align:left; }
.rd-room-folders .rd-room-card:hover { border-color:var(--rd-border); box-shadow:0 2px 8px #0001; }
.rd-room-card__avatar { display:flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:12px; background:var(--rd-track,#edf0f9); color:var(--rd-accent); }
.rd-room-card__identity { display:grid; gap:8px; min-width:0; }
.rd-room-card__identity > strong { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.rd-room-card__identity small, .rd-room-card__total small { color:var(--cpd-color-text-secondary,#737b89); font-size:12px; }
.rd-room-card__types { display:flex; flex-wrap:wrap; gap:14px; color:var(--cpd-color-text-secondary,#737b89); font-size:13px; }
.rd-room-card__types > span { display:flex; align-items:center; gap:6px; }
.rd-room-card__total { display:grid; gap:4px; justify-items:end; }
.rd-room-members { display:flex; align-items:center; gap:8px; }
.rd-room-members__avatars { display:flex; align-items:center; }
.rd-room-members__avatars > * + * { margin-left:-5px; }
.rd-room-members__avatars > * { outline:2px solid var(--cpd-color-bg-canvas-default,#fff); border-radius:50%; }
.rd-room-nav-name { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; min-width:0; flex:1; }
@container (max-width:800px) { .rd-room-folders .rd-room-card { grid-template-columns:44px minmax(100px,1fr) 70px; gap:12px; } .rd-room-card__types { grid-column:2; grid-row:2; } .rd-room-card__total { grid-column:3; grid-row:1 / 3; } }
/* Рамка остаётся внутри строки и не обрезается прокруткой бокового меню. */
.rd-disk__sidebar button:focus-visible { outline-offset:-2px; }
.rd-disk__folder-row { display:grid; grid-template-columns:32px minmax(0,1fr) 42px; gap:0; min-height:72px; }
.rd-disk__folder-row > input[type=checkbox] { margin:0 0 0 14px; }
.rd-disk__folders .rd-disk__folder-open { display:grid; grid-template-columns:minmax(120px,1fr) minmax(80px,150px) 90px 90px; align-items:center; gap:16px; min-width:0; padding:14px 12px; text-align:left; }
.rd-disk__folder-access { display:flex; align-items:center; min-width:0; color:var(--cpd-color-text-secondary,#737b89); font-size:12px; }
.rd-disk__folder-count, .rd-disk__folder-size { text-align:right; white-space:nowrap; font-size:13px; color:var(--cpd-color-text-secondary,#737b89); }
.rd-disk__folders .rd-disk__folder-info { margin:0; align-self:center; justify-self:center; }
@media(max-width:1100px) { .rd-disk__folders .rd-disk__folder-open { grid-template-columns:minmax(100px,1fr) 90px; } .rd-disk__folder-access,.rd-disk__folder-size { display:none; } }
html[data-rd-standalone] { --bg:#eef1f8; --surface:#fff; --surface-2:#f6f8fc; --ink:#1f2a44; --muted:#7b8698; --faint:#a7b0c4; --line:#eaeef6; --line2:#dde3ee; --accent:#4c6fff; --accent-soft:#eaeeff; --track:#eef1f8; --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif; }
html.dark[data-rd-standalone] { --bg:#141923; --surface:#1e2533; --surface-2:#283142; --ink:#edf1fa; --muted:#acb7c9; --faint:#8793aa; --line:#323c50; --line2:#47536b; --accent:#8da0ff; --accent-soft:#303c66; --track:#323c50; color-scheme:dark; }
html[data-rd-standalone] body { font-family:var(--font); }
.rd-disk[data-details=true] .rd-disk__workspace { grid-column:2; }
.rd-brand { display:flex; align-items:center; gap:0; font-size:19px; letter-spacing:-.4px; }
.rd-brand img { width:22px; height:22px; margin-right:10px; }
.rd-brand > span { color:#0088bb; }
.rd-standalone-shell > header .rd-account-button { display:flex; align-items:center; justify-content:center; padding:0; width:36px; height:36px; border:0; border-radius:50%; }
.rd-account-button .rd-standalone-avatar { width:32px; height:32px; }
.rd-standalone-shell > header .rd-bell,.rd-standalone-shell > header .rd-support-button { display:flex; align-items:center; justify-content:center; position:relative; width:36px; height:36px; padding:0; }
.rd-bell__dot { position:absolute; width:7px; height:7px; right:5px; top:5px; border-radius:50%; background:#f2544b; }
.rd-disk__details.rd-notifications,.rd-disk__details.rd-profile { padding:0; display:flex; flex-direction:column; overflow:hidden; box-shadow:-16px 0 40px -34px #14203066; }
.rd-notifications > header,.rd-profile > header { flex:none; display:flex; align-items:center; gap:12px; padding:20px; border-bottom:1px solid var(--rd-border); }
.rd-notifications > header h2 { font-size:18px; margin:0 0 5px; }
.rd-notifications > header p { font-size:12px; color:var(--muted,#7b8698); margin:0; }
.rd-notifications > header > button,.rd-profile .rd-profile__close { flex:none; display:flex; align-items:center; justify-content:center; width:30px; height:30px; padding:0; border:0; background:transparent; border-radius:8px; margin-left:auto; }
.rd-notifications__body,.rd-profile__body { min-height:0; overflow:auto; padding:16px 20px; }
.rd-notifications__filters { display:flex; flex-wrap:wrap; gap:6px; padding-bottom:12px; }
.rd-notifications__filters button { border:1px solid var(--rd-border); border-radius:20px; padding:5px 10px; background:var(--surface-2,#f6f8fc); color:var(--muted,#7b8698); font-size:12px; display:flex; align-items:center; gap:6px; }
.rd-notifications__filters button[aria-pressed=true] { background:var(--rd-accent); color:#fff; border-color:var(--rd-accent); }
.rd-notifications__filters button span { opacity:.75; font-variant-numeric:tabular-nums; }
.rd-notification { display:flex; align-items:flex-start; gap:11px; padding:12px 0; border-bottom:1px solid var(--rd-border); }
.rd-notification > .rd-standalone-avatar { flex:none; width:32px; height:32px; }
.rd-notification__text { flex:1; min-width:0; font-size:13px; line-height:1.5; }
.rd-notification__text p { margin:0; }
.rd-notification__text p > span { color:var(--muted,#7b8698); }
.rd-notification__text em { color:#d84242; margin-left:6px; font-style:normal; }
.rd-notification__text .rd-notification__target { display:block; border:0; border-radius:0; background:transparent; color:var(--rd-accent); padding:1px 0; text-align:left; overflow-wrap:anywhere; }
.rd-notification__text time { display:block; margin-top:4px; color:var(--faint,#a7b0c4); font-size:11.5px; }
.rd-notifications__more { display:block; margin:16px auto 0; padding:8px 14px; border:1px solid var(--rd-border); border-radius:8px; background:transparent; }
.rd-profile__avatar { position:relative; flex:none; }
.rd-profile__avatar-edit { position:relative; padding:0; border:0; background:transparent; border-radius:50%; }
.rd-profile__avatar-edit .rd-standalone-avatar { width:54px; height:54px; font-size:20px; }
.rd-profile__avatar-edit > i { position:absolute; display:flex; align-items:center; justify-content:center; right:-2px; bottom:0; width:22px; height:22px; border-radius:50%; background:var(--rd-accent); color:#fff; border:2px solid var(--surface,#fff); }
.rd-profile__avatar-edit > i svg { width:12px; height:12px; }
.rd-profile__avatar > .rd-popup-menu { position:absolute; left:0; top:calc(100% + 8px); z-index:30; }
.rd-profile__identity { flex:1; min-width:0; }
.rd-profile__identity > input { width:100%; min-width:0; font:600 18px var(--font,sans-serif); border:1px solid transparent; background:transparent; color:inherit; border-radius:6px; padding:4px; }
.rd-profile__identity > input:hover,.rd-profile__identity > input:focus { border-color:var(--rd-border); outline-color:var(--rd-accent); }
.rd-profile__identity > small { display:block; padding:0 5px; overflow:hidden; text-overflow:ellipsis; font-size:12px; color:var(--muted,#7b8698); }
.rd-profile__section { padding:18px 0; border-bottom:1px solid var(--rd-border); }
.rd-profile__section:first-of-type { padding-top:0; }
.rd-profile__section h3 { display:flex; align-items:center; gap:10px; margin:0 0 12px; font-size:12px; letter-spacing:.04em; text-transform:uppercase; }
.rd-profile__section h3 .rd-icon { padding:6px; width:30px; height:30px; box-sizing:border-box; border-radius:9px; color:var(--rd-accent); background:var(--accent-soft,#eaeeff); }
.rd-profile__themes { display:flex; gap:3px; padding:4px; border-radius:10px; background:var(--surface-2,#f6f8fc); }
.rd-profile__themes button { flex:1; border:0; border-radius:7px; background:transparent; padding:8px 6px; color:var(--muted,#7b8698); font-size:12px; }
.rd-profile__themes button[aria-pressed=true] { background:var(--surface,#fff); color:var(--rd-accent); box-shadow:0 2px 5px #0001; }
.rd-profile__row { display:flex; width:100%; align-items:center; gap:8px; padding:10px 0; border:0; border-radius:6px; background:transparent; text-align:left; }
.rd-profile__row > span:first-child { color:var(--muted,#7b8698); }
.rd-profile__row > strong { margin-left:auto; min-width:0; font-size:13px; font-weight:500; overflow-wrap:anywhere; text-align:right; }
.rd-profile__row > svg { margin-left:auto; width:16px; flex:none; }
button.rd-profile__row:hover { background:var(--surface-2,#f6f8fc); }
.rd-profile__logout,.rd-profile__secondary { margin-top:16px; padding:9px 14px; border:1px solid var(--rd-border,var(--line,#dde3ee)); border-radius:9px; background:transparent; color:inherit; font:inherit; }
.rd-profile__logout { width:100%; }
.rd-notify-options { font-size:14px; }
.rd-notify-options__head,.rd-notify-options__row { display:grid; align-items:center; gap:12px; padding:12px 0; }
.rd-notify-options__head { font-size:12px; font-weight:600; color:var(--muted,#7b8698); }
.rd-notify-options__head > span:not(:first-child),.rd-notify-options__row > span:not(:first-child) { text-align:center; }
.rd-notify-options__group { border-top:1px solid var(--line,#eaeef6); }
.rd-notify-options__group > summary { padding:14px 0; cursor:pointer; font-weight:600; }
.rd-notify-options__group > summary > small { float:right; font-weight:400; color:var(--muted,#7b8698); }
.rd-modal .rd-notify-options input.rd-toggle { appearance:none; width:34px; height:20px; padding:0; margin:0; border:0; border-radius:12px; background:#a7b0c4; position:relative; cursor:pointer; }
.rd-modal .rd-notify-options input.rd-toggle:before { content:''; position:absolute; width:16px; height:16px; left:2px; top:2px; border-radius:50%; background:white; transition:transform .15s; }
.rd-modal .rd-notify-options input.rd-toggle:checked { background:var(--accent,#4c6fff); }
.rd-modal .rd-notify-options input.rd-toggle:checked:before { transform:translateX(14px); }
.rd-modal .rd-notify-options input.rd-toggle:focus-visible { outline:2px solid var(--accent,#4c6fff); outline-offset:3px; }

.rd-disk[data-side-panel=true] > .rd-disk__header { grid-column:2; }
.rd-disk__details.rd-profile,.rd-disk__details.rd-notifications { grid-area:1/3/-1/4; }
.rd-profile .rd-profile__section { border-top:0; margin:0; }
.rd-upload__progress button,.rd-disk__dialog button { padding:7px 12px; border:1px solid var(--rd-border); border-radius:8px; color:inherit; background:var(--cpd-color-bg-canvas-default,#fff); }
.rd-disk__dialog button[type=submit] { background:var(--rd-accent); color:#fff; border-color:var(--rd-accent); }
@media(min-width:1101px) { .rd-disk[data-mode=standalone][data-details=true] { grid-template-columns:var(--rd-sidebar-width,350px) minmax(0,1fr) 440px; } }
@media(max-width:1100px) { .rd-disk__details.rd-profile,.rd-disk__details.rd-notifications { top:0; width:min(420px,100%); } }

html[data-rd-standalone] { --cpd-color-bg-canvas-default:var(--surface); --cpd-color-text-primary:var(--ink); --cpd-color-text-secondary:var(--muted); --rd-border:var(--line); --rd-accent:var(--accent); }
html[data-rd-standalone] body { color:var(--ink); background:var(--bg); }
.rd-profile .rd-profile__avatar-edit { padding:0; border:0; border-radius:50%; }
.rd-profile button.rd-profile__row { border:0; border-radius:6px; padding:10px 0; }
@container(max-width:900px) { .rd-disk__folders .rd-disk__folder-open { grid-template-columns:minmax(100px,1fr) 90px; } .rd-disk__folder-access,.rd-disk__folder-size { display:none; } }

.rd-notify-settings-layer .rd-modal { width:min(640px,100%); }
.rd-popup-menu { z-index:60; }

/* Подписанные группы повторяют структуру исходного бокового меню. */
.rd-service-navigation { margin-top:20px; border-top:1px solid var(--rd-border); padding-top:8px; }
.rd-disk__sidebar .rd-service-navigation h3 { margin:0 0 4px; }
.rd-disk__sidebar .rd-service-group-toggle { min-height:32px; padding:6px 8px; font-size:12px; font-weight:600; color:var(--cpd-color-text-secondary,#737d90); }
.rd-service-group-toggle .rd-icon { width:14px; height:14px; transition:transform .15s; }
.rd-service-group-toggle[aria-expanded=true] .rd-icon { transform:rotate(90deg); }
.rd-service-breadcrumb { color:var(--cpd-color-text-secondary,#737d90); }
.rd-service-breadcrumb span { margin-left:12px; }

.rd-disk__sidebar button.rd-disk__storage { flex:none; width:100%; display:flex; gap:12px; padding:12px; margin:12px 0 0; border-radius:14px; background:var(--surface-2,var(--cpd-color-bg-subtle-secondary,#f6f8fc)); cursor:pointer; }
.rd-disk__sidebar button.rd-disk__storage:hover { box-shadow:inset 0 0 0 1px var(--rd-accent); }

.rd-service-panel.rd-devices { max-width:1100px; }
.rd-devices > header { justify-content:space-between; margin-bottom:24px; }
.rd-service-panel.rd-devices > article,.rd-service-panel.rd-devices > section { padding:20px; margin:16px 0; border:1px solid var(--rd-border); border-radius:16px; background:var(--cpd-color-bg-canvas-default,#fff); box-shadow:0 2px 6px #00000008; }
.rd-device-card header h3 { margin:0 0 5px; overflow-wrap:anywhere; }
.rd-device-card header > div { flex:1; min-width:0; }
.rd-device-card header > div > span,.rd-device-version,.rd-device-download small { color:var(--cpd-color-text-secondary,#737d90); font-size:13px; }
.rd-device-platform { display:flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:12px; background:var(--rd-accent-soft,#eaeeff); color:var(--rd-accent); flex:none; }
.rd-device-status { padding:5px 10px; border-radius:20px; color:#167344; background:#e6f5ec; font-size:12px; }
.rd-device-status[data-warning=true] { color:#875400; background:#fff1d9; }
.rd-device-card details { margin-top:12px; }
.rd-device-card summary { cursor:pointer; color:var(--cpd-color-text-secondary,#737d90); padding:8px 0; }
.rd-device-downloads h3 { margin-top:0; }
.rd-device-download { display:flex; align-items:center; gap:12px; padding:12px; margin-top:10px; border:1px solid var(--rd-border); border-radius:12px; color:inherit; text-decoration:none; }
.rd-device-download:hover { border-color:var(--rd-accent); background:var(--cpd-color-bg-subtle-secondary,#f6f8fc); }
.rd-device-download > span:nth-child(2) { flex:1; min-width:0; }
.rd-device-download strong,.rd-device-download small { display:block; overflow-wrap:anywhere; }
.rd-device-download small { margin-top:4px; }

.rd-device-platform svg { width:24px; height:24px; }
.rd-device-platform[data-platform=windows] { color:#0e9c8f; background:#e0f5ef; }
.rd-device-platform[data-platform=linux] { color:#b4750d; background:#fff1d9; }

.rd-storage-actions { position:relative; flex:none; margin-top:12px; }
.rd-disk__sidebar .rd-storage-actions button.rd-disk__storage { margin:0; padding-right:48px; }

.rd-disk__sidebar button.rd-storage-upgrade { position:absolute; right:10px; top:50%; transform:translateY(-50%); width:32px; min-height:32px; padding:6px; margin:0; justify-content:center; background:#e4f5eb; color:#14763e; border-radius:9px; }
.rd-disk__sidebar button.rd-storage-upgrade .rd-icon { color:inherit; }
.rd-disk__sidebar button.rd-storage-upgrade:hover { background:#ccebd9; }

/* Плитки папок используют тот же переключатель, что и файлы. */
.rd-disk__folders--grid { grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:18px; }
.rd-disk__folders--grid .rd-disk__folder-row { position:relative; display:block; padding:0; overflow:hidden; border-radius:16px; box-shadow:0 3px 7px #00000010; }
.rd-disk__folders--grid .rd-disk__folder-open { position:relative; display:grid; grid-template-columns:1fr 90px; grid-template-rows:58px 94px 40px; gap:0; width:100%; padding:0; text-align:left; }
.rd-disk__folders--grid .rd-disk__folder-name { grid-column:1; grid-row:1; padding:12px 16px 12px 38px; font-weight:700; background:color-mix(in srgb,var(--rd-folder-color) 15%,transparent); border-radius:0 0 16px 0; }
.rd-disk__folders--grid .rd-folder-cover { position:absolute; right:18px; top:78px; width:56px; height:56px; }
.rd-disk__folders--grid .rd-disk__folder-count { grid-column:2; grid-row:1; align-self:start; margin-top:13px; padding-right:22px; font-size:12px; }
.rd-disk__folders--grid .rd-disk__folder-size { grid-column:2; grid-row:1; align-self:end; margin-bottom:9px; padding-right:22px; font-size:12px; }
.rd-disk__folders--grid .rd-disk__folder-access { grid-column:1; grid-row:2; padding:18px; display:block; }
.rd-disk__folders--grid .rd-disk__folder-access::before { content:'Доступ'; display:block; margin-bottom:10px; color:var(--cpd-color-text-secondary,#9ba6be); }
.rd-disk__folders--grid .rd-folder-updated { grid-column:1/-1; grid-row:3; border-top:1px solid var(--rd-border); padding:12px 18px; font-size:12px; color:var(--cpd-color-text-secondary,#9ba6be); }
.rd-disk__folders--grid .rd-disk__folder-info { position:absolute; top:12px; right:2px; width:24px; padding:0; }
.rd-disk__folders--grid .rd-disk__folder-row > input { position:absolute; top:18px; left:12px; z-index:1; }
.rd-disk__stat { box-shadow:0 3px 7px #0000000d; }
.rd-disk__stat > svg { inset:auto 0 0 auto; width:220px; height:150px; }
.rd-disk__stat .rd-stat-icon { position:absolute; right:20px; top:10px; width:40px; height:40px; display:flex; align-items:center; justify-content:center; border-radius:12px; }
.rd-disk__stat .rd-stat-icon svg { position:static; width:20px; height:20px; }
.rd-disk__stat-count small { font-size:12px; font-weight:400; color:var(--cpd-color-text-secondary,#9ba6be); }
.rd-disk__folders--grid { grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); }
.rd-disk__folders--grid .rd-disk__folder-row > input[type=checkbox] { margin:0; }
.rd-disk__folders--grid .rd-disk__folder-size { display:block; }
.rd-disk__files--grid .rd-disk__file { overflow:hidden; padding:0 0 12px; gap:10px; }
.rd-disk__files--grid .rd-file-icon { width:100%; height:140px; border-radius:0; margin:0; font-size:18px; }
.rd-disk__files--grid input[type=checkbox] { margin:0; z-index:1; }
.rd-disk__files--grid .rd-disk__filename { text-align:left; padding:0 12px; }

/* Карточка шаблона: согласованные компактные действия и строки правил. */
.rd-template-runtime .template-card-actions { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin:24px 0 18px; }
.rd-template-runtime .template-card-actions > button { display:inline-flex; align-items:center; justify-content:center; gap:8px; width:auto; flex:0 0 auto; min-height:40px; }
.rd-template-runtime .template-structure-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:20px; }
.rd-template-runtime .template-structure-heading h2 { margin:0; }
.rd-template-runtime .template-download-action > button { background:transparent; color:var(--ink); border:1px solid var(--line2); }
.rd-template-runtime .template-editions-table .template-edition-current-badge { margin-left:10px; }
.rd-template-runtime .template-rule-row .template-rule-row-actions label { margin:0; display:flex; align-items:center; }
.rd-template-runtime .template-rule-readonly-state { font-size:12px; color:var(--muted); min-width:70px; text-align:right; }
.rd-template-runtime .template-rule-list .template-rule-row { min-height:64px; }
.rd-template-runtime .template-rules-apply-bar { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:16px; }
.rd-template-runtime .template-record-tabs { overflow-x:auto; gap:0; }
.rd-template-runtime .template-record-tabs > button { flex:none; white-space:nowrap; }
.rd-template-runtime.rd-modal-layer .rd-modal { padding:24px; }
.rd-template-runtime.rd-modal-layer .rd-modal > footer { margin:20px 0 0; padding:16px 0 0; display:flex; justify-content:flex-end; gap:10px; border-top:1px solid var(--line); }
.rd-template-runtime.rd-modal-layer .rd-modal > header { margin-bottom:20px; }
.rd-template-runtime.rd-modal-layer .rd-modal [role=tablist] { display:flex; gap:8px; border-bottom:1px solid var(--line); margin-bottom:18px; }
.rd-template-runtime.rd-modal-layer .rd-modal [role=tab] { background:transparent; color:var(--muted); border:0; border-bottom:2px solid transparent; border-radius:0; }
.rd-template-runtime.rd-modal-layer .rd-modal [role=tab][aria-selected=true] { color:var(--accent); border-bottom-color:var(--accent); }
.rd-template-runtime.rd-modal-layer .rd-modal label { display:flex; flex-direction:column; align-items:stretch; gap:8px; margin:14px 0; }
.rd-template-runtime.rd-modal-layer .rd-modal fieldset { border:0; padding:0; }
.rd-template-runtime .template-publication-history { margin-bottom:28px; }
@media(max-width:640px) { .rd-template-runtime .template-card-actions { gap:8px; } .rd-template-runtime .template-rule-row { grid-template-columns:minmax(0,1fr); } .rd-template-runtime .template-rule-row-actions { justify-content:flex-end; } }

.rd-template-authoring .ta-toolbar { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.rd-template-authoring .ta-toolbar > button { width:auto; flex:none; }
.rd-template-authoring .ta-more { position:relative; }
.rd-template-authoring .ta-more > summary { cursor:pointer; padding:10px 14px; border:1px solid #dce2ef; border-radius:8px; }
.rd-template-authoring .ta-more > div { position:absolute; top:100%; right:0; z-index:3; min-width:220px; display:grid; gap:6px; padding:8px; background:white; border:1px solid #dce2ef; border-radius:10px; box-shadow:0 8px 24px #0002; }
.rd-modal .template-related-results { display:grid; gap:6px; max-height:200px; overflow:auto; }
.rd-modal .template-related-results > button { text-align:left; }

.rd-template-runtime.rd-rule-editor .rd-modal { width:min(900px,100%); color:var(--ink,#26324a); font:14px var(--font,Inter,Arial,sans-serif); }
.rd-template-runtime .rd-modal > header > button { background:transparent; color:var(--muted); border:0; }
.rd-template-runtime .rd-modal pre,.rd-template-runtime .rd-modal textarea { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:13px; line-height:1.5; }
.rd-template-runtime .rd-modal .template-editions-table { min-width:0; table-layout:fixed; }
.rd-template-runtime .rd-modal .template-editions-table th,.rd-template-runtime .rd-modal .template-editions-table td { overflow-wrap:anywhere; }
.rd-rule-editor .rd-modal > section > article { display:flex; align-items:center; flex-wrap:wrap; gap:8px 16px; padding:14px 0; border-bottom:1px solid var(--line); }
.rd-rule-editor .rd-modal > section > article h4 { margin:0; }
.rd-rule-editor .rd-modal > section > article p { flex-basis:100%; margin:0; color:var(--muted); }
.rd-folder-details > header { display:flex; align-items:center; gap:12px; }
.rd-folder-details > header h2 { flex:1; min-width:0; overflow-wrap:anywhere; }
.rd-folder-details .rd-detail-card { margin:16px 0; padding:14px; border:1px solid var(--rd-border); border-radius:16px; }
.rd-folder-details .rd-detail-card > summary { cursor:pointer; font-weight:600; padding:4px 0 10px; }
.rd-folder-palette { display:flex; flex-wrap:wrap; gap:8px; padding:12px 0; }
.rd-folder-details .rd-folder-palette button { width:28px; height:28px; padding:0; border:2px solid var(--cpd-color-bg-canvas-default,#fff); border-radius:50%; box-shadow:0 0 0 1px var(--rd-border); }
.rd-folder-details .rd-folder-palette button[aria-pressed=true] { box-shadow:0 0 0 2px var(--rd-accent); }

/* Геометрия исходного folderCard, без переиспользования сетки строк. */
.rd-disk__folders--grid { grid-template-columns:repeat(auto-fill,minmax(248px,1fr)); gap:12px; }
.rd-folder-tile { position:relative; border:1px solid var(--rd-border); border-radius:14px; overflow:hidden; background:var(--cpd-color-bg-canvas-default,#fff); box-shadow:0 2px 5px #14203c12; }
.rd-disk__folders .rd-folder-tile__open { display:block; width:100%; padding:0; border:0; border-radius:0; text-align:left; color:inherit; font:inherit; }
.rd-folder-tile__top { display:flex; align-items:flex-start; gap:8px; padding-right:40px; background:linear-gradient(180deg,color-mix(in srgb,var(--folder-color) 15%,transparent),color-mix(in srgb,var(--folder-color) 2%,transparent)); }
.rd-folder-tile__tab { flex:0 1 calc(60% + 18px); min-width:0; padding:14px 20px 15px 16px; border-radius:14px 0 16px 0; background:linear-gradient(180deg,color-mix(in srgb,var(--folder-color) 17%,transparent),color-mix(in srgb,var(--folder-color) 3%,transparent)); }
.rd-folder-tile__tab > span { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:14.5px; font-weight:800; }
.rd-folder-tile__count { flex:none; margin-left:auto; padding-top:12px; text-align:right; white-space:nowrap; font-size:13px; line-height:1.3; color:var(--cpd-color-text-secondary,#a2aec7); }
.rd-folder-tile__count small { display:block; margin-top:2px; font-size:11.5px; font-weight:600; }
.rd-folder-tile__body { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; padding:11px 13px 12px; }
.rd-folder-tile__label { display:block; margin-bottom:6px; font-size:11.5px; font-weight:600; color:var(--cpd-color-text-secondary,#a2aec7); }
.rd-folder-tile__solo { font-size:13px; font-weight:600; color:var(--cpd-color-text-secondary,#8995ac); }
.rd-disk__folders--grid .rd-folder-tile .rd-folder-cover,.rd-folder-tile .rd-folder-cover { position:static; flex:0 0 46px; width:46px; height:46px; border-radius:12px; }
.rd-folder-tile__updated { display:block; padding:9px 13px; border-top:1px solid var(--rd-border); font-size:11.5px; color:var(--cpd-color-text-secondary,#a2aec7); }
.rd-disk__folders .rd-folder-tile__more { position:absolute; right:7px; top:7px; width:30px; height:30px; display:flex; align-items:center; justify-content:center; padding:0; background:transparent; color:var(--cpd-color-text-secondary,#8995ac); }
.rd-folder-tile__select { position:absolute; top:10px; left:10px; z-index:2; opacity:0; }
.rd-folder-tile:hover .rd-folder-tile__select,.rd-folder-tile:focus-within .rd-folder-tile__select,.rd-folder-tile.is-selected .rd-folder-tile__select { opacity:1; }
.rd-folder-tile.is-selected { border-color:var(--rd-accent); box-shadow:0 0 0 2px var(--rd-accent-soft,#eaeeff); }

.rd-service-panel.rd-billing { max-width:1100px; }
.rd-billing > header { justify-content:space-between; margin-bottom:24px; }
.rd-billing-current { padding:14px 16px; border:1px solid var(--rd-border); border-radius:12px; background:var(--cpd-color-bg-subtle-secondary,#f6f8fc); }
.rd-billing-current h3 { margin:0; font-size:19px; font-weight:800; }
.rd-billing-plans { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:10px; margin-top:8px; }
.rd-service-panel .rd-billing-plan { display:flex; flex-direction:column; align-items:flex-start; padding:14px 14px 12px; border:1px solid var(--rd-border); border-radius:14px; background:var(--cpd-color-bg-canvas-default,#fff); }
.rd-billing-plan strong { font-size:17px; font-weight:700; }
.rd-billing-plan p { font-size:14.5px; font-weight:600; }
.rd-billing-plan button { margin-top:auto; color:var(--rd-accent); }
.rd-billing-plan:hover { border-color:var(--rd-accent); box-shadow:0 0 0 3px var(--rd-accent-soft,#eaeeff); }

.rd-admin-summary { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:14px; margin:20px 0; }
.rd-admin-summary > div { background:var(--cpd-color-bg-canvas-default,#fff); border:1px solid var(--rd-border); border-radius:16px; padding:15px 18px; box-shadow:0 2px 5px #14203c12; }
.rd-admin-summary span { display:block; font-size:12.5px; color:var(--cpd-color-text-secondary,#8995ac); }
.rd-admin-summary strong { display:block; margin-top:6px; font-size:26px; line-height:1.15; font-weight:800; }
.rd-service-panel.rd-admin-settings > article { border:1px solid var(--rd-border); border-radius:16px; padding:16px; margin:14px 0; box-shadow:0 2px 5px #14203c12; background:var(--cpd-color-bg-canvas-default,#fff); }
.rd-admin-settings > article > h3 { margin-top:0; }
.rd-admin-settings > article > p:first-of-type { color:var(--rd-accent); font-size:18px; font-weight:700; }
.rd-admin-settings > article > p:nth-of-type(3) { padding:12px; border-radius:10px; background:var(--cpd-color-bg-subtle-secondary,#f6f8fc); }
.rd-storage-segments { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; }
.rd-storage-segments > div { border:1px solid var(--rd-border); border-radius:12px; padding:14px; }
.rd-storage-segments dt { font-size:13px; color:var(--cpd-color-text-secondary,#8995ac); }
.rd-storage-segments dd { margin:8px 0 0; font-size:20px; font-weight:700; }
.rd-storage-page > progress { display:block; width:100%; height:8px; accent-color:var(--rd-accent); }
.rd-admin-people table,.rd-admin-audit table,.rd-storage-page table { border:1px solid var(--rd-border); border-radius:12px; overflow:hidden; background:var(--cpd-color-bg-canvas-default,#fff); }
.rd-admin-people th,.rd-admin-audit th,.rd-storage-page th { background:var(--cpd-color-bg-subtle-secondary,#f6f8fc); color:var(--cpd-color-text-secondary,#8995ac); font-size:12px; }

.rd-catalogue-heading { font-size:16px; font-weight:700; margin:22px 0 14px; }
.rd-folder-tree__color .rd-icon { color:inherit; }
.rd-disk__folders .rd-disk__folder-open { grid-template-columns:minmax(120px,1fr) 126px 148px 132px 84px; gap:12px; }
.rd-disk__folder-date { color:var(--cpd-color-text-secondary,#8995ac); font-size:13px; }
@container(max-width:1000px) { .rd-disk__folders .rd-disk__folder-open { grid-template-columns:minmax(100px,1fr) 100px 90px; } .rd-disk__folder-date,.rd-disk__folder-access { display:none; } }
@container(max-width:650px) { .rd-disk__folders .rd-disk__folder-open { grid-template-columns:minmax(100px,1fr) 90px; } .rd-disk__folder-size { display:none; } }
html[data-rd-standalone] .rd-disk { --cpd-color-text-primary:var(--ink); --cpd-color-text-secondary:var(--muted); --cpd-color-bg-canvas-default:var(--surface); --cpd-color-gray-400:var(--line); }
.rd-disk__statistics { grid-template-columns:repeat(auto-fill,minmax(215px,1fr)); gap:14px; margin-bottom:2px; }
.rd-disk__stat { min-height:140px; border-width:1px; padding:16px 18px; }
.rd-disk__stat[aria-pressed=true] { outline:2px solid var(--rd-accent); outline-offset:-2px; }
.rd-disk__stat > svg { inset:0; width:100%; height:100%; }
.rd-disk__stat-label { font-size:14.5px; font-weight:700; }
.rd-disk__stat-count { bottom:16px; font-size:26px; font-weight:800; }
.rd-disk__stat-percent { right:10px; top:60%; bottom:auto; font-size:22px; font-weight:800; }
.rd-disk__stat .rd-stat-icon { width:38px; height:38px; right:25px; top:9px; border-radius:11px; }
html[data-rd-standalone] .rd-disk[data-details=true] { grid-template-columns:var(--rd-sidebar-width,350px) minmax(0,1fr) 440px; }
@media(max-width:1100px) { html[data-rd-standalone] .rd-disk[data-details=true] { grid-template-columns:var(--rd-sidebar-width,350px) minmax(0,1fr); } }

.rd-file-tile { position:relative; overflow:hidden; border:1px solid var(--rd-border); border-radius:14px; background:var(--cpd-color-bg-canvas-default,#fff); box-shadow:0 2px 5px #14203c12; }
.rd-file-tile__preview { display:block; width:100%; height:112px; padding:0; border:0; background:transparent; cursor:pointer; }
.rd-file-tile__preview > .rd-file-icon,.rd-file-tile__preview > img { width:100%; height:100%; border-radius:0; margin:0; object-fit:cover; font-size:16px; }
.rd-file-tile__footer { display:flex; align-items:center; gap:6px; padding:9px 11px; }
.rd-file-tile__name { flex:1; min-width:0; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; background:transparent; border:0; padding:0; text-align:left; color:inherit; font:inherit; font-weight:600; font-size:12px; cursor:pointer; }
.rd-file-tile__more { width:24px; height:24px; flex:none; display:flex; align-items:center; justify-content:center; border:0; background:transparent; color:var(--cpd-color-text-secondary,#8995ac); padding:0; cursor:pointer; }
.rd-file-tile > input[type=checkbox] { position:absolute; top:8px; left:8px; width:18px; height:18px; margin:0; z-index:2; accent-color:var(--rd-accent); }
.rd-file-tile.is-selected { border-color:var(--rd-accent); box-shadow:0 0 0 2px var(--rd-accent-soft,#eaeeff); }

.rd-disk__details > header { display:flex; align-items:flex-start; gap:12px; padding-bottom:14px; border-bottom:1px solid var(--rd-border); }
.rd-disk__details > header h2 { flex:1; font-size:18px; margin:4px 0 0; min-width:0; overflow-wrap:anywhere; }
.rd-disk__details .rd-detail-section, .rd-surface { padding:0; border:1px solid var(--rd-border); border-radius:16px; background:transparent; box-shadow:none; }
.rd-disk__details .rd-detail-section { margin:14px 0; }
.rd-surface--filled { background:var(--cpd-color-bg-canvas-default,#fff); }
.rd-disk__details button.rd-detail-section__heading, .rd-ui button.rd-detail-section__heading { display:flex; align-items:center; gap:8px; width:100%; border:0; padding:11px 14px; margin:0; border-radius:16px; background:transparent; text-align:left; }
.rd-detail-section__heading > .rd-icon { width:17px; height:17px; color:var(--cpd-color-text-secondary,#a7b0c4); }
.rd-detail-section.is-open .rd-detail-section__heading > .rd-icon { transform:rotate(90deg); }
.rd-detail-section__summary { margin-left:auto; font-size:12px; font-weight:400; color:var(--cpd-color-text-secondary,#8995ac); }
.rd-detail-section__body { padding:0 14px 14px; }
.rd-detail-section__header { display:flex; align-items:center; gap:8px; }
.rd-detail-section__header > .rd-detail-section__heading { flex:1; min-width:0; }
.rd-detail-section__actions { flex:none; padding-right:14px; }
.rd-access > .rd-access__controls:has(button[aria-pressed]) { display:inline-flex; gap:0; padding:3px; background:var(--cpd-color-bg-subtle-secondary,#f6f8fc); border:1px solid var(--rd-border); border-radius:10px; }
.rd-access > .rd-access__controls button[aria-pressed] { border:0; margin:0; padding:8px 10px; border-radius:7px; }
.rd-access > .rd-access__controls button[aria-pressed=true] { color:#fff; background:var(--rd-accent); }

.rd-disk__folders--small { grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:10px; }
.rd-disk__folders--small .rd-folder-tile__tab { padding:11px 10px; }
.rd-disk__folders--small .rd-folder-tile__tab > span { font-size:13px; }
.rd-disk__folders--small .rd-folder-tile__count { font-size:11px; }
.rd-disk__folders--small .rd-folder-tile__body { min-height:65px; padding:10px; }
.rd-disk__folders--small .rd-folder-cover { width:40px; height:40px; }
.rd-disk__files--small { grid-template-columns:repeat(auto-fill,minmax(112px,1fr)); gap:10px; }
.rd-disk__files--small .rd-file-tile__preview { height:78px; }
.rd-service-workspace { background:var(--bg,var(--cpd-color-bg-subtle-secondary,#eef1f8)); }
.rd-billing-current,.rd-service-panel.rd-admin-settings > article,.rd-admin-summary > div,.rd-storage-segments > div { background:var(--cpd-color-bg-canvas-default,#fff); }
.rd-billing > section,.rd-storage-page > table { background:var(--cpd-color-bg-canvas-default,#fff); }

.rd-folder-activity { display:grid; gap:5px; padding:10px 0; border-bottom:1px solid var(--rd-border); font-size:13px; }
.rd-folder-activity small { color:var(--cpd-color-text-secondary,#8995ac); }

/* Две оболочки используют одни компоненты. Standalone сохраняет исходную общую шапку. */
.rd-standalone-shell { grid-template-rows:60px minmax(0,1fr); }
.rd-standalone-toolbar { flex:1; min-width:0; }
.rd-standalone-toolbar .rd-disk__header { min-width:0; height:60px; padding:0; border:0; background:transparent; }
.rd-standalone-search { width:220px; flex:0 1 220px; }
.rd-standalone-search input { min-width:0; }
.rd-standalone-shell > header > span:first-of-type { margin-left:0; }
.rd-disk[data-shell=standalone] { --rd-sidebar-width:250px; grid-template-rows:minmax(0,1fr); }
.rd-disk[data-shell=standalone] > .rd-disk__search { display:none; }
.rd-disk[data-shell=standalone] > .rd-disk__sidebar { grid-area:1/1; }
.rd-disk[data-shell=standalone] > .rd-disk__content,.rd-disk[data-shell=standalone] > .rd-disk__workspace { grid-area:1/2; }
.rd-disk[data-shell=standalone] > .rd-disk__details { grid-area:1/3; }
.rd-disk[data-shell=standalone] > .rd-profile-panel,.rd-disk[data-shell=standalone] > .rd-notification-panel { grid-row:1; }
@media(max-width:1100px) { .rd-standalone-search { width:180px; flex-basis:180px; } .rd-standalone-shell > header > span:first-of-type { display:none; } }

.rd-disk__sidebar button[aria-current=page] { background:var(--rd-accent); color:#fff; box-shadow:0 5px 12px color-mix(in srgb,var(--rd-accent) 20%,transparent); font-weight:600; }
.rd-disk__sidebar button[aria-current=page] .rd-icon { color:#fff; }
.rd-disk[data-shell=standalone] .rd-disk__navigation-scroll > h2 { display:none; }
.rd-disk__sidebar h3 { color:var(--faint,#a7b0c4); font-size:11px; font-weight:500; text-transform:uppercase; letter-spacing:.03em; }
.rd-disk[data-shell=standalone] .rd-storage-context { display:none; }
.rd-disk__sidebar .rd-storage-actions button.rd-disk__storage { padding-right:12px; }
.rd-disk__sidebar button.rd-storage-upgrade { top:10px; right:8px; transform:none; width:24px; min-height:24px; padding:4px; }
.rd-storage-actions .rd-disk__storage > div > span { display:block; padding-right:22px; }

.rd-field-caption { display:block; flex-basis:100%; font-size:11px; text-transform:uppercase; font-weight:700; letter-spacing:.04em; color:var(--cpd-color-text-secondary,#8995ac); margin:0 0 8px; }
.rd-disk__details .rd-folder-cover-editor { border:0; margin:12px 0 0; padding:0; }
.rd-folder-palette { padding-top:6px; }
.rd-detail-section__body > .rd-disk__access-person { border-top:1px solid var(--rd-border); padding-top:10px; }
.rd-disk__details .rd-access label:has(input[type=checkbox]) { display:flex; align-items:center; gap:8px; justify-content:flex-start; }
.rd-disk__details input[type=checkbox] { width:18px; height:18px; flex:none; accent-color:var(--rd-accent); }

.rd-disk__details.rd-folder-details,.rd-disk__details.rd-file-details { padding:0; }
.rd-folder-details > header,.rd-file-details > header { padding:18px 18px 14px; }
.rd-details-heading { flex:1; min-width:0; }
.rd-details-heading p { margin:6px 0 0; font-size:12px; color:var(--cpd-color-text-secondary,#a7b0c4); }
.rd-folder-details > header > button,.rd-file-details > header > button { border:0; padding:4px; width:28px; height:28px; background:transparent; color:var(--cpd-color-text-secondary,#8995ac); }
.rd-folder-details > .rd-detail-section,.rd-file-details > .rd-detail-section { margin:14px 18px; }
.rd-folder-details > section:not(.rd-detail-section),.rd-file-details > section:not(.rd-detail-section),.rd-file-details > form,.rd-file-details > .rd-disk__detail-actions { margin:14px 18px; }

.rd-filter-menu { display:grid; gap:6px; }
.rd-filter-menu strong { padding:7px 10px; font-size:12px; color:var(--cpd-color-text-secondary,#8995ac); }
.rd-filter-menu label { display:grid; grid-template-columns:24px 1fr; gap:8px; align-items:center; padding:4px 10px; }
.rd-filter-menu input { padding:8px; border:1px solid var(--rd-border); border-radius:8px; color:inherit; background:transparent; font:inherit; }
.rd-filter-menu button[aria-pressed=true] { color:var(--rd-accent); background:var(--rd-accent-soft,#eaeeff); }
.rd-disk__actions > button[aria-haspopup=menu] { background:var(--rd-accent,#4c6fff); color:#fff; border-color:transparent; border-radius:12px; padding:10px 14px; }

.rd-content { padding:22px 26px; }
.rd-disk__files:not(.rd-disk__files--grid):not(.rd-disk__files--small),.rd-disk__folders:not(.rd-disk__folders--grid):not(.rd-disk__folders--small) { gap:6px; }
.rd-disk__file,.rd-disk__list-head,.rd-disk__folder-row { grid-template-columns:18px 40px minmax(0,1fr) 126px 148px 132px 84px 60px; gap:12px; }
.rd-disk__file,.rd-disk__folder-row { padding:10px 14px; min-height:0; border:1px solid var(--rd-border); border-radius:14px; box-shadow:0 2px 5px #14203c12; }
.rd-disk__folder-row > input[type=checkbox] { margin:0; }
.rd-disk__folders .rd-disk__folder-open { grid-column:2/4; display:flex; padding:0; gap:0; background:transparent; font:inherit; font-weight:700; text-align:left; }
.rd-disk__folder-date { grid-column:4; }
.rd-disk__folder-access { grid-column:5; }
.rd-disk__folder-count { grid-column:6; }
.rd-disk__folder-size { grid-column:7; }
.rd-disk__folder-info { grid-column:8; }
.rd-disk__filename { font:inherit; font-weight:600; }
.rd-disk__list-head { padding:2px 14px 8px; border-bottom:1px solid var(--rd-border); border-radius:0; text-transform:uppercase; font-size:11px; font-weight:700; }
.rd-disk__list-head > span:nth-child(3) { text-transform:none; }
@container(max-width:1100px) { .rd-disk__file,.rd-disk__list-head,.rd-disk__folder-row { grid-template-columns:18px 40px minmax(0,1fr) 110px 100px 70px 60px; } .rd-disk__room { display:none; } .rd-disk__folder-date { display:block; } .rd-disk__folder-access { display:flex; } .rd-disk__folder-count { display:none; } .rd-disk__folder-size { grid-column:6; display:block; } .rd-disk__folder-info { grid-column:7; } }
@container(max-width:800px) { .rd-disk__file,.rd-disk__list-head,.rd-disk__folder-row { grid-template-columns:18px 40px minmax(0,1fr) 70px 60px; } .rd-disk__date,.rd-disk__owner,.rd-disk__folder-date,.rd-disk__folder-access { display:none; } .rd-disk__folder-size { grid-column:4; } .rd-disk__folder-info { grid-column:5; } }
.rd-folder-cover .rd-icon { color:inherit; }
.rd-disk input[type=checkbox]:not([role=switch]) { appearance:none; -webkit-appearance:none; width:18px; height:18px; flex:none; display:inline-grid; place-items:center; padding:0; margin:0; border:1.5px solid var(--line2,var(--rd-border)); border-radius:5px; background:var(--cpd-color-bg-canvas-default,#fff); cursor:pointer; vertical-align:middle; }
.rd-disk input[type=checkbox]:not([role=switch]):checked { background:var(--rd-accent); border-color:var(--rd-accent); }
.rd-disk input[type=checkbox]:not([role=switch]):checked::after { content:'✓'; color:#fff; font:bold 13px/1 sans-serif; }
.rd-disk input[type=checkbox]:not([role=switch]):focus-visible { outline:2px solid var(--rd-accent); outline-offset:2px; }
.rd-disk input[type=checkbox]:not([role=switch]):disabled { opacity:.5; cursor:default; }
@container(max-width:1100px) and (min-width:801px) { .rd-disk__date { display:block; } .rd-disk__owner { display:flex; } }

.rd-billing-modal .rd-modal { width:min(600px,calc(100vw - 32px)); }
.rd-billing-modal .rd-billing { padding:0; }
.rd-billing-modal .rd-billing > header { justify-content:flex-end; margin-bottom:12px; }
.rd-billing-modal .rd-billing > header h2 { display:none; }
.rd-billing-modal .rd-billing-plans { grid-template-columns:repeat(auto-fit,minmax(122px,1fr)); }

.rd-setting-card__top { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.rd-setting-card__top h3 { flex:1; margin:0; font-size:16px; }
.rd-setting-card__top > strong { color:var(--rd-accent); font-size:16px; }
.rd-setting-card__actions { display:flex; gap:6px; flex-wrap:wrap; }
.rd-setting-card__actions button { display:inline-flex; gap:7px; align-items:center; }
.rd-service-panel.rd-admin-settings > .rd-setting-card > p:first-of-type { color:var(--cpd-color-text-secondary,#a7b0c4); font-size:12px; font-weight:400; }
.rd-setting-card__effect { display:flex; align-items:flex-start; gap:8px; padding:12px; border-radius:10px; background:var(--cpd-color-bg-subtle-secondary,#f6f8fc); font-size:13px; line-height:1.5; }
.rd-setting-card__effect > .rd-icon { color:#ed9c39; margin-top:2px; }

.rd-sidebar-folder-heading { display:flex; align-items:center; justify-content:space-between; margin-top:22px; }
.rd-disk__sidebar .rd-sidebar-folder-heading h3 { margin:0; }
.rd-disk__sidebar .rd-folder-tree-create > button { width:24px; min-height:24px; padding:4px; border:0; border-radius:50%; background:var(--rd-accent); color:white; }
.rd-disk__sidebar .rd-folder-tree-create > button .rd-icon { color:inherit; width:16px; height:16px; }

.rd-sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.rd-access h4 { font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--cpd-color-text-secondary,#8995ac); margin:14px 0 8px; }
.rd-access-grant { display:grid; grid-template-columns:minmax(0,1fr) 110px 80px; gap:8px; margin-top:10px; }
.rd-access-recipient { grid-column:1; grid-row:1; min-width:0; }
.rd-access-permission { grid-column:2; grid-row:1; min-width:0; }
.rd-access-grant input:not([type=checkbox]),.rd-access-grant select { width:100%; min-width:0; padding:9px 8px; border:1px solid var(--rd-border); border-radius:9px; color:inherit; background:transparent; font:inherit; }
.rd-disk__details .rd-access-grant-button { grid-column:3; grid-row:1; background:var(--rd-accent); color:white; border-color:transparent; padding:8px 5px; font-size:12px; }
.rd-access-grant-button:disabled { opacity:.45; }
.rd-access-grant .rd-access-download,.rd-access-grant > p,.rd-access-grant > ul { grid-column:1/-1; }
.rd-access-download { display:flex; gap:8px; align-items:center; margin:10px 0 0; font-size:12px; color:var(--cpd-color-text-secondary,#8995ac); }
.rd-access__row { display:grid; grid-template-columns:minmax(80px,1fr) auto; gap:8px; align-items:center; }
.rd-access__row .rd-access__controls { flex-wrap:nowrap; gap:5px; }
.rd-access__row .rd-access__controls select { max-width:110px; }
.rd-access__row .rd-access__controls button { padding:6px; font-size:11px; }

.rd-object-menu { z-index:200; width:240px; max-height:calc(100vh - 16px); overflow:auto; background:var(--surface,var(--cpd-color-bg-canvas-default,#fff)); color:var(--ink,var(--cpd-color-text-primary,#20232a)); }

.rd-file-row-actions { display:flex; align-items:center; gap:4px; justify-content:flex-end; }
.rd-file-row-menu { width:26px; height:28px; padding:0; border:0; background:transparent; display:flex; align-items:center; justify-content:center; color:var(--cpd-color-text-secondary,#8995ac); }
.rd-template-runtime.rd-template-create .rd-modal { width:min(760px,100%); }
.rd-template-runtime.rd-modal-layer .rd-modal label:has(input[type=checkbox]) { flex-direction:row; align-items:flex-start; }
.rd-template-runtime .rd-modal > form > footer { padding-top:16px; border-top:1px solid var(--line); margin-top:8px; }
.rd-template-runtime .rd-modal .template-validation-form label { display:flex; flex-direction:column; align-items:stretch; }
.rd-template-runtime .rd-modal .template-validation-form fieldset { border:0; padding:0; margin:0 0 18px; }
.rd-template-runtime .rd-modal .template-validation-report small { display:block; margin-top:6px; color:var(--muted); }
.rd-template-runtime .rd-modal .template-validation-report .template-validation-table { table-layout:fixed; }
.rd-template-runtime .rd-modal .template-validation-report td { overflow-wrap:anywhere; }

.rd-template-runtime.rd-modal-layer { background:#15203566; }
.rd-template-runtime.rd-modal-layer .rd-modal { color:var(--ink,#26324a); font:14px var(--font,Inter,Arial,sans-serif); }

.rd-template-runtime.rd-template-create .rdt-create-form > label { margin:0; }
.rd-template-runtime.rd-template-create .rdt-create-form > button { justify-self:start; width:auto; }
.rd-template-runtime.rd-template-create .rdt-create-form > section > button { width:auto; margin-right:8px; }

/* История: самостоятельная форма сравнения, без оформления общей панели действий. */
.rd-template-runtime .template-history-comparison { display:flex; align-items:flex-end; flex-wrap:wrap; gap:16px; margin:0 0 24px; }
.rd-template-runtime .template-history-comparison > label { display:grid; gap:8px; width:260px; max-width:100%; margin:0; font-size:13px; color:var(--muted); }
.rd-template-runtime .template-history-comparison select { width:100%; min-height:40px; color:var(--ink); }
.rd-template-runtime .template-history-comparison > button { width:auto; min-height:40px; flex:none; margin:0; }
.rd-template-runtime .template-record-panel > .template-publication-history { margin:0; padding:0; }
.rd-template-runtime .template-record-panel > .template-publication-history > h2 { margin:0 0 20px; }
.rd-template-runtime .template-record-panel > .template-documents-section,
.rd-template-runtime .template-record-panel > .template-checked-documents { margin-top:32px; padding-top:24px; border-top:1px solid var(--line); }
.rd-template-runtime .template-record-panel > .template-documents-section > h2,
.rd-template-runtime .template-record-panel > .template-checked-documents > h2 { margin:0 0 16px; }
/* Компактный граф: одинаковые карточки и два направления вокруг выбранного документа. */
.rd-relation-graph { --relation-card-width:220px; --relation-card-gap:10px; gap:8px; padding:16px; background:var(--cpd-color-bg-subtle-secondary,var(--surface-2,#f7f8fc)); }
.rd-relation-graph .rd-relation-graph__notice { margin:6px 0 0; color:var(--cpd-color-text-secondary,var(--muted,#8995ac)); font-size:12px; line-height:1.5; }
.rd-relation-graph .rd-relation-graph__group > h4 { display:flex; align-items:center; justify-content:center; gap:7px; margin:0 0 10px; font-size:12px; color:var(--cpd-color-text-secondary,var(--muted,#8995ac)); font-weight:500; }
.rd-relation-graph__group > h4 > span { padding:1px 6px; border-radius:5px; background:var(--cpd-color-bg-canvas-default,var(--surface,#fff)); font-size:11px; }
.rd-relation-graph__branches { display:flex; flex-wrap:wrap; justify-content:center; align-items:stretch; gap:var(--relation-card-gap); max-width:calc(var(--graph-columns) * (var(--relation-card-width) + var(--relation-card-gap)) - var(--relation-card-gap)); margin-inline:auto; }
.rd-relation-graph__branch { width:220px; max-width:100%; display:flex; flex-direction:column; align-items:center; }
.rd-relation-graph .rd-relation-card { display:grid; grid-template-columns:24px minmax(0,1fr) 24px; align-items:start; gap:8px; width:220px; max-width:100%; min-height:64px; height:100%; padding:10px; margin:0; border:1px solid var(--cpd-color-gray-400,var(--line,#dce2ef)); border-radius:10px; background:var(--cpd-color-bg-canvas-default,var(--surface,#fff)); box-shadow:0 1px 3px #14203c08; box-sizing:border-box; }
.rd-relation-card__icon { color:var(--rd-accent,var(--accent,#4f68ff)); background:var(--rd-accent-soft,var(--accent-soft,#eef1ff)); border-radius:6px; padding:4px; display:flex; flex:none; }
.rd-relation-card__body { min-width:0; flex:1; }
.rd-relation-graph .rd-relation-card button.rd-relation-card__name { width:auto; display:block; flex:none; margin:0; padding:0; min-height:0; border:0; border-radius:0; background:transparent; box-shadow:none; color:var(--cpd-color-text-primary,var(--ink,#26324a)); font:inherit; font-size:12px; font-weight:600; line-height:1.45; text-align:left; white-space:normal; overflow-wrap:anywhere; cursor:pointer; }
.rd-relation-graph .rd-relation-card button.rd-relation-card__name:disabled { opacity:1; cursor:default; }
.rd-relation-graph .rd-relation-card button.rd-relation-card__name:hover:not(:disabled) { color:var(--rd-accent,var(--accent,#4f68ff)); }
.rd-relation-graph .rd-relation-card button.rd-relation-card__open { width:24px; height:24px; min-height:24px; padding:3px; margin:0; flex:none; display:flex; justify-content:center; align-items:center; background:transparent; border:0; box-shadow:none; color:var(--cpd-color-text-secondary,var(--muted,#8995ac)); }
.rd-relation-graph .rd-relation-card button.rd-relation-card__open:hover { background:var(--rd-accent-soft,var(--accent-soft,#eef1ff)); color:var(--rd-accent,var(--accent,#4f68ff)); }
.rd-relation-card__body > small { display:block; font-size:11px; margin-top:4px; color:var(--cpd-color-text-secondary,var(--muted,#8995ac)); }
.rd-relation-graph .rd-relation-card.is-selected { border-color:var(--rd-accent,var(--accent,#4f68ff)); background:var(--rd-accent-soft,var(--accent-soft,#eef1ff)); box-shadow:none; }
.rd-relation-graph__selected { display:flex; justify-content:center; }
.rd-relation-graph__connector { display:flex; justify-content:center; height:16px; color:var(--cpd-color-text-secondary,var(--muted,#8995ac)); }
.rd-relation-card__details { grid-column:1/-1; margin-top:0; font-size:13px; line-height:1.5; color:var(--cpd-color-text-secondary,var(--muted,#8995ac)); }
.rd-relation-card__details > summary { cursor:pointer; }
.rd-relation-card__details > div { margin-top:10px; overflow-wrap:anywhere; }
.rd-relation-card__details > div > p { margin:4px 0 0; }
.rd-relation-graph .rd-relation-graph__empty { margin:0; text-align:center; font-size:12px; color:var(--cpd-color-text-secondary,var(--muted,#8995ac)); }
@media(max-width:650px) { .rd-template-runtime .template-history-comparison > label { flex:1 1 220px; } .rd-relation-graph { padding:12px; } }


.rd-template-runtime .template-record-panel .template-editions-table,
.rd-template-runtime .template-record-panel .template-registry,
.rd-template-runtime .template-record-panel .template-validation-table { color:var(--ink); }

.rd-template-runtime .template-download-action > button.template-download { display:inline-flex; align-items:center; justify-content:center; gap:8px; width:auto; min-height:40px; white-space:nowrap; }
.rd-template-runtime .template-download-action > button.template-download > .rd-icon { display:flex; align-items:center; flex:none; margin:0; }
.rd-template-runtime .template-download-action > button.template-download > span:last-child { line-height:20px; }
.rd-template-runtime .template-history-event,.rd-template-runtime .template-history-details > span { display:flex; align-items:center; gap:8px; }
.rd-template-runtime .template-history-event > .rd-icon,.rd-template-runtime .template-history-details .rd-icon { flex:none; color:var(--muted); }
.rd-template-runtime .template-history-details { display:grid; gap:6px; }
.rd-template-runtime .template-events-table small { display:block; margin-top:6px; color:var(--muted); }
.rd-template-runtime .template-events-table th:first-child { width:25%; }
.rd-template-runtime .template-events-table th:nth-child(2) { width:22%; }
.rd-template-runtime .template-events-table th:last-child { width:165px; }
.rd-template-runtime .template-publication-history > button { margin-top:16px; margin-right:8px; }

.rd-sidebar-group__heading { display:flex; align-items:center; justify-content:space-between; gap:8px; margin:22px 0 8px; }
.rd-disk__sidebar .rd-sidebar-group__heading h3 { margin:0; flex:1; }
.rd-disk__sidebar button.rd-sidebar-group__toggle { min-height:24px; padding:0; margin:0; font:inherit; color:var(--faint,#a7b0c4); text-transform:uppercase; border-radius:4px; gap:4px; }
.rd-sidebar-group__toggle .rd-icon { width:12px; height:12px; }
.rd-sidebar-group__toggle[aria-expanded=true] .rd-icon { transform:rotate(90deg); }
.rd-standalone-search .rd-search { background:var(--surface-2,#f6f8fc); border:0; }
.rd-standalone-search kbd { display:none; }

.rd-disk__details button.rd-editable-title { border:0; background:transparent; padding:0; margin:0; font:inherit; font-weight:inherit; color:inherit; text-align:left; }
.rd-editable-title:hover { text-decoration:underline dotted; }
.rd-folder-action label { display:grid; gap:8px; }
.rd-folder-action input,.rd-folder-action select { width:100%; padding:10px; border:1px solid var(--rd-border); border-radius:9px; font:inherit; color:inherit; background:transparent; }
.rd-folder-action footer { display:flex; justify-content:flex-end; gap:8px; margin-top:20px; }

.rd-file-preview { max-height:300px; overflow:auto; border-radius:10px; background:var(--surface-2,var(--cpd-color-bg-subtle-secondary,#f6f8fc)); }
.rd-file-preview > img { display:block; max-width:100%; max-height:280px; object-fit:contain; margin:auto; }
.rd-file-preview pre { white-space:pre-wrap; overflow-wrap:anywhere; padding:12px; font-size:12px; }
.rd-file-preview .rd-markdown { padding:12px; font-size:13px; }
.rd-file-preview__empty { display:flex; align-items:center; gap:12px; padding:16px; overflow-wrap:anywhere; color:var(--cpd-color-text-secondary,#8995ac); font-size:12px; }
.rd-disk__detail-actions { margin-top:12px; }

.rd-file-properties { display:grid; grid-template-columns:100px minmax(0,1fr); gap:10px 12px; margin:6px 0 0; font-size:12px; }
.rd-file-properties dt { color:var(--cpd-color-text-secondary,#8995ac); }
.rd-file-properties dd { margin:0; overflow-wrap:anywhere; }
.rd-file-details > details,.rd-file-details > .rd-versions,.rd-file-details > .rd-annotations,.rd-file-details > section[aria-label="Публичные ссылки объекта"],.rd-folder-details > section[aria-label="Публичные ссылки объекта"] { margin:14px 18px; padding:0; border:1px solid var(--rd-border); border-radius:16px; }
.rd-file-details > details { padding:11px 14px; }
.rd-file-details > details > summary { font-weight:600; cursor:pointer; }
.rd-disk__details button.rd-detail-toggle { display:flex; align-items:center; gap:8px; width:100%; border:0; padding:11px 14px; text-align:left; background:transparent; font:inherit; font-weight:600; }
.rd-detail-toggle::after { content:'›'; font-size:20px; line-height:16px; color:var(--cpd-color-text-secondary,#a7b0c4); }
.rd-detail-toggle[aria-expanded=true]::after { transform:rotate(90deg); }
.rd-detail-toggle + div:not([hidden]) { padding:0 14px 14px; }

.rd-disk__sidebar { padding:18px 14px; }
.rd-disk__sidebar > .rd-disk__navigation-scroll > button { min-height:39px; margin:0; padding:9px 12px; gap:11px; font-size:14.5px; line-height:1.4; }
.rd-folder-tree__toggle .rd-icon { width:12px; height:12px; }
.rd-folder-tree__toggle[aria-expanded=true] .rd-icon { transform:rotate(90deg); }
.rd-disk__storage > div > span { font-size:12px; font-weight:600; color:var(--cpd-color-text-secondary,#8995ac); }
.rd-disk__storage strong { font-size:12.5px; font-weight:600; }
.rd-disk__storage svg text { font-size:20px; font-weight:800; }

.rd-detail-section__body > section[aria-label="Публичные ссылки объекта"] { border:0; margin:0 0 14px; padding:0; }
.rd-detail-section__body > section[aria-label="Публичные ссылки объекта"] > h4 { font-size:11px; letter-spacing:.04em; text-transform:uppercase; color:var(--cpd-color-text-secondary,#8995ac); }

.rd-location-chip { display:inline-flex; align-items:center; gap:6px; max-width:100%; padding:2px 8px; border:1px solid var(--rd-border); border-radius:100px; background:var(--surface-2,var(--cpd-color-bg-subtle-secondary,#f6f8fc)); color:var(--cpd-color-text-secondary,#8995ac); font-size:12px; }
.rd-location-chip > .rd-icon { width:13px; height:13px; }
.rd-location-chip > span:last-child { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

.rd-owner-filter { border:0; padding:0; background:transparent; color:inherit; font:inherit; text-align:left; min-width:0; cursor:pointer; }
.rd-owner-filter[aria-pressed=true] { color:var(--rd-accent); }
.rd-filter-menu .rd-filter-owner { display:block; }
.rd-filter-owner select { width:100%; padding:8px; border:1px solid var(--rd-border); border-radius:8px; font:inherit; background:transparent; color:inherit; }

.rd-service-panel button.rd-billing-plan { width:100%; margin:0; padding:14px 14px 12px; border:1px solid var(--rd-border); border-radius:14px; color:inherit; text-align:left; font:inherit; display:flex; flex-direction:column; align-items:flex-start; gap:2px; background:var(--cpd-color-bg-canvas-default,#fff); }
.rd-billing-price { font-size:14.5px; font-weight:600; margin-top:4px; }
.rd-billing-plan small { font-size:12px; color:var(--cpd-color-text-secondary,#8995ac); }
.rd-billing-select { margin-top:10px; color:var(--rd-accent); font-size:13px; font-weight:600; }
html[data-rd-standalone] .rd-modal-layer { --cpd-color-bg-canvas-default:var(--surface); --cpd-color-bg-subtle-secondary:var(--surface-2); --cpd-color-text-primary:var(--ink); --cpd-color-text-secondary:var(--muted); --cpd-color-gray-400:var(--line2); --cpd-color-text-action-primary:var(--accent); --rd-border:var(--line); --rd-accent:var(--accent); }
.rd-service-panel button.rd-billing-plan:hover { border-color:var(--rd-accent); }

/* Original folder share stack: keep the same geometry in both hosts. */
.rd-folder-tile .rd-avatar-stack > * { width:32px; height:32px; flex:0 0 32px; border:2px solid var(--cpd-color-bg-canvas-default,#fff); box-shadow:0 1px 3px #141e3c33; }
.rd-folder-tile .rd-avatar-stack > * + * { margin-left:-8px; }

/* Space page: original segmented usage card and file rows. */
.rd-storage-card { background:var(--cpd-color-bg-canvas-default,#fff); border:1px solid var(--rd-border); border-radius:14px; padding:16px 18px; margin:0 0 14px; box-shadow:0 2px 5px #14203c12; }
.rd-storage-head { display:flex; align-items:baseline; gap:12px; margin-bottom:12px; }
.rd-storage-head > strong { font-size:19px; font-weight:700; }
.rd-storage-head > span { margin-left:auto; color:var(--cpd-color-text-secondary,#8995ac); font-size:13.5px; }
.rd-storage-head > span[data-low=true] { color:var(--warn,#d94c4c); font-weight:600; }
.rd-storage-bar { display:flex; height:10px; border-radius:99px; overflow:hidden; background:var(--rd-track,#edf0f9); }
.rd-storage-bar > i { display:block; height:100%; }
.rd-storage-bar > i + i { box-shadow:inset 1px 0 0 var(--cpd-color-bg-canvas-default,#fff); }
.rd-storage-legend { display:flex; flex-wrap:wrap; gap:6px 20px; margin:12px 0 0; }
.rd-storage-legend > div { display:inline-flex; align-items:center; gap:7px; font-size:13px; }
.rd-storage-legend i { width:9px; height:9px; border-radius:3px; flex:none; }
.rd-storage-legend dt { color:var(--cpd-color-text-secondary,#8995ac); }
.rd-storage-legend dd { margin:0; font-weight:600; font-variant-numeric:tabular-nums; }
.rd-storage-hints { display:flex; flex-direction:column; gap:8px; margin-bottom:16px; }
.rd-storage-hints > div { display:flex; align-items:center; gap:10px; padding:12px 14px; border:1px solid var(--rd-border); border-radius:12px; font-size:13.5px; background:var(--cpd-color-bg-canvas-default,#fff); }
.rd-storage-hints .rd-icon { flex:none; color:var(--cpd-color-text-secondary,#8995ac); }
.rd-storage-hints button { margin-left:auto; flex:none; }
.rd-storage-files { overflow:auto; }
.rd-storage-file,.rd-storage-file-head { display:grid; grid-template-columns:minmax(0,2.4fr) minmax(0,1fr) 110px 110px 110px; gap:12px; align-items:center; padding:10px 14px; min-width:650px; }
.rd-storage-file { border:1px solid var(--rd-border); border-radius:14px; margin:6px 0; background:var(--cpd-color-bg-canvas-default,#fff); box-shadow:0 2px 5px #14203c12; }
.rd-storage-file > div { display:flex; align-items:center; gap:12px; min-width:0; }
.rd-storage-file .rd-file-icon { flex:none; }
.rd-service-panel .rd-storage-file button { border:0; background:transparent; font:inherit; font-weight:600; padding:0; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; text-align:left; }
.rd-storage-file-head { text-transform:uppercase; color:var(--cpd-color-text-secondary,#8995ac); font-size:11px; font-weight:700; }
.rd-storage-file > :nth-child(n+3),.rd-storage-file-head > :nth-child(n+3) { text-align:right; font-variant-numeric:tabular-nums; }
.rd-storage-file > span { color:var(--cpd-color-text-secondary,#8995ac); font-size:13px; }
.rd-storage-folder { display:inline-flex; min-width:0; align-items:center; gap:6px; border:1px solid var(--rd-border); border-radius:20px; padding:4px 8px; font-size:12px; }
.rd-storage-folder > span { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.rd-billing-description { font-size:13px; margin:6px 0 0; color:var(--cpd-color-text-secondary,#8995ac); }
.rd-billing-usage { margin-top:10px; }
.rd-billing-usage p { margin:0 0 6px; font-size:13px; }
.rd-billing-usage p > span { color:var(--cpd-color-text-secondary,#8995ac); }
.rd-billing-bar { height:6px; border-radius:99px; overflow:hidden; background:var(--rd-border); }
.rd-billing-bar i { display:block; height:100%; border-radius:inherit; background:var(--rd-accent); }
.rd-billing-bar[data-low=true] i { background:var(--warn,#d94c4c); }
@media(max-width:700px) { .rd-storage-head { flex-wrap:wrap; } .rd-storage-head > span { margin-left:0; } .rd-storage-hints > div { flex-wrap:wrap; } }

.rd-standalone-shell [hidden] { display:none !important; }
.rd-standalone-workspace-title { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:14px; }
.rd-standalone-shell .rd-service-workspace[data-service=space] { position:relative; }
.rd-standalone-shell .rd-service-workspace[data-service=space] > header { position:static; height:60px; min-height:60px; padding:0 26px; border:0; background:transparent; }
.rd-standalone-shell .rd-service-workspace[data-service=space] > header > button { display:none; }
.rd-standalone-shell .rd-service-workspace[data-service=space] > header > strong { color:var(--muted,#8995ac); font-size:13.5px; font-weight:400; }
.rd-standalone-shell .rd-storage-page { max-width:none; padding:0 26px 22px; }
.rd-standalone-shell .rd-storage-page > header { position:absolute; top:10px; right:26px; }
.rd-standalone-shell .rd-storage-page > header h2 { display:none; }

.rd-billing-modal { align-items:flex-start; padding-top:34px; font-size:14.5px; line-height:1.5; }
.rd-billing-modal .rd-modal { display:flex; flex-direction:column; padding:0; overflow:hidden; }
.rd-billing-modal .rd-modal > header { flex:none; padding:18px 20px; margin:0; border-bottom:1px solid var(--rd-border); }
.rd-billing-modal .rd-modal > header h2 { font-size:16px; }
.rd-billing-modal .rd-modal > header button { border:0; padding:4px; color:var(--muted,#8995ac); }
.rd-billing-modal .rd-billing { min-height:0; overflow:auto; padding:18px 20px 24px; width:100%; }
.rd-billing-modal .rd-billing > header { display:none; }
.rd-billing-modal .rd-billing-current { background:var(--surface-2,#f6f8fc); }
.rd-billing-modal .rd-billing > h3,.rd-billing-modal .rd-billing > section > h3 { margin:16px 0 8px; font-size:12px; text-transform:uppercase; letter-spacing:.07em; color:var(--muted,#8995ac); }
.rd-billing-modal .rd-billing > section { padding:0; border:0; }
.rd-billing-modal .rd-billing > p { color:var(--muted,#8995ac); font-size:13px; }
.rd-billing-footer { flex:none; display:flex; justify-content:flex-end; padding:12px 20px 16px; box-shadow:0 -4px 12px #14203c0a; }
.rd-admin-summary small { display:block; margin-top:6px; font-size:12px; line-height:1.45; color:var(--cpd-color-text-secondary,#8995ac); }
.rd-admin-overview .rd-service-facts,.rd-admin-dependencies { padding:16px 18px; background:var(--cpd-color-bg-canvas-default,#fff); border:1px solid var(--rd-border); border-radius:14px; }
.rd-admin-overview .rd-service-facts { grid-template-columns:minmax(120px,1fr) minmax(0,2fr); gap:12px; }
.rd-admin-overview .rd-service-facts dd { min-width:0; overflow-wrap:anywhere; }
.rd-admin-dependency { display:flex; align-items:center; gap:12px; padding:12px 0; }
.rd-admin-dependency + .rd-admin-dependency { border-top:1px solid var(--rd-border); }
.rd-admin-dependency > i { flex:none; width:9px; height:9px; border-radius:50%; background:var(--muted,#8995ac); }
.rd-admin-dependency > i[data-state=ok] { background:#22a06b; }
.rd-admin-dependency > i[data-state=fail] { background:#d94c4c; }
.rd-admin-dependency > div { flex:1; min-width:0; }
.rd-admin-dependency p { margin:4px 0 0; color:var(--cpd-color-text-secondary,#8995ac); font-size:12.5px; overflow-wrap:anywhere; }
.rd-admin-dependency > span { font-size:12.5px; white-space:nowrap; }
.rd-admin-dependency > span[data-state=ok] { color:#16845a; }
.rd-admin-dependency > span[data-state=fail] { color:#d94c4c; }
.rd-admin-dependency > small { color:var(--cpd-color-text-secondary,#8995ac); font-variant-numeric:tabular-nums; }
.rd-admin-warning { border-radius:12px; padding:12px 14px; background:var(--surface-2,#f6f8fc); }

.rd-admin-warning { display:flex; align-items:flex-start; gap:10px; }
.rd-admin-warning .rd-icon { flex:none; }
.rd-admin-warning small { display:block; margin-top:4px; font:12px monospace; color:var(--cpd-color-text-secondary,#8995ac); overflow-wrap:anywhere; }
.rd-admin-ok .rd-icon { color:#16845a; }

.rd-standalone-shell .rd-service-workspace[data-service^=admin] { position:relative; }
.rd-standalone-shell .rd-service-workspace[data-service^=admin] > header { position:static; height:76px; min-height:76px; padding:0 26px; border:0; background:transparent; }
.rd-standalone-shell .rd-service-workspace[data-service^=admin] > header > button { display:none; }
.rd-standalone-shell .rd-service-workspace[data-service^=admin] > header > strong { font-size:18px; }
.rd-standalone-shell .rd-service-workspace[data-service^=admin] > .rd-service-panel { max-width:none; padding:0 26px 22px; }
.rd-standalone-shell .rd-service-workspace[data-service^=admin] > .rd-service-panel > header { position:absolute; top:18px; right:26px; }
.rd-standalone-shell .rd-service-workspace[data-service^=admin] > .rd-service-panel > header h2 { display:none; }
.rd-admin-overview .rd-admin-summary { margin-top:0; }
.rd-admin-overview .rd-service-facts { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:20px; padding:4px 16px; box-shadow:0 2px 5px #14203c12; }
.rd-admin-overview .rd-service-facts > div { display:flex; align-items:center; gap:12px; padding:10px 0; min-width:0; border-bottom:1px solid var(--rd-border); font-size:13px; }
.rd-admin-overview .rd-service-facts dt { color:var(--cpd-color-text-secondary,#8995ac); flex:none; }
.rd-admin-overview .rd-service-facts dd { margin:0 0 0 auto; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rd-admin-dependencies { padding:4px 16px; box-shadow:0 2px 5px #14203c12; }
.rd-admin-dependency > small { min-width:60px; text-align:right; }
.rd-admin-dependency > span[data-state=off] { color:var(--cpd-color-text-secondary,#8995ac); }
.rd-admin-overview .rd-admin-warning { padding:14px 16px; border:1px solid var(--rd-border); background:var(--cpd-color-bg-canvas-default,#fff); box-shadow:0 2px 5px #14203c12; }
.rd-template-runtime .rd-modal .trw-compare-controls { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:16px; }
.rd-template-runtime .rd-modal .trw-compare-controls > label { margin:0; }
.rd-template-runtime .rd-modal .trw-history-empty { margin:18px 0 0; color:var(--muted); font-size:13px; }
@media(max-width:640px) { .rd-template-runtime .rd-modal .trw-compare-controls { grid-template-columns:1fr; } }

.rd-support-modal { align-items:flex-start; padding-top:34px; }
.rd-support-modal .rd-modal { width:min(560px,100%); padding:0; display:flex; flex-direction:column; overflow:hidden; }
.rd-support-modal .rd-modal > header { flex:none; padding:18px 20px; margin:0; border-bottom:1px solid var(--rd-border); }
.rd-support-modal .rd-modal > header h2 { font-size:16px; }
.rd-support-modal .rd-support { overflow:auto; min-height:0; padding:18px 20px; width:100%; }
.rd-support-modal .rd-support > h2 { display:none; }
.rd-support-modal form > p { font-size:13px; color:var(--muted,#8995ac); }
.rd-support-modal label { display:flex; flex-direction:column; align-items:stretch; gap:6px; font-size:13px; margin:14px 0; }
.rd-support-modal label:has(input[type=checkbox]) { flex-direction:row; align-items:flex-start; }
.rd-support-modal input:not([type=checkbox]),.rd-support-modal textarea { width:100%; min-width:0; padding:10px 12px; border:1px solid var(--rd-border); border-radius:10px; background:var(--surface,#fff); color:inherit; }
.rd-support-modal textarea { resize:vertical; min-height:120px; }
.rd-support-kinds { display:flex; flex-wrap:wrap; gap:8px; margin:14px 0; }
.rd-support-kinds button { margin:0; border-radius:100px; padding:6px 13px; font-size:13px; font-weight:600; }
.rd-support-kinds button[aria-pressed=true],.rd-support-modal button[type=submit] { background:var(--accent,#4c6fff); color:#fff; border-color:var(--accent,#4c6fff); }
.rd-support-modal form > section p { margin:6px 0 12px; font-size:12px; color:var(--muted,#8995ac); }

/* Administrative people retain the original quota card, compact rows and right drawer. */
.rd-people-default { display:flex; align-items:center; gap:16px; padding:16px; margin:0 0 16px; background:var(--surface,#fff); border:1px solid var(--rd-border); border-radius:14px; box-shadow:0 2px 5px #14203c12; }
.rd-people-default > div { flex:1; min-width:0; }
.rd-people-default small { display:block; margin-top:5px; color:var(--muted,#8995ac); font-size:12px; line-height:1.45; }
.rd-people-filters { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.rd-service-panel .rd-people-filters label { display:flex; flex:1 1 240px; margin:0; gap:8px; padding:0 12px; border:1px solid var(--rd-border); border-radius:9px; background:var(--surface,#fff); }
.rd-people-filters label > .rd-icon { color:var(--muted,#8995ac); flex:none; }
.rd-service-panel .rd-people-filters input { width:100%; min-width:0; border:0; padding:10px 0; background:transparent; }
.rd-people-filters > div { display:flex; padding:3px; border-radius:10px; background:var(--surface-2,#f6f8fc); }
.rd-people-filters > div button { border:0; margin:0; font-size:12px; font-weight:600; color:var(--muted,#8995ac); }
.rd-people-filters > div button[aria-pressed=true] { background:var(--surface,#fff); color:var(--rd-accent); box-shadow:0 2px 5px #14203c12; }
.rd-people-table-wrap { overflow:auto; border:1px solid var(--rd-border); border-radius:12px; box-shadow:0 2px 5px #14203c12; }
.rd-admin-people .rd-people-table { border:0; border-radius:0; min-width:660px; font-size:13px; }
.rd-people-table th { text-transform:uppercase; letter-spacing:.03em; font-weight:600; }
.rd-people-table td { vertical-align:middle; font-variant-numeric:tabular-nums; }
.rd-people-table td:first-child { width:34%; }
.rd-people-table td:nth-child(2) { min-width:110px; }
.rd-people-table tr:last-child td { border-bottom:0; }
.rd-people-table tr[data-disabled=true] { opacity:.62; }
.rd-people-table .rd-people-identity { display:flex; align-items:center; gap:10px; border:0; padding:0; margin:0; text-align:left; max-width:100%; }
.rd-people-identity > span:last-child { display:grid; min-width:0; }
.rd-people-identity strong,.rd-people-identity small { overflow-wrap:anywhere; }
.rd-people-identity small { color:var(--muted,#8995ac); font-size:12px; margin-top:4px; }
.rd-people-usage { display:block; height:5px; margin-top:7px; border-radius:99px; background:var(--track,#eef0f7); overflow:hidden; }
.rd-people-usage i { display:block; height:100%; background:var(--rd-accent); }
.rd-people-usage i[data-over=true] { background:#e59a37; }
.rd-people-badge { display:inline-block; font-size:11px; padding:2px 6px; border:1px solid var(--rd-border); border-radius:20px; color:var(--muted,#8995ac); background:var(--surface-2,#f6f8fc); }
.rd-people-badge[data-warning] { color:var(--cpd-color-text-critical-primary,#bc3545); }
.rd-person-drawer { position:fixed; inset:60px 0 0 auto; width:min(440px,100vw); z-index:8; background:var(--surface,#fff); border-left:1px solid var(--rd-border); box-shadow:-8px 0 24px #14203c12; overflow:auto; outline:none; }
.rd-person-drawer > header { display:flex; flex-wrap:nowrap; align-items:center; gap:12px; padding:20px; border-bottom:1px solid var(--rd-border); }
.rd-person-drawer > header > div { flex:1; min-width:0; }
.rd-person-drawer h2 { font-size:18px; margin:0 0 5px; overflow-wrap:anywhere; }
.rd-person-drawer small { color:var(--muted,#8995ac); overflow-wrap:anywhere; }
.rd-person-drawer__body { padding:20px; }
.rd-person-drawer__body h3 { margin-top:24px; }
.rd-service-panel.rd-admin-settings > .rd-settings-readonly,.rd-service-panel.rd-admin-settings > .rd-settings-operation { padding:16px; margin:16px 0; background:var(--surface,#fff); border:1px solid var(--rd-border); border-radius:14px; box-shadow:0 2px 5px #14203c12; }
.rd-settings-readonly h3,.rd-settings-operation h3 { margin-top:0; }
.rd-settings-readonly__row { display:grid; gap:5px; padding:12px 0; border-top:1px solid var(--rd-border); overflow-wrap:anywhere; }
.rd-settings-readonly__row > span { color:var(--rd-accent); }
.rd-settings-readonly__row > small { color:var(--muted,#8995ac); font-size:12px; line-height:1.5; }
.rd-service-panel > header > button { display:inline-flex; gap:7px; align-items:center; background:var(--surface,#fff); }
@media(min-width:1300px) { .rd-admin-people[data-person-open=true] { margin-right:440px; } }
@media(max-width:700px) { .rd-admin-dependency { flex-wrap:wrap; } .rd-admin-dependency > div { flex-basis:70%; } .rd-setting-card__top h3 { flex-basis:100%; } .rd-service-panel { padding:16px; } .rd-people-default { align-items:flex-start; flex-wrap:wrap; } }
.rd-admin-devices .rd-device-list { overflow:auto; background:var(--surface,#fff); border:1px solid var(--rd-border); border-radius:12px; box-shadow:0 2px 5px #14203c12; }
.rd-admin-devices .rd-device-list__head,.rd-admin-devices .rd-device-card { display:grid; grid-template-columns:minmax(130px,1.2fr) minmax(150px,1.4fr) 80px 100px 150px 155px; gap:10px; align-items:center; min-width:840px; padding:10px 14px; }
.rd-device-list__head { color:var(--muted,#8995ac); background:var(--surface-2,#f6f8fc); font-size:12px; text-transform:uppercase; letter-spacing:.03em; }
.rd-admin-devices .rd-device-card { margin:0; border:0; border-radius:0; border-top:1px solid var(--rd-border); box-shadow:none; font-size:13px; }
.rd-admin-devices .rd-device-card > header { grid-column:2; grid-row:1; display:block; padding:0; }
.rd-admin-devices .rd-device-card h3 { font-size:13px; margin:0 0 5px; overflow-wrap:anywhere; }
.rd-admin-devices .rd-device-card > header .rd-device-platform,.rd-admin-devices .rd-device-card > header > div > span { display:none; }
.rd-admin-devices .rd-device-owner { grid-column:1; grid-row:1; overflow-wrap:anywhere; }
.rd-admin-devices .rd-device-os { grid-column:3; grid-row:1; }
.rd-admin-devices .rd-device-version { grid-column:4; grid-row:1; overflow-wrap:anywhere; }
.rd-admin-devices .rd-device-seen { grid-column:5; grid-row:1; color:var(--muted,#8995ac); }
.rd-admin-devices .rd-device-card > button { grid-column:6; grid-row:1; }
.rd-admin-devices .rd-device-card > details { grid-column:1/-1; margin:0; }
.rd-admin-devices .rd-device-card > p:not([class]) { grid-column:1/-1; }
.rd-admin-summary { grid-template-columns:repeat(4,minmax(0,1fr)); }
@media(max-width:1100px) { .rd-admin-summary { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .rd-admin-summary { grid-template-columns:1fr; } }
.rd-audit-table-wrap { overflow:auto; border:1px solid var(--rd-border); border-radius:12px; background:var(--surface,#fff); box-shadow:0 2px 5px #14203c12; }
.rd-admin-audit .rd-audit-table-wrap table { border:0; min-width:640px; font-size:13px; }
.rd-admin-audit .rd-service-filters { padding:16px; margin-bottom:16px; border:1px solid var(--rd-border); border-radius:14px; background:var(--surface,#fff); }
.rd-admin-audit .rd-service-filters label { display:grid; flex:1 1 160px; gap:6px; min-width:0; margin:0; font-size:12px; color:var(--muted,#8995ac); }
.rd-admin-audit .rd-service-filters input,.rd-admin-audit .rd-service-filters select { min-width:0; width:100%; box-sizing:border-box; color:var(--ink,#26334c); }
@media(max-width:1180px) {
 .rd-admin-devices .rd-device-list__head,.rd-admin-devices .rd-device-card { min-width:0; grid-template-columns:minmax(80px,1fr) minmax(105px,1.2fr) 65px 90px 115px; }
 .rd-admin-devices .rd-device-list__head > span:nth-child(5),.rd-admin-devices .rd-device-seen { display:none; }
 .rd-admin-devices .rd-device-card > button { grid-column:5; }
}
@media(max-width:850px) {
 .rd-admin-devices .rd-device-list__head,.rd-admin-devices .rd-device-card { grid-template-columns:minmax(75px,1fr) minmax(100px,1.2fr) 105px; }
 .rd-admin-devices .rd-device-list__head > span:nth-child(3),.rd-admin-devices .rd-device-list__head > span:nth-child(4),.rd-admin-devices .rd-device-os,.rd-admin-devices .rd-device-version { display:none; }
 .rd-admin-devices .rd-device-card > button { grid-column:3; }
 .rd-standalone-shell .rd-service-workspace[data-service^=admin] > .rd-service-panel > header { position:static; justify-content:flex-end; margin-bottom:14px; }
}
.rd-standalone-shell { min-width:0; grid-template-columns:minmax(0,1fr); }
.rd-standalone-shell > header { min-width:0; }
.rd-standalone-shell > header > .rd-brand { flex:none; }
.rd-disk__header > strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rd-toolbar-items { display:flex; align-items:center; gap:8px; }
.rd-toolbar-items[hidden] { display:none; }
.rd-disk__toolbar[data-compact=true] { position:relative; }
.rd-toolbar-toggle { min-width:36px; min-height:36px; font-size:20px; line-height:1; }
.rd-disk__toolbar[data-compact=true] > .rd-toolbar-items { position:absolute; right:0; top:calc(100% + 8px); z-index:45; width:max-content; max-width:calc(100vw - 32px); flex-wrap:wrap; padding:12px; border:1px solid var(--rd-border); border-radius:12px; background:var(--surface,#fff); box-shadow:0 8px 24px #14203c26; }
@media(max-width:850px) { .rd-standalone-shell > header { gap:8px; padding:0 12px; } .rd-standalone-search { flex:0 1 150px; min-width:90px; } .rd-standalone-workspace-title { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; } }
.rd-person-facts { display:grid; gap:12px; }
.rd-person-facts > div { display:flex; justify-content:space-between; gap:14px; }
.rd-person-facts dt { color:var(--muted,#8995ac); flex:none; }
.rd-person-facts dd { margin:0; text-align:right; overflow-wrap:anywhere; min-width:0; }
.rd-person-counts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; padding:18px 0; border-top:1px solid var(--rd-border); border-bottom:1px solid var(--rd-border); }
.rd-person-counts > div { background:var(--surface-2,#f6f8fc); border-radius:10px; padding:10px; }
.rd-person-counts dd { margin:0; font-size:18px; font-weight:700; }
.rd-person-counts dt { margin-top:5px; font-size:11px; color:var(--muted,#8995ac); }
.rd-person-device { display:flex; gap:10px; padding:10px 0; }
.rd-person-device small { display:block; margin-top:4px; }
.rd-disk__toolbar[data-compact=true] .rd-sort__menu { left:0; right:auto; }
/* Shared folder destination field: one selected path, one expandable list. */
.rd-folder-picker { min-width:0; width:100%; margin:12px 0; }
.rd-folder-picker__label { display:block; font-size:13px; font-weight:600; margin-bottom:7px; }
.rd-modal .rd-folder-picker__selected,.rd-folder-picker__selected { display:flex; align-items:center; gap:10px; width:100%; min-width:0; margin:0; text-align:left; padding:10px 12px; background:var(--surface,#fff); border:1px solid var(--rd-border,var(--line,#dce1ed)); border-radius:10px; color:inherit; }
.rd-folder-picker__selected > span:nth-child(2) { flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rd-folder-picker__body { margin-top:6px; padding:10px; border:1px solid var(--rd-border,var(--line,#dce1ed)); border-radius:10px; background:var(--surface,#fff); }
.rd-template-runtime.rd-modal-layer .rd-folder-picker__search,.rd-modal .rd-folder-picker__search { display:flex; flex-direction:row; align-items:center; gap:8px; margin:0 0 8px; }
.rd-folder-picker__search > input { width:100%; min-width:0; }
.rd-folder-picker__list { max-height:220px; overflow:auto; }
.rd-modal .rd-folder-picker__list > button { display:flex; align-items:center; gap:9px; width:100%; margin:0; border:0; text-align:left; padding:9px; background:transparent; }
.rd-folder-picker__list > button > span:nth-child(2) { flex:1; min-width:0; overflow-wrap:anywhere; }
.rd-modal .rd-folder-picker__list > button[aria-selected=true] { background:var(--rd-accent-soft,#eaeeff); color:var(--rd-accent,var(--accent,#4c6fff)); }
.rd-folder-picker__new { display:inline-flex; gap:7px; align-items:center; margin-top:8px; }
.rd-folder-picker__create { display:grid; gap:8px; margin-top:10px; }
.rd-folder-picker__create small,.rd-template-draft-note { color:var(--muted,#8995ac); font-size:12px; }
.rd-template-runtime.rd-template-create .rd-modal,.rd-template-runtime.rd-template-create .rdt-create-form { min-width:0; box-sizing:border-box; max-width:100%; }
.rd-template-runtime.rd-template-create .rdt-create-form { width:100%; }
.rd-template-runtime.rd-template-create .rd-modal { max-height:calc(100dvh - 40px); overflow-y:auto; overflow-x:hidden; }
.rd-template-runtime.rd-template-create :is(input,textarea,select,fieldset,section,div) { min-width:0; box-sizing:border-box; }
.rd-template-runtime.rd-template-create :is(input:not([type=checkbox]),textarea,select) { max-width:100%; width:100%; }
.rd-template-runtime.rd-modal-layer .rd-modal .tf-group { border:1px solid var(--rd-border,var(--line,#dce1ed)); border-radius:12px; padding:16px; margin:20px 0; background:var(--surface-2,#f6f8fc); min-width:0; }
.rd-template-fields .tf-group > legend { padding:0 8px; color:var(--rd-accent,var(--accent,#4c6fff)); font-size:13px; font-weight:700; }
.rd-template-fields .tf-field { padding:0; margin:0 0 20px; }
.rd-template-fields .tf-label { font-size:14px; line-height:1.4; margin:0 0 8px; }
.rd-template-fields .tf-hint { font-size:12px; line-height:1.5; margin:5px 0; color:var(--muted,#8995ac); }
.rd-template-fields textarea { display:block; resize:vertical; min-height:90px; }
.rd-template-create .rdt-create-form > footer { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; width:100%; box-sizing:border-box; }
.tf-example { margin:10px 0; padding:10px 12px; border-radius:9px; background:var(--rd-accent-soft,#eaeeff); font-size:12px; }
.tf-example summary { color:var(--rd-accent,var(--accent,#4c6fff)); cursor:pointer; font-weight:600; }
.tf-example p { line-height:1.5; margin:8px 0; }
.tf-example small { color:var(--muted,#8995ac); }
.rd-template-runtime.rd-modal-layer .rd-modal .rd-folder-picker__selected { display:flex; width:100%; border:1px solid var(--rd-border,var(--line,#dce1ed)); border-radius:10px; padding:10px 12px; background:var(--surface,#fff); color:var(--ink,#26334c); }
.rd-template-runtime.rd-modal-layer .rd-modal .rd-folder-picker__selected:hover { border-color:var(--rd-accent,var(--accent,#4c6fff)); }
.rd-template-runtime.rd-modal-layer .rd-template-fields textarea,.rd-template-runtime.rd-modal-layer .rd-template-fields input { font:inherit; color:inherit; background:var(--surface,#fff); }
.rd-file-picker { min-width:0; }
.rd-file-picker__scope { display:flex; gap:4px; background:var(--surface-2,#f6f8fc); border-radius:10px; padding:4px; }
.rd-template-runtime.rd-modal-layer .rd-modal .rd-file-picker__scope > button { flex:1; margin:0; padding:9px; background:transparent; color:var(--muted,#8995ac); border:0; border-radius:8px; }
.rd-template-runtime.rd-modal-layer .rd-modal .rd-file-picker__scope > button[aria-pressed=true] { color:var(--accent,#4c6fff); background:var(--surface,#fff); box-shadow:0 2px 5px #14203c12; }
.rd-template-runtime .rd-modal .template-validation-form .rd-file-picker__search { display:flex; flex-direction:row; align-items:center; gap:8px; padding:0 10px; margin:12px 0; border:1px solid var(--line,#dce1ed); border-radius:10px; background:var(--surface,#fff); }
.rd-template-runtime .rd-modal .rd-file-picker__search input { flex:1; min-width:0; width:100%; border:0; background:transparent; padding:11px 0; }
.rd-file-picker__search > .rd-icon { flex:none; color:var(--muted,#8995ac); }
.rd-template-runtime.rd-modal-layer .rd-modal .rd-file-picker__search > button { padding:4px; border:0; background:transparent; color:var(--muted,#8995ac); }
.rd-template-runtime .rd-modal .template-validation-form .rd-file-picker__content { display:flex; flex-direction:row; align-items:center; gap:8px; font-size:12px; margin:8px 0; }
.rd-file-picker__count { font-size:12px; color:var(--muted,#8995ac); margin:10px 0; }
.rd-file-picker__results { max-height:300px; overflow:auto; border:1px solid var(--line,#dce1ed); border-radius:12px; background:var(--surface,#fff); }
.rd-template-runtime.rd-modal-layer .rd-modal .rd-file-picker__results > button { display:flex; align-items:center; gap:12px; padding:12px; margin:0; width:100%; text-align:left; border:0; border-bottom:1px solid var(--line,#dce1ed); border-radius:0; background:transparent; color:inherit; }
.rd-template-runtime.rd-modal-layer .rd-modal .rd-file-picker__results > button:last-child { border-bottom:0; }
.rd-template-runtime.rd-modal-layer .rd-modal .rd-file-picker__results > button[aria-selected=true] { background:var(--accent-soft,#eaeeff); box-shadow:inset 3px 0 var(--accent,#4c6fff); }
.rd-file-picker__info { flex:1; min-width:0; display:grid; gap:5px; }
.rd-file-picker__info strong { font-size:13px; overflow-wrap:anywhere; font-weight:600; }
.rd-file-picker__info small { font-size:11px; color:var(--muted,#8995ac); overflow-wrap:anywhere; }
.rd-file-picker__info mark { background:#ffec9f; color:#26334c; border-radius:2px; }
.rd-file-picker__results .rd-file-icon { flex:none; width:34px; height:38px; font-size:10px; }
.rd-template-validation.is-picking .rd-modal { width:min(820px,100%); }
.rd-template-validation.is-picking .template-validation-form { grid-template-columns:minmax(0,1fr); }
.rd-template-validation .template-validation-side { min-width:0; }
/* Validation dialog has one scrolling body; its header and actions remain visible. */
.rd-template-runtime.rd-template-validation .rd-modal { display:flex; flex-direction:column; max-height:calc(100dvh - 48px); min-height:0; overflow:hidden; }
.rd-template-runtime.rd-template-validation .rd-modal > header { flex:none; margin-bottom:16px; }
.rd-template-runtime.rd-template-validation .template-validation-form { flex:1 1 auto; min-height:0; max-height:none; overflow:auto; padding:4px; margin:0 -4px; overscroll-behavior:contain; }
.rd-template-runtime.rd-template-validation .rd-modal > footer { flex:none; flex-wrap:wrap; gap:10px; margin-top:16px; padding-top:16px; }
.rd-template-validation .rd-file-picker__results { max-height:clamp(160px,30dvh,280px); scrollbar-gutter:stable; }
.rd-template-runtime.rd-modal-layer .rd-modal button.rd-file-picker__more { display:block; margin:10px auto 0; padding:8px 14px; color:var(--accent,#4c6fff); background:var(--surface-2,#f6f8fc); border:1px solid var(--line,#dce1ed); }
.rd-template-runtime.rd-modal-layer .rd-modal button.rd-validation-upload { display:inline-flex; margin:14px 0 4px; padding:9px 14px; background:var(--surface,#fff); color:var(--ink,#26334c); border:1px solid var(--line,#dce1ed); }
@media(max-height:650px) { .rd-template-runtime.rd-template-validation .rd-modal { padding:16px; } .rd-template-runtime.rd-template-validation .rd-modal > header { margin-bottom:10px; } .rd-template-runtime.rd-template-validation .rd-modal > footer { margin-top:10px; padding-top:10px; } }
.rd-file-picker__results[hidden],.rd-file-picker__count[hidden] { display:none!important; }
.rd-file-picker__settings { margin:8px 0 14px; font-size:12px; color:var(--muted,#8995ac); }
.rd-file-picker__settings > summary { cursor:pointer; padding:6px 0; }
.rd-file-picker__settings[open] { padding:10px 12px; border:1px solid var(--line,#dce1ed); border-radius:10px; }
.rd-file-picker__hint { padding:20px 12px; text-align:center; font-size:13px; color:var(--muted,#8995ac); }
.rd-template-validation.is-picking .rd-modal { width:min(720px,100%); }
.rd-template-runtime.rd-template-validation [hidden] { display:none!important; }
.rd-template-runtime.rd-template-validation .rd-modal > footer > button:not(:last-child) { background:var(--surface,#fff); color:var(--ink,#26334c); border:1px solid var(--line,#dce1ed); }
.rd-template-runtime.rd-modal-layer .rd-modal .rd-file-picker__search input:focus-visible { outline:none; box-shadow:none; }
.rd-template-runtime .rd-modal .template-validation-form .rd-file-picker__search:focus-within { outline:2px solid var(--accent,#4c6fff); outline-offset:1px; }
.rd-file-picker__search input::-webkit-search-cancel-button,.rd-file-picker__search input::-webkit-search-decoration { -webkit-appearance:none; }
.rd-template-runtime.rd-template-validation .rd-modal { width:min(860px,100%); height:min(700px,calc(100dvh - 48px)); }
.rd-file-picker__search-row { display:flex; align-items:center; gap:10px; min-width:0; }
.rd-file-picker__search-row > .rd-file-picker__search { flex:1; min-width:0; }
.rd-template-runtime.rd-modal-layer .rd-modal button.rd-validation-upload { display:inline-flex; align-items:center; justify-content:center; gap:8px; flex:none; margin:0; min-height:42px; }
.rd-template-runtime.rd-modal-layer .rd-modal .rd-folder-picker__search { display:flex; flex-direction:row; align-items:center; gap:8px; margin:0 0 8px; }
.rd-template-runtime.rd-modal-layer .rd-modal .rd-folder-picker__search input { flex:1; min-width:0; width:100%; }
.rd-template-runtime.rd-modal-layer .rd-modal .rd-folder-picker__list > button { color:var(--ink,#26334c); background:transparent; }
.rd-template-runtime.rd-modal-layer .rd-modal .rd-folder-picker__list > button[aria-selected=true] { color:var(--accent,#4c6fff); background:var(--accent-soft,#eaeeff); }
.rd-template-runtime.rd-modal-layer .rd-modal .rd-folder-picker__list > button:hover { background:var(--surface-2,#f6f8fc); }
/* Disk owns its accent and selected rows; host action-text tokens may be neutral black. */
.rd-ui[data-mode=stalk] { --rd-accent:#4c6fff; --rd-accent-soft:#eaeeff; }
.rd-disk[data-mode=stalk] .rd-disk__sidebar button[aria-current=page] { --rd-accent:#4c6fff; background:#4c6fff; color:#fff; box-shadow:0 5px 12px #4c6fff33; }
.rd-disk[data-mode=stalk] .rd-disk__sidebar button[aria-current=page] .rd-icon { color:#fff; }
.rd-history__filters { align-items:center; gap:8px; margin-bottom:16px; font-size:13px; }
.rd-history__filters label { display:flex; align-items:center; gap:6px; color:var(--cpd-color-text-secondary,#8995ac); }
.rd-history__filters :is(input,select,button) { min-height:34px; padding:7px 10px; border-radius:10px; font-size:13px; }
.rd-history__filters input[type=date] { width:155px; min-width:0; }
.rd-history__filters button { display:inline-flex; align-items:center; gap:7px; }
.rd-history__group { margin-top:16px; }
.rd-history__group > h2 { display:flex; align-items:center; gap:8px; margin:0 0 8px; font-size:15px; line-height:1.4; font-weight:600; }
.rd-history__group > h2 > span { color:var(--cpd-color-text-secondary,#8995ac); font-size:12px; font-weight:400; }
.rd-history__rows { border:1px solid var(--rd-border); border-radius:14px; overflow:hidden; background:var(--cpd-color-bg-canvas-default,#fff); }
.rd-history__rows .rd-history__item { display:grid; grid-template-columns:46px minmax(0,1fr) 28px 132px; gap:12px; align-items:center; padding:10px 14px; margin:0; border-radius:0; font-size:13px; }
.rd-history__item + .rd-history__item { border-top:1px solid var(--rd-border); }
.rd-history__item time { margin:0; font-size:12px; font-variant-numeric:tabular-nums; }
.rd-history__message { display:flex; align-items:center; flex-wrap:wrap; gap:5px; min-width:0; }
.rd-history__message .rd-person-name { font-weight:600; }
.rd-history button.rd-history__object { margin:0; padding:0; min-width:0; border:0; border-radius:0; color:var(--rd-accent); background:transparent; text-align:left; overflow-wrap:anywhere; font:inherit; }
.rd-history button.rd-history__object:hover { text-decoration:underline; }
.rd-history button.rd-history__narrow { display:flex; align-items:center; justify-content:center; padding:5px; width:28px; height:28px; border:0; background:transparent; opacity:.55; }
.rd-history__item:hover .rd-history__narrow,.rd-history__narrow:focus-visible { opacity:1; }
.rd-history__source { text-align:right; color:var(--cpd-color-text-secondary,#8995ac); font-size:12px; }
.rd-history__result { color:var(--cpd-color-text-critical-primary,#bc3545); font-size:12px; }
@media(max-width:900px) { .rd-history__rows .rd-history__item { grid-template-columns:42px minmax(0,1fr) 28px; } .rd-history__source { grid-column:2; text-align:left; } }
.rd-empty-state { display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; min-height:290px; padding:32px 24px; margin:12px 0; border:1px dashed var(--rd-border); border-radius:20px; background:var(--cpd-color-bg-canvas-default,#fff); }
.rd-empty-state__illustration { display:grid; place-items:center; width:80px; height:80px; border-radius:24px; background:var(--rd-accent-soft,#eaeeff); color:var(--rd-accent); margin-bottom:18px; }
.rd-empty-state__illustration .rd-icon { width:36px; height:36px; }
.rd-empty-state__illustration .rd-icon svg { width:100%; height:100%; }
.rd-empty-state h3 { margin:0 0 9px; font-size:19px; font-weight:600; }
.rd-empty-state p { margin:0; max-width:430px; font-size:14px; line-height:1.5; color:var(--cpd-color-text-secondary,#8995ac); }
.rd-empty-state__actions { display:flex; flex-wrap:wrap; justify-content:center; gap:10px; margin-top:22px; }
.rd-empty-state__actions button { display:inline-flex; align-items:center; gap:8px; padding:10px 15px; min-height:40px; border:1px solid var(--rd-border); border-radius:10px; background:transparent; color:inherit; font:inherit; cursor:pointer; }
.rd-empty-state__actions button.rd-empty-state__primary { background:var(--rd-accent); border-color:transparent; color:white; }
/* Canonical template styles must inherit the active host theme, including portalled dialogs. */
html.dark .rd-template-runtime,body.cpd-theme-dark .rd-template-runtime,body.cpd-theme-dark-hc .rd-template-runtime { --bg:var(--cpd-color-bg-subtle-secondary,#141923); --surface:var(--cpd-color-bg-canvas-default,#1e2533); --surface-2:var(--cpd-color-bg-subtle-secondary,#283142); --ink:var(--cpd-color-text-primary,#edf1fa); --muted:var(--cpd-color-text-secondary,#acb7c9); --faint:var(--cpd-color-text-secondary,#8793aa); --line:var(--cpd-color-gray-400,#323c50); --line2:var(--cpd-color-gray-400,#47536b); --accent:#8da0ff; --accent-soft:#303c66; }
html[data-rd-standalone] .rd-template-runtime { --bg:inherit; --surface:inherit; --surface-2:inherit; --ink:inherit; --muted:inherit; --faint:inherit; --line:inherit; --line2:inherit; --accent:inherit; --accent-soft:inherit; }
.rd-empty-state__drop-label { display:block; margin:8px 0; color:var(--rd-accent); font-size:16px; font-weight:600; }
.rd-empty-state[data-dragging=true] { border:2px dashed var(--rd-accent); background:var(--rd-accent-soft,#eaeeff); }
.rd-drop-target { position:fixed; z-index:100; pointer-events:none; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; box-sizing:border-box; border:3px dashed var(--rd-accent,#4c6fff); border-radius:20px; background:color-mix(in srgb,var(--cpd-color-bg-canvas-default,#fff) 94%,var(--rd-accent,#4c6fff)); color:var(--rd-accent,#4c6fff); box-shadow:0 8px 40px #14203c20; }
.rd-drop-target > .rd-icon { width:48px; height:48px; }
.rd-drop-target > .rd-icon svg { width:100%; height:100%; }
.rd-drop-target > strong { font-size:22px; }
.rd-drop-target > span { color:var(--cpd-color-text-secondary,#637087); font-size:14px; text-align:center; padding:0 20px; }
.rd-upload-drop-zone { display:flex; align-items:center; gap:16px; padding:20px 24px; margin:0 0 22px; border:2px dashed color-mix(in srgb,var(--rd-accent,#4c6fff) 42%,transparent); border-radius:16px; background:color-mix(in srgb,var(--cpd-color-bg-canvas-default,#fff) 96%,var(--rd-accent,#4c6fff)); }
.rd-upload-drop-zone__icon { display:grid; place-items:center; flex:none; width:52px; height:52px; border-radius:16px; background:var(--rd-accent-soft,#eaeeff); color:var(--rd-accent,#4c6fff); }
.rd-upload-drop-zone__icon > .rd-icon { width:26px; height:26px; }
.rd-upload-drop-zone__icon svg { width:100%; height:100%; }
.rd-upload-drop-zone > div { flex:1; min-width:0; }
.rd-upload-drop-zone strong { display:block; font-size:16px; line-height:1.4; }
.rd-upload-drop-zone p { margin:5px 0 0; font-size:13px; color:var(--cpd-color-text-secondary,#8995ac); }
.rd-upload-drop-zone button { display:inline-flex; align-items:center; gap:8px; padding:10px 14px; border:1px solid var(--rd-accent,#4c6fff); border-radius:10px; background:var(--cpd-color-bg-canvas-default,#fff); color:var(--rd-accent,#4c6fff); font:inherit; cursor:pointer; }
.rd-upload-drop-zone[data-dragging=true] { border-color:var(--rd-accent,#4c6fff); background:var(--rd-accent-soft,#eaeeff); }
@media(max-width:900px) { .rd-upload-drop-zone { flex-wrap:wrap; padding:16px; } .rd-upload-drop-zone button { margin-left:68px; } }
.rd-empty-state { border-style:solid; }

/* Reserve a lane even for overlay scrollbars; actions stay clear of the thumb. */
.rd-disk__navigation-scroll { scrollbar-gutter:stable; padding-inline-end:14px; box-sizing:border-box; }
.rd-folder-up { width:34px; height:34px; padding:0; border-radius:10px; }
.rd-folder-up:hover { background:var(--rd-accent-soft,#eaeeff); color:var(--rd-accent); }
.rd-content[data-wallpaper], .rd-wallpaper-swatch { --rd-wallpaper-pattern:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22420%22%20height%3D%22340%22%20viewBox%3D%220%200%20420%20340%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22%23617783%22%20stroke-width%3D%221.4%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%20opacity%3D%22.22%22%3E%3Cg%20transform%3D%22translate%2832%2038%29%20rotate%28-16%29%22%3E%3Cpath%20d%3D%22M0%200h22l9%209v29H0zM22%200v10h9M7%2018h16M7%2025h12%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28143%2027%29%20rotate%2812%29%22%3E%3Cpath%20d%3D%22m0%2017%2038-17-13%2036-8-13zM17%2023%2038%200%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28278%2022%29%22%3E%3Ccircle%20cx%3D%220%22%20cy%3D%220%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M0-17v-4M0%2017v4M17%200h4M-17%200h-4M12-12l3-3M-12%2012l-3%203M12%2012l3%203M-12-12l-3-3%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28353%2074%29%20rotate%2815%29%22%3E%3Cpath%20d%3D%22M0%207c10-16%2032-13%2029%202C26%2026%208%2030%200%207zM0%207l31%2024M12%2012l4-10M21%2020l9-6%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2890%20128%29%20rotate%289%29%22%3E%3Cpath%20d%3D%22M0%204h13l5%206h25v27H0zM0%2013h43%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28228%20112%29%20rotate%28-12%29%22%3E%3Cpath%20d%3D%22M2%2026h34a10%2010%200%200%200%200-20%2015%2015%200%200%200-28%202A9%209%200%200%200%202%2026z%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28314%20202%29%20rotate%2819%29%22%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%2243%22%20height%3D%2229%22%20rx%3D%224%22%2F%3E%3Cpath%20d%3D%22m1%202%2020%2015%2021-15M1%2028l13-12M42%2028%2029%2016%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28176%20213%29%20rotate%28-28%29%22%3E%3Cpath%20d%3D%22M0%207v22a10%2010%200%200%200%2020%200V4a7%207%200%200%200-14%200v24a4%204%200%200%200%208%200V9%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%2829%20255%29%20rotate%2813%29%22%3E%3Cpath%20d%3D%22M0%203c8-7%2017-2%2017%205%200-7%2010-12%2017-5%2010%2011-7%2024-17%2031C7%2027-10%2014%200%203z%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28263%20293%29%20rotate%28-12%29%22%3E%3Cpath%20d%3D%22m0-14%204%2010%2011%201-8%207%202%2011-9-6-10%206%202-11-8-7%2012-1z%22%2F%3E%3C%2Fg%3E%3Cg%20transform%3D%22translate%28390%20300%29%22%3E%3Cpath%20d%3D%22M-9%200H9M0-9V9%22%2F%3E%3C%2Fg%3E%3Cpath%20d%3D%22M78%2053h6M81%2050v6M210%2062h6M213%2059v6M342%20131h6M345%20128v6M122%20280h6M125%20277v6M49%20185h6M52%20182v6%22%2F%3E%3Ccircle%20cx%3D%22201%22%20cy%3D%22173%22%20r%3D%222%22%2F%3E%3Ccircle%20cx%3D%22388%22%20cy%3D%2226%22%20r%3D%222%22%2F%3E%3Ccircle%20cx%3D%22290%22%20cy%3D%22166%22%20r%3D%222%22%2F%3E%3Ccircle%20cx%3D%2296%22%20cy%3D%22224%22%20r%3D%222%22%2F%3E%3Ccircle%20cx%3D%22359%22%20cy%3D%22267%22%20r%3D%222%22%2F%3E%3Cpath%20d%3D%22m155%2085%204%207%208-1M54%20103l-4%207%205%206M237%20242l5%205%207-3%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); background-color:var(--rd-content-background,#eef1f8); background-image:none; }
.rd-content[data-wallpaper]:not([data-wallpaper=plain]),.rd-wallpaper-swatch:not([data-wallpaper=plain]) { background-image:var(--rd-wallpaper-pattern); background-repeat:repeat; background-size:420px 340px; }
.rd-content[data-wallpaper=mint],.rd-wallpaper-swatch[data-wallpaper=mint] { background-color:#e6eee5; }
.rd-content[data-wallpaper=sky],.rd-wallpaper-swatch[data-wallpaper=sky] { background-color:#e4edf4; }
.rd-content[data-wallpaper=sand],.rd-wallpaper-swatch[data-wallpaper=sand] { background-color:#f1eadb; }
.rd-content[data-wallpaper=lilac],.rd-wallpaper-swatch[data-wallpaper=lilac] { background-color:#eee7f0; }
.rd-wallpaper-swatch:not([data-wallpaper=plain]) { background-size:210px 170px; }
.rd-wallpaper-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:12px 0; }
.rd-wallpaper-options button { display:flex; flex-direction:column; gap:7px; padding:8px; border:1px solid var(--rd-border,#dce2ef); border-radius:12px; color:inherit; background:transparent; font:inherit; font-size:13px; cursor:pointer; text-align:left; }
.rd-wallpaper-options button[aria-pressed=true] { border-color:var(--rd-accent,#4c6fff); box-shadow:0 0 0 1px var(--rd-accent,#4c6fff); }
.rd-wallpaper-swatch { display:block; width:100%; height:62px; border-radius:7px; }
.rd-wallpaper-settings h4 { margin:18px 0 8px; }
.rd-wallpaper-settings small { color:var(--cpd-color-text-secondary,#768198); }
.dark .rd-content[data-wallpaper], body.cpd-theme-dark .rd-content[data-wallpaper], body.cpd-theme-dark-hc .rd-content[data-wallpaper], [data-theme=dark] .rd-content[data-wallpaper] { background-color:#202534; background-blend-mode:soft-light; }

.rd-storage-actions > section.rd-disk__storage { margin:0; padding-right:48px; }
.rd-disk__sidebar button.rd-storage-client { position:absolute; right:10px; top:50%; transform:translateY(-50%); width:32px; min-height:32px; padding:6px; margin:0; justify-content:center; background:var(--rd-accent-soft,#eaeeff); color:var(--rd-accent,#4c6fff); border-radius:9px; }
.rd-disk__sidebar .rd-storage-client .rd-icon { color:inherit; }
.rd-storage-client[data-connected=true]::after { content:""; position:absolute; width:7px; height:7px; border:2px solid white; border-radius:50%; background:#219769; right:2px; bottom:2px; }
.rd-app-downloads { --rd-border:#e1e6ef; --rd-accent:#4c6fff; --rd-accent-soft:#eaeeff; min-height:280px; }
.rd-app-download-tabs { display:flex; gap:4px; padding:4px; border-radius:12px; background:var(--cpd-color-bg-subtle-secondary,#f4f6fb); margin-bottom:20px; }
.rd-app-download-tabs button { flex:1; border:0; border-radius:9px; padding:10px; background:transparent; color:inherit; font:inherit; cursor:pointer; }
.rd-app-download-tabs button[aria-selected=true] { background:var(--cpd-color-bg-canvas-default,#fff); color:var(--rd-accent); box-shadow:0 2px 6px #17264a0c; }
.rd-app-download-status { color:var(--cpd-color-text-secondary,#7b8799); font-size:13px; }

/* Validation: a full-width report, with document selection collapsed after a run. */
.rd-template-runtime.rd-template-validation .rd-modal { width:min(1040px,100%); }
.rd-template-runtime.rd-template-validation .template-validation-form { display:flex; flex-direction:column; align-items:stretch; gap:24px; }
.rd-template-validation .template-validation-side > summary { font-weight:600; cursor:pointer; overflow-wrap:anywhere; padding:8px 0; }
.rd-template-validation .template-validation-side[open] > summary { margin-bottom:12px; }
.rd-template-validation .template-validation-main { min-width:0; }
.rd-template-runtime .template-validation-report .template-validation-table { width:100%; min-width:0; table-layout:fixed; }
.rd-template-runtime .template-validation-report .template-validation-table th,
.rd-template-runtime .template-validation-report .template-validation-table td { min-width:0; overflow-wrap:anywhere; white-space:normal; }
.rd-template-runtime .template-validation-report .template-validation-table th:first-child { width:27%; }
.rd-template-runtime .template-validation-report .template-validation-table th:nth-child(2) { width:20%; }
.rd-template-validation .template-validation-summary { margin:16px 0; }
.rd-template-validation .template-validation-history { margin-top:24px; }
.rd-template-validation .template-validation-history > ul { list-style:none; padding:0; display:grid; gap:8px; }
.rd-template-runtime .template-validation-history [data-open-run] { width:100%; text-align:left; justify-content:flex-start; background:var(--surface,#fff); color:var(--ink,#26334c); border:1px solid var(--line,#dce1ed); white-space:normal; }
@media(max-width:600px) {
 .rd-template-runtime .template-validation-report .template-validation-table thead { display:none; }
 .rd-template-runtime .template-validation-report .template-validation-table tr { display:block; padding:12px; border-bottom:1px solid var(--line,#dce1ed); }
 .rd-template-runtime .template-validation-report .template-validation-table td { display:block; width:auto; padding:4px 0; border:0; }
}

.rd-template-runtime .template-validation-report .template-validation-table { color:var(--ink,#26334c); }
.rd-template-validation .template-validation-main > [role=status]:empty { display:none; }

/* Photographs keep their scroll anchor explicitly when mosaic geometry changes. */
.rd-gallery { overflow-anchor:none; }
.rd-gallery__controls { display:flex; align-items:center; justify-content:flex-end; gap:16px; flex-wrap:wrap; margin-bottom:12px; font-size:13px; color:var(--rd-muted,#8995ac); }
.rd-gallery__controls label { display:flex; align-items:center; gap:8px; }
.rd-gallery__controls select { width:auto; padding:6px 28px 6px 10px; border:1px solid var(--rd-border); border-radius:8px; background:var(--surface,#fff); color:var(--ink,#26304b); }
.rd-gallery[data-labels=false] .rd-photo__name { display:none; }
.rd-photo__retry { position:absolute; bottom:36px; left:50%; transform:translateX(-50%); padding:6px 12px; border:1px solid var(--rd-border); border-radius:8px; background:var(--surface,#fff); color:var(--ink,#26304b); }

/* Shared photo viewer: bounded canvas, independent information and neighbour strip. */
.rd-photo-viewer { overflow:hidden; background:#15171c; }
.rd-photo-viewer header { flex:none; min-height:60px; box-sizing:border-box; }
.rd-photo-viewer header > span { white-space:nowrap; font-size:13px; color:#c3c9d4; }
.rd-photo-viewer button:disabled { opacity:.4; cursor:default; }
.rd-photo-viewer button:focus-visible { outline:2px solid #8797ff; outline-offset:3px; }
.rd-photo-viewer__body { display:flex; flex:1; min-height:0; position:relative; }
.rd-photo-viewer__main { flex:1; min-width:0; min-height:0; position:relative; }
.rd-photo-viewer__canvas { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; overflow:hidden; touch-action:none; user-select:none; }
.rd-photo-viewer__canvas[data-zoomed=true] { cursor:grab; }
.rd-photo-viewer__canvas[data-zoomed=true]:active { cursor:grabbing; }
.rd-photo-viewer__canvas > img { display:block; flex:none; max-width:none; max-height:none; object-fit:contain; transform-origin:center; user-select:none; }
.rd-photo-viewer__canvas > video { max-width:100%; max-height:100%; }
.rd-photo-viewer__canvas > p { color:#c3c9d4; padding:24px; text-align:center; }
.rd-photo-viewer .rd-photo-viewer__previous,.rd-photo-viewer .rd-photo-viewer__next { position:absolute; top:50%; transform:translateY(-50%); width:40px; height:48px; background:#20232ad9; border-color:#ffffff24; }
.rd-photo-viewer__previous { left:12px; }
.rd-photo-viewer__previous .rd-icon { transform:rotate(180deg); }
.rd-photo-viewer__next { right:12px; }
.rd-photo-viewer__zoom { position:absolute; bottom:12px; left:50%; transform:translateX(-50%); display:flex; align-items:center; gap:6px; padding:6px; border:1px solid #ffffff24; border-radius:12px; background:#20232ae6; }
.rd-photo-viewer__zoom output { min-width:46px; text-align:center; font-size:13px; }
.rd-photo-viewer__information { width:300px; flex:none; box-sizing:border-box; overflow:auto; padding:18px 20px; background:#20232a; border-left:1px solid #ffffff24; scrollbar-gutter:stable; }
.rd-photo-viewer__information > div { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.rd-photo-viewer__information h2 { font-size:18px; margin:0; }
.rd-photo-viewer__information dl { margin:24px 0; font-size:14px; }
.rd-photo-viewer__information dt { color:#aab3c4; font-size:12px; margin-top:20px; }
.rd-photo-viewer__information dd { margin:6px 0 0; overflow-wrap:anywhere; }
.rd-photo-viewer__status { flex:none; min-height:26px; padding:4px 16px; box-sizing:border-box; font-size:12px; color:#c3c9d4; display:flex; justify-content:center; align-items:center; gap:10px; }
.rd-photo-viewer__status button { min-height:28px; padding:4px 8px; }
.rd-photo-viewer__filmstrip { flex:none; display:flex; gap:8px; padding:10px 16px 14px; margin:0 auto; max-width:100%; box-sizing:border-box; overflow-x:auto; scrollbar-gutter:stable; }
.rd-photo-viewer .rd-photo-viewer__frame { flex:0 0 68px; width:68px; height:56px; min-width:0; padding:0; border:2px solid transparent; background:#303540; overflow:hidden; }
.rd-photo-viewer__frame img { width:100%; height:100%; object-fit:cover; }
.rd-photo-viewer .rd-photo-viewer__frame[aria-current=true] { border-color:#8797ff; }
@media(max-width:640px) {
 .rd-photo-viewer header { padding:8px; gap:6px; min-height:52px; }
 .rd-photo-viewer header strong { font-size:13px; }
 .rd-photo-viewer header button { min-width:32px; min-height:32px; width:32px; padding:6px; }
 .rd-photo-viewer__information { position:absolute; right:0; top:0; bottom:0; width:min(320px,100%); z-index:5; box-shadow:-12px 0 40px #0005; }
 .rd-photo-viewer__filmstrip { padding:8px 8px 12px; }
 .rd-photo-viewer__status { flex-wrap:wrap; }
}
/* Header actions keep a single baseline even beside long folder names. */
.rd-toolbar-items { flex-shrink:0; }
.rd-toolbar-items > * { flex-shrink:0; }
.rd-toolbar-items .rd-disk__actions > button { display:inline-flex; align-items:center; justify-content:center; gap:6px; white-space:nowrap; flex:none; min-height:40px; max-height:40px; box-sizing:border-box; }
/* A shared visual status language for checks, findings and document references. */
.rd-template-runtime [data-tone=positive] { --validation-ink:#176647; --validation-fill:#e7f5ed; }
.rd-template-runtime [data-tone=negative] { --validation-ink:#b42332; --validation-fill:#fff0f1; }
.rd-template-runtime [data-tone=warning] { --validation-ink:#865500; --validation-fill:#fff6dc; }
.rd-template-runtime [data-tone=muted] { --validation-ink:#586174; --validation-fill:#f0f2f6; }
.rd-template-runtime .template-validation-report .validation-status,
.rd-template-runtime .validation-status { display:inline-flex; align-items:center; gap:7px; width:max-content; max-width:100%; padding:6px 10px; border:0; border-radius:8px; background:var(--validation-fill); color:var(--validation-ink); font-size:12px; font-weight:600; line-height:1.4; vertical-align:middle; }
.rd-template-runtime .validation-status > .rd-icon { padding:0; border:0; background:none; color:inherit; width:16px; height:16px; }
.rd-template-runtime .validation-outcome { display:flex; align-items:center; gap:10px; }
.rd-template-runtime .validation-outcome > .rd-icon { width:32px; height:32px; border-radius:50%; color:var(--validation-ink); background:var(--validation-fill); }
.rd-template-runtime .validation-rule-results { display:grid; gap:12px; margin-top:16px; }
.rd-template-runtime .validation-rule-result { border:1px solid var(--line,#dce1ed); border-left:3px solid var(--validation-ink); border-radius:10px; min-width:0; overflow:hidden; }
.rd-template-runtime .validation-rule-result > header { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; margin:0; }
.rd-template-runtime .validation-rule-result h4 { font-size:14px; margin:0; overflow-wrap:anywhere; }
.rd-template-runtime .validation-rule-notes { border-top:1px solid var(--line,#dce1ed); padding:12px 16px; }
.rd-template-runtime .validation-finding-count { margin:0 0 8px; font-size:12px; color:var(--muted,#7b8799); }
.rd-template-runtime .validation-findings { list-style:none; margin:0; padding:0; }
.rd-template-runtime .validation-findings > li { display:grid; grid-template-columns:18px minmax(0,1fr) auto; gap:10px; align-items:start; padding:10px 0; margin:0; border-bottom:1px solid var(--line,#dce1ed); overflow-wrap:anywhere; }
.rd-template-runtime .validation-findings > li:last-child { border-bottom:0; }
.rd-template-runtime .validation-findings > li > .rd-icon { color:var(--validation-ink); margin-top:2px; }
.rd-template-runtime .validation-rule-detail { margin:0; padding:0 16px 14px; color:var(--muted,#7b8799); }
.rd-template-runtime .validation-finding-place { margin:5px 0 0; font-size:12px; color:var(--muted,#7b8799); }
.rd-template-runtime .validation-reference-source { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.rd-template-runtime .validation-reference-reason { margin:8px 0 0; }
.rd-template-runtime button.validation-locate { display:inline-flex; align-items:center; gap:6px; width:auto; padding:6px 10px; font-size:12px; white-space:nowrap; }
@media(max-width:600px) {
 .rd-template-runtime .validation-rule-result > header { align-items:flex-start; flex-direction:column; padding:12px; }
 .rd-template-runtime .validation-rule-notes { padding:10px 12px; }
 .rd-template-runtime .validation-findings > li { grid-template-columns:18px minmax(0,1fr); }
 .rd-template-runtime .validation-findings > li > button { grid-column:2; justify-self:start; }
}

.rd-gallery__controls > button { white-space:nowrap; padding:7px 12px; border:1px solid var(--rd-border); border-radius:8px; background:var(--surface,#fff); color:var(--ink,#26304b); font:inherit; cursor:pointer; }
.rd-gallery__controls > button[aria-pressed=true] { color:var(--rd-accent); border-color:var(--rd-accent); }

/* File actions occupy a full, fixed last column at every list breakpoint. */
.rd-file-row-actions { grid-column:-2 / -1; min-width:60px; }
.rd-folder-up > svg { width:22px; height:22px; flex:none; }
.rd-file-details > .rd-disk__detail-actions { padding:0 0 14px; border-bottom:1px solid var(--rd-border); }
.rd-disk__detail-actions button, .rd-button { display:inline-flex; align-items:center; justify-content:center; gap:6px; }
.rd-button--icon { display:flex; gap:normal; }
.rd-disk__detail-actions .rd-detail-action--primary, .rd-button--primary { color:#fff; background:var(--rd-accent,#5064ff); border-color:var(--rd-accent,#5064ff); }
.rd-file-details > .rd-annotations > form,.rd-file-details > .rd-annotations > p,.rd-file-details > .rd-annotations > .rd-tag { margin:12px 16px; }
.rd-annotations form { display:grid; gap:12px; padding-bottom:16px; }
.rd-annotations form label { margin:0; }
.rd-annotations form button[type=submit] { justify-self:start; }
.rd-detail-summary { display:block; font-size:12px; font-weight:400; color:var(--cpd-color-text-secondary,#8a94ad); margin-top:4px; white-space:normal; }
.rd-upload-dialog .rd-upload-drop-zone { flex-direction:column; text-align:center; padding:32px 20px; margin:0; }
.rd-upload-dialog .rd-upload-drop-zone button { margin:8px 0 0; }
.rd-upload-dialog__folder { display:flex; align-items:center; gap:8px; margin-top:16px; }

.rd-disk__sidebar button.rd-create-tag-button { display:flex; align-items:center; justify-content:center; flex:none; width:24px; height:24px; min-height:24px; padding:0; border-radius:50%; background:var(--rd-accent,#5064ff); color:#fff; }
.rd-disk__sidebar button.rd-create-tag-button .rd-icon { color:inherit; }
.rd-create-tag { display:grid; gap:14px; }
.rd-create-tag label { display:grid; gap:6px; }
.rd-create-tag input[type=color] { width:64px; height:36px; }
.rd-create-tag__files { display:grid; gap:6px; max-height:280px; overflow:auto; }
.rd-create-tag__files button { display:flex; align-items:center; gap:10px; text-align:left; min-width:0; }
.rd-create-tag__files button span:not(.rd-icon):not(.rd-file-icon) { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

.rd-tag-palette { display:flex; flex-wrap:wrap; gap:8px; min-width:0; padding:0; margin:0; border:0; }
.rd-tag-palette legend { margin-bottom:8px; font-size:13px; }
.rd-tag-palette button { width:28px; height:28px; min-height:28px; padding:0; border:2px solid transparent; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; color:white; }
.rd-tag-palette button[aria-pressed=true] { outline:2px solid var(--rd-accent,#5064ff); outline-offset:2px; }
.rd-disk__detail-actions button[aria-pressed=true] { color:var(--rd-accent,#5064ff); background:var(--rd-accent-soft,#eaeeff); }
.rd-detail-toggle .rd-detail-summary { margin:0 0 0 auto; max-width:55%; text-align:right; overflow-wrap:anywhere; }
.rd-detail-toggle::after { flex:none; }

.rd-access-summary { display:inline-flex; align-items:center; gap:12px; }
.rd-access-summary small { white-space:nowrap; }
.rd-file-preview pre.rd-file-preview__prose { font-family:inherit; font-size:14px; line-height:1.6; }

.rd-disk__sidebar .rd-tag-color .rd-icon,.rd-disk__sidebar button[aria-current=page] .rd-tag-color .rd-icon { color:inherit; }
.rd-tag-color { display:inline-flex; flex:none; }

.rd-photo-tabs { display:flex; gap:6px; border-bottom:1px solid var(--rd-border); padding-bottom:12px; margin-bottom:20px; }
.rd-photo-tabs button { padding:9px 18px; border:0; background:transparent; font-weight:600; border-radius:10px; color:var(--cpd-color-text-secondary,#8a94ad); }
.rd-photo-tabs button[aria-selected=true] { color:var(--rd-accent,#5064ff); background:var(--rd-accent-soft,#eaeeff); }
.rd-photo-albums__tools { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-bottom:22px; }
.rd-photo-albums__tools label { display:flex; gap:8px; align-items:center; font-size:13px; }
.rd-photo-albums__search { flex:1; min-width:170px; padding:0 12px; border:1px solid var(--rd-border); border-radius:10px; background:white; }
.rd-photo-albums__search input { border:0; width:100%; min-width:0; background:transparent; }
.rd-photo-albums__tools button.rd-photo-albums__create { display:flex; align-items:center; gap:8px; background:var(--rd-accent,#5064ff); color:white; border-color:transparent; }
.rd-photo-albums__grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:20px; }
.rd-photo-album { position:relative; min-width:0; border:1px solid var(--rd-border); border-radius:16px; background:white; overflow:hidden; box-shadow:0 2px 5px #14203c0c; }
.rd-photo-album__open { display:flex; flex-direction:column; align-items:stretch; width:100%; padding:0 0 16px; border:0; border-radius:0; text-align:left; background:transparent; }
.rd-photo-album__open .rd-folder-cover { width:100%; height:170px; border-radius:0; background:var(--rd-accent-soft,#eaeeff); }
.rd-photo-album__open .rd-folder-cover img { width:100%; height:100%; object-fit:cover; }
.rd-photo-album__open .rd-folder-cover .rd-icon { width:40px; height:40px; }
.rd-photo-album__open > strong { margin:14px 44px 6px 16px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:16px; }
.rd-photo-album__open > span:not(.rd-folder-cover),.rd-photo-album__open > small { margin:0 16px 4px; font-size:12px; color:var(--cpd-color-text-secondary,#8a94ad); }
.rd-photo-album > .rd-photo-album__more { position:absolute; right:10px; bottom:62px; }
.rd-photo-album__open .rd-folder-cover { flex:0 0 170px; }
.rd-photo-album__open .rd-folder-cover .rd-icon svg { width:32px; height:32px; }
.rd-photo-album > .rd-photo-album__more { width:30px; height:32px; padding:0; display:flex; align-items:center; justify-content:center; border:0; color:var(--cpd-color-text-secondary,#8a94ad); background:transparent; }

.rd-photo-album-toolbar { margin-bottom:20px; padding:16px; border:1px solid var(--rd-border); border-radius:14px; background:white; }
.rd-photo-album-toolbar > div { display:flex; gap:8px; flex-wrap:wrap; }
.rd-photo-album-toolbar button { display:inline-flex; align-items:center; gap:6px; }
.rd-photo-album-toolbar p { white-space:pre-wrap; overflow-wrap:anywhere; }
.rd-photo-album-toolbar small { display:block; margin-top:12px; color:var(--cpd-color-text-secondary,#8a94ad); }

.rd-album-order { display:grid; gap:8px; max-height:60vh; overflow:auto; }
.rd-album-order > div { display:flex; align-items:center; gap:8px; padding:6px; border-bottom:1px solid var(--rd-border); }
.rd-album-order span { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

.rd-photo-album-toolbar button { background:white; color:var(--cpd-color-text-primary,#26324b); border:1px solid var(--rd-border); }
.rd-photo-bulk { display:flex; justify-content:flex-end; margin-bottom:12px; }
.rd-photo-bulk > button { display:inline-flex; align-items:center; gap:8px; color:white; background:var(--rd-accent,#5064ff); }

.rd-album-back { display:inline-flex; transform:rotate(90deg); }

.rd-filter-menu { max-height:min(700px,calc(100vh - 120px)); overflow:auto; }
.rd-photo-filter-fields { display:grid; gap:12px; padding:12px; border-top:1px solid var(--rd-border); }
.rd-photo-filter-fields label { display:grid; grid-template-columns:minmax(0,1fr); gap:6px; padding:0; }
.rd-photo-filter-fields select { width:100%; min-width:0; }

.rd-photo-filter-presets { display:grid; gap:10px; padding:12px; border-top:1px solid var(--rd-border); }
.rd-photo-filter-presets form { display:grid; gap:8px; }
.rd-photo-filter-presets input,.rd-photo-filter-presets select { width:100%; min-width:0; }
.rd-photo-filter-modal .rd-modal { width:min(780px,calc(100vw - 32px)); height:min(780px,calc(100dvh - 48px)); display:flex; flex-direction:column; }
.rd-photo-filter-dialog { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:24px; overflow:auto; min-height:0; flex:1; }
.rd-photo-filter-main { display:grid; align-content:start; gap:12px; min-width:0; }
.rd-photo-filter-main label { display:grid; gap:6px; }
.rd-photo-filter-main select { width:100%; min-width:0; }
.rd-photo-filter-main .rd-photo-filter-fields { padding:12px 0; }
.rd-photo-filter-main .rd-filter-categories { display:flex; flex-wrap:wrap; gap:6px; }
.rd-photo-filter-main .rd-filter-categories button { display:flex; align-items:center; gap:4px; background:white; color:var(--ink,#26324b); border:1px solid var(--rd-border); }
.rd-photo-filter-main .rd-filter-categories button[aria-pressed=true] { background:var(--rd-accent-soft,#eaeeff); color:var(--rd-accent,#5064ff); }
.rd-filter-dates { display:grid; gap:10px; }
.rd-photo-filter-dialog .rd-photo-filter-presets { align-content:start; padding:0 0 0 20px; border-top:0; border-left:1px solid var(--rd-border); }
.rd-photo-filter-modal .rd-modal > header,.rd-photo-filter-modal .rd-modal > footer { flex:none; }
@media(max-width:600px) { .rd-photo-filter-dialog { grid-template-columns:minmax(0,1fr); } .rd-photo-filter-dialog .rd-photo-filter-presets { border-left:0; border-top:1px solid var(--rd-border); padding:16px 0 0; } }
.rd-photo-filter-main label,.rd-photo-filter-main .rd-folder-picker { margin:0; }
.rd-photo-filter-main .rd-photo-filter-fields { grid-template-columns:repeat(2,minmax(0,1fr)); padding:0; border:0; gap:12px; }
.rd-photo-filter-main .rd-photo-filter-fields > .rd-folder-picker,.rd-photo-filter-main .rd-photo-filter-fields > label:last-child { grid-column:1 / -1; }
.rd-photo-filter-main .rd-filter-dates { grid-template-columns:repeat(2,minmax(0,1fr)); }
.rd-photo-filter-main .rd-filter-dates input { min-width:0; width:100%; }
.rd-photo-filter-modal .rd-modal > footer button { background:var(--rd-accent,#5064ff); color:white; border-color:transparent; }
@media(max-width:600px) { .rd-photo-filter-main .rd-photo-filter-fields,.rd-photo-filter-main .rd-filter-dates { grid-template-columns:minmax(0,1fr); } }
.rd-filter-menu .rd-filter-categories { display:grid; gap:2px; }
.rd-filter-menu .rd-filter-categories > button { color:inherit; font:inherit; display:flex; align-items:center; gap:10px; width:100%; min-height:40px; padding:9px 10px; border:0; border-radius:7px; background:transparent; text-align:left; white-space:nowrap; }
.rd-filter-menu .rd-filter-categories > button:hover,.rd-filter-menu .rd-filter-categories > button:focus-visible { background:var(--surface-2,var(--cpd-color-bg-subtle-secondary,#f1f3f7)); }
.rd-filter-menu .rd-filter-categories > button[aria-pressed=true] { color:var(--rd-accent); background:var(--rd-accent-soft,#eaeeff); }

.rd-album-member,.rd-album-invite { display:grid; gap:10px; padding:14px 0; border-top:1px solid var(--rd-border); }
.rd-album-member > strong { overflow-wrap:anywhere; }
.rd-album-member select { width:100%; min-width:0; }
.rd-album-invite label { display:grid; gap:6px; margin:0; }

.rd-smart-album-form fieldset { min-width:0; margin:0; padding:0; border:0; display:grid; gap:16px; }
.rd-smart-album-form > p { color:var(--rd-muted,#8995ac); line-height:1.5; margin:0; }
.rd-smart-album-dates { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.rd-photo-album--smart .rd-folder-cover { color:var(--rd-accent,#4c6fff); background:var(--rd-soft,#f3f5fc); display:flex; align-items:center; justify-content:center; }
.rd-photo-album--smart .rd-folder-cover .rd-icon { width:42px; height:42px; }
.rd-photo-exclusions { grid-column:1 / -1; border:1px solid var(--rd-border); border-radius:10px; padding:10px 12px; min-width:0; }
.rd-photo-exclusions summary { cursor:pointer; font-size:14px; }
.rd-photo-exclusions p { color:var(--rd-muted,#8995ac); font-size:13px; line-height:1.4; }
.rd-photo-exclusions > div:not(.rd-folder-picker) { display:flex; align-items:center; gap:8px; margin-top:6px; }
.rd-photo-exclusions > div > span { flex:1; overflow-wrap:anywhere; }
.rd-photo-exclusions > div > button { min-width:32px; }
.rd-photo-filter-presets form > label { display:flex; align-items:center; gap:8px; font-size:13px; }
.rd-photo-filter-presets form input[type=checkbox] { width:16px; min-width:16px; height:16px; }
.rd-smart-album-modal .rd-modal { display:flex; flex-direction:column; overflow:hidden; max-height:90vh; }
.rd-smart-album-modal .rd-modal > header { flex:none; }
.rd-smart-album-form { display:flex; flex-direction:column; gap:16px; min-height:0; }
.rd-smart-album-fields { display:grid; gap:16px; overflow:auto; min-height:0; padding:6px 8px 6px 6px; scrollbar-gutter:stable; }
.rd-smart-album-fields > label,.rd-smart-album-form fieldset > label,.rd-smart-album-dates > label { display:flex; flex-direction:column; align-items:stretch; gap:8px; min-width:0; }
.rd-smart-album-fields > p { margin:0; line-height:1.5; color:var(--rd-muted,#8995ac); font-size:14px; }
.rd-smart-album-form input:not([type=checkbox]),.rd-smart-album-form select { box-sizing:border-box; width:100%; min-width:0; padding:10px 12px; border:1px solid var(--rd-border,#dce1ed); border-radius:9px; background:var(--surface,#fff); color:var(--ink,#26304b); font:inherit; }
.rd-smart-album-form .rd-photo-filter-fields { padding:0; border:0; }
.rd-smart-album-form footer { flex:none; margin:0; padding-top:14px; border-top:1px solid var(--rd-border,#dce1ed); }
.rd-smart-album-form footer button:last-child { background:var(--rd-accent,#5064ff); border-color:transparent; color:white; }

.rd-photo-chronology{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0;color:var(--rd-muted,#8591a7)}.rd-photo-chronology select{padding:8px 12px;border:1px solid var(--rd-border,#e2e8f0);border-radius:10px;background:var(--rd-card,#fff);color:var(--rd-text,#26334a);font:inherit}

.rd-photo-text-search{display:flex;gap:8px;align-items:center;margin:12px 0;font-size:14px}.rd-search-snippet{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12px;font-weight:400;white-space:normal;overflow-wrap:anywhere;line-height:1.4}.rd-search-snippet mark{background:#ffe7a3;color:#3d321a;border-radius:2px}.rd-photo__search{position:absolute;bottom:30px;left:6px;right:6px;padding:5px 8px;background:rgba(255,255,255,.95);color:#26334a;border-radius:6px;pointer-events:none}.rd-disk__filename .rd-search-snippet{margin-top:3px;color:#63718a}

.rd-ready-collections{margin-bottom:28px}.rd-ready-collections>header{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:12px 0 16px}.rd-ready-collections>header>div{flex:1;min-width:180px}.rd-ready-collections h2{font-size:19px;margin:0 0 5px}.rd-ready-collections p,.rd-collection-description{font-size:13px;color:var(--rd-muted,#8591a7)}.rd-photo-collection-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:16px 0}.rd-collection-choice{display:flex!important;align-items:center;gap:12px;margin:14px 0}.rd-collection-choice input{width:auto!important}.rd-collection-choice small{display:block;color:var(--rd-muted,#8591a7);font-size:12px}.rd-photo-system-form{display:grid;gap:14px;min-width:0}.rd-photo-system-form label{display:grid;gap:7px}.rd-photo-system-form input,.rd-photo-system-form select,.rd-photo-system-form textarea{box-sizing:border-box;width:100%;max-width:100%}.rd-photo-system-form p{font-size:13px;line-height:1.5}.rd-photo-system-form details{border-top:1px solid var(--rd-border,#e2e8f0);padding-top:12px}.rd-photo-system-form details button{margin:8px 8px 0 0}

.rd-photo-editor-modal .rd-modal{width:min(1120px,calc(100vw - 32px));max-height:calc(100dvh - 32px);display:flex;flex-direction:column;overflow:hidden}.rd-photo-editor{display:flex;flex-direction:column;gap:12px;min-height:0}.rd-photo-editor__tools{display:flex;gap:6px;flex-wrap:wrap;flex-shrink:0}.rd-photo-editor__tools button[aria-pressed=true]{background:var(--rd-accent,#5266ff);color:#fff}.rd-photo-editor__body{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:18px;overflow:auto;min-height:0}.rd-photo-editor__stage{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;min-width:0;padding:12px;background:#e9edf4;border-radius:12px}.rd-photo-editor__stage p{font-size:12px;color:#526077;margin:0}.rd-photo-editor__surface{position:relative;display:inline-block;max-width:100%;touch-action:none;line-height:0;background:repeating-conic-gradient(#fff 0% 25%,#e4e6ec 0% 50%) 50%/16px 16px}.rd-photo-editor__surface[data-format="image/jpeg"]{background:white}.rd-photo-editor__surface canvas{display:block;max-width:100%;max-height:55vh;width:auto;height:auto;touch-action:none;cursor:crosshair}.rd-photo-editor__surface svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.rd-photo-editor__surface svg rect{stroke:#5266ff;stroke-width:3;stroke-dasharray:8 5;fill:rgba(82,102,255,.1);vector-effect:non-scaling-stroke}.rd-photo-editor__settings{display:grid;align-content:start;gap:12px;min-width:0}.rd-photo-editor__settings label{display:grid;gap:5px;font-size:13px}.rd-photo-editor__settings input,.rd-photo-editor__settings select{box-sizing:border-box;width:100%;min-width:0}.rd-photo-editor__settings input[type=color]{height:32px;padding:2px}.rd-photo-editor__settings p{font-size:12px;color:var(--rd-muted,#8591a7)}.rd-photo-editor>footer{flex-shrink:0;display:flex;justify-content:flex-end;gap:10px;margin:0;padding-top:12px;border-top:1px solid var(--rd-border,#e2e8f0)}@media(max-width:700px){.rd-photo-editor-modal .rd-modal{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:12px}.rd-photo-editor__body{grid-template-columns:1fr}.rd-photo-editor__settings{grid-template-columns:repeat(2,minmax(0,1fr))}.rd-photo-editor__surface canvas{max-height:36vh}.rd-photo-editor__tools button{font-size:12px;padding:7px 9px}}

.rd-ready-collections>header>button,.rd-photo-collection-toolbar>button,.rd-photo-albums__tools>button,.rd-photo-albums__tools select{font:inherit;font-size:14px;min-height:40px;padding:9px 14px;border:1px solid var(--rd-border,#dde3ef);border-radius:10px;background:var(--rd-card,#fff);color:var(--rd-text,#2d3850);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px}.rd-ready-collections>header>button:hover,.rd-photo-collection-toolbar>button:hover{background:var(--rd-accent-soft,#eaeeff)}.rd-ready-collections>header>button:focus-visible,.rd-photo-collection-toolbar>button:focus-visible{outline:2px solid var(--rd-accent,#5266ff);outline-offset:2px}.rd-ready-collections .rd-photo-album__open>strong{white-space:normal;line-height:1.25;min-height:40px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-right:16px}.rd-ready-collections .rd-photo-album>.rd-photo-album__more{top:10px;right:10px;bottom:auto;background:rgba(255,255,255,.95);border-radius:50%;box-shadow:0 1px 4px #18243b20}.rd-ready-collection-pin{position:absolute;top:10px;left:10px;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.95);color:var(--rd-accent,#5266ff);pointer-events:none}.rd-ready-collection-pin .rd-icon{width:16px;height:16px}.rd-photo-editor>footer>button:last-child:not(:disabled){background:var(--rd-accent,#5266ff);border-color:transparent;color:white;display:inline-flex;align-items:center;gap:8px}.rd-photo-albums__search input{min-height:40px;font:inherit;font-size:14px}

/* Photo editor: grouped tools and compact, consistent controls in both hosts. */
.rd-photo-editor-modal .rd-modal{width:min(1240px,calc(100vw - 40px));padding:22px;border:1px solid var(--rd-border,#e2e8f0);border-radius:22px;box-shadow:0 24px 80px #17213b33}
.rd-photo-editor-modal .rd-modal>header{margin-bottom:16px}.rd-photo-editor-modal .rd-modal>header h2{font-size:18px;font-weight:650;letter-spacing:-.02em}
.rd-editor-icon{flex-shrink:0;vertical-align:middle}.rd-photo-editor__tools{gap:10px;align-items:center;background:var(--rd-bg,#f4f5fa);border:1px solid var(--rd-border,#e2e8f0);padding:8px;border-radius:14px}
.rd-photo-editor__toolgroup{display:flex;gap:3px;padding-right:9px;border-right:1px solid var(--rd-border,#e2e8f0)}
.rd-photo-editor__tools button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:9px 10px;border:0;border-radius:9px;background:transparent;color:var(--rd-text,#2d3850);font:inherit;font-size:13px;white-space:nowrap;cursor:pointer}
.rd-photo-editor__tools button:hover:not(:disabled){background:var(--rd-card,#fff);box-shadow:0 2px 6px #1d294010}.rd-photo-editor__tools button[aria-pressed=true]{background:var(--rd-accent,#5266ff);color:white;box-shadow:0 3px 8px #5266ff30}.rd-photo-editor__tools button[aria-pressed=true]:hover{background:var(--rd-accent,#5266ff)}
.rd-photo-editor button:focus-visible,.rd-photo-editor input:focus-visible{outline:2px solid var(--rd-accent,#5266ff);outline-offset:3px}.rd-photo-editor__tools button:disabled{opacity:.35;cursor:default}.rd-photo-editor__reset{margin-left:auto}
.rd-photo-editor__body{grid-template-columns:minmax(0,1fr) 272px;gap:18px}.rd-photo-editor__stage{background:var(--rd-bg,#eff1f7);border:1px solid var(--rd-border,#e2e8f0);border-radius:16px;padding:24px;min-height:380px}.rd-photo-editor__surface{box-shadow:0 5px 24px #18243b24}.rd-photo-editor__stage p{text-align:center;line-height:1.5;max-width:440px}.rd-photo-editor__surface canvas{max-height:53vh}
.rd-photo-editor__settings{display:flex;flex-direction:column;gap:12px}.rd-photo-editor__section{display:flex;flex-direction:column;gap:14px;padding:16px;border:1px solid var(--rd-border,#e2e8f0);border-radius:14px;background:var(--rd-card,#fff)}.rd-photo-editor__section h3{display:flex;align-items:center;gap:9px;margin:0;font-size:13px;font-weight:650;color:var(--rd-text,#2d3850)}.rd-photo-editor__section h3 svg{width:18px;height:18px;color:var(--rd-accent,#5266ff)}
.rd-photo-editor__settings label{margin:0;gap:7px}.rd-photo-editor__settings input:not([type=range]):not([type=color]),.rd-photo-editor__settings select{min-height:38px;border:1px solid var(--rd-border,#e2e8f0);border-radius:9px;background:var(--rd-card,#fff);color:var(--rd-text,#2d3850);padding:8px 10px;font:inherit;font-size:13px}
.rd-photo-editor__palette{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.rd-photo-editor__palette button{display:flex;align-items:center;justify-content:center;flex:0 0 23px;width:23px;height:23px;min-height:0;padding:0;border:1px solid #18243b20;border-radius:50%;background:var(--swatch);color:white;cursor:pointer}.rd-photo-editor__palette button[aria-label="Белый"]{color:#2d3850}.rd-photo-editor__palette button[aria-pressed=true]{outline:2px solid var(--rd-accent,#5266ff);outline-offset:2px}.rd-photo-editor__palette button svg{width:14px;height:14px}.rd-photo-editor__palette button:disabled{opacity:.4;cursor:default}
.rd-photo-editor__custom-color{position:relative;display:flex!important;align-items:center;justify-content:center;width:25px;height:25px;color:var(--rd-muted,#8591a7);cursor:pointer}.rd-photo-editor__custom-color input[type=color]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.rd-photo-editor__custom-color svg{pointer-events:none;width:20px;height:20px}
.rd-photo-editor__slider>span{display:flex;align-items:center;justify-content:space-between}.rd-photo-editor__slider output{font-size:12px;font-variant-numeric:tabular-nums;background:var(--rd-bg,#f3f5fa);padding:3px 7px;border-radius:6px;min-width:32px;text-align:center;color:var(--rd-muted,#8591a7)}
.rd-photo-editor__settings input[type=range]{appearance:none;-webkit-appearance:none;height:5px;margin:10px 0;background:var(--rd-border,#dfe4f0);border:0;border-radius:5px;padding:0;accent-color:var(--rd-accent,#5266ff);cursor:pointer}.rd-photo-editor__settings input[type=range]::-webkit-slider-thumb{appearance:none;width:16px;height:16px;border:3px solid var(--rd-card,#fff);border-radius:50%;background:var(--rd-accent,#5266ff);box-shadow:0 0 0 1px var(--rd-accent,#5266ff),0 2px 5px #5266ff30}.rd-photo-editor__settings input[type=range]::-moz-range-thumb{width:12px;height:12px;border:3px solid white;border-radius:50%;background:var(--rd-accent,#5266ff)}
.rd-photo-editor__settings .rd-photo-editor__hint{font-size:11px;line-height:1.5;margin:0}.rd-photo-editor__notice{display:flex;gap:8px;padding:0 4px;margin:0;line-height:1.5}.rd-photo-editor__notice svg{width:16px;height:16px;color:#25a675;margin-top:2px}
.rd-photo-editor__apply{display:inline-flex;align-items:center;gap:7px;background:var(--rd-accent,#5266ff)!important;color:white!important;border:0!important;border-radius:9px;padding:9px 14px}.rd-photo-editor>footer{padding-top:14px}.rd-photo-editor>footer button{display:inline-flex;align-items:center;gap:8px;min-height:42px;border-radius:10px;font-weight:550}.rd-photo-editor>footer>button:last-child:not(:disabled){box-shadow:0 3px 10px #5266ff25}
@media(max-width:1050px){.rd-photo-editor__tools{gap:6px}.rd-photo-editor__toolgroup{padding-right:5px}.rd-photo-editor__tools button{padding:8px}.rd-photo-editor__reset{margin-left:0}.rd-photo-editor__body{grid-template-columns:minmax(0,1fr) 248px}}
@media(max-width:700px){.rd-photo-editor-modal .rd-modal{width:calc(100vw - 16px);padding:12px;border-radius:16px}.rd-photo-editor__body{grid-template-columns:1fr}.rd-photo-editor__stage{min-height:220px;padding:16px}.rd-photo-editor__surface canvas{max-height:34vh}.rd-photo-editor__tools{flex-wrap:nowrap;overflow-x:auto;gap:6px;padding:6px;scrollbar-width:thin}.rd-photo-editor__toolgroup{flex-shrink:0}.rd-photo-editor__tools button{flex-direction:column;gap:4px;font-size:11px;min-width:46px;padding:7px}.rd-photo-editor__tools .rd-photo-editor__reset{flex-shrink:0}.rd-photo-editor__settings{display:flex}.rd-photo-editor__section{padding:14px}}
.rd-photo-editor__surface{flex-shrink:0}.rd-photo-editor__stage{align-self:stretch}@media(max-width:700px){.rd-photo-editor__stage{height:max-content;min-height:0;box-sizing:border-box}.rd-photo-editor__surface canvas{max-height:28vh}}

.rd-photo-editor__palette[hidden]{display:none}.rd-photo-editor__canvas-actions{height:76px;flex:0 0 76px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:8px;max-width:100%}.rd-photo-editor__surface[data-tool=text] canvas{cursor:text}.rd-photo-editor__surface svg rect{fill:rgba(82,102,255,.08)}

.rd-photo-editor__text-entry{position:absolute;z-index:2;line-height:1.4;width:220px;max-width:65vw;transform:translateY(-2px);background:var(--rd-card,#fff);border:2px solid var(--rd-accent,#5266ff);border-radius:0 10px 10px 10px;padding:8px;box-shadow:0 5px 20px #17213b30}.rd-photo-editor__text-entry input{box-sizing:border-box;width:100%;font:600 16px sans-serif;padding:8px;border:1px solid var(--rd-border,#e2e8f0);border-radius:6px;background:var(--rd-card,#fff)}.rd-photo-editor__text-entry>div{display:flex;gap:6px;justify-content:flex-end;margin-top:7px}.rd-photo-editor__text-entry button{display:inline-flex;align-items:center;gap:5px;padding:6px 8px;font-size:12px;border-radius:6px}.rd-photo-editor__text-anchor{position:absolute;width:8px;height:8px;border-radius:50%;left:-5px;top:-5px;background:var(--rd-accent,#5266ff)}

.rd-photo-editor__surface[data-tool=select] canvas{cursor:move}.rd-photo-editor__surface svg.rd-photo-editor__selection rect{stroke:#5266ff;fill:transparent;stroke-dasharray:4 3;stroke-width:1.5}.rd-photo-editor__tools button{padding-left:8px;padding-right:8px}

/* Public account pages share FileLock form styling. */
.rd-public-access{box-sizing:border-box;padding:32px 20px;color:var(--rd-text,#27334d);background:var(--rd-bg,#eef1f8)}.rd-public-access>header a{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit}.rd-public-access__card{box-sizing:border-box;width:min(440px,100%);padding:32px;border:1px solid var(--rd-border,#e4e8f2);border-radius:22px;box-shadow:0 12px 40px #2535560d}.rd-public-access__symbol{width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:#edf0ff;color:#5266ff;border-radius:16px;margin-bottom:22px}.rd-public-access__symbol .rd-icon{width:25px;height:25px}.rd-public-access__card h1{font-size:25px;line-height:1.25;margin:0 0 12px;letter-spacing:-.025em}.rd-public-access__card p{font-size:14px;line-height:1.6;color:var(--rd-muted,#76839b);margin:0 0 22px}.rd-public-access__card label{display:flex;gap:8px;margin:20px 0 18px;font-size:13px;font-weight:550}.rd-public-access__card input:not([type=checkbox]){box-sizing:border-box;height:48px;border:1px solid var(--rd-border,#dce2ef);border-radius:11px;padding:12px 14px;background:var(--rd-card,#fff);color:var(--rd-text,#27334d);font-weight:400}.rd-public-access__card input:focus-visible{outline:3px solid #5266ff20;border-color:#5266ff}.rd-public-access__card button{margin:0 0 10px;min-height:44px;border-radius:11px;border-color:var(--rd-border,#dce2ef);display:inline-flex;align-items:center;justify-content:center;gap:9px}.rd-public-access__card button.rd-public-access__primary{width:100%;background:#5266ff;border-color:#5266ff;color:white;font-weight:600;box-shadow:0 4px 10px #5266ff20}.rd-public-access__primary:hover:not(:disabled){background:#4357ed!important}.rd-public-access__card button.rd-public-access__back{display:flex;width:100%;border:0;background:transparent;color:var(--rd-muted,#76839b);margin:12px 0 0}.rd-public-access__card button:focus-visible{outline:2px solid #5266ff;outline-offset:3px}.rd-public-access__card .rd-public-access__alert{background:#fff1f0;color:#a63838;padding:12px;border-radius:10px;margin:12px 0}.rd-public-access__card button:disabled{opacity:.55}@media(max-width:480px){.rd-public-access{padding:24px 16px}.rd-public-access__card{padding:25px 22px}.rd-public-access__card h1{font-size:23px}}

.rd-public-access__password{position:relative;display:block;width:100%}.rd-public-access__password input{padding-right:48px!important}.rd-public-access__card .rd-public-access__password button{position:absolute;right:4px;top:4px;width:40px;height:40px;min-height:0;margin:0;padding:8px;border:0;background:transparent;color:var(--rd-muted,#76839b)}.rd-public-access__password button:hover{color:#5266ff!important;background:#eef1ff!important}

.rd-public-access__recipient{display:flex;align-items:center;gap:9px;margin:16px 0 20px;padding:12px;background:#f5f7fc;border-radius:10px;color:var(--rd-text,#27334d);font-size:14px;overflow-wrap:anywhere}.rd-public-access__recipient .rd-icon{color:#5266ff;flex:none}.rd-public-access__delivery-help{padding:14px 0 20px;color:var(--rd-muted,#76839b);font-size:13px;line-height:1.6}.rd-public-access__card .rd-public-access__text-button{display:block;margin:6px 0 0;padding:0;min-height:28px;border:0;background:none;color:#5266ff;font-size:13px}

/* Folder access row: equal card heights, shared avatars and cover on one centre line. */
.rd-folder-tile .rd-folder-tile__body{display:grid;grid-template-columns:minmax(0,1fr) 46px;grid-template-rows:16px 46px;column-gap:12px;row-gap:6px;align-items:center}
.rd-folder-tile .rd-folder-tile__body>span:first-child{display:contents}
.rd-folder-tile .rd-folder-tile__label{grid-column:1;grid-row:1;margin:0;line-height:16px}
.rd-folder-tile .rd-folder-tile__body .rd-avatar-stack,.rd-folder-tile .rd-folder-tile__solo{grid-column:1;grid-row:2;display:flex;align-items:center;min-width:0;min-height:32px}
.rd-folder-tile .rd-folder-tile__body>.rd-folder-cover{grid-column:2;grid-row:2;align-self:center;justify-self:end}
.rd-folder-tile .rd-avatar-stack>small{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--cpd-color-bg-canvas-default,#fff);font-size:11px}

/* Host avatars may keep a 24px image inside a 32px access badge. Centre both layers. */
.rd-folder-tile .rd-avatar-stack>*{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;line-height:1;padding:0;border-radius:50%;overflow:hidden}
.rd-folder-tile .rd-avatar-stack>*>img{display:block;width:100%;height:100%;inline-size:100%;block-size:100%;max-width:none;object-fit:cover;border-radius:inherit}

/* Область автора шаблона не меняет общую шапку и глобальные modal/table правила. */
.ta-scrim { z-index: 70; padding: 20px; }
.ta-modal { width: min(1180px, 100%); max-height: calc(100dvh - 40px); overflow: hidden; display: flex; flex-direction: column; }
.ta-modal > .head { flex: 0 0 auto; }
.ta-body { overflow: auto; min-height: 0; padding: 18px 22px 24px; }
.ta-close { display: flex; align-items: center; gap: 6px; }
.ta-close span:last-child { font-size: 13px; }
.ta-field { display: flex; flex-direction: column; min-width: 0; gap: 6px; margin: 0 0 14px; }
.ta-label { font-size: 12px; font-weight: 600; color: var(--muted, #637087); }
.ta-field input, .ta-field textarea, .ta-field select, .ta-config select, .ta-source-modal input {
 width: 100%; box-sizing: border-box; border: 1px solid var(--line, #dce1e8); border-radius: 7px; background: var(--surface, #fff);
 color: inherit; padding: 9px 11px; font: inherit; min-height: 36px;
}
.ta-field textarea { resize: vertical; line-height: 1.5; }
/* Описание шаблона: поле и две короткие подсказки под ним, без отступа поля между ними. */
.ta-description-field { margin: 0 0 14px; }
.ta-description-field > .ta-field { margin-bottom: 4px; }
.ta-description-field > p { margin: 0 0 4px; font-size: 12px; line-height: 1.45; }
.ta-field input:focus, .ta-field textarea:focus, .ta-field select:focus { outline: 2px solid var(--accent, #3f73db); outline-offset: 1px; }
.ta-meta, .ta-toolbar, .ta-inline, .ta-tree-tools { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.ta-meta { justify-content: space-between; margin-bottom: 12px; }
.ta-state-badge { display: inline-flex; align-items: center; background: var(--soft, #edf2fa); padding: 5px 9px; border-radius: 6px; font-size: 12px; }
.ta-toolbar { margin: 8px 0 12px; }
.ta-toolbar button, .ta-inline button, .ta-tree-tools button, .ta-preview button, .ta-history-table button, .ta-evidence button {
 display: inline-flex; align-items: center; justify-content: center; gap: 7px;
}
.ta-toolbar svg, .ta-inline svg, .ta-tree-item svg, .ta-source-item svg, .ta-tree-tools svg, .ta-preview svg, .ta-history-table svg, .ta-evidence svg, .ta-close svg { width: 16px; height: 16px; flex-shrink: 0; }
.ta-layout { display: grid; grid-template-columns: minmax(220px, 30%) minmax(0, 1fr); gap: 20px; margin-top: 18px; border-top: 1px solid var(--line, #dce1e8); padding-top: 18px; }
.ta-tree-panel { min-width: 0; }
.ta-tree-tools { margin-bottom: 10px; }
.ta-tree-tools select { min-width: 0; flex: 1; }
.ta-tree { max-height: 64dvh; overflow: auto; border: 1px solid var(--line, #dce1e8); border-radius: 8px; padding: 5px; }
.ta-tree-item { width: 100%; text-align: left; display: flex; align-items: flex-start; gap: 7px; padding: 8px 10px; background: transparent; border: 0; border-radius: 6px; color: inherit; line-height: 1.35; cursor: pointer; }
.ta-tree-item span:last-child { overflow-wrap: anywhere; }
.ta-tree-item[aria-selected=true] { background: var(--soft, #edf2fa); color: var(--accent, #2858ab); }
.ta-tree-item:hover, .ta-source-item:hover { background: var(--soft, #f1f4f8); }
.ta-block-editor { min-width: 0; }
.ta-block-editor h3, .ta-word h3, .ta-config h3, .ta-preview h3, .ta-versions h3 { margin: 0 0 12px; font-size: 15px; }
.ta-two-fields { display: grid; grid-template-columns: minmax(0, 1fr) 160px; gap: 12px; }
.ta-word, .ta-config { border-top: 1px solid var(--line, #dce1e8); padding: 14px 0 2px; }
.ta-config select { width: min(340px, 100%); }
.ta-evidence { margin: 18px 0; border-top: 1px solid var(--line, #dce1e8); padding-top: 12px; }
.ta-evidence summary, .ta-advanced summary { cursor: pointer; font-weight: 500; }
.ta-evidence-group { padding: 10px 0; }
.ta-evidence-group h4 { font-size: 13px; margin: 8px 0; }
.ta-evidence-row { padding: 12px; border: 1px solid var(--line, #dce1e8); border-radius: 7px; margin-bottom: 9px; }
.ta-evidence-row details { margin-bottom: 12px; }
.ta-advanced { margin-top: 12px; }
.ta-advanced > .ta-field { margin-top: 12px; }
.ta-status { min-height: 20px; margin: 5px 0; font-size: 13px; color: var(--muted, #637087); }
.ta-error { color: var(--danger, #b42333); font-size: 13px; white-space: pre-wrap; overflow-wrap: anywhere; }
.ta-error:empty { display: none; }
.ta-preview { margin-top: 18px; padding: 16px; border: 1px solid var(--line, #dce1e8); border-radius: 8px; }
.ta-preview p { line-height: 1.5; }
.ta-issues { padding-left: 22px; line-height: 1.5; }
.ta-attention { color: var(--danger, #a75119); }
.ta-versions { border-top: 1px solid var(--line, #dce1e8); padding-top: 18px; margin-top: 18px; overflow-x: auto; }
.ta-history-table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 13px; }
.ta-history-table th, .ta-history-table td { text-align: left; padding: 10px 8px; border-bottom: 1px solid var(--line, #dce1e8); overflow-wrap: anywhere; }
.ta-history-table th:nth-child(1) { width: 28%; }
.ta-history-table th:nth-child(2) { width: 34%; }
.ta-history-table th:nth-child(3) { width: 14%; }
.ta-history-table th:nth-child(4) { width: 24%; }
.ta-sub-scrim { z-index: 80; }
.ta-rule-editor-scrim { z-index: 90; }
.ta-confirm { width: min(540px, 100%); }
.ta-confirm .ta-field:has(input[type=checkbox]) { flex-direction: row-reverse; align-items: flex-start; justify-content: flex-end; line-height: 1.45; }
.ta-confirm input[type=checkbox] { width: auto; min-height: auto; margin-top: 3px; flex-shrink: 0; }
.ta-source-modal { width: min(650px, 100%); max-height: calc(100dvh - 40px); overflow: auto; }
.ta-source-modal .ta-inline { flex-wrap: nowrap; }
.ta-source-results { max-height: 38dvh; overflow: auto; margin: 10px 0; border: 1px solid var(--line, #dce1e8); border-radius: 7px; }
.ta-source-item { display: flex; width: 100%; border: 0; border-bottom: 1px solid var(--line, #dce1e8); padding: 11px; align-items: center; gap: 9px; background: transparent; text-align: left; }
.ta-source-item.selected { background: var(--soft, #eaf1fc); }
.ta-remove-block { margin-top: 12px; }
.template-authoring-entry { flex-shrink: 0; display: inline-flex; align-items: center; gap: 6px; }
.template-authoring-entry svg { width: 16px; height: 16px; }
.ta-body [hidden], .ta-scrim [hidden] { display: none !important; }
@media (max-width: 720px) {
 .ta-scrim { padding: 8px; align-items: stretch; }
 .ta-modal { max-height: calc(100dvh - 16px); width: 100%; }
 .ta-body { padding: 12px; }
 .ta-layout { grid-template-columns: minmax(0,1fr); gap: 14px; }
 .ta-tree { max-height: 26dvh; }
 .ta-toolbar { gap: 6px; }
 .ta-toolbar button { min-height: 40px; flex: 1 1 45%; }
 .ta-inline button { min-height: 40px; }
 .ta-two-fields { grid-template-columns: minmax(0,1fr) 108px; gap: 8px; }
 .ta-confirm, .ta-source-modal { margin: auto; max-height: calc(100dvh - 16px); }
 .ta-history-table { min-width: 470px; }
 .ta-close span:last-child { display: none; }
}

.ta-field-settings{border-top:1px solid var(--line2);padding:14px 0;margin-top:8px}.ta-field-settings>summary{cursor:pointer;font-weight:600;margin-bottom:12px}.ta-field-settings .ta-field:has(input[type=checkbox]){flex-direction:row;align-items:center;justify-content:space-between}.ta-field-settings input[type=checkbox]{width:18px;min-height:18px;height:18px}.ta-formula-fields{display:grid;grid-template-columns:1fr 1fr;gap:6px}.ta-occurrence{border:1px solid var(--line2);padding:12px;border-radius:8px;margin-bottom:12px}.ta-word-marker{display:block;padding:8px 10px;background:var(--surface-2);border-radius:6px;margin-bottom:10px;user-select:all;overflow-wrap:anywhere}.ta-body .ta-meta,.ta-body .ta-toolbar{margin:0}.ta-block-editor .ta-remove-block{font-size:12px}

.ta-overview,.ta-assets{border:1px solid var(--line2);border-radius:10px;padding:12px 16px}.ta-overview>summary,.ta-assets>summary{font-weight:600;cursor:pointer}.ta-overview[open]>summary,.ta-assets[open]>summary{margin-bottom:14px}.ta-more-actions{position:relative;flex:0 0 auto}.ta-more-panel{position:absolute;right:0;top:calc(100% + 6px);z-index:5;width:240px;padding:6px;border:1px solid var(--line2);border-radius:10px;background:var(--surface,#fff);box-shadow:0 8px 24px #19264024}.ta-more-panel[hidden]{display:none!important}.ta-more-panel>button{display:flex;width:100%;justify-content:flex-start;margin:0 0 4px}.ta-toolbar{position:static;padding:0;background:var(--surface)}.ta-assets .ta-word,.ta-assets .ta-config{border:0}.ta-layout{border-top:0;padding-top:0;margin-top:0}.ta-preview[hidden]{display:none!important}
.tp-modal{width:min(1000px,calc(100vw - 32px));max-height:calc(100dvh - 48px);display:flex;flex-direction:column}.tp-modal>.body{overflow:auto;min-height:0}.tp-modal>.head{display:flex;align-items:center;gap:12px}.tp-modal>.head>b{flex:1}.tp-modal>.mbtns{padding:16px 24px;margin:0;flex-shrink:0;border-top:1px solid var(--line,#e3e7f0)}.tp-grid{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,2fr);gap:24px}.tp-list{display:grid;gap:8px;margin:12px 0;max-height:380px;overflow:auto}.tp-item{color:var(--ink,#29324b);text-align:left;background:transparent;border:1px solid var(--line,#e3e7f0);border-radius:8px;padding:12px;cursor:pointer}.tp-item small{display:block;margin-top:6px;white-space:normal}.tp-pane{min-width:0}.tp-pane input,.tp-pane textarea{width:100%;box-sizing:border-box;margin:6px 0 16px}.tp-text,.tp-comparison pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;line-height:1.5}.tp-comparison{max-height:320px;overflow:auto}@media(max-width:700px){.tp-grid{grid-template-columns:1fr}.tp-list{max-height:160px}}

.tpc-modal{width:min(640px,calc(100vw - 32px));max-height:calc(100dvh - 48px);display:flex;flex-direction:column}.tpc-modal>.head{display:flex;align-items:center;justify-content:space-between;gap:16px}.tpc-modal>.body{overflow:auto;min-height:0}.tpc-modal>.mbtns{padding:16px 24px;margin:0;border-top:1px solid var(--line,#e3e7f0);flex-shrink:0}.tpc-modal input:not([type=checkbox]),.tpc-modal textarea,.tpc-modal select{width:100%;box-sizing:border-box}.tpc-check{display:flex;align-items:center;gap:8px;margin-bottom:16px}.tpc-check input{width:18px;height:18px}

.td-entries{display:grid;gap:8px;margin:12px 0}.td-entry{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:center}.td-entry input{margin:0}.td-entry button{padding:8px}.tp-pane>.primary{margin:12px 0 0 12px}

/* Сравнение содержимого использует компоненты и цветовые токены Диска. */
.content-compare-scrim{z-index:70}
.content-compare-modal{width:min(1080px,100%);font-size:14.5px}
.content-compare-modal .head .bi{display:inline-flex;color:var(--c-doc)}
.content-compare-name{margin:0;font-weight:600;overflow-wrap:anywhere}
.content-compare-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.content-compare-form>label{display:grid;gap:6px;min-width:0;font-weight:600}
.content-compare-form select{width:100%;min-width:0;font:inherit;font-weight:400;padding:9px 12px;color:var(--ink);background:var(--surface);border:1px solid var(--line2);border-radius:10px}
.content-compare-actions{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}
.content-compare-hint,.content-compare-status,.content-compare-error{margin:0}
.content-compare-hint:empty,.content-compare-status:empty,.content-compare-error:empty,.content-compare-result:empty{display:none}
.content-compare-error{color:var(--warn);overflow-wrap:anywhere}
.content-compare-result,.content-compare-report{display:flex;flex-direction:column;gap:14px;min-width:0}
.content-compare-notice{padding:12px 14px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--line)}
.content-compare-notice.is-partial{border-left:3px solid var(--star)}
.content-compare-notice p{margin:6px 0 0}
.content-compare-scope,.content-compare-selection{margin:0;font-size:13px}
.content-compare-details>summary{cursor:pointer;color:var(--muted);font-size:13px;overflow-wrap:anywhere}
.content-compare-details[open]>summary{margin-bottom:10px}
.content-compare-summary{overflow-x:auto;max-width:100%}
.content-compare-summary table{width:100%;border-collapse:collapse;font-size:13px}
.content-compare-summary th,.content-compare-summary td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
.content-compare-summary th:first-child{text-align:left}
.content-compare-summary thead{color:var(--muted)}
.content-compare-summary p{font-size:12.5px;margin:10px 0 0}
.content-compare-tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);padding-bottom:8px;flex-wrap:wrap}
.content-compare-tabs button[aria-selected=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}
.content-compare-changes{display:flex;flex-direction:column;gap:12px;min-width:0;scroll-margin:12px}
.content-compare-change{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:14px;box-shadow:var(--shadow-sm);min-width:0}
.content-compare-change-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.content-compare-change-head h3{font-size:14.5px;margin:0}
.content-compare-change-head>.muted{font-size:12.5px}
.content-compare-operation{font-size:12px}
.content-compare-change[data-operation=added] .content-compare-operation{color:var(--ok)}
.content-compare-change[data-operation=removed] .content-compare-operation{color:var(--warn)}
.content-compare-change[data-operation=modified] .content-compare-operation{color:var(--accent-ink)}
.content-compare-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-bottom:10px}
.content-compare-fragment{min-width:0}
.content-compare-fragment h4{font-size:12.5px;color:var(--muted);margin:0 0 6px;font-weight:600}
.content-compare-fragment p{font-size:13px;margin:0}
.content-compare-text{white-space:pre-wrap;overflow-wrap:anywhere;max-height:280px;overflow:auto;margin:0;font:inherit;background:var(--surface-2);border-radius:8px;padding:10px}
.content-compare-attributes{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 10px;font-size:12.5px;margin:8px 0 0}
.content-compare-attributes dt{color:var(--muted)}
.content-compare-attributes dd{margin:0;overflow-wrap:anywhere}
.content-compare-locations,.content-compare-locations>div{display:flex;flex-direction:column;gap:6px;min-width:0}
.content-compare-locations code,.content-compare-reasons code{display:block;white-space:pre-wrap;overflow-wrap:anywhere;font:12px var(--mono);color:var(--muted)}
.content-compare-reasons{display:flex;flex-direction:column;gap:10px;max-height:280px;overflow:auto}
.content-compare-reason{font-size:13px}
.content-compare-reason summary{font-size:12px;color:var(--muted);cursor:pointer}
.content-compare-pager{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}
.content-compare-pager[hidden]{display:none}
.content-compare-modal [hidden]{display:none}
@media(max-width:600px){
 .content-compare-scrim{padding:12px 8px}
 .content-compare-modal .head{padding:12px 14px}
 .content-compare-modal .body{padding:14px}
 .content-compare-form,.content-compare-columns{grid-template-columns:minmax(0,1fr)}
 .content-compare-actions button{padding:8px 11px}
 .content-compare-change{padding:12px}
 .content-compare-tabs button{font-size:13px;padding:8px 10px}
 .content-compare-attributes{grid-template-columns:minmax(0,1fr)}
}

.rd-template-runtime{
  --app-header-height:60px;
  --bg:#eef1f8; --surface:#ffffff; --surface-2:#f6f8fc;
  --ink:#1f2a44; --muted:#7b8698; --faint:#a7b0c4;
  --line:#eaeef6; --line2:#dde3ee;
  --accent:#4c6fff; --accent-soft:#eaeeff; --accent-ink:#3a5bef;
  --ok:#1aa564; --warn:#f2544b; --star:#f6b83f; --track:#eef1f8;
  --c-doc:#4c6fff; --c-txt:#8a94ad; --c-pdf:#f2544b; --c-xls:#1aa564; --c-ppt:#f39c3d; --c-img:#12b5a5; --c-any:#8a94ad;
  --radius:14px; --radius-lg:18px;
  --shadow:0 1px 2px rgba(31,42,68,.04), 0 12px 34px -18px rgba(31,42,68,.22);
  --shadow-sm:0 1px 2px rgba(31,42,68,.05), 0 6px 16px -10px rgba(31,42,68,.2);
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:"SF Mono",ui-monospace,Menlo,monospace;
}
.rd-template-runtime *{box-sizing:border-box}
.rd-template-runtime,.rd-template-runtime{height:100%}
.rd-template-runtime{scroll-padding-top:var(--app-header-height)}
.rd-template-runtime{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:14.5px;line-height:1.5;-webkit-font-smoothing:antialiased}
.rd-template-runtime .boot{padding:60px;text-align:center;color:var(--muted)}
.rd-template-runtime button{font:inherit;cursor:pointer;border:0;border-radius:10px;padding:8px 14px;background:var(--accent);color:#fff;transition:filter .12s,background .12s}
.rd-template-runtime button:hover{filter:brightness(1.05)}
.rd-template-runtime button.ghost{background:var(--surface);color:var(--ink);border:1px solid var(--line2)}
.rd-template-runtime button.ghost:hover{border-color:var(--accent);color:var(--accent);filter:none}
.rd-template-runtime button.sm{padding:5px 10px;font-size:13px;border-radius:8px}
.rd-template-runtime button.danger{background:#fdeceb;color:var(--warn)}
.rd-template-runtime button.danger:hover{filter:none;background:#fadedb}
.rd-template-runtime button:disabled{opacity:.5;cursor:not-allowed}
.rd-template-runtime input,.rd-template-runtime textarea{font:inherit;padding:9px 12px;border:1px solid var(--line2);border-radius:10px;background:var(--surface);color:var(--ink);width:100%}
.rd-template-runtime textarea{resize:vertical}
.rd-template-runtime .mono{font-family:var(--mono);font-size:12.5px}
.rd-template-runtime .muted{color:var(--muted)}

/* ---------- login / стартовая ---------- */
.rd-template-runtime .brandwrap .dc{color:#0088BB;font-weight:800}
.rd-template-runtime .login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;
  background:radial-gradient(1000px 480px at 50% -8%,rgba(76,111,255,.12),transparent 62%),radial-gradient(620px 460px at 88% 116%,rgba(0,136,187,.08),transparent 55%),var(--bg);}
.rd-template-runtime .hero{max-width:540px;width:100%;text-align:center;display:flex;flex-direction:column;align-items:center;gap:20px}
.rd-template-runtime .hero .word{display:flex;align-items:center;gap:13px;font-size:38px;font-weight:800;letter-spacing:-.01em}
.rd-template-runtime .hero .word .logo{display:inline-flex;line-height:1;font-size:46px}
.rd-template-runtime .hero .tag{font-family:var(--mono);font-size:12px;letter-spacing:.36em;text-transform:uppercase;color:#0088BB;font-weight:600;margin-top:-6px}
/* ⚠️ АБЗАЦЫ ЭКРАНА ВХОДА: РОВНЫЕ СТРОКИ И ОДИН БЛОК ВМЕСТО ТРЁХ ОСТРОВОВ.
   Владелец: «странное форматирование текста». Беды было две, обе от раскладки, а не
   от слов. Первая: при выключке по центру и пределе 46ch последняя строка каждого
   абзаца оставалась висеть коротким огрызком («дальше — написано в письме.»,
   ««Спам».») — по центру такой огрызок виден куда сильнее, чем при выключке влево.
   text-wrap:balance раскладывает абзац на строки РОВНОЙ длины и огрызок убирает.
   Вторая: зазор .hero стоит 20 точек и одинаков для всего — заголовка, абзацев,
   кнопки. Три абзаца подряд разъезжались на те же 20 и читались тремя отдельными
   сообщениями. Между соседними абзацами зазор сведён к 8: это один текст. */
.rd-template-runtime .hero p{color:var(--muted);font-size:16px;line-height:1.6;margin:0;max-width:44ch;
  text-wrap:balance}
.rd-template-runtime .hero p + p{margin-top:-12px}

/* ══ КАРТОЧКА ВХОДА. ЧИСЛА СВЕРЕНЫ С ТЕМОЙ KEYCLOAK, А НЕ ПОДОБРАНЫ. ═══════════════
   Владелец, увидев переход с экрана Keycloak на наш: «зачем, почему нельзя открывать
   на предыдущей странице в том же дизайне?». На той странице — нельзя: форма стучится
   в наш сервер, а он на другом домене, и ради этого пришлось бы открыть CORS чужому
   экрану входа. Выглядеть одинаково — обязаны.
   Каждое число взято из stand/keycloak-theme/robodoc.css:
     ширина  424 = --col 360 + --pad 32 × 2;
     поле    32  = --pad;
     радиус  18  = --radius-lg;
     тень    --shadow-card: 0 2px 4px rgba(22,29,46,.05), 0 30px 70px -40px rgba(22,29,46,.4);
     заголовок 25/650/-.025em — #kc-page-title.
   Выключка ВЛЕВО, а не по центру: у Keycloak она левая, и центрованный текст рядом
   с её карточкой читался бы другой страницей — то самое, от чего уходим. */
.rd-template-runtime .authcard{width:100%;max-width:424px;box-sizing:border-box;padding:32px;
  background:var(--surface);border:1px solid var(--line);border-radius:18px;
  box-shadow:0 2px 4px rgba(22,29,46,.05),0 30px 70px -40px rgba(22,29,46,.4);
  display:flex;flex-direction:column;align-items:stretch;gap:18px;text-align:left}
.rd-template-runtime .authcard > p{max-width:none;text-align:left;margin:0}
.rd-template-runtime .authcard p + p{margin-top:-6px}
.rd-template-runtime .authcard .tag{margin:0;text-align:left;letter-spacing:.22em}
.rd-template-runtime .authcard .cta,.rd-template-runtime .authcard .ghost{width:100%}
.rd-template-runtime .authcard .foot{margin-top:4px;padding-top:16px;border-top:1px solid var(--line);
  text-align:left}
.rd-template-runtime .authcard .feats{justify-content:flex-start}
.rd-template-runtime .authcard .lnkrow{justify-content:flex-start}
.rd-template-runtime .hero .cta{padding:12px 34px;font-size:16px;border-radius:12px;box-shadow:0 12px 28px -12px rgba(76,111,255,.6)}
.rd-template-runtime .hero .feats{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:8px}
.rd-template-runtime .hero .feats .f{font-size:13px;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:100px;padding:8px 15px}
.rd-template-runtime .hero .foot{font-size:12.5px;color:var(--faint);margin-top:10px}
/* Форма на экранах входа, регистрации и восстановления — ОДНА на все три: одинаковая ширина,
   одинаковые отступы, одинаковый кегль. Раньше эти же значения стояли строкой стиля прямо в
   разметке двух экранов регистрации; третий экран рядом с ними неизбежно разошёлся бы на
   пару точек, и человек читал бы это как «другая страница». */
.rd-template-runtime .authform{width:100%;max-width:360px;text-align:left;display:flex;flex-direction:column;gap:12px}
/* Строка со ссылкой между кнопками (вход → «Не помню пароль») и строка «к кому идти».
   Отрицательный отступ сверху убирает лишний воздух: у .hero между детьми 20 точек, а ссылка
   принадлежит кнопке над собой, а не следующему блоку. */
.rd-template-runtime .hero .lnkrow{font-size:13.5px;margin-top:-8px}
.rd-template-runtime .hero a{color:var(--accent-ink);text-decoration:none;border-bottom:1px solid var(--accent-soft)}
.rd-template-runtime .hero a:hover{border-bottom-color:var(--accent-ink)}

/* ---------- top bar ---------- */
.rd-template-runtime .top{height:60px;display:flex;align-items:center;gap:16px;padding:0 22px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:6}
.rd-template-runtime .top .brand{font-weight:700;font-size:17px;color:var(--ink)}
.rd-template-runtime .searchwrap{position:relative;flex:1;max-width:520px;margin:0 auto}
.rd-template-runtime .searchwrap .si{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--faint);font-size:16px}
.rd-template-runtime .search{border-radius:100px;background:var(--surface-2);border:1px solid transparent;padding-left:38px;padding-right:38px;height:40px}
/* Крестик сброса живёт В САМОМ поле и появляется, только когда есть что сбрасывать:
   пустая кнопка рядом с пустым полем — обещание действия, которого нет. */
.rd-template-runtime .sclear{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:none;align-items:center;justify-content:center;
  width:26px;height:26px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--faint);cursor:pointer;line-height:0}
.rd-template-runtime .sclear.on{display:inline-flex}
.rd-template-runtime .sclear:hover{background:var(--surface-2);color:var(--ink);filter:none}
/* Подсказки под строкой поиска. z-index выше шапки: список выпадает поверх содержимого. */
.rd-template-runtime .sugg{position:absolute;left:0;right:0;top:46px;display:none;flex-direction:column;background:var(--surface);
  border:1px solid var(--line2);border-radius:12px;box-shadow:0 18px 44px -16px rgba(31,42,68,.4);overflow:hidden;z-index:20}
.rd-template-runtime .sugg.on{display:flex}
.rd-template-runtime .sugg-i{display:flex;align-items:center;gap:9px;padding:9px 13px;cursor:pointer;font-size:13.5px;color:var(--ink)}
.rd-template-runtime .sugg-i:hover{background:var(--accent-soft);color:var(--accent-ink)}
.rd-template-runtime .sugg-i .bi{display:inline-flex;color:var(--faint)}
.rd-template-runtime .sugg-i .bi svg{width:16px;height:16px}
.rd-template-runtime .sugg-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rd-template-runtime .sugg-h{font-size:11.5px;color:var(--faint);flex:none}
.rd-template-runtime .search:focus{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}
.rd-template-runtime .top .who{color:var(--muted);font-size:14px}

/* ---------- layout ---------- */
.rd-template-runtime .layout{display:grid;grid-template-columns:250px 1fr;min-height:calc(100vh - var(--app-header-height))}
.rd-template-runtime .layout.drop{outline:2px dashed var(--accent);outline-offset:-10px;background:var(--accent-soft)}
.rd-template-runtime .side{padding:18px 14px;background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:6px}
.rd-template-runtime .create{width:100%;padding:12px;border-radius:12px;font-weight:600;font-size:15px;box-shadow:0 10px 24px -12px rgba(76,111,255,.6);margin-bottom:8px}
.rd-template-runtime .nav{list-style:none;margin:0;padding:0}
.rd-template-runtime .nav .nav-i{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:10px;cursor:pointer;color:var(--ink);font-size:14.5px}
.rd-template-runtime .nav .nav-i:hover{background:var(--surface-2)}
.rd-template-runtime .nav .nav-i.active{background:var(--accent);color:#fff;font-weight:600;box-shadow:0 10px 22px -12px rgba(76,111,255,.7)}
.rd-template-runtime .nav .nav-i.sub{padding-left:24px}
.rd-template-runtime .nav .nav-i .ni{display:inline-flex;align-items:center;justify-content:center;width:20px;font-size:18px;color:var(--faint);flex:none}
.rd-template-runtime .nav .nav-i.active .ni{color:#fff}
.rd-template-runtime .nav .nav-i .del{margin-left:auto;display:inline-flex;opacity:0;color:var(--faint);font-size:14px;cursor:pointer}
.rd-template-runtime .nav .nav-i:hover .del{opacity:.8}
.rd-template-runtime .nav .nav-i .del:hover{color:var(--warn);opacity:1}
.rd-template-runtime .group{display:flex;align-items:center;justify-content:space-between;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:14px 8px 4px}
.rd-template-runtime .group .addf{cursor:pointer;color:#fff;background:var(--accent);width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:14px;padding:0;box-shadow:0 6px 14px -8px rgba(76,111,255,.8)}
.rd-template-runtime .group .addf:hover{filter:brightness(1.06)}
.rd-template-runtime .storage{margin-top:auto;display:flex;align-items:center;gap:12px;padding:13px 14px;background:var(--surface-2);border-radius:14px}
.rd-template-runtime .storage .gwrap{flex:none;line-height:0}
.rd-template-runtime .storage .sgrow{min-width:0}
.rd-template-runtime .storage .slabel{font-size:12px;color:var(--muted);margin-bottom:3px;font-weight:600}
.rd-template-runtime .storage .sused{font-size:12.5px;color:var(--ink);font-weight:600}

/* ---------- main ---------- */
.rd-template-runtime .main{padding:22px 26px}
.rd-template-runtime .toolbar{display:flex;align-items:center;gap:10px;margin-bottom:16px}
.rd-template-runtime .toolbar h2{margin:0;font-size:21px}
.rd-template-runtime .toolbar .cnt2{color:var(--faint);font-size:14px;font-variant-numeric:tabular-nums}
.rd-template-runtime .vtoggle{display:inline-flex;background:var(--surface);border:1px solid var(--line2);border-radius:10px;overflow:hidden}
.rd-template-runtime .vtoggle button{background:var(--surface);color:var(--muted);border-radius:0;padding:6px 11px;font-size:16px}
.rd-template-runtime .vtoggle button.on{background:var(--accent-soft);color:var(--accent-ink)}
.rd-template-runtime .empty{padding:60px;text-align:center;color:var(--muted);background:var(--surface);border-radius:var(--radius);border:1px dashed var(--line2)}

/* type icon */
.rd-template-runtime .ic{width:40px;height:40px;flex:none;border-radius:11px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:700;letter-spacing:.02em;overflow:hidden;background:var(--c-any)}
.rd-template-runtime .ic.ic-doc{background:var(--c-doc)} .rd-template-runtime .ic.ic-txt{background:var(--c-txt)} .rd-template-runtime .ic.ic-pdf{background:var(--c-pdf)}
.rd-template-runtime .ic.ic-xls{background:var(--c-xls)} .rd-template-runtime .ic.ic-ppt{background:var(--c-ppt)} .rd-template-runtime .ic.ic-img{background:var(--c-img)} .rd-template-runtime .ic.ic-any{background:var(--c-any)}
.rd-template-runtime .ic.big{width:100%;height:100%;border-radius:0;font-size:15px}
.rd-template-runtime .ic .thumb{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .2s}
.rd-template-runtime .ic .thumb.loaded{opacity:1}

/* list */
.rd-template-runtime .docs{display:flex;flex-direction:column;gap:8px}
.rd-template-runtime .doc{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px;box-shadow:var(--shadow-sm);transition:box-shadow .12s,border-color .12s}
.rd-template-runtime .doc:hover{border-color:var(--line2);box-shadow:var(--shadow)}
.rd-template-runtime .doc .grow{flex:1;min-width:0}
.rd-template-runtime .doc .nm{font-weight:600;cursor:pointer;display:flex;align-items:center;gap:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rd-template-runtime .doc .nm:hover{color:var(--accent)}
.rd-template-runtime .doc .nm .shq{font-size:12px;color:var(--faint)}
.rd-template-runtime .doc .meta{color:var(--faint);font-size:12.5px;margin-top:2px}
.rd-template-runtime .obadge{width:26px;height:26px;flex:none;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}
.rd-template-runtime .star{background:none;border:0;color:#d7deea;font-size:17px;padding:2px 4px;line-height:1}
.rd-template-runtime .star:hover{color:var(--star);filter:none}
.rd-template-runtime .star.on{color:var(--star)}
.rd-template-runtime .dots{background:none;border:0;color:var(--faint);font-size:19px;padding:2px 8px;border-radius:8px;line-height:1}
.rd-template-runtime .dots:hover{background:var(--surface-2);color:var(--ink);filter:none}

/* grid */
.rd-template-runtime .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px}
.rd-template-runtime .tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);cursor:pointer;transition:box-shadow .12s,border-color .12s}
.rd-template-runtime .tile:hover{border-color:var(--line2);box-shadow:var(--shadow)}
.rd-template-runtime .tile .tprev{height:112px;background:var(--surface-2);display:flex;align-items:center;justify-content:center}
.rd-template-runtime .tile .tfoot{display:flex;align-items:center;gap:6px;padding:9px 11px}
.rd-template-runtime .tile .tnm{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}

/* контекстное меню */
.rd-template-runtime .ctxmenu{position:fixed;z-index:40;background:var(--surface);border:1px solid var(--line2);border-radius:12px;box-shadow:0 16px 40px -14px rgba(31,42,68,.4);padding:6px;min-width:200px}
.rd-template-runtime .ctxmenu .ci{padding:9px 12px;border-radius:8px;font-size:14px;cursor:pointer;color:var(--ink)}
.rd-template-runtime .ctxmenu .ci:hover{background:var(--surface-2)}
.rd-template-runtime .ctxmenu .ci.danger{color:var(--warn)}
.rd-template-runtime .ctxmenu .ci.danger:hover{background:#fdeceb}
.rd-template-runtime .ctxmenu .ci-sep{height:1px;background:var(--line);margin:5px 4px}

/* chooser / modal общие */
/* ⚠️ ПРОКРУЧИВАЕТСЯ ТЕЛО ОКНА, А НЕ ВСЁ ОКНО, И РЯД КНОПОК ЛИПНЕТ К НИЗУ.
   Так было: overflow висел на притемняющем слое (.scrim), окно росло свободно и вылезало
   за экран целиком. Замерено на живом стенде: 1600x1000 — окно 1026 px при экране 1000
   сразу после открытия, «Отправить» уже за нижней кромкой; со снимком 1406 px, а подводка
   к приложенной картинке уводила шапку на -440 — отмотал вверх, чтобы увидеть заголовок,
   и потерял кнопки. 390x844 — 1162 без снимка и 1482 со снимком, до «Отправить» надо было
   прокрутить 706 px. Шапка и кнопки не сходились на экране НИКОГДА.
   Теперь окно — столбец на всю доступную высоту: шапка стоит, тело прокручивается, ряд
   кнопок прилипает к низу тела. То же устройство, что у окна обращения на витрине
   (.sup-win/.sup-body/.sup-btns в landing.html), и по тому же доводу.
   Правило общее для ВСЕХ окон приложения: выбор из списка (.chooser), загрузка файлов,
   «такой файл уже есть», «документ изменили, пока вы работали», окна modal() с кнопками
   (.mbtns) и окно обращения.
   Стережёт TestSupportОкнаПриложенияДержатШапкуИКнопки (webmodal_layout_test.go); что сторож
   не пустой, доказывает TestSupportПорчаРаскладкиОкнаКраснеет — он ломает каждую опору по
   очереди ровно тем, чем она была до починки, и требует от сторожа назвать поломку. */
/* overscroll-behavior:contain — прокрутка НЕ уходит сквозь окно на список под ним. Раньше её
   съедал сам слой (он прокручивался), а теперь слой стоит — и без этой строки колесо над
   затемнением увозило страницу за окном: замерено, 600 px за один поворот колеса. */
.rd-template-runtime .scrim{position:fixed;inset:0;background:rgba(31,42,68,.34);display:flex;align-items:flex-start;justify-content:center;padding:34px 16px;z-index:20;overflow:hidden;overscroll-behavior:contain}
.rd-template-runtime .modal{background:var(--surface);border-radius:16px;width:min(860px,100%);box-shadow:0 24px 70px -22px rgba(31,42,68,.5);overflow:hidden;
  max-height:100%;display:flex;flex-direction:column}
.rd-template-runtime .modal .head{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line);flex:none}
.rd-template-runtime .modal .head input.title{font-size:17px;font-weight:600;border:1px solid transparent;background:transparent;padding:6px 8px}
.rd-template-runtime .modal .head input.title:hover,.rd-template-runtime .modal .head input.title:focus{border-color:var(--line2);background:var(--surface-2)}
.rd-template-runtime .modal .head b{font-size:16px}
.rd-template-runtime .modal .head .x{margin-left:auto;background:none;color:var(--muted);font-size:20px;padding:2px 8px}
/* Тело — ЕДИНСТВЕННОЕ, что прокручивается в окне. min-height:0 обязателен: без него
   flex-элемент не даёт себя сжать ниже содержимого, и потолок окна не сработал бы вовсе. */
.rd-template-runtime .modal .body{padding:18px 20px;display:flex;flex-direction:column;gap:14px;
  overflow:auto;overscroll-behavior:contain;flex:1 1 auto;min-height:0}
.rd-template-runtime .modal .row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.rd-template-runtime .chooser{display:flex;flex-direction:column;gap:8px}
.rd-template-runtime .chooser button{justify-content:flex-start;text-align:left}
/* Предупреждение внутри окна: файл на диске изменили встречно, и следующее нажатие уберёт
   чужую правку. Жёлтая плашка, а не красная: это не отказ, а развилка — человек вправе
   заменить, но обязан знать цену. Тот же приём, что у .admnotice в админских разделах. */
.rd-template-runtime .warnbox{display:flex;align-items:flex-start;gap:10px;padding:11px 14px;border-radius:12px;
  background:#fff6e8;border:1px solid #f0d9b0;color:#7a5310;font-size:13px;line-height:1.45}
.rd-template-runtime .warnbox .bi{flex:none;margin-top:1px;color:#d9821f}
.rd-template-runtime .warnbox b{color:#5c3d08}
/* Окно «документ изменили, пока вы работали»: под кнопками — место для ответа на «покажи,
   что на диске». Пока не спрашивали, места оно не занимает (:empty), иначе в окне зияла бы
   пустая полоса под тремя кнопками выбора. */
.rd-template-runtime .stalenote{font-size:13px;color:var(--muted);line-height:1.45}
.rd-template-runtime .stalenote:empty{display:none}
/* Чужая версия текста прямо в окне. Высоту ограничиваем: файл бывает в тысячи строк, и без
   потолка окно вырастало бы за экран вместе с кнопками выбора — до них было бы не дойти. */
.rd-template-runtime .stalepre{margin:0;max-height:34vh;overflow:auto;white-space:pre-wrap;word-break:break-word;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.45;
  color:var(--ink);background:var(--surface-2);border:1px solid var(--line2);border-radius:10px;padding:10px 12px}

.rd-template-runtime .sec{border:1px solid var(--line);border-radius:var(--radius)}
.rd-template-runtime .sec>.sh{display:flex;align-items:center;gap:8px;padding:11px 14px;cursor:pointer;user-select:none}
.rd-template-runtime .sec>.sh .chev{margin-left:auto;color:var(--faint);transition:transform .15s}
.rd-template-runtime .sec.open>.sh .chev{transform:rotate(90deg)}
.rd-template-runtime .sec>.sc{display:none;padding:0 14px 14px}
.rd-template-runtime .sec.open>.sc{display:block}
.rd-template-runtime .ta{width:100%;min-height:240px;font-family:var(--mono);font-size:13px}
.rd-template-runtime .vlist,.rd-template-runtime .clist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.rd-template-runtime .vlist li,.rd-template-runtime .clist li{display:flex;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-size:13.5px}
.rd-template-runtime .clist li{align-items:flex-start;flex-direction:column;gap:3px}
.rd-template-runtime .clist .who{font-size:12px;color:var(--muted)}
/* Ответ в ветке: отступ и черта слева — тем же приёмом, что у Drive и Nextcloud. Отступ
   здесь несёт смысл, а не украшает: он и есть единственная подпись «это ответ на верхнее»,
   поэтому у ответа без корня надпись остаётся словами (commentLi, orphan). */
.rd-template-runtime .clist li.reply{margin-left:22px;border-left:3px solid var(--line)}
.rd-template-runtime .clist .creply{width:100%;margin-top:6px}
.rd-template-runtime .pill{display:inline-block;font-family:var(--mono);font-size:11px;padding:2px 8px;border-radius:100px;background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}
.rd-template-runtime .pill.lock{background:#fdf3e5;color:#a06a12;border-color:#f0d9b0}
.rd-template-runtime .diff{font-family:var(--mono);font-size:13px;line-height:1.7;background:var(--surface-2);border-radius:8px;padding:12px;white-space:pre-wrap}
.rd-template-runtime .diff .add{background:#dcf5e4;color:#1a7f4b;border-radius:3px}
.rd-template-runtime .diff .del{background:#fbe0dd;color:#c0392b;text-decoration:line-through;border-radius:3px}

/* toast / upload */
.rd-template-runtime .toast{position:fixed;bottom:22px;right:22px;left:auto;transform:none;background:var(--surface);color:var(--ink);padding:12px 18px;border-radius:12px;font-size:14px;z-index:50;box-shadow:0 16px 40px -14px rgba(31,42,68,.4);border:1px solid var(--line);opacity:0;transition:opacity .2s;font-weight:500}
.rd-template-runtime .toast.show{opacity:1}

/* ---------- line-иконки и компоненты под референс 214 ---------- */
.rd-template-runtime .i{display:block;width:1em;height:1em}
.rd-template-runtime .searchwrap .si{display:flex;align-items:center;line-height:0;font-size:17px}
.rd-template-runtime .dots{font-size:19px} .rd-template-runtime .star{font-size:18px}
.rd-template-runtime .star.on .i{fill:currentColor}
.rd-template-runtime .shq{display:inline-flex;font-size:13px;color:var(--faint)}
.rd-template-runtime .group .addf{display:inline-flex;font-size:14px}
.rd-template-runtime .vtoggle button{display:inline-flex;align-items:center;font-size:16px;padding:7px 11px}
.rd-template-runtime .doc .nm{gap:8px}
.rd-template-runtime .pill.lock{display:inline-flex;align-items:center;gap:4px}
.rd-template-runtime .pi{display:inline-flex;font-size:13px}

/* header actions (Загрузить / Создать) */
.rd-template-runtime .toolbar{flex-wrap:wrap}
.rd-template-runtime .hactions{display:flex;gap:10px}
.rd-template-runtime .hactions button{display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:11px;font-weight:600}
.rd-template-runtime .bi{display:inline-flex;font-size:16px}

/* заголовки секций */
.rd-template-runtime .sechead{font-size:15px;font-weight:700;color:var(--ink);margin:22px 2px 12px}
/* Счётчик внутри заголовка раздела. Своего правила у него не было вовсе: он наследовал
   жирный шрифт и цвет заголовка и вставал вплотную к тексту — «Незаданные настройки0».
   Число здесь подпись к заголовку, а не его часть: тоньше, тише и на отступе. */
.rd-template-runtime .sechead .cnt2{margin-left:8px;font-weight:500;color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}
/* Пояснение к отпечатку кода: стоит рядом с «Открыть код», где его и ищут. */
.rd-template-runtime .template-rule-code-note{font-size:12px;line-height:1.55;margin:10px 0 8px;max-width:78ch}
.rd-template-runtime .template-rule-code-note code{font-size:11.5px}
/* Состояние правила с переключателем: щелчок по всей строке, а не по одной галочке. */
.rd-template-runtime .template-rule-state-row{display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none}
.rd-template-runtime .template-rule-state-row .template-rule-quick{flex:none;width:16px;height:16px;cursor:pointer}

/* карточки категорий */
.rd-template-runtime .cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:14px;margin-bottom:2px}
.rd-template-runtime .catcard{display:flex;align-items:center;gap:13px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:15px 18px;box-shadow:var(--shadow-sm)}
.rd-template-runtime .catic{width:46px;height:46px;flex:none;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:22px}
.rd-template-runtime .catn{font-weight:700;font-size:15px}
.rd-template-runtime .catm{color:var(--faint);font-size:12.5px;margin-top:2px}
.rd-template-runtime .cat-doc .catic{background:#e9edff;color:#4c6fff}
.rd-template-runtime .cat-img .catic{background:#e5f7f0;color:#12b5a5}
.rd-template-runtime .cat-med .catic{background:#f1e9ff;color:#8b5cf6}
.rd-template-runtime .cat-all .catic{background:#fff1e6;color:#f39c3d}

/* карточки папок */
.rd-template-runtime .fcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:14px}
.rd-template-runtime .fcard{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:13px 16px;box-shadow:var(--shadow-sm);cursor:pointer;transition:box-shadow .12s,border-color .12s}
.rd-template-runtime .fcard:hover{border-color:var(--line2);box-shadow:var(--shadow)}
.rd-template-runtime .fcard .ficon{width:40px;height:40px;flex:none;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:22px;background:#fff5e0;color:#f5a623}
.rd-template-runtime .fcard .fgrow{flex:1;min-width:0}
.rd-template-runtime .fcard .fnm{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rd-template-runtime .fcard .fsub{color:var(--faint);font-size:12px;margin-top:2px}

/* заполнение категорий (процентное представление) */
.rd-template-runtime .catcard .cgrow{min-width:0;flex:1}
.rd-template-runtime .catbar{height:6px;border-radius:100px;background:#eef1f8;overflow:hidden;margin-top:8px}
.rd-template-runtime .catfill{height:100%;border-radius:100px;background:var(--accent)}
.rd-template-runtime .cat-doc .catfill{background:#4c6fff}
.rd-template-runtime .cat-img .catfill{background:#12b5a5}
.rd-template-runtime .cat-med .catfill{background:#8b5cf6}
.rd-template-runtime .cat-all .catfill{background:#f39c3d}

/* зона drag-and-drop */
.rd-template-runtime .dropzone{display:flex;align-items:center;gap:12px;justify-content:center;background:var(--surface);border:1.5px dashed var(--line2);border-radius:12px;padding:11px 18px;cursor:pointer;color:var(--muted);transition:border-color .12s,background .12s;margin-bottom:2px}
.rd-template-runtime .dropzone:hover{border-color:var(--accent);color:var(--accent-ink)}
.rd-template-runtime .dropzone.over{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}
.rd-template-runtime .dropzone .dzic{width:34px;height:34px;flex:none;border-radius:9px;display:flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent-ink);font-size:18px}
.rd-template-runtime .dztitle{font-weight:600;color:var(--ink);font-size:13.5px}
.rd-template-runtime .dzsub{font-size:12px;color:var(--faint)}

/* карточка загрузки с процентами */
.rd-template-runtime .upcard{position:fixed;bottom:22px;right:22px;width:340px;max-width:calc(100vw - 32px);background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 44px -16px rgba(31,42,68,.42);z-index:55;overflow:hidden}
.rd-template-runtime .uptop{display:flex;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}
.rd-template-runtime .uphead{font-weight:600;font-size:13.5px;flex:1}
.rd-template-runtime .upx{background:none;color:var(--muted);font-size:15px;padding:2px 6px;display:inline-flex}
.rd-template-runtime .uprows{max-height:220px;overflow:auto;padding:8px 14px 12px}
.rd-template-runtime .uprow{display:grid;grid-template-columns:1fr 92px 42px;align-items:center;gap:8px;padding:6px 0}
.rd-template-runtime .upnm{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rd-template-runtime .upbar{height:6px;border-radius:100px;background:var(--track);overflow:hidden}
.rd-template-runtime .upfill{height:100%;width:0;border-radius:100px;background:linear-gradient(90deg,#4c6fff,#12b5a5);transition:width .15s}
.rd-template-runtime .uppct{font-size:12px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
.rd-template-runtime .uppct.ok{color:var(--ok);font-weight:600}

/* Бургер: только на узком экране, где сайдбар уезжает за край. */
.rd-template-runtime .burger{display:none;background:var(--surface-2);color:var(--muted);border:0;width:38px;height:38px;border-radius:10px;
  align-items:center;justify-content:center;padding:0;flex:none;cursor:pointer;line-height:0}
.rd-template-runtime .burger:hover{background:var(--accent-soft);color:var(--accent-ink);filter:none}
.rd-template-runtime .burger svg{width:20px;height:20px}
/* Затемнение под выехавшим меню. Ниже самого меню, выше всего остального. */
.rd-template-runtime .sidescrim{position:fixed;inset:var(--app-header-height) 0 0 0;background:rgba(20,27,43,.34);z-index:49}

@media(max-width:820px){
  .rd-template-runtime .layout{grid-template-columns:1fr}
  /* Меню не пропадает, а уезжает за левый край и возвращается по бургеру. Раньше здесь
     стояло .side{display:none} — вместе с меню человек терял все разделы, дерево папок,
     метки и «Управление местом», то есть навигацию целиком.
     Селектор с родителем намеренно: ниже по файлу .side переопределяется ещё дважды
     (position:sticky, overflow), и одноклассовое правило отсюда они бы перебили. */
  .rd-template-runtime .layout > .side{display:flex;position:fixed;left:0;top:var(--app-header-height);height:calc(100vh - var(--app-header-height));width:min(280px,84vw);z-index:50;
    overflow-y:auto;transform:translateX(-101%);transition:transform .2s ease;box-shadow:16px 0 44px -28px rgba(20,30,60,.55)}
  .rd-template-runtime.sidenav .layout > .side{transform:none}
  .rd-template-runtime .burger{display:inline-flex}
  .rd-template-runtime .searchwrap{max-width:none}
  .rd-template-runtime .cats,.rd-template-runtime .fcards{grid-template-columns:1fr 1fr}
}
/* Меню открыто, а экран снова широкий (поворот планшета) — скрим обязан исчезнуть вместе
   с накладкой, иначе он невидимо перехватывает нажатия по списку. */
@media(min-width:821px){ .rd-template-runtime .sidescrim{display:none} }
@media (prefers-reduced-motion: reduce){ .rd-template-runtime .side{transition:none} }

/* ---- шапка: аватар, колокол ---- */
.rd-template-runtime .iconbtn{background:var(--surface-2);color:var(--muted);border:0;width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:19px;position:relative}
.rd-template-runtime .iconbtn:hover{background:var(--accent-soft);color:var(--accent-ink);filter:none}
.rd-template-runtime .iconbtn.bell .dot{position:absolute;top:9px;right:10px;width:7px;height:7px;border-radius:50%;background:var(--warn);border:2px solid var(--surface)}
.rd-template-runtime .avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#4c6fff,#12b5a5);color:#fff;font-weight:700;font-size:14px;display:inline-flex;align-items:center;justify-content:center;padding:0;flex:none}

/* ---- панель уведомлений ---- */
.rd-template-runtime .notif{position:fixed;z-index:45;width:340px;max-width:calc(100vw - 24px);background:var(--surface);border:1px solid var(--line2);border-radius:14px;box-shadow:0 18px 44px -14px rgba(31,42,68,.4);overflow:hidden}
.rd-template-runtime .nfhead{padding:12px 16px;font-weight:700;border-bottom:1px solid var(--line)}
.rd-template-runtime .nfbody{max-height:360px;overflow:auto}
.rd-template-runtime .nfrow{display:flex;gap:11px;align-items:flex-start;padding:10px 16px;border-bottom:1px solid var(--line)}
.rd-template-runtime .nfrow:last-child{border-bottom:0}
.rd-template-runtime .nfav{width:32px;height:32px;flex:none;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}
.rd-template-runtime .nfgrow{min-width:0}
.rd-template-runtime .nftext{font-size:13.5px;line-height:1.4}
.rd-template-runtime .nftime{font-size:11.5px;color:var(--faint);margin-top:2px}

/* ---- настройки ---- */
.rd-template-runtime select{font:inherit;padding:8px 11px;border:1px solid var(--line2);border-radius:10px;background:var(--surface);color:var(--ink)}
/* РАЗДЕЛ НАСТРОЕК ОТДЕЛЁН ОТ СОДЕРЖИМОГО ЛИНИЕЙ И ВОЗДУХОМ, А НЕ ТОЛЬКО РЕГИСТРОМ.
   Заголовок и строки под ним стояли в одном весе и на одном фоне: «БЕЗОПАСНОСТЬ» читалось
   как ещё одна строка списка, и панель выглядела сплошной лентой. Разделяем тремя вещами
   разом — чертой сверху, отступом и цветом самого заголовка: одного из трёх мало, а вместе
   они дают ту границу, которую человек видит, не читая. */
.rd-template-runtime .setgrp{display:flex;flex-direction:column;gap:8px;padding-top:18px;margin-top:6px;
  border-top:1px solid var(--line)}
.rd-template-runtime .setgrp:first-child{padding-top:0;margin-top:0;border-top:0}
.rd-template-runtime .setlbl{font-size:11.5px;font-weight:700;color:var(--ink);text-transform:uppercase;letter-spacing:.06em;
  opacity:.72}
.rd-template-runtime .setseg{display:inline-flex;background:var(--surface-2);border-radius:11px;padding:4px;gap:4px;align-self:flex-start}
.rd-template-runtime .segbtn{background:transparent;color:var(--muted);border-radius:8px;padding:8px 16px;font-weight:600;font-size:13.5px}
.rd-template-runtime .segbtn.on{background:var(--surface);color:var(--accent-ink);box-shadow:var(--shadow-sm)}
.rd-template-runtime .setrow{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:14px}
.rd-template-runtime .setrow:last-child{border-bottom:0}
/* Строка-переход внутри раздела не должна нести ещё и разделитель снизу: черта раздела уже
   есть сверху, а вторая линия под каждой строкой возвращает ту же сплошную ленту. */
.rd-template-runtime .setgrp .setrow-go+.setrow-go{border-top:1px solid var(--line)}
.rd-template-runtime .setk{color:var(--muted)}

/* ---- шаринг: аватары ---- */
.rd-template-runtime .sharelist{display:flex;flex-direction:column}
.rd-template-runtime .shrow{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}
.rd-template-runtime .shrow:last-child{border-bottom:0}
.rd-template-runtime .shav{width:36px;height:36px;flex:none;border-radius:50%;background:linear-gradient(135deg,#4c6fff,#12b5a5);color:#fff;font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center}
.rd-template-runtime .shgrow{flex:1;min-width:0}
.rd-template-runtime .shnm{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rd-template-runtime .shsub{font-size:11.5px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rd-template-runtime .shperm{font-size:13px;padding:6px 9px}
/* правый блок строки доступа: селектор прав + «×» с зазором (референс 249 — были слиты) */
.rd-template-runtime .shright{display:flex;align-items:center;gap:10px;flex:none}
.rd-template-runtime .shright .shperm{flex:none}
.rd-template-runtime .shx{width:30px;height:30px;padding:0;flex:none;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;font-size:17px}
/* аватар владельца в свёрнутой сводке доступа — акцент + тонкое кольцо */
.rd-template-runtime .mav.own{box-shadow:0 0 0 2px var(--surface),0 0 0 3.5px var(--accent),0 1px 3px rgba(20,30,60,.2)}
/* строка кнопок (обложка: «Заменить» + «Убрать») — зазор, чтобы не слипались (референс 251) */
.rd-template-runtime .btnrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rd-template-runtime .btnrow>button{display:inline-flex;align-items:center;gap:7px}

/* ---- угловой индикатор категории ---- */
.rd-template-runtime .catcard{padding:14px 16px}
.rd-template-runtime .catgg{flex:none;line-height:0}
.rd-template-runtime .catn{font-size:14.5px}
.rd-template-runtime .catm{font-size:12px;color:var(--faint);margin-top:2px}

/* ---- тёмная тема (референс 217) ---- */
.rd-template-runtime.dark{
  --bg:#0e1320; --surface:#161d2e; --surface-2:#1d2739; --ink:#e7ebf5; --muted:#98a3bd; --faint:#6b7793;
  --line:#232d43; --line2:#2e3a54; --accent:#5b7bff; --accent-soft:#1e2842; --accent-ink:#93a8ff; --track:#2a3550;
}
.rd-template-runtime.dark .rd-template-runtime{background:var(--bg)}
.rd-template-runtime.dark .cat-doc .catic{background:#1d2747;color:#8aa0ff}
.rd-template-runtime.dark .cat-img .catic{background:#123430;color:#3fd9c0}
.rd-template-runtime.dark .cat-med .catic{background:#241d40;color:#b39bff}
.rd-template-runtime.dark .cat-all .catic{background:#372814;color:#f3b34a}
.rd-template-runtime.dark .fcard .ficon{background:#33280f;color:#f3b34a}
.rd-template-runtime.dark .obadge,.rd-template-runtime.dark .nfav{background:#1e2842;color:#93a8ff}
.rd-template-runtime.dark .diff .add{background:#123a24;color:#63d38d}
.rd-template-runtime.dark .diff .del{background:#3a1a1a;color:#ea9a92}
.rd-template-runtime.dark .pill.lock{background:#372814;color:#e0b070;border-color:#4a3820}
/* Жёлтое по светлому в тёмной теме слепит — тот же приём, что у .pill.lock выше. */
.rd-template-runtime.dark .warnbox{background:#372814;border-color:#4a3820;color:#e8c48a}
.rd-template-runtime.dark .warnbox .bi{color:#e0b070}
.rd-template-runtime.dark .warnbox b{color:#f0d7a8}
.rd-template-runtime.dark .segbtn.on{background:var(--surface-2)}
.rd-template-runtime.dark .login{background:radial-gradient(1000px 480px at 50% -8%,rgba(91,123,255,.18),transparent 62%),var(--bg)}

/* ---- категории как стат-карты с дугой из угла (205) ---- */
.rd-template-runtime .cats{grid-template-columns:repeat(auto-fill,minmax(215px,1fr))}
.rd-template-runtime .catcard{position:relative;overflow:hidden;display:block;min-height:120px;padding:16px 18px}
.rd-template-runtime .cattop{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.rd-template-runtime .catcard .catic.small{width:38px;height:38px;border-radius:11px;font-size:18px}
.rd-template-runtime .catn{font-size:14.5px;font-weight:700;color:var(--ink)}
.rd-template-runtime .catbot{margin-top:24px;display:flex;align-items:baseline;gap:6px}
.rd-template-runtime .catnum{font-size:27px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.rd-template-runtime .catlbl{font-size:12px;color:var(--faint)}
.rd-template-runtime .catpctbig{position:absolute;right:18px;bottom:15px;font-size:17px;font-weight:800;color:var(--ink)}
.rd-template-runtime .catcg{position:absolute;right:-42px;bottom:-42px;width:150px;height:150px;pointer-events:none}
.rd-template-runtime .catcg .cg{width:150px;height:150px;display:block}

/* ---- модалка загрузки (218) ---- */
.rd-template-runtime .updz{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;border:2px dashed var(--line2);border-radius:14px;padding:30px 20px;cursor:pointer;transition:border-color .12s,background .12s}
.rd-template-runtime .updz:hover,.rd-template-runtime .updz.over{border-color:var(--accent);background:var(--accent-soft)}
.rd-template-runtime .updzic{width:56px;height:56px;border-radius:16px;background:var(--accent-soft);color:var(--accent-ink);display:flex;align-items:center;justify-content:center;font-size:26px}
.rd-template-runtime .updzt{font-weight:700;font-size:17px}
.rd-template-runtime .updzs{font-size:13.5px;color:var(--muted)}
.rd-template-runtime .uplist{display:flex;flex-direction:column;gap:12px}
.rd-template-runtime .uprow2{display:flex;flex-direction:column;gap:6px}
.rd-template-runtime .uphd{display:flex;align-items:center;gap:10px}
.rd-template-runtime .uprow2 .upnm{flex:1;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}
.rd-template-runtime .upmeta{font-size:11.5px;color:var(--faint);white-space:nowrap}
.rd-template-runtime .uprow2 .uppct{font-size:13px;font-weight:600;color:var(--muted);min-width:40px;text-align:right;display:inline-flex;justify-content:flex-end;align-items:center}
.rd-template-runtime .uprow2 .uppct.ok{color:var(--ok)}
.rd-template-runtime .uprow2 .uppct.err{color:var(--warn)}
.rd-template-runtime .upctl{background:none;color:var(--faint);padding:2px;font-size:15px;display:inline-flex}
.rd-template-runtime .upctl:hover{color:var(--warn);filter:none}
.rd-template-runtime .updone{color:var(--ok);font-weight:600;font-size:12.5px}
.rd-template-runtime .upfill.done{background:var(--ok)}

/* ---- аватар-фото ---- */
.rd-template-runtime .avimg{width:100%;height:100%;object-fit:cover;border-radius:50%}
.rd-template-runtime .avatar-lg{width:56px;height:56px;font-size:18px;flex:none}

/* сайдбар: имя папки + ⋮-меню действий */
.rd-template-runtime .nav .nav-i .nvlbl{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rd-template-runtime .nav .nav-i .fmenu{margin-left:auto;background:none;color:var(--faint);padding:2px 4px;display:inline-flex;font-size:16px;opacity:0;border-radius:6px}
.rd-template-runtime .nav .nav-i:hover .fmenu{opacity:.85}
.rd-template-runtime .nav .nav-i .fmenu:hover{background:rgba(0,0,0,.06);color:var(--ink);opacity:1}
.rd-template-runtime .nav .nav-i.active .fmenu{color:#fff;opacity:.9}
.rd-template-runtime .nav .nav-i.active .fmenu:hover{background:rgba(255,255,255,.22)}
.rd-template-runtime.dark .nav .nav-i .fmenu:hover{background:rgba(255,255,255,.1)}

/* индикатор категории — чистый круг в углу карточки */
.rd-template-runtime .catcard .catgg{position:absolute;right:16px;bottom:14px;line-height:0}

/* категории: индикатор слева снизу + число рядом */
.rd-template-runtime .catcard{position:static;overflow:visible;display:block;min-height:0;padding:16px 18px}
.rd-template-runtime .cattop{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.rd-template-runtime .catcard .catic.small{width:38px;height:38px;border-radius:11px;font-size:18px}
.rd-template-runtime .catn{font-size:14.5px;font-weight:700;color:var(--ink)}
.rd-template-runtime .catbot2{display:flex;align-items:center;gap:13px;margin-top:14px}
.rd-template-runtime .catcard .catgg{position:static;line-height:0;flex:none}
.rd-template-runtime .catbot2 .catnum{font-size:22px;font-weight:800;line-height:1}
.rd-template-runtime .catbot2 .catlbl{font-size:12px;color:var(--faint);margin-top:3px}

/* категории: дуга-индикатор сбоку (205) */
.rd-template-runtime .catcard{position:static;overflow:hidden;display:block;min-height:0;padding:16px 18px}
.rd-template-runtime .catmid{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px}
.rd-template-runtime .catleft{min-width:0}
.rd-template-runtime .catmid .catnum{font-size:24px;font-weight:800;line-height:1;display:inline}
.rd-template-runtime .catmid .catlbl{font-size:12px;color:var(--faint);margin-left:4px}
.rd-template-runtime .catmid .catpctbig{font-size:16px;font-weight:800;color:var(--ink);margin-top:9px}
.rd-template-runtime .catarc{width:74px;height:98px;flex:none}
.rd-template-runtime .catarc .ca{width:74px;height:98px;display:block}

/* категории 205: число слева, % посередине, дуга справа (фикс улетевшего %) */
.rd-template-runtime .catmid{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:14px}
.rd-template-runtime .catmid .catnum{font-size:24px;font-weight:800;line-height:1;display:inline}
.rd-template-runtime .catmid .catlbl{font-size:12px;color:var(--faint);margin-left:4px}
.rd-template-runtime .catmid .catpctbig{position:static;font-size:20px;font-weight:800;color:var(--ink);margin:0}
.rd-template-runtime .catarc{width:72px;height:102px;flex:none;overflow:visible}
.rd-template-runtime .catarc .ca{width:72px;height:102px;display:block}

/* карточки папок 226: имя+счётчик сверху, «Доступ» с аватарами, крупная иконка справа */
.rd-template-runtime .fcards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.rd-template-runtime .fcard{display:block;position:relative;padding:0;overflow:hidden}
.rd-template-runtime .fc-top{display:flex;align-items:flex-start;gap:10px;padding:16px 16px 12px;background:linear-gradient(180deg,rgba(76,111,255,.09),rgba(76,111,255,0));border-bottom:1px solid var(--line)}
.rd-template-runtime .fc-name{font-weight:800;font-size:16px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.rd-template-runtime .fc-count{color:var(--faint);font-size:13px;font-weight:600;white-space:nowrap;margin-top:1px}
.rd-template-runtime .fc-dots{flex:none;width:26px;height:26px;border:none;background:transparent;border-radius:8px;color:var(--faint);display:flex;align-items:center;justify-content:center;cursor:pointer}
.rd-template-runtime .fc-dots:hover{background:var(--track);color:var(--ink)}
.rd-template-runtime .fc-body{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:14px 16px 16px}
.rd-template-runtime .fc-lbl{font-size:12px;color:var(--faint);font-weight:600;margin-bottom:8px}
.rd-template-runtime .fc-solo{font-size:13px;color:var(--muted);font-weight:600}
.rd-template-runtime .fc-ic{width:56px;height:56px;flex:none;border-radius:14px;display:flex;align-items:center;justify-content:center;background:rgba(76,111,255,.12);color:var(--accent)}
.rd-template-runtime .fc-ic svg{width:30px;height:30px}
.rd-template-runtime .mavs{display:flex;align-items:center}
.rd-template-runtime .mav{width:32px;height:32px;border-radius:50%;border:2px solid var(--surface);margin-left:-8px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;box-shadow:0 1px 3px rgba(20,30,60,.2)}
.rd-template-runtime .mav:first-child{margin-left:0}
.rd-template-runtime .mav.more{background:var(--track);color:var(--muted)}
.rd-template-runtime.dark .fc-top{background:linear-gradient(180deg,rgba(108,140,255,.12),rgba(108,140,255,0))}
.rd-template-runtime.dark .fc-ic{background:rgba(108,140,255,.16)}

/* v27: число/«файлов»/% ровно слева с gap, дуга прижата вправо */
.rd-template-runtime .catmid{justify-content:flex-start;gap:10px}
.rd-template-runtime .catmid .catlbl{margin-left:4px}
.rd-template-runtime .catmid .catpctbig{margin:0}
.rd-template-runtime .catarc{margin-left:auto}

/* v28: catleft не схлопывается (иначе «файлов» наезжает на %), дуга чуть компактнее */
.rd-template-runtime .catmid .catleft{flex:none;min-width:auto;white-space:nowrap}
.rd-template-runtime .catmid .catpctbig{flex:none}
.rd-template-runtime .catarc{width:64px;height:96px}
.rd-template-runtime .catarc .ca{width:64px;height:96px}

/* v29: большая сквозная дуга через всю карточку (референс 205) */
.rd-template-runtime .catcard{position:relative;overflow:hidden;min-height:140px}
.rd-template-runtime .catbg{position:absolute;inset:0;z-index:0;pointer-events:none}
.rd-template-runtime .catbg svg{width:100%;height:100%;display:block}
.rd-template-runtime .cattop{position:relative;z-index:1}
.rd-template-runtime .catfoot{position:absolute;left:18px;bottom:16px;z-index:1;display:flex;align-items:baseline;gap:6px}
.rd-template-runtime .catfoot .catnum{font-size:26px;font-weight:800;line-height:1}
.rd-template-runtime .catfoot .catlbl{font-size:12px;color:var(--faint)}
.rd-template-runtime .catpctbig{position:absolute;right:26px;top:50%;transform:translateY(-2px);z-index:1;font-size:22px;font-weight:800;color:var(--ink);margin:0}

/* v33: % ниже и правее — не залезает на дугу */
.rd-template-runtime .catpctbig{right:16px;top:60%;bottom:auto;transform:none}

/* v34: % ещё чуть правее */
.rd-template-runtime .catpctbig{right:10px}

/* v35: строка «Обновлено» в карточке папки (как Last updated в 229) + хедер-язычок */
.rd-template-runtime .fc-upd{padding:11px 16px;border-top:1px solid var(--line);color:var(--faint);font-size:12.5px;font-weight:500}
.rd-template-runtime .fc-body{padding-bottom:12px}
.rd-template-runtime .fc-top{margin:8px 8px 0;padding:12px 12px 12px;border-radius:12px 12px 0 0;border-bottom:none;background:linear-gradient(180deg,rgba(76,111,255,.10),rgba(76,111,255,.02))}
.rd-template-runtime .fcard{padding-top:0}
.rd-template-runtime.dark .fc-top{background:linear-gradient(180deg,rgba(108,140,255,.14),rgba(108,140,255,.03))}

/* v36: иконка категорий выше и левее — не наезжает на дугу */
.rd-template-runtime .catcard .catic.small{transform:translate(-7px,-7px)}

/* хедер папки — язычок-ступенька как 229: плашка уже карточки, счётчик на фоне справа в 2 строки */
.rd-template-runtime .fc-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin:0;padding:0 16px 0 0;background:none;border-bottom:none;border-radius:0}
.rd-template-runtime .fc-tab{max-width:66%;background:linear-gradient(180deg,rgba(76,111,255,.13),rgba(76,111,255,.03));padding:14px 22px 15px 16px;border-radius:14px 0 16px 0}
.rd-template-runtime .fc-tab .fc-name{margin:0;max-width:100%}
.rd-template-runtime .fc-count{padding-top:13px;text-align:right;line-height:1.3}
.rd-template-runtime .fc-size{font-size:11.5px;color:var(--muted);font-weight:600;margin-top:2px}
.rd-template-runtime.dark .fc-tab{background:linear-gradient(180deg,rgba(108,140,255,.16),rgba(108,140,255,.04))}

/* v37: сайдбар прибит к экрану — плашка «Хранилище» всегда у нижней грани, не уезжает под страницу */
.rd-template-runtime .side{position:sticky;top:var(--app-header-height);align-self:start;height:calc(100vh - var(--app-header-height));overflow-y:auto}

/* v38: колокольчик как 214 — белая кнопка-квадратик с рамкой, синяя точка-бейдж */
.rd-template-runtime .swatches{margin-top:10px}
/* ⚠️ РАЗМЕР КРУГЛОЙ КНОПКИ И ЕЁ ЗНАЧКА ЗАДАЁТСЯ ЗДЕСЬ, И ТОЛЬКО ЗДЕСЬ.
   До этого правил было ВОСЕМЬ, дописанных одно поверх другого — v39, v41, v67, v70, v74,
   v76, v77, v78, — и каждое появлялось потому, что предыдущее «не сработало». Не срабатывало
   оно ровно по той причине, по которой их стало восемь: какое из них выигрывает, не мог
   сказать никто, и правка вслепую добавляла девятое. Измерено на живой странице: рисунок
   колокола выходил 11×13 CSS px в кнопке 44 px — то есть работал БАЗОВЫЙ font-size:19px,
   а все восемь правил не значили ничего.
   Значок задан в ПИКСЕЛЯХ, а не в em: em тянется за font-size, а font-size у этой кнопки
   переопределяли шесть раз из восьми. Появится девятое правило — размер снова станет
   загадкой; сторож на это стоит в webicons_ui_test.go. */
.rd-template-runtime .iconbtn.bell{background:var(--surface);border:1px solid var(--line2);border-radius:12px;color:var(--ink);
  width:44px;height:44px;padding:0}
/* ⚠️ flex:none — ЭТО И ЕСТЬ ПОЧИНКА, А НЕ ЧИСЛО РЯДОМ. Измерено в живом браузере:
   у кнопки padding:8px 14px при width:44px и box-sizing:border-box, то есть внутреннее поле
   ровно 44−2−28 = 14 px. Значок — элемент флекса со flex-shrink:1, и его СПЛЮЩИВАЛО до 14 px
   по ширине при высоте 28: getComputedStyle давал width:14px там, где в правиле стоит 28.
   Отсюда и восемь правил подряд (v39…v78): каждое меняло ЧИСЛО, а сжимал контейнер, и число
   не значило ничего. Убираем обе причины: поле у кнопки в ноль и запрет сжатия значку. */
.rd-template-runtime .iconbtn.bell svg{width:19px;height:19px;stroke-width:1.8;flex:none}
.rd-template-runtime .iconbtn.bell:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}
.rd-template-runtime .iconbtn.bell .dot{top:8px;right:8px;background:var(--accent);width:8px;height:8px}

/* v38: язычок папки чуть шире — больше места под имя, ступенька правее */
.rd-template-runtime .fc-tab{max-width:80%;padding-right:26px}



/* v42: сортировка · фильтр по типу · мультивыбор + групповые операции */
.rd-template-runtime .sortbtn{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--line2);color:var(--muted);border-radius:11px;padding:8px 12px;font-size:13.5px;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap}
.rd-template-runtime .sortbtn:hover{border-color:var(--accent);color:var(--accent)}
.rd-template-runtime .sortbtn .bi{display:inline-flex}
.rd-template-runtime .sortbtn .bi svg{width:16px;height:16px}
.rd-template-runtime .sortbtn .sdir{font-weight:800;color:var(--accent)}
/* Кнопка с включённым фильтром подсвечена: иначе сокращённый список выглядит как «файлов нет». */
.rd-template-runtime .sortbtn.on{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}
/* Переключатель области поиска — тот же сегментный вид, что у плотности списка, но с текстом. */
.rd-template-runtime .vtoggle.sscope button{font-size:12.5px;font-weight:600;padding:7px 12px}

.rd-template-runtime .catcard{cursor:pointer}
.rd-template-runtime .catcard:hover{border-color:var(--line2)}
.rd-template-runtime .catcard.active{outline:2px solid var(--accent);outline-offset:-2px}

.rd-template-runtime .fclear{display:inline-flex;align-items:center;gap:5px;background:var(--accent-soft);color:var(--accent-ink);border:1px solid var(--accent);border-radius:100px;padding:4px 12px 4px 8px;font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap}
.rd-template-runtime .fclear .bi svg{width:13px;height:13px}

.rd-template-runtime .selbox{flex:none;width:20px;height:20px;position:relative;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.rd-template-runtime .selbox input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.rd-template-runtime .selbox .selmark{width:20px;height:20px;border:1.7px solid var(--line2);border-radius:6px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface);color:#fff}
.rd-template-runtime .selbox .selmark svg{width:13px;height:13px;opacity:0;stroke-width:3}
.rd-template-runtime .selbox.on .selmark{background:var(--accent);border-color:var(--accent)}
.rd-template-runtime .selbox.on .selmark svg{opacity:1}
.rd-template-runtime .doc.sel{background:var(--accent-soft);border-color:var(--accent)}
.rd-template-runtime .tile{position:relative}
.rd-template-runtime .tile.sel{outline:2px solid var(--accent);outline-offset:-1px}
.rd-template-runtime .tsel{position:absolute;top:9px;left:9px;z-index:3}
.rd-template-runtime .tsel .selbox .selmark{box-shadow:0 1px 3px rgba(20,30,60,.25)}

.rd-template-runtime .bulkbar{display:flex;align-items:center;gap:10px;width:100%}
.rd-template-runtime .bulkbar .bcancel{flex:none;width:34px;height:34px;border:1px solid var(--line2);background:var(--surface);border-radius:10px;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.rd-template-runtime .bulkbar .bcancel:hover{border-color:var(--accent);color:var(--accent)}
.rd-template-runtime .bulkbar .bcancel svg{width:16px;height:16px}
.rd-template-runtime .bulkbar .bcount{font-weight:700;font-size:16px}
.rd-template-runtime .bulkbar button.ghost,.rd-template-runtime .bulkbar button.danger{display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border-radius:11px;font-weight:600}
.rd-template-runtime .bulkbar .bi{display:inline-flex}
.rd-template-runtime .bulkbar .bi svg{width:16px;height:16px}

/* v44: правая панель-инспектор (drawer) вместо модалки файла */
.rd-template-runtime .drawer-scrim{position:fixed;inset:0;background:rgba(20,27,43,.34);display:flex;justify-content:flex-end;z-index:60}
.rd-template-runtime .drawer{width:min(440px,100%);height:100%;background:var(--surface);box-shadow:-24px 0 60px -30px rgba(20,27,43,.5);display:flex;flex-direction:column;transform:translateX(100%);transition:transform .2s ease;border-left:1px solid var(--line)}
.rd-template-runtime .drawer.in{transform:none}
.rd-template-runtime .dhead{flex:none;display:flex;align-items:flex-start;gap:12px;padding:18px 18px 14px;border-bottom:1px solid var(--line)}
.rd-template-runtime .dic{flex:none}
.rd-template-runtime .dhwrap{flex:1;min-width:0}
.rd-template-runtime .dtitle{font-size:17px;font-weight:700;width:100%;border:1px solid transparent;background:transparent;border-radius:8px;padding:4px 6px;color:var(--ink);font-family:inherit}
.rd-template-runtime .dtitle:hover,.rd-template-runtime .dtitle:focus{border-color:var(--line2);background:var(--surface-2);outline:none}
.rd-template-runtime .dtitle.stat{padding:4px 0}
.rd-template-runtime .dsub{font-size:12.5px;color:var(--faint);margin-top:3px;padding:0 6px}
/* ⚠️ ЗНАЧОК В КНОПКЕ СЖИМАЛСЯ КОНТЕЙНЕРОМ, И ЭТО ОБЩАЯ БОЛЕЗНЬ ВСЕХ КНОПОК-ЗНАЧКОВ.
   У кнопки padding:8px 14px (общий для всех button) при заданной ширине и box-sizing:
   border-box, поэтому внутреннее поле выходит крошечным: у крестика 38−2−28 = 10 px,
   у колокола было 44−2−28 = 14 px. Значок — элемент флекса со flex-shrink:1, и он в это
   поле СЖИМАЛСЯ: измерено в живом браузере, getComputedStyle отдавал 10×24 при правиле
   18×18 и 14×28 при правиле 28×28.
   Отсюда тринадцать правил подряд у двух кнопок (v39…v78 у колокола, v70…v77 у крестика):
   каждое меняло ЧИСЛО, а сжимал контейнер — и число не значило ничего.
   Лечим ПРИЧИНУ и в одном месте: поле кнопки в ноль, значку запрет сжатия. Размер после
   этого можно ставить один раз и он выполняется. */
.rd-template-runtime .iconbtn,.rd-template-runtime .dx{padding:0}
.rd-template-runtime .iconbtn svg,.rd-template-runtime .dx svg{flex:none}
.rd-template-runtime .dx{flex:none;width:34px;height:34px;border:none;background:transparent;border-radius:9px;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.rd-template-runtime .dx:hover{background:var(--track);color:var(--ink)}
.rd-template-runtime .dx svg{width:17px;height:17px;stroke-width:1.9}
.rd-template-runtime .dbody{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px 18px 28px;display:flex;flex-direction:column;gap:12px}
.rd-template-runtime .dbody .ta{min-height:180px}
.rd-template-runtime .propgrid{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;font-size:13.5px}
.rd-template-runtime .propgrid .pk{color:var(--faint)}
.rd-template-runtime .propgrid .pv{color:var(--ink);word-break:break-word}
.rd-template-runtime .lockbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}
/* Погашенная «Открыть в редакторе» и объяснение рядом с ней (чужой ручной замок). Перенос
   разрешён: объяснение длиннее кнопки, и на узком экране оно обязано уйти на свою строку,
   а не выдавить кнопку за край. */
.rd-template-runtime .vredzapert{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.rd-template-runtime .addshare{display:flex;gap:8px;align-items:stretch}
.rd-template-runtime .addshare input{flex:1;min-width:0}
.rd-template-runtime .addshare .shperm{flex:none}
.rd-template-runtime .dlrow{display:flex;align-items:center;gap:9px;margin-top:10px;font-size:13.5px;color:var(--muted);cursor:pointer}
.rd-template-runtime .dlrow input{width:17px;height:17px;accent-color:var(--accent)}
.rd-template-runtime button.primary{background:var(--accent);color:#fff;border:1px solid var(--accent)}
.rd-template-runtime button.primary:hover{filter:brightness(1.06)}
@media (max-width:520px){.rd-template-runtime .drawer{width:100%}}

/* v46: пикер пользователей (автокомплит) в «Доступ» */
.rd-template-runtime .upick{position:relative;flex:1;min-width:0}
.rd-template-runtime .upick-in{width:100%}
.rd-template-runtime .upick-drop{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--surface);border:1px solid var(--line2);border-radius:11px;box-shadow:0 16px 40px -14px rgba(20,30,60,.4);z-index:5;max-height:240px;overflow:auto;display:none;padding:5px}
.rd-template-runtime .upick-drop.on{display:block}
.rd-template-runtime .upick-item{display:flex;align-items:center;gap:10px;padding:7px 9px;border-radius:8px;cursor:pointer}
.rd-template-runtime .upick-item:hover{background:var(--accent-soft)}
.rd-template-runtime .shav.sm{width:28px;height:28px;font-size:11px}
.rd-template-runtime .upick-meta{min-width:0}
.rd-template-runtime .upick-nm{font-weight:600;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rd-template-runtime .upick-sub{font-size:11.5px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* v49: правая панель — колонка в layout (без затемнения/скрима, контент кликабелен) */
.rd-template-runtime .drawer-scrim{display:none}
.rd-template-runtime .layout.haspanel{grid-template-columns:250px minmax(0,1fr) 440px}
.rd-template-runtime .drawer{position:sticky;top:var(--app-header-height);align-self:start;height:calc(100vh - var(--app-header-height));width:auto;transform:none;transition:none;
  background:var(--surface);border-left:1px solid var(--line);box-shadow:-16px 0 40px -34px rgba(20,30,60,.4);
  display:flex;flex-direction:column;animation:rd-templates-panelin .18s ease}
@keyframes rd-templates-panelin{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}
@media(max-width:1080px){
  .rd-template-runtime .layout.haspanel{grid-template-columns:250px minmax(0,1fr)}
  .rd-template-runtime .drawer{position:fixed;right:0;top:var(--app-header-height);width:min(420px,100%);z-index:40;box-shadow:-24px 0 60px -28px rgba(20,30,60,.5)}
}
@media(max-width:820px){ .rd-template-runtime .layout.haspanel{grid-template-columns:1fr} }

/* v50: колоночный список как Google Drive (Название | Изменён | Владелец | Размер | ⋯) */
.rd-template-runtime .main{container-type:inline-size}
.rd-template-runtime .docs.table{display:flex;flex-direction:column;gap:6px}
.rd-template-runtime .docs.table .doc,.rd-template-runtime .docs.table .dhead-row{display:grid;grid-template-columns:minmax(0,1fr) 126px 148px 132px 84px 60px;align-items:center;gap:12px}
.rd-template-runtime .docs.table .doc{gap:12px}
.rd-template-runtime .c-folder{min-width:0}
.rd-template-runtime .folchip{display:inline-flex;align-items:center;gap:6px;max-width:100%;background:var(--surface-2);border:1px solid var(--line);border-radius:100px;padding:2px 10px 2px 8px;font-size:12px;color:var(--muted);cursor:pointer}
.rd-template-runtime .folchip:hover{border-color:var(--accent);color:var(--accent)}
.rd-template-runtime .folchip .bi{display:inline-flex}
.rd-template-runtime .folchip .bi svg{width:13px;height:13px}
.rd-template-runtime .folchip-t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* строка-папка в списке: та же сетка, что у файлов */
.rd-template-runtime .folder-row .c-name .fri{width:40px;height:40px;flex:none;border-radius:11px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:rgba(76,111,255,.12);color:var(--accent)}
.rd-template-runtime .folder-row .c-name .fri .fc-cover{border-radius:0}
.rd-template-runtime .folder-row .c-name .fri svg{width:22px;height:22px}
.rd-template-runtime .folder-row .c-name .nmt{font-weight:700}
.rd-template-runtime .c-name{display:flex;align-items:center;gap:12px;min-width:0}
.rd-template-runtime .c-name .nm{min-width:0;display:flex;align-items:center;gap:7px}
.rd-template-runtime .c-name .nmt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.rd-template-runtime .c-mod,.rd-template-runtime .c-size{color:var(--muted);font-size:13px;white-space:nowrap}
.rd-template-runtime .c-size{text-align:right}
.rd-template-runtime .c-own{display:flex;align-items:center;gap:8px;min-width:0;font-size:13px;color:var(--muted)}
/* Колонка «Владелец» кликабельна (отбор по владельцу) — и должна выглядеть так же.
   Раньше она молчала на нажатие, и человек считал, что отбирать по владельцу нечем. */
.rd-template-runtime .c-own.own-pick{cursor:pointer;border-radius:8px;padding:2px 6px;margin:-2px -6px}
.rd-template-runtime .c-own.own-pick:hover{background:var(--accent-soft);color:var(--accent-ink)}
.rd-template-runtime .ownav{width:24px;height:24px;border-radius:50%;flex:none;background:var(--accent);color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}
.rd-template-runtime .c-own span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rd-template-runtime .c-act{display:flex;align-items:center;gap:2px;justify-content:flex-end}
.rd-template-runtime .dhead-row{padding:2px 14px 8px !important;background:transparent !important;border:0 !important;box-shadow:none !important;border-bottom:1px solid var(--line) !important;border-radius:0 !important;margin-bottom:2px}
.rd-template-runtime .colh{background:transparent;border:0;color:var(--faint);font-size:11.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-family:inherit;display:inline-flex;align-items:center;gap:5px;cursor:pointer;padding:2px 0;justify-self:start}
.rd-template-runtime .colh:first-child{padding-left:32px}
.rd-template-runtime .colh.right{justify-self:end}
.rd-template-runtime .colh.static{cursor:default}
.rd-template-runtime .colh.on{color:var(--accent)}
.rd-template-runtime .colh .colar{font-weight:800;font-size:12px}
/* адаптив: панель открыта → main уже → прячем колонки по ширине main (container queries) */
@container (max-width:900px){
  .rd-template-runtime .c-folder,.rd-template-runtime .dhead-row .colh:nth-child(4){display:none}
  .rd-template-runtime .docs.table .doc,.rd-template-runtime .docs.table .dhead-row{grid-template-columns:minmax(0,1fr) 124px 146px 84px 60px}
}
@container (max-width:700px){
  .rd-template-runtime .c-own,.rd-template-runtime .dhead-row .colh:nth-child(3){display:none}
  .rd-template-runtime .docs.table .doc,.rd-template-runtime .docs.table .dhead-row{grid-template-columns:minmax(0,1fr) 118px 82px 58px}
}
@container (max-width:520px){
  .rd-template-runtime .c-mod,.rd-template-runtime .dhead-row .colh:nth-child(2){display:none}
  .rd-template-runtime .docs.table .doc,.rd-template-runtime .docs.table .dhead-row{grid-template-columns:minmax(0,1fr) 76px 56px}
}

/* v51: цвет и обложка папки */
.rd-template-runtime .swatches{display:flex;flex-wrap:wrap;gap:8px}
.rd-template-runtime .swatch{width:28px;height:28px;border-radius:50%;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--line2);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.rd-template-runtime .swatch.on{box-shadow:0 0 0 2px var(--accent)}
.rd-template-runtime .swatch.none{background:var(--surface-2);color:var(--faint)}
.rd-template-runtime .swatch.none svg{width:14px;height:14px}
.rd-template-runtime .fcard .fc-ic{overflow:hidden}
.rd-template-runtime .fc-cover{width:100%;height:100%;object-fit:cover;border-radius:12px;display:block}

/* v52: инлайн-превью в панели (картинки/PDF/видео/аудио) */
.rd-template-runtime .prev-holder{margin-top:2px}
.rd-template-runtime .prev-img{max-width:100%;border-radius:10px;display:block;border:1px solid var(--line)}
.rd-template-runtime .prev-pdf{width:100%;height:62vh;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}
.rd-template-runtime .prev-video{max-width:100%;border-radius:10px;display:block}
.rd-template-runtime .prev-audio{width:100%;margin-top:6px}

/* v53: теги в инспекторе + чип фильтра */
.rd-template-runtime .tagwrap{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.rd-template-runtime .tagchip{display:inline-flex;align-items:center;gap:2px;background:var(--accent-soft);color:var(--accent-ink);border:1px solid var(--accent);border-radius:100px;padding:3px 4px 3px 11px;font-size:12.5px;font-weight:600}
.rd-template-runtime .tagchip.restr{background:#fbf0dc;color:#b5730f;border-color:#e2ad55}
.rd-template-runtime.dark .tagchip.restr{background:#332608;color:#e2a13c;border-color:#5c4a1e}
.rd-template-runtime .tagchip .tct{cursor:pointer}
.rd-template-runtime .tagchip .tcx{background:transparent;border:0;color:inherit;opacity:.6;cursor:pointer;display:inline-flex;padding:2px;border-radius:50%}
.rd-template-runtime .tagchip .tcx:hover{opacity:1;background:rgba(0,0,0,.10)}
.rd-template-runtime .tagchip .tcx svg{width:12px;height:12px}

/* v54: DnD-перемещение — подсветка папки-цели */
.rd-template-runtime .nav-i.dropfolder{background:var(--accent-soft);outline:2px dashed var(--accent);outline-offset:-2px}
.rd-template-runtime .fcard.dropfolder{outline:2px dashed var(--accent);outline-offset:-2px;box-shadow:0 0 0 3px var(--accent-soft)}
.rd-template-runtime .doc[draggable="true"],.rd-template-runtime .tile[draggable="true"]{cursor:default}

/* v65: переключатель пользователь/группа + группы в списке доступа + аудит-строки */
.rd-template-runtime .setseg.mini{display:inline-flex;gap:0;margin-bottom:10px;border:1px solid var(--line2);border-radius:9px;overflow:hidden}
.rd-template-runtime .setseg.mini .segbtn{border:0;background:var(--surface);color:var(--muted);padding:6px 12px;font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit}
.rd-template-runtime .setseg.mini .segbtn.on{background:var(--accent);color:#fff}
.rd-template-runtime .addslot{flex:1;min-width:0;display:flex}
.rd-template-runtime .shav.grp{background:var(--accent);color:#fff}
.rd-template-runtime .shav.grp svg{width:16px;height:16px}

/* v67: SVG-шеврон единого размера + сводки в заголовках секций */
.rd-template-runtime .sec>.sh{gap:8px}
.rd-template-runtime .sec>.sh .chev{margin-left:8px;display:inline-flex;align-items:center;color:var(--faint);transition:transform .15s}
.rd-template-runtime .sec>.sh .chev svg{width:17px;height:17px}
.rd-template-runtime .sec.open>.sh .chev{transform:rotate(90deg)}
.rd-template-runtime .secsum{margin-left:auto;display:inline-flex;align-items:center;gap:8px;min-width:0;max-width:62%}
.rd-template-runtime .secsum-t{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rd-template-runtime .secsum-t.muted{color:var(--faint)}
.rd-template-runtime .secsum-c{display:inline-flex;align-items:center;gap:6px;min-width:0}
.rd-template-runtime .secsum-n{background:var(--accent-soft);color:var(--accent-ink);border-radius:100px;padding:1px 7px;font-size:11px;font-weight:700;flex:none}
.rd-template-runtime .secsum .mavs .mav{width:24px;height:24px;font-size:9px;border-width:2px}


/* v67: язычок папки шире — больше места под имя, ступенька правее; ⋮ заметный */
.rd-template-runtime .fc-top .fc-tab{max-width:none;min-width:56%;padding-right:32px}
.rd-template-runtime .fc-top .fc-name{max-width:100%}
.rd-template-runtime .fc-top .fc-count{flex:none}
.rd-template-runtime .fc-dots{opacity:1;flex:none;color:var(--muted)}
.rd-template-runtime .fc-dots:hover{background:var(--track);color:var(--ink)}

/* иконка+текст в кнопках всегда с отступом */
.rd-template-runtime button:has(> .bi){display:inline-flex;align-items:center;gap:7px}
.rd-template-runtime .dbody button:has(> .bi){gap:7px}

/* v71: X закрытия — размер через font-size (как колокол), 1em надёжно берётся ic-svg */

/* v72: X закрытия — крупнее и жирнее (путь заполняет больше viewBox) */

/* v73: чистый хедер карточки папки — язычок слева, счётчик+⋮ справа, ⋮ видимый и ровный */
.rd-template-runtime .fcard .fc-top{display:flex;align-items:flex-start;gap:8px;padding:0 10px 0 0}
.rd-template-runtime .fcard .fc-tab{flex:0 1 60%;min-width:0;max-width:none;padding:14px 20px 15px 16px;border-radius:14px 0 16px 0}
.rd-template-runtime .fcard .fc-count{flex:none;margin-left:auto;text-align:right;padding-top:12px;line-height:1.3}
.rd-template-runtime .fcard .fc-dots{flex:none;width:30px;height:30px;margin-top:7px;font-size:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;color:var(--muted);background:transparent;border:none;cursor:pointer;padding:0}
.rd-template-runtime .fcard .fc-dots svg{width:1em;height:1em}
.rd-template-runtime .fcard .fc-dots:hover{background:var(--track);color:var(--ink)}





/* ---- метки: чипы на строках файлов + счётчик в сайдбаре (RBDOC-102, вынос тегов на витрину) ---- */
.rd-template-runtime .doc .c-name .nm{flex-direction:column;align-items:flex-start;gap:3px}
.rd-template-runtime .doc .c-name .nmline{display:flex;align-items:center;gap:7px;min-width:0;max-width:100%}
.rd-template-runtime .doc .c-name .nmline .nmt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rd-template-runtime .rowtags{display:flex;gap:4px;flex-wrap:wrap}
.rd-template-runtime .rtag{font-size:10.5px;font-weight:600;background:var(--surface-2);border:1px solid var(--line);color:var(--muted);border-radius:6px;padding:0 6px;line-height:16px;cursor:pointer;white-space:nowrap}
.rd-template-runtime .rtag:hover{border-color:var(--accent);color:var(--accent)}
.rd-template-runtime .nav .nav-i .nvcount{margin-left:auto;font-size:11px;color:var(--faint);background:var(--surface-2);border-radius:8px;padding:0 7px;line-height:17px}
.rd-template-runtime .nav .nav-i.active .nvcount{background:rgba(255,255,255,.25);color:#fff}

/* ---- выбор папок галочкой (RBDOC-102: папки в мультивыборе) ---- */
.rd-template-runtime .fc-sel{position:absolute;top:10px;left:10px;z-index:4;opacity:0;transition:opacity .12s}
.rd-template-runtime .fcard:hover .fc-sel,.rd-template-runtime .fcard.sel .fc-sel{opacity:1}
.rd-template-runtime .fcard.sel{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft),var(--shadow)}
.rd-template-runtime .fc-sel .selbox .selmark{box-shadow:0 1px 3px rgba(20,30,60,.25)}
.rd-template-runtime .folder-row.sel{background:var(--accent-soft);border-color:var(--accent)}

/* ---- страница «Приложения» (синк-клиенты disk-sync) ---- */
.rd-template-runtime .clients-page .cl-intro{max-width:720px;color:var(--muted);margin:2px 0 20px}
.rd-template-runtime .clients-page .cl-intro b{color:var(--ink)}
.rd-template-runtime .cl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-bottom:26px}
.rd-template-runtime .cl-card{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow-sm);text-decoration:none;color:var(--ink);transition:box-shadow .12s,border-color .12s,transform .12s}
.rd-template-runtime .cl-card:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-1px)}
.rd-template-runtime .cl-os{width:44px;height:44px;flex:none;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--surface-2);color:var(--muted)}
.rd-template-runtime .cl-os svg{width:24px;height:24px}
.rd-template-runtime .cl-os.os-macos{background:rgba(76,111,255,.12);color:var(--accent)}
.rd-template-runtime .cl-os.os-windows{background:rgba(18,181,165,.14);color:#0e9c8f}
.rd-template-runtime .cl-os.os-linux{background:rgba(243,156,61,.16);color:#d9821f}
.rd-template-runtime .cl-meta{flex:1;min-width:0}
.rd-template-runtime .cl-name{font-weight:600}
.rd-template-runtime .cl-sub{font-size:12.5px;color:var(--faint);font-variant-numeric:tabular-nums}
.rd-template-runtime .cl-dl{flex:none;color:var(--faint)}
.rd-template-runtime .cl-card:hover .cl-dl{color:var(--accent)}
.rd-template-runtime .cl-how{max-width:720px}
.rd-template-runtime .cl-how-h{font-weight:700;margin-bottom:8px}
.rd-template-runtime .cl-code{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:14px 16px;font-family:var(--mono);font-size:12.5px;color:var(--ink);white-space:pre-wrap;overflow-x:auto;line-height:1.6}

/* ---- клиенты синхронизации в профиле (компактный список со значками платформ) ---- */
.rd-template-runtime .cl-list{display:flex;flex-direction:column;gap:8px}
.rd-template-runtime .cl-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);text-decoration:none;color:var(--ink);transition:border-color .12s,box-shadow .12s}
.rd-template-runtime .cl-row:hover{border-color:var(--accent);box-shadow:var(--shadow-sm)}
.rd-template-runtime .cl-row .cl-os{width:38px;height:38px;flex:none;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:22px;background:var(--surface-2);color:var(--muted)}
.rd-template-runtime .cl-row .cl-os.os-macos{background:rgba(76,111,255,.12);color:var(--accent)}
.rd-template-runtime .cl-row .cl-os.os-windows{background:rgba(18,181,165,.14);color:#0e9c8f}
.rd-template-runtime .cl-row .cl-os.os-linux{background:rgba(243,156,61,.16);color:#d9821f}
.rd-template-runtime .cl-row .cl-meta{flex:1;min-width:0}
.rd-template-runtime .cl-row .cl-name{font-weight:600;font-size:13.5px}
.rd-template-runtime .cl-row .cl-sub{font-size:12px;color:var(--faint);font-variant-numeric:tabular-nums}
.rd-template-runtime .cl-row .cl-dl{flex:none;color:var(--faint);font-size:18px;display:inline-flex}
.rd-template-runtime .cl-row:hover .cl-dl{color:var(--accent)}

/* ---- установленные клиенты: статус устройства, версия, обновление (RBDOC-104) ---- */
.rd-template-runtime .cl-row.static{cursor:default}
.rd-template-runtime .cl-row.static:hover{border-color:var(--line);box-shadow:none}
.rd-template-runtime .cl-row.upd{border-color:var(--accent);background:var(--accent-soft)}
.rd-template-runtime .cl-name .cl-dot{width:7px;height:7px;border-radius:50%;background:var(--faint);display:inline-block;margin-left:7px;vertical-align:middle}
.rd-template-runtime .cl-name .cl-dot.on{background:#1aa564;box-shadow:0 0 0 3px rgba(26,165,100,.18)}
.rd-template-runtime .cl-upd{flex:none;display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:9px;background:var(--accent);color:#fff;font-size:12.5px;font-weight:600;text-decoration:none;white-space:nowrap}
.rd-template-runtime .cl-upd:hover{filter:brightness(1.07)}
.rd-template-runtime .cl-upd .ic svg,.rd-template-runtime .cl-ok .ic svg{width:14px;height:14px;display:block}
.rd-template-runtime .cl-ok{flex:none;display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:#1aa564;white-space:nowrap}
.rd-template-runtime .cl-empty{border:1px dashed var(--line);border-radius:12px;padding:14px 16px;background:var(--surface-2)}
.rd-template-runtime .cl-empty-t{font-weight:600;font-size:13.5px}
.rd-template-runtime .cl-empty-s{font-size:12.5px;color:var(--faint);margin-top:3px}

.rd-template-runtime .fcount{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}

.rd-template-runtime .cl-more{margin-top:6px}
.rd-template-runtime .cl-more>summary{cursor:pointer;color:var(--muted);font-size:12.5px;padding:6px 2px;list-style:none;user-select:none}
.rd-template-runtime .cl-more>summary::-webkit-details-marker{display:none}
.rd-template-runtime .cl-more>summary::before{content:'▸';display:inline-block;margin-right:6px;transition:transform .15s}
.rd-template-runtime .cl-more[open]>summary::before{transform:rotate(90deg)}
.rd-template-runtime .cl-more>summary:hover{color:var(--ink)}
.rd-template-runtime .cl-more .cl-row{margin-top:6px}

/* ---- парк клиентов (админский обзор версий) ---- */
.rd-template-runtime .fleet-sum{font-size:13px;color:var(--muted);margin-bottom:10px}
.rd-template-runtime .fleet-warn{color:#d9821f;font-weight:600}
.rd-template-runtime .fleet-tbl{border:1px solid var(--line);border-radius:12px;overflow:hidden;overflow-x:auto}
.rd-template-runtime .fleet-hd,.rd-template-runtime .fleet-row{display:grid;grid-template-columns:minmax(120px,1.4fr) minmax(110px,1.2fr) 84px 74px 96px;gap:10px;padding:8px 12px;align-items:center;font-size:12.5px}
.rd-template-runtime .fleet-hd{background:var(--surface-2);color:var(--muted);font-weight:600}
.rd-template-runtime .fleet-row{border-top:1px solid var(--line);font-variant-numeric:tabular-nums}
.rd-template-runtime .fleet-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rd-template-runtime .fleet-v.old{color:#d9821f;font-weight:600}
.rd-template-runtime .fleet-t{color:var(--faint)}

/* ---- цвета меток: пикер в инспекторе + точка в сайдбаре ---- */
.rd-template-runtime .tagpal-row{display:flex;align-items:center;gap:10px;margin:8px 0 4px}
.rd-template-runtime .tagpal-lbl{font-size:12px;color:var(--muted);font-weight:600}
.rd-template-runtime .tagpal{display:flex;gap:6px;flex-wrap:wrap}
.rd-template-runtime .tsw{width:20px;height:20px;padding:0;border-radius:6px;box-shadow:0 0 0 1px var(--line) inset;cursor:pointer}
.rd-template-runtime .tsw.on{outline:2px solid var(--ink);outline-offset:1px}
.rd-template-runtime .tagdot{width:10px;height:10px;border-radius:50%;display:inline-block}
.rd-template-runtime .nav .nav-i .ni .tagdot{box-shadow:0 0 0 2px var(--surface)}

/* ---- лента/журнал: кликабельная строка со ссылкой на объект ---- */
.rd-template-runtime .nfrow.click{cursor:pointer;border-radius:10px;margin:0 -6px;padding-left:6px;padding-right:6px}
.rd-template-runtime .nfrow.click:hover{background:var(--surface-2)}
.rd-template-runtime .nftext .nfact{color:var(--muted)}
.rd-template-runtime .nftext .nflink{color:var(--accent)}

/* ---- сворачиваемые разделы сайдбара (Папки / Метки) ---- */
.rd-template-runtime .grouptog{cursor:pointer;user-select:none}
.rd-template-runtime .grouptog .gchev{display:inline-flex;align-items:center;color:var(--faint);transition:transform .15s;margin-right:1px}
.rd-template-runtime .grouptog .gchev svg{width:12px;height:12px}
.rd-template-runtime .grouptog:not(.col) .gchev{transform:rotate(90deg)}
.rd-template-runtime .grouptog:hover .glbl{color:var(--muted)}
.rd-template-runtime .grouptog .glbl{transition:color .12s}

/* лента: название метки + аватар-картинка автора */
.rd-template-runtime .nftext .nftag{color:var(--ink);font-weight:600}
.rd-template-runtime .nfav{overflow:hidden}

/* аватар-фото владельца в строке + бейдж получателей доступа (с группой) */
.rd-template-runtime .ownav{overflow:hidden}
.rd-template-runtime .rsbs{display:inline-flex;align-items:center;margin-left:4px;vertical-align:middle}
.rd-template-runtime .rsb{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--surface);margin-left:-5px;display:inline-flex;align-items:center;justify-content:center;font-size:8.5px;font-weight:700;color:#fff}
.rd-template-runtime .rsb:first-child{margin-left:0}
.rd-template-runtime .rsb.grp{background:var(--accent)}
.rd-template-runtime .rsb.grp svg{width:11px;height:11px}
.rd-template-runtime .rsb.more{background:var(--track);color:var(--muted)}

/* ---- v126: компактные карточки папок — 5 в ряд, высота уменьшена пропорционально ----
   Было minmax(300px) → в рабочую ширину влезало 4. Уменьшаем шаг сетки и все внутренние
   размеры примерно на 17%, чтобы пропорции карточки сохранились. */
.rd-template-runtime .fcards{grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:12px}
.rd-template-runtime .fc-tab{padding:11px 20px 12px 13px;border-radius:12px 0 14px 0}
.rd-template-runtime .fc-name{font-size:14.5px}
.rd-template-runtime .fc-count{padding-top:10px;font-size:12px}
.rd-template-runtime .fc-size{font-size:11px;margin-top:1px}
.rd-template-runtime .fc-body{padding:11px 13px 12px}
.rd-template-runtime .fc-lbl{font-size:11.5px;margin-bottom:6px}
.rd-template-runtime .fc-ic{width:46px;height:46px;border-radius:12px}
.rd-template-runtime .fc-ic svg{width:25px;height:25px}
.rd-template-runtime .fc-upd{padding:9px 13px;font-size:11.5px}
.rd-template-runtime .fcard .fc-dots{width:26px;height:26px;margin-top:5px;font-size:17px}
.rd-template-runtime .fc-top{padding-right:13px}

/* ---- v128: дерево папок в сайдбаре ----
   Показываем только первый уровень; вложенные раскрываются шевроном. Направляющая линия
   слева связывает вложенную папку с родителем — иначе плоский список не читается как дерево. */
.rd-template-runtime .ghbtns{display:inline-flex;align-items:center;gap:2px}
.rd-template-runtime .fnode{position:relative;padding-left:calc(8px + var(--d) * 15px)}
.rd-template-runtime .ftog{flex:none;width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--faint);cursor:pointer;padding:0;border-radius:4px;transition:transform .15s,color .12s}
.rd-template-runtime .ftog svg{width:11px;height:11px}
.rd-template-runtime .ftog:hover{color:var(--ink);background:var(--track)}
.rd-template-runtime .ftog.on{transform:rotate(90deg)}
.rd-template-runtime .ftog.empty{pointer-events:none}
/* направляющая: вертикаль от родителя + усик к иконке вложенной папки */
.rd-template-runtime .fnode[data-d]:not([data-d="0"])::before{content:'';position:absolute;top:0;bottom:0;
  left:calc(8px + (var(--d) - 1) * 15px + 8px);width:1px;background:var(--line2)}
.rd-template-runtime .fnode[data-d]:not([data-d="0"])::after{content:'';position:absolute;top:50%;
  left:calc(8px + (var(--d) - 1) * 15px + 8px);width:9px;height:1px;background:var(--line2)}
.rd-template-runtime .fnode.active::before,.rd-template-runtime .fnode.active::after{background:var(--accent);opacity:.5}
.rd-template-runtime .fkids{flex:none;font-size:10.5px;font-weight:600;color:var(--muted);background:var(--track);border-radius:20px;padding:0 6px;line-height:16px}
.rd-template-runtime .nav-i.fnode .nvlbl{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---- v130: метки всегда на виду ----
   Длинный список папок выдавливал раздел «Метки» за нижнюю границу — казалось, что фильтра
   по меткам нет вовсе. Даём списку папок свою прокрутку. */
.rd-template-runtime .navfolders{max-height:34vh;overflow-y:auto;overscroll-behavior:contain}
.rd-template-runtime .tagempty{font-size:12.5px;color:var(--faint);padding:2px 10px 8px;line-height:1.45}
/* чипы фильтра типов событий в панели оповещений */
.rd-template-runtime .drawer .chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.rd-template-runtime .drawer .chip{background:var(--surface-2);color:var(--muted);border:1px solid var(--line);font:inherit;font-size:12.5px;font-weight:600;padding:5px 10px;border-radius:100px;display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.rd-template-runtime .drawer .chip.on{background:var(--accent);border-color:var(--accent);color:#fff}
.rd-template-runtime .drawer .chip .chipn{font-size:11px;opacity:.75;font-variant-numeric:tabular-nums}

/* ---- v136: карточка устройства в одну строку ----
   Сплошная заливка и кнопка во всю ширину выбивались из интерфейса: остальные блоки нейтральные,
   а действия компактные. Кнопка обновления — маленькая, справа от названия. */
.rd-template-runtime .cl-dev{display:flex;align-items:center;gap:11px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface);min-width:0}
.rd-template-runtime .cl-dev .cl-os{width:34px;height:34px;flex:none;border-radius:9px}
.rd-template-runtime .cl-dev .cl-os svg{width:18px;height:18px}
.rd-template-runtime .cl-dev .cl-meta{flex:1;min-width:0}
.rd-template-runtime .cl-dev .cl-name{font-weight:600;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rd-template-runtime .cl-dev .cl-sub{font-size:12px;color:var(--faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px}
.rd-template-runtime .cl-dev .cl-upd{flex:none;display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:8px;
  border:1px solid var(--accent);color:var(--accent);background:transparent;font-size:12px;font-weight:600;
  text-decoration:none;font-variant-numeric:tabular-nums;white-space:nowrap}
.rd-template-runtime .cl-dev .cl-upd:hover{background:var(--accent);color:#fff}
.rd-template-runtime .cl-dev .cl-upd .okic{display:inline-flex}
.rd-template-runtime .cl-dev .cl-upd .okic svg{width:13px;height:13px;display:block}
.rd-template-runtime .cl-dev .cl-dot{width:8px;height:8px;border-radius:50%;background:var(--faint);flex:none}
.rd-template-runtime .cl-dev .cl-dot.on{background:#1aa564;box-shadow:0 0 0 3px rgba(26,165,100,.18)}
/* Отвязанное устройство: приглушено, но НЕ спрятано. Убрать его с экрана значило бы оставить
   человека без ответа на «почему мой ноутбук перестал синхронизироваться» — а это первый
   вопрос, который он задаст. Тот же приём, что у отвязанной строки в админском парке. */
.rd-template-runtime .cl-dev.off{opacity:.62}
.rd-template-runtime .cl-dev.off .cl-name{text-decoration:line-through;text-decoration-color:var(--faint)}
.rd-template-runtime .cl-dev .pill{flex:none}
/* Пояснение под списком устройств: кто может отвязать и что при этом произойдёт.
   Стоит на месте кнопки, которой здесь нет и быть не может (отзыв — админская ручка). */
.rd-template-runtime .cl-note{font-size:12.5px;color:var(--muted);line-height:1.5;padding:2px 2px 0}
.rd-template-runtime .tagempty{font-size:12.5px;color:var(--faint);padding:2px 10px 8px;line-height:1.45}

/* ---- v139: сайдбар — папкам всё свободное место, метки и хранилище прижаты вниз ----
   Было: у списка папок фиксированные 34vh, из-за чего он обрывался на середине,
   а под свёрнутыми «Метками» зияла пустота. Теперь колонка: список папок тянется,
   прокрутка только внутри него. */
.rd-template-runtime .side{display:flex;flex-direction:column;overflow:hidden}
.rd-template-runtime .side-scroll>.nav:first-of-type{flex:none}
.rd-template-runtime .side .group{flex:none}
.rd-template-runtime .navfolders{flex:1 1 auto;min-height:88px;max-height:none;overflow-y:auto;overscroll-behavior:contain}
.rd-template-runtime .tagsect{flex:none;margin-top:6px}
.rd-template-runtime .tagsect .nav{max-height:22vh;overflow-y:auto;overscroll-behavior:contain}
.rd-template-runtime .storage{flex:none;margin-top:auto}
/* цветная папка в дереве сайдбара — тот же цвет, что у карточки */
.rd-template-runtime .nav-i.fnode .ni.col svg{stroke-width:2}
.rd-template-runtime .nav-i.fnode .ni.col{opacity:.95}

/* Публичные ссылки (RBDOC-102) — блок в секции «Доступ» правой панели. */
.rd-template-runtime .lnkbox { display: flex; flex-direction: column; gap: 6px; }
.rd-template-runtime .lnk { border: 1px solid var(--line2); border-radius: 10px; padding: 8px 10px; background: var(--surface-2); }
.rd-template-runtime .lnk + .lnk { margin-top: 6px; }
.rd-template-runtime .lnk-top { display: flex; align-items: center; gap: 6px; }
.rd-template-runtime .lnk-ic { color: var(--accent); display: flex; flex: none; }
.rd-template-runtime .lnk-url { flex: 1; min-width: 0; width: auto; font-size: 12px; padding: 5px 8px;
           border: 1px solid var(--line2); border-radius: 7px; background: var(--surface); color: var(--muted); }
.rd-template-runtime .lnk-url:focus { outline: none; border-color: var(--accent); color: var(--ink); }
.rd-template-runtime .lnk-meta { font-size: 12px; color: var(--muted); margin-top: 5px; }
.rd-template-runtime .lnk-meta.bad { color: var(--warn); }
.rd-template-runtime .lnk-set { margin-top: 9px; padding-top: 9px; border-top: 1px solid var(--line2);
           display: flex; flex-direction: column; gap: 7px; }
.rd-template-runtime .lnk-row { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.rd-template-runtime .lnk-in { flex: 1; min-width: 130px; width: auto; padding: 6px 9px; border: 1px solid var(--line2);
          border-radius: 7px; background: var(--surface); color: var(--ink); font-size: 13px; }
.rd-template-runtime .lnk-row button.on { border-color: var(--accent); color: var(--accent); }

/* Хлебные крошки: путь до текущей папки + переход наверх. */
.rd-template-runtime .crumbs { display: flex; align-items: center; gap: 6px; min-width: 0; flex-wrap: wrap; }
.rd-template-runtime .crumb-up { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px;
  padding: 0; border: 1px solid var(--line2); border-radius: 8px; background: var(--surface);
  color: var(--muted); cursor: pointer; flex: none; }
.rd-template-runtime .crumb-up:hover { border-color: var(--accent); color: var(--accent); }
.rd-template-runtime .crumbs .crumb { color: var(--muted); font-size: 14px; cursor: pointer; text-decoration: none; white-space: nowrap; }
.rd-template-runtime .crumbs .crumb:hover { color: var(--accent); }
.rd-template-runtime .crumbs .crumb-sep { color: var(--faint); font-size: 13px; }
.rd-template-runtime .crumbs .crumb-cur { margin: 0; font-size: 19px; }

/* Кто сейчас в документе. */
.rd-template-runtime .presence { display: flex; align-items: center; gap: 8px; margin-top: 10px; flex-wrap: wrap; }

/* Версии: выбранная для сравнения сторона. */
.rd-template-runtime .vlist li.vpick { background: var(--accent-soft); border-radius: 8px; }
.rd-template-runtime .vlist .ghost.sm.on { border-color: var(--accent); color: var(--accent); }
.rd-template-runtime .vdiff { margin-top: 10px; }

/* Найденная папка: путь до неё, иначе одноимённые из разных веток неразличимы. */
.rd-template-runtime .folder-row .nm .fpath { display: block; font-size: 12px; color: var(--faint); margin-top: 1px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Подсветка папки как цели перетаскивания в списочном виде (в сетке уже была). */
.rd-template-runtime .doc.folder-row.dropfolder { outline: 2px dashed var(--accent); outline-offset: -2px; background: var(--accent-soft); }
/* Пять действий в строке версии не помещаются в узкую панель — переносим, а не прокручиваем. */
.rd-template-runtime .vlist li { flex-wrap: wrap; row-gap: 6px; }

/* Кнопки в модальном окне (передача владения и т.п.). */
/* Ряд кнопок прилипает к низу прокручиваемого тела: отрицательные поля растягивают его
   на боковые и нижний отступы тела (18/20 px), а bottom:-18px возвращает прилипание к
   самому краю — иначе под кнопками просвечивала бы уезжающая форма. */
.rd-template-runtime .modal .mbtns { display: flex; gap: 8px; justify-content: flex-end; margin-top: 16px; flex-wrap: wrap;
  position: sticky; bottom: -18px; z-index: 1; margin: 16px -20px -18px; padding: 12px 20px 18px;
  background: var(--surface); box-shadow: 0 -8px 16px -12px rgba(31,42,68,.35); }
.rd-template-runtime .modal .mbody { display: flex; flex-direction: column; }

/* Корзина: кто удалил и откуда, срок до автоочистки. */
.rd-template-runtime .c-own.trashmeta { flex-direction: column; align-items: flex-start; gap: 1px; line-height: 1.3; }
.rd-template-runtime .c-own.trashmeta .muted { font-size: 12px; }
.rd-template-runtime .c-mod .soonpurge { color: var(--warn); }

/* Полноэкранный просмотрщик: лайтбокс поверх списка. */
.rd-template-runtime .viewer { position: fixed; inset: 0; z-index: 200; background: rgba(10, 14, 22, .93); }
.rd-template-runtime .viewer .vwrap { position: absolute; inset: 0; display: flex; flex-direction: column; }
.rd-template-runtime .viewer .vhead { display: flex; align-items: center; gap: 12px; padding: 12px 16px; color: #fff; }
.rd-template-runtime .viewer .vname { font-weight: 500; max-width: 46vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rd-template-runtime .viewer .vcount { font-size: 13px; color: rgba(255, 255, 255, .62); font-variant-numeric: tabular-nums; }
.rd-template-runtime .viewer .vtools { display: flex; align-items: center; gap: 6px; }
.rd-template-runtime .viewer .vtools button { min-width: 34px; height: 32px; padding: 0 9px; border-radius: 8px; cursor: pointer;
  border: 1px solid rgba(255, 255, 255, .18); background: rgba(255, 255, 255, .08); color: #fff; font: inherit; font-size: 14px; }
.rd-template-runtime .viewer .vtools button:hover { background: rgba(255, 255, 255, .18); }
.rd-template-runtime .viewer .vzoom { color: rgba(255, 255, 255, .72); font-size: 12.5px; min-width: 44px; text-align: center;
  font-variant-numeric: tabular-nums; }
.rd-template-runtime .viewer .vstage { flex: 1; display: flex; align-items: center; justify-content: center; overflow: hidden; padding: 8px 16px 20px; }
.rd-template-runtime .viewer .vstage img { max-width: 100%; max-height: 100%; object-fit: contain; user-select: none;
  transition: transform .08s linear; will-change: transform; }
.rd-template-runtime .viewer .vpdf { width: min(1100px, 96vw); height: 100%; border: 0; border-radius: 10px; background: #fff; }
.rd-template-runtime .viewer .vmedia { max-width: 96vw; max-height: 100%; }
.rd-template-runtime .viewer .vaudio { width: min(560px, 90vw); }
.rd-template-runtime .viewer .vload { color: rgba(255, 255, 255, .7); }
.rd-template-runtime .viewer .vnav { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 64px;
  border: 0; border-radius: 10px; background: rgba(255, 255, 255, .1); color: #fff; cursor: pointer;
  display: flex; align-items: center; justify-content: center; }
.rd-template-runtime .viewer .vnav:hover { background: rgba(255, 255, 255, .22); }
.rd-template-runtime .viewer .vnav.prev { left: 14px; }
.rd-template-runtime .viewer .vnav.prev .i { transform: rotate(90deg); }
.rd-template-runtime .viewer .vnav.next { right: 14px; }
.rd-template-runtime .viewer .vnav.next .i { transform: rotate(-90deg); }
@media (prefers-reduced-motion: reduce) { .rd-template-runtime .viewer .vstage img { transition: none; } }

/* Сообщения должны быть видны и поверх лайтбокса (у него z-index 200): иначе
   «дождитесь загрузки» и «не удалось» уходили под оверлей и человек их не видел. */
.rd-template-runtime .toast { z-index: 300; }

/* Замок в строке файла и путь до найденного документа. */
.rd-template-runtime .doc .nmline .lockbadge { color: var(--warn); display: inline-flex; margin-right: 4px; flex: none; }
.rd-template-runtime .doc .nmline .fpath { display: inline-block; margin-left: 8px; font-size: 12px; color: var(--faint);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 40%; }

/* Кусок найденного текста под именем документа. Приглушённый и не выше двух строк: фрагмент
   приезжает длиной в две сотни знаков, и без ограничения одна строка выдачи растягивалась бы
   втрое, а список поиска переставал бы читаться как список.

   ⚠️ white-space И font-weight ЗДЕСЬ ОБЯЗАТЕЛЬНЫ: ОБА НАСЛЕДУЮТСЯ ОТ ИМЕНИ ФАЙЛА, И БЕЗ НИХ
   ОБЕЩАННЫХ ДВУХ СТРОК НЕ БЫВАЕТ НИКОГДА. Фрагмент лежит ВНУТРИ .doc .nm — строки с именем
   документа, а она нарочно в одну строку без переносов (white-space:nowrap) и полужирная
   (font-weight:600). Наследуя это, фрагмент показывал человеку вот что: высота 16 px, то есть
   РОВНО ОДНА строка при объявленном -webkit-line-clamp: 2 (замерено в живом движке) — вторая
   строка не наступала никогда, потому что переносить текст запрещено; текст при этом шире
   своего места примерно на четверть и обрывается посреди слова БЕЗ многоточия (text-overflow
   не наследуется, а многоточие -webkit-box ставит на переносе, которого нет); и «приглушённый»
   фрагмент рисовался тем же полужирным, что и само имя файла, — то есть спорил с именем за
   внимание вместо того, чтобы уйти на второй план.
   Перенос сбрасываем ровно так же, как это уже сделано в журнале: .history .hrow .nftext. */
.rd-template-runtime .doc .nm .snip { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden; margin-top: 2px; font-size: 12px; line-height: 1.35; color: var(--faint);
  white-space: normal; font-weight: 400; }
/* Подсветка совпадения. Собственное правило нужно и на своё: у <mark> браузерная заливка
   ядовито-жёлтая, мимо всей темы, и в тёмной теме текст на ней не читается вовсе. */
.rd-template-runtime .doc .nm .snip mark { background: var(--accent-soft); color: var(--accent-ink);
  border-radius: 3px; padding: 0 2px; }

/* Действия по файлу — секция «Активность» в панели документа. */
.rd-template-runtime .actlist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 9px; }
.rd-template-runtime .actlist li { display: flex; align-items: flex-start; gap: 9px; }
.rd-template-runtime .actlist li.denied .actmeta > div:first-child { color: var(--warn); }
.rd-template-runtime .actmeta { min-width: 0; line-height: 1.4; }
.rd-template-runtime .actmeta .pill { margin-left: 6px; }

/* Крестик снятия фильтра по метке — у заголовка раздела. */
.rd-template-runtime .tagsect .tagclear { display: inline-flex; align-items: center; justify-content: center;
  width: 20px; height: 20px; padding: 0; border: 0; border-radius: 6px; cursor: pointer;
  background: var(--accent-soft); color: var(--accent); }
.rd-template-runtime .tagsect .tagclear:hover { background: var(--accent); color: #fff; }

/* Индикация изменений в строке: версии и комментарии. */
.rd-template-runtime .chgbs { display: inline-flex; gap: 5px; margin-left: 8px; flex: none; }
.rd-template-runtime .chgb { display: inline-flex; align-items: center; gap: 3px; padding: 1px 7px; border-radius: 999px;
  font-size: 11.5px; line-height: 1.5; cursor: pointer; border: 1px solid var(--line2);
  color: var(--muted); background: var(--surface); font-variant-numeric: tabular-nums; }
.rd-template-runtime .chgb:hover { border-color: var(--accent); color: var(--accent); }
.rd-template-runtime .chgb.fresh { border-color: var(--accent); color: var(--accent); background: var(--accent-soft); font-weight: 500; }
.rd-template-runtime .chgb .i { width: 11px; height: 11px; }

/* Меню-переключатель: колонка галочки и заголовок группы. Нужны там, где меню показывает
   не действия, а текущий выбор (сортировка) — человек должен видеть, что включено. */
.rd-template-runtime .ctxmenu .ci-head{padding:8px 12px 4px;font-size:11.5px;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;color:var(--muted)}
.rd-template-runtime .ctxmenu .ci .cimark{display:inline-flex;align-items:center;justify-content:center;width:16px;
  min-width:16px;margin-right:8px;color:var(--accent)}
.rd-template-runtime .ctxmenu .ci .cimark svg{width:15px;height:15px}
.rd-template-runtime .ctxmenu .ci{display:flex;align-items:center}
.rd-template-runtime .ctxmenu .ci.on{font-weight:600}

/* Мелкие плитки — третья плотность. Та же карточка, плотнее сетка и ниже превью:
   так в экран помещается большая папка целиком. */
.rd-template-runtime .grid.small{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px}
.rd-template-runtime .grid.small .tile .tprev{height:78px}
.rd-template-runtime .grid.small .tile .tfoot{padding:6px 8px;gap:4px}
.rd-template-runtime .grid.small .tile .tnm{font-size:12px}
.rd-template-runtime .grid.small .tile .dots{transform:scale(.85)}
.rd-template-runtime .grid.small .tile .ic.big{font-size:12px}
/* Карточка папки несёт обложку и дугу-индикатор, поэтому ужимаем её умереннее файловой
   плитки: ниже ~190px обложка и подпись начинают наезжать друг на друга. */
.rd-template-runtime .fcards.small{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}

/* Раздел «Управление местом». */
.rd-template-runtime .storage.act{cursor:pointer;border-radius:12px;transition:background .12s}
.rd-template-runtime .storage.act:hover{background:var(--surface-2)}
.rd-template-runtime .storage.act.on{background:var(--accent-soft)}
.rd-template-runtime .space .spcard{background:var(--surface);border:1px solid var(--line);border-radius:14px;
  padding:16px 18px;box-shadow:var(--shadow-sm);margin-bottom:14px}
.rd-template-runtime .space .sphead{display:flex;align-items:baseline;gap:12px;margin-bottom:12px}
.rd-template-runtime .space .spused{font-size:19px;font-weight:700}
.rd-template-runtime .space .spfree{margin-left:auto;color:var(--muted);font-size:13.5px}
.rd-template-runtime .space .spfree.low{color:var(--warn);font-weight:600}
.rd-template-runtime .space .spbar{display:flex;height:10px;border-radius:99px;overflow:hidden;background:var(--track)}
.rd-template-runtime .space .spbar i{display:block;height:100%}
.rd-template-runtime .space .spbar i+i{box-shadow:inset 1px 0 0 var(--surface)}
.rd-template-runtime .space .spbar.empty{background:var(--track)}
.rd-template-runtime .space .splegend{display:flex;flex-wrap:wrap;gap:6px 20px;margin-top:12px}
.rd-template-runtime .space .spleg{display:inline-flex;align-items:center;gap:7px;font-size:13px}
.rd-template-runtime .space .spleg i{width:9px;height:9px;border-radius:3px;flex:none}
.rd-template-runtime .space .spleg-l{color:var(--muted)}
.rd-template-runtime .space .spleg-b{font-weight:600;font-variant-numeric:tabular-nums}
.rd-template-runtime .space .sphints{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.rd-template-runtime .space .sphint{display:flex;align-items:center;gap:10px;font-size:13.5px;color:var(--ink);
  background:var(--surface-2);border-radius:12px;padding:11px 14px}
.rd-template-runtime .space .sphint .bi{color:var(--muted);flex:none}
.rd-template-runtime .space .sphint button{margin-left:auto;flex:none}
.rd-template-runtime .space .spfrow{display:grid;grid-template-columns:minmax(0,2.4fr) minmax(0,1fr) 110px 110px 110px;
  align-items:center;gap:12px}
.rd-template-runtime .space .spfrow .c-size{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted);font-size:13px}
.rd-template-runtime .space .spfrow .c-size.strong{color:var(--ink);font-weight:600}
.rd-template-runtime .space .dhead-row.spfrow .colh.right{text-align:right;justify-content:flex-end}
@media (max-width:900px){
  .rd-template-runtime .space .spfrow{grid-template-columns:minmax(0,1fr) 92px;}
  .rd-template-runtime .space .spfrow .c-folder,.rd-template-runtime .space .spfrow .c-size:not(.strong){display:none}
}

/* Фотоальбом. Отдельной сущности нет — это папка, показанная сеткой снимков, поэтому
   отличаем её значком и более плотной, «фотографической» сеткой без рамок вокруг кадра. */
.rd-template-runtime .fc-ic.album,.rd-template-runtime .fri.album{background:#f0e7ff;color:#7c5cff}
.rd-template-runtime.dark .fc-ic.album,.rd-template-runtime.dark .fri.album{background:#2a2140;color:#b39dff}
.rd-template-runtime .grid.album{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px}
.rd-template-runtime .grid.album.small{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:6px}
.rd-template-runtime .grid.album .tile{border-radius:10px}
.rd-template-runtime .grid.album .tile .tprev{height:150px;background:var(--surface-2)}
.rd-template-runtime .grid.album.small .tile .tprev{height:96px}
.rd-template-runtime .grid.album .tile .tprev .ic.big{width:100%;height:100%;border-radius:0}
.rd-template-runtime .grid.album .tile .tprev img.thumb{width:100%;height:100%;object-fit:cover}
.rd-template-runtime .grid.album .tile .tfoot{padding:6px 9px}
.rd-template-runtime .grid.album .tile .tnm{font-size:12px;font-weight:500;color:var(--muted)}
/* Кнопка паузы слайд-шоу — в общем ряду инструментов просмотрщика. */
.rd-template-runtime .viewer .vtools .vplay{color:var(--accent)}

/* Лента «Фото»: сетка кадров с заголовками месяцев. Заголовок липнет к верху при прокрутке —
   иначе, пролистав пару экранов, не понять, какой месяц сейчас перед глазами. */
.rd-template-runtime .feed{display:flex;flex-direction:column;gap:18px}
.rd-template-runtime .feedgrp .sechead{position:sticky;top:var(--app-header-height);z-index:2;background:var(--bg);padding:6px 0 8px;
  display:flex;align-items:center;gap:8px}

/* Таблица «Самые тяжёлые файлы» переопределяет общую сетку файлового списка. Без класса
   .spfiles в селекторе общее правило .docs.table .doc (специфичность выше) выигрывало,
   и числа разъезжались с заголовками колонок. */
.rd-template-runtime .space .docs.table.spfiles .doc,.rd-template-runtime
.space .docs.table.spfiles .dhead-row{
  display:grid;grid-template-columns:minmax(0,2.4fr) minmax(0,1fr) 110px 110px 110px;
  align-items:center;gap:12px}
.rd-template-runtime .space .docs.table.spfiles .colh.right{text-align:right;justify-content:flex-end}
@media (max-width:900px){
  /* Скрываем колонки и в СТРОКАХ, и в ШАПКЕ: раньше прятались только строки, и шапка
     оставалась пятиколоночной над двумя колонками данных. */
  .rd-template-runtime .space .docs.table.spfiles .doc,.rd-template-runtime
  .space .docs.table.spfiles .dhead-row{grid-template-columns:minmax(0,1fr) 92px}
  .rd-template-runtime .space .docs.table.spfiles .c-folder,.rd-template-runtime
  .space .docs.table.spfiles .c-size:not(.strong),.rd-template-runtime
  .space .docs.table.spfiles .dhead-row .colh:nth-child(2),.rd-template-runtime
  .space .docs.table.spfiles .dhead-row .colh:nth-child(3),.rd-template-runtime
  .space .docs.table.spfiles .dhead-row .colh:nth-child(4){display:none}
}

/* Раздел «История»: фильтры сверху, события сгруппированы по дням. */
.rd-template-runtime .history .hfilters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.rd-template-runtime .history .hfl{color:var(--muted);font-size:13px}
.rd-template-runtime .history .hdate{background:var(--surface);border:1px solid var(--line2);border-radius:10px;
  padding:7px 10px;font:inherit;font-size:13.5px;color:var(--ink);
  /* Без ограничения поле даты растягивалось на всю строку фильтров и выдавливало
     остальные элементы на второй ряд. */
  flex:0 0 auto;width:auto;min-width:150px;max-width:190px}
.rd-template-runtime .history .hfil{display:inline-flex;align-items:center;gap:6px;background:var(--surface);
  border:1px solid var(--line2);border-radius:10px;padding:7px 11px;font-size:13.5px;color:var(--ink)}
.rd-template-runtime .history .hfil.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}
.rd-template-runtime .history .hfil.x{padding:7px 9px;color:var(--muted)}
.rd-template-runtime .history .hgroups{display:flex;flex-direction:column;gap:16px}
.rd-template-runtime .history .hgrp .sechead{position:sticky;top:var(--app-header-height);z-index:2;background:var(--bg);padding:6px 0 8px;
  display:flex;align-items:center;gap:8px}
.rd-template-runtime .history .hrows{background:var(--surface);border:1px solid var(--line);border-radius:14px;
  overflow:hidden}
.rd-template-runtime .history .hrow{display:flex;align-items:center;gap:12px;padding:10px 14px}
.rd-template-runtime .history .hrow+.hrow{border-top:1px solid var(--line)}
.rd-template-runtime .history .htime{flex:none;width:46px;color:var(--muted);font-size:13px;
  font-variant-numeric:tabular-nums}
.rd-template-runtime .history .hsrc{flex:none;color:var(--faint);font-size:12.5px;text-align:right;min-width:118px}
.rd-template-runtime .history .hmore{display:flex;justify-content:center;margin-top:16px}
/* Кнопка «только этот объект» в строке журнала: бледная, пока на строку не навели, — она
   служебная и не должна спорить с самим событием. */
.rd-template-runtime .history .hnarrow{flex:none;padding:5px 7px;opacity:.35}
.rd-template-runtime .history .hrow:hover .hnarrow{opacity:1}
@media (max-width:820px){ .rd-template-runtime .history .hsrc{display:none} }
/* Середина строки истории должна занимать всё свободное место, иначе колонка источника
   болтается сразу за текстом и не выстраивается в столбец. */
.rd-template-runtime .history .hrow .nfgrow{flex:1;min-width:0}
.rd-template-runtime .history .hrow .nftext{white-space:normal}

/* На desktop все элементы шапки остаются в одном ряду. При нехватке ширины
   второстепенные действия доступны в меню, а измеряемый offset панелей сохранён. */
.rd-template-runtime .top{flex-wrap:nowrap;height:60px;min-height:60px;padding:0 18px;gap:10px}
.rd-template-runtime .top .brand,.rd-template-runtime .top > .iconbtn,.rd-template-runtime .top > .avatar{flex:none}
.rd-template-runtime .top .topslot{order:0;flex:1 1 auto;min-width:0;display:flex;align-items:center}
.rd-template-runtime .top .topslot .toolbar{margin:0;flex:1;min-width:0;gap:6px;flex-wrap:nowrap}
.rd-template-runtime .top .topslot .toolbar > h2,.rd-template-runtime .top .topslot .crumbs{flex:0 1 240px;min-width:0;max-width:240px;overflow:hidden}
.rd-template-runtime .top .topslot .toolbar h2{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rd-template-runtime .top .topslot .crumbs{flex-wrap:nowrap}
.rd-template-runtime .top .topslot .crumbs .crumb,.rd-template-runtime .top .topslot .crumbs .crumb-sep{display:none}
.rd-template-runtime .top .topslot .crumbs .crumb-cur{min-width:0}
.rd-template-runtime .top .topslot .cnt2{flex:none;font-size:12px}
.rd-template-runtime .top .topslot .tspacer{flex:1;min-width:0}
.rd-template-runtime .top .topslot .hactions{flex:none;flex-wrap:nowrap;gap:6px}
.rd-template-runtime .top .header-icon-action{font-size:0;width:34px;height:34px;padding:0;flex:none;justify-content:center}
.rd-template-runtime .top .header-icon-action .bi{font-size:16px}
.rd-template-runtime .top .sortbtn > span:not(.bi),.rd-template-runtime .top .sortbtn .sdir{display:none}
.rd-template-runtime .top .header-create{font-size:13px;width:auto;padding:0 10px;white-space:nowrap}
.rd-template-runtime .top .vtoggle{height:34px;flex:none}
.rd-template-runtime .top .vtoggle button{padding:5px 8px;font-size:14px}
.rd-template-runtime .top .topslot .fclear{display:none}
.rd-template-runtime .top .searchwrap{order:0;flex:0 1 220px;min-width:130px;max-width:240px;margin:0}
.rd-template-runtime .top .search{height:36px;font-size:13px}
.rd-template-runtime .top > .iconbtn,.rd-template-runtime .top > .avatar{width:36px;height:36px}
.rd-template-runtime .top .who{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.rd-template-runtime .header-more{display:none;flex:none;width:34px;height:34px;padding:0;background:var(--surface);color:var(--ink);border:1px solid var(--line2);font-size:22px;line-height:1}
.rd-template-runtime .header-more.has-filters{display:inline-flex;align-items:center;justify-content:center}
.rd-template-runtime .header-actions-menu{max-height:calc(100vh - 16px);overflow-y:auto;overscroll-behavior:contain}
.rd-template-runtime .top .bulkbar{min-width:0;flex:1;flex-wrap:nowrap;gap:6px}
.rd-template-runtime .top .bulkbar .bcount{white-space:nowrap}
@media(max-width:1780px){.rd-template-runtime .top .who{display:none}}
@media(max-width:1400px){
  .rd-template-runtime .top{gap:8px;padding-left:14px;padding-right:14px}
  .rd-template-runtime .top .topslot .toolbar > h2,.rd-template-runtime .top .topslot .crumbs{max-width:190px}
  .rd-template-runtime .top .searchwrap{flex-basis:170px;min-width:120px}
}
@media(max-width:1100px){
  .rd-template-runtime .top .header-more{display:inline-flex;align-items:center;justify-content:center}
  .rd-template-runtime .top .sortbtn,.rd-template-runtime .top .vtoggle,.rd-template-runtime .top .hactions button:not(.header-create),.rd-template-runtime .top .selallbtn,.rd-template-runtime .top .densebtn,.rd-template-runtime .top .bulkbar button:not(.bcancel){display:none}
  .rd-template-runtime .top .topslot .toolbar > h2,.rd-template-runtime .top .topslot .crumbs{max-width:180px}
}
@media(max-width:820px){
  .rd-template-runtime .top{flex-wrap:wrap;height:auto;padding:8px 12px;gap:8px}
  .rd-template-runtime .top .brand{margin-right:auto}
  .rd-template-runtime .top .topslot{order:1;flex-basis:100%}
  .rd-template-runtime .top .topslot .toolbar > h2,.rd-template-runtime .top .topslot .crumbs{max-width:none;flex:1}
  .rd-template-runtime .top .searchwrap{order:2;flex-basis:100%;max-width:none}
}
@media(max-width:620px){.rd-template-runtime .top > .support{display:none}}

/* ---- Путь до найденного файла в плитках (RBDOC-111) ----------------------------------
   В списке путь есть колонкой «Папка» и подписью .fpath, а в плитках и в ленте «Фото» ни
   того, ни другого: по выдаче поиска было не понять, откуда файл. Подпись показываем только
   при поиске (её рисует docPath) — в обычном просмотре папка и так известна из крошек. */
.rd-template-runtime .tile .tnmwrap { flex: 1; min-width: 0; }
.rd-template-runtime .tile .tpath { font-size: 11.5px; color: var(--faint); margin-top: 1px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* У плитки с путём подвал выше на одну строку — прижимаем содержимое к верху, иначе имя
   и путь разъезжаются относительно кнопки «⋮». */
.rd-template-runtime .tile .tfoot.withpath { align-items: flex-start; }
.rd-template-runtime .tile .tfoot.withpath .dots { margin-top: -2px; }
.rd-template-runtime .grid.small .tile .tpath,.rd-template-runtime  .grid.album.small .tile .tpath { font-size: 11px; }

/* ---- Загрузка папки целиком (RBDOC-106) ---------------------------------------------
   В зоне теперь два действия: обычный диалог файлов и диалог выбора ПАПКИ — обычным
   папку выбрать нельзя вовсе, и без второй кнопки дерево грузилось бы только броском. */
.rd-template-runtime .updzbtns { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; margin-top: 4px; }
.rd-template-runtime .updzbtns button { display: inline-flex; align-items: center; gap: 6px; }
/* Путь внутри загружаемой папки — под именем файла: без него в списке из ста строк
   одноимённые файлы разных подпапок неразличимы. */
.rd-template-runtime .uprow2 .uppath { display: block; font-size: 11.5px; color: var(--faint); font-weight: 400;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ---- «Выделить всё» ------------------------------------------------------------------
   Галочка стоит в шапке списка ровно над галочками строк, поэтому левый отступ первой
   колонки, оставленный под них, ей и отдаём. Кнопку сортировки нельзя делать вложенным
   .colh: правила скрытия колонок на узком экране бьют по nth-child. */
.rd-template-runtime .dhead-row .colh.namehead { padding-left: 0; gap: 10px; cursor: default; }
.rd-template-runtime .dhead-row .namehead .colsort { background: transparent; border: 0; padding: 0; color: inherit;
  font: inherit; display: inline-flex; align-items: center; gap: 5px; cursor: pointer; }
.rd-template-runtime .dhead-row .namehead .colsort.on { color: var(--accent); }
.rd-template-runtime .dhead-row .namehead .selbox .selmark { width: 18px; height: 18px; }
/* Кнопка в панели раздела — для плиточных видов, где шапки списка нет. */
.rd-template-runtime .selallbtn { width: 34px; height: 34px; padding: 0; display: inline-flex; align-items: center;
  justify-content: center; background: var(--surface); color: var(--muted);
  border: 1px solid var(--line2); border-radius: 10px; }
.rd-template-runtime .selallbtn:hover { border-color: var(--accent); color: var(--accent); filter: none; }
/* «Выделить всё» рядом со счётчиком выбранного: отсюда видно и сколько выбрано, и как
   добрать остальное одним нажатием. */
.rd-template-runtime .bulkbar .blinkall { background: transparent; color: var(--accent); padding: 4px 8px;
  font-size: 13.5px; font-weight: 600; border-radius: 8px; }
.rd-template-runtime .bulkbar .blinkall:hover { background: var(--accent-soft); filter: none; }
.rd-template-runtime .bulkbar button.ghost.on { border-color: var(--accent); color: var(--accent); }

/* ---- Корзина: документ уехал вместе с папкой ---------------------------------------- */
.rd-template-runtime .c-own.trashmeta .withfol { font-size: 12px; color: var(--accent-ink); overflow: hidden;
  text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }

/* ---- Версии документа (RBDOC-108) ----------------------------------------------------
   Строка версии стала двухэтажной: сверху имя и признаки, снизу действия. В один ряд
   восемь кнопок и имя не помещаются в узкую панель ни при каком экране. */
.rd-template-runtime .vlist li.vrow { flex-direction: column; align-items: stretch; gap: 8px; }
.rd-template-runtime .vrow .vtop { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
/* Имя версии крупно и первым: человек помнит редакцию как «на подпись», а не как «v7». */
.rd-template-runtime .vrow .vname { font-weight: 600; font-size: 14px; cursor: text; border-bottom: 1px dashed transparent; }
.rd-template-runtime .vrow .vname:hover { border-bottom-color: var(--line2); }
.rd-template-runtime .vrow .vname.unnamed { font-weight: 400; color: var(--faint); font-style: italic; }
.rd-template-runtime .vrow .vnum { font-family: var(--mono); font-size: 12px; color: var(--muted); }
.rd-template-runtime .vrow .vname-in { font: inherit; font-size: 14px; padding: 3px 8px; border: 1px solid var(--accent);
  border-radius: 8px; background: var(--surface); color: var(--ink); min-width: 160px; flex: 1; }
.rd-template-runtime .vrow .vmeta { font-size: 12.5px; white-space: nowrap; }
.rd-template-runtime .vrow .vacts { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.rd-template-runtime .vrow .vacts button { display: inline-flex; align-items: center; gap: 5px; }
/* Кнопка удаления у закреплённой версии видна, но гасится: она не «пропала», её сначала
   надо открепить, и подсказка говорит именно это. */
.rd-template-runtime .vrow .vacts .danger.sm.off { opacity: .45; }
/* «Сейчас в документе» — тихая плашка, а не предупреждение: это состояние, не проблема. */
.rd-template-runtime .pill.cur { background: var(--accent-soft); color: var(--accent-ink); border-color: var(--accent); }
.rd-template-runtime .vlist li.vcur { border-color: var(--accent); }
.rd-template-runtime .vhint { font-size: 12.5px; margin-top: 10px; }

/* Просмотр старой версии текстового документа — текстом, а не скачиванием файла. */
.rd-template-runtime .viewer .vtext { max-width: min(900px, 92vw); max-height: 100%; overflow: auto; margin: 0;
  padding: 18px 22px; background: var(--surface); color: var(--ink); border-radius: 10px;
  font-family: var(--mono); font-size: 13px; line-height: 1.55; white-space: pre-wrap; word-break: break-word; }

/* Эскиз документа вписываем целиком по белому листу: у страницы договора смысл в верхних
   строках, и обрезка «по кадру» срезала бы как раз их. */
.rd-template-runtime .ic.docthumb .thumb { object-fit: contain; background: #fff; }

/* Чужая папка в «Избранном»: открыть её деревом нельзя, и карточка не должна обещать этого. */
.rd-template-runtime .fcard.foreign { opacity: .92; }
.rd-template-runtime .fcard.foreign .fc-upd { color: var(--faint); font-style: italic; }

/* Уточнение к событию журнала (какая версия, ушла ли папка с содержимым). */
.rd-template-runtime .nfdet { color: var(--muted); }

/* ---- Доступ и журнал (RBDOC-107, 112) ------------------------------------------------ */

/* Подсказка под полем роли: почему справочник молчит или почему такой роли нет. Место под
   неё держим всегда — иначе появление сообщения дёргает всю форму выдачи вверх-вниз. */
.rd-template-runtime .rolenote { font-size: 12.5px; min-height: 17px; margin: 6px 2px 0; }
.rd-template-runtime .rolenote.bad { color: var(--warn); }
.rd-template-runtime .upick-drop .shav.sm.grp svg { width: 14px; height: 14px; }

/* Переключатель скачивания в строке выданного доступа: замок — запрещено, стрелка вниз —
   разрешено. Цветом выделено именно ЗАПРЕЩЕНО: это отличие от обычного положения дел. */
.rd-template-runtime .shdl { width: 30px; height: 30px; padding: 0; display: inline-flex; align-items: center;
  justify-content: center; background: #fdeceb; color: var(--warn); border: 1px solid transparent;
  border-radius: 8px; flex: none; }
.rd-template-runtime .shdl.on { background: var(--surface-2); color: var(--muted); border-color: var(--line2); }
/* Состояние неизвестно (сервер не прислал флаг) — пунктир: кнопка работает, но текущее
   положение ею не показано, и притворяться, что показано, нельзя. */
.rd-template-runtime .shdl.unknown { background: transparent; color: var(--faint); border: 1px dashed var(--line2); }
.rd-template-runtime .shdl:hover { filter: none; border-color: var(--accent); color: var(--accent); }
.rd-template-runtime .shdl svg { width: 16px; height: 16px; }
/* «это вы» в чужом списке доступа — человек первым делом ищет там себя. */
.rd-template-runtime .pill.me { margin-left: 6px; background: var(--accent-soft); color: var(--accent-ink); border-color: var(--accent); }
.rd-template-runtime .pill.bad { background: #fdeceb; color: var(--warn); border-color: #f6c9c5; }
.rd-template-runtime .acchint { font-size: 12.5px; margin-top: 10px; }
/* Ссылка внутри строки свойств («через папку …»). */
.rd-template-runtime .plink { color: var(--accent-ink); cursor: pointer; }
.rd-template-runtime .plink:hover { text-decoration: underline; }

/* ---- Чужая папка, открытая как папка -------------------------------------------------- */
.rd-template-runtime .sfhead { background: var(--surface); border: 1px solid var(--line2); border-radius: var(--radius);
  padding: 12px 14px; display: flex; flex-direction: column; gap: 8px; }
.rd-template-runtime .sfrow { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; font-size: 13.5px; color: var(--muted); }
.rd-template-runtime .sflbl { color: var(--faint); font-size: 12.5px; }
.rd-template-runtime .sfchip { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border-radius: 100px;
  background: var(--surface-2); border: 1px solid var(--line2); font-size: 12.5px; color: var(--ink); }
.rd-template-runtime .sfchip.me { background: var(--accent-soft); border-color: var(--accent); color: var(--accent-ink); }
.rd-template-runtime .sfchip svg { width: 13px; height: 13px; }
/* Строка чужой папки: кликается целиком, но без выбора и перетаскивания — к чужой папке
   групповые действия не применимы. */
.rd-template-runtime .doc.folder-row.shared { cursor: pointer; }
.rd-template-runtime .doc.folder-row.shared .c-size .pill { font-family: var(--font); }

/* ---- Раздел «Мои ссылки» -------------------------------------------------------------- */
.rd-template-runtime .main.links .lnkbox.page { margin-top: 4px; }
.rd-template-runtime .lnkbox.page .lnk { padding: 12px 14px; background: var(--surface); }
.rd-template-runtime .lnk-nm { font-weight: 600; color: var(--ink); cursor: pointer; overflow: hidden;
  text-overflow: ellipsis; white-space: nowrap; max-width: 40ch; }
.rd-template-runtime .lnk-nm:hover { color: var(--accent-ink); text-decoration: underline; }
/* Мёртвая ссылка (объекта нет, срок вышел) гасится, но остаётся читаемой: её надо найти
   глазами и отозвать, а не проглядеть. */
.rd-template-runtime .lnk.dead { border-color: #f6c9c5; }
.rd-template-runtime .lnk.dead .lnk-url { opacity: .6; }

/* «Показать ещё» в панели оповещений — та же кнопка, что в журнале, но панель уже. */
.rd-template-runtime .drawer .hmore { display: flex; justify-content: center; margin-top: 12px; }
/* Тёмная тема: те же смыслы, но красное на светлом фоне в ней слепит (правило то же, что
   у .diff .del и .pill.lock выше). */
.rd-template-runtime.dark .shdl { background: #3a1a1a; color: #ea9a92; }
.rd-template-runtime.dark .pill.bad { background: #3a1a1a; color: #ea9a92; border-color: #5a2a28; }
.rd-template-runtime.dark .lnk.dead { border-color: #5a2a28; }

/* ---- Администрирование (RBDOC-118) ---------------------------------------------------
   Отдельной визуальной системы у раздела нет: те же токены, та же плотность, те же карточки
   и пилюли, что и в остальном интерфейсе. Админка — это ещё один раздел диска, а не другой
   продукт, и выглядеть она должна так же — иначе человек каждый раз заново учится читать
   экран, на котором принимает самые дорогие решения. */

/* Группа в боковом меню: прижата к низу вместе с хранилищем — заходят в неё редко. */
.rd-template-runtime .admsect { flex: none; margin-top: 6px; }
.rd-template-runtime .admsect .nav { max-height: 30vh; overflow-y: auto; overscroll-behavior: contain; }

.rd-template-runtime .main.admin .admtop { margin-bottom: 14px; }
/* Без «.admin » в селекторе намеренно: иначе у этого правила вес выше, чем у надстроек
   (.admok, .admdefq) на том же элементе, и заданные ими отступы молча не применяются. */
.rd-template-runtime .admbox { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 4px 16px; box-shadow: var(--shadow-sm); }

/* Плитки сводки — тот же приём, что у карточек категорий на главной. */
.rd-template-runtime .admstats { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px; }
.rd-template-runtime .admstat { background: var(--surface); border: 1px solid var(--line); border-radius: 16px;
  padding: 15px 18px; box-shadow: var(--shadow-sm); }
.rd-template-runtime .admstat-l { font-size: 12.5px; color: var(--muted); }
.rd-template-runtime .admstat-v { font-size: 26px; font-weight: 800; line-height: 1.15; margin-top: 6px; font-variant-numeric: tabular-nums; }
.rd-template-runtime .admstat-s { font-size: 12px; color: var(--faint); margin-top: 5px; }

/* Строка «цифра посчитана не по всем» — вместе с кнопкой досчитать. */
.rd-template-runtime .admhint { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; font-size: 13px;
  color: var(--muted); margin-top: 12px; }
.rd-template-runtime .admhint button { flex: none; }
/* Мелкое пояснение под полем или блоком. */
.rd-template-runtime .admhint2 { font-size: 12.5px; color: var(--muted); margin-top: 8px; line-height: 1.45; }

/* Факты об установке: пары «что — значение». */
.rd-template-runtime .admfacts { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0 22px; }
.rd-template-runtime .admfact { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0;
  border-bottom: 1px solid var(--line); font-size: 13.5px; }
.rd-template-runtime .admfact-k { color: var(--muted); }
.rd-template-runtime .admfact-v { font-weight: 600; text-align: right; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Зависимость: точка состояния, имя, подробность, время ответа. Три состояния, а не два:
   «не настроено» — это решение, а не поломка, и красным оно быть не должно. */
.rd-template-runtime .admdep { display: flex; align-items: center; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.rd-template-runtime .admdep:last-child { border-bottom: 0; }
.rd-template-runtime .admdot { width: 9px; height: 9px; border-radius: 50%; flex: none; background: var(--faint); }
.rd-template-runtime .admdot.ok { background: var(--ok); }
.rd-template-runtime .admdot.fail { background: var(--warn); }
.rd-template-runtime .admdot.off { background: var(--faint); }
.rd-template-runtime .admdep-m { flex: 1; min-width: 0; }
.rd-template-runtime .admdep-n { font-weight: 600; font-size: 14px; }
.rd-template-runtime .admdep-d { font-size: 12.5px; color: var(--muted); margin-top: 2px; word-break: break-word; }
.rd-template-runtime .admdep-s { font-size: 12.5px; color: var(--muted); flex: none; }
.rd-template-runtime .admdep-s.ok { color: var(--ok); }
.rd-template-runtime .admdep-s.fail { color: var(--warn); font-weight: 600; }
.rd-template-runtime .admdep-t { font-size: 12px; color: var(--faint); flex: none; width: 62px; text-align: right;
  font-variant-numeric: tabular-nums; }

/* Незаданная настройка: последствие крупно, имя переменной — мелко и моноширинно. */
.rd-template-runtime .admwarn { display: flex; align-items: flex-start; gap: 11px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.rd-template-runtime .admwarn:last-child { border-bottom: 0; }
.rd-template-runtime .admwarn-ic { color: #d9821f; flex: none; margin-top: 1px; }
.rd-template-runtime .admwarn-m { min-width: 0; font-size: 13.5px; line-height: 1.45; }
.rd-template-runtime .admwarn-e { color: var(--faint); margin-top: 3px; }
.rd-template-runtime .admok { display: flex; align-items: center; gap: 10px; padding: 14px 16px; color: var(--muted); font-size: 13.5px; }
.rd-template-runtime .admok .bi { color: var(--ok); }

/* Заметное предупреждение внутри раздела: справочник недоступен, выгрузка обрезана,
   человек за пределом лимита. */
.rd-template-runtime .admnotice { display: flex; align-items: flex-start; gap: 10px; padding: 11px 14px; margin-bottom: 14px;
  background: #fff6e8; border: 1px solid #f0d9b0; border-radius: 12px; color: #7a5310; font-size: 13.5px; line-height: 1.45; }
.rd-template-runtime .admnotice .bi { flex: none; margin-top: 1px; }

/* Строка фильтров: та же плотность, что у фильтров журнала. */
.rd-template-runtime .admfilters { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; position: relative; }
.rd-template-runtime .admfilters.wrap { flex-wrap: wrap; }
.rd-template-runtime .admq { width: auto; flex: 1 1 240px; min-width: 180px; height: 38px; border-radius: 10px; padding-left: 36px; }
.rd-template-runtime .admq.sm { flex: 0 1 190px; min-width: 150px; height: 34px; padding: 6px 10px; font-size: 13.5px; }
.rd-template-runtime .admqi { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--faint);
  display: flex; align-items: center; font-size: 16px; pointer-events: none; }
.rd-template-runtime .admfilters.wrap .admq { padding-left: 10px; }
.rd-template-runtime .admfil { display: inline-flex; align-items: center; gap: 6px; background: var(--surface);
  border: 1px solid var(--line2); color: var(--ink); border-radius: 10px; padding: 7px 11px; font-size: 13.5px; }
.rd-template-runtime .admfil:hover { border-color: var(--accent); color: var(--accent); filter: none; }
.rd-template-runtime .admfil.on { background: var(--accent-soft); border-color: var(--accent); color: var(--accent-ink); }
.rd-template-runtime .admfil .bi { font-size: 13px; color: var(--faint); }
.rd-template-runtime .admfil.on .bi { color: var(--accent-ink); }
.rd-template-runtime .admdate { width: auto; flex: none; background: var(--surface); border: 1px solid var(--line2);
  border-radius: 10px; padding: 6px 10px; font-size: 13.5px; color: var(--ink); }
.rd-template-runtime .admfl { font-size: 13px; color: var(--muted); }
.rd-template-runtime .admtabs { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.rd-template-runtime .admtabs .admhint2 { margin-top: 0; }
.rd-template-runtime .admcount { font-size: 12.5px; color: var(--muted); margin: 0 2px 10px; }
.rd-template-runtime .admmore { display: flex; justify-content: center; margin-top: 16px; }

/* Настройки контура (RBDOC-121). Карточка на настройку, а не строка таблицы: у каждой
   обязательны два абзаца — что она значит и что произойдёт после смены, — и в ячейку
   таблицы они не помещаются, а без них решение принимают по названию. */
.rd-template-runtime .admset-card { padding: 16px; margin-bottom: 14px; }
.rd-template-runtime .admset-top { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.rd-template-runtime .admset-name { font-weight: 700; font-size: 15px; flex: 1 1 240px; min-width: 0; }
.rd-template-runtime .admset-val { font-size: 15px; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--accent-ink); }
.rd-template-runtime .admset-act { display: flex; gap: 8px; flex: none; }
.rd-template-runtime .admset-src { font-size: 12.5px; color: var(--faint); margin-top: 4px; }
.rd-template-runtime .admset-what { font-size: 13.5px; color: var(--muted); margin-top: 10px; line-height: 1.5; }
/* Последствие — отдельным блоком со значком: его читают перед тем, как нажать, и потерять
   его среди описания нельзя. */
.rd-template-runtime .admset-eff { display: flex; align-items: flex-start; gap: 9px; margin-top: 10px; padding: 10px 12px;
  background: var(--surface-2); border-radius: 10px; font-size: 13px; line-height: 1.5; color: var(--ink); }
.rd-template-runtime .admset-eff .bi { color: #d9821f; flex: none; margin-top: 1px; }
.rd-template-runtime .admset-h { font-size: 13px; font-weight: 700; color: var(--muted); text-transform: uppercase;
  letter-spacing: .03em; margin: 22px 2px 10px; }
.rd-template-runtime .admset-ro { padding: 4px 16px; }
.rd-template-runtime .admrow-ro { padding: 12px 0; border-bottom: 1px solid var(--line); }
.rd-template-runtime .admrow-ro:last-child { border-bottom: 0; }
.rd-template-runtime .admrow-k { font-weight: 600; font-size: 13.5px; }
.rd-template-runtime .admrow-v { font-size: 13.5px; color: var(--accent-ink); margin-top: 2px; word-break: break-word; }
.rd-template-runtime .admrow-w { font-size: 12.5px; color: var(--muted); margin-top: 5px; line-height: 1.45; }

/* Таблицы раздела. Один каркас, у каждой свои колонки: строки одинаковой высоты и
   выровненные числа читаются глазами столбцом, а карточками — нет. */
.rd-template-runtime .admtbl { border: 1px solid var(--line); border-radius: 12px; background: var(--surface);
  overflow: hidden; box-shadow: var(--shadow-sm); }
.rd-template-runtime .admtbl-hd,.rd-template-runtime  .admtbl-row { display: grid; gap: 12px; padding: 10px 14px; align-items: center; font-size: 13px; }
.rd-template-runtime .admtbl-hd { background: var(--surface-2); color: var(--muted); font-weight: 600; font-size: 12px;
  text-transform: uppercase; letter-spacing: .03em; }
.rd-template-runtime .admtbl-row { border-top: 1px solid var(--line); font-variant-numeric: tabular-nums; }
.rd-template-runtime .admtbl-row > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rd-template-runtime .admtbl-row.off { opacity: .62; }
.rd-template-runtime .admperson { cursor: pointer; }
.rd-template-runtime .admperson:hover { background: var(--surface-2); }

.rd-template-runtime .admtbl.people .admtbl-hd,.rd-template-runtime  .admtbl.people .admtbl-row {
  grid-template-columns: minmax(190px, 2.2fr) 150px minmax(160px, 1.1fr) 92px 160px; }
.rd-template-runtime .admtbl.audit .admtbl-hd,.rd-template-runtime  .admtbl.audit .admtbl-row {
  grid-template-columns: 138px minmax(110px, 1fr) minmax(110px, 1fr) minmax(150px, 1.7fr) minmax(100px, 1fr) 116px 96px; }
.rd-template-runtime .admtbl.denials .admtbl-hd,.rd-template-runtime  .admtbl.denials .admtbl-row {
  grid-template-columns: minmax(130px, 1.2fr) minmax(120px, 1fr) minmax(150px, 1.4fr) 88px 92px 150px; }
.rd-template-runtime .admtbl.dev .admtbl-hd,.rd-template-runtime  .admtbl.dev .admtbl-row {
  grid-template-columns: minmax(130px, 1.3fr) minmax(120px, 1.2fr) 92px 88px 116px 156px; }

/* Человек в строке: лицо, имя, под ним почта или логин. */
.rd-template-runtime .admwho { display: flex; align-items: center; gap: 10px; min-width: 0; }
.rd-template-runtime .admwho-m { min-width: 0; display: flex; flex-direction: column; }
.rd-template-runtime .admwho-n { font-weight: 600; font-size: 13.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rd-template-runtime .admwho-n .pill { margin-left: 6px; }
.rd-template-runtime .admwho-s { font-size: 12px; color: var(--faint); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rd-template-runtime .avatar.sm { width: 30px; height: 30px; font-size: 11px; }

/* Занятое место: цифра и под ней полоска заполнения. Полоска нужна именно рядом с числом —
   «1,8 ГБ» ничего не говорит, пока не видно, какая это часть лимита. */
.rd-template-runtime .admused { display: flex; flex-direction: column; gap: 5px; }
.rd-template-runtime .admused-n { font-weight: 600; }
.rd-template-runtime .admbar { display: block; height: 5px; border-radius: 99px; background: var(--track); overflow: hidden; }
.rd-template-runtime .admbar i { display: block; height: 100%; background: var(--accent); border-radius: 99px; }
.rd-template-runtime .admbar i.over { background: var(--warn); }
.rd-template-runtime .admquota { display: flex; align-items: center; gap: 7px; flex-wrap: nowrap; overflow: hidden; }
.rd-template-runtime .admnum { text-align: right; }
.rd-template-runtime .admnum.strong { font-weight: 700; }
.rd-template-runtime .admseen { color: var(--muted); display: flex; flex-direction: column; }
.rd-template-runtime .admseen-s { font-size: 11.5px; color: var(--faint); }
.rd-template-runtime .admwhen { color: var(--muted); }
.rd-template-runtime .admobj { color: var(--ink); }
.rd-template-runtime .admsrc { color: var(--faint); }
.rd-template-runtime .admold { color: #d9821f; font-weight: 600; }
.rd-template-runtime .admact { display: flex; justify-content: flex-end; }
.rd-template-runtime .admact button { display: inline-flex; align-items: center; gap: 6px; }
/* Кто действовал: клик ставит отбор по этому человеку — идентификатор для журнала иначе
   приходится переносить глазами. */
.rd-template-runtime .admactor { cursor: pointer; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rd-template-runtime .admactor:hover { color: var(--accent-ink); text-decoration: underline; }
.rd-template-runtime .pill.warn { background: #fff6e8; color: #a06a12; border-color: #f0d9b0; }

/* Карточка человека в правой панели. */
.rd-template-runtime .drawer .admnums { display: grid; grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); gap: 10px; }
.rd-template-runtime .admnums-i { background: var(--surface-2); border-radius: 10px; padding: 10px 12px; }
.rd-template-runtime .admnums-i b { display: block; font-size: 18px; font-variant-numeric: tabular-nums; }
.rd-template-runtime .admnums-i span { font-size: 11.5px; color: var(--muted); }
.rd-template-runtime .admid { font-size: 12px; word-break: break-all; text-align: right; }
/* Полоса и легенда разбора места — те же, что в разделе «Управление местом»: правила там
   привязаны к .space, а показываем мы её ещё и в панели администратора. */
.rd-template-runtime .admspace .spbar { display: flex; height: 10px; border-radius: 99px; overflow: hidden; background: var(--track); }
.rd-template-runtime .admspace .spbar i { display: block; height: 100%; }
.rd-template-runtime .admspace .spbar i + i { box-shadow: inset 1px 0 0 var(--surface); }
.rd-template-runtime .admspace .splegend { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 10px; }
.rd-template-runtime .admspace .spleg { display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; }
.rd-template-runtime .admspace .spleg i { width: 9px; height: 9px; border-radius: 3px; flex: none; }
.rd-template-runtime .admspace .spleg-l { color: var(--muted); }
.rd-template-runtime .admspace .spleg-b { font-weight: 600; font-variant-numeric: tabular-nums; }
.rd-template-runtime .drawer .admnotice { margin: 8px 0 0; }

/* Экран отказа: раздел существует, но закрыт — и сказать это надо словами, а не пустотой. */
.rd-template-runtime .admdeny { display: flex; flex-direction: column; align-items: center; gap: 8px; max-width: 620px; margin: 0 auto; }
.rd-template-runtime .admdeny-ic { color: var(--faint); font-size: 30px; display: flex; }
.rd-template-runtime .admdeny-t { font-size: 17px; font-weight: 700; color: var(--ink); }

/* Справочник людей молчит — пикер выдачи доступа обязан это сказать: раньше «никого не
   нашлось» и «спросить некого» выглядели одинаково. */
.rd-template-runtime .upick-note { display: flex; align-items: flex-start; gap: 8px; padding: 10px 12px;
  font-size: 12.5px; color: var(--muted); line-height: 1.4; }
.rd-template-runtime .upick-note .bi { color: #d9821f; flex: none; margin-top: 1px; }

@media (max-width: 1180px) {
  .rd-template-runtime .admtbl.audit .admtbl-hd > *:nth-child(5),.rd-template-runtime  .admtbl.audit .admtbl-row > *:nth-child(5),.rd-template-runtime
  .admtbl.audit .admtbl-hd > *:nth-child(6),.rd-template-runtime  .admtbl.audit .admtbl-row > *:nth-child(6) { display: none; }
  .rd-template-runtime .admtbl.audit .admtbl-hd,.rd-template-runtime  .admtbl.audit .admtbl-row {
    grid-template-columns: 132px minmax(100px, 1fr) minmax(100px, 1fr) minmax(140px, 1.6fr) 96px; }
  .rd-template-runtime .admtbl.people .admtbl-hd > *:nth-child(4),.rd-template-runtime  .admtbl.people .admtbl-row > *:nth-child(4) { display: none; }
  .rd-template-runtime .admtbl.people .admtbl-hd,.rd-template-runtime  .admtbl.people .admtbl-row {
    grid-template-columns: minmax(170px, 2fr) 140px minmax(150px, 1fr) 150px; }
}
@media (max-width: 820px) {
  .rd-template-runtime .admtbl.people .admtbl-hd > *:nth-child(5),.rd-template-runtime  .admtbl.people .admtbl-row > *:nth-child(5) { display: none; }
  .rd-template-runtime .admtbl.people .admtbl-hd,.rd-template-runtime  .admtbl.people .admtbl-row { grid-template-columns: minmax(140px, 2fr) 120px 140px; }
  .rd-template-runtime .admtbl.dev .admtbl-hd > *:nth-child(3),.rd-template-runtime  .admtbl.dev .admtbl-row > *:nth-child(3),.rd-template-runtime
  .admtbl.dev .admtbl-hd > *:nth-child(5),.rd-template-runtime  .admtbl.dev .admtbl-row > *:nth-child(5) { display: none; }
  .rd-template-runtime .admtbl.dev .admtbl-hd,.rd-template-runtime  .admtbl.dev .admtbl-row { grid-template-columns: minmax(120px, 1.2fr) minmax(110px, 1fr) 84px 130px; }
  .rd-template-runtime .admtbl.denials .admtbl-hd > *:nth-child(6),.rd-template-runtime  .admtbl.denials .admtbl-row > *:nth-child(6) { display: none; }
  .rd-template-runtime .admtbl.denials .admtbl-hd,.rd-template-runtime  .admtbl.denials .admtbl-row {
    grid-template-columns: minmax(110px, 1.2fr) minmax(100px, 1fr) minmax(120px, 1.4fr) 80px 84px; }
  .rd-template-runtime .admfacts { grid-template-columns: 1fr; }
}

/* Тёмная тема: жёлтое и красное по светлому фону в ней слепит — тот же приём, что у .pill.lock. */
.rd-template-runtime.dark .admnotice { background: #372814; border-color: #4a3820; color: #e8c48a; }
.rd-template-runtime.dark .pill.warn { background: #372814; color: #e0b070; border-color: #4a3820; }
.rd-template-runtime.dark .admwarn-ic,.rd-template-runtime.dark .upick-note .bi { color: #e0b070; }
.rd-template-runtime.dark .admold { color: #e0b070; }

/* Общий лимит по умолчанию — над списком людей: он не свойство человека, и в строке ему не место. */
.rd-template-runtime .admdefq { display: flex; align-items: center; gap: 16px; padding: 14px 16px; margin: 0 0 14px; }
.rd-template-runtime .admdefq-m { flex: 1; min-width: 0; }
.rd-template-runtime .admdefq-t { font-size: 14.5px; }
.rd-template-runtime .admdefq-s { font-size: 12.5px; color: var(--muted); margin-top: 3px; line-height: 1.4; }
.rd-template-runtime .admdefq button { flex: none; }
@media (max-width: 820px) { .rd-template-runtime .admdefq { flex-direction: column; align-items: stretch; } }

/* ---- Правила хранения (RBDOC-89) ---- */
/* Каркас таблицы общий с админскими (.admtbl): строки одной высоты и выровненные сроки
   читаются столбцом. Своя раскладка колонок — «на что / срок / по истечении / заведено /
   действие». Последняя колонка у того, кому правка закрыта, остаётся пустой намеренно:
   кнопки, ведущей в отказ, там быть не должно, а ширина колонки держит строки ровными. */
.rd-template-runtime .admtbl.retn .admtbl-hd,.rd-template-runtime  .admtbl.retn .admtbl-row {
  grid-template-columns: minmax(160px, 1.4fr) minmax(180px, 1.8fr) minmax(130px, 1fr) 130px 90px; }
.rd-template-runtime .main.retention .admbox { margin: 0 0 14px; padding: 14px 16px; }
/* Предупреждение о том, что снос по сроку не выполняется, — над правилами и заметное:
   без него экран обещает автоматическую очистку, которой не происходит. */
.rd-template-runtime .retnote-t { display: flex; align-items: center; gap: 8px; font-size: 14.5px; font-weight: 600; }
.rd-template-runtime .retnote-t .bi { color: var(--warn); display: inline-flex; }
.rd-template-runtime .main.retention .retprev { margin-top: 16px; }
/* Поля формы нового правила: подпись слева, поле справа — иначе пять полей подряд читаются
   как один столбец без имён. */
.rd-template-runtime .retrow { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.rd-template-runtime .retlbl { width: 120px; flex: none; color: var(--muted); font-size: 13px; }
.rd-template-runtime .retrow input,.rd-template-runtime  .retrow select { flex: 1; min-width: 0; }
@media (max-width: 820px) {
  .rd-template-runtime .admtbl.retn .admtbl-hd > *:nth-child(4),.rd-template-runtime  .admtbl.retn .admtbl-row > *:nth-child(4) { display: none; }
  .rd-template-runtime .admtbl.retn .admtbl-hd,.rd-template-runtime  .admtbl.retn .admtbl-row {
    grid-template-columns: minmax(120px, 1.2fr) minmax(140px, 1.6fr) minmax(110px, 1fr) 84px; }
  .rd-template-runtime .retrow { flex-direction: column; align-items: stretch; gap: 4px; }
  .rd-template-runtime .retlbl { width: auto; }
}

/* ======================= ФОТОРЕЖИМ: мозаика и плотная сетка =======================
   Альбом — та же папка; признак kind='album' переключает ПРЕДСТАВЛЕНИЕ. Координаты
   плиток считает JS (mosaicLayout/squareLayout), CSS отвечает только за вид.
   Высота группы задаётся инлайном — без неё полоса прокрутки прыгала бы при
   виртуализации, потому что пустой контейнер не занимает места. */
.rd-template-runtime .pfeed { position: relative; }
.rd-template-runtime .pgrp { position: relative; }
/* Плитка позиционируется абсолютно и двигается transform'ом: top/left заставляли бы
   браузер пересчитывать раскладку страницы на каждое уточнение пропорций. */
.rd-template-runtime .ptile { position: absolute; top: 0; left: 0; border-radius: 8px; overflow: hidden;
  background: var(--surface-2); }
.rd-template-runtime .pfeed.dense .ptile { border-radius: 6px; }
.rd-template-runtime .ptile.sel { outline: 2px solid var(--accent); outline-offset: -2px; }
/* Кнопка во весь кадр — настоящая <button>, а не div с tabindex: так работают Enter и
   Пробел и так диктор называет элемент правильно. */
.rd-template-runtime .ptile .pbtn { position: absolute; inset: 0; padding: 0; margin: 0; border: 0;
  background: none; cursor: pointer; display: block; width: 100%; height: 100%; }
/* Прямоугольник, который виден, пока эскиз не пришёл. Форма у него уже правильная (её задаёт
   раскладка), и менять её приезд картинки не будет — лента не дёргается. А вот ЦВЕТ значка
   формата здесь приглушаем: в списке это одна яркая метка среди строк текста, а в ленте —
   целый экран одинаковых заливок с надписью IMG, который читается как поломка, а не как
   «сейчас загрузится». Подпись формата оставляем: если эскиз не выйдет вовсе, по ней видно,
   что это за файл. */
.rd-template-runtime .ptile .pbtn .ic { width: 100%; height: 100%; border-radius: 0; font-size: 12px;
  background: var(--surface-2); color: var(--faint); }
.rd-template-runtime .ptile .pbtn img.thumb { width: 100%; height: 100%; object-fit: cover; display: block; }
.rd-template-runtime .ptile .pbtn:focus-visible { outline: 3px solid var(--accent); outline-offset: -3px; }
/* Подпись — полосой по нижнему краю и ТОЛЬКО по наведению или фокусу: имя вида
   IMG_20230715_121314.jpg не несёт ничего, чего не видно на самом кадре. */
.rd-template-runtime .pmeta { position: absolute; left: 0; right: 0; bottom: 0; padding: 16px 8px 5px;
  display: flex; align-items: baseline; gap: 6px; pointer-events: none;
  color: #fff; font-size: 11.5px; line-height: 1.25; opacity: 0; transition: opacity .12s;
  background: linear-gradient(to top, rgba(12,16,28,.72), rgba(12,16,28,0)); }
.rd-template-runtime .pmeta .pnm { flex: 1; min-width: 0; font-weight: 600; white-space: nowrap;
  overflow: hidden; text-overflow: ellipsis; }
.rd-template-runtime .pmeta .pdt { flex: none; opacity: .85; font-variant-numeric: tabular-nums; }
/* Узкая плитка: дату убираем, имя оставляем — см. photoPlace. Дата у снимка повторяется
   у всех соседей по группе (месяц и так написан в заголовке), а имя — единственное, что
   отличает эту плитку от соседней. */
.rd-template-runtime .ptile.narrow .pmeta .pdt { display: none; }
.rd-template-runtime .ptile:hover .pmeta,.rd-template-runtime  .ptile:focus-within .pmeta { opacity: 1; }
.rd-template-runtime .pfeed.dense .pmeta .pdt { display: none; }
/* Точки и галочка прячутся ТОЛЬКО прозрачностью. display:none выкинул бы их из порядка
   табуляции, и «действия по наведению» стали бы «с клавиатуры действий нет». */
.rd-template-runtime .ptile .pdots { position: absolute; top: 5px; right: 5px; z-index: 3; border: 0;
  width: 26px; height: 26px; border-radius: 8px; cursor: pointer; color: #fff;
  background: rgba(12,16,28,.5); display: flex; align-items: center; justify-content: center;
  opacity: 0; transition: opacity .12s; }
.rd-template-runtime .ptile .tsel { top: 6px; left: 6px; opacity: 0; transition: opacity .12s; }
.rd-template-runtime .ptile:hover .pdots,.rd-template-runtime  .ptile:focus-within .pdots,.rd-template-runtime
.ptile:hover .tsel,.rd-template-runtime  .ptile:focus-within .tsel { opacity: 1; }
/* У ВЫБРАННОЙ плитки галочка видна всегда: иначе после прокрутки человек не знает,
   что у него отмечено. */
.rd-template-runtime .ptile.sel .tsel { opacity: 1; }
/* Видно всегда: ролик (кадр видео неотличим от фотографии), пометка обрезки, замок. */
.rd-template-runtime .ptile .pvid,.rd-template-runtime  .ptile .pcrop,.rd-template-runtime  .ptile .plock { position: absolute; z-index: 2;
  color: #fff; display: inline-flex; pointer-events: none;
  filter: drop-shadow(0 1px 2px rgba(8,12,22,.75)); }
.rd-template-runtime .ptile .pvid { left: 7px; bottom: 6px; font-size: 15px; }
.rd-template-runtime .ptile .plock { left: 7px; top: 34px; font-size: 13px; }
.rd-template-runtime .ptile .pcrop { right: 7px; bottom: 6px; font-size: 13px; opacity: .85; }
.rd-template-runtime .pfeed.dense .ptile .pvid { font-size: 13px; }
/* Заголовок месяца липнет к верху: пролистав пару экранов, иначе не понять, где ты. */
.rd-template-runtime .pfeed .phead { position: sticky; top: 0; z-index: 4; background: var(--bg);
  margin: 20px 0 10px; padding: 6px 0 8px; display: flex; align-items: center; gap: 9px; }
.rd-template-runtime .pfeed .phead .selbox { opacity: 0; transition: opacity .12s; }
.rd-template-runtime .pfeed .phead:hover .selbox,.rd-template-runtime  .pfeed .phead .selbox.on,.rd-template-runtime
.pfeed .phead .selbox:focus-visible { opacity: 1; }
/* Разделитель года — тонкая строка во всю ширину. Нужен потому, что заголовки месяцев
   без него неоднозначны: «Август», «Март», «Август» подряд отличаются только годом,
   которого на экране нет. */
.rd-template-runtime .pyear { display: flex; align-items: center; gap: 12px; margin: 26px 0 2px;
  font-size: 22px; font-weight: 700; color: var(--ink); letter-spacing: .01em; }
.rd-template-runtime .pyear::after { content: ""; flex: 1; height: 1px; background: var(--line); }
/* Полоса лет справа. Показывается, только когда правда сокращает путь (охват больше
   одного года и групп больше двенадцати) — правило в photoFeed. */
.rd-template-runtime .pyears { position: absolute; right: 0; top: 0; width: 40px; height: 100%;
  pointer-events: none; }
.rd-template-runtime .pyears .pyi { position: sticky; top: 96px; display: flex; flex-direction: column;
  align-items: flex-end; gap: 1px; }
.rd-template-runtime .pyears button { pointer-events: auto; border: 0; text-align: right;
  background: none; color: var(--faint); font-size: 11.5px; font-weight: 600;
  padding: 3px 2px; cursor: pointer; font-variant-numeric: tabular-nums; }
.rd-template-runtime .pyears button.on { color: var(--accent); }
.rd-template-runtime .pyears button:hover { color: var(--ink); }
/* Уменьшенная копия — подпись под кадром в просмотрщике. Не всплывающее уведомление:
   это не событие, а свойство того, что человек смотрит. */
.rd-template-runtime .viewer .vnote { position: absolute; left: 0; right: 0; bottom: 14px; z-index: 4;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  color: rgba(255,255,255,.86); font-size: 12.5px; pointer-events: none; }
.rd-template-runtime .viewer .vnote .bi { display: inline-flex; opacity: .9; }
/* Перечень «что увидит адресат без скачивания» в панели ссылки. */
.rd-template-runtime .dlnote { border: 1px solid var(--line2); border-radius: 10px; padding: 10px 12px;
  background: var(--surface-2); font-size: 12.5px; line-height: 1.45; }
.rd-template-runtime .dlnote-h { display: flex; align-items: center; gap: 7px; font-weight: 600;
  margin-bottom: 6px; color: var(--ink); }
.rd-template-runtime .dlnote-r { color: var(--muted); margin-top: 3px; }
.rd-template-runtime .dlnote-r.warn { color: var(--warn); }
.rd-template-runtime .dlnote-r b { color: var(--ink); font-weight: 600; }
.rd-template-runtime .propnote { color: var(--faint); font-size: 12px; line-height: 1.4; margin-top: 3px; }
/* Кнопка ступени плотности стоит рядом с переключателем видов, а не внутри него. */
.rd-template-runtime .densebtn { display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; border: 1px solid var(--line2); border-radius: 10px;
  background: var(--surface); color: var(--muted); cursor: pointer; }
.rd-template-runtime .densebtn:hover { color: var(--ink); }
@media (max-width: 560px) {
  /* На узком экране полоса лет отнимала бы шестую часть ширины кадра. */
  .rd-template-runtime .pyears { display: none; }
  .rd-template-runtime .pyear { font-size: 18px; margin: 18px 0 2px; }
}

/* ── Раздел «Место и оплата» в настройках (RBDOC-155).
      Раскладка простая нарочно: человек приходит сюда с одним вопросом — «сколько у меня
      места и когда с меня спишут», — и ответ обязан стоять первым, до тарифов и карт. */
.rd-template-runtime .pay-now{background:var(--surface-2);border:1px solid var(--line2);border-radius:12px;padding:14px 16px}
.rd-template-runtime .pay-big{font-size:19px;font-weight:800;letter-spacing:-.01em}
.rd-template-runtime .pay-sub{font-size:14px;font-weight:600;color:var(--muted);margin-top:2px}
/* Предупреждение «списывать нечем» — тёплым, а не красным: место ещё не закрыто, и пугать
   человека там, где у него есть время, значит приучать не верить нашим предупреждениям. */
.rd-template-runtime .pay-warn{margin-top:10px;padding:9px 11px;border-radius:9px;font-size:13px;font-weight:600;
  background:var(--warm-soft);color:var(--warm);border:1px solid color-mix(in srgb,var(--warm) 28%,transparent)}
.rd-template-runtime .pay-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(122px,1fr));gap:10px;margin-top:8px}
.rd-template-runtime .pay-plan{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:14px 14px 12px;
  border:1px solid var(--line2);border-radius:14px;background:var(--surface);cursor:pointer;
  text-align:left;font:inherit;color:inherit;transition:border-color .12s,box-shadow .12s}
.rd-template-runtime .pay-plan:hover{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);filter:none}
.rd-template-runtime .pay-plan-t{font-weight:700;font-size:17px;letter-spacing:-.01em}
.rd-template-runtime .pay-plan-p{font-size:14.5px;font-weight:600;color:var(--ink);margin-top:4px}
.rd-template-runtime .pay-plan-per{font-size:12px;color:var(--faint)}
.rd-template-runtime .pay-plan-go{margin-top:10px;font-size:13px;font-weight:600;color:var(--accent-ink)}
.rd-template-runtime .pay-cards{display:grid;gap:8px;margin-top:8px}
.rd-template-runtime .pay-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;
  border:1px solid var(--line2);border-radius:10px;background:var(--surface)}
/* Истёкшая карта притушена, но читаема: она остаётся в списке, потому что человеку надо
   понять, ЧЕМ он платил, а не гадать, куда делась карта. */
.rd-template-runtime .pay-card-old{opacity:.72}
.rd-template-runtime .pay-hist{display:grid;gap:2px;margin-top:8px}
.rd-template-runtime .pay-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;
  border-bottom:1px solid var(--line)}
.rd-template-runtime .pay-row:last-child{border-bottom:0}

/* Место: занято из предела и полоска. Стоит ПЕРВЫМ в разделе оплаты — до тарифов:
   человек приходит с вопросом «сколько у меня места», и предложение купить без остатка
   читается как продажа вслепую. Полоска краснеет с 90%: это уже не сведение, а повод. */
.rd-template-runtime .pay-space { margin-top: 10px; }
.rd-template-runtime .pay-space-t { font-size: 13px; margin-bottom: 6px; }
.rd-template-runtime .pay-bar { height: 6px; border-radius: 999px; background: var(--line); overflow: hidden; }
.rd-template-runtime .pay-bar-in { height: 100%; background: var(--accent); border-radius: 999px; }
.rd-template-runtime .pay-bar-hot .pay-bar-in { background: var(--warn); }

/* Фото в шапке настроек — само себе кнопка. Действия («заменить», «убрать») переехали сюда
   из двух кнопок в панели: панель узкая, и строки в ней стоят места, а на снимке это
   действие и ищут. Карандаш появляется при наведении — до наведения он лишний шум. */
.rd-template-runtime .ava-edit{position:relative;padding:0;border:0;background:none;line-height:0;border-radius:50%;cursor:pointer}
.rd-template-runtime .ava-edit:hover{filter:none}
.rd-template-runtime .ava-cam{position:absolute;right:-2px;bottom:-2px;width:20px;height:20px;border-radius:50%;
  background:var(--surface);border:1px solid var(--line2);color:var(--muted);
  display:inline-flex;align-items:center;justify-content:center;opacity:0;transition:opacity .12s}
.rd-template-runtime .ava-cam svg{width:12px;height:12px}
.rd-template-runtime .ava-edit:hover .ava-cam,.rd-template-runtime .ava-edit:focus-visible .ava-cam{opacity:1}
.rd-template-runtime .ava-edit:hover .avatar{filter:brightness(.92)}

/* Строка настроек, ведущая в окно: ключ слева, значение и шеврон справа, вся строка —
   кнопка. Отличается от обычной .setrow только тем, что на неё можно нажать, и это должно
   быть видно до нажатия: иначе человек ждёт значения, а получает окно. */
/* ⚠️ ОТСТУПЫ ЗАДАНЫ ВСЕГДА, А НЕ ПРИ НАВЕДЕНИИ. Раньше :hover добавлял боковое поле и
   отрицательное внешнее — и надпись «Бесплатный объём» ПРЫГАЛА по горизонтали каждый раз,
   когда мышь проходила мимо. Подсветка обязана менять только цвет: любое изменение
   геометрии на наведении двигает текст под курсором. */
.rd-template-runtime .setrow-go{width:100%;background:none;border:0;padding:7px 8px;margin:0 -8px;text-align:left;
  cursor:pointer;display:flex;align-items:center;gap:8px;color:inherit;font:inherit;border-radius:8px}
.rd-template-runtime .setrow-go:hover{background:var(--surface-2);filter:none}
.rd-template-runtime .setrow-go .setv{margin-left:auto;color:var(--ink);font-weight:600}
/* ⚠️ ШЕВРОН СМОТРИТ ВПРАВО, А НЕ ВВЕРХ. Значок chevron нарисован «вправо» (M9 6l6 6-6 6),
   и поворот на -90° разворачивал его ВВЕРХ: на экране получалась «птичка» ^, которую читают
   как «свернуть», хотя строка открывает окно. Владелец: «зачем сменить пароль через стрелку
   справа, странный паттерн». Паттерн верный — строка, ведущая в окно, несёт шеврон вправо;
   неверен был поворот. Поворачивать нечего: значок и так вправо.
   НЕ ПРАВИЛО: это направление рисунка, а не ветка; вырезать нечего, а увидит это глаз. */
.rd-template-runtime .setrow-go .setgo{display:inline-flex;color:var(--faint)}
.rd-template-runtime .setrow-go .setgo svg{width:16px;height:16px}
.rd-template-runtime .setsub{margin-top:2px}
/* Окно оплаты шире обычного: четыре тарифа строкой и история списаний в 460 px не встают. */
.rd-template-runtime .pay-win{display:block}
.rd-template-runtime .pay-win .pay-plans{margin-top:8px}

/* Заголовок панели настроек — это имя человека, и оно правится прямо здесь. Пока поле
   выглядело как обычный текст, никто не догадывался, что в него можно писать: рамка по
   наведению уже была, добавляем подсказку курсором. */
.rd-template-runtime .drawer .dhead .dtitle:not(.stat){cursor:text}

/* Шапка раздела настроек со значком. Раздел должен читаться как раздел до того, как человек
   начнёт разбирать слова: значок даёт опору глазу, по которой панель листают. */
/* ЗНАЧОК РАЗДЕЛА — ЦВЕТНАЯ ПЛАШКА, А НЕ СЕРАЯ ЛИНИЯ.
   Серые значки одного веса с текстом ничего не расставляли: панель читалась ровной лентой,
   в которой нечему зацепить взгляд. Берём тот же язык, каким уже говорят карточки над
   списком документов (.catic): подложка своего цвета, значок в нём же, мягкая тень. Цвет у
   каждого раздела свой и постоянный — по нему раздел узнают, не читая подписи. */
.rd-template-runtime .setlbl-i{display:flex;align-items:center;gap:9px}
.rd-template-runtime .setlbl-i .bi{width:26px;height:26px;flex:none;display:inline-flex;align-items:center;justify-content:center;
  border-radius:8px;background:var(--surface-2);color:var(--faint);
  box-shadow:0 1px 2px rgba(16,24,40,.10),0 0 0 1px rgba(16,24,40,.03)}
.rd-template-runtime .setlbl-i .bi svg{width:15px;height:15px;flex:none}
.rd-template-runtime .setlbl-i.i-view .bi{background:#f1e9ff;color:#8b5cf6}
.rd-template-runtime .setlbl-i.i-acc  .bi{background:#e9edff;color:#4c6fff}
.rd-template-runtime .setlbl-i.i-sec  .bi{background:#e5f7f0;color:#12b5a5}
.rd-template-runtime .setlbl-i.i-bell .bi{background:#fff1e6;color:#f39c3d}
.rd-template-runtime .setlbl-i.i-pay  .bi{background:#e6f3ff;color:#0e86d4}
.rd-template-runtime .setlbl-i.i-sync .bi{background:#eaf6ec;color:#1aa564}
.rd-template-runtime .setlbl-i.i-help .bi{background:#fdeaea;color:#e0574e}
/* Тёмная тема: подложка гасится, цвет значка светлеет — иначе плашка выжигает панель. */
.rd-template-runtime.dark .setlbl-i .bi{box-shadow:0 1px 2px rgba(0,0,0,.35),0 0 0 1px rgba(255,255,255,.04)}
.rd-template-runtime.dark .setlbl-i.i-view .bi{background:#2a2145;color:#b79cff}
.rd-template-runtime.dark .setlbl-i.i-acc  .bi{background:#1d2747;color:#8aa0ff}
.rd-template-runtime.dark .setlbl-i.i-sec  .bi{background:#14332e;color:#5ad0bd}
.rd-template-runtime.dark .setlbl-i.i-bell .bi{background:#3a2a17;color:#f0b46a}
.rd-template-runtime.dark .setlbl-i.i-pay  .bi{background:#14293c;color:#5fb4ea}
.rd-template-runtime.dark .setlbl-i.i-sync .bi{background:#152e20;color:#5bc98d}
.rd-template-runtime.dark .setlbl-i.i-help .bi{background:#3a1e1e;color:#f0857c}

/* Таблица выбора оповещений в настройках человека (RBDOC-203).
   Сетка, а не список строк: галок в строке столько, сколько способов доставки настроено в
   контуре (в контуре без почты столбец один), и колонки обязаны стоять друг под другом —
   иначе человек не поймёт, какая галка к какому столбцу относится. Число колонок приходит
   переменной --optscols из кода: вписать его сюда числом значило бы, что при выключенной
   почте таблица разъезжается. */
/* ⚠️ КОЛОНКА ШИРИНОЙ 52 px ОБРЕЗАЛА ЗАГОЛОВОК. Таблица рисовалась в узкой панели настроек,
   и колонки были подогнаны под неё: «На рабочем столе» переносилось в три строки, а «Письмом»
   уходило за правый край. Теперь таблица живёт в окне (620 px), и колонке можно дать столько,
   сколько нужно самому длинному заголовку в одну строку. */
.rd-template-runtime .optsgrid{display:grid;grid-template-columns:1fr repeat(var(--optscols,2),118px);align-items:center;
  margin-top:6px;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.rd-template-runtime .optshead{display:contents}
.rd-template-runtime .optshead>span{padding:10px 8px;font-size:11.5px;color:var(--muted);text-align:center;
  white-space:nowrap;border-bottom:1px solid var(--line);background:var(--surface-2)}
.rd-template-runtime .optshead>span:first-child{text-align:left;padding-left:12px}
.rd-template-runtime .optsgrp{grid-column:1/-1;padding:8px 12px 4px;font-size:11.5px;font-weight:600;color:var(--muted);
  text-transform:uppercase;letter-spacing:.04em}
.rd-template-runtime .optsrow{display:contents}
/* Свёрнутая группа. display:contents у строки означает, что её собственный display правит
   раскладку сетки, и обычного [hidden] мало: правило автора перебивает браузерное, и
   спрятанная строка продолжала бы стоять в таблице. */
.rd-template-runtime .optsrow[hidden]{display:none}
/* Заголовок группы — кнопка во всю ширину: по нему и нажимают, поэтому он обязан выглядеть
   нажимаемым и попадать под палец, а не быть подписью со стрелкой рядом. */
.rd-template-runtime .optsgrp-b{display:flex;align-items:center;gap:8px;width:100%;background:none;border:0;
  cursor:pointer;text-align:left;padding:9px 12px;border-radius:8px}
.rd-template-runtime .optsgrp-b:hover{background:var(--surface-2)}
.rd-template-runtime .optsgrp-n{flex:1;text-transform:none;letter-spacing:0;font-size:13px;color:var(--ink)}
.rd-template-runtime .optsgrp-c{font-size:11.5px;font-weight:500;color:var(--faint);text-transform:none;letter-spacing:0}
.rd-template-runtime .optsarr{display:inline-flex;color:var(--faint);transition:transform .15s}
.rd-template-runtime .optsarr svg{width:14px;height:14px}
.rd-template-runtime .optsgrp-b.open .optsarr{transform:rotate(90deg)}
.rd-template-runtime .optsk{padding:7px 12px;font-size:13.5px;color:var(--ink)}
.rd-template-runtime .optscell{display:flex;align-items:center;justify-content:center;padding:7px 6px;cursor:pointer}
.rd-template-runtime .optscell input{margin:0;cursor:pointer}

/* Сеанс в списке: слева где и когда, справа «Закрыть». Строкой, а не карточкой: сеансов
   единицы, и карточка на каждый превратила бы короткий список в простыню. */
.rd-template-runtime .sess-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.rd-template-runtime .sess-row:last-of-type{border-bottom:0}
.rd-template-runtime .sess-main{flex:1;min-width:0}
.rd-template-runtime .sess-t{font-weight:600;font-size:14px;display:flex;align-items:center;gap:8px}
.rd-template-runtime .sess-now{background:var(--accent-soft);color:var(--accent-ink);border-radius:100px;
  padding:1px 8px;font-size:11px;font-weight:700}

/* «Всегда» вместо галки: вид есть, выключателя у него нет. Словом, а не серой галкой —
   серая галка читается как «выключено», то есть как решение человека, которого он не принимал. */
.rd-template-runtime .opts-always{font-size:11px;font-weight:700;color:var(--faint);letter-spacing:.02em}

/* Разметка .md — показ заметки в карточке и в просмотрщике. Стили здесь, а не в разборе:
   разбор строит узлы и о внешнем виде не знает ничего, иначе он же стал бы вторым местом,
   где живёт оформление. */
.rd-template-runtime .mdbody{line-height:1.6;font-size:14px;color:var(--text);word-wrap:break-word}
.rd-template-runtime .mdbody h1,.rd-template-runtime .mdbody h2,.rd-template-runtime .mdbody h3,.rd-template-runtime .mdbody h4,.rd-template-runtime .mdbody h5,.rd-template-runtime .mdbody h6{margin:18px 0 8px;line-height:1.25;font-weight:650}
.rd-template-runtime .mdbody h1{font-size:22px}.rd-template-runtime .mdbody h2{font-size:19px}.rd-template-runtime .mdbody h3{font-size:16px}
.rd-template-runtime .mdbody h4,.rd-template-runtime .mdbody h5,.rd-template-runtime .mdbody h6{font-size:14px;color:var(--faint)}
.rd-template-runtime .mdbody p{margin:8px 0}
.rd-template-runtime .mdbody ul,.rd-template-runtime .mdbody ol{margin:8px 0;padding-left:22px}
.rd-template-runtime .mdbody li{margin:3px 0}
.rd-template-runtime .mdbody li>ul,.rd-template-runtime .mdbody li>ol{margin:3px 0}
.rd-template-runtime .mdbody blockquote{margin:10px 0;padding:2px 0 2px 12px;border-left:3px solid var(--line);color:var(--faint)}
.rd-template-runtime .mdbody hr{border:0;border-top:1px solid var(--line);margin:16px 0}
.rd-template-runtime .mdbody code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;
  background:var(--surface-2);border-radius:4px;padding:1px 5px}
.rd-template-runtime .mdbody pre.mdcode{background:var(--surface-2);border:1px solid var(--line);border-radius:8px;
  padding:10px 12px;overflow:auto;margin:10px 0}
.rd-template-runtime .mdbody pre.mdcode code{background:none;padding:0;font-size:12.5px;line-height:1.5}
.rd-template-runtime .mdbody table.mdtable{border-collapse:collapse;margin:10px 0;font-size:13px;display:block;overflow-x:auto}
.rd-template-runtime .mdbody table.mdtable th,.rd-template-runtime .mdbody table.mdtable td{border:1px solid var(--line);padding:6px 10px;text-align:left}
.rd-template-runtime .mdbody table.mdtable th{background:var(--surface-2);font-weight:600}
.rd-template-runtime .mdbody a{color:var(--accent);text-decoration:none}
.rd-template-runtime .mdbody a:hover{text-decoration:underline}
/* В просмотрщике разметка живёт на той же сцене, что и <pre class="vtext">, и повторяет её
   рамки: иначе заметка растянулась бы во всю ширину экрана и стала нечитаемой. */
.rd-template-runtime .viewer .vtext.mdbody{white-space:normal;text-align:left}
.rd-template-runtime .viewer .vmd{font-size:12px;padding:0 10px}
/* Полный экран: значок такой же, как у соседей по панели просмотрщика. */
.rd-template-runtime .viewer .vfull svg{width:17px;height:17px}
/* В настоящем полном экране оверлей уже занимает весь экран сам; фон делаем плотнее —
   рядом больше нет ни вкладок, ни страницы, и полупрозрачность не за чем просвечивать. */
.rd-template-runtime .viewer:fullscreen{background:#0b0d12}
.rd-template-runtime .viewer:-webkit-full-screen{background:#0b0d12}

/* Справочник шаблонов документов: просмотр без изменений. */
.rd-template-runtime .template-page{padding:24px 28px;overflow:auto;min-width:0;max-width:1200px}
.rd-template-runtime .template-intro{font-size:15px;line-height:1.6;max-width:880px;margin:0 0 10px}
.rd-template-runtime .template-edition{font-size:12px;line-height:1.55;max-width:880px}
.rd-template-runtime .template-filters{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin:24px 0 16px}
.rd-template-runtime .template-filters label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600}
.rd-template-runtime .template-filters select{min-height:38px;max-width:360px;border:1px solid var(--line);border-radius:8px;padding:6px 10px;background:var(--surface);color:inherit}
.rd-template-runtime .template-list{display:grid;gap:8px}
.rd-template-runtime .template-row{display:flex;align-items:center;gap:16px;text-align:left;width:100%;border:1px solid var(--line);border-radius:10px;padding:16px;background:var(--surface);color:inherit;cursor:pointer;font:inherit}
.rd-template-runtime .template-row:hover,.rd-template-runtime .template-row:focus-visible{border-color:var(--accent);outline:2px solid transparent;background:var(--surface-2)}
.rd-template-runtime .template-number{width:35px;flex-shrink:0;font-size:20px;font-variant-numeric:tabular-nums;color:var(--muted)}
.rd-template-runtime .template-row-content{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1}
.rd-template-runtime .template-row-content strong{font-size:14px;line-height:1.4}
.rd-template-runtime .template-row-content .muted{font-size:12px;line-height:1.4}
.rd-template-runtime .template-source-state{font-size:11px;color:var(--muted)}
.rd-template-runtime .template-source-state.unknown{color:#ad6413}
.rd-template-runtime .template-arrow{font-size:22px}
.rd-template-runtime .template-detail-head{margin:20px 0}
.rd-template-runtime .template-detail-head h1{font-size:25px;line-height:1.3;margin:8px 0 14px}
.rd-template-runtime .template-page h2{font-size:17px;margin:28px 0 12px}
.rd-template-runtime .template-page h3{font-size:14px}
.rd-template-runtime .template-note{border-left:3px solid var(--accent);padding:10px 14px;background:var(--surface-2);line-height:1.6;font-size:13px}
.rd-template-runtime .template-sections{list-style:none;padding:0;line-height:1.65;font-size:13px}
.rd-template-runtime .template-sections li{padding:5px 0 5px calc((var(--level) - 1)*20px)}
.rd-template-runtime .template-sections li.primary{font-weight:600;margin-top:8px}
.rd-template-runtime .template-tables details,.rd-template-runtime .template-relations article,.rd-template-runtime .template-variant{border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin:10px 0;font-size:13px;line-height:1.55}
.rd-template-runtime .template-source{font-size:12px;margin:12px 0;color:var(--muted)}
.rd-template-runtime .template-source summary,.rd-template-runtime .template-tables summary{cursor:pointer;overflow-wrap:anywhere}
.rd-template-runtime .template-source-hash,.rd-template-runtime .template-source li{overflow-wrap:anywhere;font-size:11px}
.rd-template-runtime .template-page a{color:var(--accent)}
@media(max-width:700px){.rd-template-runtime .template-page{padding:18px 14px}.rd-template-runtime .template-row{gap:10px;padding:12px}.rd-template-runtime .template-filters{align-items:stretch}.rd-template-runtime .template-filters label{flex:1;min-width:180px}.rd-template-runtime .template-filters select{width:100%}}

.rd-template-runtime .template-source-name{display:block;color:var(--ink);font-size:12px;overflow-wrap:anywhere}
.rd-template-runtime .template-source-data{margin-top:8px;padding:0}
.rd-template-runtime .template-source-data summary{font-size:11px}

/* Компактный реестр: метаданные в одной строке, происхождение — в карточке. */
.rd-template-runtime .template-filters{align-items:center;gap:12px;flex-wrap:nowrap;margin:0 0 8px}
.rd-template-runtime .template-filters label{flex-direction:row;align-items:center;gap:7px;min-width:0}
.rd-template-runtime .template-filters select{min-height:34px;max-width:240px;min-width:0;padding:5px 9px}
.rd-template-runtime .template-filters [role=status]{white-space:nowrap;margin-left:auto;font-size:12px}
.rd-template-runtime .template-edition.compact{font-size:11px;margin:0 0 12px}
.rd-template-runtime .template-list{gap:4px}
.rd-template-runtime .template-row{height:56px;min-height:56px;padding:8px 12px;gap:12px;border-radius:7px}
.rd-template-runtime .template-number{width:26px;font-size:13px;font-weight:600}
.rd-template-runtime .template-row-content{flex-direction:row;align-items:center;gap:12px}
.rd-template-runtime .template-row-content strong{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}
.rd-template-runtime .template-row-meta{display:flex;align-items:center;gap:14px;min-width:0;max-width:45%}
.rd-template-runtime .template-row-code,.rd-template-runtime .template-row-format{flex:none;white-space:nowrap}
.rd-template-runtime .template-row-stage{min-width:0;max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rd-template-runtime .template-source-state.unknown{flex:none;font-size:10px;white-space:nowrap;border:1px solid #ead9bd;border-radius:5px;padding:2px 5px}
.rd-template-runtime .template-arrow{font-size:18px}
.rd-template-runtime .template-section-tree,.rd-template-runtime .template-section-children{list-style:none;margin:0;padding:0}
.rd-template-runtime .template-section-tree > li{border-bottom:1px solid var(--line)}
.rd-template-runtime .template-sections li,.rd-template-runtime .template-sections li.primary{padding:0;margin:0}
.rd-template-runtime .template-section-tree summary,.rd-template-runtime .template-section-leaf{display:flex;align-items:baseline;gap:10px;padding:10px 8px;cursor:pointer}
.rd-template-runtime .template-section-tree summary{list-style:none}
.rd-template-runtime .template-section-tree summary::before{content:'›';color:var(--muted);width:10px;flex:none;transition:transform .12s}
.rd-template-runtime .template-section-tree details[open] > summary::before{transform:rotate(90deg)}
.rd-template-runtime .template-section-leaf{padding-left:28px;cursor:default}
.rd-template-runtime .template-section-number{font-variant-numeric:tabular-nums;color:var(--muted);font-size:12px;flex:none}
.rd-template-runtime .template-block-kind{color:var(--muted);font-size:11px;flex:none;letter-spacing:.03em;text-transform:uppercase}
.rd-template-runtime .template-section-title{min-width:0;overflow-wrap:anywhere}
.rd-template-runtime .template-section-count{margin-left:auto;color:var(--faint);font-size:11px;font-weight:400}
.rd-template-runtime .template-section-children{margin:0 0 6px 17px;border-left:1px solid var(--line2);font-weight:400}
@media(max-width:1000px){.rd-template-runtime .template-row-stage{display:none}.rd-template-runtime .template-filter-label{display:none}}
@media(max-width:700px){
 .rd-template-runtime .template-filters{gap:6px;flex-wrap:wrap}
 .rd-template-runtime .template-filters label{min-width:0;flex:1}
 .rd-template-runtime .template-filters select{width:100%;max-width:none}
 .rd-template-runtime .template-filters [role=status]{margin-left:0}
 .rd-template-runtime .template-row{gap:8px;padding:7px 9px}
 .rd-template-runtime .template-row-content{flex-direction:column;align-items:stretch;gap:2px}
 .rd-template-runtime .template-row-meta{max-width:100%;gap:8px}
 .rd-template-runtime .template-row-content strong{flex:none}
 .rd-template-runtime .template-source-state.unknown{max-width:115px;font-size:9px}
}

.rd-template-runtime .template-catalog-note{font-size:11px;color:var(--muted);margin:0 0 10px;line-height:1.5}
.rd-template-runtime .template-catalog-note summary{cursor:pointer}
.rd-template-runtime .template-catalog-note p{max-width:880px;margin:7px 0}

/* Размер SVG не зависит от скрытого текстового названия компактной кнопки. */
.rd-template-runtime .top .header-icon-action > svg{width:16px;height:16px;font-size:16px;flex:none}
.rd-template-runtime .template-download-action{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0 18px}
.rd-template-runtime .template-download-status{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.rd-template-runtime .template-download[disabled]{opacity:.65;cursor:wait}

/* Дерево разделов и пояснение выбранного блока читаются рядом без длинной ленты подсказок. */
.rd-template-runtime .template-structure-workspace{display:grid;grid-template-columns:minmax(240px,2fr) minmax(300px,3fr);gap:20px;align-items:start;margin:16px 0 28px}
.rd-template-runtime .template-structure-nav{min-width:0;max-height:66vh;overflow:auto;overscroll-behavior:contain;padding-right:8px}
.rd-template-runtime .template-structure-nav .template-section-tree{margin-top:0}
.rd-template-runtime .template-section-select{display:flex;align-items:baseline;gap:9px;min-width:0;width:100%;border:0;background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer;padding:7px 8px;border-radius:7px;overflow-wrap:anywhere}
.rd-template-runtime .template-section-select:hover{background:var(--surface-2)}
.rd-template-runtime .template-section-select[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}
.rd-template-runtime .template-structure-nav summary .template-section-select{display:inline-flex;width:calc(100% - 46px);vertical-align:top}
.rd-template-runtime .template-structure-nav .template-section-leaf{padding:0}
.rd-template-runtime .template-other-guidance{border-top:1px solid var(--line2);margin-top:16px;padding-top:8px}
.rd-template-runtime .template-other-guidance h3{font-size:13px;color:var(--muted)}
.rd-template-runtime .template-block-panel{min-width:0;border:1px solid var(--line2);border-radius:12px;padding:20px;background:var(--surface);position:sticky;top:calc(var(--app-header-height,60px) + 16px);max-height:calc(100vh - var(--app-header-height,60px) - 40px);overflow:auto;overscroll-behavior:contain}
.rd-template-runtime .template-block-panel h3{margin:0 0 16px;font-size:18px;line-height:1.4}
.rd-template-runtime .template-guidance-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line2);margin-bottom:16px}
.rd-template-runtime .template-guidance-tabs button{border:0;border-bottom:2px solid transparent;padding:10px 12px;background:transparent;font:inherit;cursor:pointer;color:var(--muted)}
.rd-template-runtime .template-guidance-tabs button[aria-selected=true]{border-color:var(--accent);color:var(--accent-ink);font-weight:600}
.rd-template-runtime .template-guidance-content{line-height:1.6;outline-offset:4px;overflow-wrap:anywhere}
.rd-template-runtime .template-obligation{font-size:12px;font-weight:600;color:var(--muted);margin:0 0 8px}
.rd-template-runtime .template-guidance-description{font-size:15px}
.rd-template-runtime .template-guidance-note,.rd-template-runtime .template-relation-note{padding:10px 12px;border-left:3px solid var(--accent);background:var(--surface-2);font-size:13px;line-height:1.55}
.rd-template-runtime .template-guidance-evidence{margin-top:16px;font-size:13px}
.rd-template-runtime .template-relation-group{margin:18px 0 26px}
.rd-template-runtime .template-relation-group>h3{font-size:15px;margin-bottom:10px}
.rd-template-runtime .template-relation-card{border:1px solid var(--line2);border-radius:9px;padding:14px 16px;margin:10px 0;overflow-wrap:anywhere}
.rd-template-runtime .template-relation-statement{display:flex;flex-wrap:wrap;align-items:baseline;gap:7px 12px;font-size:14px;line-height:1.5}
.rd-template-runtime .template-relation-label{font-size:12px;color:var(--muted);font-weight:500}
.rd-template-runtime .template-relation-node small{display:block;font-size:11px;color:var(--muted)}
.rd-template-runtime .template-relation-targets{margin:0;padding-left:18px}
.rd-template-runtime .template-relation-modality{font-size:13px;color:var(--muted)}
.rd-template-runtime .template-relation-conditions{font-size:13px;line-height:1.5}
.rd-template-runtime .template-relation-conditions ul{margin:5px 0;padding-left:20px}
.rd-template-runtime .template-relation-evidence{font-size:12px;margin-top:10px}
@media(max-width:1100px){.rd-template-runtime .template-structure-workspace{grid-template-columns:1fr}.rd-template-runtime .template-structure-nav{max-height:40vh}.rd-template-runtime .template-block-panel{position:static;max-height:none}.rd-template-runtime .template-guidance-tabs button{flex:1;padding:10px 6px}}

/* Высоту шапки уже учитывает scroll-padding-top у html. */
.rd-template-runtime .template-block-panel{scroll-margin-top:16px}

/* Плотная карточка: название и действие рядом, подробные сведения раскрываются по запросу. */
.rd-template-runtime .template-detail-page{padding:12px 20px}
.rd-template-runtime .template-back{padding:2px 0;background:transparent;color:var(--muted);font-size:12px;border-radius:0}
.rd-template-runtime .template-back:hover{color:var(--accent);filter:none}
.rd-template-runtime .template-detail-page .template-detail-head{margin:8px 0}
.rd-template-runtime .template-detail-title-row{display:flex;align-items:center;gap:12px}
.rd-template-runtime .template-detail-page .template-detail-head h1{flex:1;min-width:0;font-size:22px;line-height:1.2;margin:0}
.rd-template-runtime .template-detail-title-row .template-download-action{flex:none;margin:0;gap:8px}
.rd-template-runtime .template-detail-title-row .template-download{padding:7px 11px;font-size:12px;white-space:nowrap}
.rd-template-runtime .template-download-status:empty{display:none}
.rd-template-runtime .template-detail-meta{color:var(--muted);font-size:12px;line-height:1.5;margin:6px 0 0}
.rd-template-runtime .template-card-information{font-size:12px;color:var(--muted);margin:8px 0}
.rd-template-runtime .template-card-information p{margin:8px 0;line-height:1.5}
.rd-template-runtime .template-detail-page h2{font-size:16px;margin:12px 0 8px}
.rd-template-runtime .template-detail-page .template-structure-workspace{gap:12px;margin:8px 0 16px}
.rd-template-runtime .template-detail-page .template-block-panel{padding:12px}
.rd-template-runtime .template-detail-page .template-block-panel h3{font-size:16px;margin:0 0 10px}
.rd-template-runtime .template-detail-page .template-guidance-tabs{margin-bottom:10px}
.rd-template-runtime .template-detail-page .template-guidance-tabs button{padding:7px 10px;font-size:13px}
.rd-template-runtime .template-detail-page .template-guidance-description{font-size:14px;margin:8px 0}
.rd-template-runtime .template-child-guidance-label{font-size:12px;margin:6px 0}
.rd-template-runtime .template-guided-descendants{list-style:none;padding:0;margin:4px 0}
.rd-template-runtime .template-guided-descendants button{display:block;width:100%;text-align:left;background:transparent;color:var(--accent);padding:7px 0;font-size:13px;border-radius:0;border-bottom:1px solid var(--line)}
.rd-template-runtime .template-card-sources{margin:16px 0;font-size:14px}
.rd-template-runtime .template-card-sources>summary{font-weight:600}
/* Общие заголовки и фиксированные столбцы метаданных выравнивают реестр. */
.rd-template-runtime .template-registry-wrap{overflow-x:auto;max-width:100%;border:1px solid var(--line2);border-radius:9px;background:var(--surface)}
.rd-template-runtime .template-registry{width:100%;min-width:640px;border-collapse:collapse;table-layout:fixed;font-size:13px}
.rd-template-runtime .template-col-number{width:48px}.rd-template-runtime .template-col-code{width:72px}.rd-template-runtime .template-col-format{width:70px}.rd-template-runtime .template-col-stage{width:220px}
.rd-template-runtime .template-registry th{height:38px;padding:7px 10px;text-align:left;font-size:12px;color:var(--muted);font-weight:600;background:var(--surface-2);border-bottom:1px solid var(--line2)}
.rd-template-runtime .template-registry td{height:44px;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
.rd-template-runtime .template-registry tbody tr:last-child td{border-bottom:0}
.rd-template-runtime .template-registry tbody tr[data-template-id]{cursor:pointer}
.rd-template-runtime .template-registry tbody tr[data-template-id]:hover{background:var(--surface-2)}
.rd-template-runtime .template-registry tbody tr[data-template-id]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.rd-template-runtime .template-registry-number{font-variant-numeric:tabular-nums;color:var(--muted)}
.rd-template-runtime .template-registry-name{display:flex;align-items:center;gap:8px;min-width:0}
.rd-template-runtime .template-registry-name a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1;color:var(--ink);text-decoration:none;font-weight:500}
.rd-template-runtime .template-registry-name a:hover{color:var(--accent)}
.rd-template-runtime .template-registry-name .template-source-state{flex:none;font-size:10px}
.rd-template-runtime .template-registry-stage{font-size:11px;line-height:1.25;color:var(--muted)}
.rd-template-runtime .template-registry-code,.rd-template-runtime .template-registry-format{font-size:12px;color:var(--muted)}
.rd-template-runtime .template-registry-empty{text-align:center}
@media(max-width:700px){.rd-template-runtime .template-detail-page{padding:10px 12px}.rd-template-runtime .template-detail-page .template-detail-head h1{font-size:20px}.rd-template-runtime .template-detail-title-row{align-items:flex-start;gap:8px}.rd-template-runtime .template-detail-title-row .template-download{padding:6px 8px;font-size:11px}.rd-template-runtime .template-detail-title-row .template-download-action{max-width:140px}.rd-template-runtime .template-col-stage{width:180px}}

.rd-template-runtime .template-toolbar .template-download-action{max-width:none}
.rd-template-runtime .template-toolbar .template-download-status{flex-basis:100%}

.rd-template-runtime .template-rules-section{margin:18px 0}
.rd-template-runtime .template-rule-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:8px 0}
.rd-template-runtime .template-rule-coverage{border-left:3px solid var(--accent);background:var(--surface-2);padding:8px 12px;font-size:13px}
.rd-template-runtime .template-rule-profile{font-size:12px;color:var(--muted);margin:10px 0;overflow-wrap:anywhere}
.rd-template-runtime .template-rule-cards{border:1px solid var(--line2);border-radius:9px;background:var(--surface);overflow:hidden}
.rd-template-runtime .template-rule-card{padding:10px 12px;border-bottom:1px solid var(--line)}
.rd-template-runtime .template-rule-card:last-child{border-bottom:0}
.rd-template-runtime .template-rule-card>summary{cursor:pointer;line-height:1.5}
.rd-template-runtime .template-rule-card>summary>span:first-child{font-weight:600;margin-right:10px}
.rd-template-runtime .template-rule-card>summary>small{color:var(--muted);margin-right:12px}
.rd-template-runtime .template-rule-availability{font-size:11px;color:var(--muted)}
/* Три состояния правила — три разных вида. Раньше «Требует настройки» выглядело ровно как
   «Включено», хотя значит противоположное: правила в наборе нет и оно не выполняется. */
.rd-template-runtime .template-rule-card.configured .template-rule-availability{color:var(--ink)}
.rd-template-runtime .template-rule-card.unconfigured .template-rule-availability{color:var(--warn)}
.rd-template-runtime .template-rule-card .template-rule-hint{font-size:12px;color:var(--muted);line-height:1.5}
.rd-template-runtime .template-rule-permission{font-size:13px;line-height:1.5;border-left:3px solid var(--accent);background:var(--surface-2);padding:8px 12px}
.rd-template-runtime .template-rule-closed-set{font-size:12px;color:var(--muted);line-height:1.5;margin:8px 0}
.rd-template-runtime .template-validation-rule-note{flex:1 0 100%;font-size:12px;line-height:1.5;margin:0 0 8px}
.rd-template-runtime .template-authoring-denied{font-size:13px;line-height:1.5;margin:8px 0;color:var(--ink)}
.rd-template-runtime .template-edition-current{margin:0 0 20px}
.rd-template-runtime .template-edition-nochange{font-size:13px;line-height:1.55;color:var(--muted);margin:8px 0}
.rd-template-runtime .template-edition-diff{font-size:12px;line-height:1.5;color:var(--muted);margin:6px 0 0}
.rd-template-runtime .template-edition-row{margin:0 0 12px}
.rd-template-runtime .template-versions-limits{font-size:13px;line-height:1.55;border-left:3px solid var(--line2);background:var(--surface-2);padding:8px 12px}
.rd-template-runtime .template-publication-history{display:block;margin:16px 0 0}
.rd-template-runtime .template-publication-history>h2{margin:0 0 8px}
.rd-template-runtime .template-rule-card p{font-size:13px;line-height:1.5}
.rd-template-runtime .template-rule-card pre,.rd-template-runtime .template-rule-source-code{overflow:auto;max-width:100%;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:12px;font-size:12px}
.rd-template-runtime .template-rule-source-code{max-height:55vh;line-height:1.5;tab-size:4}
.rd-template-runtime .template-rule-code-sha{font-size:11px;overflow-wrap:anywhere}
.rd-template-runtime .template-rule-code-view{min-width:0}
.rd-template-runtime .template-rule-library{max-height:70vh;overflow:auto}
.rd-template-runtime .template-rule-definition{border-bottom:1px solid var(--line);padding:10px 0;overflow-wrap:anywhere}
.rd-template-runtime .template-rule-definition summary{font-weight:600;cursor:pointer}
.rd-template-runtime .template-rule-definition p{font-size:13px}

/* Окно проверки документа: слева узкая колонка отбора, справа отчёт и история, кнопки — внизу
   справа, там же, где «Закрыть» у самого окна. Прежняя сетка «1fr 2fr» на четыре поля подряд
   ставила «Документ» (самые длинные строки) в узкую колонку, «Редакцию» («Текущая версия») — в
   широкую, а поиск уезжал наверх справа, далеко от списка, к которому он относится. */
.rd-template-runtime .template-validation-form{max-height:78vh;overflow:auto;padding-right:6px}
.rd-template-runtime .template-validation-picker{display:grid;grid-template-columns:1fr;gap:12px}
.rd-template-runtime .template-validation-publication-picker{display:grid;gap:7px;margin-bottom:14px;min-width:0}
.rd-template-runtime .template-validation-publication-picker label{display:grid;gap:7px;font-size:13px;color:var(--muted);min-width:0}
.rd-template-runtime .template-validation-publication-picker select{width:100%;min-width:0;max-width:100%;min-height:38px;border-radius:9px;border:1px solid var(--line2);padding:8px 10px;font-size:14px;background:var(--surface);color:var(--ink)}
.rd-template-runtime .template-validation-search{display:flex;align-items:center;gap:8px;border:1px solid var(--line2);border-radius:9px;background:var(--surface);padding:0 10px}
.rd-template-runtime .template-validation-search input{border:0;background:transparent;flex:1;min-width:0;padding:8px 0}
.rd-template-runtime .template-validation-search .bi{color:var(--muted);flex:none}
.rd-template-runtime .template-validation-picker-status{font-size:12.5px;line-height:1.5;color:var(--muted);margin:0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rd-template-runtime .template-validation-picker-status:empty{display:none}
.rd-template-runtime .template-validation-upload-row{display:flex;gap:8px;flex-wrap:wrap}
@media(min-width:900px){
 .rd-template-runtime .template-validation-form{display:grid;grid-template-columns:minmax(260px,330px) minmax(0,1fr);gap:22px;align-items:start}
 .rd-template-runtime .template-validation-form>.template-validation-actions{grid-column:1/-1}
}
.rd-template-runtime .template-validation-picker label,.rd-template-runtime .template-validation-compare-controls label{display:grid;gap:5px;font-size:12px;color:var(--muted);min-width:0}
.rd-template-runtime .template-validation-rule-options{display:flex;flex-wrap:wrap;gap:9px 16px;border:1px solid var(--line2);border-radius:8px;margin:14px 0;padding:10px}
.rd-template-runtime .template-validation-rule-options legend{font-size:13px;padding:0 6px}
.rd-template-runtime .template-validation-rule-options label{display:flex;align-items:center;gap:6px;font-size:13px}
.rd-template-runtime .template-validation-rule-options input{width:auto}
.rd-template-runtime .template-validation-actions,.rd-template-runtime .template-validation-summary{display:flex;gap:9px;flex-wrap:wrap;margin:12px 0}
.rd-template-runtime .template-validation-actions{justify-content:flex-end}
.rd-template-runtime .template-validation-summary span{font-size:12px;background:var(--surface-2);padding:5px 8px;border-radius:5px}
.rd-template-runtime .template-validation-report>h3{font-size:18px;margin-bottom:6px}
.rd-template-runtime .template-validation-report p{font-size:13px;line-height:1.5}
.rd-template-runtime .template-validation-table-wrap{overflow:auto;max-width:100%}
.rd-template-runtime .template-validation-table{width:100%;min-width:540px;border-collapse:collapse;font-size:12px}
.rd-template-runtime .template-validation-table td,.rd-template-runtime .template-validation-table th{border:1px solid var(--line2);padding:9px;text-align:left;vertical-align:top}
.rd-template-runtime .template-validation-table th{background:var(--surface-2)}
.rd-template-runtime .template-validation-table small,.rd-template-runtime .template-validation-comparison small{display:block;color:var(--muted)}
.rd-template-runtime .template-validation-table p{font-size:12px;margin:6px 0}
.rd-template-runtime .template-validation-findings{padding-left:16px;overflow-wrap:anywhere}
.rd-template-runtime .template-validation-findings details{font-size:11px;color:var(--muted);margin:5px 0}
.rd-template-runtime .template-validation-identity{font-size:12px;margin:14px 0;overflow-wrap:anywhere}
.rd-template-runtime .template-validation-missing{margin:12px 0;font-size:13px}
.rd-template-runtime .template-validation-history{border-top:1px solid var(--line2);margin-top:18px;padding-top:8px}
/* Пустая история рисовала отбивку — черту, под которой ничего нет. Это читается как оборванный
   экран, а не как «отчётов пока не было». */
.rd-template-runtime .template-validation-history:empty{display:none}
.rd-template-runtime .template-validation-history-list{padding:0;list-style:none}
.rd-template-runtime .template-validation-history-list li{margin:6px 0;display:flex;flex-wrap:wrap;gap:6px}
.rd-template-runtime .template-validation-history-list button{text-align:left;max-width:100%}
.rd-template-runtime .template-validation-compare-controls{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:8px}
.rd-template-runtime .template-validation-comparison{font-size:13px;overflow-wrap:anywhere}
.rd-template-runtime .template-validation-comparison details{margin:10px 0}
.rd-template-runtime .template-detail-title-row .template-validate{font-size:12px;padding:7px 11px;white-space:nowrap}
@media(max-width:700px){.rd-template-runtime .template-validation-picker,.rd-template-runtime .template-validation-compare-controls{grid-template-columns:1fr}.rd-template-runtime .template-validation-form{max-height:75vh}.rd-template-runtime .template-rule-code-view select{max-width:100%}}

.rd-template-runtime .template-validation-error{color:var(--warn);font-size:13px;overflow-wrap:anywhere}
.rd-template-runtime .template-validation-error:empty{display:none}

.rd-template-runtime .template-validation-report p,.rd-template-runtime .template-validation-identity code{overflow-wrap:anywhere}

/* Шаблоны: панели, типографика и line-SVG по общей системе интерфейса диска. */
.rd-template-runtime .template-page{max-width:none;padding:22px 28px;font-size:14.5px}
.rd-template-runtime .template-page> :not(.template-record-card){max-width:1340px}
.rd-template-runtime .template-detail-page{padding:20px 28px}
.rd-template-runtime .template-back{display:inline-flex;align-items:center;gap:6px;font-size:13px;line-height:1.5;padding:4px 0;margin:0 0 12px}
.rd-template-runtime .template-record-card{width:100%;max-width:1340px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:clip}
.rd-template-runtime .template-record-card .template-detail-head{margin:0;padding:20px 24px 16px}
.rd-template-runtime .template-record-card .template-detail-title-row{gap:14px;align-items:center;flex-wrap:wrap}
.rd-template-runtime .template-title-icon{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;flex:none;border-radius:12px;background:var(--accent-soft);color:#fff}
.rd-template-runtime .template-title-icon svg{width:22px;height:22px;display:block}
.rd-template-runtime .template-record-card .template-detail-head h1{font-size:23px;line-height:1.3;font-weight:650;margin:0;flex:1;min-width:180px;color:var(--ink)}
.rd-template-runtime .template-record-card .template-detail-meta{font-size:13px;line-height:1.5;margin:8px 0 0;color:var(--muted)}
.rd-template-runtime .template-record-card .template-card-information{margin:10px 0 0;font-size:13px;line-height:1.5}
.rd-template-runtime .template-record-card button{font-size:14px;line-height:1.4}
.rd-template-runtime .template-record-card .template-download,.rd-template-runtime .template-record-card .template-validate{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:8px 12px;font-size:14px;border-radius:9px;white-space:nowrap}
.rd-template-runtime .template-record-card button>svg,.rd-template-runtime .template-record-tabs button>svg,.rd-template-runtime .template-rule-toolbar button>svg,.rd-template-runtime .template-validation-actions button>svg{width:17px;height:17px;flex:none}
.rd-template-runtime .template-record-card .template-download{background:var(--surface);color:var(--ink);border:1px solid var(--line2)}
.rd-template-runtime .template-record-card .template-download:hover{color:var(--accent);border-color:var(--accent)}
.rd-template-runtime .template-record-card .template-download-action{margin:0;gap:8px}
.rd-template-runtime .template-record-card .template-download-status{font-size:13px;line-height:1.45}
.rd-template-runtime .template-record-tabs{display:flex;align-items:center;gap:6px;padding:0 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line2);background:var(--surface)}
.rd-template-runtime .template-record-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 16px;border-radius:0;border-bottom:3px solid transparent;background:transparent;color:var(--muted);font-size:14px;font-weight:600;white-space:nowrap}
.rd-template-runtime .template-record-tabs button:hover{color:var(--ink);background:var(--surface-2);filter:none}
.rd-template-runtime .template-record-tabs button[aria-selected=true]{color:var(--accent-ink);border-bottom-color:var(--accent);background:var(--surface)}
.rd-template-runtime .template-record-panel{padding:20px 24px 24px;min-width:0}
.rd-template-runtime .template-record-panel[hidden]{display:none!important}
/* Панель инструментов карточки: своя строка во всю ширину, кнопки в ряд. Перенос — только
   когда строка правда не помещается, а не из-за ограничения ширины, как было. */
.rd-template-runtime .template-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0 0;padding-top:14px;border-top:1px solid var(--line)}
.rd-template-runtime .template-toolbar .template-download-action{margin:0;gap:10px;flex-wrap:wrap}
/* Постоянные действия над документом видны из каждого раздела карточки. Причина
   недоступности стоит рядом с выключенной кнопкой и доступна без наведения. */
.rd-template-runtime .template-detail-head .template-toolbar{align-items:stretch;flex-direction:column;gap:14px}
.rd-template-runtime .template-primary-actions{display:grid;grid-template-columns:repeat(2,minmax(210px,1fr));gap:12px 24px;max-width:880px;width:100%}
.rd-template-runtime .template-primary-action{display:flex;flex-direction:column;align-items:flex-start;gap:7px;min-width:0}
.rd-template-runtime .template-primary-action>.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:9px 15px;border-radius:9px;font-size:14px}
.rd-template-runtime .template-primary-action>.btn>svg{width:17px;height:17px;flex:none}
.rd-template-runtime .template-primary-explanation{font-size:12px;line-height:1.5;margin:0;max-width:52ch;overflow-wrap:anywhere}
.rd-template-runtime .template-detail-head .template-check-action{padding:0;margin:0;border:0;background:none;border-radius:0}
.rd-template-runtime .template-secondary-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rd-template-runtime .template-secondary-actions .template-download-missing{margin:0;font-size:12px}
.rd-template-runtime .template-detail-page .template-record-tabs{overflow-x:auto}
.rd-template-runtime .template-detail-page .template-record-tabs button{flex-shrink:0;min-width:max-content}
.rd-template-runtime .template-attributes-intro{margin:0 0 20px;line-height:1.6;max-width:85ch}
@media(max-width:640px){.rd-template-runtime .template-primary-actions{grid-template-columns:1fr;gap:16px}.rd-template-runtime .template-primary-action>.btn{width:100%}.rd-template-runtime .template-secondary-actions{gap:8px}.rd-template-runtime .template-record-tabs button{padding-inline:12px}}
/* Вкладка «Описание»: ведущий абзац, признаки, плитки чисел и даты. */
.rd-template-runtime .template-about h2{font-size:15px;margin:18px 0 8px}
.rd-template-runtime .template-about h2:first-child{margin-top:0}
/* Описание бланка пишет автор, в несколько строк: переводы строк сохраняются, длинное слово
   переносится, а не распирает вкладку. */
.rd-template-runtime .template-about-lead{font-size:14px;line-height:1.6;margin:0 0 4px;max-width:70ch;white-space:pre-line;overflow-wrap:anywhere}
.rd-template-runtime .template-about-empty{margin:0 0 4px}
.rd-template-runtime .template-about-edit{margin:6px 0 0}
/* Признаки бланка — обычный текст одной строкой через « · ». Рамки, фона и скругления нет
   намеренно: «пилюлями» они выглядели метками, которые можно снять или поставить. */
.rd-template-runtime .template-about-facts{margin:8px 0 0;font-size:12px;line-height:1.6;color:var(--muted);max-width:70ch}
.rd-template-runtime .template-about-stats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px}
.rd-template-runtime .template-about-stats li{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}
.rd-template-runtime .template-about-stats li strong{font-size:20px;font-weight:600;line-height:1.1}
.rd-template-runtime .template-about-stats li span{font-size:12px;color:var(--muted)}
.rd-template-runtime .template-about-dates{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 28px}
.rd-template-runtime .template-about-dates li{display:flex;flex-direction:column;gap:2px}
.rd-template-runtime .template-about-dates li span{font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.rd-template-runtime .template-about-dates li strong{font-size:13px;font-weight:600}
@media(max-width:640px){.rd-template-runtime .template-about-stats{grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}.rd-template-runtime .template-toolbar{gap:8px}}
/* Сводка в шапке карточки шаблона: несколько фактов в строку, переносом на узком экране.
   Список, а не абзац: пары «подпись — значение» читаются и голосом, и глазами. */
.rd-template-runtime .template-summary-strip{display:flex;flex-wrap:wrap;gap:6px 22px;list-style:none;margin:10px 0 0;padding:0}
.rd-template-runtime .template-summary-strip li{display:flex;flex-direction:column;gap:2px;min-width:0}
.rd-template-runtime .template-summary-strip li span{font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.rd-template-runtime .template-summary-strip li strong{font-size:13px;font-weight:600;overflow-wrap:anywhere}
/* Запуск проверки — первым в своей вкладке, отделён от таблицы. На месте кнопки может
   стоять причина отказа, поэтому отступ задаётся контейнеру, а не кнопке. */
.rd-template-runtime .template-check-action{margin:0 0 16px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}
.rd-template-runtime .template-check-action p{margin:0;line-height:1.5}
.rd-template-runtime .template-check-action .hactions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
/* Отметка «проверка шла по другому шаблону» обязана читаться как оговорка к зелёному
   «Пройдено», а не теряться рядом с ним. */
.rd-template-runtime .template-run-foreign{color:var(--warn,#a2601b);overflow-wrap:anywhere}
.rd-template-runtime .template-documents-section td small{display:inline-block;margin-left:2px}
.rd-template-runtime .template-scripts-section .template-rule-definition{margin:6px 0}
@media(max-width:640px){.rd-template-runtime .template-summary-strip{gap:6px 14px}.rd-template-runtime .template-check-action{padding:10px 12px}}
.rd-template-runtime .template-record-panel>h2:first-child{margin-top:0}
.rd-template-runtime .template-record-panel h2,.rd-template-runtime .template-rules-section>h2{font-size:17px;line-height:1.4;font-weight:650;margin:18px 0 12px}
.rd-template-runtime .template-record-panel h3{font-size:15px;line-height:1.45}
.rd-template-runtime .template-record-panel .template-structure-workspace{grid-template-columns:minmax(245px,0.85fr) minmax(320px,1.45fr);gap:20px;margin:0;align-items:start}
.rd-template-runtime .template-record-panel .template-structure-nav{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:8px;max-height:64vh}
.rd-template-runtime .template-record-panel .template-section-tree>li{border-bottom-color:var(--line2)}
.rd-template-runtime .template-record-panel .template-section-tree>li:last-child{border-bottom:0}
.rd-template-runtime .template-record-panel .template-section-select{font-size:14px;line-height:1.5;padding:8px}
.rd-template-runtime .template-record-panel .template-section-number{font-size:12px}
.rd-template-runtime .template-record-panel .template-section-title{font-size:14px}
.rd-template-runtime .template-record-panel .template-section-tree summary{padding:4px 0;align-items:center}
.rd-template-runtime .template-record-panel .template-section-leaf{padding-left:16px}
.rd-template-runtime .template-record-panel .template-block-panel{padding:18px 20px;border:1px solid var(--line2);border-radius:12px;box-shadow:none;top:calc(var(--app-header-height,60px) + 16px)}
.rd-template-runtime .template-record-panel .template-block-panel h3{font-size:17px;line-height:1.4;margin:0 0 14px}
.rd-template-runtime .template-record-panel .template-guidance-tabs{margin-bottom:14px}
.rd-template-runtime .template-record-panel .template-guidance-tabs button{font-size:14px;padding:9px 12px}
.rd-template-runtime .template-record-panel .template-guidance-description{font-size:14.5px;line-height:1.65;margin:10px 0}
.rd-template-runtime .template-record-panel .template-obligation{font-size:12px;line-height:1.5}
.rd-template-runtime .template-record-panel .template-guidance-note,.rd-template-runtime .template-record-panel .template-relation-note{font-size:13px;line-height:1.6;border-radius:0 8px 8px 0}
.rd-template-runtime .template-record-panel .template-guided-descendants button{font-size:14px;line-height:1.5;padding:10px 0}
.rd-template-runtime .template-record-panel .template-tables{margin-top:18px}
.rd-template-runtime .template-record-panel .template-tables details{padding:12px 14px;margin:8px 0;border:1px solid var(--line);background:var(--surface-2);border-radius:10px;font-size:13px}
.rd-template-runtime .template-record-panel .template-tables summary{line-height:1.6}
.rd-template-runtime .template-record-panel .template-source,.rd-template-runtime .template-record-panel .template-source-name{font-size:13px;line-height:1.5}
.rd-template-runtime .template-record-panel .template-card-sources{padding:14px 16px;border:1px solid var(--line2);border-radius:12px}
.rd-template-runtime .template-record-panel .template-relation-card{padding:16px;border-radius:12px;border-color:var(--line);background:var(--surface-2);margin:8px 0}
.rd-template-runtime .template-record-panel .template-relation-statement{font-size:14px;gap:8px 12px}
.rd-template-runtime .template-record-panel .template-relation-node small{font-size:12px;margin-top:3px}
.rd-template-runtime .template-record-panel .template-relation-conditions,.rd-template-runtime .template-record-panel .template-relation-modality{font-size:13px;line-height:1.6}
.rd-template-runtime .template-filters{gap:14px;margin:0 0 16px;align-items:center}
.rd-template-runtime .template-filters label{font-size:13px;gap:8px}
.rd-template-runtime .template-filters select{min-height:36px;font-size:13px;border:1px solid var(--line2);border-radius:9px}
.rd-template-runtime .template-registry-wrap{max-width:1340px;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm)}
.rd-template-runtime .template-registry{font-size:14px;min-width:720px}
.rd-template-runtime .template-registry th{height:40px;font-size:12px;padding:9px 12px;background:var(--surface-2);border-bottom:1px solid var(--line2)}
.rd-template-runtime .template-registry td{height:48px;padding:8px 12px}
.rd-template-runtime .template-col-number{width:48px}.rd-template-runtime .template-col-code{width:78px}.rd-template-runtime .template-col-format{width:82px}.rd-template-runtime .template-col-stage{width:240px}
.rd-template-runtime .template-registry-name{gap:10px;min-height:30px}
.rd-template-runtime .template-registry-name a{font-size:14px;font-weight:550;line-height:1.4}
.rd-template-runtime .template-registry-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex:none;border-radius:8px;color:#fff;background:var(--accent-soft)}
.rd-template-runtime .template-registry-icon svg{width:17px;height:17px;display:block}
.rd-template-runtime .template-registry-stage,.rd-template-runtime .template-registry-code,.rd-template-runtime .template-registry-format{font-size:12px;line-height:1.5}
.rd-template-runtime .template-rules-section{margin:0}
.rd-template-runtime .template-rule-toolbar{gap:8px;margin:0 0 16px;align-items:center}
.rd-template-runtime .template-rule-toolbar button,.rd-template-runtime .template-validation-actions button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:8px 12px;border-radius:9px;font-size:14px}
.rd-template-runtime .template-rule-coverage{padding:10px 14px;margin:12px 0;border-radius:0 9px 9px 0;font-size:13px;line-height:1.55}
.rd-template-runtime .template-rule-profile{font-size:12px;line-height:1.5;margin:10px 0 16px}
.rd-template-runtime .template-rule-cards{border:1px solid var(--line2);border-radius:12px;background:var(--surface)}
.rd-template-runtime .template-rule-card{padding:14px 16px}
.rd-template-runtime .template-rule-card>summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;list-style:none;font-size:14px}
.rd-template-runtime .template-rule-card>summary::-webkit-details-marker{display:none}
.rd-template-runtime .template-rule-card>summary:before{content:"›";display:inline-block;width:12px;color:var(--muted);font-size:18px;line-height:1;flex:none}
.rd-template-runtime .template-rule-card[open]>summary:before{transform:rotate(90deg)}
.rd-template-runtime .template-rule-card>summary>span:first-child{font-weight:650;margin-right:0}
.rd-template-runtime .template-rule-card>summary>small{font-size:12px;margin-right:0}
.rd-template-runtime .template-rule-availability{font-size:12px;line-height:1.4;background:var(--surface-2);border:1px solid var(--line);padding:3px 7px;border-radius:6px}
.rd-template-runtime .template-rule-card.unconfigured .template-rule-availability{border-style:dashed;border-color:currentColor;background:transparent}
.rd-template-runtime .template-rule-card .template-rule-hint{font-size:13px;line-height:1.6;margin:10px 0 0}
.rd-template-runtime .template-rule-permission{font-size:14px;line-height:1.6;padding:10px 14px;margin:12px 0;border-radius:0 9px 9px 0}
.rd-template-runtime .template-rule-closed-set{font-size:13px;line-height:1.6;margin:12px 0}
/* Настройка правила — в карточке самого правила. Отделена линией от описания: это не рассказ
   о проверке, а её органы управления, и путать их нельзя. */
.rd-template-runtime .template-rule-settings{border-top:1px solid var(--line);margin:14px 0 0;padding:14px 0 0}
.rd-template-runtime .template-rule-settings h4{font-size:14px;font-weight:650;line-height:1.5;margin:0 0 8px}
.rd-template-runtime .template-rule-state{font-weight:600}
.rd-template-runtime .template-rule-params{max-height:32vh}
.rd-template-runtime .template-rule-form{display:grid;gap:2px;margin:12px 0 0}
.rd-template-runtime .template-rule-form label{display:grid;gap:7px;font-size:13px;color:var(--muted);margin:12px 0}
.rd-template-runtime .template-rule-switch{display:flex;align-items:center;gap:9px;color:var(--ink);font-size:14px}
.rd-template-runtime .template-rule-switch input{width:18px;height:18px;flex:none;accent-color:var(--accent)}
.rd-template-runtime .template-rule-title{width:100%;min-height:36px;padding:8px 12px;border:1px solid var(--line2);border-radius:9px;background:var(--surface-2);color:var(--ink);font-size:14px}
.rd-template-runtime .template-rule-editor{display:block;width:100%;min-height:150px;max-height:40vh;resize:vertical;font-family:var(--mono);font-size:13px;line-height:1.65;tab-size:2;background:var(--surface-2);color:var(--ink);padding:14px;border:1px solid var(--line2);border-radius:10px;white-space:pre}
.rd-template-runtime .template-rule-editor:focus,.rd-template-runtime .template-rule-title:focus{outline:2px solid var(--accent);outline-offset:2px}
/* Куда уходит правка и когда она подействует — врезкой, а не мелким серым: щёлкнуть переключателем
   и не увидеть перемен в каталоге читается как поломка. */
.rd-template-runtime .template-rule-scope-note{font-size:13px;line-height:1.6;border-left:3px solid var(--warn);background:var(--surface-2);padding:10px 14px;margin:12px 0;border-radius:0 9px 9px 0}
.rd-template-runtime .template-rule-status{font-size:13px;line-height:1.6;color:var(--muted)}
/* «Правила изменены, но ещё не действуют» — врезкой над разделом, тем же видом, что пояснение о
   том, когда подействует правка: это одно и то же сообщение, сказанное для всего набора. Кнопка
   «Применить» стоит в самой врезке, рядом с тем, к чему относится. */
.rd-template-runtime .template-rules-pending{display:grid;gap:6px;justify-items:start;border-left:3px solid var(--warn);background:var(--surface-2);padding:10px 14px;margin:0 0 12px;border-radius:0 9px 9px 0}
.rd-template-runtime .template-rules-pending p{margin:0;font-size:13px;line-height:1.6}
.rd-template-runtime .template-rules-pending-title{font-weight:600}
.rd-template-runtime .template-rules-apply{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:8px 12px;border-radius:9px;font-size:14px}
.rd-template-runtime .template-rules-apply-body p{margin:0 0 10px;font-size:13.5px;line-height:1.5}
.rd-template-runtime .template-rules-apply-consent-row{display:flex;align-items:flex-start;gap:9px;margin:0 0 10px;font-size:13.5px;line-height:1.5}
.rd-template-runtime .template-rules-apply-consent-row input{width:18px;height:18px;flex:none;margin-top:1px;accent-color:var(--accent)}
/* «Добавить правило»: кнопка под списком правил и окно. Серые правила и таблицы — приглушённым
   текстом без рамок: это сведения «почему нельзя», а не кнопки. Выбранное правило подсвечено, чтобы
   было видно, чья форма ниже. */
.rd-template-runtime .template-rule-add-row,.rd-template-runtime .template-rule-workbench-add-row{margin:12px 0 0}
.rd-template-runtime .template-rule-add-list{display:grid;gap:6px;margin:0 0 12px}
.rd-template-runtime .template-rule-add-item{margin:0;font-size:13.5px;line-height:1.5}
.rd-template-runtime .template-rule-add-off,.rd-template-runtime .template-rule-add-table-off{color:var(--muted);margin:0;font-size:13px;line-height:1.5}
.rd-template-runtime .template-rule-add-name{font-weight:600}
.rd-template-runtime .template-rule-add-choice[aria-pressed="true"]{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent)}
.rd-template-runtime .template-rule-add-form{display:grid;gap:6px;margin:0 0 10px}
.rd-template-runtime .template-rule-add-form p{margin:4px 0 0;font-size:13.5px}
.rd-template-runtime .template-rule-add-check{display:flex;align-items:flex-start;gap:9px;font-size:13.5px;line-height:1.5}
.rd-template-runtime .template-rule-add-check input{width:16px;height:16px;flex:none;margin-top:2px;accent-color:var(--accent)}
.rd-template-runtime .template-rule-add-field{display:grid;gap:4px;font-size:13.5px}
.rd-template-runtime .template-rule-add-field input,.rd-template-runtime .template-rule-add-table{width:100%;max-width:100%}
.rd-template-runtime .template-rule-add-columns{display:grid;gap:4px}
.rd-template-runtime .template-rule-add-warn{color:var(--warn);font-size:12.5px;line-height:1.5}
.rd-template-runtime .template-rule-add-check .template-rule-add-warn{margin-left:6px}
.rd-template-runtime .template-rule-add-sverka{margin:4px 0 0;font-size:12.5px}
.rd-template-runtime .template-summary-strip li.template-summary-pending strong{color:var(--warn)}
.rd-template-runtime .template-rule-edit,.rd-template-runtime .template-rule-save{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:8px 12px;border-radius:9px;font-size:14px}
.rd-template-runtime .template-rule-evidence{font-size:13px;line-height:1.6;margin:12px 0 0}
.rd-template-runtime .template-rule-evidence>summary{cursor:pointer}
/* Читателю показывается pre, а не запертая textarea: у [readonly] в этих стилях нет ни одного
   правила, и запертое поле неотличимо от рабочего. */
.rd-template-runtime .template-config-field{margin:12px 0}
.rd-template-runtime .template-config-view{max-height:52vh;overflow:auto;background:var(--surface-2);border:1px solid var(--line2);border-radius:12px;padding:16px;font-family:var(--mono);font-size:13px;line-height:1.65;tab-size:2;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:700px){.rd-template-runtime .template-rule-editor{min-height:120px;font-size:12px;padding:12px}.rd-template-runtime .template-rule-edit,.rd-template-runtime .template-rule-save{width:100%}.rd-template-runtime .template-config-view{padding:12px;font-size:12px}}
.rd-template-runtime .template-versions-limits{font-size:14px;line-height:1.6;padding:10px 14px;margin:14px 0;border-radius:0 9px 9px 0}
.rd-template-runtime .template-authoring-denied{font-size:14px;line-height:1.6;margin:12px 0}
.rd-template-runtime .template-rule-card p,.rd-template-runtime .template-rule-definition p{font-size:14px;line-height:1.6;margin:12px 0}
.rd-template-runtime .template-rule-card pre,.rd-template-runtime .template-rule-source-code{font-family:var(--mono);font-size:12.5px;line-height:1.65;border-radius:10px;padding:14px 16px;border-color:var(--line2)}
.rd-template-runtime .template-rule-code-view select{min-height:36px;font-size:13px}
.rd-template-runtime .template-rule-definition{padding:14px 0}
.rd-template-runtime .template-rule-definition summary{font-size:14px;line-height:1.5}
.rd-template-runtime .template-validation-form{font-size:14px;line-height:1.5}
.rd-template-runtime .template-validation-picker{grid-template-columns:1fr;gap:14px}
.rd-template-runtime .template-validation-picker label,.rd-template-runtime .template-validation-compare-controls label{font-size:13px;gap:7px}
.rd-template-runtime .template-validation-picker input,.rd-template-runtime .template-validation-picker select,.rd-template-runtime .template-validation-compare-controls select{min-height:38px;border-radius:9px;border:1px solid var(--line2);font-size:14px;background:var(--surface);color:var(--ink);padding:8px 10px;max-width:100%}
.rd-template-runtime .template-validation-picker .template-validation-search input{min-height:36px;border:0;border-radius:0;padding:8px 0}
.rd-template-runtime .template-validation-picker-status{font-size:13px;line-height:1.55}
.rd-template-runtime .template-validation-upload{min-height:36px}
.rd-template-runtime .template-validation-rule-options{gap:10px 18px;margin:16px 0;padding:12px 14px;border-radius:10px;background:var(--surface-2)}
.rd-template-runtime .template-validation-rule-options label{font-size:14px;line-height:1.5}
.rd-template-runtime .template-validation-rule-options input{width:16px;height:16px;accent-color:var(--accent)}
.rd-template-runtime .template-validation-summary{gap:8px;margin:14px 0}
.rd-template-runtime .template-validation-summary span{font-size:13px;line-height:1.5;padding:7px 10px;border:1px solid var(--line);border-radius:8px}
.rd-template-runtime .template-validation-report>h3{font-size:19px;line-height:1.4;margin:16px 0 8px}
.rd-template-runtime .template-validation-report p{font-size:14px;line-height:1.6}
.rd-template-runtime .template-validation-table-wrap{border:1px solid var(--line2);border-radius:12px;background:var(--surface)}
.rd-template-runtime .template-validation-table{font-size:13px;min-width:620px}
.rd-template-runtime .template-validation-table td,.rd-template-runtime .template-validation-table th{border:0;border-bottom:1px solid var(--line);padding:12px 14px;line-height:1.5}
.rd-template-runtime .template-validation-table th{font-size:12px;font-weight:600;color:var(--muted);background:var(--surface-2)}
.rd-template-runtime .template-validation-table tbody tr:last-child td{border-bottom:0}
.rd-template-runtime .template-validation-table p{font-size:13px;line-height:1.6}
.rd-template-runtime .template-validation-findings{margin:8px 0;padding-left:18px}
.rd-template-runtime .template-validation-history{margin-top:22px;padding-top:16px}
.rd-template-runtime .template-validation-history-list li{margin:8px 0}
.rd-template-runtime .template-validation-history-list button{border:1px solid var(--line2);border-radius:10px;background:var(--surface);color:var(--ink);min-height:38px;padding:9px 12px;font-size:13px}
.rd-template-runtime .template-validation-history-list button:hover{border-color:var(--accent);color:var(--accent-ink)}
.rd-template-runtime .template-validation-comparison{font-size:14px;line-height:1.6}
.rd-template-runtime .template-validation-error{font-size:13px;line-height:1.6}
.rd-template-runtime .template-record-card button:focus-visible,.rd-template-runtime .template-registry a:focus-visible,.rd-template-runtime .template-validation-form button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:1100px){
 .rd-template-runtime .template-page,.rd-template-runtime .template-detail-page{padding:18px}
 .rd-template-runtime .template-record-panel{padding:18px}
 .rd-template-runtime .template-record-panel .template-structure-workspace{grid-template-columns:1fr}
 .rd-template-runtime .template-record-panel .template-structure-nav{max-height:38vh}
 .rd-template-runtime .template-record-panel .template-block-panel{position:static;max-height:none}
 .rd-template-runtime .template-col-stage{width:210px}
}
@media(max-width:700px){
 .rd-template-runtime .template-page,.rd-template-runtime .template-detail-page{padding:12px}
 .rd-template-runtime .template-record-card{border-radius:14px}
 .rd-template-runtime .template-record-card .template-detail-head{padding:16px}
 .rd-template-runtime .template-record-card .template-detail-title-row{gap:10px}
 .rd-template-runtime .template-record-card .template-detail-head h1{font-size:20px;min-width:130px}
 .rd-template-runtime .template-title-icon{width:36px;height:36px;border-radius:10px}
 .rd-template-runtime .template-title-icon svg{width:20px;height:20px}

 .rd-template-runtime .template-record-card .template-detail-meta{font-size:12px}
 .rd-template-runtime .template-record-tabs{padding:0 8px;gap:0}
 .rd-template-runtime .template-record-tabs button{flex:1;padding:12px 8px;font-size:13px;gap:5px;min-width:0}
 .rd-template-runtime .template-record-tabs button>svg{width:16px;height:16px}
 .rd-template-runtime .template-record-panel{padding:16px}
 .rd-template-runtime .template-record-panel .template-structure-nav{padding:6px}
 .rd-template-runtime .template-record-panel .template-block-panel{padding:16px}
 .rd-template-runtime .template-rule-card{padding:12px}
 .rd-template-runtime .template-rule-toolbar{align-items:stretch}
 .rd-template-runtime .template-rule-toolbar button{flex:1}
 .rd-template-runtime .template-validation-picker,.rd-template-runtime .template-validation-compare-controls{grid-template-columns:1fr}
 .rd-template-runtime .template-validation-actions button{flex:1}
 .rd-template-runtime .template-record-card .template-validate,.rd-template-runtime .template-record-card .template-download{font-size:13px;min-height:36px;padding:8px 10px}
}

/* Редактор условий и история конфигураций — те же формы и панели. */
.rd-template-runtime .template-config-form{font-size:14px;line-height:1.55;max-height:76vh;overflow:auto;padding-right:6px}
.rd-template-runtime .template-config-form label{display:grid;gap:7px;font-size:13px;color:var(--muted);margin:12px 0}
.rd-template-runtime .template-config-editor{display:block;width:100%;min-height:340px;max-height:52vh;resize:vertical;font-family:var(--mono);font-size:13px;line-height:1.65;tab-size:2;background:var(--surface-2);color:var(--ink);padding:16px;border:1px solid var(--line2);border-radius:12px;white-space:pre}
.rd-template-runtime .template-config-editor:focus{outline:2px solid var(--accent);outline-offset:2px}
.rd-template-runtime .template-config-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 0 6px}
.rd-template-runtime .template-config-toolbar button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:8px 12px;font-size:14px;border-radius:9px}
.rd-template-runtime .template-config-history{max-height:70vh;overflow:auto;font-size:14px}
.rd-template-runtime .template-config-version{border:1px solid var(--line2);border-radius:12px;background:var(--surface);padding:14px 16px;margin:10px 0}
.rd-template-runtime .template-config-version>summary{cursor:pointer;font-size:14px;font-weight:600;line-height:1.5}
.rd-template-runtime .template-config-version p,.rd-template-runtime .template-config-history p{font-size:13px;line-height:1.6;color:var(--muted)}
.rd-template-runtime .template-config-snapshot{max-height:48vh;overflow:auto;border:1px solid var(--line);background:var(--surface-2);border-radius:10px;padding:14px 16px;font-family:var(--mono);font-size:12.5px;line-height:1.6;tab-size:2}
.rd-template-runtime .template-config-form button:focus-visible,.rd-template-runtime .template-config-history button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:700px){.rd-template-runtime .template-config-editor{min-height:280px;font-size:12px;padding:12px}.rd-template-runtime .template-config-toolbar button{flex:1}.rd-template-runtime .template-config-version{padding:12px}}

/* В списке правил — только имя, состояние и действия. */
.rd-template-runtime .template-rules-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:16px 0;color:var(--muted)}
.rd-template-runtime .template-rule-row{display:grid;grid-template-columns:minmax(140px,1fr) minmax(130px,auto) auto;align-items:center;gap:20px;padding:18px 20px;border:1px solid var(--line);border-radius:10px;margin:10px 0}
.rd-template-runtime .template-rule-row .template-rule-settings{border:0;padding:0;margin:0;min-width:0}.rd-template-runtime .template-rule-row .template-rule-state-row{margin:0;white-space:nowrap}.rd-template-runtime .template-rule-row .template-rule-status:empty,.rd-template-runtime .template-rule-row .template-validation-error:empty{display:none}.rd-template-runtime .template-rule-row .template-rule-status{margin:6px 0 0;font-size:12px}.rd-template-runtime .template-rule-row-actions{display:flex;gap:8px}.rd-template-runtime .template-rule-name{overflow-wrap:anywhere}.rd-template-runtime .template-rules-technical{margin-top:20px;color:var(--muted);font-size:12px}.rd-template-runtime .template-rules-actions{display:flex;gap:8px;margin-top:12px}
.rd-template-runtime .template-rule-add-menu{position:relative}.rd-template-runtime .template-rule-add-menu>summary{display:grid;place-items:center;list-style:none;width:36px;height:36px;background:var(--accent);color:white;border-radius:8px;font-size:25px;cursor:pointer}.rd-template-runtime .template-rule-add-menu>summary::-webkit-details-marker{display:none}.rd-template-runtime .template-rule-add-options{position:absolute;right:0;top:42px;z-index:3;display:flex;flex-direction:column;min-width:180px;padding:6px;background:var(--surface,#fff);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px #0002}.rd-template-runtime .template-rule-add-options button{text-align:left;border:0;white-space:nowrap}
@media(max-width:650px){.rd-template-runtime .template-rule-row{grid-template-columns:1fr;gap:12px}.rd-template-runtime .template-rule-row-actions{justify-content:flex-end}}

.rd-template-runtime .template-rule-row{grid-template-columns:minmax(140px,1fr) auto}.rd-template-runtime .template-rule-row-actions{align-items:center;gap:10px}.rd-template-runtime .template-rule-row .template-rule-icon{padding:7px;width:34px;height:34px;display:grid;place-items:center;border-color:transparent;background:transparent;color:var(--muted)}.rd-template-runtime .template-rule-icon .bi{display:flex}.rd-template-runtime .template-rule-icon:hover{color:var(--accent);background:var(--accent-soft)}.rd-template-runtime .rule-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.rd-template-runtime .template-rule-row input.template-rule-toggle{appearance:none;-webkit-appearance:none;position:relative;width:34px;height:20px;padding:0;border:0;border-radius:12px;background:var(--faint);cursor:pointer;flex:none;transition:background .15s}.rd-template-runtime .template-rule-row input.template-rule-toggle:before{content:'';position:absolute;width:16px;height:16px;left:2px;top:2px;border-radius:50%;background:white;transition:transform .15s}.rd-template-runtime .template-rule-row input.template-rule-toggle:checked{background:var(--accent)}.rd-template-runtime .template-rule-row input.template-rule-toggle:checked:before{transform:translateX(14px)}.rd-template-runtime .template-rule-row input.template-rule-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.rd-template-runtime .template-rule-row .template-rule-settings{position:relative}.rd-template-runtime .template-rule-row .template-validation-error:not(:empty){position:absolute;right:0;top:30px;min-width:260px;padding:10px;background:var(--surface);box-shadow:var(--shadow);z-index:2}
@media(max-width:650px){.rd-template-runtime .template-rule-row{grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:14px 12px}.rd-template-runtime .template-rule-row-actions{gap:3px}}

.rd-template-runtime .template-rule-list{border:1px solid var(--line);border-radius:10px;overflow:hidden}.rd-template-runtime .template-rule-row{padding:10px 16px;margin:0;border:0;border-bottom:1px solid var(--line);border-radius:0}.rd-template-runtime .template-rule-row:last-child{border-bottom:0}.rd-template-runtime .template-rules-section .template-rules-pending{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px}.rd-template-runtime .template-rules-section .template-rules-pending-title{margin:0}.rd-template-runtime .template-rule-row input.template-rule-toggle:disabled{cursor:default;opacity:.65}
@media(max-width:650px){.rd-template-runtime .template-rule-row{padding:10px}.rd-template-runtime .template-rules-section .template-rules-pending{align-items:flex-start;flex-direction:column}}

.rd-template-runtime .template-rule-description{margin:3px 0 0;color:var(--muted);font-size:13px;line-height:1.4}.rd-template-runtime .template-rule-label{min-width:0}

.rd-template-runtime .template-editions-scroll{overflow-x:auto;border:1px solid var(--line2);border-radius:10px}.rd-template-runtime .template-editions-table{width:100%;border-collapse:collapse;min-width:540px;text-align:left;font-size:13px}.rd-template-runtime .template-editions-table th{color:var(--muted);font-weight:500;background:var(--surface-2)}.rd-template-runtime .template-editions-table th,.rd-template-runtime .template-editions-table td{padding:12px 16px;border-bottom:1px solid var(--line);vertical-align:middle}.rd-template-runtime .template-editions-table tbody tr:last-child td{border-bottom:0}.rd-template-runtime .template-editions-table .template-edition-diff{font-size:13px}.rd-template-runtime .template-edition-current-badge{display:inline-block;padding:3px 8px;border-radius:6px;color:var(--accent-ink);background:var(--accent-soft)}.rd-template-runtime .template-edition-actions{display:flex;gap:8px;align-items:center}.rd-template-runtime .template-editions-table .template-edition-action button{display:grid;place-items:center;width:32px;height:32px;padding:7px;background:transparent;color:var(--muted);border:0}.rd-template-runtime .template-edition-action button:hover{background:var(--accent-soft);color:var(--accent)}.rd-template-runtime .template-publication-history>h2{margin-bottom:16px}

/* Related documents: one compact row per relationship and applicability. */
.rd-template-runtime .template-related-scroll{overflow-x:auto}
.rd-template-runtime .template-related-table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}
.rd-template-runtime .template-related-table th,.rd-template-runtime .template-related-table td{padding:12px 16px;border-bottom:1px solid var(--line,#e5e9f2);vertical-align:top}
.rd-template-runtime .template-related-table th{color:var(--muted,#8490a5);font-weight:500}
.rd-template-runtime .template-related-table td:first-child{width:30%}
.rd-template-runtime .template-related-table td:last-child{width:23%}
.rd-template-runtime .template-basis-summary{margin-top:24px}
.rd-template-runtime .template-basis-summary p{font-size:14px;line-height:1.6}

/* Keep quota visible while long navigation and administration menus scroll. */
.rd-template-runtime .side-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;display:flex;flex-direction:column;gap:6px}
.rd-template-runtime .side-scroll>*{flex-shrink:0}
.rd-template-runtime .side>.storage{flex:none;margin-top:8px}

/* Scoped create dialog; existing registry/header layout stays owned by the host. */
.rd-template-runtime .rdt-create-modal{width:min(560px,100%)}
.rd-template-runtime .rdt-create-form{display:grid;gap:16px}
.rd-template-runtime .rdt-create-form>label{display:grid;gap:6px}
.rd-template-runtime .rdt-create-form .rdt-create-editor{display:flex;align-items:center;gap:9px;font-size:13px}
.rd-template-runtime .rdt-create-editor input{width:auto;flex:none}
.rd-template-runtime .rdt-create-error{color:var(--warn);font-size:13px;margin:0;overflow-wrap:anywhere}
.rd-template-runtime .rdt-create-error:empty,.rd-template-runtime .rdt-create-status:empty{display:none}
.rd-template-runtime .rdt-create-form .mbtns{margin-top:0}

.rd-template-runtime .rdt-folder-picker{display:grid;gap:8px;min-width:0}
.rd-template-runtime .rdt-folder-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}
.rd-template-runtime .rdt-folder-results{max-height:150px;overflow:auto;border:1px solid var(--line,#dce1e8);border-radius:8px;padding:4px}
.rd-template-runtime .rdt-folder-option{display:block;width:100%;text-align:left;border:0;background:transparent;color:inherit;padding:8px 10px;border-radius:5px;overflow-wrap:anywhere}
.rd-template-runtime .rdt-folder-option[aria-pressed=true]{background:var(--soft,#edf2fa);color:var(--accent,#3f73db)}
.rd-template-runtime .rdt-folder-option:hover{background:var(--soft,#edf2fa)}
.rd-template-runtime .rdt-folder-selected{font-size:12px;color:var(--muted);margin:0;overflow-wrap:anywhere}
.rd-template-runtime .rdt-new-folder{display:grid;gap:10px;padding:12px;border:1px solid var(--line,#dce1e8);border-radius:8px}
.rd-template-runtime .rdt-new-folder[hidden]{display:none!important}
.rd-template-runtime .rdt-new-folder p{margin:0;font-size:13px}

.rd-template-runtime .rdt-create-modal:has(.tf-rows){width:min(980px,100%)}

/* Область автора шаблона не меняет общую шапку и глобальные modal/table правила. */
.rd-template-runtime .ta-scrim { z-index: 70; padding: 20px; }
.rd-template-runtime .ta-modal { width: min(1180px, 100%); max-height: calc(100dvh - 40px); overflow: hidden; display: flex; flex-direction: column; }
.rd-template-runtime .ta-modal > .head { flex: 0 0 auto; }
.rd-template-runtime .ta-body { overflow: auto; min-height: 0; padding: 18px 22px 24px; }
.rd-template-runtime .ta-close { display: flex; align-items: center; gap: 6px; }
.rd-template-runtime .ta-close span:last-child { font-size: 13px; }
.rd-template-runtime .ta-field { display: flex; flex-direction: column; min-width: 0; gap: 6px; margin: 0 0 14px; }
.rd-template-runtime .ta-label { font-size: 12px; font-weight: 600; color: var(--muted, #637087); }
.rd-template-runtime .ta-field input,.rd-template-runtime  .ta-field textarea,.rd-template-runtime  .ta-field select,.rd-template-runtime  .ta-config select,.rd-template-runtime  .ta-source-modal input {
 width: 100%; box-sizing: border-box; border: 1px solid var(--line, #dce1e8); border-radius: 7px; background: var(--surface, #fff);
 color: inherit; padding: 9px 11px; font: inherit; min-height: 36px;
}
.rd-template-runtime .ta-field textarea { resize: vertical; line-height: 1.5; }
/* Описание шаблона: поле и две короткие подсказки под ним, без отступа поля между ними. */
.rd-template-runtime .ta-description-field { margin: 0 0 14px; }
.rd-template-runtime .ta-description-field > .ta-field { margin-bottom: 4px; }
.rd-template-runtime .ta-description-field > p { margin: 0 0 4px; font-size: 12px; line-height: 1.45; }
.rd-template-runtime .ta-field input:focus,.rd-template-runtime  .ta-field textarea:focus,.rd-template-runtime  .ta-field select:focus { outline: 2px solid var(--accent, #3f73db); outline-offset: 1px; }
.rd-template-runtime .ta-meta,.rd-template-runtime  .ta-toolbar,.rd-template-runtime  .ta-inline,.rd-template-runtime  .ta-tree-tools { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.rd-template-runtime .ta-meta { justify-content: space-between; margin-bottom: 12px; }
.rd-template-runtime .ta-state-badge { display: inline-flex; align-items: center; background: var(--soft, #edf2fa); padding: 5px 9px; border-radius: 6px; font-size: 12px; }
.rd-template-runtime .ta-toolbar { margin: 8px 0 12px; }
.rd-template-runtime .ta-toolbar button,.rd-template-runtime  .ta-inline button,.rd-template-runtime  .ta-tree-tools button,.rd-template-runtime  .ta-preview button,.rd-template-runtime  .ta-history-table button,.rd-template-runtime  .ta-evidence button {
 display: inline-flex; align-items: center; justify-content: center; gap: 7px;
}
.rd-template-runtime .ta-toolbar svg,.rd-template-runtime  .ta-inline svg,.rd-template-runtime  .ta-tree-item svg,.rd-template-runtime  .ta-source-item svg,.rd-template-runtime  .ta-tree-tools svg,.rd-template-runtime  .ta-preview svg,.rd-template-runtime  .ta-history-table svg,.rd-template-runtime  .ta-evidence svg,.rd-template-runtime  .ta-close svg { width: 16px; height: 16px; flex-shrink: 0; }
.rd-template-runtime .ta-layout { display: grid; grid-template-columns: minmax(220px, 30%) minmax(0, 1fr); gap: 20px; margin-top: 18px; border-top: 1px solid var(--line, #dce1e8); padding-top: 18px; }
.rd-template-runtime .ta-tree-panel { min-width: 0; }
.rd-template-runtime .ta-tree-tools { margin-bottom: 10px; }
.rd-template-runtime .ta-tree-tools select { min-width: 0; flex: 1; }
.rd-template-runtime .ta-tree { max-height: 64dvh; overflow: auto; border: 1px solid var(--line, #dce1e8); border-radius: 8px; padding: 5px; }
.rd-template-runtime .ta-tree-item { width: 100%; text-align: left; display: flex; align-items: flex-start; gap: 7px; padding: 8px 10px; background: transparent; border: 0; border-radius: 6px; color: inherit; line-height: 1.35; cursor: pointer; }
.rd-template-runtime .ta-tree-item span:last-child { overflow-wrap: anywhere; }
.rd-template-runtime .ta-tree-item[aria-selected=true] { background: var(--soft, #edf2fa); color: var(--accent, #2858ab); }
.rd-template-runtime .ta-tree-item:hover,.rd-template-runtime  .ta-source-item:hover { background: var(--soft, #f1f4f8); }
.rd-template-runtime .ta-block-editor { min-width: 0; }
.rd-template-runtime .ta-block-editor h3,.rd-template-runtime  .ta-word h3,.rd-template-runtime  .ta-config h3,.rd-template-runtime  .ta-preview h3,.rd-template-runtime  .ta-versions h3 { margin: 0 0 12px; font-size: 15px; }
.rd-template-runtime .ta-two-fields { display: grid; grid-template-columns: minmax(0, 1fr) 160px; gap: 12px; }
.rd-template-runtime .ta-word,.rd-template-runtime  .ta-config { border-top: 1px solid var(--line, #dce1e8); padding: 14px 0 2px; }
.rd-template-runtime .ta-config select { width: min(340px, 100%); }
.rd-template-runtime .ta-evidence { margin: 18px 0; border-top: 1px solid var(--line, #dce1e8); padding-top: 12px; }
.rd-template-runtime .ta-evidence summary,.rd-template-runtime  .ta-advanced summary { cursor: pointer; font-weight: 500; }
.rd-template-runtime .ta-evidence-group { padding: 10px 0; }
.rd-template-runtime .ta-evidence-group h4 { font-size: 13px; margin: 8px 0; }
.rd-template-runtime .ta-evidence-row { padding: 12px; border: 1px solid var(--line, #dce1e8); border-radius: 7px; margin-bottom: 9px; }
.rd-template-runtime .ta-evidence-row details { margin-bottom: 12px; }
.rd-template-runtime .ta-advanced { margin-top: 12px; }
.rd-template-runtime .ta-advanced > .ta-field { margin-top: 12px; }
.rd-template-runtime .ta-status { min-height: 20px; margin: 5px 0; font-size: 13px; color: var(--muted, #637087); }
.rd-template-runtime .ta-error { color: var(--danger, #b42333); font-size: 13px; white-space: pre-wrap; overflow-wrap: anywhere; }
.rd-template-runtime .ta-error:empty { display: none; }
.rd-template-runtime .ta-preview { margin-top: 18px; padding: 16px; border: 1px solid var(--line, #dce1e8); border-radius: 8px; }
.rd-template-runtime .ta-preview p { line-height: 1.5; }
.rd-template-runtime .ta-issues { padding-left: 22px; line-height: 1.5; }
.rd-template-runtime .ta-attention { color: var(--danger, #a75119); }
.rd-template-runtime .ta-versions { border-top: 1px solid var(--line, #dce1e8); padding-top: 18px; margin-top: 18px; overflow-x: auto; }
.rd-template-runtime .ta-history-table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 13px; }
.rd-template-runtime .ta-history-table th,.rd-template-runtime  .ta-history-table td { text-align: left; padding: 10px 8px; border-bottom: 1px solid var(--line, #dce1e8); overflow-wrap: anywhere; }
.rd-template-runtime .ta-history-table th:nth-child(1) { width: 28%; }
.rd-template-runtime .ta-history-table th:nth-child(2) { width: 34%; }
.rd-template-runtime .ta-history-table th:nth-child(3) { width: 14%; }
.rd-template-runtime .ta-history-table th:nth-child(4) { width: 24%; }
.rd-template-runtime .ta-sub-scrim { z-index: 80; }
.rd-template-runtime .ta-rule-editor-scrim { z-index: 90; }
.rd-template-runtime .ta-confirm { width: min(540px, 100%); }
.rd-template-runtime .ta-confirm .ta-field:has(input[type=checkbox]) { flex-direction: row-reverse; align-items: flex-start; justify-content: flex-end; line-height: 1.45; }
.rd-template-runtime .ta-confirm input[type=checkbox] { width: auto; min-height: auto; margin-top: 3px; flex-shrink: 0; }
.rd-template-runtime .ta-source-modal { width: min(650px, 100%); max-height: calc(100dvh - 40px); overflow: auto; }
.rd-template-runtime .ta-source-modal .ta-inline { flex-wrap: nowrap; }
.rd-template-runtime .ta-source-results { max-height: 38dvh; overflow: auto; margin: 10px 0; border: 1px solid var(--line, #dce1e8); border-radius: 7px; }
.rd-template-runtime .ta-source-item { display: flex; width: 100%; border: 0; border-bottom: 1px solid var(--line, #dce1e8); padding: 11px; align-items: center; gap: 9px; background: transparent; text-align: left; }
.rd-template-runtime .ta-source-item.selected { background: var(--soft, #eaf1fc); }
.rd-template-runtime .ta-remove-block { margin-top: 12px; }
.rd-template-runtime .template-authoring-entry { flex-shrink: 0; display: inline-flex; align-items: center; gap: 6px; }
.rd-template-runtime .template-authoring-entry svg { width: 16px; height: 16px; }
.rd-template-runtime .ta-body [hidden],.rd-template-runtime  .ta-scrim [hidden] { display: none !important; }
@media (max-width: 720px) {
 .rd-template-runtime .ta-scrim { padding: 8px; align-items: stretch; }
 .rd-template-runtime .ta-modal { max-height: calc(100dvh - 16px); width: 100%; }
 .rd-template-runtime .ta-body { padding: 12px; }
 .rd-template-runtime .ta-layout { grid-template-columns: minmax(0,1fr); gap: 14px; }
 .rd-template-runtime .ta-tree { max-height: 26dvh; }
 .rd-template-runtime .ta-toolbar { gap: 6px; }
 .rd-template-runtime .ta-toolbar button { min-height: 40px; flex: 1 1 45%; }
 .rd-template-runtime .ta-inline button { min-height: 40px; }
 .rd-template-runtime .ta-two-fields { grid-template-columns: minmax(0,1fr) 108px; gap: 8px; }
 .rd-template-runtime .ta-confirm,.rd-template-runtime  .ta-source-modal { margin: auto; max-height: calc(100dvh - 16px); }
 .rd-template-runtime .ta-history-table { min-width: 470px; }
 .rd-template-runtime .ta-close span:last-child { display: none; }
}

.rd-template-runtime .ta-field-settings{border-top:1px solid var(--line2);padding:14px 0;margin-top:8px}.rd-template-runtime .ta-field-settings>summary{cursor:pointer;font-weight:600;margin-bottom:12px}.rd-template-runtime .ta-field-settings .ta-field:has(input[type=checkbox]){flex-direction:row;align-items:center;justify-content:space-between}.rd-template-runtime .ta-field-settings input[type=checkbox]{width:18px;min-height:18px;height:18px}.rd-template-runtime .ta-formula-fields{display:grid;grid-template-columns:1fr 1fr;gap:6px}.rd-template-runtime .ta-occurrence{border:1px solid var(--line2);padding:12px;border-radius:8px;margin-bottom:12px}.rd-template-runtime .ta-word-marker{display:block;padding:8px 10px;background:var(--surface-2);border-radius:6px;margin-bottom:10px;user-select:all;overflow-wrap:anywhere}.rd-template-runtime .ta-body .ta-meta,.rd-template-runtime .ta-body .ta-toolbar{margin:0}.rd-template-runtime .ta-block-editor .ta-remove-block{font-size:12px}

.rd-template-runtime .ta-overview,.rd-template-runtime .ta-assets{border:1px solid var(--line2);border-radius:10px;padding:12px 16px}.rd-template-runtime .ta-overview>summary,.rd-template-runtime .ta-assets>summary{font-weight:600;cursor:pointer}.rd-template-runtime .ta-overview[open]>summary,.rd-template-runtime .ta-assets[open]>summary{margin-bottom:14px}.rd-template-runtime .ta-more-actions{position:relative;flex:0 0 auto}.rd-template-runtime .ta-more-panel{position:absolute;right:0;top:calc(100% + 6px);z-index:5;width:240px;padding:6px;border:1px solid var(--line2);border-radius:10px;background:var(--surface,#fff);box-shadow:0 8px 24px #19264024}.rd-template-runtime .ta-more-panel[hidden]{display:none!important}.rd-template-runtime .ta-more-panel>button{display:flex;width:100%;justify-content:flex-start;margin:0 0 4px}.rd-template-runtime .ta-toolbar{position:static;padding:0;background:var(--surface)}.rd-template-runtime .ta-assets .ta-word,.rd-template-runtime .ta-assets .ta-config{border:0}.rd-template-runtime .ta-layout{border-top:0;padding-top:0;margin-top:0}.rd-template-runtime .ta-preview[hidden]{display:none!important}
.rd-template-runtime .tp-modal{width:min(1000px,calc(100vw - 32px));max-height:calc(100dvh - 48px);display:flex;flex-direction:column}.rd-template-runtime .tp-modal>.body{overflow:auto;min-height:0}.rd-template-runtime .tp-modal>.head{display:flex;align-items:center;gap:12px}.rd-template-runtime .tp-modal>.head>b{flex:1}.rd-template-runtime .tp-modal>.mbtns{padding:16px 24px;margin:0;flex-shrink:0;border-top:1px solid var(--line,#e3e7f0)}.rd-template-runtime .tp-grid{display:grid;grid-template-columns:minmax(220px,1fr) minmax(0,2fr);gap:24px}.rd-template-runtime .tp-list{display:grid;gap:8px;margin:12px 0;max-height:380px;overflow:auto}.rd-template-runtime .tp-item{color:var(--ink,#29324b);text-align:left;background:transparent;border:1px solid var(--line,#e3e7f0);border-radius:8px;padding:12px;cursor:pointer}.rd-template-runtime .tp-item small{display:block;margin-top:6px;white-space:normal}.rd-template-runtime .tp-pane{min-width:0}.rd-template-runtime .tp-pane input,.rd-template-runtime .tp-pane textarea{width:100%;box-sizing:border-box;margin:6px 0 16px}.rd-template-runtime .tp-text,.rd-template-runtime .tp-comparison pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;line-height:1.5}.rd-template-runtime .tp-comparison{max-height:320px;overflow:auto}@media(max-width:700px){.rd-template-runtime .tp-grid{grid-template-columns:1fr}.rd-template-runtime .tp-list{max-height:160px}}

.rd-template-runtime .tpc-modal{width:min(640px,calc(100vw - 32px));max-height:calc(100dvh - 48px);display:flex;flex-direction:column}.rd-template-runtime .tpc-modal>.head{display:flex;align-items:center;justify-content:space-between;gap:16px}.rd-template-runtime .tpc-modal>.body{overflow:auto;min-height:0}.rd-template-runtime .tpc-modal>.mbtns{padding:16px 24px;margin:0;border-top:1px solid var(--line,#e3e7f0);flex-shrink:0}.rd-template-runtime .tpc-modal input:not([type=checkbox]),.rd-template-runtime .tpc-modal textarea,.rd-template-runtime .tpc-modal select{width:100%;box-sizing:border-box}.rd-template-runtime .tpc-check{display:flex;align-items:center;gap:8px;margin-bottom:16px}.rd-template-runtime .tpc-check input{width:18px;height:18px}

.rd-template-runtime .td-entries{display:grid;gap:8px;margin:12px 0}.rd-template-runtime .td-entry{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:center}.rd-template-runtime .td-entry input{margin:0}.rd-template-runtime .td-entry button{padding:8px}.rd-template-runtime .tp-pane>.primary{margin:12px 0 0 12px}

.rd-template-runtime .tf-field{margin:0 0 16px}.rd-template-runtime .tf-label{display:block;font-weight:600;margin-bottom:6px}.rd-template-runtime .tf-field input,.rd-template-runtime .tf-field select,.rd-template-runtime .tf-field textarea{width:100%}.rd-template-runtime .tf-field select{padding:9px 12px;border:1px solid var(--line2);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit}.rd-template-runtime .tf-computed{white-space:pre-wrap;overflow-wrap:anywhere;display:block;padding:10px 12px;border-radius:8px;background:var(--surface-2)}.rd-template-runtime .tf-hint{display:block;font-size:12px;line-height:1.5;color:var(--muted);margin:5px 0}.rd-template-runtime .tf-group{border:1px solid var(--line2);border-radius:10px;padding:16px;margin:0 0 16px}.rd-template-runtime .tf-group legend{font-weight:600;padding:0 5px}.rd-template-runtime .tf-status{color:var(--muted);font-size:13px}.rd-template-runtime .tf-error,.rd-template-runtime .tf-field-error{color:var(--warn);font-size:13px}.rd-template-runtime .tf-error:empty,.rd-template-runtime .tf-field-error:empty,.rd-template-runtime .tf-status:empty{display:none}.rd-template-runtime .tf-field[hidden],.rd-template-runtime .tf-group[hidden]{display:none!important}.rd-template-runtime .tf-field [aria-invalid=true]{border-color:var(--warn)}

.rd-template-runtime .tf-rows-scroll{overflow:auto}.rd-template-runtime .tf-rows-table{width:100%;border-collapse:collapse}.rd-template-runtime .tf-rows-table th,.rd-template-runtime .tf-rows-table td{padding:6px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line,#e5e9f2)}.rd-template-runtime .tf-rows-table th{font-size:12px}.rd-template-runtime .tf-rows-table input,.rd-template-runtime .tf-rows-table textarea,.rd-template-runtime .tf-rows-table select{min-width:120px;width:100%;box-sizing:border-box}.rd-template-runtime .tf-row-actions{white-space:nowrap}.rd-template-runtime .tf-row-actions button{padding:5px 8px;min-width:28px}.rd-template-runtime .tf-rows>button{margin-top:10px}

.rd-template-runtime .tf-image-preview{display:block;max-width:100%;max-height:240px;object-fit:contain;margin:12px 0;border-radius:8px}.rd-template-runtime .tf-image-preview[hidden]{display:none}

.rd-template-runtime .tf-source-picker{padding:12px;margin-top:12px;border:1px solid var(--line,#e5e9f2);border-radius:8px}.rd-template-runtime .tf-source-list{display:grid;gap:6px;max-height:200px;overflow:auto;margin:8px 0}.rd-template-runtime .tf-source-list button{text-align:left}.rd-template-runtime .tf-source-picker select,.rd-template-runtime .tf-source-picker input{margin:4px 0}.rd-template-runtime .tf-source-picker[hidden]{display:none}

.rd-template-runtime .tf-source-actions{display:flex;gap:8px;flex-wrap:wrap}

.rd-template-runtime .tc-body{display:grid;gap:18px}.rd-template-runtime .tc-section h3{margin:0 0 8px}.rd-template-runtime .tc-scroll{overflow:auto}.rd-template-runtime .tc-table{width:100%;border-collapse:collapse;table-layout:fixed}.rd-template-runtime .tc-table th,.rd-template-runtime .tc-table td{padding:10px 12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);white-space:pre-wrap;overflow-wrap:anywhere}.rd-template-runtime .tc-table th:first-child{width:25%}.rd-template-runtime .tc-before{background:#fff4f3}.rd-template-runtime .tc-after{background:#effaf3}.rd-template-runtime .tc-section pre{white-space:pre-wrap;overflow-wrap:anywhere;padding:8px;margin:3px 0;font:inherit}.rd-template-runtime .tc-word-added{background:#effaf3}.rd-template-runtime .tc-word-removed{background:#fff4f3}.rd-template-runtime .tc-warning{color:var(--warn)}.rd-template-runtime .template-compare-actions{display:flex;gap:12px;align-items:center;margin:12px 0}.rd-template-runtime .template-compare-choice{width:18px;height:18px}

.rd-template-runtime .lfc-pack{margin:16px 0;border-top:1px solid var(--border,#e3e8f2);padding-top:12px}.rd-template-runtime .lfc-pack summary{cursor:pointer;font-weight:600}.rd-template-runtime .lfc-pack input,.rd-template-runtime .lfc-pack select{width:100%;margin:6px 0}.rd-template-runtime .lfc-pack-list{display:grid;gap:6px;max-height:240px;overflow:auto}.rd-template-runtime .lfc-pack-item{display:grid;grid-template-columns:1fr auto;gap:6px;margin:10px 0;padding:8px;background:var(--soft,#f5f7fb);border-radius:8px}.rd-template-runtime .lfc-pack-item span{grid-column:1/-1;overflow-wrap:anywhere}.rd-template-runtime .lfc-pack-item select{min-width:0}.rd-template-runtime .lfc-review{margin-top:24px}.rd-template-runtime .lfc-review>select{max-width:260px;margin:8px 0 16px}.rd-template-runtime .lfc-review-item{padding:16px;border:1px solid var(--border,#e3e8f2);border-radius:12px;margin-bottom:12px}.rd-template-runtime .lfc-review-item blockquote{margin:8px 0;padding:8px 12px;border-left:3px solid #7894ff;background:#f6f8ff;white-space:pre-wrap;overflow-wrap:anywhere}.rd-template-runtime .lfc-review-item textarea{width:100%;box-sizing:border-box;margin:8px 0}.rd-template-runtime .lfc-review-item .hactions{flex-wrap:wrap;gap:8px}.rd-template-runtime .lfc-source-note{padding:12px;background:#f4f7ff;border-radius:8px;margin:12px 0}.rd-template-runtime .lfc-location{font-size:13px;margin-top:6px}.rd-template-runtime .lfc-snapshot{max-height:70vh;overflow:auto;padding:16px}.rd-template-runtime .lfc-snapshot mark{background:#fff0ad;color:inherit;display:block;padding:12px}.rd-template-runtime .lfc-snapshot p{white-space:pre-wrap;overflow-wrap:anywhere}

.rd-template-runtime .trw-scrim{box-sizing:border-box;align-items:center}.rd-template-runtime .trw-modal{width:min(1100px,100%);max-height:100%;box-sizing:border-box;display:flex;flex-direction:column;position:relative}.rd-template-runtime .trw-modal>.head,.rd-template-runtime .trw-modal>.mbtns{flex:none}.rd-template-runtime .trw-modal>.trw-body{flex:1 1 auto;min-height:0;overflow:auto}.rd-template-runtime .trw-body>*{flex-shrink:0}.rd-template-runtime .trw-modal>.mbtns{margin-top:0}
.rd-template-runtime .trw-modal .head{display:flex;align-items:center;justify-content:space-between;gap:16px}.rd-template-runtime .trw-modal h2{font-size:20px;margin:0}.rd-template-runtime .trw-body{overflow:auto;min-height:0}.rd-template-runtime .trw-identity,.rd-template-runtime .trw-note{color:var(--muted,#677383);font-size:13px;line-height:1.5}.rd-template-runtime .trw-identity{overflow-wrap:anywhere}
.rd-template-runtime .trw-tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line,#dce1e8);padding-bottom:8px;margin-bottom:20px}.rd-template-runtime .trw-tab[aria-selected=true]{background:var(--blue,#3266c5);color:white;border-color:transparent}.rd-template-runtime .trw-field{display:flex;flex-direction:column;gap:7px;margin:0 0 16px;font-size:13px}.rd-template-runtime .trw-field>span{font-weight:600}.rd-template-runtime .trw-field input,.rd-template-runtime .trw-field select,.rd-template-runtime .trw-field textarea{width:100%;box-sizing:border-box}.rd-template-runtime .trw-field input[type=checkbox]{width:18px;height:18px}.rd-template-runtime .trw-field:has(input[type=checkbox]){flex-direction:row-reverse;justify-content:flex-end;align-items:center;gap:10px}
.rd-template-runtime .trw-content{min-height:240px}.rd-template-runtime .trw-content textarea,.rd-template-runtime .trw-script-editor{resize:vertical}.rd-template-runtime .trw-script-editor,.rd-template-runtime .trw-source-view,.rd-template-runtime .trw-diff pre{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;line-height:1.6;tab-size:2}.rd-template-runtime .trw-source-view,.rd-template-runtime .trw-diff pre{white-space:pre-wrap;overflow-wrap:anywhere}.rd-template-runtime .trw-bindings{margin-top:24px}.rd-template-runtime .trw-binding-group{border:1px solid var(--line,#dce1e8);border-radius:10px;padding:14px;margin:12px 0}.rd-template-runtime .trw-binding-group>summary{cursor:pointer;font-weight:600}.rd-template-runtime .trw-binding-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;border-bottom:1px solid var(--line,#dce1e8);padding:16px 0;margin-bottom:12px}.rd-template-runtime .trw-binding-row .trw-field{margin:0}.rd-template-runtime .trw-binding-row .trw-field:has(textarea){grid-column:1/-1}.rd-template-runtime .trw-binding-remove{align-self:end}.rd-template-runtime .trw-choice-list{border:1px solid var(--line,#dce1e8);border-radius:8px;padding:14px;margin:12px 0}.rd-template-runtime .trw-choice-list .trw-field{margin-bottom:8px}.rd-template-runtime .trw-warning,.rd-template-runtime .trw-error{color:var(--danger,#a53925);line-height:1.5}.rd-template-runtime .trw-error:empty,.rd-template-runtime .trw-status:empty{display:none}.rd-template-runtime .trw-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;border-top:1px solid var(--line,#dce1e8);padding:16px}.rd-template-runtime .trw-history{width:100%;border-collapse:collapse;font-size:12px}.rd-template-runtime .trw-history th,.rd-template-runtime .trw-history td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line,#dce1e8);vertical-align:top}.rd-template-runtime .trw-history-more{margin:12px 0}.rd-template-runtime .trw-diff-row{padding:12px;border-left:3px solid var(--blue,#3266c5);margin:12px 0;background:var(--bg,#f7f9fc)}.rd-template-runtime .trw-diff-added{border-color:#248653}.rd-template-runtime .trw-diff-removed{border-color:#bb4e42}.rd-template-runtime .trw-diff-sources{display:grid;grid-template-columns:1fr 1fr;gap:16px}.rd-template-runtime .trw-diff-sources pre{min-width:0;border:1px solid var(--line,#dce1e8);padding:12px;border-radius:8px}.rd-template-runtime .trw-discard{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;background:var(--surface,#fff);z-index:1;padding:24px;text-align:center}
@media(max-width:650px){.rd-template-runtime .trw-scrim{padding:0}.rd-template-runtime .trw-modal{width:100%;max-height:100%;border-radius:0}.rd-template-runtime .trw-binding-row{grid-template-columns:1fr}.rd-template-runtime .trw-diff-sources{grid-template-columns:1fr}.rd-template-runtime .trw-history{font-size:11px}.rd-template-runtime .trw-history th,.rd-template-runtime .trw-history td{padding:7px 4px}.rd-template-runtime .trw-actions button{flex:1 1 140px}}

/* Короткая карточка: имя и код, история открывается отдельно. */
.rd-template-runtime .trw-simple [hidden]{display:none!important}.rd-template-runtime .trw-simple{width:min(820px,100%)}.rd-template-runtime .trw-simple .trw-content{min-height:0}.rd-template-runtime .trw-simple .trw-tabs{gap:16px;padding:0}.rd-template-runtime .trw-simple .trw-tab{background:transparent;color:var(--muted);border:0;border-radius:0;padding:10px 0;border-bottom:2px solid transparent}.rd-template-runtime .trw-simple .trw-tab[aria-selected=true]{background:transparent;color:var(--accent);border-bottom-color:var(--accent)}

/* Панель действий здесь — сосед тела окна. Общие отрицательные отступы .mbtns рассчитаны на вложенную панель. */
.rd-template-runtime .trw-modal>.mbtns{position:static;bottom:auto;margin:0;padding:16px 20px;box-shadow:none;width:100%;flex-shrink:0;box-sizing:border-box}
.rd-template-runtime .trw-simple{width:min(720px,100%)}.rd-template-runtime .trw-simple.trw-rename{width:min(460px,100%)}.rd-template-runtime .trw-simple>.trw-body{gap:0;padding:20px}.rd-template-runtime .trw-simple .trw-content{display:flex;flex-direction:column;gap:16px}.rd-template-runtime .trw-simple .trw-field{margin:0}.rd-template-runtime .trw-simple .trw-note{margin:0}.rd-template-runtime .trw-simple .trw-status:not(:empty),.rd-template-runtime .trw-simple .trw-error:not(:empty){margin:12px 0 0}.rd-template-runtime .trw-simple .trw-script-editor{height:clamp(160px,28vh,240px);min-height:160px}.rd-template-runtime .trw-simple .trw-source-view{margin:0}.rd-template-runtime .trw-simple>.head{padding:16px 20px}.rd-template-runtime .trw-simple .trw-close{padding:0 4px;line-height:1}.rd-template-runtime .trw-simple .trw-cancel{min-width:90px}
@media(max-width:650px){.rd-template-runtime .trw-simple{width:100%}.rd-template-runtime .trw-simple>.trw-body{padding:16px}.rd-template-runtime .trw-simple>.head{padding:16px}.rd-template-runtime .trw-simple>.mbtns{padding:12px 16px max(12px,env(safe-area-inset-bottom))}.rd-template-runtime .trw-simple .trw-script-editor{height:180px}}

.rd-template-runtime .trw-library-results{display:flex;flex-direction:column;max-height:150px;overflow:auto;border:1px solid var(--line2);border-radius:8px}.rd-template-runtime .trw-library-results .trw-library-option{text-align:left;border:0;border-radius:0;background:transparent;padding:9px 12px}.rd-template-runtime .trw-library-option[aria-pressed=true]{background:var(--accent-soft);color:var(--accent-ink)}.rd-template-runtime .trw-library-results>.trw-note{padding:10px 12px}

.rd-template-runtime .document-link-graph{overflow:auto;max-height:720px;padding:16px;background:var(--bg,#f7f8fc);border:1px solid var(--line,#e1e5ef);border-radius:12px;margin:12px 0}.rd-template-runtime .document-link-graph h4{text-align:center;margin:12px}.rd-template-runtime .dlg-forest{display:flex;justify-content:center;align-items:flex-start;gap:16px;flex-wrap:wrap;max-width:100%}.rd-template-runtime .dlg-node,.rd-template-runtime .dlg-branch{display:flex;flex-direction:column;align-items:center;gap:8px}.rd-template-runtime .dlg-card{display:flex;flex-direction:column;gap:6px;background:var(--panel,#fff);border:1px solid var(--line,#dfe3ed);border-radius:10px;padding:12px;width:210px;box-sizing:border-box;overflow-wrap:anywhere}.rd-template-runtime .dlg-name{border:0;background:transparent;box-shadow:none;padding:0;font-weight:600;font-size:13px;line-height:1.4;min-height:42px;cursor:pointer}.rd-template-runtime .dlg-card button{white-space:normal;text-align:left}.rd-template-runtime .dlg-card small,.rd-template-runtime .dlg-edge small{display:block;color:var(--muted,#69758a)}.rd-template-runtime .dlg-card button:disabled{opacity:1;color:inherit}.rd-template-runtime .dlg-selected{border:2px solid var(--accent,#4f68ff);box-shadow:0 2px 8px #4f68ff18}.rd-template-runtime .dlg-root{display:flex;justify-content:center;margin:20px 0}.rd-template-runtime .dlg-edge{font-size:12px;max-width:210px;text-align:center;margin:4px 0;padding:10px 5px;border:0}.rd-template-runtime .dlg-edge::after{content:"↓";display:block;color:var(--accent,#4f68ff);font-size:22px}.rd-template-runtime .dlg-edge summary{cursor:pointer}.rd-template-runtime .document-graph-details{margin-top:16px}.rd-template-runtime .cross-document-references td{vertical-align:top}.rd-template-runtime .cross-document-references small{display:block;margin-top:4px;color:var(--muted,#69758a)}

.rd-template-runtime .document-relations{display:flex;flex-direction:column;gap:10px;min-width:0}
.rd-template-runtime .document-relations-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.rd-template-runtime .document-relations-toolbar select{flex:1 1 150px;min-width:0}
.rd-template-runtime .document-relations-toolbar button,.rd-template-runtime .document-relations-actions button{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.rd-template-runtime .document-relations-status{font-size:12px;color:var(--muted)}
.rd-template-runtime .document-relations-note,.rd-template-runtime .document-relations-kind{font-size:12px;line-height:1.45;color:var(--muted)}
.rd-template-runtime .document-relations-note:empty,.rd-template-runtime .document-relations-error:empty{display:none}
.rd-template-runtime .document-relations-error{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:12px;line-height:1.45;color:var(--danger,#b42318)}
.rd-template-runtime .document-relations-list{display:flex;flex-direction:column;gap:8px}
.rd-template-runtime .document-relations-row{display:flex;align-items:flex-start;gap:9px;padding:10px 0;border-bottom:1px solid var(--line2);min-width:0}
.rd-template-runtime .document-relations-detail{flex:1;min-width:0}
.rd-template-runtime .document-relations-document{display:block;padding:0;border:0;background:transparent;color:var(--accent-ink);text-align:left;line-height:1.4;overflow-wrap:anywhere;max-width:100%;font-weight:600}
.rd-template-runtime .document-relations-document:hover{text-decoration:underline}
.rd-template-runtime .document-relations-remove{flex:none;font-size:11px;padding:6px;display:flex;align-items:center;gap:4px;max-width:95px;white-space:normal}
.rd-template-runtime .document-relations-more{align-self:flex-start}
.rd-template-runtime .document-relations-file-icon{width:30px;height:34px;flex:none;font-size:10px;border-radius:7px}
.rd-template-runtime .document-relations-scrim.scrim{z-index:70}
.rd-template-runtime .document-relations-scrim .modal{max-height:calc(100dvh - 40px);max-width:calc(100vw - 24px)}
.rd-template-runtime .document-relations-form{display:flex;flex-direction:column;gap:12px;min-width:0}
.rd-template-runtime .document-relations-search{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rd-template-runtime .document-relations-search select{flex:0 1 160px;min-width:0}
.rd-template-runtime .document-relations-search input{flex:1 1 200px;min-width:0}
.rd-template-runtime .document-relations-targets{display:flex;flex-direction:column;max-height:290px;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--line2);border-radius:10px}
.rd-template-runtime .document-relations-targets:empty{display:none}
.rd-template-runtime .document-relations-target{display:flex;align-items:center;gap:9px;padding:10px 12px;cursor:pointer;border-bottom:1px solid var(--line2)}
.rd-template-runtime .document-relations-target:last-child{border-bottom:0}
.rd-template-runtime .document-relations-target:hover{background:var(--accent-soft)}
.rd-template-runtime .document-relations-target:has(input:checked){background:var(--accent-soft)}
.rd-template-runtime .document-relations-target input{flex:none;margin:0;width:auto}
.rd-template-runtime .document-relations-target-text{display:flex;flex:1;min-width:0;flex-direction:column;gap:3px}
.rd-template-runtime .document-relations-target-text>span{overflow-wrap:anywhere;font-size:13px;line-height:1.4}
.rd-template-runtime .document-relations-target-text small{color:var(--muted);font-size:11px;line-height:1.35}
.rd-template-runtime .document-relations-type{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px}
.rd-template-runtime .document-relations-type select{max-width:100%}
.rd-template-runtime .document-relations-selection{font-size:12px;line-height:1.4;overflow-wrap:anywhere}
.rd-template-runtime .document-relations-actions{display:flex;justify-content:flex-end}
@media(max-width:600px){
 .rd-template-runtime .document-relations-toolbar{align-items:stretch}
 .rd-template-runtime .document-relations-toolbar select{flex-basis:100%}
 .rd-template-runtime .document-relations-search select{flex:1 1 100%}
 .rd-template-runtime .document-relations-search input{flex-basis:150px}
 .rd-template-runtime .document-relations-scrim.scrim{padding:12px}
 .rd-template-runtime .document-relations-scrim .modal{max-height:calc(100dvh - 24px)}
 .rd-template-runtime .document-relations-targets{max-height:240px}
 .rd-template-runtime .document-relations-remove{max-width:76px;font-size:10px}
}

/* Сравнение версий правил использует модальное окно, кнопки и палитру Диска. */
.rd-template-runtime .rule-config-compare-scrim{z-index:70}
.rd-template-runtime .rule-config-compare-modal{width:min(1050px,100%);font-size:14.5px}
.rd-template-runtime .rule-config-compare-name{margin:0;font-weight:600;overflow-wrap:anywhere}
.rd-template-runtime .rule-config-compare-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.rd-template-runtime .rule-config-compare-form>label{display:grid;gap:6px;min-width:0;font-weight:600}
.rd-template-runtime .rule-config-compare-form select{width:100%;min-width:0;font:inherit;font-weight:400;padding:9px 12px;border:1px solid var(--line2);border-radius:10px;background:var(--surface);color:var(--ink)}
.rd-template-runtime .rule-config-compare-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px}
.rd-template-runtime .rule-config-compare-count,.rd-template-runtime .rule-config-compare-status,.rd-template-runtime .rule-config-compare-error{margin:0}
.rd-template-runtime .rule-config-compare-count:empty,.rd-template-runtime .rule-config-compare-status:empty,.rd-template-runtime .rule-config-compare-error:empty,.rd-template-runtime .rule-config-compare-result:empty{display:none}
.rd-template-runtime .rule-config-compare-error{color:var(--warn);overflow-wrap:anywhere}
.rd-template-runtime .rule-config-compare-result{display:flex;flex-direction:column;gap:18px;min-width:0}
.rd-template-runtime .rule-config-compare-summary{padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}
.rd-template-runtime .rule-config-compare-summary p{margin:6px 0 0}
.rd-template-runtime .rule-config-compare-rules,.rd-template-runtime .rule-config-compare-selectors,.rd-template-runtime .rule-config-compare-selector-list{display:flex;flex-direction:column;gap:12px;min-width:0}
.rd-template-runtime .rule-config-compare-result h2{font-size:16px;margin:0}
.rd-template-runtime .rule-config-compare-card{padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);min-width:0}
.rd-template-runtime .rule-config-compare-card-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.rd-template-runtime .rule-config-compare-card h3{font-size:14.5px;margin:0;overflow-wrap:anywhere}
.rd-template-runtime .rule-config-compare-card p{margin:8px 0;overflow-wrap:anywhere}
.rd-template-runtime .rule-config-compare-fields{display:flex;flex-direction:column;gap:12px}
.rd-template-runtime .rule-config-compare-field{padding:12px 0;border-bottom:1px solid var(--line)}
.rd-template-runtime .rule-config-compare-field:last-child{border-bottom:0}
.rd-template-runtime .rule-config-compare-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-top:8px}
.rd-template-runtime .rule-config-compare-value{min-width:0}
.rd-template-runtime .rule-config-compare-value h4{font-size:12.5px;color:var(--muted);margin:0 0 6px}
.rd-template-runtime .rule-config-compare-value pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;overflow:auto;max-height:280px;padding:10px;background:var(--surface-2);border-radius:8px;font:12.5px/1.5 var(--mono)}
.rd-template-runtime .rule-config-compare-string{white-space:pre-wrap}
.rd-template-runtime .rule-config-compare-details>summary{font-size:13px;color:var(--muted);cursor:pointer;overflow-wrap:anywhere}
.rd-template-runtime .rule-config-compare-details[open]>summary{margin-bottom:10px}
.rd-template-runtime .rule-config-compare-technical{display:flex;flex-direction:column;gap:6px}
.rd-template-runtime .rule-config-compare-technical code{font:12px var(--mono);overflow-wrap:anywhere}
.rd-template-runtime .rule-config-compare-pager{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}
.rd-template-runtime .rule-config-compare-modal [hidden]{display:none}
@media(max-width:600px){
 .rd-template-runtime .rule-config-compare-scrim{padding:12px 8px}
 .rd-template-runtime .rule-config-compare-modal .head{padding:12px 14px}
 .rd-template-runtime .rule-config-compare-modal .body{padding:14px}
 .rd-template-runtime .rule-config-compare-form,.rd-template-runtime .rule-config-compare-columns{grid-template-columns:minmax(0,1fr)}
 .rd-template-runtime .rule-config-compare-actions button{padding:8px 11px}
}

/* Сравнение содержимого использует компоненты и цветовые токены Диска. */
.rd-template-runtime .content-compare-scrim{z-index:70}
.rd-template-runtime .content-compare-modal{width:min(1080px,100%);font-size:14.5px}
.rd-template-runtime .content-compare-modal .head .bi{display:inline-flex;color:var(--c-doc)}
.rd-template-runtime .content-compare-name{margin:0;font-weight:600;overflow-wrap:anywhere}
.rd-template-runtime .content-compare-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.rd-template-runtime .content-compare-form>label{display:grid;gap:6px;min-width:0;font-weight:600}
.rd-template-runtime .content-compare-form select{width:100%;min-width:0;font:inherit;font-weight:400;padding:9px 12px;color:var(--ink);background:var(--surface);border:1px solid var(--line2);border-radius:10px}
.rd-template-runtime .content-compare-actions{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}
.rd-template-runtime .content-compare-hint,.rd-template-runtime .content-compare-status,.rd-template-runtime .content-compare-error{margin:0}
.rd-template-runtime .content-compare-hint:empty,.rd-template-runtime .content-compare-status:empty,.rd-template-runtime .content-compare-error:empty,.rd-template-runtime .content-compare-result:empty{display:none}
.rd-template-runtime .content-compare-error{color:var(--warn);overflow-wrap:anywhere}
.rd-template-runtime .content-compare-result,.rd-template-runtime .content-compare-report{display:flex;flex-direction:column;gap:14px;min-width:0}
.rd-template-runtime .content-compare-notice{padding:12px 14px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--line)}
.rd-template-runtime .content-compare-notice.is-partial{border-left:3px solid var(--star)}
.rd-template-runtime .content-compare-notice p{margin:6px 0 0}
.rd-template-runtime .content-compare-scope,.rd-template-runtime .content-compare-selection{margin:0;font-size:13px}
.rd-template-runtime .content-compare-details>summary{cursor:pointer;color:var(--muted);font-size:13px;overflow-wrap:anywhere}
.rd-template-runtime .content-compare-details[open]>summary{margin-bottom:10px}
.rd-template-runtime .content-compare-summary{overflow-x:auto;max-width:100%}
.rd-template-runtime .content-compare-summary table{width:100%;border-collapse:collapse;font-size:13px}
.rd-template-runtime .content-compare-summary th,.rd-template-runtime .content-compare-summary td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
.rd-template-runtime .content-compare-summary th:first-child{text-align:left}
.rd-template-runtime .content-compare-summary thead{color:var(--muted)}
.rd-template-runtime .content-compare-summary p{font-size:12.5px;margin:10px 0 0}
.rd-template-runtime .content-compare-tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);padding-bottom:8px;flex-wrap:wrap}
.rd-template-runtime .content-compare-tabs button[aria-selected=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}
.rd-template-runtime .content-compare-changes{display:flex;flex-direction:column;gap:12px;min-width:0;scroll-margin:12px}
.rd-template-runtime .content-compare-change{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:14px;box-shadow:var(--shadow-sm);min-width:0}
.rd-template-runtime .content-compare-change-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.rd-template-runtime .content-compare-change-head h3{font-size:14.5px;margin:0}
.rd-template-runtime .content-compare-change-head>.muted{font-size:12.5px}
.rd-template-runtime .content-compare-operation{font-size:12px}
.rd-template-runtime .content-compare-change[data-operation=added] .content-compare-operation{color:var(--ok)}
.rd-template-runtime .content-compare-change[data-operation=removed] .content-compare-operation{color:var(--warn)}
.rd-template-runtime .content-compare-change[data-operation=modified] .content-compare-operation{color:var(--accent-ink)}
.rd-template-runtime .content-compare-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin-bottom:10px}
.rd-template-runtime .content-compare-fragment{min-width:0}
.rd-template-runtime .content-compare-fragment h4{font-size:12.5px;color:var(--muted);margin:0 0 6px;font-weight:600}
.rd-template-runtime .content-compare-fragment p{font-size:13px;margin:0}
.rd-template-runtime .content-compare-text{white-space:pre-wrap;overflow-wrap:anywhere;max-height:280px;overflow:auto;margin:0;font:inherit;background:var(--surface-2);border-radius:8px;padding:10px}
.rd-template-runtime .content-compare-attributes{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 10px;font-size:12.5px;margin:8px 0 0}
.rd-template-runtime .content-compare-attributes dt{color:var(--muted)}
.rd-template-runtime .content-compare-attributes dd{margin:0;overflow-wrap:anywhere}
.rd-template-runtime .content-compare-locations,.rd-template-runtime .content-compare-locations>div{display:flex;flex-direction:column;gap:6px;min-width:0}
.rd-template-runtime .content-compare-locations code,.rd-template-runtime .content-compare-reasons code{display:block;white-space:pre-wrap;overflow-wrap:anywhere;font:12px var(--mono);color:var(--muted)}
.rd-template-runtime .content-compare-reasons{display:flex;flex-direction:column;gap:10px;max-height:280px;overflow:auto}
.rd-template-runtime .content-compare-reason{font-size:13px}
.rd-template-runtime .content-compare-reason summary{font-size:12px;color:var(--muted);cursor:pointer}
.rd-template-runtime .content-compare-pager{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}
.rd-template-runtime .content-compare-pager[hidden]{display:none}
.rd-template-runtime .content-compare-modal [hidden]{display:none}
@media(max-width:600px){
 .rd-template-runtime .content-compare-scrim{padding:12px 8px}
 .rd-template-runtime .content-compare-modal .head{padding:12px 14px}
 .rd-template-runtime .content-compare-modal .body{padding:14px}
 .rd-template-runtime .content-compare-form,.rd-template-runtime .content-compare-columns{grid-template-columns:minmax(0,1fr)}
 .rd-template-runtime .content-compare-actions button{padding:8px 11px}
 .rd-template-runtime .content-compare-change{padding:12px}
 .rd-template-runtime .content-compare-tabs button{font-size:13px;padding:8px 10px}
 .rd-template-runtime .content-compare-attributes{grid-template-columns:minmax(0,1fr)}
}
