/* Contracts list + detail restyle (preview). Layers on styles.css + upload-preview css (pills). */
.cx{--b:#E3E6EB;--ink:#1B1F24;--mut:#5F6875;--blue:var(--primary-color,#0082ff);--soft:#E8F3FF}
.cx .page{max-width:1240px;margin:40px auto 64px;padding:0 32px;text-align:left}
.cx h1{font-size:30px;font-weight:600;color:var(--ink);margin:0 0 4px;letter-spacing:-.01em}
.cx .sub{font-size:15px;color:var(--mut);margin:0 0 16px}
.cx .card{background:#fff;border:1px solid var(--b);border-radius:16px;box-shadow:0 1px 2px rgba(17,24,39,.04),0 8px 24px rgba(17,24,39,.06);padding:20px}
.cx .hdr,.cx .row{display:grid;grid-template-columns:minmax(240px,1.6fr) 120px 72px minmax(280px,2.6fr);gap:16px;align-items:center;padding:8px 16px}
.cx .hdr{background:#E9ECF0;border-radius:8px;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#4B5563}
.cx .hdr button{all:unset;cursor:pointer;display:inline-flex;gap:4px;align-items:center}
.cx .hdr button:hover{color:var(--blue)}.cx .hdr button[aria-sort] {color:var(--blue)}
.cx .row{position:relative;min-height:54px;border-radius:8px;cursor:pointer}
.cx .row:nth-child(even){background:#F4F5F7}.cx .row:hover{background:var(--soft)}
.cx .party{font-size:14px;font-weight:700;color:var(--ink);text-decoration:none}
.cx .party::after{content:"";position:absolute;inset:0}
.cx .type{font-size:13px;color:var(--mut)}
.cx .ell{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.cx .flag{font-size:11px;font-weight:600;color:#7A4A00;background:#FFF4DF;padding:2px 8px;border-radius:999px;margin-left:8px;white-space:nowrap}
.cx .pdf{position:relative;z-index:1;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;border:1px solid #D5D9E0;border-radius:9px;color:var(--blue);font-size:13px;font-weight:600;text-decoration:none;background:#fff}
.cx .pdf:hover{background:var(--soft)}
.cx .sum{font-size:14px;color:#374151}.cx .eff{font-size:14px;font-weight:500}
.cx .foot{font-size:13px;color:var(--mut);margin:12px 4px 0}
.up2 .division-button[aria-pressed]:first-child::before{background:#C4CAD3}.up2 .division-button.selected:first-child::before{background:var(--up2-blue)}
/* detail modal */
.mback{position:fixed;inset:0;background:rgba(17,24,39,.45);display:flex;align-items:center;justify-content:center;z-index:50}
.mback[hidden]{display:none}
.modal2{background:#fff;border-radius:16px;width:min(920px,92vw);max-height:88vh;overflow:auto;padding:28px 32px;font-family:var(--primary-font);text-align:left;box-shadow:0 20px 60px rgba(0,0,0,.25)}
.modal2 .top{display:flex;justify-content:space-between;gap:16px}
.modal2 h2{margin:0;font-size:22px;font-weight:700}.modal2 .x{all:unset;cursor:pointer;font-size:22px;color:var(--mut)}
.modal2 .facts{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0}
.modal2 .facts div{background:#F6F7F9;border-radius:10px;padding:10px 12px;font-size:14px}
.modal2 .facts b{display:block;font-size:12px;color:var(--mut);font-weight:600;margin-bottom:2px}
.modal2 .tabs2{display:flex;gap:4px;border-bottom:1px solid var(--b);margin:8px 0 12px}
.modal2 .tabs2 button{all:unset;cursor:pointer;padding:10px 14px;font-size:14px;font-weight:600;color:var(--mut);border-bottom:2px solid transparent}
.modal2 .tabs2 button.on{color:var(--blue);border-color:var(--blue)}
.modal2 table{width:100%;border-collapse:collapse;font-size:14px}.modal2 td{padding:8px;border-bottom:1px solid #EEF0F3}

/* v3: fit viewport; only rows scroll */
body:has(.cx){overflow:hidden}
.cx .page{height:calc(100vh - var(--cx-top,0px));box-sizing:border-box;margin:0 auto;padding:32px 32px 24px;display:flex;flex-direction:column}
.cx .page>*{flex:none}
.cx .note{margin:0 0 14px}.cx .sub{margin:0 0 6px}
.cx .up2-division{margin:0 0 14px}
.cx .card{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
.cx .hdr{flex:none}
.cx #rows{flex:1 1 auto;min-height:0;overflow-y:auto;margin-top:4px}
.main-content.cx{padding-top:0;padding-bottom:0}
.cx .sumh{display:flex;justify-content:space-between;align-items:center}.cx .hint{text-transform:none;letter-spacing:0;font-weight:400;font-size:12px;color:#9CA3AF}.cx .sub{margin-bottom:14px}
/* v5: balanced spacing around PDF — Effective col sized to its widest date, PDF col to the button, equal 20px gaps */
.cx .hdr,.cx .row{grid-template-columns:minmax(240px,1.6fr) 88px 62px minmax(280px,2.6fr);column-gap:20px}
.cx .row>div:nth-child(3),.cx .hdr>span:first-of-type{justify-self:center}
.cx .row .eff{text-align:right}.cx .hdr [data-sort=eff]{justify-self:end}
/* v6: doubled gap around PDF (42px each side) */
.cx .hdr,.cx .row{grid-template-columns:minmax(240px,1.6fr) 88px 104px minmax(280px,2.6fr)}
/* 20261022-cp: long counterparty/type values truncate inside their own column; no column may overlap another */
.cx .hdr>*,.cx .row>*{min-width:0}
.cx .row>div:first-child{overflow:hidden}
.cx .row>div:first-child>div{min-width:0;max-width:100%}
.cx .party.ell,.cx .type.ell{display:block;min-width:0;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.cx .row>div:first-child>div>.party.ell{flex:0 1 auto}
.cx .row .flag{flex:none}
/* 20261022-fix1: PDF button identical to Notices: text only, 36px tall, 9px side padding; View column tightened to fit */
.cx .pdf{height:36px;min-height:36px;padding:0 9px;gap:0;line-height:1;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;vertical-align:middle;border:1px solid #D5D9E0;border-radius:9px;background:#fff;color:var(--blue);font-family:'Open Sans','Segoe UI',system-ui,sans-serif;font-size:13px;font-weight:600;text-decoration:none}
.cx .pdf:hover{background:var(--soft);border-color:#A9C6EE}
.cx .hdr,.cx .row{grid-template-columns:minmax(240px,1.6fr) 88px 46px minmax(280px,2.6fr)}
