.dblb-diagram{
	--dblb-pitch:116px;--dblb-accent:#ea580c;--dblb-line:#000;--dblb-bg:#fdfdfd;--dblb-text:#111;
	display:flex;align-items:center;justify-content:center;gap:30px;
	background:var(--dblb-bg);border:2px solid var(--dblb-accent);border-radius:20px;
	padding:50px 20px;box-shadow:0 4px 20px rgba(0,0,0,.05);overflow-x:auto;
	font-family:sans-serif;box-sizing:border-box;
}
.dblb-diagram *{box-sizing:border-box}

.dblb-col{display:flex;flex-direction:column;flex:none}
/* Every row has the same fixed height, so all columns line up evenly. */
.dblb-row{height:var(--dblb-pitch);display:flex;align-items:center;position:relative}

/* Matchup bracket lines & dots */
.dblb-pair{position:relative;width:65px;height:55px;border-right:2px solid var(--dblb-line);border-top:2px solid var(--dblb-line);border-bottom:2px solid var(--dblb-line)}
.dblb-pair.dblb-mirror{border-right:none;border-left:2px solid var(--dblb-line)}
.dblb-dot{position:absolute;width:8px;height:8px;background:var(--dblb-line);border-radius:50%}
.dblb-pair:not(.dblb-mirror) .dblb-top{top:-5px;left:-4px}
.dblb-pair:not(.dblb-mirror) .dblb-bottom{bottom:-5px;left:-4px}
.dblb-pair.dblb-mirror .dblb-top{top:-5px;right:-4px}
.dblb-pair.dblb-mirror .dblb-bottom{bottom:-5px;right:-4px}

/* Winner stub from each matchup toward the inner column */
.dblb-pair::after{content:"";position:absolute;top:50%;right:-32px;width:30px;height:2px;background:var(--dblb-line);transform:translateY(-50%)}
.dblb-pair.dblb-mirror::after{right:auto;left:-32px}

/* Inner column: one winner slot per row + spine joining them to the finalist */
.dblb-inner-col{position:relative}
.dblb-node{position:relative;width:95px}
.dblb-node::after{content:"";position:absolute;top:50%;left:100%;width:15px;height:2px;background:var(--dblb-line);transform:translateY(-50%)}
.dblb-inner-col .dblb-row:nth-child(2) .dblb-node::after{width:30px}
.dblb-inner-col::after{content:"";position:absolute;top:calc(var(--dblb-pitch) / 2);bottom:calc(var(--dblb-pitch) / 2);right:-15px;width:2px;background:var(--dblb-line)}
.dblb-mirror-col .dblb-node::after{left:auto;right:100%}
.dblb-mirror-col::after{right:auto;left:-15px}

/* Team slots */
.dblb-slot{position:absolute;width:95px}
.dblb-pair:not(.dblb-mirror) .dblb-slot:nth-of-type(3){top:-24px;left:-12px}
.dblb-pair:not(.dblb-mirror) .dblb-slot:nth-of-type(4){bottom:-24px;left:-12px}
.dblb-pair.dblb-mirror .dblb-slot:nth-of-type(3){top:-24px;right:-12px}
.dblb-pair.dblb-mirror .dblb-slot:nth-of-type(4){bottom:-24px;right:-12px}

/* Field = input (admin) or span (visitors), identical look */
.dblb-field{
	display:block;width:100%;margin:0;height:auto;min-height:0;
	background:#fff;border:1px solid #cbd5e1;border-radius:4px;padding:2px 4px;
	font-family:inherit;font-size:10px;font-weight:600;line-height:1.5;color:var(--dblb-text);
	text-align:center;outline:none;box-shadow:0 1px 2px rgba(0,0,0,.05);
	transition:border-color .2s;
}
span.dblb-field{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-height:21px}
input.dblb-field:focus{border-color:var(--dblb-accent);background:#fffaf5}

/* Centre hub & winner */
.dblb-center-hub{display:flex;flex-direction:column;align-items:center;position:relative}
.dblb-winner-container{display:flex;flex-direction:column;align-items:center;position:absolute;top:-75px}
.dblb-winner-label{font-size:9px;font-weight:800;color:var(--dblb-accent);letter-spacing:1px;margin-bottom:2px}
.dblb-slot.dblb-winner-slot{position:relative;width:105px}
.dblb-winner-slot .dblb-field{border-color:var(--dblb-accent);background:#fff7ed;font-weight:700}
.dblb-vertical-connector{width:2px;height:22px;background:var(--dblb-line)}

.dblb-hub-row{display:flex;align-items:center;gap:8px}
.dblb-finalist-box{display:flex;align-items:center;position:relative}
.dblb-slot.dblb-finalist-slot{position:relative;width:95px}
.dblb-center-line{width:20px;height:2px;background:var(--dblb-line);position:relative}
.dblb-end-dot{position:absolute;width:8px;height:8px;background:var(--dblb-line);border-radius:50%;top:-3px}
.dblb-left-line .dblb-end-dot{left:0}
.dblb-right-line .dblb-end-dot{right:0}

.dblb-center-badge{width:44px;height:44px;border-radius:50%;border:2px solid var(--dblb-accent);display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#fff}
.dblb-badge-inner{width:30px;height:30px;border-radius:50%;background:var(--dblb-accent);display:flex;align-items:center;justify-content:center}
.dblb-triangle-icon{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:10px solid #fff}

/* Admin-only edit bar */
.dblb-admin-bar{display:flex;align-items:center;gap:12px;margin-top:10px;font-family:sans-serif;font-size:13px}
.dblb-badge{background:var(--dblb-accent,#ea580c);color:#fff;border-radius:999px;padding:2px 10px;font-weight:600}
.dblb-save{cursor:pointer;border:0;border-radius:6px;padding:6px 14px;background:#111;color:#fff;font-weight:600}
.dblb-save:disabled{opacity:.6;cursor:wait}
