:root{--bg:#07111f;--panel:#0d1a2c;--panel2:#111f34;--gold:#e8bd63;--gold2:#ffdfa0;--blue:#4ca7ff;--text:#f6f0e4;--muted:#a9b6c8;--line:#e8bd6330;--shadow:0 28px 70px #0008}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 50% 0,#163257 0,#07111f 34rem,#050b14 100%);color:var(--text);font-family:Arial,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}.hidden{display:none!important}.hero{height:940px;position:relative;overflow:hidden;border-bottom:1px solid var(--line)}.hero-bg{width:100%;height:100%;object-fit:cover;object-position:center top}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,#02060d12 20%,#06101da8 62%,#07111fff 100%),linear-gradient(90deg,#040a14aa 0,transparent 42%,#040a1455)}.topnav{position:absolute;top:18px;left:50%;transform:translateX(-50%);width:min(1240px,calc(100% - 32px));z-index:5;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;border:1px solid #ffffff22;background:#06101dcc;backdrop-filter:blur(16px);border-radius:16px}.logo{display:flex;align-items:center;gap:10px;font-family:Georgia,serif}.logo span{display:grid;place-items:center;width:40px;height:40px;background:linear-gradient(145deg,var(--gold2),#a96d1c);color:#09111c;border-radius:11px 4px;font-weight:bold}.navlinks{display:flex;gap:24px;font-size:.9rem;font-weight:bold}.navlinks a:hover{color:var(--gold2)}.account-panel{position:absolute;top:100px;left:max(24px,calc((100% - 1240px)/2));z-index:4;width:360px;padding:24px;border:1px solid #ffffff22;border-radius:20px;background:linear-gradient(145deg,#0b1729ee,#07111fe8);backdrop-filter:blur(18px);box-shadow:var(--shadow)}.auth-head span,.section-head span,.modal-title span{color:var(--gold);letter-spacing:.18em;text-transform:uppercase;font-size:.72rem;font-weight:bold}.auth-head h2,.logged-card h2{font-family:Georgia,serif;font-size:2rem;margin:7px 0}.auth-head p,.logged-card p{color:var(--muted);margin:0 0 16px}.auth-tabs{display:flex;gap:8px;margin:16px 0}.auth-tabs button,.account-actions button,.admin-tabs button,.chat-tools button{border:1px solid #ffffff20;background:#12223a;color:white;padding:9px 11px;border-radius:9px}.auth-tabs button.active{background:var(--gold);color:#09111c}.inline-form{display:grid;gap:10px}.inline-form input,input,textarea,select{width:100%;padding:12px;border-radius:10px;border:1px solid #ffffff22;background:#081322;color:white}.gold-btn{padding:12px 16px;border:0;border-radius:10px;background:linear-gradient(145deg,var(--gold2),#bd7a24);color:#10151d;font-weight:bold}.form-error{color:#ff9d9d;margin-top:10px}.logged-top{display:flex;align-items:center;gap:14px}.profile-avatar,.big-avatar,.mini-avatar{overflow:hidden;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,var(--gold2),#9a641a);color:#07111f;font-family:Georgia,serif;font-weight:bold}.profile-avatar{width:68px;height:68px;font-size:1.8rem}.profile-avatar img,.big-avatar img,.mini-avatar img{width:100%;height:100%;object-fit:cover}.logged-top span,.unread-box span{color:var(--muted);font-size:.75rem;text-transform:uppercase}.quick-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.quick-stats div{padding:12px;text-align:center;background:#ffffff08;border-radius:11px}.quick-stats strong{display:block;color:var(--gold2);font-size:1.35rem}.quick-stats span{font-size:.68rem;color:var(--muted)}.unread-box{display:flex;justify-content:space-between;align-items:center;padding:13px;background:#2b4c7b55;border:1px solid #4ca7ff44;border-radius:11px}.unread-box strong{font-size:1.6rem}.account-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.account-actions button:last-child{grid-column:1/-1}.hero-copy{position:absolute;left:50%;bottom:66px;transform:translateX(-50%);width:min(1240px,calc(100% - 32px));z-index:3}.hero-copy>span{color:var(--gold);letter-spacing:.2em;text-transform:uppercase;font-size:.8rem}.hero-copy h1{font-family:Georgia,serif;font-size:clamp(3.4rem,8vw,7rem);line-height:.9;margin:10px 0}.hero-copy p{max-width:720px;color:#d1dae7;font-size:1.15rem;line-height:1.7}.hero-tags{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.hero-tags b{padding:9px 12px;border-radius:30px;border:1px solid #ffffff24;background:#091421aa;font-size:.8rem}.announcement{width:min(1180px,calc(100% - 32px));margin:34px auto 0;padding:18px 22px;border:1px solid var(--line);background:#0d1a2b;border-radius:14px;display:flex;gap:18px}.announcement span{color:var(--gold);text-transform:uppercase;font-size:.75rem;letter-spacing:.1em}.league-stats{width:min(1180px,calc(100% - 32px));margin:18px auto 0;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.league-stats div{padding:22px;border:1px solid #ffffff12;border-radius:14px;background:linear-gradient(145deg,#0e1c30,#0a1525)}.league-stats span{display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase}.league-stats strong{display:block;margin-top:8px;font-family:Georgia,serif;color:var(--gold2);font-size:2rem}.section{width:min(1180px,calc(100% - 32px));margin:auto;padding:95px 0}.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:30px}.section-head h2{font-family:Georgia,serif;font-size:clamp(2.2rem,5vw,3.7rem);margin:8px 0 0}.section-head p{max-width:520px;color:var(--muted);line-height:1.6}.tournament-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.tournament-card,.castle-card,.player-card,.pair-card,.history-card,.ranking-wrap>aside{border:1px solid var(--line);background:linear-gradient(145deg,#ffffff08,transparent 45%),var(--panel);border-radius:18px;box-shadow:var(--shadow)}.tournament-card{padding:24px;position:relative;overflow:hidden}.tournament-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--gold)}.status{display:inline-flex;padding:6px 9px;border-radius:30px;background:#ffffff0d;color:var(--gold2);font-size:.72rem;text-transform:uppercase}.tournament-card h3{font-family:Georgia,serif;font-size:1.6rem}.t-meta{display:grid;gap:8px;color:var(--muted);line-height:1.5}.t-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.t-actions button{padding:8px 10px;border:1px solid #ffffff22;border-radius:8px;background:#14243a;color:white}.ranking-wrap{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px}.ranking-wrap table{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--line);border-radius:18px;overflow:hidden}.ranking-wrap th,.ranking-wrap td{padding:16px;border-bottom:1px solid #ffffff0c;text-align:left}.ranking-wrap th{color:var(--muted);font-size:.72rem;text-transform:uppercase}.rank-player{display:flex;align-items:center;gap:10px}.mini-avatar{width:36px;height:36px}.rank-pos{color:var(--gold);font-weight:bold}.ranking-wrap aside{padding:26px;text-align:center}.ranking-wrap aside h3{font-family:Georgia,serif;font-size:1.8rem}.leader-crown{font-size:4.6rem;color:var(--gold)}.history-list{display:grid;gap:14px}.history-card{display:grid;grid-template-columns:150px 1fr 220px;gap:20px;align-items:center;padding:22px}.history-card .date{color:var(--gold);font-family:Georgia,serif}.history-card h3{font-family:Georgia,serif}.winner{color:var(--gold2);font-weight:bold}.castle-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.castle-card{padding:20px;border-top:3px solid var(--accent)}.castle-card h3{font-family:Georgia,serif}.castle-card small{color:var(--gold)}.castle-card p{color:var(--muted);line-height:1.55}.castle-card dl{font-size:.82rem}.castle-card dt{color:var(--gold);margin-top:8px}.castle-card dd{margin:3px 0;color:#c9d2de}.players-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.player-card{padding:22px}.player-card .big-avatar{width:78px;height:78px;font-size:1.8rem}.player-card h3{font-family:Georgia,serif}.player-card .role{color:var(--gold)}.player-card p{color:var(--muted);line-height:1.55}.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stat-row div{padding:10px;background:#ffffff08;border-radius:9px;text-align:center}.stat-row strong{display:block;color:var(--gold2)}.pairs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.pair-card{padding:22px}.pair-avatars{display:flex}.pair-avatars .big-avatar{width:66px;height:66px;margin-right:-12px;border:3px solid var(--panel)}.chem-bar{height:8px;background:#ffffff0d;border-radius:99px;overflow:hidden}.chem-bar span{display:block;height:100%;background:linear-gradient(90deg,#4ca7ff,var(--gold));width:var(--chem)}.motto{width:min(1180px,calc(100% - 32px));margin:0 auto 80px;padding:50px;text-align:center;border:1px solid var(--line);border-radius:20px;background:linear-gradient(90deg,#07111fee,#07111f88),url('assets/banner.png') center 46%/cover;font-family:Georgia,serif;font-size:clamp(1.7rem,4vw,3rem)}.chat-widget{position:fixed;right:18px;bottom:18px;z-index:70}.chat-toggle{border:0;border-radius:28px;padding:14px 18px;background:#2f73d9;color:white;box-shadow:0 12px 30px #0009}.chat-box{position:absolute;right:0;bottom:60px;width:380px;height:560px;display:flex;flex-direction:column;background:#0a1627;border:1px solid #ffffff25;border-radius:18px;overflow:hidden;box-shadow:0 30px 80px #000c}.chat-head{padding:14px 16px;display:flex;justify-content:space-between;background:#11233d}.chat-head span{display:block;color:var(--gold);font-size:.68rem;text-transform:uppercase}.chat-head button{background:none;border:0;color:white;font-size:1.6rem}.chat-tools{display:flex;gap:8px;padding:10px}.chat-tools button,.chat-tools select{flex:1}.messages{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:12px;scrollbar-width:thin;scrollbar-color:#4b6586 #0a1627;overscroll-behavior:contain}.messages::-webkit-scrollbar{width:10px}.messages::-webkit-scrollbar-track{background:#0a1627}.messages::-webkit-scrollbar-thumb{background:#4b6586;border:2px solid #0a1627;border-radius:20px}.messages::-webkit-scrollbar-thumb:hover{background:#6d88ad}.msg{padding:10px 12px;margin:8px 0;background:#15263e;border-radius:12px}.msg.mine{background:#24589c}.msg small{display:block;color:#b8c4d2;margin-bottom:4px}.msg-head{display:flex;align-items:center;gap:8px}.msg-head .mini-avatar{width:26px;height:26px}#messageForm{display:flex;gap:8px;padding:10px}.notif-fab{position:fixed;right:120px;bottom:20px;z-index:71;border:0;border-radius:50px;padding:13px;background:#13243b;color:white}.notifications{position:fixed;right:20px;bottom:82px;width:350px;max-height:430px;overflow:auto;background:#0b1728;border:1px solid #ffffff22;border-radius:15px;padding:12px;z-index:90}.notification{padding:12px;border-bottom:1px solid #ffffff12}.modal{position:fixed;inset:0;z-index:100;background:#000c;display:grid;place-items:center;padding:20px}.modal-card{position:relative;width:min(760px,100%);max-height:92vh;overflow:auto;background:#0b1729;border:1px solid #ffffff22;border-radius:20px;padding:28px;box-shadow:var(--shadow)}.admin-modal{width:min(1050px,100%)}.close{position:absolute;right:14px;top:10px;border:0;background:none;color:white;font-size:1.8rem}.modal-title h2{font-family:Georgia,serif;font-size:2.2rem}.profile-edit-grid{display:grid;grid-template-columns:250px 1fr;gap:26px}.big-avatar{width:120px;height:120px;font-size:2.2rem;margin-bottom:14px}.profile-edit-grid form,.admin-pane form{display:grid;gap:11px}.admin-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.admin-pane{padding:16px;border:1px solid #ffffff12;border-radius:14px;background:#ffffff05}.form-row{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.invite-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}textarea{min-height:100px}@media(max-width:1050px){.castle-grid{grid-template-columns:repeat(3,1fr)}.players-grid{grid-template-columns:repeat(3,1fr)}.navlinks{display:none}.account-panel{width:330px}.tournament-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:820px){.hero{height:1080px}.account-panel{top:84px;left:16px;right:16px;width:auto}.hero-copy{bottom:40px}.league-stats{grid-template-columns:repeat(2,1fr)}.ranking-wrap{grid-template-columns:1fr}.history-card{grid-template-columns:1fr}.players-grid,.pairs-grid{grid-template-columns:repeat(2,1fr)}.section-head{display:block}.profile-edit-grid{grid-template-columns:1fr}.form-row{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.hero{height:1120px}.hero-copy h1{font-size:3.3rem}.league-stats,.tournament-grid,.castle-grid,.players-grid,.pairs-grid,.invite-grid{grid-template-columns:1fr}.ranking-wrap{overflow-x:auto}.chat-box{width:calc(100vw - 20px);right:-8px}.section{padding:70px 0}.account-actions{grid-template-columns:1fr}.account-actions button:last-child{grid-column:auto}}
.tournament-card.status-live{border-color:#4ca7ff66;box-shadow:0 0 0 1px #4ca7ff22,0 28px 70px #0008}
.tournament-card.status-setup{border-color:#e8bd6366}
.live-pulse{display:inline-flex;align-items:center;gap:7px;color:#85c6ff;font-weight:bold}
.live-pulse:before{content:"";width:9px;height:9px;border-radius:50%;background:#4ca7ff;box-shadow:0 0 0 6px #4ca7ff22;animation:pulse 1.6s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 11px #4ca7ff00}}
.tournament-roster{display:grid;gap:8px;margin-top:16px;padding-top:15px;border-top:1px solid #ffffff12}
.roster-player{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:9px;background:#ffffff07;border-radius:10px}
.roster-player .mini-avatar{width:34px;height:34px}
.roster-player small{display:block;color:var(--muted);margin-top:3px}
.accepted-mark{color:#65d788;font-weight:bold}.waiting-mark{color:#f2bd62;font-weight:bold}
.setup-help{padding:12px;border:1px solid #4ca7ff33;background:#17345a55;color:#c7d9ee;border-radius:10px;line-height:1.5}
.setup-players{display:grid;gap:10px}
.setup-player-row{display:grid;grid-template-columns:1.2fr .8fr 1fr 1fr auto;gap:8px;align-items:end;padding:12px;border:1px solid #ffffff12;background:#ffffff05;border-radius:12px}
.setup-player-row label{font-size:.75rem;color:var(--muted)}
.setup-player-row label>*{margin-top:5px}
.remove-row{width:40px;height:40px;border:1px solid #ff797944;background:#5f202044;color:#ffb0b0;border-radius:10px}
.secondary-btn{padding:11px 14px;border:1px solid #ffffff22;background:#14243a;color:white;border-radius:10px}
.duration-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}
.result-summary{margin-top:14px;padding:13px;border-left:3px solid var(--gold);background:#ffffff06;border-radius:8px;color:#cbd5e1;line-height:1.55}
.game-clock{color:#85c6ff;font-weight:bold}
@media(max-width:760px){.setup-player-row{grid-template-columns:1fr 1fr}.setup-player-row .remove-row{grid-column:2;justify-self:end}}

.castle-card{overflow:hidden;padding:0!important}
.castle-image{height:155px;position:relative;background:#091321 center/cover no-repeat;border-bottom:1px solid #ffffff15}
.castle-image:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,#0d1a2c 100%)}
.castle-card-content{padding:20px}
.castle-card h3{margin-top:8px}
.tournament-admin-form{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.tournament-admin-form>label{display:grid;gap:6px;color:#c9d4e1;font-size:.82rem}
.tournament-admin-form>fieldset,.tournament-admin-form>button,.tournament-admin-form>label:has(textarea){grid-column:1/-1}
.castle-picker{border:1px solid #ffffff18;border-radius:13px;padding:16px}
.castle-picker legend{padding:0 8px;color:var(--gold);font-weight:bold}
.castle-check-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.castle-check{position:relative;min-height:100px;border:1px solid #ffffff18;border-radius:10px;overflow:hidden;background:#081322 center/cover no-repeat}
.castle-check input{position:absolute;left:8px;top:8px;width:20px;height:20px;z-index:2;accent-color:#d9a84a}
.castle-check span{position:absolute;inset:auto 0 0;padding:28px 8px 8px;background:linear-gradient(transparent,#06101df2);font-weight:bold;text-align:center}
.castle-check:has(input:checked){border-color:var(--gold);box-shadow:0 0 0 2px #e8bd6330}
.castle-check-actions{display:flex;gap:8px;margin-top:12px}
.tournament-specs{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:14px}
.tournament-specs div{padding:10px;background:#ffffff07;border-radius:9px}
.tournament-specs span{display:block;color:var(--muted);font-size:.68rem;text-transform:uppercase}
.tournament-rules{margin-top:12px;padding:12px;border-left:3px solid var(--gold);background:#ffffff06;border-radius:8px;color:#ccd6e2}
@media(max-width:820px){.tournament-admin-form{grid-template-columns:1fr}.tournament-admin-form>label{grid-column:1}.castle-check-grid{grid-template-columns:repeat(2,1fr)}}

.tournament-room-modal{width:min(1200px,98vw)}
.room-status{padding:10px 14px;margin-bottom:16px;border:1px solid #4ca7ff33;background:#17345a55;border-radius:10px;color:#bdd9f5}
.room-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.7fr);gap:18px}
.room-main{min-width:0}.room-admin-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:12px;margin-bottom:14px;border:1px solid var(--line);background:#ffffff06;border-radius:12px}
.room-admin-bar>div{margin-right:auto}.room-admin-bar span{display:block;color:var(--muted);font-size:.75rem}
.room-teams{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.room-team{border:1px solid #ffffff18;background:#0d1b2e;border-radius:14px;padding:14px}.room-team.locked{border-color:#d9994b66}.room-team.waiting,.room-team.ffa{grid-column:1/-1}
.room-team-head{display:flex;justify-content:space-between;align-items:center}.room-team-head h3{margin:0;font-family:Georgia,serif}.room-team-head span{font-size:.75rem;color:var(--muted)}
.room-members{display:grid;gap:8px;margin:12px 0}.room-member{display:grid;grid-template-columns:36px 1fr auto;gap:9px;align-items:center;padding:9px;background:#ffffff07;border-radius:10px}.room-member small{display:block;color:var(--muted);margin-top:3px}.room-member select{min-width:140px;padding:7px}
.room-team-actions{display:flex;gap:8px}.room-profile-box{margin-top:14px;padding:16px;border:1px solid #ffffff18;border-radius:14px;background:#ffffff05}.room-profile-box form{display:grid;grid-template-columns:auto 1fr 1fr auto;gap:9px;align-items:center}
.tournament-chat{height:660px;display:flex;flex-direction:column;border:1px solid #ffffff20;border-radius:14px;background:#091526;overflow:hidden}
.tournament-chat-tabs{display:flex;gap:6px;padding:10px;background:#11233d}.tournament-chat-tabs button{flex:1;padding:9px;border:1px solid #ffffff20;background:#14243a;color:white;border-radius:8px}.tournament-chat-tabs button.active{background:var(--gold);color:#111}.tournament-chat-tabs button:disabled{opacity:.4}
.tournament-messages{flex:1;min-height:0;overflow-y:auto;padding:12px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#4b6586 #091526}.tournament-messages::-webkit-scrollbar{width:10px}.tournament-messages::-webkit-scrollbar-thumb{background:#4b6586;border-radius:20px}
#tournamentMessageForm{display:flex;gap:8px;padding:10px;border-top:1px solid #ffffff14}#tournamentMessageForm input{flex:1}
.room-applications{width:100%;display:grid;gap:7px;margin-top:8px}.application-row{display:grid;grid-template-columns:36px 1fr auto auto auto;gap:8px;align-items:center;padding:8px;background:#ffffff06;border-radius:9px}
.empty-team{color:var(--muted);font-style:italic}
@media(max-width:900px){.room-layout{grid-template-columns:1fr}.tournament-chat{height:520px}.room-profile-box form{grid-template-columns:1fr}.room-teams{grid-template-columns:1fr}.room-team.waiting,.room-team.ffa{grid-column:auto}}

/* Profesjonalne przyciski panelu turnieju */
.room-admin-bar{display:grid!important;grid-template-columns:minmax(220px,1fr) repeat(4,minmax(145px,auto));gap:10px!important}
.room-admin-title{display:flex;flex-direction:column;justify-content:center}
.room-action-btn{display:flex;align-items:center;gap:10px;min-height:58px;padding:10px 13px;border:1px solid #ffffff20;border-radius:12px;background:linear-gradient(145deg,#172a44,#0e1c31);color:white;text-align:left;box-shadow:0 8px 20px #0004;transition:.2s transform,.2s border-color,.2s background}
.room-action-btn:hover{transform:translateY(-2px);border-color:#e8bd6370;background:linear-gradient(145deg,#203754,#122640)}
.room-action-btn>span{display:grid;place-items:center;width:36px;height:36px;flex:0 0 auto;border-radius:10px;background:#ffffff0d;color:var(--gold2);font-size:1.2rem}
.room-action-btn b,.room-action-btn small{display:block}.room-action-btn small{margin-top:3px;color:var(--muted);font-size:.68rem}
.room-action-btn.start-btn{background:linear-gradient(145deg,#c9953f,#8b5a18);color:#10151d}.room-action-btn.start-btn small{color:#271b0e}
.room-action-btn.finish-btn{background:linear-gradient(145deg,#337e64,#1a4f3d)}
.room-applications,.room-direct-add{grid-column:1/-1}
.direct-add-panel{display:grid;grid-template-columns:1fr minmax(230px,360px) auto;gap:10px;align-items:center;padding:14px;border:1px solid #4ca7ff33;background:#102744;border-radius:12px}
.direct-add-panel span{display:block;color:var(--muted);font-size:.75rem;margin-top:3px}

/* Klikalna karta */
.clickable-tournament{cursor:pointer;transition:transform .2s,border-color .2s}
.clickable-tournament:hover{transform:translateY(-5px);border-color:#e8bd6375}
.clickable-tournament:after{content:"Kliknij kartę, aby wejść do pokoju";display:block;margin-top:16px;padding-top:12px;border-top:1px solid #ffffff12;color:#8293aa;font-size:.72rem;text-align:center}

/* Nagłówek pokoju i pełne dane */
.room-status{padding:0!important;border:0!important;background:none!important}
.room-hero-info{padding:22px;margin-bottom:18px;border:1px solid #e8bd6330;border-radius:18px;background:linear-gradient(120deg,#152a45e8,#091526f2),url('assets/banner.png') center 46%/cover;box-shadow:0 18px 45px #0007}
.room-hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.room-kicker{color:var(--gold);font-size:.7rem;text-transform:uppercase;letter-spacing:.17em}.room-hero-top h3{font-family:Georgia,serif;font-size:clamp(1.8rem,4vw,3rem);margin:7px 0}
.room-status-badge{padding:8px 12px;border-radius:30px;background:#ffffff12;border:1px solid #ffffff1c;font-size:.75rem;font-weight:bold;text-transform:uppercase}
.room-status-badge.status-live{background:#256b5655;color:#83e0b6}.room-status-badge.status-open{background:#275b9155;color:#91c9ff}.room-status-badge.status-finished{background:#805d2255;color:#ffd488}
.room-details-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:18px}.room-details-grid>div{padding:12px;border-radius:11px;background:#06101ca8;border:1px solid #ffffff10}.room-details-grid span{display:block;color:var(--muted);font-size:.67rem;text-transform:uppercase;margin-bottom:5px}
.room-description,.room-rules{margin-top:12px;padding:13px;border-radius:11px;background:#06101c9e;border:1px solid #ffffff10}.room-description p,.room-rules p{margin:6px 0 0;color:#cbd5e1;line-height:1.55}.room-rules{border-left:3px solid var(--gold)}
.room-castles{margin-top:12px}.room-castles>span{display:block;color:var(--muted);font-size:.68rem;text-transform:uppercase;margin-bottom:7px}.room-castles>div{display:flex;gap:6px;flex-wrap:wrap}.room-castles b{padding:6px 9px;border-radius:20px;background:#ffffff10;font-size:.72rem}

/* Tło gracza zależne od zamku */
.room-member{position:relative;overflow:hidden;grid-template-columns:36px minmax(0,1fr) auto auto!important;min-height:66px}
.room-member.has-castle-bg{background-image:linear-gradient(90deg,#081321f2 0%,#081321cb 48%,#08132188 100%),var(--player-castle-bg);background-position:center;background-size:cover}
.room-member-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#08132145,transparent);z-index:0}.room-member>*:not(.room-member-shade){position:relative;z-index:1}
.room-member-data{min-width:0}.room-member-data b,.room-member-data small{white-space:normal;text-shadow:0 2px 5px #000}.room-team-select{min-width:130px!important}
.remove-participant-btn{width:32px;height:32px;border:1px solid #ff777744;border-radius:9px;background:#5d2020cc;color:#ffc0c0;font-size:1.1rem}

/* Profil wyboru */
.room-profile-hint{grid-column:1/-1;margin:0;padding:10px 12px;border:1px solid #4ca7ff30;background:#17345a45;border-radius:9px;color:#c8d9ed;font-size:.8rem}
.room-profile-box button:disabled,.room-profile-box input:disabled,.room-profile-box select:disabled{opacity:.48;cursor:not-allowed}

/* Modal systemowy zamiast alert/confirm */
.system-modal-card{width:min(470px,100%);text-align:center}
.system-modal-icon{display:grid;place-items:center;width:68px;height:68px;margin:0 auto 15px;border-radius:50%;background:linear-gradient(145deg,var(--gold2),#a56b1d);color:#0b1421;font-size:2rem;font-weight:bold;box-shadow:0 12px 30px #0006}
.system-modal-card p{color:var(--muted);line-height:1.6}
.system-modal-actions{display:flex;justify-content:center;gap:10px;margin-top:20px}.system-modal-actions button{min-width:120px}
#systemModalExtra{margin-top:14px}

@media(max-width:1100px){.room-admin-bar{grid-template-columns:repeat(2,1fr)!important}.room-admin-title{grid-column:1/-1}.room-details-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.room-admin-bar{grid-template-columns:1fr!important}.room-details-grid{grid-template-columns:1fr}.direct-add-panel{grid-template-columns:1fr}.room-member{grid-template-columns:36px 1fr!important}.room-team-select,.remove-participant-btn{grid-column:2}}

/* Messengerowy układ głównego czatu */
.chat-box{width:680px!important;height:590px!important}
.messenger-layout{display:grid;grid-template-columns:220px minmax(0,1fr);flex:1;min-height:0}
.conversation-sidebar{min-width:0;overflow-y:auto;border-right:1px solid #ffffff15;background:#0a1424;padding:8px;scrollbar-width:thin}
.conversation-section-title{padding:12px 10px 7px;color:#7f90a8;font-size:.68rem;text-transform:uppercase;letter-spacing:.12em}
.conversation-users{display:grid;gap:5px}
.conversation-item{width:100%;display:flex;align-items:center;gap:10px;padding:9px;border:1px solid transparent;border-radius:11px;background:transparent;color:white;text-align:left}
.conversation-item:hover{background:#ffffff08}.conversation-item.active{background:#244e83;border-color:#4ca7ff44}
.conversation-avatar-wrap{position:relative;flex:0 0 auto}.conversation-avatar{width:40px!important;height:40px!important;font-size:1rem}.general-avatar{display:grid;place-items:center;border-radius:50%;background:#244e83}
.conversation-label{min-width:0}.conversation-label b,.conversation-label small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conversation-label small{margin-top:3px;color:#94a4ba;font-size:.68rem}
.unread-dot{position:absolute;right:-4px;top:-4px;display:grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border-radius:20px;background:#e83939;color:white;border:2px solid #0a1424;font-size:.62rem;font-weight:bold;box-shadow:0 0 0 3px #e8393920}
.conversation-empty{padding:10px;color:var(--muted);font-size:.75rem}
.conversation-main{display:flex;flex-direction:column;min-width:0;min-height:0}
.conversation-main .messages{flex:1}
.conversation-main #messageForm{border-top:1px solid #ffffff12}

/* Lider rankingu */
.leader-avatar-wrap{display:flex;justify-content:center;width:100%;margin:0 auto 14px}.leader-avatar-wrap .big-avatar{margin-left:auto;margin-right:auto}

/* Pokój turnieju: kompaktowe centrum dowodzenia */
.room-admin-bar{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.room-admin-title{grid-column:1/-1!important;padding-bottom:4px}
.room-action-btn{min-width:0!important;width:100%}
.room-action-btn div{min-width:0}.room-action-btn b,.room-action-btn small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Ładne przyciski drużyn */
.room-team-actions button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:10px 15px;border-radius:10px;font-weight:bold;transition:.2s transform,.2s filter}
.room-team-actions button:hover{transform:translateY(-2px);filter:brightness(1.08)}
.team-join-btn{border:1px solid #4ca7ff55;background:linear-gradient(145deg,#2f78c8,#1d4d88);color:white}
.team-lock-btn{border:1px solid #d8a34e55;background:linear-gradient(145deg,#bf8430,#7b4d17);color:#fff6e4}
.team-lock-btn.unlock{border-color:#57c98b55;background:linear-gradient(145deg,#2d8b62,#1b5a40)}

/* Wybór zamku pod avatarem */
.room-member-avatar-column{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:5px;width:92px}
.inline-castle-select{width:92px!important;max-width:92px;padding:5px 6px!important;border-radius:7px!important;font-size:.62rem!important;background:#06101ddd!important}
.room-member{grid-template-columns:92px minmax(0,1fr) auto auto!important}
.room-member-data small{font-size:.75rem}
.room-profile-box{display:none!important}

/* Uporządkowanie pokoju */
.room-layout{align-items:start}.room-main{overflow:hidden}
@media(max-width:900px){.chat-box{width:calc(100vw - 20px)!important}.messenger-layout{grid-template-columns:180px minmax(0,1fr)}.room-admin-bar{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:620px){.messenger-layout{grid-template-columns:78px minmax(0,1fr)}.conversation-label{display:none}.conversation-item{justify-content:center}.conversation-section-title{text-align:center;font-size:.55rem;padding-left:0;padding-right:0}.room-admin-bar{grid-template-columns:1fr!important}.room-member{grid-template-columns:92px minmax(0,1fr)!important}.room-team-select,.remove-participant-btn{grid-column:2}}

/* Mały avatar i nick w każdej wiadomości */
.chat-message-head{display:flex;align-items:center;gap:8px;margin-bottom:7px}
.chat-message-avatar{width:28px!important;height:28px!important;flex:0 0 28px;font-size:.72rem}
.chat-message-head b{display:block;font-size:.82rem}
.chat-message-head small{display:block;margin-top:1px!important;color:#9bacc1!important;font-size:.63rem}
.chat-message-body{line-height:1.45}

/* Kolory drużyn */
.room-team{position:relative;overflow:hidden;transition:.2s transform,.2s box-shadow,.2s border-color}
.room-team:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.18}
.room-team>*{position:relative;z-index:1}
.room-team.team-red{border-color:#ef444466}.room-team.team-red:before{background:linear-gradient(145deg,#ef4444aa,transparent 70%)}
.room-team.team-blue{border-color:#3b82f666}.room-team.team-blue:before{background:linear-gradient(145deg,#3b82f6aa,transparent 70%)}
.room-team.team-tan{border-color:#a1620766}.room-team.team-tan:before{background:linear-gradient(145deg,#a16207aa,transparent 70%)}
.room-team.team-green{border-color:#22c55e66}.room-team.team-green:before{background:linear-gradient(145deg,#22c55eaa,transparent 70%)}
.room-team.team-orange{border-color:#f9731666}.room-team.team-orange:before{background:linear-gradient(145deg,#f97316aa,transparent 70%)}
.room-team.team-purple{border-color:#a855f766}.room-team.team-purple:before{background:linear-gradient(145deg,#a855f7aa,transparent 70%)}
.room-team.team-teal{border-color:#14b8a666}.room-team.team-teal:before{background:linear-gradient(145deg,#14b8a6aa,transparent 70%)}
.room-team.team-pink{border-color:#ec489966}.room-team.team-pink:before{background:linear-gradient(145deg,#ec4899aa,transparent 70%)}
.room-team-head h3 small{font-size:.66rem;color:var(--muted);font-family:Arial,sans-serif;font-weight:normal}

/* Drag & drop graczy */
.draggable-player{cursor:grab}.draggable-player:active{cursor:grabbing}.draggable-player.dragging{opacity:.45;transform:scale(.98)}
.room-team.drag-over{transform:translateY(-3px);border-color:var(--gold)!important;box-shadow:0 0 0 3px #e8bd6330,0 18px 40px #0008}
.room-team.drag-over:after{content:"Upuść gracza tutaj";position:absolute;inset:8px;display:grid;place-items:center;border:2px dashed var(--gold);border-radius:10px;background:#07111fdd;color:var(--gold2);font-weight:bold;z-index:5}

/* Kontrolki zamku i bohatera przy graczu */
.room-member{grid-template-columns:46px minmax(120px,1fr) minmax(115px,170px) minmax(140px,210px) auto!important}
.room-member-avatar-column{width:46px!important}
.room-castle-control,.room-hero-select{position:relative;z-index:2;width:100%!important;min-width:0!important;padding:7px 8px!important;font-size:.72rem!important;background:#071321dd!important}
.room-member-data small{font-weight:bold;color:#e6edf7}
.room-team-select{display:none!important}
.team-leave-btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 15px;border:1px solid #e8797955;border-radius:10px;background:linear-gradient(145deg,#8f3434,#5a2020);color:white;font-weight:bold}

@media(max-width:850px){
 .room-member{grid-template-columns:42px minmax(0,1fr)!important}
 .room-member-avatar-column{width:42px!important}
 .room-castle-control,.room-hero-select,.remove-participant-btn{grid-column:2}
}

/* Hotfix: przycisk usuwania gracza zawsze mieści się w karcie */
.room-member{padding-right:46px!important}
.remove-participant-btn{
  position:absolute!important;
  top:50%!important;
  right:8px!important;
  transform:translateY(-50%)!important;
  z-index:4!important;
  width:30px!important;
  height:30px!important;
  min-width:30px!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
}
.room-member .room-hero-select,
.room-member .room-castle-control{max-width:100%}

/* Hotfix: avatary w bocznej liście czatu */
.conversation-avatar{
  width:38px!important;
  height:38px!important;
  min-width:38px!important;
  max-width:38px!important;
  min-height:38px!important;
  max-height:38px!important;
  border-radius:50%!important;
  overflow:hidden!important;
  display:grid!important;
  place-items:center!important;
  flex:0 0 38px!important;
}
.conversation-avatar img{
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:cover!important;
  display:block!important;
}
.conversation-avatar-wrap{
  width:38px!important;
  height:38px!important;
  min-width:38px!important;
  flex:0 0 38px!important;
  overflow:visible!important;
}
.conversation-item{overflow:hidden}
.conversation-label{flex:1}

/* Przycisk plus przy nagłówku Turnieje */
.section-head-actions{display:flex;align-items:center;gap:12px}
.add-tournament-fab{
  width:46px;height:46px;border-radius:50%;border:1px solid #e8bd6355;
  background:linear-gradient(145deg,#f2c970,#a96b1b);color:#0c1320;
  font-size:1.8rem;font-weight:bold;line-height:1;
  display:grid;place-items:center;box-shadow:0 10px 24px #0007;
  transition:.2s transform,.2s filter;
}
.add-tournament-fab:hover{transform:translateY(-2px) scale(1.03);filter:brightness(1.08)}

/* Avatar w samym oknie rozmowy — zawsze mały */
.chat-message-avatar{
  width:28px!important;height:28px!important;min-width:28px!important;max-width:28px!important;
  min-height:28px!important;max-height:28px!important;flex:0 0 28px!important;
  border-radius:50%!important;overflow:hidden!important;display:grid!important;place-items:center!important;
}
.chat-message-avatar img{
  width:28px!important;height:28px!important;min-width:28px!important;max-width:28px!important;
  object-fit:cover!important;display:block!important;
}
.msg-head .mini-avatar{width:28px!important;height:28px!important;min-width:28px!important;max-width:28px!important}

/* Turnieje: plus dokładnie w linii z tytułem */
.section-title-line{display:flex;align-items:center;gap:14px}
.section-title-line h2{margin-right:0}
.section-title-line .add-tournament-fab{margin-top:8px;flex:0 0 46px}

/* Trwający turniej mocno zielony */
.tournament-card.status-live{
  border-color:#39d98a!important;
  box-shadow:0 0 0 2px #39d98a35,0 25px 70px #0009!important;
  background:linear-gradient(145deg,#174b37aa,transparent 50%),var(--panel)!important;
}
.tournament-card.status-live:before{background:#39d98a!important}
.tournament-card.status-live .status{background:#166c48!important;color:#b8ffdb!important}

/* Gracze na karcie turnieju pogrupowani według drużyn */
.tournament-card-teams{display:grid;gap:10px;margin-top:16px}
.tournament-card-team{padding:10px;border:1px solid #ffffff18;border-radius:12px;background:#ffffff05;position:relative;overflow:hidden}
.tournament-card-team:before{content:"";position:absolute;inset:0;opacity:.14;pointer-events:none}
.tournament-card-team>*{position:relative;z-index:1}
.tournament-card-team-title{font-weight:bold;margin-bottom:8px}
.tournament-card-team-members{display:grid;gap:7px}
.tournament-card-team.team-red:before{background:#ef4444}.tournament-card-team.team-blue:before{background:#3b82f6}
.tournament-card-team.team-tan:before{background:#a16207}.tournament-card-team.team-green:before{background:#22c55e}
.tournament-card-team.team-orange:before{background:#f97316}.tournament-card-team.team-purple:before{background:#a855f7}
.tournament-card-team.team-teal:before{background:#14b8a6}.tournament-card-team.team-pink:before{background:#ec4899}
.tournament-card-team.unassigned:before{background:#64748b}
.roster-player-castle{position:relative;overflow:hidden;min-height:52px;grid-template-columns:36px 1fr!important}
.roster-player-castle.has-castle{
  background-image:linear-gradient(90deg,#071321ec,#0713219c),var(--roster-castle)!important;
  background-position:center!important;background-size:cover!important;
}
.roster-player-shade{position:absolute;inset:0;pointer-events:none}
.roster-player-castle>*:not(.roster-player-shade){position:relative;z-index:1}
.roster-player-castle small{color:#f2f5f9!important;font-weight:bold;text-shadow:0 2px 4px #000}

/* Formularz wyniku */
#finishGameForm{display:grid;gap:13px}
#finishGameForm label{display:grid;gap:6px;color:#cbd5e1}

/* Cała karta turnieju według statusu */
.tournament-card.status-live{
  background:linear-gradient(145deg,#145c3c 0%,#0f422f 58%,#0a2f22 100%)!important;
  border-color:#48e49b!important;
  color:#f3fff9!important;
}
.tournament-card.status-live .t-meta,
.tournament-card.status-live p{color:#d7f9e8!important}
.tournament-card.status-finished{
  background:linear-gradient(145deg,#6a2020 0%,#4b1717 58%,#311010 100%)!important;
  border-color:#f06c6c!important;
  color:#fff6f6!important;
}
.tournament-card.status-finished:before{background:#f06c6c!important}
.tournament-card.status-finished .status{background:#8f2a2a!important;color:#ffd8d8!important}
.tournament-card.status-finished .t-meta,
.tournament-card.status-finished p{color:#f4cccc!important}

/* Czas w wyniku jako X h Y min */
.duration-unit{display:grid!important;grid-template-columns:1fr auto!important;align-items:center!important;gap:7px!important}
.duration-unit span{min-width:34px;padding:11px 9px;border:1px solid #ffffff18;border-radius:9px;background:#ffffff07;color:var(--gold2);text-align:center}

/* Panel edycji statystyk */
#statsForm label{display:grid;gap:6px;color:#cbd5e1;font-size:.8rem}
#statsForm .form-row label{min-width:0}

/* Rozbudowana historia ligi */
.history-card-expanded{grid-template-columns:140px 1fr!important;align-items:start!important}
.history-main h3{margin-top:0}
.history-teams{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}
.history-team{position:relative;overflow:hidden;padding:10px;border:1px solid #ffffff18;border-radius:10px;background:#ffffff06}
.history-team:before{content:"";position:absolute;inset:0;opacity:.16;pointer-events:none}
.history-team>*{position:relative;z-index:1}
.history-team b,.history-team span{display:block}.history-team span{margin-top:4px;color:#d7dee9;font-size:.78rem}
.history-team.team-red:before{background:#ef4444}.history-team.team-blue:before{background:#3b82f6}
.history-team.team-tan:before{background:#a16207}.history-team.team-green:before{background:#22c55e}
.history-team.team-orange:before{background:#f97316}.history-team.team-purple:before{background:#a855f7}
.history-team.team-teal:before{background:#14b8a6}.history-team.team-pink:before{background:#ec4899}
.history-result-line{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}
.history-result-line span{padding:8px 10px;border-radius:9px;background:#ffffff08;border:1px solid #ffffff12;font-weight:bold}
.history-notes{margin-top:12px;padding:11px;border-left:3px solid var(--gold);background:#ffffff06;border-radius:8px;color:#d6deea}
@media(max-width:700px){.history-teams{grid-template-columns:1fr}.history-card-expanded{grid-template-columns:1fr!important}}

.stats-calculated-note{padding:11px 13px;border:1px solid #4ca7ff33;background:#17345a45;border-radius:10px;color:#c9d9ec;font-size:.8rem}
#statsForm input[readonly]{opacity:.72;cursor:not-allowed}.room-action-btn.edit-result-btn{background:linear-gradient(145deg,#7d4fb0,#4d2b73)}
.history-team span{line-height:1.7}
.castle-stats-panel{margin-bottom:28px;padding:22px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#13243a,#0a1627);box-shadow:var(--shadow)}
.castle-stats-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:16px}.castle-stats-head span{color:var(--gold);font-size:.7rem;text-transform:uppercase;letter-spacing:.15em}.castle-stats-head h3{font-family:Georgia,serif;font-size:2rem;margin:5px 0 0}.castle-stats-head p{color:var(--muted)}
.castle-stats-table-wrap{overflow-x:auto}.castle-stats-table{width:100%;border-collapse:collapse}.castle-stats-table th,.castle-stats-table td{padding:12px;border-bottom:1px solid #ffffff10;text-align:left}.castle-stats-table th{color:var(--muted);font-size:.68rem;text-transform:uppercase}
.castle-stat-name{display:flex;align-items:center;gap:10px}.castle-stat-name img{width:52px;height:34px;object-fit:cover;border-radius:7px}

/* Wiki bohaterów */
.heroes-wiki-section{position:relative}
.heroes-wiki-toolbar{
  display:grid;
  grid-template-columns:minmax(260px,1fr) minmax(180px,240px) minmax(180px,240px);
  gap:12px;
  margin-bottom:14px;
}
.hero-search-box{
  display:flex;
  align-items:center;
  gap:9px;
  padding:0 13px;
  border:1px solid #ffffff18;
  border-radius:12px;
  background:#0b182a;
}
.hero-search-box input{
  width:100%;
  border:0;
  outline:0;
  background:transparent;
  color:white;
}
.hero-wiki-summary{
  margin-bottom:14px;
  color:var(--muted);
  font-size:.82rem;
}
.hero-wiki-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}
.hero-wiki-card{
  overflow:hidden;
  border:1px solid #ffffff18;
  border-radius:15px;
  background:linear-gradient(145deg,#14253b,#091525);
  box-shadow:0 14px 35px #0005;
  cursor:pointer;
  transition:.2s transform,.2s border-color,.2s box-shadow;
}
.hero-wiki-card:hover{
  transform:translateY(-5px);
  border-color:#e8bd6370;
  box-shadow:0 22px 45px #0008;
}
.hero-wiki-portrait{
  position:relative;
  height:190px;
  overflow:hidden;
  background:radial-gradient(circle,#294b72,#081321);
}
.hero-wiki-portrait img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.hero-wiki-portrait-fallback{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  font-family:Georgia,serif;
  font-size:4rem;
  color:var(--gold2);
}
.hero-town-badge{
  position:absolute;
  left:10px;
  bottom:10px;
  padding:6px 9px;
  border:1px solid #ffffff22;
  border-radius:20px;
  background:#06101ddd;
  color:#f3e4c5;
  font-size:.68rem;
  font-weight:bold;
}
.hero-wiki-card-body{padding:15px}
.hero-wiki-card-body>span{
  color:var(--gold);
  font-size:.66rem;
  text-transform:uppercase;
  letter-spacing:.1em;
}
.hero-wiki-card-body h3{
  margin:5px 0;
  font-family:Georgia,serif;
  font-size:1.4rem;
}
.hero-wiki-card-body>p{
  min-height:18px;
  margin:0 0 12px;
  color:var(--muted);
  font-size:.75rem;
}
.hero-card-specialty{
  display:flex;
  align-items:center;
  gap:9px;
  padding-top:11px;
  border-top:1px solid #ffffff10;
}
.hero-card-specialty small,.hero-card-specialty b{display:block}
.hero-card-specialty small{color:var(--muted);font-size:.62rem}
.hero-card-specialty b{margin-top:2px;font-size:.78rem}
.wiki-icon-wrap,.wiki-icon-fallback{
  position:relative;
  width:38px;
  height:38px;
  min-width:38px;
  display:grid;
  place-items:center;
  overflow:hidden;
  border:1px solid #e8bd6345;
  border-radius:8px;
  background:#17283e;
  color:var(--gold2);
  font-weight:bold;
}
.wiki-icon-wrap img{width:100%;height:100%;object-fit:cover}
.wiki-icon-wrap>span{display:none}
.wiki-icon-wrap.image-missing>span{display:grid}
.wiki-icon-wrap.large,.wiki-icon-fallback.large{
  width:62px;
  height:62px;
  min-width:62px;
  border-radius:12px;
  font-size:1.3rem;
}
.wiki-empty{
  grid-column:1/-1;
  padding:35px;
  border:1px dashed #ffffff22;
  border-radius:14px;
  color:var(--muted);
  text-align:center;
}
.hero-wiki-modal-card{
  width:min(900px,96vw);
  max-height:92vh;
  overflow-y:auto;
}
.hero-detail-header{
  display:grid;
  grid-template-columns:160px 1fr;
  gap:22px;
  align-items:center;
  margin-bottom:20px;
}
.hero-detail-portrait{
  height:190px;
  overflow:hidden;
  border:1px solid #e8bd6340;
  border-radius:14px;
  background:#11243c;
}
.hero-detail-portrait img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.hero-detail-town{
  color:var(--gold);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.7rem;
}
.hero-detail-header h2{
  margin:6px 0;
  font-family:Georgia,serif;
  font-size:2.6rem;
}
.hero-detail-header p{color:var(--muted)}
.hero-detail-section{
  margin-top:15px;
  padding:16px;
  border:1px solid #ffffff13;
  border-radius:13px;
  background:#ffffff05;
}
.hero-detail-section>span,.hero-specialty-panel span,.hero-extra-grid>div>span{
  display:block;
  margin-bottom:8px;
  color:var(--gold);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.66rem;
}
.hero-detail-section p{
  margin:0;
  line-height:1.65;
  color:#d6deea;
}
.hero-specialty-panel{
  display:flex;
  gap:15px;
  align-items:flex-start;
  margin-top:15px;
  padding:17px;
  border:1px solid #e8bd6335;
  border-radius:13px;
  background:linear-gradient(145deg,#4d391c55,#111d2e);
}
.hero-specialty-panel h3{margin:0 0 7px;font-family:Georgia,serif}
.hero-specialty-panel p{margin:0;color:#d6deea;line-height:1.55}
.hero-detail-skills{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
}
.hero-detail-skill{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px;
  border-radius:10px;
  background:#071321;
}
.hero-detail-skill b,.hero-detail-skill small{display:block}
.hero-detail-skill small{margin-top:3px;color:var(--muted)}
.hero-extra-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:15px;
}
.hero-extra-grid>div{
  padding:15px;
  border:1px solid #ffffff13;
  border-radius:13px;
  background:#ffffff05;
}
.hero-extra-entry{display:flex;align-items:center;gap:10px}
@media(max-width:1050px){
  .hero-wiki-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:780px){
  .heroes-wiki-toolbar{grid-template-columns:1fr}
  .hero-wiki-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero-detail-header{grid-template-columns:110px 1fr}
  .hero-detail-portrait{height:140px}
}
@media(max-width:520px){
  .hero-wiki-grid{grid-template-columns:1fr}
  .hero-detail-header{grid-template-columns:1fr}
  .hero-detail-portrait{height:260px}
  .hero-detail-skills,.hero-extra-grid{grid-template-columns:1fr}
}

/* Zamek jako wejście do encyklopedii */
.clickable-castle-card{cursor:pointer}
.clickable-castle-card:hover{transform:translateY(-5px);border-color:#e8bd6370}
.clickable-castle-card .castle-card-content:after{
  content:"Kliknij, aby zobaczyć stworzenia i bohaterów";
  display:block;margin-top:14px;padding-top:10px;border-top:1px solid #ffffff12;
  color:var(--gold);font-size:.7rem
}

/* Encyklopedia zamku */
.castle-wiki-modal-card{width:min(1180px,97vw);max-height:94vh;overflow-y:auto}
.castle-wiki-header{
  min-height:210px;padding:28px;border:1px solid #e8bd6335;border-radius:17px;
  background-position:center;background-size:cover;display:flex;align-items:end
}
.castle-wiki-header span{color:var(--gold);font-size:.68rem;text-transform:uppercase;letter-spacing:.15em}
.castle-wiki-header h2{font-family:Georgia,serif;font-size:3rem;margin:6px 0}
.castle-wiki-header p{max-width:760px;margin:0;color:#d7e0ec;line-height:1.55}
.castle-wiki-columns{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(0,1.25fr);gap:18px;margin-top:18px}
.castle-creatures-column,.castle-heroes-column{padding:16px;border:1px solid #ffffff16;border-radius:15px;background:#091525}
.castle-column-head span{color:var(--gold);font-size:.65rem;text-transform:uppercase;letter-spacing:.12em}
.castle-column-head h3{font-family:Georgia,serif;font-size:1.8rem;margin:5px 0 14px}
.castle-creatures-list{display:grid;gap:9px}
.castle-creature-card{display:grid;grid-template-columns:62px 1fr;gap:10px;align-items:center;padding:8px;border-radius:10px;background:#ffffff06}
.castle-creature-image{width:62px;height:48px;overflow:hidden;border-radius:8px;background:#152943}
.castle-creature-image img,.castle-creature-placeholder{width:100%;height:100%;object-fit:cover}
.castle-creature-placeholder{display:grid;place-items:center;color:var(--gold2);font-weight:bold;font-size:1.2rem}
.castle-creature-card small,.castle-creature-card b{display:block}.castle-creature-card small{color:var(--muted);font-size:.62rem;margin-bottom:3px}
.castle-mini-heroes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.castle-mini-hero{
  display:flex;align-items:center;gap:8px;min-width:0;padding:8px;border:1px solid #ffffff14;
  border-radius:10px;background:#ffffff05;color:white;text-align:left
}
.castle-mini-hero:hover{border-color:#e8bd6355;background:#ffffff0b}
.castle-mini-portrait{width:38px;height:38px;min-width:38px;border-radius:8px;overflow:hidden;background:#172942;display:grid;place-items:center}
.castle-mini-portrait img,.castle-mini-fallback{width:100%;height:100%;object-fit:cover}
.castle-mini-fallback{display:grid;place-items:center;color:var(--gold2);font-weight:bold}
.castle-mini-hero>span:last-child{min-width:0}.castle-mini-hero b,.castle-mini-hero small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.castle-mini-hero b{font-size:.76rem}.castle-mini-hero small{margin-top:2px;color:var(--muted);font-size:.59rem}

/* Wybór bohatera pod wyborem zamku */
.room-player-selects{display:grid;gap:6px;min-width:150px}
.room-player-selects select{width:100%!important;min-width:0!important}
.room-player-selects select:disabled{opacity:.5;cursor:not-allowed}
.room-member{grid-template-columns:46px minmax(120px,1fr) minmax(170px,240px) auto!important}

/* Usunięto osobną dużą galerię bohaterów */
.heroes-wiki-section{display:none!important}

@media(max-width:980px){
  .castle-mini-heroes{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:760px){
  .castle-wiki-columns{grid-template-columns:1fr}
  .castle-mini-heroes{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:480px){
  .castle-mini-heroes{grid-template-columns:1fr}
  .castle-wiki-header h2{font-size:2.2rem}
}

/* V10.2 — kompaktowy wybór zamku i bohatera w rozpoczętym turnieju */
.room-member{
  grid-template-columns:42px minmax(105px,1fr) minmax(130px,180px) 34px!important;
  gap:8px!important;
  padding:8px 42px 8px 8px!important;
}
.room-member-avatar-column{
  width:42px!important;
  min-width:42px!important;
}
.room-member-avatar-column .mini-avatar{
  width:36px!important;
  height:36px!important;
  min-width:36px!important;
  max-width:36px!important;
}
.room-member-data{
  min-width:0!important;
}
.room-member-data b,
.room-member-data small{
  display:block!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.room-player-selects{
  width:100%!important;
  min-width:0!important;
  max-width:180px!important;
  gap:4px!important;
}
.room-player-selects select,
.room-castle-control,
.room-hero-select{
  width:100%!important;
  min-width:0!important;
  max-width:180px!important;
  height:30px!important;
  padding:4px 24px 4px 7px!important;
  font-size:.66rem!important;
  line-height:1!important;
}
.remove-participant-btn{
  right:6px!important;
  width:26px!important;
  height:26px!important;
  min-width:26px!important;
}

/* Węższy pokój / mniejsze ekrany */
@media(max-width:1050px){
  .room-member{
    grid-template-columns:38px minmax(90px,1fr) minmax(115px,155px) 30px!important;
    gap:6px!important;
  }
  .room-player-selects,
  .room-player-selects select,
  .room-castle-control,
  .room-hero-select{
    max-width:155px!important;
  }
}
@media(max-width:760px){
  .room-member{
    grid-template-columns:38px minmax(0,1fr)!important;
    padding-right:38px!important;
  }
  .room-player-selects{
    grid-column:2!important;
    width:100%!important;
    max-width:none!important;
  }
  .room-player-selects select,
  .room-castle-control,
  .room-hero-select{
    max-width:none!important;
    width:100%!important;
  }
}

/* V10.5 — pełne karty jednostek Zamku */
.castle-creatures-column{min-width:0}
.castle-creatures-list{display:grid;gap:14px}
.castle-creature-full-card{
  overflow:hidden;
  border:1px solid #ffffff16;
  border-radius:14px;
  background:linear-gradient(145deg,#112139,#071321);
}
.creature-level-title{
  padding:9px 12px;
  border-bottom:1px solid #ffffff12;
  background:#ffffff06;
  color:var(--gold);
  font-size:.7rem;
  font-weight:bold;
  text-transform:uppercase;
  letter-spacing:.1em;
}
.creature-duel-head{
  display:grid;
  grid-template-columns:1fr 28px 1fr;
  gap:8px;
  align-items:center;
  padding:12px;
}
.creature-version{
  min-width:0;
  text-align:center;
}
.creature-version img,.creature-image-fallback{
  width:100%;
  height:92px;
  object-fit:cover;
  display:block;
  border:1px solid #ffffff18;
  border-radius:10px;
  background:#1a2c45;
}
.creature-image-fallback{
  display:grid;
  place-items:center;
  color:var(--gold2);
  font-family:Georgia,serif;
  font-size:2rem;
}
.creature-version b{
  display:block;
  margin-top:7px;
  overflow:hidden;
  color:#f8ead0;
  font-size:.77rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.creature-versus{
  color:var(--gold);
  font-size:1.2rem;
  text-align:center;
}
.creature-stats-table{
  border-top:1px solid #ffffff10;
  border-bottom:1px solid #ffffff10;
}
.creature-stat-row{
  display:grid;
  grid-template-columns:1fr 105px 1fr;
  align-items:center;
  min-height:31px;
  border-bottom:1px solid #ffffff08;
}
.creature-stat-row:last-child{border-bottom:0}
.creature-stat-value{
  padding:5px 8px;
  color:#edf3fa;
  font-size:.73rem;
  font-weight:bold;
  text-align:center;
}
.creature-stat-label{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  height:100%;
  padding:4px 6px;
  border-right:1px solid #ffffff0d;
  border-left:1px solid #ffffff0d;
  background:#ffffff04;
  color:var(--muted);
  font-size:.62rem;
}
.creature-stat-label img{
  width:20px;
  height:20px;
  object-fit:cover;
  border-radius:4px;
}
.creature-abilities{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  padding:10px 12px;
}
.creature-abilities>div{
  display:flex;
  align-items:center;
  gap:7px;
  min-width:0;
  padding:7px;
  border-radius:8px;
  background:#ffffff05;
}
.creature-abilities .wiki-icon-wrap,
.creature-abilities .wiki-icon-fallback{
  width:26px;
  height:26px;
  min-width:26px;
}
.creature-abilities b{
  color:#dce4ee;
  font-size:.66rem;
  line-height:1.35;
}
.creature-description{
  margin:0;
  padding:10px 12px;
  color:#cbd5e1;
  font-size:.68rem;
  line-height:1.55;
}
.creature-specialist{
  padding:8px 12px 11px;
  border-top:1px solid #ffffff0c;
  color:var(--muted);
  font-size:.67rem;
}
.creature-specialist b{color:var(--gold2)}
.creature-no-data{
  padding:25px;
  border:1px dashed #ffffff20;
  border-radius:12px;
  color:var(--muted);
  text-align:center;
}
@media(max-width:760px){
  .creature-stat-row{grid-template-columns:1fr 92px 1fr}
  .creature-version img,.creature-image-fallback{height:120px}
}

/* V10.6 — kompaktowa lista jednostek i szczegóły po kliknięciu */
.castle-creatures-list{
  display:grid!important;
  gap:7px!important;
}
.castle-creature-compact{
  display:grid;
  grid-template-columns:28px 42px minmax(0,1fr) 18px;
  gap:8px;
  align-items:center;
  width:100%;
  padding:7px 9px;
  border:1px solid #ffffff14;
  border-radius:9px;
  background:#ffffff05;
  color:white;
  text-align:left;
  cursor:pointer;
}
.castle-creature-compact:hover{
  border-color:#e8bd6355;
  background:#ffffff0b;
  transform:translateX(2px);
}
.compact-creature-level{
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  border-radius:50%;
  background:#e8bd6318;
  color:var(--gold2);
  font-size:.66rem;
  font-weight:bold;
}
.compact-creature-icon{
  width:42px;
  height:34px;
  overflow:hidden;
  border:1px solid #ffffff16;
  border-radius:7px;
  background:#172942;
}
.compact-creature-icon img,
.compact-creature-fallback{
  width:100%;
  height:100%;
  object-fit:cover;
}
.compact-creature-fallback{
  display:grid;
  place-items:center;
  color:var(--gold2);
  font-weight:bold;
}
.compact-creature-names{
  min-width:0;
}
.compact-creature-names b,
.compact-creature-names small{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.compact-creature-names b{
  font-size:.73rem;
}
.compact-creature-names small{
  margin-top:2px;
  color:var(--muted);
  font-size:.62rem;
}
.compact-creature-arrow{
  color:var(--gold);
  font-size:1.2rem;
  text-align:right;
}

.creature-wiki-modal-card{
  width:min(820px,96vw);
  max-height:94vh;
  overflow-y:auto;
}
.creature-modal-title span{
  color:var(--gold);
  font-size:.67rem;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.creature-modal-title h2{
  margin:6px 0 16px;
  font-family:Georgia,serif;
  font-size:2rem;
}
.creature-modal-duel{
  display:grid;
  grid-template-columns:1fr 38px 1fr;
  gap:12px;
  align-items:center;
}
.creature-modal-version{
  text-align:center;
}
.creature-modal-version img,
.creature-modal-version .creature-image-fallback{
  width:100%;
  height:180px;
  object-fit:cover;
  border:1px solid #ffffff18;
  border-radius:12px;
  background:#172942;
}
.creature-modal-version h3{
  margin:8px 0 0;
  font-family:Georgia,serif;
}
.creature-modal-versus{
  color:var(--gold);
  font-size:1.8rem;
  text-align:center;
}
.creature-modal-stats{
  margin-top:16px;
  overflow:hidden;
  border:1px solid #ffffff14;
  border-radius:12px;
}
.creature-modal-abilities{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:14px;
}
.creature-modal-abilities>div{
  padding:12px;
  border:1px solid #ffffff14;
  border-radius:10px;
  background:#ffffff05;
}
.creature-modal-abilities span{
  display:block;
  margin-bottom:5px;
  color:var(--gold);
  font-size:.62rem;
  text-transform:uppercase;
}
.creature-modal-abilities b{
  color:#dce4ee;
  font-size:.74rem;
  line-height:1.45;
}
.creature-detail-description{
  margin-top:14px;
  padding:14px;
  border:1px solid #ffffff14;
  border-radius:10px;
  background:#ffffff05;
}
.creature-detail-description span{
  color:var(--gold);
  font-size:.62rem;
  text-transform:uppercase;
}
.creature-detail-description p{
  margin:8px 0 0;
  color:#d5deea;
  line-height:1.65;
  font-size:.78rem;
}
@media(max-width:600px){
  .creature-modal-duel{grid-template-columns:1fr}
  .creature-modal-versus{transform:rotate(90deg)}
  .creature-modal-version img,
  .creature-modal-version .creature-image-fallback{height:220px}
  .creature-modal-abilities{grid-template-columns:1fr}
}

/* V10.7 — pełna widoczność obrazów jednostek 100x120 */
.creature-modal-version{
  display:flex;
  flex-direction:column;
  align-items:center;
}
.creature-modal-version img,
.creature-modal-version .creature-image-fallback{
  width:100px!important;
  height:120px!important;
  max-width:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  background:#0a1525!important;
  image-rendering:auto;
}
.creature-modal-version h3{
  width:100%;
  text-align:center;
}

/* Małe ikonki także zachowują pełny obraz zamiast przycinania */
.compact-creature-icon img{
  object-fit:contain!important;
  object-position:center!important;
  background:#0a1525!important;
}

/* V10.8 — układ szczegółów jednostki inspirowany klasyczną tabelą HoMM */
.creature-wiki-modal-card{
  width:min(720px,96vw)!important;
  background:linear-gradient(145deg,#2c2414,#15110a)!important;
  border-color:#8d6d2f!important;
}
.creature-modal-title{
  padding:10px 14px;
  border:1px solid #8d6d2f;
  background:linear-gradient(#5f0c0c,#350505);
  text-align:center;
}
.creature-modal-title span{color:#e8d9a8!important}
.creature-modal-title h2{margin:4px 0 0!important;font-size:1.45rem!important}
.creature-modal-duel{
  grid-template-columns:1fr 44px 1fr!important;
  margin-top:0!important;
  padding:12px;
  border-right:1px solid #8d6d2f;
  border-left:1px solid #8d6d2f;
  background:linear-gradient(90deg,#3f3219,#241c0d,#3f3219);
}
.creature-modal-version img,
.creature-modal-version .creature-image-fallback{
  width:100px!important;height:120px!important;object-fit:contain!important;
  border-color:#8d6d2f!important;background:#d9d4c7!important;
}
.creature-modal-version h3{font-size:1rem!important;color:white}
.creature-modal-versus{color:#d6b15e!important}
.creature-modal-stats{margin-top:0!important;border-radius:0!important;border-color:#8d6d2f!important}
.creature-stat-row{min-height:32px!important;border-color:#6f5525!important;background:#2e2615}
.creature-stat-label{background:#17140d!important;border-color:#6f5525!important}
.creature-stat-label img{width:24px!important;height:24px!important}
.creature-stat-value{font-size:.82rem!important}
.creature-modal-abilities{
  margin-top:0!important;gap:0!important;border:1px solid #8d6d2f;border-top:0
}
.creature-modal-abilities>div{
  border:0!important;border-radius:0!important;background:#2e2615!important;
}
.creature-modal-abilities>div+div{border-left:1px solid #8d6d2f!important}
.creature-detail-description{
  margin-top:0!important;border-radius:0!important;border:1px solid #8d6d2f!important;
  border-top:0!important;background:#2e2615!important
}
.creature-specialist{
  border:1px solid #8d6d2f!important;border-top:0!important;background:#2e2615
}

/* V10.9 — dodatkowe przemiany Przystani i Fabryki */
.creature-extra-upgrades{
  padding:14px;
  border:1px solid #8d6d2f;
  border-top:0;
  background:#2e2615;
}
.creature-extra-upgrades>span{
  display:block;
  margin-bottom:10px;
  color:#d6b15e;
  font-size:.65rem;
  text-transform:uppercase;
  letter-spacing:.1em;
}
.creature-extra-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.creature-extra-card{
  padding:12px;
  border:1px solid #6f5525;
  background:#1d180e;
  text-align:center;
}
.creature-extra-card img,
.creature-extra-card .creature-image-fallback{
  width:100px;
  height:120px;
  margin:0 auto;
  object-fit:contain;
  background:#d9d4c7;
  border:1px solid #8d6d2f;
}
.creature-extra-card h3{
  margin:8px 0;
  font-family:Georgia,serif;
}
.creature-extra-stats{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:5px;
  text-align:left;
}
.creature-extra-stats small{
  padding:5px;
  background:#ffffff06;
  color:#cbd5e1;
}
.creature-extra-card p{
  margin:9px 0 0;
  color:#d6deea;
  font-size:.7rem;
  line-height:1.45;
}
@media(max-width:560px){
  .creature-extra-grid{grid-template-columns:1fr}
}


/* V11.4 — wspólny kalendarz dostępności */
.availability-panel{
  position:absolute;
  top:100px;
  right:max(24px,calc((100% - 1240px)/2));
  z-index:4;
  width:430px;
  padding:22px;
  border:1px solid #ffffff22;
  border-radius:20px;
  background:linear-gradient(145deg,#0b1729ee,#07111fe8);
  backdrop-filter:blur(18px);
  box-shadow:var(--shadow);
}

.availability-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}

.availability-head span{
  color:var(--gold);
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size:.68rem;
  font-weight:bold;
}

.availability-head h2{
  margin:5px 0 0;
  font-family:Georgia,serif;
  font-size:1.65rem;
}

.availability-nav{
  display:flex;
  gap:5px;
}

.availability-nav button{
  min-width:34px;
  height:34px;
  padding:0 9px;
  border:1px solid #ffffff20;
  border-radius:8px;
  background:#12223a;
  color:white;
}

.availability-nav button:hover{
  border-color:var(--gold);
  color:var(--gold2);
}

.availability-month-row{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:12px;
  margin:18px 0 10px;
}

.availability-month-row strong{
  text-transform:capitalize;
  color:var(--gold2);
}

.availability-month-row small{
  color:var(--muted);
  font-size:.65rem;
  text-align:right;
}

.availability-weekdays,
.availability-calendar{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:5px;
}

.availability-weekdays{
  margin-bottom:5px;
}

.availability-weekdays span{
  color:var(--muted);
  font-size:.62rem;
  text-align:center;
  text-transform:uppercase;
}

.availability-empty{
  min-height:40px;
}

.availability-day{
  position:relative;
  min-width:0;
  height:42px;
  padding:0;
  border:1px solid #ffffff12;
  border-radius:9px;
  background:#ffffff05;
  color:#dce6f2;
}

.availability-day span{
  position:absolute;
  left:7px;
  top:5px;
  font-size:.72rem;
}

.availability-day b{
  position:absolute;
  right:5px;
  bottom:4px;
  display:grid;
  place-items:center;
  min-width:17px;
  height:17px;
  padding:0 4px;
  border-radius:20px;
  background:#06101dcc;
  color:white;
  font-size:.58rem;
}

.availability-day:hover{
  border-color:#e8bd6377;
  transform:translateY(-1px);
}

.availability-day.intensity-1{background:#315b5e44}
.availability-day.intensity-2{background:#2d7a6f66}
.availability-day.intensity-3{background:#3f9d7588}
.availability-day.intensity-4{background:#d3a94d66;border-color:#e8bd6388}

.availability-day.selected{
  box-shadow:inset 0 0 0 2px var(--gold);
}

.availability-day.selected:after{
  content:"✓";
  position:absolute;
  right:5px;
  top:3px;
  color:var(--gold2);
  font-size:.64rem;
  font-weight:bold;
}

.availability-day.today span{
  color:#87c8ff;
  font-weight:bold;
}

.availability-day.best-overlap{
  border-color:var(--gold);
}

.availability-legend{
  display:flex;
  gap:14px;
  margin-top:12px;
  color:var(--muted);
  font-size:.64rem;
}

.availability-legend span{
  display:flex;
  align-items:center;
  gap:5px;
}

.availability-dot{
  width:10px;
  height:10px;
  border-radius:3px;
  background:#ffffff10;
}

.availability-dot.mine{
  box-shadow:inset 0 0 0 2px var(--gold);
}

.availability-dot.overlap{
  background:#d3a94d88;
}

.availability-best{
  margin-top:13px;
  padding:12px 13px;
  border:1px solid #e8bd6330;
  border-radius:11px;
  background:#ffffff06;
}

.availability-best span,
.availability-best b,
.availability-best small{
  display:block;
}

.availability-best span{
  color:var(--gold);
  font-size:.62rem;
  text-transform:uppercase;
}

.availability-best b{
  margin-top:4px;
  text-transform:capitalize;
}

.availability-best small{
  margin-top:5px;
  color:var(--muted);
  line-height:1.4;
}

.availability-day-details{
  position:absolute;
  right:22px;
  left:22px;
  bottom:22px;
  z-index:5;
  padding:14px;
  border:1px solid #ffffff22;
  border-radius:12px;
  background:#081322f5;
  box-shadow:0 18px 45px #000b;
}

.availability-day-details>span,
.availability-day-details>b{
  display:block;
  text-transform:capitalize;
}

.availability-day-details>span{
  color:var(--gold);
  font-size:.68rem;
}

.availability-day-details>b{
  margin:4px 0 10px;
}

.availability-day-details>div{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.availability-day-details small{
  display:flex;
  align-items:center;
  gap:5px;
  padding:5px 8px;
  border-radius:20px;
  background:#ffffff08;
}

.availability-day-details img,
.availability-day-details i{
  width:20px;
  height:20px;
  border-radius:50%;
  object-fit:cover;
}

.availability-day-details i{
  display:grid;
  place-items:center;
  background:var(--gold);
  color:#07111f;
  font-style:normal;
  font-weight:bold;
}

.availability-details-close{
  position:absolute;
  top:6px;
  right:7px;
  border:0;
  background:none;
  color:white;
  font-size:1.2rem;
}

@media(max-width:1180px){
  .availability-panel{
    width:390px;
  }
}

@media(max-width:900px){
  .hero{
    height:auto;
    min-height:1320px;
  }

  .availability-panel{
    top:470px;
    left:16px;
    right:16px;
    width:auto;
  }

  .hero-copy{
    bottom:38px;
  }
}

@media(max-width:560px){
  .availability-panel{
    top:500px;
    padding:16px;
  }

  .availability-head{
    display:block;
  }

  .availability-nav{
    margin-top:12px;
  }

  .availability-nav button{
    flex:1;
  }

  .availability-month-row{
    align-items:start;
  }

  .availability-day{
    height:39px;
  }

  .availability-day-details{
    left:16px;
    right:16px;
    bottom:16px;
  }
}


/* Zarządzanie graczami */
.player-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.player-admin-card{padding:20px;border:1px solid #ffffff14;border-radius:14px;background:#ffffff05}
.player-admin-card h3{margin:0 0 8px;font-family:Georgia,serif;font-size:1.35rem}
.player-admin-card form{display:grid;gap:12px}
.player-admin-card label{display:grid;gap:6px;color:#c9d4e1;font-size:.82rem}
.admin-help{margin:0 0 18px;color:var(--muted);line-height:1.55}
.danger-zone{border-color:#ff707044;background:linear-gradient(145deg,#5c191925,#ffffff03)}
.danger-btn{padding:12px 16px;border:1px solid #ff7777;border-radius:10px;background:linear-gradient(145deg,#d94e4e,#8e2020);color:#fff;font-weight:bold}
.danger-btn:hover{filter:brightness(1.1)}
@media(max-width:760px){.player-admin-grid{grid-template-columns:1fr}}


/* Hasło użytkownika i odzyskiwanie konta */
.forgot-password-link{border:0;background:transparent;color:var(--gold2);padding:4px;text-align:left;font-size:.86rem}
.forgot-password-link:hover{text-decoration:underline}
.profile-password-section{margin-top:28px;padding-top:24px;border-top:1px solid #ffffff14}
.profile-password-section .modal-title h2{font-size:1.7rem}
.profile-password-section form,.forgot-password-modal form{display:grid;gap:12px}
.profile-password-section label,.forgot-password-modal label{display:grid;gap:6px;color:#c9d4e1;font-size:.82rem}
.forgot-password-modal{width:min(520px,100%)}

.password-reset-page{min-height:100vh;display:grid;place-items:center;padding:20px}
.password-reset-shell{width:min(520px,100%)}
.password-reset-card{width:100%}
.password-reset-card label{display:grid;gap:6px;color:#c9d4e1;font-size:.82rem}
.reset-success{display:grid;gap:12px}
.reset-success h3{font-family:Georgia,serif;font-size:1.55rem;margin-bottom:0}
.reset-link{display:inline-block;text-align:center;margin-top:15px}


/* Pełna edycja graczy przez administratora */
.admin-player-editor{display:grid;gap:18px}
.admin-player-editor-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,340px);gap:20px;align-items:end}
.admin-player-editor-head h3{margin:0 0 8px;font-family:Georgia,serif;font-size:1.6rem}
.admin-player-editor-head label{display:grid;gap:6px;color:#c9d4e1;font-size:.82rem}
.admin-player-editor-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:18px}
.avatar-admin-card{align-content:start}
.avatar-admin-card .big-avatar{width:150px;height:150px;margin:6px auto 18px;font-size:3rem}
.avatar-admin-card form{display:grid;gap:10px}
.player-admin-secondary{margin-top:0}
@media(max-width:850px){
  .admin-player-editor-head,.admin-player-editor-grid{grid-template-columns:1fr}
  .avatar-admin-card .big-avatar{margin-left:0}
}

/* Reakcje na wiadomości */
.msg,.tournament-message{position:relative}
.message-reaction-area{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:7px}
.reaction-summary{display:flex;gap:5px;flex-wrap:wrap}
.reaction-chip{display:inline-flex;align-items:center;gap:4px;min-height:27px;padding:3px 8px;border:1px solid #ffffff20;border-radius:999px;background:#ffffff0b;color:#fff}
.reaction-chip.mine{border-color:#5daeff88;background:#2c6fbd55}
.reaction-chip span{font-size:1rem}.reaction-chip b{font-size:.72rem;color:#cbd7e5}
.reaction-picker-wrap{position:relative}.reaction-add-btn{width:27px;height:27px;padding:0;border:1px solid #ffffff18;border-radius:50%;background:#ffffff08;color:#bfcbd9;opacity:.4}
.msg:hover .reaction-add-btn,.tournament-message:hover .reaction-add-btn,.reaction-add-btn:focus{opacity:1}
.reaction-picker{position:absolute;left:0;bottom:34px;z-index:30;display:grid;grid-template-columns:repeat(4,42px);gap:5px;padding:8px;border:1px solid #ffffff20;border-radius:13px;background:#0b1729;box-shadow:0 16px 35px #000b}
.reaction-picker button{width:42px;height:38px;border:0;border-radius:9px;background:#ffffff08;font-size:1.25rem}.reaction-picker button:hover{background:#ffffff18;transform:scale(1.08)}
.msg.mine .reaction-picker{left:auto;right:0}
@media(max-width:560px){.reaction-add-btn{opacity:1}}
