/* ============================================================
   TYPOGRAPHY SCALE  (Schema v1  –  2026-05-24)
   --fs-micro   11px   badges, status-chips, icon-only labels
   --fs-xs      13px   captions, timestamps, helpers, table-th
   --fs-sm      15px   secondary UI: names, labels, opp-rows
   --fs-base    17px   primary body text
   --fs-input   19px   form inputs, quill, emphasized body
   --fs-title   20px   panel titles, section headings (Cinzel)
   --fs-heading 24px   modal titles, major headings
   --fs-stat    clamp(24px,3vw,34px)   KPI numbers
   ============================================================ */
:root{
  --fs-micro:  11px;
  --fs-xs:     13px;
  --fs-sm:     15px;
  --fs-base:   17px;
  --fs-input:  19px;
  --fs-title:  20px;
  --fs-heading:24px;
  --fs-stat:   clamp(24px,3vw,34px);
  --gold:#C8A84B;--gold-light:#E8C97A;--gold-dim:#8B7335;
  --red:#C0392B;--green:#27AE60;--blue:#2980B9;
}
[data-theme="dark"]{--bg:#0A0A0F;--bg-panel:#1A1A26;--bg-panel2:#1E1E2E;--border:#2A2A3A;--border2:#333348;--text:#D4C9A8;--text-dim:#7A7060;--input-bg:#0F0F18;--hover:rgba(200,168,75,0.06);--shadow:0 4px 24px rgba(0,0,0,0.6);}
[data-theme="light"]{--bg:#E8E2D4;--bg-panel:#F2EDE0;--bg-panel2:#E2DAC8;--border:#A89878;--border2:#8C7A58;--text:#1A1208;--text-dim:#5A4A32;--input-bg:#D8D1C0;--hover:rgba(200,168,75,0.1);--shadow:0 4px 24px rgba(0,0,0,0.15);--gold:#6B4F0A;--gold-dim:#4A360A;--gold-light:#7D5F12;}
@media(prefers-color-scheme:light){[data-theme="auto"]{--bg:#E8E2D4;--bg-panel:#F2EDE0;--bg-panel2:#E2DAC8;--border:#A89878;--border2:#8C7A58;--text:#1A1208;--text-dim:#5A4A32;--input-bg:#D8D1C0;--hover:rgba(200,168,75,0.1);--shadow:0 4px 24px rgba(0,0,0,0.15);--gold:#6B4F0A;--gold-dim:#4A360A;--gold-light:#7D5F12;}}
[data-theme="light"] body{font-weight:500}
@media(prefers-color-scheme:light){[data-theme="auto"] body{font-weight:500}}
@media(prefers-color-scheme:dark){[data-theme="auto"]{--bg:#0A0A0F;--bg-panel:#1A1A26;--bg-panel2:#1E1E2E;--border:#2A2A3A;--border2:#333348;--text:#D4C9A8;--text-dim:#7A7060;--input-bg:#0F0F18;--hover:rgba(200,168,75,0.06);--shadow:0 4px 24px rgba(0,0,0,0.6);}}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Crimson Text',Georgia,serif;background:var(--bg);color:var(--text);min-height:100vh;font-size:clamp(1.25rem,1.9vw,1.4375rem);line-height:1.6;transition:background .3s,color .3s}
a{color:var(--gold);text-decoration:none}
a:hover{text-decoration:underline}
.wrap{max-width:1400px;margin:0 auto;padding:0 clamp(12px,3vw,28px)}
header{background:var(--bg-panel);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50;box-shadow:var(--shadow)}
.header-top{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:12px;flex-wrap:wrap}
.logo-title{font-family:'Cinzel',serif;font-size:clamp(16px,2vw,24px);font-weight:900;color:var(--gold);letter-spacing:1px;line-height:1}
.logo-sub{font-family:'Cinzel',serif;font-size:clamp(11px,1vw,14px);color:var(--text-dim);letter-spacing:4px;margin-top:3px}
.header-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto}
.guild-badge{font-family:'Cinzel',serif;font-size:var(--fs-sm);color:var(--gold-dim);border:1px solid var(--border2);padding:3px 10px;letter-spacing:1px}
.btn{font-family:'Cinzel',serif;font-size:var(--fs-sm);letter-spacing:1px;padding:7px 14px;border:1px solid var(--border2);background:transparent;color:var(--text);cursor:pointer;transition:all .2s;white-space:nowrap;text-transform:uppercase}
.btn:hover{border-color:var(--gold);color:var(--gold);background:var(--hover)}
.btn-primary{background:rgba(200,168,75,0.12);border-color:var(--gold-dim);color:var(--gold)}
.btn-primary:hover{background:rgba(200,168,75,0.22)}
.btn-danger{border-color:var(--red);color:var(--red)}
.btn-danger:hover{background:rgba(192,57,43,0.1)}
.btn-success{background:rgba(46,204,113,0.12);border-color:#27ae60;color:#2ecc71}
.btn-success:hover{background:rgba(46,204,113,0.22)}
.btn-sm{padding:4px 10px;font-size:var(--fs-xs)}
.btn-img-group{display:flex;flex-wrap:wrap}
.btn-img-group .btn{border-radius:0}
.btn-img-group .btn:first-child{border-radius:3px 0 0 3px}
.btn-img-group .btn:last-child{border-radius:0 3px 3px 0;border-left-color:rgba(255,255,255,0.08)}
.et-img-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px}
.et-img-preview{width:240px;max-width:100%;height:90px;border:1px solid var(--border);border-radius:4px;overflow:hidden;flex-shrink:0;background:var(--bg-card);display:flex;align-items:center;justify-content:center;color:var(--text-dim);font-size:var(--fs-micro)}
.et-img-btns{display:flex;flex-direction:column;gap:6px;flex:1;min-width:130px}
.theme-toggle{display:flex;gap:3px}
.theme-btn{background:none;border:1px solid var(--border);color:var(--text-dim);cursor:pointer;padding:4px 7px;font-size:var(--fs-base);transition:all .2s}
.theme-btn.active{border-color:var(--gold);color:var(--gold)}
.settings-toggle-row{display:flex;gap:8px}
.settings-toggle-row .btn.active{border-color:var(--gold);color:var(--gold);background:rgba(200,168,75,0.12)}
.tabs-bar{display:flex;overflow-x:auto;scrollbar-width:none;border-top:1px solid var(--border)}
.tabs-bar::-webkit-scrollbar{display:none}
.tab-btn{font-family:'Cinzel',serif;font-size:clamp(13px,1.5vw,16px);letter-spacing:2px;padding:12px clamp(10px,2vw,22px);background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-dim);cursor:pointer;white-space:nowrap;transition:all .2s;text-transform:uppercase}
.tab-btn:hover{color:var(--text);border-bottom-color:var(--gold-dim)}
.tab-btn.active{color:var(--gold);border-bottom-color:var(--gold)}
.my-teams-section{padding:20px 0;border-bottom:1px solid var(--border)}
.my-teams-section:last-child{border-bottom:none;padding-bottom:0}
.my-teams-section:first-child{padding-top:0}
.my-teams-section-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.my-teams-section-hdr .section-label{font-family:'Cinzel',serif;font-size:clamp(14px,1.6vw,17px);letter-spacing:1.5px;color:var(--gold);text-transform:uppercase}
.tab-dropdown{position:relative;display:inline-flex;align-items:stretch}
.tab-dropdown-menu{display:none;position:fixed;z-index:200;flex-direction:column;min-width:200px;background:var(--bg-panel);border:1px solid var(--border);border-top:none;box-shadow:0 6px 16px rgba(0,0,0,.5)}
.tab-dropdown.open .tab-dropdown-menu{display:flex}
.tab-dropdown-menu .tab-btn{border-bottom:1px solid var(--border)!important;text-align:left}
.tab-dropdown-menu .tab-btn:last-child{border-bottom:none!important}
.tab-dropdown-menu .tab-btn.active{background:rgba(200,168,75,0.08)}
.dropdown-arrow{font-size:9px;margin-left:5px;display:inline-block;transition:transform .2s}
.tab-dropdown.open .dropdown-arrow{transform:rotate(180deg)}
.bug-report-btn{align-self:center;margin:4px 0;opacity:0.75;border-color:var(--red)!important;color:var(--red)!important}
.bug-report-btn:hover{opacity:1;background:rgba(192,57,43,0.1)!important}
.changelog-btn{align-self:center;margin:4px 4px 4px auto;opacity:0.75;border-color:var(--gold-dim)!important;color:var(--gold)!important}
.changelog-btn:hover{opacity:1;background:rgba(200,168,75,0.1)!important}
.bug-status{font-size:var(--fs-xs);font-family:'Cinzel',serif;letter-spacing:.5px;padding:3px 8px;white-space:nowrap}
.bug-status-open{background:rgba(192,57,43,0.15);color:#e74c3c}
.bug-status-in_progress{background:rgba(200,168,75,0.15);color:var(--gold)}
.bug-status-closed{background:rgba(39,174,96,0.15);color:#27ae60}
.tab-content{display:none;padding:clamp(16px,3vw,32px) 0 80px}
.tab-content.active{display:block}
.panel{background:var(--bg-panel);border:1px solid var(--border);padding:clamp(14px,2.5vw,24px);margin-bottom:16px}
.panel-title{font-family:'Cinzel',serif;font-size:var(--fs-title);letter-spacing:3px;color:var(--gold);text-transform:uppercase;margin-bottom:18px;padding-bottom:10px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.panel-title span{display:flex;align-items:center;gap:8px}
.two-col{display:grid;grid-template-columns:1fr 345px;gap:16px;align-items:start}
.section-label{font-family:'Cinzel',serif;font-size:var(--fs-sm);letter-spacing:3px;color:var(--text-dim);text-transform:uppercase;margin-bottom:8px}
.online-panel{background:var(--bg-panel2);border:1px solid var(--border);padding:10px 16px}
.online-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.online-chip{font-size:var(--fs-base);background:rgba(39,174,96,0.1);border:1px solid rgba(39,174,96,0.3);padding:3px 10px;color:var(--text)}
.online-dot{width:7px;height:7px;border-radius:50%;background:var(--green);display:inline-block;margin-right:4px}
.war-banner{background:var(--bg-panel);border:1px solid var(--gold-dim);padding:clamp(12px,2vw,20px) clamp(14px,2.5vw,28px);margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
.war-vs{font-family:'Cinzel',serif;font-size:clamp(17px,2vw,22px);color:var(--gold);font-weight:700}
.war-sub{font-size:var(--fs-base);color:var(--text-dim);margin-top:2px}
.war-phase{font-size:var(--fs-base);color:var(--gold);margin-top:4px}
#header-phase{margin-top:4px}
.header-phase-badges{display:flex;gap:3px;flex-wrap:wrap}
.header-phase-badge{font-family:'Cinzel',serif;font-size:var(--fs-micro);letter-spacing:0.5px;padding:2px 7px;border:1px solid var(--border);color:var(--text-dim);text-transform:uppercase}
.header-phase-badge.active{border-color:var(--gold);color:var(--gold);background:rgba(200,168,75,0.1)}
.phase-badges{display:flex;gap:6px;flex-wrap:wrap}
.phase-badge{font-family:'Cinzel',serif;font-size:var(--fs-xs);letter-spacing:1px;padding:4px 12px;border:1px solid var(--border);color:var(--text-dim);text-transform:uppercase}
.phase-badge.active{border-color:var(--gold);color:var(--gold);background:rgba(200,168,75,0.1)}
.towers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(clamp(155px,18vw,210px),1fr));gap:12px}
.tower-card{border:1px solid var(--border);background:var(--bg-panel2);padding:14px;transition:border-color .2s}
.tower-card:hover{border-color:var(--border2)}
.tower-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px;gap:6px}
.tower-num{font-family:'Cinzel',serif;font-size:22px;font-weight:700;color:var(--gold)}
.tower-pts{font-family:'Cinzel',serif;font-size:var(--fs-xs);color:var(--text-dim);letter-spacing:1px}
.tower-pts.high{color:var(--gold-dim)}
.tower-effect{font-size:var(--fs-sm);color:var(--text-dim);font-style:italic;margin-bottom:6px;min-height:var(--fs-sm)}
.tower-count{font-size:var(--fs-xs);color:var(--text-dim);margin-bottom:8px;font-family:'Cinzel',serif;letter-spacing:1px}
.tower-effect-input{width:100%;background:var(--input-bg);border:1px solid var(--border);color:var(--text);padding:3px 6px;font-size:var(--fs-sm);font-family:'Crimson Text',serif;margin-bottom:6px}
.tower-effect-filled{display:flex;align-items:center;gap:6px;margin-bottom:6px;background:rgba(0,0,0,0.5);border:1px solid rgba(200,168,75,0.22);padding:4px 7px}
.tower-effect-filled .tower-effect-text{flex:1;font-size:var(--fs-sm);color:var(--gold-light);font-style:italic;font-family:'Crimson Text',serif}
.tower-effect-edit-btn{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:var(--fs-xs);padding:0 2px;flex-shrink:0;line-height:1}
.tower-effect-edit-btn:hover{color:var(--gold)}
.eff-dropdown{position:absolute;z-index:200;background:var(--bg-panel);border:1px solid var(--border2);box-shadow:var(--shadow);max-height:180px;overflow-y:auto}
.eff-dropdown-item{padding:5px 8px;font-size:var(--fs-sm);font-family:'Crimson Text',serif;font-style:italic;color:var(--text);cursor:pointer}
.eff-dropdown-item:hover{background:var(--hover);color:var(--gold)}
.slot-entry{display:flex;align-items:center;gap:6px;padding:5px 0;border-bottom:1px solid rgba(100,100,130,0.15);font-size:var(--fs-base)}
.slot-entry:last-child{border-bottom:none}
.faction-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.player-name{flex:1;color:var(--text);font-size:var(--fs-base);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.power-badge{font-family:'Cinzel',serif;font-size:var(--fs-xs);color:var(--text-dim);white-space:nowrap}
.slot-empty{color:var(--text-dim);font-style:italic;font-size:var(--fs-sm)}
.summary-panel{background:var(--bg-panel);border:1px solid var(--border);padding:18px;position:sticky;top:80px}
.summary-title{font-family:'Cinzel',serif;font-size:var(--fs-title);letter-spacing:3px;color:var(--gold);text-transform:uppercase;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}
.summary-count{font-family:'Cinzel',serif;font-size:30px;font-weight:700;color:var(--gold);text-align:center;margin:8px 0 2px}
.summary-label{font-size:var(--fs-sm);color:var(--text-dim);text-align:center}
.progress-bar-wrap{background:var(--border);height:6px;margin:10px 0 4px}
.progress-bar{background:var(--gold);height:100%;transition:width .4s}
#tower-map-container:empty{display:none}
.tower-map-img{display:block;width:100%;height:auto;margin-top:14px;border:1px solid var(--border)}
.team-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.team-table{width:100%;border-collapse:collapse;font-size:var(--fs-base);min-width:600px}
.team-table th{font-family:'Cinzel',serif;font-size:var(--fs-xs);letter-spacing:2px;color:var(--text-dim);text-transform:uppercase;padding:10px;text-align:center;border-bottom:1px solid var(--border);white-space:nowrap;background:var(--bg-panel);position:sticky;top:0}
.team-table th:first-child{text-align:left;position:sticky;left:0;z-index:2}
.team-table td{padding:8px 10px;border-bottom:1px solid rgba(100,100,130,0.15);vertical-align:middle;text-align:center}
.team-table td:first-child{text-align:left;position:sticky;left:0;background:var(--bg-panel);font-family:'Cinzel',serif;font-size:var(--fs-sm);color:var(--gold);white-space:nowrap}
.team-table tr:hover td,.team-table tr:hover td:first-child{background:var(--hover)}
.team-cell{display:flex;flex-direction:column;align-items:center;gap:2px}
.admin-table{width:100%;border-collapse:collapse;font-size:var(--fs-base)}
.admin-table th{font-family:'Cinzel',serif;font-size:var(--fs-xs);letter-spacing:2px;color:var(--text-dim);text-transform:uppercase;padding:10px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;background:var(--bg-panel)}
.admin-table td{padding:8px 10px;border-bottom:1px solid rgba(100,100,130,0.15);vertical-align:middle;text-align:left;background:var(--bg-panel)}
.admin-table tr:hover td{background:var(--hover)}
.team-cell .faction-dot{width:10px;height:10px}
.team-cell-name{font-size:var(--fs-base);font-weight:600}
.team-cell-power{font-size:var(--fs-input);color:var(--text);font-weight:600}
.team-cell-active-badge{font-size:var(--fs-micro);color:var(--gold);letter-spacing:1px}
.team-nav-btn{padding:2px 10px!important;min-width:28px}
.team-roster{width:100%}
.team-roster-head,.team-roster-row{display:flex;align-items:flex-start;border-bottom:1px solid rgba(100,100,130,0.15)}
.team-roster-head{background:var(--bg-panel);font-family:'Cinzel',serif;font-size:var(--fs-xs);letter-spacing:1px;color:var(--text-dim);text-transform:uppercase}
.team-roster-row{background:var(--bg-panel)}
.team-roster-mine{background:var(--hover)}
.trow-name{width:160px;flex-shrink:0;padding:10px;font-family:'Cinzel',serif;font-size:var(--fs-sm);color:var(--gold);position:sticky;left:0;background:inherit;display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.avatar-trow{width:clamp(48px,10vw,72px);height:clamp(48px,10vw,72px);border-radius:50%;object-fit:cover;border:1px solid var(--border2);cursor:pointer;display:block;transition:border-color .15s}
.avatar-trow:hover{border-color:var(--gold)}
.trow-body{flex:1;padding:8px 10px;min-width:0}
.trow-cells-wrap{overflow-x:auto;width:100%}
.trow-cells{display:flex;gap:8px;width:100%}
.team-slot-wrap{flex:1;min-width:160px;text-align:center;padding:4px 0;display:flex;flex-direction:column;container-type:inline-size}
.team-slot-btns{display:flex;flex-direction:row;flex-wrap:wrap;gap:3px;margin-top:auto;padding-top:6px;width:100%}
.team-slot-btns .btn{flex:1;min-width:0;text-align:center;padding:2px 4px!important;font-size:var(--fs-xs)}
.team-slot-btns .team-note-btn{flex:0 0 auto!important;font-size:var(--fs-base)!important;padding:2px 6px!important}
@container (max-width: 149px){.btn-lbl{display:none}.team-slot-btns{flex-direction:column}.team-slot-btns .btn{flex:0 0 auto}}
.team-note-btn{border-color:var(--border2)!important;color:var(--text-dim)!important;font-size:var(--fs-base)!important}
.avatar-sm{width:34px;height:34px;border-radius:50%;object-fit:cover;border:2px solid var(--border2);transition:border-color .15s}
.avatar-sm:hover{border-color:var(--gold)}
#header-avatar{display:none;width:68px;height:68px;border-radius:50%;object-fit:cover}
.avatar-md{width:38px;height:38px;border-radius:50%;object-fit:cover;border:1px solid var(--border2);display:block;margin:0 auto 4px}
.avatar-upload-row{display:flex;align-items:center;gap:14px;margin-bottom:4px}
.avatar-preview-box{width:64px;height:64px;border-radius:50%;background:var(--bg-panel2);border:1px solid var(--border);overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:28px;flex-shrink:0}
.trow-nav{display:flex;align-items:center;gap:8px;margin-top:6px}
.trow-ts{width:140px;flex-shrink:0;padding:10px;font-size:var(--fs-xs);color:var(--text-dim);text-align:right;white-space:nowrap}
.trow-inactive-section{margin-top:8px}
.trow-inactive-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px 16px;margin-top:8px;border-top:1px solid var(--border);padding-top:8px}
.trow-inactive-item{display:flex;flex-direction:column;gap:3px;opacity:0.65}
.trow-inactive-top{display:flex;align-items:center;gap:6px;min-width:0}
.trow-inactive-bottom{display:flex;align-items:center;gap:4px}
.team-slot-img{width:100%;aspect-ratio:8/3;object-fit:cover;display:block;border-radius:3px;margin-bottom:4px}
.my-team-card-img{width:100%;height:auto;display:block;border-radius:4px;margin:4px 0}
.modal-img-preview{width:100%;height:auto;display:block;border-radius:4px}
.trow-inactive-name{font-size:var(--fs-sm);font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trow-inactive-power{font-size:var(--fs-xs);color:var(--text-dim);white-space:nowrap}
.my-teams-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(clamp(220px,26vw,300px),1fr));gap:10px;margin-bottom:4px}
.my-team-card{background:var(--bg-panel2);border:1px solid var(--border);padding:14px;border-left-width:3px;display:flex;flex-direction:column}
.my-team-card .my-team-btns{margin-top:auto;display:flex;gap:6px;flex-wrap:wrap}
.my-team-label{font-family:'Cinzel',serif;font-size:var(--fs-xs);letter-spacing:2px;color:var(--text-dim);margin-bottom:6px;display:flex;align-items:center;justify-content:space-between}
.active-toggle{display:flex;align-items:center;gap:6px;font-size:var(--fs-base);cursor:pointer}
.stats-row{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.stats-row--hist{align-items:stretch}
.stat-col-sm{display:flex;flex-direction:column;gap:8px;flex:0 0 auto}
.stat-box{flex:1;min-width:75px;padding:14px 16px;border:1px solid var(--border);background:var(--bg-panel2);display:flex;flex-direction:column;align-items:center;justify-content:center}
.stat-box-title{font-family:'Cinzel',serif;font-size:var(--fs-xs);letter-spacing:1px;text-transform:uppercase;color:var(--text-dim);margin-bottom:2px;width:100%;text-align:left}
.stat-box--xs{flex:1;min-width:80px;padding:6px 10px}
.stat-box--xs .stat-val{font-size:clamp(16px,1.6vw,20px) !important}
.stat-box--xs .stat-label{font-size:var(--fs-xs)}
.stat-box--rang{flex:2;min-width:160px;align-items:flex-start}
.stat-box--place{flex:0 0 auto;min-width:100px;align-items:flex-start;justify-content:flex-start}
.stat-box--opp{flex:3;min-width:160px;align-items:flex-start;justify-content:flex-start}
.place-inline{display:flex;flex-direction:column;gap:6px;width:100%;margin-top:8px}
.place-inline-row{display:flex;justify-content:space-between;align-items:center;font-family:'Cinzel',serif;font-size:var(--fs-sm);font-weight:700;gap:8px}
.stat-val{font-family:'Cinzel',serif;font-size:var(--fs-stat);font-weight:700;color:var(--gold);line-height:1}
.stat-label{font-size:var(--fs-sm);color:var(--text-dim);margin-top:3px}
.glory-tiers{margin-top:8px;padding-top:8px;border-top:1px solid var(--border);width:100%}
.glory-tier{display:flex;justify-content:space-between;align-items:center;padding:2px 4px;font-size:var(--fs-xs);color:var(--text-dim);gap:6px}
.glory-tier--active{font-weight:700;border-left:2px solid currentColor;padding-left:6px;margin-left:-2px}
.history-table-wrap{overflow-x:auto}
.history-table{width:100%;border-collapse:collapse;font-size:var(--fs-base)}
.history-table th{font-family:'Cinzel',serif;font-size:var(--fs-xs);letter-spacing:2px;color:var(--text-dim);text-transform:uppercase;padding:10px 12px;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}
.history-table td{padding:10px 12px;border-bottom:1px solid rgba(100,100,130,0.15);vertical-align:middle;word-break:break-word}
@media(max-width:640px){.history-table{min-width:650px}}
.history-table tr.own-guild{background:rgba(200,168,75,0.04)}
.history-table tr.own-guild td:first-child{border-left:2px solid var(--gold)}
.place-badge{font-family:'Cinzel',serif;font-size:var(--fs-sm);letter-spacing:1px;padding:3px 10px;text-align:center;display:inline-block}
.place-1{background:rgba(200,168,75,0.15);color:var(--gold);border:1px solid var(--gold-dim)}
.place-2{background:rgba(150,150,160,0.15);color:#AAA;border:1px solid #666}
.place-3{background:rgba(150,100,60,0.15);color:#C87941;border:1px solid #8B5E3C}
.rank-badge{font-family:'Cinzel',serif;font-size:var(--fs-xs);padding:2px 8px;border:1px solid var(--border);color:var(--text-dim)}
.misc-category{margin-bottom:24px}
.misc-cat-title{font-family:'Cinzel',serif;font-size:var(--fs-base);letter-spacing:3px;color:var(--gold-dim);text-transform:uppercase;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--border)}
.misc-item{padding:14px 0;border-bottom:1px solid rgba(100,100,130,0.15)}
.misc-item:last-child{border-bottom:none}
.misc-item-title{font-size:var(--fs-title);font-weight:600;color:var(--text);margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.misc-item-content{font-size:var(--fs-input);color:var(--text);line-height:1.75}
.misc-item-content p{margin-bottom:8px}
.misc-item-content h1,.misc-item-content h2,.misc-item-content h3{font-family:'Cinzel',serif;color:var(--gold);margin:12px 0 6px}
.misc-item-content ul,.misc-item-content ol{margin-left:20px;margin-bottom:8px}
.misc-item-content table{border-collapse:collapse;width:100%;margin-bottom:8px}
.misc-item-content table td,.misc-item-content table th{border:1px solid var(--border);padding:6px 10px}
.misc-timestamp{font-size:var(--fs-sm);color:var(--text-dim);font-style:italic;margin-top:10px}
.ql-toolbar{background:var(--bg-panel2)!important;border-color:var(--border)!important}
.ql-container{background:var(--input-bg)!important;border-color:var(--border)!important;font-family:'Crimson Text',serif;font-size:var(--fs-input)}
.ql-editor{min-height:120px;color:var(--text)}
.ql-stroke{stroke:var(--text-dim)!important}
.ql-fill{fill:var(--text-dim)!important}
.ql-picker{color:var(--text-dim)!important}
.ql-picker-options{background:var(--bg-panel)!important;border-color:var(--border)!important}
.player-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid rgba(100,100,130,0.15);flex-wrap:wrap}
.player-row:last-child{border-bottom:none}
.player-info{flex:1;min-width:140px}
.player-dname{font-family:'Cinzel',serif;font-size:var(--fs-base);color:var(--text)}
.player-uname{font-size:var(--fs-sm);color:var(--text-dim);margin-top:2px}
.player-role-badge{font-size:var(--fs-xs);letter-spacing:.04em;font-weight:600}
.role-badge{font-family:'Cinzel',serif;font-size:var(--fs-xs);letter-spacing:1px;padding:2px 7px;text-transform:uppercase}
.role-superadmin{border:1px solid var(--gold);color:var(--gold)}
.player-role-badge.role-admin{color:var(--gold);border:none}
.player-role-badge.role-event-admin{color:#7eb8f7}
.player-role-badge.role-player{color:var(--text-dim)}
.sa-guild-group{margin-bottom:20px}
.sa-guild-group-header{font-family:'Cinzel',serif;font-size:var(--fs-xs);letter-spacing:2px;color:var(--gold);text-transform:uppercase;padding:5px 0 7px;border-bottom:1px solid var(--gold-dim);margin-bottom:4px;cursor:pointer;display:flex;align-items:center;justify-content:space-between;user-select:none}
.sa-collapse-icon{font-size:var(--fs-xs);color:var(--text-dim);transition:transform .2s;margin-left:8px}
.sa-guild-group.collapsed .player-row{display:none}
.sa-guild-group.collapsed .sa-collapse-icon{transform:rotate(-90deg)}
.sa-guild-count{font-family:inherit;font-weight:400;color:var(--text-dim);margin-left:6px}
.sa-badge{display:inline-block;background:var(--red);color:#fff;font-size:var(--fs-micro);border-radius:10px;padding:0 5px;line-height:16px;vertical-align:middle;margin-left:4px;font-family:sans-serif;letter-spacing:0}
.sa-filter-bar{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}
.sa-filter-btn{font-size:var(--fs-xs);padding:3px 10px;background:transparent;border:1px solid var(--border);color:var(--text-dim);cursor:pointer;transition:all .2s;font-family:'Cinzel',serif}
.sa-filter-btn.active{border-color:var(--gold);color:var(--gold);background:rgba(200,168,75,0.1)}
.bug-category{font-size:var(--fs-xs);padding:1px 6px;border:1px solid var(--border);color:var(--text-dim);margin-left:8px;vertical-align:middle;white-space:nowrap}
.my-assign-panel{background:var(--bg-panel);border:1px solid var(--border);padding:10px 14px;margin-bottom:14px}
.my-assign-title{font-family:'Cinzel',serif;font-size:var(--fs-xs);letter-spacing:2px;color:var(--gold-dim);text-transform:uppercase;margin-bottom:8px}
.my-assign-teams{display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto}
.my-assign-entry{flex:1;min-width:180px}
.my-assign-row{display:flex;align-items:center;gap:7px;padding:5px 10px;border:1px solid var(--border);font-family:'Crimson Text',serif;font-size:var(--fs-base)}
.my-assign-power{font-size:var(--fs-sm);color:var(--text-dim)}
.my-assign-arrow{color:var(--text-dim);font-size:var(--fs-sm)}
.my-assign-tower{font-family:'Cinzel',serif;font-size:var(--fs-sm);color:var(--gold);font-weight:600;letter-spacing:0.5px}
.my-assign-notower{font-size:var(--fs-sm);color:var(--text-dim);font-style:italic}
.pw-requirements{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.pw-requirements span{font-size:var(--fs-xs);padding:2px 7px;border:1px solid var(--border);color:var(--text-dim)}
.pw-requirements span.pw-req-ok{border-color:var(--green);color:var(--green)}
.pw-field{position:relative;display:flex;align-items:center}
.pw-field .form-input{padding-right:38px;width:100%}
.pw-eye{position:absolute;right:8px;background:none;border:none;cursor:pointer;color:var(--text-dim);font-size:var(--fs-input);padding:0 2px;line-height:1;transition:color .2s}
.pw-eye:hover{color:var(--gold)}
.role-admin{border:1px solid var(--blue);color:var(--blue)}
.role-player{border:1px solid var(--border);color:var(--text-dim)}
.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.result-entry-grid{display:grid;grid-template-columns:110px 1fr 110px;gap:8px 10px;align-items:center;margin:14px 0}
.result-entry-grid input[type=number]::-webkit-inner-spin-button,.result-entry-grid input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.result-entry-grid input[type=number]{-moz-appearance:textfield}
.result-place-label{font-family:'Cinzel',serif;font-size:var(--fs-base);font-weight:700;color:var(--gold);text-align:right;line-height:1}
.result-guild-label{font-family:'Cinzel',serif;font-size:var(--fs-sm);color:var(--text);padding:8px 12px;background:var(--bg-panel2);border:1px solid var(--border);letter-spacing:.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.result-guild-label.own{color:var(--gold);border-color:var(--gold-dim);background:rgba(200,168,75,0.06)}
.res-own{border-color:var(--gold-dim)!important;background:rgba(200,168,75,0.06)!important}
.form-group{margin-bottom:12px}
.form-label{display:block;font-family:'Cinzel',serif;font-size:var(--fs-xs);letter-spacing:2px;color:var(--text-dim);text-transform:uppercase;margin-bottom:5px}
.btn-link-sm{background:none;border:none;padding:0;font-size:var(--fs-xs);color:var(--text-dim);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
.btn-link-sm:hover{color:var(--text)}
.form-input,.form-select,.form-textarea{width:100%;background:var(--input-bg);border:1px solid var(--border);color:var(--text);padding:8px 12px;font-family:'Crimson Text',serif;font-size:var(--fs-input);transition:border-color .2s;-webkit-appearance:none}
.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--gold-dim)}
.form-textarea{resize:vertical;min-height:80px}
.form-error{color:var(--red);font-size:var(--fs-base);margin-top:6px;min-height:var(--fs-base)}
.modal-overlay{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,0.75);display:flex;align-items:center;justify-content:center;padding:16px;opacity:0;pointer-events:none;transition:opacity .2s}
.modal-overlay.open{opacity:1;pointer-events:all}
#modal-champion-crop{z-index:110}
.modal{background:var(--bg-panel);border:1px solid var(--gold-dim);padding:clamp(20px,4vw,36px);width:100%;max-width:480px;position:relative;transform:translateY(-16px);transition:transform .2s;max-height:90vh;overflow-y:auto}
.modal-overlay.open .modal{transform:translateY(0)}
#modal-settings .modal{max-width:720px}
.modal-title{font-family:'Cinzel',serif;font-size:var(--fs-heading);color:var(--gold);letter-spacing:3px;text-transform:uppercase;margin-bottom:20px}
.modal-close{position:absolute;top:10px;right:14px;background:none;border:none;color:var(--text-dim);font-size:24px;cursor:pointer;line-height:1}
.modal-actions{display:flex;gap:10px;margin-top:20px;justify-content:flex-end;flex-wrap:wrap}
#modal-champion .modal-title{margin-bottom:12px}
#modal-champion .form-group{margin-bottom:8px}
#modal-champion .modal-actions{margin-top:12px}
.toast-container{position:fixed;bottom:20px;right:20px;z-index:200;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.toast{font-family:'Cinzel',serif;font-size:var(--fs-sm);letter-spacing:1px;padding:10px 18px;background:var(--bg-panel);border-left:3px solid var(--gold);color:var(--text);max-width:280px;animation:toastIn .3s ease;box-shadow:var(--shadow)}
.toast.error{border-left-color:var(--red)}
.toast.success{border-left-color:var(--green)}
.toast.warning{border-left-color:#e67e22;color:#e67e22}
@keyframes toastIn{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:translateX(0)}}
.loading{display:flex;align-items:center;justify-content:center;padding:40px;color:var(--text-dim);font-family:'Cinzel',serif;font-size:var(--fs-sm);letter-spacing:3px;gap:12px}
.spinner{width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--gold);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}
@keyframes spin{to{transform:rotate(360deg)}}
footer{background:var(--bg-panel);border-top:1px solid var(--border);padding:28px 0;margin-top:20px}
.footer-inner{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:20px}
.footer-section-title{font-family:'Cinzel',serif;font-size:var(--fs-xs);letter-spacing:3px;color:var(--gold-dim);text-transform:uppercase;margin-bottom:10px}
.footer-link{display:block;font-size:var(--fs-xs);color:var(--text-dim);margin-bottom:6px;transition:color .2s}
.footer-link:hover{color:var(--gold);text-decoration:none}
.footer-discord{display:inline-flex;align-items:center;gap:8px;background:rgba(88,101,242,0.12);border:1px solid rgba(88,101,242,0.4);color:#7289DA;padding:8px 16px;font-family:'Cinzel',serif;font-size:var(--fs-xs);letter-spacing:1px;transition:background .2s}
.footer-discord:hover{background:rgba(88,101,242,0.22);text-decoration:none}.footer-bottom{margin-top:20px;padding-top:16px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}
.footer-copy{font-family:'Cinzel',serif;font-size:var(--fs-xs);letter-spacing:2px;color:var(--text-dim)}
#kofi-footer{display:inline-flex;align-items:center;gap:8px;background:rgba(255,94,91,0.08);border:1px solid rgba(255,94,91,0.3);color:#FF5E5B;padding:8px 16px;font-family:'Cinzel',serif;font-size:var(--fs-xs);letter-spacing:1px;transition:background .2s;text-decoration:none}
#kofi-footer:hover{background:rgba(255,94,91,0.18);text-decoration:none}
#bmc-footer{display:inline-flex;align-items:center;gap:8px;background:rgba(255,221,0,0.08);border:1px solid rgba(255,221,0,0.35);color:#FFDD00;padding:8px 16px;font-family:'Cinzel',serif;font-size:var(--fs-xs);letter-spacing:1px;transition:background .2s;text-decoration:none}
#bmc-footer:hover{background:rgba(255,221,0,0.18);text-decoration:none}@media(max-width:900px){.two-col{grid-template-columns:1fr}#summary-sidebar{order:-1}}
@media(max-width:760px){.header-top{transition:max-height .25s ease,opacity .2s ease,padding .2s ease;max-height:300px;overflow:hidden}header.header-compact .header-top{max-height:0;opacity:0;padding:0;pointer-events:none}}
@media(max-width:640px){.header-top{flex-direction:column;align-items:flex-start}.header-right{width:100%;justify-content:flex-end}.stats-row{gap:8px}.my-teams-grid{grid-template-columns:1fr 1fr}.towers-grid{grid-template-columns:1fr 1fr}.trow-name{width:120px}.trow-ts{display:none}}
@media(max-width:380px){.towers-grid{grid-template-columns:1fr}.my-teams-grid{grid-template-columns:1fr}}
#page-login{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg);padding:24px}
.login-card{background:var(--bg-panel);border:1px solid var(--border);padding:clamp(28px,5vw,48px);width:100%;max-width:400px;position:relative}
.login-logo-title{font-family:'Cinzel',serif;font-size:clamp(18px,3vw,26px);font-weight:900;color:var(--gold);letter-spacing:2px;text-align:center;line-height:1}
.alpha-badge{font-size:var(--fs-xs);font-family:'Cinzel',serif;letter-spacing:1px;color:var(--text-dim);border:1px solid var(--border2);padding:2px 6px;vertical-align:middle;margin-left:6px;font-weight:400}
.login-logo-sub{font-family:'Cinzel',serif;font-size:var(--fs-sm);color:var(--text-dim);letter-spacing:4px;text-align:center;margin-top:6px;margin-bottom:32px}
.login-divider{border:none;border-top:1px solid var(--border);margin:28px 0}
.login-hint{text-align:center;font-size:var(--fs-base);color:var(--text-dim);line-height:1.5;margin-bottom:14px}
.login-discord-wrap{display:flex;justify-content:center}
.login-theme-btn{position:absolute;top:14px;right:14px;background:none;border:1px solid var(--border);color:var(--text-dim);cursor:pointer;padding:4px 8px;font-size:var(--fs-base);transition:all .2s}
.login-theme-btn:hover{border-color:var(--gold);color:var(--gold)}
.my-teams-nav{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:8px;min-height:28px}

/* ── Sub-Tabs (Sonstiges) ──────────────────────────────── */
.sub-tabs{display:flex;gap:4px;margin:0;border-bottom:1px solid var(--border);flex-wrap:wrap;background:var(--bg-panel);border-radius:6px 6px 0 0;padding:8px 8px 0}
.sub-tab-btn{background:none;border:1px solid transparent;border-bottom:none;color:var(--text-dim);cursor:pointer;font-family:'Cinzel',serif;font-size:var(--fs-xs);letter-spacing:2px;text-transform:uppercase;padding:7px 20px;transition:all .2s;position:relative;bottom:-1px;border-radius:4px 4px 0 0}
.sub-tab-btn:hover{color:var(--text);border-color:var(--border)}
.sub-tab-btn.active{color:var(--gold);border-color:var(--gold);background:var(--bg-panel2);border-bottom-color:var(--bg-panel)}
.sub-tab-content{display:none}
.sub-tab-content.active{display:block}

/* ── Faction Team Checklist (Assign Modal) ────────────── */
.faction-team-row{display:flex;align-items:center;gap:8px;padding:6px 8px;cursor:pointer;border:1px solid var(--border);background:var(--bg-panel2);border-radius:2px;transition:border-color .15s}
.faction-team-row:hover{border-color:var(--border2);background:var(--hover)}

/* ── Faction View (Teamübersicht Sub-Tab) ─────────────── */
.faction-view{display:flex;flex-direction:column;gap:14px;padding:4px 0}
.faction-section-header{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--bg-panel2);border:1px solid var(--border2);font-family:'Cinzel',serif}
.faction-section-name{font-size:var(--fs-sm);letter-spacing:2px;color:var(--text);text-transform:uppercase;flex:1}
.faction-section-meta{font-size:var(--fs-xs);color:var(--text-dim);white-space:nowrap}
.faction-view-row{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:10px;padding:7px 12px;border:1px solid var(--border);border-top:none;background:var(--bg-panel);transition:background .15s}
.faction-view-row:hover{background:var(--hover)}
.fvr-player{font-size:var(--fs-sm)}
.fvr-power{font-size:var(--fs-sm);color:var(--text-dim);font-variant-numeric:tabular-nums;text-align:right;min-width:78px}
.fvr-tower{font-size:12px;color:var(--gold);font-weight:600;min-width:34px;text-align:right}
.fvr-actions{display:flex;gap:4px;justify-content:flex-end}

/* ── Assignment Lock Badge ────────────────────────────── */
.lock-badge{display:inline-flex;align-items:center;gap:4px;background:rgba(180,60,60,0.15);border:1px solid var(--red);color:var(--red);font-size:var(--fs-micro);padding:2px 8px;font-family:'Cinzel',serif;letter-spacing:.5px}

/* ── Tower Sort Bar ───────────────────────────────────── */
.tower-sort-bar{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap}

/* ── Help Button ──────────────────────────────────────── */
.help-btn{background:none;border:1px solid var(--border2);color:var(--text-dim);cursor:pointer;padding:4px 10px;font-family:'Cinzel',serif;font-size:var(--fs-xs);letter-spacing:1px;text-transform:uppercase;transition:all .2s;flex-shrink:0}
.help-btn:hover{border-color:var(--gold);color:var(--gold);background:var(--hover)}

/* ── Panel Select (Dropdowns in Panel-Titles) ─────────── */
.panel-select{padding:4px 10px;font-size:var(--fs-xs);font-family:'Cinzel',serif;letter-spacing:1px;background:var(--input-bg);border:1px solid var(--border2);color:var(--text);cursor:pointer;-webkit-appearance:none;transition:border-color .2s;flex-shrink:0;min-width:300px}
.panel-select:focus{outline:none;border-color:var(--gold-dim)}
.panel-select:hover{border-color:var(--gold-dim)}

/* ── Opponent Stats Table ─────────────────────────────── */
.opp-table{display:flex;flex-direction:column;gap:5px;padding:4px 0}
.opp-row{display:grid;grid-template-columns:24px 1fr 34px 100px;align-items:center;gap:10px;padding:7px 10px;background:var(--bg-panel2);border:1px solid var(--border)}
.opp-rank{font-family:'Cinzel',serif;font-size:var(--fs-xs);font-weight:700;text-align:center;color:var(--text-dim)}
.opp-rank--1{color:var(--gold)}
.opp-rank--2{color:#aaa}
.opp-rank--3{color:#c87941}
.opp-name{font-size:var(--fs-sm);color:var(--text)}
.opp-count{font-family:'Cinzel',serif;font-size:var(--fs-xs);color:var(--text-dim);text-align:right;white-space:nowrap}
.opp-bar-wrap{background:var(--border);height:3px;border-radius:2px}
.opp-bar{background:var(--gold-dim);height:3px;border-radius:2px;transition:width .4s}

/* ── Dragon Cards ─────────────────────────────────────── */
.dragon-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-bottom:16px}
.dragon-card{border:2px solid var(--border);background:var(--bg-panel2);transition:border-color .2s,box-shadow .2s}
.dragon-card--active{box-shadow:0 0 14px rgba(200,168,75,0.3)}
.dragon-card-header{display:flex;align-items:center;gap:8px;padding:10px 12px;flex-wrap:wrap;background:var(--bg-panel2);border-bottom:3px solid var(--border)}
.dragon-name{font-family:'Cinzel',serif;font-size:var(--fs-sm);color:var(--text);font-weight:700;flex:1;min-width:120px}
.dragon-current-badge{font-size:var(--fs-micro);font-family:'Cinzel',serif;letter-spacing:1px;background:var(--gold);color:#1a1209;padding:2px 6px;font-weight:700}
.dragon-stats{padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.dragon-stat{display:flex;justify-content:space-between;align-items:center;font-size:var(--fs-sm)}
.dragon-stat-label{color:var(--text-dim);font-size:var(--fs-xs)}
.dragon-stat-val{font-family:'Cinzel',serif;color:var(--text);font-weight:600}
.dragon-stat--highlight .dragon-stat-val{color:var(--gold)}
.dragon-countdown{text-align:center;font-family:'Cinzel',serif;font-size:var(--fs-xs);color:var(--text-dim);letter-spacing:1px;padding:8px;border:1px solid var(--border);margin-top:8px}

/* ── Dragon Checklist ─────────────────────────────────── */
.dragon-checklist{border:1px solid var(--border);padding:14px}
.dragon-checklist-header{display:flex;justify-content:space-between;align-items:center;font-family:'Cinzel',serif;font-size:var(--fs-sm);color:var(--gold);margin-bottom:12px;flex-wrap:wrap;gap:8px}
.dragon-checklist-legend{display:flex;align-items:center;gap:8px;padding:2px 8px 6px;border-bottom:1px solid var(--border);margin-bottom:4px}
.dragon-col-label{width:18px;text-align:center;font-family:'Cinzel',serif;font-size:var(--fs-micro);letter-spacing:1px;color:var(--green);flex-shrink:0}
.dragon-col-label--od{color:#e67e22}
.dragon-member-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:2px}
.dragon-member-row{display:flex;align-items:center;gap:8px;padding:4px 8px;transition:background .15s}
.dragon-member-row--done{background:rgba(100,180,100,0.08)}
.dragon-check-label{display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none}
.dragon-checkbox{width:18px;height:18px;border:2px solid var(--border2);display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-xs);color:var(--green);flex-shrink:0;transition:all .15s;cursor:pointer;user-select:none}
.dragon-checkbox:hover{border-color:var(--green)}
.dragon-checkbox--checked{border-color:var(--green);background:rgba(100,180,100,0.15)}
.dragon-checkbox--od{color:#e67e22}
.dragon-checkbox--od:hover{border-color:#e67e22}
.dragon-checkbox--od-checked{border-color:#e67e22;background:rgba(230,126,34,0.15)}
.dragon-member-name{font-size:var(--fs-sm);color:var(--text);flex:1}

/* ── 3%-Counter Badge ─────────────────────────────────── */
.dragon-3pct-badge{font-family:'Cinzel',serif;font-size:var(--fs-micro);font-weight:700;padding:2px 8px;letter-spacing:.5px;border:1px solid var(--border2)}
.dragon-3pct-badge--partial{color:var(--text-dim);border-color:var(--border2)}
.dragon-3pct-badge--all{color:#1a1209;background:var(--green);border-color:var(--green)}

/* ── Dragon History List ──────────────────────────────── */
.dragon-hist-section{margin-top:24px}
.dragon-hist-section--od{margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}
.dragon-od-subtitle{font-size:var(--fs-xs);color:var(--text-dim);margin-top:2px}
.admin-only-badge{display:inline-block;font-family:sans-serif;font-size:var(--fs-micro);font-weight:600;letter-spacing:.5px;text-transform:uppercase;background:rgba(220,80,80,.15);color:#e05555;border:1px solid rgba(220,80,80,.35);border-radius:3px;padding:1px 6px;margin-left:8px;vertical-align:middle}
.dragon-hist-title{font-family:'Cinzel',serif;font-size:var(--fs-base);letter-spacing:1px;color:var(--gold);text-transform:uppercase;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--border)}
.dragon-hist-row{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid var(--border);margin-bottom:4px;background:var(--bg-panel2);flex-wrap:wrap}
.dragon-hist-slot{font-size:var(--fs-xs);color:var(--text-dim);min-width:110px;flex-shrink:0;white-space:nowrap}
.dragon-hist-name{font-family:'Cinzel',serif;font-size:var(--fs-sm);font-weight:700;flex:1;min-width:80px}
.dragon-hist-count{font-size:var(--fs-xs);padding:2px 8px;font-family:'Cinzel',serif;font-weight:700;border:1px solid var(--border2);flex-shrink:0}
.dragon-hist-count--all{background:var(--green);color:#1a1209;border-color:var(--green)}
.dragon-hist-count--partial{color:var(--text-dim)}
.dragon-hist-detail-wrap{margin:0 0 8px 0;border:1px solid var(--border);border-top:none;padding:8px 12px;display:none;background:var(--bg)}
.dragon-hist-detail-wrap.open{display:block}
.dragon-hist-member-row{display:flex;align-items:center;gap:10px;padding:3px 0;border-bottom:1px solid var(--border);font-size:var(--fs-sm)}
.dragon-hist-member-row:last-child{border-bottom:none}
.dragon-hist-member-name{flex:1;color:var(--text)}
.dragon-hist-status{font-size:var(--fs-micro);padding:1px 7px;font-weight:700;letter-spacing:.5px}
.dragon-hist-status--none{color:var(--text-dim)}
.dragon-hist-status--3pct{color:var(--green)}
.dragon-hist-status--od{color:#e67e22}

/* ── Stat-Box klein (Kriege / Punkte) ─────────────────── */
.stat-box--sm{flex:0 0 90px !important;min-width:0 !important;padding:8px 12px}
.stat-box--sm .stat-val{font-size:clamp(16px,1.8vw,20px) !important}
.stat-box--sm .stat-label{font-size:var(--fs-xs)}

@media(max-width:640px){.dragon-cards-grid{grid-template-columns:1fr 1fr}.dragon-member-list{grid-template-columns:1fr 1fr}}
@media(max-width:380px){.dragon-cards-grid{grid-template-columns:1fr}}

/* ── Event-Modul ───────────────────────────────────────── */
.event-score-table{width:100%;border-collapse:collapse;font-size:14px}
.event-score-table th{padding:5px 8px;text-align:left;font-size:var(--fs-xs);color:var(--text-dim);border-bottom:1px solid var(--border);font-family:'Cinzel',serif;letter-spacing:.05em;font-weight:600}
.event-score-table td{padding:5px 8px;border-bottom:1px solid var(--border)}
.event-score-table tfoot td{border-bottom:none;font-weight:600}
.event-score-table tbody tr:hover td{background:var(--hover)}
#event-improvement-table td{border-right:1px solid rgba(100,100,130,0.12)}
#event-improvement-table td:last-child{border-right:none}

/* Score-Ampel: Nähe zum Highscore */
.score-good{color:var(--green)}
.score-warn{color:#e67e22}
.score-bad {color:var(--red)}

.score-credit{font-size:11px;color:var(--text-dim);font-style:italic}

/* Event-Score-Input: schmal, inline */
.event-score-input{height:28px !important;padding:3px 6px !important;font-size:13px !important;min-width:0;text-align:center !important}
.imp-sort-toggle{display:inline-flex;background:var(--bg-panel2);border:1px solid var(--border);border-radius:4px;overflow:hidden}
.imp-sort-toggle span{padding:3px 10px;font-size:11px;cursor:pointer;color:var(--text-dim);font-family:'Cinzel',serif;letter-spacing:.05em;text-transform:uppercase;transition:background .15s,color .15s}
.imp-sort-toggle span.active{background:var(--gold-dim);color:var(--gold)}
.imp-sort-toggle span:hover:not(.active){color:var(--text)}

/* Kalender */
.cal-color-bar{width:4px;min-height:40px;border-radius:2px;flex-shrink:0}

/* Kalender-Grid */
.cal-grid-wrap{overflow-x:auto}
.cal-grid{display:grid;grid-template-columns:36px repeat(7,1fr);min-width:560px;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:6px;overflow:hidden}
.cal-hdr{background:var(--bg-panel2);padding:6px 4px;text-align:center;font-size:12px;font-weight:600;color:var(--text-dim)}
.cal-kw{background:var(--bg-panel2);padding:6px 4px;text-align:center;font-size:11px;color:var(--text-dim);display:flex;align-items:flex-start;justify-content:center}
.cal-week-body{grid-column:span 7;position:relative;display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border)}
.cal-event-bar{position:absolute;height:16px;line-height:16px;font-size:10px;padding:0 5px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;cursor:default;z-index:2}
.cal-day{background:var(--bg-panel);padding:5px 4px;min-height:56px;overflow:hidden}
.cal-other-month{opacity:.45}
.cal-day-num{font-size:11px;font-weight:600;margin-bottom:3px;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%}
.cal-today .cal-day-num{background:var(--gold);color:var(--bg-dark)}
.cal-chip{font-size:10px;padding:2px 5px;border-radius:3px;margin-bottom:2px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:100%;display:block;cursor:default}

/* ── Benachrichtigungen ───────────────────────────────── */
.notif-bell{position:relative;background:none;border:none;cursor:pointer;padding:4px 6px;color:var(--text);font-size:18px;line-height:1;border-radius:4px;transition:background .15s}
.notif-bell:hover{background:var(--hover)}
.notif-badge{position:absolute;top:0;right:0;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--red);color:#fff;font-size:var(--fs-micro);font-family:'Cinzel',serif;font-weight:700;line-height:16px;text-align:center;pointer-events:none}
.notif-panel{position:absolute;top:calc(100% + 6px);right:0;width:340px;max-height:420px;overflow-y:auto;background:var(--bg-panel);border:1px solid var(--gold-dim);border-radius:6px;box-shadow:var(--shadow);z-index:99}
.notif-panel-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px 8px;border-bottom:1px solid var(--border);font-family:'Cinzel',serif;font-size:var(--fs-xs);font-weight:600;color:var(--gold);letter-spacing:.05em;position:sticky;top:0;background:var(--bg-panel)}
.notif-empty{padding:20px 14px;font-size:var(--fs-sm);color:var(--text-dim);text-align:center}
.notif-item{padding:10px 14px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s}
.notif-item:last-child{border-bottom:none}
.notif-item:hover{background:var(--hover)}
.notif-item.unread{background:var(--bg-panel2);border-left:3px solid var(--gold)}
.notif-item.resolved{opacity:.6}
.notif-item-text{font-size:var(--fs-sm);color:var(--text);line-height:1.4;margin-bottom:3px}
.notif-item-meta{font-size:var(--fs-xs);color:var(--text-dim)}
.notif-resolved{font-style:italic}
.notif-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:5px 0;font-size:var(--fs-sm);color:var(--text);cursor:pointer;gap:8px}
.notif-toggle-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--gold);cursor:pointer;flex-shrink:0}
/* Panel positionierung relativ zum Bell-Button */
#logged-in-area{position:relative}

/* Event-Tipps Box im Score-Tracker */
.event-tips-box{background:var(--hover);border-left:3px solid var(--gold);border-radius:4px;padding:10px 14px;display:flex;flex-direction:column;gap:6px}
.event-tip-item{font-size:13px;line-height:1.6;color:var(--text)}

/* Tipp-Zeile im Admin-Panel */
.event-tip-admin-row{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}

/* Highscore-Vorschlag Badge (★) in Score-Tabelle */
.hs-proposal-badge{
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--gold);color:#000;font-size:11px;font-weight:700;
  width:20px;height:20px;border-radius:50%;cursor:default;
}

.event-diff-btn.active{background:rgba(200,168,75,0.18);border-color:var(--gold);color:var(--gold)}
.admin-collapsible.collapsed .panel-body{display:none}
.admin-collapsible>.panel-title{cursor:pointer;user-select:none}
/* Eingeklappt: kompakte Klick-Leiste ohne Leerraum, ganze Zeile ist Hover-Flaeche */
.admin-collapsible.collapsed{padding-top:12px;padding-bottom:12px;cursor:pointer;transition:background .15s,border-color .15s}
.admin-collapsible.collapsed>.panel-title{margin-bottom:0;padding-bottom:0;border-bottom:none}
.admin-collapsible.collapsed:hover{background:var(--hover);border-color:var(--gold-dim)}
.panel-toggle-btn{font-size:14px;color:var(--gold-dim);padding:0 4px;pointer-events:none;display:inline-block;transition:transform .2s,color .15s}
.admin-collapsible:not(.collapsed) .panel-toggle-btn{transform:rotate(90deg);color:var(--gold)}
@media(max-width:640px){.event-score-table th:nth-child(4),.event-score-table td:nth-child(4){display:none}}

/* ── Team-Builder ─────────────────────────────── */
.builder-layout{display:flex;gap:16px;align-items:flex-start;margin-top:14px}
.builder-roster-panel{flex:0 0 38%;min-width:240px;max-width:340px;background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;padding:12px;max-height:72vh;overflow-y:auto}
.builder-teams-panel{flex:1;min-width:0;display:flex;flex-direction:column;gap:12px;max-height:72vh;overflow-y:auto}
.builder-toolbar{margin-bottom:10px}

/* Filter */
.builder-filter-bar{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}
.builder-filter-row{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:2px}
.builder-filter-btn{background:var(--bg-panel2);border:1px solid var(--border);border-radius:4px;padding:3px 8px;font-size:var(--fs-xs);color:var(--text-dim);cursor:pointer;transition:background .15s,border-color .15s}
.builder-filter-btn:hover{background:var(--hover);color:var(--text)}
.builder-filter-btn.active{background:rgba(200,168,75,.18);border-color:var(--gold);color:var(--gold)}

/* Champion Roster Grid */
.builder-roster{display:grid;grid-template-columns:repeat(auto-fill,minmax(68px,1fr));gap:8px;padding-top:4px}
.champion-card{display:flex;flex-direction:column;align-items:center;padding:6px 4px;border-radius:6px;border:1px solid var(--border);background:var(--bg-panel2);cursor:grab;transition:opacity .2s,border-color .15s,box-shadow .15s;position:relative;user-select:none}
.champion-card:hover:not(.champion-used){border-color:var(--gold-dim);box-shadow:0 0 6px rgba(200,168,75,.25)}
.champion-card:active:not(.champion-used){cursor:grabbing}
.champion-card.champion-used{opacity:.38;cursor:not-allowed}
.champion-card.touch-selected{border-color:var(--gold);box-shadow:0 0 8px rgba(200,168,75,.45)}
.champion-card-img{width:56px;height:108px;object-fit:cover;border-radius:4px;display:block}
.champion-card-placeholder{width:56px;height:108px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;color:#fff;font-family:'Cinzel',serif}
.champion-color-dot{width:8px;height:8px;border-radius:50%;margin-top:4px;flex-shrink:0}
.champion-card-name{font-size:10px;color:var(--text);text-align:center;margin-top:3px;line-height:1.3;word-break:break-word;max-width:64px}
.champion-used-badge{position:absolute;bottom:3px;left:2px;right:2px;background:rgba(0,0,0,.7);color:var(--gold-dim);font-size:9px;text-align:center;border-radius:3px;padding:1px 2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Team Cards */
.builder-team-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:6px;padding:12px}
.builder-team-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:8px}
.builder-team-name{font-family:'Cinzel',serif;font-size:var(--fs-sm);color:var(--gold);font-weight:600;outline:none;flex:1;min-width:0;padding:2px 4px;border-radius:3px}
.builder-team-name:focus{background:var(--hover)}

/* Team Slots */
.builder-team-slots{display:flex;gap:8px;flex-wrap:wrap}
.builder-slot{width:60px;height:80px;border-radius:6px;border:2px dashed var(--border);display:flex;align-items:center;justify-content:center;position:relative;transition:border-color .15s,background .15s}
.builder-slot-empty{cursor:default}
.builder-slot-empty:hover,.builder-slot[dragged-over]{border-color:var(--gold-dim);background:rgba(200,168,75,.06)}
.builder-slot-hint{font-size:22px;color:var(--border);line-height:1}
.builder-slot-filled{border-style:solid;border-color:var(--border)}
.builder-slot-img{width:100%;height:100%;object-fit:cover;border-radius:4px}
.builder-slot-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:#fff;font-family:'Cinzel',serif;border-radius:4px}
.builder-slot-remove{position:absolute;top:1px;right:1px;width:16px;height:16px;border-radius:50%;background:rgba(0,0,0,.6);border:none;color:var(--red);font-size:10px;line-height:1;cursor:pointer;display:none;padding:0;align-items:center;justify-content:center}
.builder-slot-filled:hover .builder-slot-remove{display:flex}

/* Faction tag */
.champion-faction-tag{display:inline-flex;align-items:center;padding:4px 10px;border-radius:4px;border:1px solid var(--border);background:var(--bg-panel2);font-size:var(--fs-sm);color:var(--text);cursor:pointer;transition:border-color .15s}
.champion-faction-tag:hover{border-color:var(--gold-dim)}

/* Admin champion grid */
.admin-champion-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:10px;margin-top:10px}
.admin-champion-card{display:flex;flex-direction:column;align-items:center;padding:8px 4px;border-radius:6px;border:1px solid var(--border);background:var(--bg-panel2);cursor:pointer;transition:border-color .15s,box-shadow .15s}
.admin-champion-card:hover{border-color:var(--gold-dim);box-shadow:0 0 6px rgba(200,168,75,.2)}
.admin-champion-img-wrap{width:72px;height:90px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.admin-champion-img{width:72px;height:auto;max-height:90px;object-fit:contain;border-radius:4px;display:block}
.admin-champion-name{font-size:var(--fs-sm);font-weight:600;color:var(--text);text-align:center;margin-top:4px;line-height:1.3;height:2.6em;display:flex;align-items:center;justify-content:center;word-break:break-word;overflow:hidden;width:100%}
.admin-champion-meta{display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:2px;font-size:10px;color:var(--text-dim);text-align:center;min-height:36px;width:100%}
.color-gem-img{width:28px;height:28px;object-fit:contain;flex-shrink:0}
.admin-champion-placeholder{width:64px;height:82px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700;color:#fff;font-family:'Cinzel',serif}

/* Sub-Tab-Inhalte nahtlos an Sub-Tab-Leiste anschliessen */
.admin-sub-content,[id^="ava-sub-"]{background:var(--bg-panel);padding:16px;border-radius:0 0 6px 6px}
#mt-sub-teams,#mt-sub-builder{padding-top:12px}

/* Admin sub-tabs */
.admin-sub-tab-bar{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--border);margin-bottom:14px}
.admin-sub-tab-bar button{background:none;border:none;border-bottom:2px solid transparent;padding:6px 12px;font-size:var(--fs-sm);color:var(--text-dim);cursor:pointer;margin-bottom:-1px;transition:color .15s,border-color .15s;border-radius:4px 4px 0 0}
.admin-sub-tab-bar button:hover{color:var(--text)}
.admin-sub-tab-bar button.active{color:var(--gold);border-bottom-color:var(--gold)}

/* Color picker in champion modal */
.builder-color-picker{display:flex;gap:8px;align-items:center;padding:4px 0}
.builder-color-btn{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:border-color .15s,transform .15s;flex-shrink:0}
.builder-color-btn.active{border-color:#fff;transform:scale(1.15)}

/* Crop modal image container */
#champion-crop-container{max-height:60vh;overflow:hidden;background:#111;border-radius:6px}
#champion-crop-img{display:block;max-width:100%;max-height:60vh}

@media(max-width:700px){
  .builder-layout{flex-direction:column}
  .builder-roster-panel{max-width:100%;flex:none;max-height:280px}
  .builder-teams-panel{max-height:none}
  .builder-slot{width:52px;height:70px}
  .builder-roster{grid-template-columns:repeat(auto-fill,minmax(58px,1fr))}
}
