.public-team-logo {
    flex: 0 0 auto;
    display: inline-grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    overflow: hidden;
    background: #eeeaff;
    color: #4b2cff;
}

/* Bootstrap Icons nomme "dribbble" une icône de ballon de basket.
   Dans le contexte football de TournLive, on la remplace par le vrai symbole. */
.public-event-page .bi-dribbble::before { content: "⚽"; font-family: "Segoe UI Emoji", "Apple Color Emoji", sans-serif; }

body:has(.public-event-page) > .navbar,
body:has(.public-event-page) > main.flex-grow-1 > .container.pt-3,
body:has(.public-event-page) > .app-footer { display: none !important; }

.public-team-logo.small { width: 30px; height: 30px; border-radius: 8px; }
.public-team-logo.large { width: 58px; height: 58px; border-radius: 16px; font-size: 1.6rem; }
.public-team-logo.xlarge { width: 82px; height: 82px; border-radius: 22px; font-size: 2.2rem; }
.public-team-logo img,
.public-event-logo.team img { width: 100%; height: 100%; object-fit: contain; background: #fff; }
.public-event-logo.team { overflow: hidden; }
.public-team-inline { display: inline-flex; align-items: center; gap: .55rem; color: inherit; text-decoration: none; }
.public-team-inline:hover strong { color: #4b2cff; text-decoration: underline; }
.public-scorers small { color: #777; }
.public-scorers th:nth-child(3),
.public-scorers td:nth-child(3) { text-align: left; }
.public-match-scoreboard { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1.5rem; padding: 2rem; border: 1px solid #ebe8f2; border-radius: 18px; text-align: center; }
.public-match-scoreboard > a { display: flex; flex-direction: column; align-items: center; gap: .7rem; color: inherit; text-decoration: none; font-size: 1.1rem; }
.public-match-scoreboard > div { display: grid; justify-items: center; gap: .55rem; }
.public-match-scoreboard > div b { font-size: 2.5rem; color: #4b2cff; }
.public-match-scoreboard > div b small { color: #aaa; }
.public-match-info { display: grid; grid-template-columns: repeat(3,1fr); gap: .8rem; margin-top: 1rem; }
.public-match-info > div { display: grid; grid-template-columns: auto 1fr; gap: .1rem .7rem; padding: 1rem; border-radius: 13px; background: #f4f2ff; }
.public-match-info i { grid-row: 1/3; color: #4b2cff; font-size: 1.3rem; }
.public-match-info span { color: #777; font-size: .72rem; text-transform: uppercase; }
.public-event-timeline article { display: grid; grid-template-columns: 42px 32px 1fr; align-items: center; gap: .6rem; padding: .7rem 1rem; border-top: 1px solid #eeecf3; }
.public-event-timeline article > span { font-weight: 900; color: #4b2cff; }
.public-event-timeline small { display: block; color: #777; }
.public-rosters { display: grid; grid-template-columns: repeat(2,1fr); gap: 1rem; margin-top: 1rem; }
.public-roster-row { display: grid; grid-template-columns: 45px 1fr auto; gap: .6rem; padding: .65rem .9rem; border-top: 1px solid #eeecf3; }
.public-roster-row b { color: #4b2cff; }
.public-roster-row small { color: #777; }
.public-match-clickable { cursor: pointer; transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease; }
.public-match-clickable:hover { border-color: #9b8cff; box-shadow: 0 8px 24px rgba(45,30,120,.12); transform: translateY(-2px); }
@media(max-width:700px){.public-match-scoreboard{grid-template-columns:1fr;}.public-match-info,.public-rosters{grid-template-columns:1fr;}}
.public-live-badge { margin-left: auto; display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .7rem; border-radius: 999px; background: rgba(255,255,255,.14); color: #fff; font-size: .72rem; font-weight: 700; white-space: nowrap; }
.public-live-badge i { width: 8px; height: 8px; border-radius: 50%; background: #54e58b; box-shadow: 0 0 0 4px rgba(84,229,139,.18); }
.public-live-badge[data-state="updated"] i { animation: public-live-pulse .7s ease; }
.public-live-badge[data-state="offline"] { background: rgba(20,20,20,.25); }
.public-live-badge[data-state="offline"] i { background: #ffcc57; box-shadow: none; }
@keyframes public-live-pulse { 50% { transform: scale(1.8); } }
@media(max-width:760px){.public-live-badge span{display:none}.public-live-badge{margin-left:.25rem;padding:.45rem}}
.public-overview-image { display:block; width:100%; max-height:420px; margin-top:1.25rem; object-fit:cover; border-radius:14px; }
.public-registration-intro { margin-bottom:1.25rem; padding:1.5rem; border:1px solid #ebe8f2; border-radius:16px; background:#fff; }
.public-registration-fee { margin-top:1rem; padding:1rem; border-radius:12px; background:#f3f0ff; color:#3520bd; }
.public-registration-form { max-width:100%; padding:clamp(1.2rem,3vw,2rem); background:#fff; }
.public-registration-form form { display:grid; gap:.75rem; }
.public-registration-form #team_registration { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.25rem 1.25rem; }
.public-registration-form #team_registration > div { min-width:0; }
.public-registration-form #team_registration > div:has(textarea),.public-registration-form #team_registration > div:has(input[type="file"]),.public-registration-form #team_registration > input[type="hidden"] { grid-column:1/-1; }
.public-registration-form label { margin-bottom:.45rem; font-weight:700; color:#242036; }
.public-registration-form .form-control,.public-registration-form .form-select { width:100%; min-height:50px; padding:.75rem .9rem; border:1px solid #dcd7e8; border-radius:11px; background:#fff; }
.public-registration-form textarea.form-control { min-height:150px; resize:vertical; }
.public-registration-form .form-text { margin-top:.4rem; color:#777; }
.public-registration-form .invalid-feedback { display:block; }
.public-registration-form .form-check { padding:1rem 1rem 1rem 2.6rem; margin-top:.4rem; border-radius:10px; background:#f7f5ff; }
@media(max-width:700px){.public-registration-form #team_registration{grid-template-columns:1fr}.public-registration-form #team_registration>div{grid-column:1/-1}}
