body.replica-locked .main-container { display: none; }
#replica-bar { position: sticky; top: 0; z-index: 1000; background: #102a1a; color: #f5efe1; padding: 8px 16px;
  font: 14px/1.4 'Inter', system-ui, sans-serif; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
#replica-bar .tag { background: #c49a45; color: #17140f; border-radius: 10px; padding: 1px 9px; font-size: 12px; font-weight: 700; }
#replica-bar input { padding: 5px 8px; border-radius: 6px; border: 0; min-width: 220px; font-size: 14px; }
#replica-bar button { padding: 5px 12px; border-radius: 6px; border: 0; background: #c49a45; color: #17140f; font-weight: 600; cursor: pointer; }
#replica-bar .viewing { margin-left: auto; }
#replica-bar .msg { color: #f2e6c8; }
#replica-picker { width: 100%; max-height: 260px; overflow: auto; background: #fffdf8; color: #17140f; border-radius: 8px; }
#replica-picker div { padding: 6px 10px; cursor: pointer; border-bottom: 1px solid #ece5d4; }
#replica-picker div:hover { background: #f2e6c8; }
/* Sharing from Lens (migration 032): added to the smart card and the Data Summary table, on Lens's own tokens. */
/* Improvement 3 (lens_improvements.py, Hadi 5 Oct 2026): the smart card fits the screen and scrolls inside. */
#smartCardContent { max-height: 90dvh; overflow-y: auto; box-sizing: border-box; }
.ls-card { margin: 14px 0 6px; padding: 12px 14px; border: 1px solid var(--stone-line); border-radius: var(--radius-sm);
  background: var(--paper); color: var(--ink); font: 13.5px/1.5 var(--font-body); text-align: left; position: relative; z-index: 2; }
.ls-title { font: 600 11px var(--font-mono); letter-spacing: 1px; text-transform: uppercase; color: var(--brass-deep); margin-bottom: 6px; }
.ls-list { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 4px; }
.ls-list li { overflow-wrap: anywhere; }
.ls-compact { margin: 4px 0 0; font: 12px/1.4 var(--font-body); color: var(--ink-soft); white-space: normal; min-width: 180px; }
.ls-ok { color: var(--forest); font-weight: 600; }
.ls-wait { color: var(--amber); font-weight: 600; }
.ls-no { color: var(--stone); font-weight: 600; }
.ls-note { color: var(--stone); font-size: 12.5px; margin: 6px 0; }
.ls-link { background: none; border: 0; padding: 0 2px; color: var(--brass-deep); text-decoration: underline; cursor: pointer; font: inherit; }
.ls-btn { padding: 7px 14px; border: 0; border-radius: var(--radius-sm); background: var(--forest); color: #fffdf8; cursor: pointer;
  font: 600 13.5px var(--font-body); }
.ls-btn:disabled { opacity: .45; cursor: default; }
.ls-btn.ls-secondary { background: var(--paper); color: var(--ink); border: 1px solid var(--stone-line); }
.summary-toolbar .ls-btn { margin-left: 6px; }
.ls-pick { margin-right: 8px; vertical-align: middle; accent-color: var(--forest); width: 16px; height: 16px; }
.ls-cell { font-weight: 400; }
.ls-overlay { position: fixed; inset: 0; z-index: 13000; background: rgba(16, 42, 26, .55); display: flex; align-items: center; justify-content: center; padding: 16px; }
.ls-dialog { width: min(520px, 100%); max-height: 92dvh; overflow-y: auto; background: var(--paper); color: var(--ink); border-radius: var(--radius-md);
  border: 1px solid var(--stone-line); box-shadow: var(--shadow-lift); padding: 20px 22px; font: 14px/1.5 var(--font-body); }
