/* Complutum Basket · Beta 5.19 · equipos, fichas, buscador, avisos */

/* ---------- Buscador general ---------- */
body .topbar .b28-search{position:relative;margin-left:auto;flex:0 1 420px;display:flex;align-items:center}
body .topbar .b28-search+.user-chip{margin-left:14px}
.b28-search>svg{position:absolute;left:12px;width:17px;height:17px;stroke:var(--b27-muted);fill:none;stroke-width:2;stroke-linecap:round;pointer-events:none}
.b28-search input{width:100%;height:40px;border:1px solid var(--b27-line);border-radius:999px;background:#fff;padding:0 64px 0 38px;font:inherit;font-size:14px;color:var(--b27-ink);outline:none}
.b28-search input:focus{border-color:var(--b27-leaf);box-shadow:0 0 0 3px rgba(29,122,69,.14)}
.b28-search kbd{position:absolute;right:12px;font-family:var(--b27-text);font-size:11px;color:var(--b27-muted);border:1px solid var(--b27-line);border-radius:5px;padding:1px 5px;background:#F7FAF7;pointer-events:none}
.b28-results{position:absolute;top:46px;left:0;right:0;z-index:60;background:#fff;border:1px solid var(--b27-line);border-radius:12px;box-shadow:0 18px 40px rgba(8,46,26,.16);max-height:min(460px,70vh);overflow:auto;padding:6px}
.b28-results .b28-rg{font-size:12px;font-weight:600;color:var(--b27-leaf);padding:8px 10px 4px}
.b28-results button{all:unset;box-sizing:border-box;display:block;width:100%;cursor:pointer;padding:8px 10px;border-radius:8px}
.b28-results button b{display:block;font-weight:600;font-size:14px;color:var(--b27-ink)}
.b28-results button small{display:block;font-size:12.5px;color:var(--b27-muted);margin-top:1px}
.b28-results button.on,.b28-results button:hover{background:var(--b27-mint)}
.b28-noresult{margin:0;padding:12px;color:var(--b27-muted);font-size:13.5px}

/* ---------- Avisos ---------- */
.b28-soft{display:block;font-size:11.5px;font-weight:500;color:var(--b27-muted);margin-top:-2px}
.b28-warn{background:#FDEBDC;border:1px solid #F4C9A4;color:#6B3409;border-radius:10px;padding:12px 16px;margin-bottom:16px;font-size:14px;line-height:1.45}
.b28-backup-banner{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;background:#fff;border:1px solid #F4C9A4;border-left:4px solid var(--b27-ball);border-radius:12px;padding:12px 16px;margin-bottom:18px}
.b28-backup-banner b{display:block;font-size:14.5px}
.b28-backup-banner span{font-size:13px;color:var(--b27-muted)}
.b28-bk-ico{width:38px;height:38px;border-radius:10px;background:#FDEBDC;display:grid;place-items:center}
.b28-bk-ico svg{width:20px;height:20px;stroke:var(--b27-ball-dark);fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.b28-mail-preview{border:1px solid var(--b27-line);border-radius:10px;background:#F7FAF7;padding:14px 16px}
.b28-mail-preview pre{white-space:pre-wrap;font-family:var(--b27-text);font-size:14px;line-height:1.5;margin:8px 0 0}

/* ---------- Junta ---------- */
.b28-board .panel-head .primary{padding:8px 14px}
.b28-board .board-actions{white-space:nowrap;display:flex;gap:6px;justify-content:flex-end}
.b28-board .board-actions button{padding:6px 10px;font-size:13px}
.b28-past{border-top:1px solid var(--b27-line)}
.b28-past summary{cursor:pointer;padding:12px 20px;font-weight:600;color:var(--b27-muted)}
.b28-past .data-table td{color:var(--b27-muted)}

/* ---------- Equipos: cabecera ---------- */
.b28-teams-top{display:grid;gap:14px;margin-bottom:20px}
.b28-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:#fff;border:1px solid var(--b27-line);border-radius:12px;overflow:hidden}
.b28-kpis>div{padding:14px 20px;border-right:1px solid var(--b27-line)}
.b28-kpis>div:last-child{border-right:0}
.b28-kpis strong{display:block;font-family:var(--b27-display);font-size:30px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.b28-kpis span{font-size:13px;color:var(--b27-muted)}
.b28-kpis .warn strong{color:var(--b27-ball-dark)}
.b28-strip-filters{margin:0!important}
.b28-chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.b28-chips button{border:1px solid var(--b27-line);background:#fff;border-radius:999px;padding:6px 14px;font:inherit;font-size:13.5px;font-weight:500;color:var(--b27-ink);cursor:pointer}
.b28-chips button:hover{border-color:var(--b27-leaf)}
.b28-chips button.on{background:var(--b27-green);border-color:var(--b27-green);color:#fff}
.b28-teamsearch{margin-left:auto;min-width:240px;height:34px;border:1px solid var(--b27-line);border-radius:999px;padding:0 14px;font:inherit;font-size:13.5px;background:#fff}

/* ---------- Equipos: grupos ---------- */
.b28-group{margin-bottom:14px;background:transparent}
.b28-group>summary{list-style:none;cursor:pointer;display:flex;align-items:baseline;gap:14px;padding:10px 4px;border-bottom:2px solid var(--b27-green)}
.b28-group>summary::-webkit-details-marker{display:none}
.b28-group>summary::before{content:"";width:8px;height:8px;border-right:2px solid var(--b27-green);border-bottom:2px solid var(--b27-green);transform:rotate(45deg) translateY(-3px);transition:transform .15s;align-self:center}
.b28-group:not([open])>summary::before{transform:rotate(-45deg)}
.b28-gname{font-family:var(--b27-display);font-size:24px;font-weight:700;color:var(--b27-ink)}
.b28-gmeta{font-size:13px;color:var(--b27-muted)}
.b28-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px;margin-top:12px}
.b28-col h5{margin:0 0 8px;font-size:13px;font-weight:600;color:var(--b27-muted)}
.b28-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.b28-group>.b28-cards{margin-top:12px}

.b28-team{position:relative;background:#fff;border:1px solid var(--b27-line);border-radius:12px;padding:12px 14px 12px;display:flex;flex-direction:column;gap:7px;min-height:132px}
.b28-team:hover{border-color:var(--b27-leaf);box-shadow:0 6px 18px rgba(8,46,26,.07)}
.b28-team-open{position:absolute;inset:0;border:0;background:transparent;cursor:pointer;border-radius:12px;z-index:1}
.b28-team-open:focus-visible{outline:2px solid var(--b27-ball);outline-offset:2px}
.b28-team header{display:flex;justify-content:space-between;align-items:center;min-height:22px}
.b28-tag{font-size:11.5px;font-weight:600;color:var(--b27-green);background:var(--b27-mint);border-radius:999px;padding:2px 9px}
.b28-tag.light{background:rgba(255,255,255,.14);color:#fff}
.b28-team h4{margin:0;font-family:var(--b27-display);font-size:19px;font-weight:700;line-height:1.1;color:var(--b27-ink)}
.b28-coach{margin:0;font-size:13px;color:var(--b27-muted);display:flex;gap:6px;align-items:center}
.b28-coach svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;flex:0 0 auto}
.b28-coach.missing{color:var(--b27-ball-dark);font-weight:600}
.b28-occ{display:flex;justify-content:space-between;font-size:13px;color:var(--b27-muted)}
.b28-occ b{font-family:var(--b27-display);font-size:18px;color:var(--b27-ink)}
.b28-occ em{font-style:normal;font-weight:600;color:var(--b27-green)}
.b28-bar{height:5px;border-radius:5px;background:#EDF2EE;overflow:hidden}
.b28-bar i{display:block;height:100%;background:var(--b27-leaf);border-radius:5px}
.b28-bar.full i{background:var(--b27-green)}
.b28-team footer{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;color:var(--b27-muted);min-height:18px}
.b28-alert{display:inline-flex;gap:4px;align-items:center;color:var(--b27-ball-dark);font-weight:600}
.b28-alert svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}
.b28-team.is-empty{background:#FAFBFA}
.b28-team.is-empty h4,.b28-team.is-empty .b28-occ b{color:#7A887F}
.b28-team.is-off{opacity:.6;border-style:dashed}

.b28-menu{position:relative;z-index:3}
.b28-menu>summary{list-style:none;cursor:pointer;width:28px;height:24px;border-radius:6px;display:grid;place-items:center;color:var(--b27-muted)}
.b28-menu>summary::-webkit-details-marker{display:none}
.b28-menu>summary:hover{background:#EEF3EF;color:var(--b27-ink)}
.b28-menu>summary svg{width:18px;height:18px;fill:currentColor}
.b28-menu>div{position:absolute;right:0;top:28px;min-width:210px;background:#fff;border:1px solid var(--b27-line);border-radius:10px;box-shadow:0 14px 30px rgba(8,46,26,.15);padding:5px;display:grid}
.b28-menu>div button{all:unset;cursor:pointer;padding:8px 10px;border-radius:7px;font-size:13.5px;color:var(--b27-ink)}
.b28-menu>div button:hover,.b28-menu>div button:focus-visible{background:var(--b27-mint)}
.b28-menu>div button.danger-text{color:var(--b27-red)}
.b28-menu>div button.danger-text:hover{background:#F9E3E0}
.b28-empty-teams{color:var(--b27-muted);padding:20px 4px}

/* ---------- Ficha de equipo y de jugador ---------- */
.b28-team-hero,.b28-phero{position:relative;overflow:hidden;border-radius:16px;color:#fff;background:var(--b27-pine);background-image:radial-gradient(70% 90% at 0% 0%,rgba(29,122,69,.7),transparent 65%);display:grid;grid-template-columns:auto 1fr auto;gap:26px;align-items:center;padding:24px 28px;margin-bottom:14px}
.b28-team-hero::after,.b28-phero::after{content:"";position:absolute;right:-50px;top:-60px;width:300px;height:300px;background:url("b27-watermark-white.png") center/contain no-repeat;opacity:.05;pointer-events:none}
.b28-team-hero>*,.b28-phero>*{position:relative;z-index:1}
.b28-team-hero img{width:92px;filter:drop-shadow(0 12px 20px rgba(0,0,0,.4))}
.b28-th-main h2,.b28-ph-main h2{margin:6px 0 4px;font-family:var(--b27-display);font-size:clamp(30px,3.4vw,44px);font-weight:800;line-height:.95}
.b28-th-main p,.b28-ph-main p{margin:0;color:rgba(255,255,255,.75);font-size:14.5px}
.b28-team-hero .warn,.b28-phero .warn{color:#FFB779}
.b28-th-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.b28-th-actions button{border-radius:8px;padding:8px 13px;font:inherit;font-weight:600;font-size:13.5px;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.07);color:#fff;cursor:pointer}
.b28-th-actions button:hover{background:rgba(255,255,255,.16)}
.b28-th-score{display:flex;gap:10px}
.b28-th-score>div{background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:12px 16px;min-width:92px;text-align:center}
.b28-th-score strong{display:block;font-family:var(--b27-display);font-size:34px;font-weight:700;line-height:1}
.b28-th-score strong small{font-size:.5em;opacity:.7}
.b28-th-score span{font-size:12px;color:rgba(255,255,255,.6)}
.b28-th-score .warn strong{color:#FFB779}
.b28-tabs{display:flex;gap:4px;border-bottom:1px solid var(--b27-line);margin-bottom:14px}
.b28-tabs button{border:0;background:transparent;padding:10px 14px;font:inherit;font-weight:600;font-size:14.5px;color:var(--b27-muted);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-1px}
.b28-tabs button.on{color:var(--b27-green);border-bottom-color:var(--b27-ball)}
.b28-tabs button:hover{color:var(--b27-ink)}
.b28-money{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}
.b28-money>div{background:#fff;border:1px solid var(--b27-line);border-radius:10px;padding:10px 14px}
.b28-money span{display:block;font-size:12.5px;color:var(--b27-muted)}
.b28-money b{font-family:var(--b27-display);font-size:22px;font-weight:700}
.b28-roster{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:10px}
.b28-player{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;background:#fff;border:1px solid var(--b27-line);border-radius:12px;padding:12px 14px}
.b28-player:hover{border-color:var(--b27-leaf)}
.b28-player:focus-visible{outline:2px solid var(--b27-ball);outline-offset:2px}
.b28-av{width:44px;height:44px;border-radius:50%;background:var(--b27-green);color:#fff;display:grid;place-items:center;font-family:var(--b27-display);font-weight:700;font-size:17px;letter-spacing:.02em;box-shadow:inset 0 0 0 2px rgba(232,115,26,.8)}
.b28-av.big{width:88px;height:88px;font-size:34px;box-shadow:inset 0 0 0 3px var(--b27-ball)}
.b28-pinfo{display:grid;gap:3px;min-width:0}
.b28-pinfo b{font-size:15px;font-weight:600}
.b28-pinfo small{font-size:12.5px;color:var(--b27-muted)}
.b28-pills{display:flex;flex-wrap:wrap;gap:5px;margin-top:3px}
.b28-pill{font-size:11.5px;font-weight:600;border-radius:999px;padding:2px 8px;background:#EEF1EE;color:#5E6B63}
.b28-pill.ok{background:#E1F2E6;color:#17683A}
.b28-pill.warn{background:#FDEBDC;color:var(--b27-ball-dark)}
.b28-pill.bad{background:#F9E3E0;color:var(--b27-red)}
.b28-pay{display:block;height:4px;border-radius:4px;background:#EDF2EE;overflow:hidden;margin-top:5px}
.b28-pay i{display:block;height:100%;background:var(--b27-leaf)}
.b28-pay.big{height:6px;background:rgba(255,255,255,.14);grid-column:1/-1}
.b28-pay.big i{background:linear-gradient(90deg,#3FAE6A,#9BDB7E)}
.b28-phero .b28-pills .b28-pill{background:rgba(255,255,255,.12);color:#fff}
.b28-phero .b28-pills .b28-pill.ok{background:rgba(63,174,106,.3);color:#D9F5E1}
.b28-phero .b28-pills .b28-pill.warn{background:rgba(232,115,26,.28);color:#FFD9B8}
.b28-ph-money{display:grid;grid-template-columns:repeat(2,auto);gap:8px 22px;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:14px 18px}
.b28-ph-money span{display:block;font-size:12px;color:rgba(255,255,255,.6)}
.b28-ph-money b{font-family:var(--b27-display);font-size:24px;font-weight:700}
.b28-ph-money b.warn{color:#FFB779}
.b28-linkish{all:unset;cursor:pointer;color:#fff;font-weight:600;text-decoration:underline;text-decoration-color:rgba(255,255,255,.4);text-underline-offset:3px}
.b28-linkish:hover{text-decoration-color:var(--b27-ball)}

@media (max-width:1100px){
  body .topbar .b28-search{flex-basis:300px}
  .b28-team-hero,.b28-phero{grid-template-columns:auto 1fr}
  .b28-th-score,.b28-ph-money{grid-column:1/-1}
}
@media (max-width:760px){
  body .topbar .b28-search kbd{display:none}
  body .topbar .b28-search input{padding-right:12px}
  body .topbar .b28-search{flex-basis:auto;min-width:0}
  .b28-results{position:fixed;top:64px;left:8px;right:8px}
  .b28-kpis{grid-template-columns:1fr 1fr}
  .b28-kpis>div:nth-child(2){border-right:0}
  .b28-kpis>div:nth-child(-n+2){border-bottom:1px solid var(--b27-line)}
  .b28-teamsearch{margin-left:0;width:100%}
  .b28-team-hero,.b28-phero{grid-template-columns:1fr;padding:20px}
  .b28-team-hero img{width:64px}
  .b28-backup-banner{grid-template-columns:auto 1fr}
  .b28-backup-banner .primary{grid-column:1/-1}
  .b28-money{grid-template-columns:1fr}
}

/* Botones antiguos sin clase y avisos informativos con la paleta del club */
body #content .toolbar>button:not([class]),body #content .b58-backbar>button:not([class]),body #content .b24-forms-actions>button:not([class]),body #content .panel-head>button:not([class]),body #content .panel-body>button:not([class]){border:1px solid var(--b27-line);background:#fff;color:var(--b27-ink);border-radius:8px;padding:9px 14px;font:inherit;font-weight:600;font-size:14px;cursor:pointer}
body #content .toolbar>button:not([class]):hover,body #content .b58-backbar>button:not([class]):hover,body #content .b24-forms-actions>button:not([class]):hover,body #content .panel-head>button:not([class]):hover,body #content .panel-body>button:not([class]):hover{border-color:var(--b27-leaf);color:var(--b27-green)}
body .notice{background:var(--b27-mint);border-left:4px solid var(--b27-leaf);color:var(--b27-ink);border-radius:8px}
body .b24-forms-note{background:#FDEBDC;border-left:4px solid var(--b27-ball);color:#5B2E0A;border-radius:8px}
.b28-legal{font-size:12.5px;line-height:1.5;color:var(--b27-muted);margin:0 0 6px}
@media (max-width:760px){
  body .b28-strip-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
  body .b28-strip-filters .spacer{display:none}
  body .b28-strip-filters label{flex:1 1 140px}
  body .b28-strip-filters select{width:100%}
  body .b28-strip-filters .primary{flex:1 1 100%}
  .b28-chips{gap:6px}
  .b28-chips button{padding:5px 11px;font-size:13px}
  .b28-cols{grid-template-columns:1fr}
  .b28-cards{grid-template-columns:1fr}
  body .topbar #pageEyebrow{display:none}
  body .app-shell>main{overflow-x:hidden}
}
