/* Hammond: rules that replace the mockup's inline style="" attributes, which
   the Content-Security-Policy (style-src 'self') blocks, plus the few rules
   production needs beyond the mockup. hammond.css is the approved mockup
   stylesheet and stays unchanged. */
.login-card h1 { font-size: 1.125rem; }
.main-inner.w-1100 { max-width: 1100px; }
.main-inner.w-1200 { max-width: 1200px; }
.w-640 { max-width: 640px; }
.w-full { width: 100%; }
.minw-200 { min-width: 200px; }
.no-max { max-height: none; }
.accent-text { color: var(--accent); }
.facet-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }
.group-more { margin-left: auto; font-weight: 500; }
.col-menu { width: 340px; padding: var(--s3); }
.sticky-foot { position: sticky; bottom: 0; background: var(--bg); padding: var(--s3) 0 calc(var(--s3) + env(safe-area-inset-bottom)); }

/* Progress bar widths (style="width:NN%" in the mockup), 5% steps. JS sets
   exact widths through the CSSOM, which the CSP allows. */
.pw-0 { width: 0%; }
.pw-5 { width: 5%; }
.pw-10 { width: 10%; }
.pw-15 { width: 15%; }
.pw-20 { width: 20%; }
.pw-25 { width: 25%; }
.pw-30 { width: 30%; }
.pw-35 { width: 35%; }
.pw-40 { width: 40%; }
.pw-45 { width: 45%; }
.pw-50 { width: 50%; }
.pw-55 { width: 55%; }
.pw-60 { width: 60%; }
.pw-65 { width: 65%; }
.pw-70 { width: 70%; }
.pw-75 { width: 75%; }
.pw-80 { width: 80%; }
.pw-85 { width: 85%; }
.pw-90 { width: 90%; }
.pw-95 { width: 95%; }
.pw-100 { width: 100%; }

/* Production-only. */
.js .no-js-only { display: none; }
iframe.pdf-frame { display: block; background: #fff; }
.dz-input { margin-top: var(--s2); max-width: 100%; }
.cite-note { margin-top: var(--s3); }
.upload-row[data-state="error"] .progress > span { background: var(--danger); }

/* Plan 08: register inline editor and stack list in the document details. */
.reg-edit { display: flex; flex-direction: column; gap: var(--s2); width: 100%; }
.reg-edit .textarea { min-height: 4.5rem; }
.stack-list li[aria-current="true"] b { font-weight: 600; }

/* Plan 09: search, tags, quick results, bulk tagging. */
a.tab { text-decoration: none; }
.tab[aria-current="page"] { color: var(--fg); border-bottom-color: var(--accent); }
.result-group .load-more { margin-top: var(--s1); }
.chat-tags { gap: 4px; }
a.chip, .tag-editor .chip a.t { color: inherit; text-decoration: none; }
a.chip:hover, .tag-editor .chip a.t:hover { text-decoration: underline; }
.gs-quick { position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 80; max-height: min(70vh, 520px); overflow-y: auto; padding: var(--s1);
  background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-lg); }
.gq-head { display: flex; align-items: center; gap: 6px; padding: 6px var(--s2) 2px; font-size: var(--fs-xs); font-weight: 600; color: var(--fg-muted); }
.gq-head .n { margin-left: auto; font-weight: 500; }
.gq-item { display: grid; gap: 2px; padding: 6px var(--s2); border-radius: var(--radius-sm); color: var(--fg); text-decoration: none; }
.gq-item:hover, .gq-item:focus-visible { background: var(--surface-2); color: var(--fg); }
.gq-item .t, .gq-item .s { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gq-item .t { font-size: .875rem; font-weight: 550; }
.gq-item .s { font-size: var(--fs-xs); color: var(--fg-muted); }
.gq-item mark { background: var(--mark); color: var(--mark-fg); }
.gq-all, .gq-empty { display: block; padding: var(--s2); font-size: var(--fs-sm); }
.gq-all { border-top: 1px solid var(--border); margin-top: var(--s1); }
.gq-empty { color: var(--fg-muted); }
@keyframes hammond-flash { from { background: color-mix(in srgb, var(--mark) 60%, transparent); } to { background: transparent; } }
.msg.flash-target { animation: hammond-flash 2.4s ease-out; border-radius: var(--radius); }
.bulk-bar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2); padding: var(--s2) var(--s3); margin-bottom: var(--s3);
  border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-2); }
.js .bulk-bar:not(.has-sel) { display: none; }
.bulk-bar .input { width: auto; flex: 1 1 200px; }
.table th.sel, .table td.sel { width: 1%; padding-right: 0; }
.w-auto { width: auto; }
.row > .input.grow, .row > .select.grow { width: auto; flex: 1 1 200px; }
.global-search .gs-quick .icon { position: static; color: inherit; }

/* Plan 10: DD screens. */
.inline-form { display: inline; }
.dd-disclaimer { display: flex; gap: var(--s2); align-items: flex-start; margin-top: var(--s3); }
.dd-disclaimer .icon { flex: none; margin-top: 2px; }
.hit-edit .acc-head .icon:first-child { margin-right: var(--s1); }
.hit-detail [data-part="page"] { margin-top: var(--s3); }
/* Absolutely positioned descendants (.sr-only in wide tables) must stay
   inside the table's own scroll box instead of widening the page. */
.table-wrap { position: relative; }

/* Plan 11: DD schedules, exports and forms. */
.sched-bar { align-items: flex-start; }
.sched-bar .btn { flex: none; }
.sched-section { margin: var(--s4) 0 var(--s2); font-size: .95rem; display: flex; align-items: center; gap: var(--s2); }
.sched-table tr.group-row td { font-weight: 600; background: var(--surface-2); }
.sched-pager { margin-top: var(--s3); }
.sched-pager .small { margin-right: auto; }
.export-status:empty { display: none; }
.export-status .alert { margin-top: var(--s4); margin-bottom: 0; }
.export-status .alert .inline-form, .export-status .alert .btn { flex: none; }
.form-list { list-style: none; margin: var(--s2) 0; padding: 0; display: grid; gap: 4px; }
#t-sch-panel .subtabs .tab { max-width: 100%; height: auto; white-space: normal; text-align: left; padding-top: 4px; padding-bottom: 4px; }
/* Plan 13: phone tap target for the vault selection checkbox (WCAG 2.5.8, 24 px). */
@media (max-width: 767.98px) { .table td.sel input[type=checkbox], .table th.sel input[type=checkbox] { width: 24px; height: 24px; margin: 8px 0; } }
/* Plan 13: phone tap targets in the document details (disclosure summaries, counterparty link). */
@media (max-width: 767.98px) { details > summary.small { min-height: var(--tap); display: flex; align-items: center; } dd .val > a[href^="/vault?cp="] { display: inline-flex; align-items: center; min-height: var(--tap); } }
