/* SJBL Directory — League ledger design: evergreen #1e3a2c, gold #b3893f, parchment #f5efe1 */

.sjbl-directory {
	--sjbl-green:#1e3a2c; --sjbl-green-d:#152b20; --sjbl-gold:#b3893f; --sjbl-gold-p:#c9a85f;
	--sjbl-parch:#f5efe1; --sjbl-parch2:#efe7d2; --sjbl-rule:#ddd2b4; --sjbl-muted:#6c6353;
}

/* toolbar */
.sjbl-toolbar {
	display:flex; flex-wrap:wrap; gap:10px; align-items:center;
	background:#fff; border:1px solid var(--sjbl-rule); padding:12px; margin-bottom:22px;
}
.sjbl-search { flex:1 1 200px; min-width:0; padding:9px 12px; border:1px solid var(--sjbl-rule); background:var(--sjbl-parch); }
.sjbl-toolbar select {
	padding:9px 30px 9px 11px; border:1px solid var(--sjbl-rule); font-size:.88rem; cursor:pointer;
	background:var(--sjbl-parch) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='7'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23b3893f'/%3E%3C/svg%3E") no-repeat right 11px center;
	-webkit-appearance:none; appearance:none;
}
.sjbl-active-tag {
	display:inline-flex; align-items:center; gap:7px; margin-left:auto;
	background:var(--sjbl-green); color:var(--sjbl-parch); padding:6px 6px 6px 13px;
	font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; font-weight:700;
}
.sjbl-active-tag-clear {
	background:rgba(245,239,225,.18); border:0; color:var(--sjbl-parch);
	width:20px; height:20px; line-height:1; cursor:pointer; font-size:.9rem;
}
.sjbl-active-tag-clear:hover { background:#6e2b27; }
.sjbl-active-tag + .sjbl-view-toggle { margin-left:0; }
.sjbl-view-toggle { display:flex; border:1px solid var(--sjbl-green); overflow:hidden; margin-left:auto; }
.sjbl-view-toggle button {
	background:#fff; border:0; color:var(--sjbl-green); padding:8px 15px;
	font-size:.72rem; letter-spacing:.13em; text-transform:uppercase; cursor:pointer; font-weight:700;
}
.sjbl-view-toggle button.is-active { background:var(--sjbl-green); color:var(--sjbl-parch); }

/* ledger rows */
.sjbl-results { background:#fff; border:1px solid var(--sjbl-rule); }
.sjbl-card {
	display:grid; grid-template-columns:1.7fr 1.2fr auto; gap:2px 12px;
	padding:12px 18px; border-bottom:1px solid #f0e9d8; align-items:center;
}
.sjbl-card:last-child { border-bottom:0; }
.sjbl-card:hover { background:var(--sjbl-parch); }
.sjbl-card h3 {
	font-family:'Cormorant',Garamond,serif; font-size:1.08rem; color:var(--sjbl-green);
	font-weight:600; line-height:1.2; margin:0; grid-column:1; grid-row:1;
}
.sjbl-card h3 a { color:inherit; text-decoration:none; }
.sjbl-card h3 a:hover { color:#6e2b27; }
.sjbl-cat { font-size:.82rem; color:var(--sjbl-muted); font-style:italic; margin:0; grid-column:2; grid-row:1; }
.sjbl-tier {
	display:inline-block; font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; font-weight:700;
	padding:3px 10px; border-radius:999px; color:#fff; background:var(--tier,#8a8578);
	grid-column:3; grid-row:1; justify-self:end; white-space:nowrap;
}
.sjbl-meta { font-size:.78rem; color:var(--sjbl-muted); margin:0; grid-column:1 / 3; grid-row:2; }
.sjbl-meta a { color:var(--sjbl-green); text-decoration:underline; text-decoration-color:var(--sjbl-gold-p); }
.sjbl-addr { font-size:.74rem; color:var(--sjbl-muted); font-style:italic; margin:0; grid-column:3; grid-row:2; justify-self:end; text-align:right; }
.sjbl-tags { grid-column:1 / -1; grid-row:3; margin:4px 0 0; display:flex; flex-wrap:wrap; gap:6px; }
.sjbl-tag-chip {
	background:var(--sjbl-parch); border:1px solid var(--sjbl-rule); color:var(--sjbl-muted);
	font-size:.68rem; letter-spacing:.05em; padding:2px 10px; border-radius:999px; cursor:pointer;
}
.sjbl-tag-chip:hover { background:var(--sjbl-gold); border-color:var(--sjbl-gold); color:#fff; }
.sjbl-empty { padding:48px 20px; text-align:center; color:var(--sjbl-muted); font-style:italic; background:#fff; }

/* map */
.sjbl-map { height:540px; border:1px solid var(--sjbl-rule); }
.sjbl-map .leaflet-popup-content-wrapper { border-radius:3px; border-top:3px solid var(--sjbl-gold); }
.sjbl-popup b {
	font-family:'Cormorant',Garamond,serif; font-size:1.05rem; color:var(--sjbl-green, #1e3a2c);
}
.sjbl-popup .sjbl-tier { grid-column:auto; grid-row:auto; margin:3px 0; }
.sjbl-legend {
	background:rgba(255,255,255,.94); border:1px solid #ddd2b4; padding:8px 12px;
	font-size:.72rem; color:#2a2823; line-height:1.9; max-width:220px;
}
.sjbl-legend span.dot {
	display:inline-block; width:10px; height:10px; border-radius:50%;
	margin-right:7px; vertical-align:-1px; border:1px solid rgba(0,0,0,.25);
}

@media (max-width:700px){
	.sjbl-card { grid-template-columns:1fr; }
	.sjbl-card h3, .sjbl-cat, .sjbl-tier, .sjbl-meta, .sjbl-addr { grid-column:1; grid-row:auto; justify-self:start; text-align:left; }
	.sjbl-view-toggle { margin-left:0; width:100%; }
	.sjbl-view-toggle button { flex:1; }
	.sjbl-map { height:420px; }
}
