/* Contract notes page (js/contract.js) - scoped under .cnr */
.cnr{--cn-rule:var(--line,#d8dfdb);--cn-muted:var(--ink-soft,#5b6a68);--cn-teal:var(--accent-d,#0b5c49);--cn-teal-soft:var(--accent-soft,#e2f5ec);--cn-saffron:#a8620c;--cn-saffron-soft:#fbf0e0;--cn-red:#b3261e;--cn-red-soft:#fbe9e7;--cn-green:#1d7a3e;--cn-green-soft:#e5f3e9;font-size:13px}
.cnr .cnr-drop{border:2px dashed #b9c4bf;border-radius:12px;background:#fff;padding:16px;text-align:center;cursor:pointer;color:var(--cn-muted)}
.cnr .cnr-drop.hot{border-color:var(--cn-teal);background:var(--cn-teal-soft)}.cnr .cnr-drop b{color:var(--ink,#182420)}
.cnr .cnr-status{margin:6px 2px;color:var(--cn-muted);font-size:12.5px;min-height:18px}
.cnr .cnr-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:4px 0 10px}
.cnr .tile{background:#fff;border:1px solid var(--cn-rule);border-radius:9px;padding:8px 11px}
.cnr .tl{font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--cn-muted)}.cnr .tv{font:700 17px Consolas,ui-monospace,monospace}.cnr .ts{font-size:11.5px;color:var(--cn-muted)}
.cnr .cnr-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.cnr .cnr-tabs button{background:#fff;color:var(--cn-teal);border:1px solid var(--cn-teal);border-radius:7px;padding:5px 11px;font:600 12.5px inherit;cursor:pointer;width:auto}
.cnr .cnr-tabs button.on{background:var(--cn-teal);color:#fff}
.cnr .card{background:#fff;border:1px solid var(--cn-rule);border-radius:10px;padding:12px 14px;margin-bottom:12px;overflow-x:auto;box-shadow:none}
.cnr .card h3{margin:0 0 8px;font:600 15px "Spectral",Georgia,serif}
.cnr table{width:100%;border-collapse:collapse;font-size:12.5px}
.cnr th{background:#f7f9f7;color:var(--cn-muted);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;text-align:left;padding:6px 8px;border-bottom:1px solid var(--cn-rule);white-space:nowrap}
.cnr td{padding:5px 8px;border-bottom:1px solid #e8ede9;vertical-align:top}
.cnr .num{text-align:right;font-family:Consolas,ui-monospace,monospace;white-space:nowrap}
.cnr tr.tot td{font-weight:700;border-top:1px solid #b9c4bf;background:#fafbf9}
.cnr .muted{color:var(--cn-muted)}.cnr .small{font-size:11.5px}.cnr .ok{color:var(--cn-green)}.cnr .bad{color:var(--cn-red)}
.cnr .pill{display:inline-block;border-radius:999px;padding:2px 9px;font-size:11.5px;font-weight:600;background:#eef1ef;color:var(--cn-muted)}
.cnr .pill.ok{background:var(--cn-green-soft);color:var(--cn-green)}.cnr .pill.bad{background:var(--cn-red-soft);color:var(--cn-red)}
.cnr .je-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px;align-items:center}
.cnr .seg{display:inline-block;min-width:62px;text-align:center;border-radius:6px;padding:1px 8px;font-size:11px;font-weight:700}
.cnr .seg.EQ{background:var(--cn-teal-soft);color:var(--cn-teal)}.cnr .seg.FO{background:var(--cn-saffron-soft);color:var(--cn-saffron)}.cnr .seg.PL{background:#ece8f8;color:#5b4a9e}
.cnr .je.pl{border-left:3px solid #5b4a9e}.cnr .warnbox{border-color:#e4b4ae;background:var(--cn-red-soft)}.cnr .warnbox ul{margin:4px 0 0 18px}.cnr .okbox{border-color:#a9d5b6;background:var(--cn-green-soft)}
.cnr .warnrow td{background:#fdf3f2}
.cnr textarea,.cnr select{padding:6px 9px;border:1px solid var(--cn-rule);border-radius:6px;background:#fff;font:13px inherit;color:inherit;width:100%}
.cnr .jt td:first-child{white-space:nowrap}.cnr .to{color:var(--cn-muted);padding-left:18px}
.cnr .empty{background:#fff;border:1px solid var(--cn-rule);border-radius:10px;padding:28px;text-align:center;color:var(--cn-muted)}
.cnr .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px 14px}
.cnr .fld{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--cn-muted)}
.cnr .fld input{padding:6px 9px;border:1px solid var(--cn-rule);border-radius:6px;background:#fff;font:13px inherit;color:inherit}
.cnr .chk{display:flex;gap:8px;align-items:flex-start;margin:6px 0}.cnr .chk input{width:16px;height:16px;flex:none;margin-top:2px}
.cnr pre{font:11px/1.35 Consolas,monospace;white-space:pre;overflow:auto;max-height:520px;background:#fafbf9;padding:8px;border-radius:6px}
.cnr .btn{width:auto}
/* scroll inside each table card instead of one very long page; headings stay visible */
.cnr #cnr-panel .card:has(table):not(.okbox):not(.warnbox){max-height:min(62vh,640px);overflow:auto}
.cnr #cnr-panel .card th{position:sticky;top:0;z-index:1}
.cnr #cnr-panel .card h3{position:sticky;left:0}
.cnr #cnr-panel table{min-width:720px}
.cnr #cnr-panel .card::-webkit-scrollbar{width:9px;height:9px}
.cnr #cnr-panel .card::-webkit-scrollbar-thumb{background:#c5d0cb;border-radius:6px}
.cnr .cn-copy{float:right;margin-left:8px;font-weight:600}
.cnr .pend{border-color:#e6c98f;background:#fffaf0}
.cnr .pend tr.edit-row>td{background:#fff;padding:8px 10px}
.cnr table.te{min-width:640px}.cnr table.te input,.cnr table.te select{width:110px;padding:4px 7px;border:1px solid var(--cn-rule);border-radius:6px;font:13px inherit}
.cnr table.te input.num{text-align:right}
.cnr .row-acts{white-space:nowrap}
/* sticky table headings sit flush at the top of the scrolling card (rows no longer show above them) */
.cnr #cnr-panel .card:has(table) th{top:-12px}
.cnr #cnr-panel .card:has(table){padding-top:12px}
.cnr tr.inv-on td{background:var(--cn-teal-soft)}