.ls-dialog h3 { margin: 0 0 8px; font: 600 18px var(--font-display); color: var(--heading); }
.ls-dialog fieldset { border: 1px solid var(--stone-line); border-radius: var(--radius-sm); padding: 8px 12px; margin: 10px 0; display: grid; gap: 6px; }
.ls-dialog legend { font: 500 12px var(--font-mono); color: var(--stone); padding: 0 4px; }
.ls-dialog label { display: flex; gap: 8px; align-items: center; cursor: pointer; }
.ls-dialog input[type=checkbox] { accent-color: var(--forest); width: 16px; height: 16px; }
.ls-ids { font: 12.5px var(--font-mono); color: var(--ink-soft); overflow-wrap: anywhere; margin: 0 0 6px; }
.ls-consent { padding: 8px 10px; border-left: 3px solid var(--brass); background: var(--brass-pale); border-radius: 4px; font-size: 13px; }
.ls-consent:empty { display: none; }
.ls-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 12px; }
#lsToast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%) translateY(20px); opacity: 0; z-index: 14000; pointer-events: none;
  background: var(--forest-deep); color: #fffdf8; padding: 10px 16px; border-radius: var(--radius-sm); font: 14px var(--font-body); transition: all .25s ease; max-width: 92vw; }
#lsToast.show { opacity: 1; transform: translateX(-50%) translateY(0); }

/* Second sign-in step for Fusinite staff (authenticator code). */
.replica-second-step { max-width: 460px; margin: 40px auto; padding: 22px 24px; background: #fffdf8; color: #17140f;
  border: 1px solid #e1d8c2; border-radius: 14px; font-family: Inter, system-ui, sans-serif; position: relative; z-index: 10000; }
.replica-second-step input { display: block; width: 100%; margin: 6px 0 12px; padding: 10px; font-size: 18px; letter-spacing: 3px; }
#replica-bar .rb-switch { margin-left: auto; color: #f2e6c8; border: 1px dashed #c49a45; border-radius: 6px; padding: 4px 10px; text-decoration: none; font-weight: 600; }
.ls-history { margin-top: 6px; font-size: 12.5px; color: var(--stone); }
.ls-history summary { cursor: pointer; color: var(--brass-deep); text-decoration: underline; width: fit-content; }
.ls-history ul { margin-top: 6px; }
#replica-bar .rb-link { color: #f2e6c8; }
/* Data Summary "Shared with" column and quick filter (Hadi, 5 Oct 2026) */
.ls-col { min-width: 190px; font-size: 12.5px; }
.ls-col .ls-compact { margin: 0; min-width: 0; }
.ls-none { color: var(--stone); font-size: 12.5px; }
.ls-quick { display: inline-flex; border: 1px solid var(--stone-line); border-radius: 999px; overflow: hidden; margin-right: 6px; }
.ls-quick button { border: 0; background: var(--paper); color: var(--ink); padding: 6px 12px; font: 600 12.5px var(--font-body); cursor: pointer; }
.ls-quick button + button { border-left: 1px solid var(--stone-line); }
.ls-quick button.on { background: var(--forest); color: #fffdf8; }
.ls-filter { padding: 8px 10px; display: grid; gap: 6px; min-width: 200px; font: 13px var(--font-body); color: var(--ink); }
.ls-filter label { display: flex; gap: 8px; align-items: center; cursor: pointer; }
.ls-filter-h { font: 600 11px var(--font-mono); letter-spacing: .06em; text-transform: uppercase; color: var(--stone); margin-top: 4px; }
#replica-bar .rb-bell { display: inline-flex; margin-left: auto; }
#replica-bar .rb-bell + #rb-out, #replica-bar .rb-switch + .rb-bell { margin-left: 0; }
/* The bar's own button style must not reach inside the bell. */
#replica-bar .nb-btn { background: #fffdf8; color: #102a1a; padding: 5px 8px; }
#replica-bar .nb-panel button { background: none; color: inherit; font-weight: inherit; border-radius: 0; padding: 0; }
#replica-bar .nb-panel .nb-list button { padding: 10px 12px 10px 22px; }
#replica-bar .nb-panel .nb-link { color: var(--brass-deep); text-decoration: underline; font-size: 13px; }
#replica-bar .nb-panel b { font-weight: 700; }
#replica-bar .nb-panel select { min-width: 0; padding: 5px 6px; }
/* Standards that can't be chosen (047): greyed out with the reason. */
.ls-greyed { opacity: .6; cursor: not-allowed; }
.ls-greyed span { font-size: 12.5px; color: var(--stone); }
.ls-unavail { color: var(--stone); }
/* Share results (Hadi, 7 Oct 2026): what was shared and why the rest was not. */
.ls-result-list ul { margin: 6px 0 0; padding-left: 18px; }
.ls-result-list li { margin: 2px 0; }
.ls-error { color: var(--clay, #a3512f); font-weight: 600; }
