/* components.css — Újrahasznosítható elemek: gombok, panelek, pillek, versenyjegy, állapotsáv, fülek, táblák, űrlapok. */

/* gombok */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 20px;border:1px solid var(--line-strong);background:#050b0d;color:var(--ink);border-radius:2px;cursor:pointer;font:700 13px var(--f-head);letter-spacing:.1em;text-transform:uppercase;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}
.btn:hover{border-color:var(--accent);background:var(--accent-dim);color:var(--accent)}
.btn.out{border-color:var(--accent);color:var(--accent)}
.btn.pri,.btn.ok{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,9px 100%,0 calc(100% - 9px))}
.btn.pri:hover,.btn.ok:hover{background:var(--accent);color:var(--accent-ink);filter:brightness(1.1)}
.btn.bad{border-color:rgba(255,77,94,.55);color:var(--atk);background:transparent}
.btn.bad:hover{background:rgba(255,77,94,.12);border-color:var(--atk);color:var(--atk)}
.btn.sm{min-height:34px;padding:0 12px;font-size:12px}
.btn.xl{min-height:60px;font-size:17px;letter-spacing:.12em;padding:0 30px}
.btn[disabled]{opacity:.4;cursor:not-allowed;filter:none}
.btn[disabled]:hover{background:rgba(55,242,216,.04);border-color:var(--line-strong);color:var(--ink)}
.btn.pri[disabled]:hover,.btn.ok[disabled]:hover{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.btn.ghost{border-color:var(--line);background:transparent;color:var(--mute)}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.row.sp{justify-content:space-between}

/* panelek: levágott sarok (jobb felső, bal alsó) + aqua sarokjel (bal felső, jobb alsó) */
.card,.ticket,.board{position:relative;clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,var(--cut) 100%,0 calc(100% - var(--cut)))}
.card{background:linear-gradient(180deg,rgba(55,242,216,.035),transparent 45%),var(--paper);border:1px solid var(--line);border-radius:2px;padding:18px}
.card::before,.card::after,.ticket::before,.ticket::after,.board::before,.board::after{content:"";position:absolute;width:12px;height:12px;pointer-events:none;opacity:.75}
.card::before,.ticket::before,.board::before{left:-1px;top:-1px;border-top:2px solid var(--accent);border-left:2px solid var(--accent)}
.card::after,.ticket::after,.board::after{right:-1px;bottom:-1px;border-bottom:2px solid var(--accent);border-right:2px solid var(--accent)}
.card + .card,.stack > * + *{margin-top:16px}
.grid2 > .card + .card,.grid3 > .card + .card{margin-top:0}
.card h3{margin-bottom:10px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.pill{display:inline-flex;align-items:center;gap:7px;height:24px;padding:0 10px;border-radius:3px;font:700 11px var(--f-head);letter-spacing:.09em;text-transform:uppercase;background:rgba(130,160,163,.1);color:var(--mute);border:1px solid rgba(130,160,163,.28);white-space:nowrap}
.pill.ok{background:var(--accent-dim);color:var(--accent);border-color:rgba(55,242,216,.4)}
.pill.grn{background:rgba(47,224,138,.13);color:#43e896;border-color:rgba(47,224,138,.42)}
.pill.atk{background:rgba(255,77,94,.15);color:var(--atk);border-color:rgba(255,77,94,.55)}
.pill.warn{background:rgba(240,179,74,.12);color:var(--warn);border-color:rgba(240,179,74,.5)}
.pill.dot::before,.pill.live::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
.pill.live::before{animation:pulse 1.4s infinite}
@keyframes pulse{50%{opacity:.25}}
/* BO1 / BO3 / BO5 chip */
.bo{display:inline-block;padding:1px 8px;font:700 11px/1.5 var(--f-head);letter-spacing:.08em;background:#050b0d;color:var(--ink);border:1px solid var(--line-strong);border-radius:2px}
.bo.bo3{background:rgba(55,242,216,.1);border-color:rgba(55,242,216,.6);color:var(--accent)}
.bo.bo5{background:transparent;color:var(--mute)}
.notice{border:1px solid var(--line);border-left:3px solid var(--warn);background:rgba(15,31,35,.6);padding:11px 14px;margin:12px 0}
.notice.ok{border-left-color:var(--accent)}.notice.bad{border-left-color:var(--atk)}
.empty{padding:42px 16px;text-align:center;color:var(--mute);border:1px dashed var(--line-strong);background:rgba(10,21,24,.5)}

/* versenyjegy (kezdőoldal + versenyoldal fejléc) */
.ticket{display:grid;grid-template-columns:1fr auto;background:
  linear-gradient(110deg,rgba(55,242,216,.09),transparent 58%),
  repeating-linear-gradient(135deg,rgba(55,242,216,.035) 0 2px,transparent 2px 16px),
  var(--paper);border:1px solid var(--line-strong);--cut:22px}
.ticket .l{padding:26px 30px}
.ticket .r{padding:22px 28px;background:rgba(2,7,8,.68);border-left:1px solid var(--line-strong);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-width:262px;text-align:center}
.ticket h1{margin:12px 0 8px}
.cdb small{display:block;color:var(--mute);font:600 11px var(--f-head);letter-spacing:.18em;text-transform:uppercase;margin-bottom:2px}
.cdb b{font:600 34px/1.1 var(--f-mono);letter-spacing:-.02em;color:var(--accent);text-shadow:0 0 18px rgba(55,242,216,.45)}
.metas{display:flex;flex-wrap:wrap;gap:8px 26px;margin-top:14px}
.metas div{display:flex;flex-direction:column}
.metas small{display:flex;align-items:center;gap:6px;color:var(--mute);font:600 10.5px var(--f-head);letter-spacing:.16em;text-transform:uppercase}
.metas small .ic{color:var(--accent)}
.metas span{font-weight:600}

/* verseny-állapotsáv */
.stepper{display:flex;overflow-x:auto;margin:16px 0 0;padding:0 0 4px;gap:0}
.stepper li{list-style:none;flex:1 0 auto;min-width:108px;font:600 11.5px var(--f-head);letter-spacing:.1em;text-transform:uppercase;color:var(--mute);padding:9px 8px 0 0;border-top:2px solid var(--line);margin-right:4px}
.stepper li.done{border-color:rgba(55,242,216,.55);color:var(--ink)}
.stepper li.cur{border-color:var(--accent);color:var(--accent);box-shadow:0 -3px 14px -4px rgba(55,242,216,.7)}

/* fülek */
.tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line);margin:24px 0 18px}
.tabs a{padding:11px 18px;text-decoration:none;font:600 13px var(--f-head);letter-spacing:.12em;text-transform:uppercase;border-bottom:2px solid transparent;white-space:nowrap;color:var(--mute)}
.tabs a:hover{color:var(--ink)}
.tabs a.on{color:var(--accent);border-color:var(--accent)}
.tabs .badge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;margin-left:8px;background:var(--atk);color:var(--on-atk);font:700 11px var(--f-head);border-radius:9px}

