← back to Commercialrealestate
public/crcp-grid.css
57 lines
/* crcp-grid.css — styles for the reusable CrcpGrid engine. Namespaced .cg-* so it never
* collides with a host page. Colors read the host's CSS vars with safe fallbacks, so the
* engine inherits each page's theme (condos dark, fha-loans glass, sales gold) automatically. */
.cg-shell{display:flex;align-items:flex-start;}
.cg-rail{flex:0 0 250px;align-self:stretch;border-right:1px solid var(--cg-line,#2a313c);background:var(--cg-railbg,rgba(0,0,0,.18));position:sticky;top:0;max-height:100vh;overflow-y:auto;padding-bottom:30px;}
.cg-main{flex:1 1 auto;min-width:0;--cg-cols:3;}
.cg-sec{padding:12px 15px;border-bottom:1px solid var(--cg-line,#2a313c);}
.cg-sec h4{margin:0 0 9px;font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--cg-mut,#8b949e);cursor:pointer;display:flex;align-items:center;justify-content:space-between;user-select:none;}
.cg-sec h4::after{content:'▾';font-size:11px;margin-left:8px;transition:transform .15s;}
.cg-sec.collapsed h4::after{transform:rotate(-90deg);}
.cg-sec.collapsed > *:not(h4){display:none !important;}
.cg-chips{display:flex;flex-wrap:wrap;gap:6px;}
.cg-chip{background:var(--cg-card,#161b22);color:var(--cg-mut,#8b949e);border:1px solid var(--cg-line,#2a313c);border-radius:16px;padding:4px 10px;font-size:12px;cursor:pointer;user-select:none;}
.cg-chip:hover{color:var(--cg-ink,#e6edf3);}
.cg-chip.active{border-color:var(--cg-acc,#58a6ff);color:var(--cg-acc,#58a6ff);background:var(--cg-accbg,rgba(88,166,255,.10));}
.cg-ct{color:var(--cg-mut,#8b949e);font-size:10px;margin-left:4px;}
.cg-row2{display:flex;gap:8px;}
.cg-fld{flex:1;}
.cg-fld label{display:block;font-size:10px;color:var(--cg-mut,#8b949e);margin-bottom:3px;}
.cg-fld input{width:100%;background:var(--cg-card,#161b22);color:var(--cg-ink,#e6edf3);border:1px solid var(--cg-line,#2a313c);border-radius:8px;padding:7px 9px;font-size:13px;}
.cg-ftogs{display:flex;flex-direction:column;gap:1px;max-height:300px;overflow-y:auto;}
.cg-ftog{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--cg-ink,#e6edf3);cursor:pointer;padding:3px 4px;border-radius:6px;}
.cg-ftog:hover{background:var(--cg-accbg,rgba(88,166,255,.06));}
.cg-mini{margin-top:8px;display:flex;gap:5px;}
.cg-mini button{background:var(--cg-card,#161b22);color:var(--cg-mut,#8b949e);border:1px solid var(--cg-line,#2a313c);border-radius:7px;padding:4px 9px;font-size:11px;cursor:pointer;}
.cg-mini button:hover{border-color:var(--cg-acc,#58a6ff);color:var(--cg-ink,#e6edf3);}
.cg-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:13px 18px;border-bottom:1px solid var(--cg-line,#2a313c);position:sticky;top:0;background:var(--cg-topbg,rgba(14,17,22,.94));backdrop-filter:blur(6px);z-index:6;}
.cg-q{min-width:240px;background:var(--cg-card,#161b22);color:var(--cg-ink,#e6edf3);border:1px solid var(--cg-line,#2a313c);border-radius:8px;padding:8px 11px;font-size:13px;}
.cg-seg{display:inline-flex;border:1px solid var(--cg-line,#2a313c);border-radius:8px;overflow:hidden;}
.cg-seg button{background:var(--cg-card,#161b22);color:var(--cg-mut,#8b949e);border:0;border-right:1px solid var(--cg-line,#2a313c);padding:7px 12px;font-size:12px;cursor:pointer;}
.cg-seg button:last-child{border-right:0;}
.cg-seg button.active{background:var(--cg-acc,#1f6feb);color:#fff;}
.cg-dens{font-size:12px;color:var(--cg-mut,#8b949e);display:flex;align-items:center;gap:7px;}
.cg-dens input{accent-color:var(--cg-acc,#58a6ff);}
.cg-count{margin-left:auto;font-size:12px;color:var(--cg-mut,#8b949e);}
.cg-count b{color:var(--cg-ink,#e6edf3);}
.cg-grid{display:grid;gap:16px;padding:18px;grid-template-columns:repeat(var(--cg-cols,3),minmax(0,1fr));}
.cg-grid.cg-listhost{display:block;}
.cg-card{background:var(--cg-card,#161b22);border:1px solid var(--cg-line,#2a313c);border-radius:12px;padding:15px;display:flex;flex-direction:column;gap:5px;}
.cg-card.red{border-color:var(--cg-red,#f85149);}
.cg-name{font-weight:600;font-size:14px;color:var(--cg-ink,#e6edf3);}
.cg-sub{font-size:12px;color:var(--cg-mut,#8b949e);}
.cg-r{display:flex;justify-content:space-between;font-size:12px;gap:10px;}
.cg-r .cg-k{color:var(--cg-mut,#8b949e);}
.cg-empty{padding:50px;text-align:center;color:var(--cg-mut,#8b949e);}
.cg-listwrap{overflow-x:auto;margin:18px;border:1px solid var(--cg-line,#2a313c);border-radius:12px;}
.cg-tbl{width:100%;border-collapse:collapse;font-size:12.5px;white-space:nowrap;}
.cg-tbl th,.cg-tbl td{text-align:right;padding:9px 13px;border-top:1px solid var(--cg-line,#2a313c);}
.cg-tbl th{position:sticky;top:0;background:var(--cg-railbg,#0b0e13);color:var(--cg-mut,#8b949e);font-size:10px;text-transform:uppercase;letter-spacing:.5px;border-top:0;}
.cg-tbl td.cg-stick,.cg-tbl th.cg-stick{text-align:left;position:sticky;left:0;background:var(--cg-card,#161b22);}
.cg-tbl th.cg-stick{background:var(--cg-railbg,#0b0e13);}
.cg-tbl tr:hover td{background:var(--cg-accbg,rgba(88,166,255,.06));}
.cg-tbl tr.red td{background:rgba(248,81,73,.07);}
.cg-la{font-weight:600;color:var(--cg-ink,#e6edf3);}
.cg-lc{color:var(--cg-mut,#8b949e);font-size:11px;}
@media(max-width:820px){.cg-rail{display:none;}}