@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@500;600;700&family=Inter:wght@400;500;600;700&display=swap');
:root{--bg:#07070a;--p:#111118;--line:#37313f;--text:#f4f0f8;--muted:#a7a0ae;--purple:#b889ff}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 20% 0%,#241337 0,transparent 28%),linear-gradient(#08080b,#050507);color:var(--text);font-family:Inter,sans-serif;min-height:100vh}.shell{max-width:1380px;margin:auto;padding:0 28px 50px}
header{height:92px;border-bottom:1px solid #28242d;display:flex;align-items:center;gap:15px}.crest{width:58px;height:58px;display:grid;place-items:center;flex:0 0 auto}.crest img{width:58px;height:58px;object-fit:contain;display:block;filter:drop-shadow(0 0 10px #8d5ac544)}h1,h2{font-family:Cinzel;margin:0}h1{font-size:21px}header small{color:#887c91;font-size:10px;letter-spacing:.18em}header button{margin-left:auto}
button{cursor:pointer;border:1px solid #43394d;background:#15131a;color:#eee;border-radius:9px;padding:10px 14px;font-weight:600}.hero{display:flex;justify-content:space-between;align-items:end;padding:42px 0 25px}.hero span{font-size:10px;letter-spacing:.2em;color:#9b72c5}.hero h2{font-size:35px;margin:7px 0}.hero p{color:var(--muted);margin:0}.hero #add{background:#603891;border-color:#9b6ad0}
main{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{position:relative;background:linear-gradient(150deg,#17151d,#0c0c11);border:1px solid var(--line);border-radius:17px;padding:17px;transition:.2s;cursor:pointer;overflow:hidden}.card:hover{transform:translateY(-3px);border-color:#725788;box-shadow:0 15px 45px #0008}.portrait{display:block;width:120px;height:120px;object-fit:cover;border-radius:50%;margin:0 auto 13px;border:2px solid #a47ac8;box-shadow:0 0 0 5px #17131d,0 0 32px #8d5ad855}.name{text-align:center;font:700 clamp(17px,1.7vw,23px)/1.1 Cinzel;overflow-wrap:anywhere;min-height:48px}.role{text-align:center;color:#aaa2b1;font-size:12px;margin:5px 0 13px}.dom{border:1px solid #604476;background:#7c4fc314;border-radius:10px;padding:9px;display:flex;justify-content:space-between}.dom label{display:block;color:#a88fc0;font-size:9px;letter-spacing:.13em;text-transform:uppercase}.dom b{font-size:13px}.lv{font:700 16px Cinzel;color:#d9b8ff}.positions{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:9px}.pos{text-align:center;background:#0b0b0f;border:1px solid #292630;border-radius:8px;padding:6px 2px}.pos i{display:block;font-style:normal;height:30px}.pos i img{width:28px;height:28px;object-fit:contain;display:block;margin:auto}.pos small{display:block;color:#918a97;font-size:8px}.pos b{font-size:12px}.badge{position:absolute;top:11px;left:11px;background:#1b1423;border:1px solid #70508d;color:#d2b5f5;border-radius:99px;padding:4px 8px;font-size:9px;z-index:2}
.modal{position:fixed;inset:0;display:grid;place-items:center;padding:18px;z-index:10}.hidden{display:none}.backdrop{position:absolute;inset:0;background:#000b;backdrop-filter:blur(6px)}.dialog{position:relative;z-index:2;width:min(880px,100%);max-height:92vh;overflow:auto;background:#0d0d13;border:1px solid #51415e;border-radius:20px;padding:25px;box-shadow:0 30px 100px #000}.close{position:absolute;right:10px;top:7px;border:0;background:none;font-size:30px;color:#aaa}.detailhead{display:grid;grid-template-columns:220px 1fr;gap:25px;align-items:center}.detailimg{width:230px;height:230px;border-radius:50%;object-fit:cover;border:2px solid #a47ac8;box-shadow:0 0 0 7px #17131d,0 0 38px #8d5ad855}.detailname{font:700 clamp(25px,4vw,42px)/1.08 Cinzel;overflow-wrap:anywhere}.detailrole{color:#aaa2b1;margin:9px 0 16px}.section{margin-top:27px}.section h3{font:600 18px Cinzel;margin:0 0 12px}.skill{margin:10px 0}.skilltop,.xptop{display:flex;justify-content:space-between;color:#bbb4c1;font-size:12px}.bar{height:8px;background:#25212b;border-radius:99px;overflow:hidden;margin-top:5px}.fill{height:100%;background:linear-gradient(90deg,#68429c,#c28aff)}.xpgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.xpcard{padding:11px;border:1px solid #302b37;border-radius:11px;background:#111117}.xpcard strong{font-size:12px}
@media(max-width:980px){main{grid-template-columns:repeat(2,1fr)}}@media(max-width:650px){.shell{padding:0 14px 35px}.hero{display:block}.hero #add{margin-top:18px}main{grid-template-columns:1fr}.portrait{width:125px;height:125px}.detailhead{grid-template-columns:1fr;text-align:center}.detailimg{width:210px;height:210px}.xpgrid{grid-template-columns:1fr}}

.inline-icon{width:24px;height:24px;vertical-align:middle;object-fit:contain}.xpcard strong{display:flex;align-items:center;gap:5px}

.pos i img{display:block;width:28px;height:28px;margin:0 auto;object-fit:contain}.inline-icon{display:inline-block;width:24px;height:24px;object-fit:contain;vertical-align:middle}

.detailintro{min-width:0}
.detail-dom{max-width:max-content}
.post-title{display:flex;align-items:center;gap:7px;margin-bottom:12px}
.post-title .inline-icon{width:30px;height:30px}
.post-title strong{font-size:14px;flex:1}
.post-title span{font-family:Cinzel,serif;color:#d9b8ff;font-weight:700}
.note p{color:#b4aeba;line-height:1.55;margin:0}
.edit-title{font:600 27px Cinzel;margin-bottom:20px}
.edit-form{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.edit-form label,.edit-grid>label{display:flex;flex-direction:column;gap:6px;color:#aaa2b1;font-size:12px}
.edit-form input,.edit-form select,.edit-form textarea,.edit-grid input{
  width:100%;border:1px solid #38323e;background:#111117;color:#eee;border-radius:8px;padding:10px;font:inherit;outline:none
}
.edit-form textarea{resize:vertical}
.edit-form input:focus,.edit-form select:focus,.edit-form textarea:focus,.edit-grid input:focus{border-color:#8b61b4}
.edit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.edit-pos{border:1px solid #332d39;border-radius:11px;padding:12px;background:#111117;display:grid;grid-template-columns:1fr 1fr;gap:9px}
.edit-pos legend{grid-column:1/-1;color:#ddd;font-weight:600;display:flex;align-items:center;gap:6px}
.edit-pos legend img{width:24px;height:24px;object-fit:contain}
.edit-pos label{display:flex;flex-direction:column;gap:5px;color:#aaa2b1;font-size:11px}
.edit-pos label:last-child{grid-column:1/-1}
@media(max-width:650px){.edit-form,.edit-grid{grid-template-columns:1fr}.edit-pos{grid-template-columns:1fr 1fr}}

.tabs{display:flex;gap:10px;padding:24px 0 0;border-bottom:1px solid #28242d}.tab{min-width:150px;padding:14px 24px;border-radius:12px 12px 0 0;background:#0d0c12;border:1px solid #302a37;border-bottom:0;color:#aaa2b1;font-family:Cinzel,serif;font-size:16px;font-weight:600;letter-spacing:.02em;cursor:pointer;transition:.15s}.tab:hover{color:#eee5f5;background:#131019}.tab.active{background:#1b1424;border-color:#76538f;color:#fff;box-shadow:inset 0 -3px 0 #c28aff,0 -2px 14px #8d5ad822}.rankings{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;padding-bottom:30px}.ranking-card{background:linear-gradient(150deg,#17151d,#0c0c11);border:1px solid var(--line);border-radius:17px;padding:18px;overflow:hidden}.ranking-card h3{font:600 20px Cinzel;margin:0 0 12px;display:flex;align-items:center;gap:8px}.ranking-card h3 img{width:30px;height:30px;object-fit:contain}.ranking-card table{width:100%;border-collapse:collapse;font-size:12px}.ranking-card th{text-align:left;color:#817889;font-size:9px;letter-spacing:.12em;text-transform:uppercase;padding:7px 6px;border-bottom:1px solid #302b37}.ranking-card td{padding:8px 6px;border-bottom:1px solid #211e26}.ranking-card tbody tr:last-child td{border-bottom:0}.ranking-card td:first-child{width:36px;color:#82788b}.ranking-card td:last-child{text-align:right;color:#d9b8ff}@media(max-width:650px){.tabs{overflow-x:auto}.tab{min-width:130px}.rankings{grid-template-columns:1fr}}


/* V17 – Pořadí: číslo + jméno + úroveň, Progres: skutečný přehled získaných XP */

/* V19 – Pořadí: samostatný sloupec pro Lv.; Progres: skutečně oddělený přehled získaných XP */
.ranking-card table{table-layout:fixed}
.ranking-card td.rank-number{width:34px;padding-left:5px;padding-right:8px}
.ranking-card td.rank-player{padding-left:2px;padding-right:12px}
.ranking-card td.rank-level{width:72px;text-align:right;color:#e4c76a;font-size:11px;font-weight:700;white-space:nowrap;padding-left:8px;padding-right:6px}
.rank-name{display:block;overflow-wrap:anywhere}

.xp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.xp-tile{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:stretch;min-width:0;border:1px solid #28232e;border-radius:12px;background:linear-gradient(145deg,#141219,#0e0d12);padding:12px 13px 12px 9px;transition:border-color .15s,transform .15s}
.xp-tile:hover{border-color:#4b3b57;transform:translateY(-1px)}
.xp-tile-body{min-width:0;display:flex;flex-direction:column;gap:8px}
@media(max-width:760px){.xp-grid{grid-template-columns:1fr}}


/* V20 – Progres: kalendářní období, pouze historicky získané XP */

/* V22 – přihlášení chrání celý týmový web; po vstupu už se heslo znovu neptá */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* V31 – čistý přístupný vstupní portál: obrázek je pouze dekorativní pozadí */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;left:12px;top:10px;z-index:1000;padding:9px 13px;border-radius:8px;background:#15121c;color:#fff;border:1px solid #8e72ae;transform:translateY(-160%);transition:transform .15s;text-decoration:none;font-size:13px}.skip-link:focus{transform:translateY(0)}
.login-page{position:relative;width:100%;min-height:100vh;height:100vh;padding:0;overflow:hidden;background:#05080f}
.login-shell{position:relative;width:100%;height:100%;min-height:100vh;overflow:hidden;background:#05080f}
.login-art{position:absolute;inset:0;overflow:hidden;background:#05080f}
.login-art:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,8,15,.02) 0%,rgba(5,8,15,.01) 48%,rgba(5,8,15,.18) 100%),linear-gradient(0deg,rgba(5,8,15,.18) 0%,transparent 22%,transparent 80%,rgba(5,8,15,.12) 100%);pointer-events:none}
.login-art img{width:100%;height:100%;object-fit:cover;object-position:center center;display:block;filter:saturate(.92) contrast(1.03);user-select:none;-webkit-user-drag:none}
.login-card{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:0 3vw 0 29vw;background:transparent;pointer-events:none}
.login-panel{width:min(550px,42vw);padding:40px 46px 34px;border:1px solid rgba(173,190,225,.42);border-radius:20px;background:rgba(7,14,27,.76);box-shadow:0 25px 80px rgba(0,0,0,.44),inset 0 0 45px rgba(110,145,205,.06);backdrop-filter:blur(5px);text-align:center;pointer-events:auto}
.login-panel h1{font:600 clamp(28px,3vw,40px)/1.12 Cinzel,serif;letter-spacing:.035em;color:#f3f5fb;margin:0 0 12px;text-shadow:0 2px 16px rgba(0,0,0,.65)}
.login-team-name{margin:0 0 28px;color:#9fb3e5;font:500 clamp(18px,2vw,25px)/1.3 Cinzel,serif;letter-spacing:.03em;text-shadow:0 2px 12px rgba(0,0,0,.58)}
#login-form{width:100%;margin:0}
.login-input-wrap{height:58px;display:flex;align-items:center;border:1px solid rgba(177,193,224,.68);background:rgba(7,13,23,.72);border-radius:10px;padding:0 16px;box-shadow:inset 0 0 25px rgba(0,0,0,.38)}
.login-input-wrap:focus-within{border-color:#b8c9f1;box-shadow:0 0 0 3px rgba(145,170,224,.16),inset 0 0 25px rgba(0,0,0,.38)}
.login-input-wrap input{width:100%;height:100%;box-sizing:border-box;border:0;outline:0;background:transparent;color:#f4f0f8;padding:12px 2px;font:17px Inter,sans-serif;letter-spacing:.06em}
.login-input-wrap input::placeholder{color:#aeb8ca;opacity:1}
.login-submit{width:100%;height:58px;margin-top:16px;padding:0;border:1px solid rgba(188,202,238,.78);border-radius:10px;background:linear-gradient(180deg,rgba(111,137,198,.96),rgba(77,100,157,.96));color:#fff;box-shadow:0 10px 28px rgba(0,0,0,.25);cursor:pointer;font:600 14px Cinzel,serif;letter-spacing:.08em;text-shadow:0 1px 4px rgba(0,0,0,.35)}
.login-submit:hover{border-color:#dce5ff;background:linear-gradient(180deg,rgba(126,151,212,.98),rgba(88,111,171,.98))}
.login-submit:disabled{opacity:.7;cursor:wait}
.login-error{min-height:20px;margin:9px 0 0;color:#ffb0b5;font-size:12px;text-shadow:0 1px 5px #000}
.login-motto{margin:25px 0 0;color:#d7dbe6;font:italic 14px/1.65 Georgia,serif;letter-spacing:.025em;text-shadow:0 2px 10px rgba(0,0,0,.7)}
.login-input-wrap input:focus-visible{outline:2px solid #dbe6ff;outline-offset:2px;border-radius:6px}
.login-submit:focus-visible,.close:focus-visible,.tab:focus-visible,.btn:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid #dbe6ff;outline-offset:3px}
@media(max-width:1000px){.login-card{padding:0 4vw 0 28vw}.login-panel{width:min(500px,50vw)}}
@media(max-width:700px){.login-page,.login-shell{min-height:100svh;height:100svh}.login-art img{object-position:40% center}.login-card{justify-content:center;padding:0 18px}.login-panel{width:min(430px,100%);padding:34px 28px 30px;background:rgba(7,14,27,.80)}.login-panel h1{font-size:28px;margin-bottom:10px}.login-team-name{margin-bottom:24px}.login-input-wrap,.login-submit{height:56px}.login-motto{margin-top:22px;font-size:13px}}