/* csapatelemek, táblák, űrlapok */
.logo{width:34px;height:34px;flex:none;display:grid;place-items:center;background:linear-gradient(140deg,hsl(var(--h) 55% 30%),hsl(var(--h) 60% 13%));border:1px solid hsl(var(--h) 55% 42%);color:#fff;font:700 11.5px var(--f-head);letter-spacing:.05em;border-radius:2px;clip-path:polygon(0 0,calc(100% - 6px) 0,100% 6px,100% 100%,6px 100%,0 calc(100% - 6px))}
.logo.has-img{background:var(--paper2);border-color:var(--line-strong)}
.logo.has-img img{width:100%;height:100%;object-fit:cover;display:block}
.logo.lg{width:64px;height:64px;font-size:19px;clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px))}
.teamrow{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.teamrow:first-child{border-top:0}
.teamrow .nm{font-weight:600}
.plist{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px;margin:8px 0 4px}
.pl{display:flex;align-items:center;gap:8px;padding:7px 9px;background:rgba(15,31,35,.75);border:1px solid var(--line);font-size:13px}
.pl .mono{font-size:12.5px;overflow:hidden;text-overflow:ellipsis}
details.tm{border-top:1px solid var(--line);padding:6px 0}
details.tm:first-of-type{border-top:0}
details.tm summary{display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none;padding:6px 0}
details.tm summary::-webkit-details-marker{display:none}
.tw{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:14px}
th{font:600 11.5px var(--f-head);letter-spacing:.14em;text-transform:uppercase;text-align:left;color:var(--mute);padding:8px 10px;border-bottom:1px solid var(--line-strong);white-space:nowrap}
td{padding:10px;border-bottom:1px solid var(--line);vertical-align:middle}
tbody tr:hover td{background:rgba(55,242,216,.03)}
td.act{white-space:nowrap;text-align:right}
td.act .btn{margin-left:4px}
.field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}
.field label{font:600 11.5px var(--f-head);letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.field input,.field select,.field textarea{background:#071113;border:1px solid var(--line-strong);border-radius:2px;padding:9px 11px;min-height:42px;width:100%}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}
.field textarea{min-height:110px;resize:vertical}
.field small{color:var(--mute)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{border:1px solid var(--line-strong);background:transparent;padding:6px 12px;border-radius:2px;cursor:pointer;font:600 12px var(--f-head);letter-spacing:.07em;text-transform:uppercase}
.chip:hover{border-color:var(--accent);color:var(--accent)}
.chip.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.chip.a{border-color:var(--atk)}.chip.b{border-color:var(--def)}.chip.dec{border-style:dashed;cursor:default}
.chip.dec:hover{border-color:var(--line-strong);color:inherit}
.chip[disabled]{opacity:.4;cursor:not-allowed}
