:root{
  font-family:Inter,Segoe UI,Arial,Helvetica,sans-serif;
  --bg:#111214;--bg2:#161719;--panel:#202123;--panel2:#262729;--panel3:#191a1c;
  --text:#f1f1f1;--muted:#b8b8b8;--muted2:#858585;--line:#3a3b3d;
  --accent:#f39a12;--accent2:#cc7600;--danger:#a83232;--success:#2e8b57;
  --shadow:0 9px 24px rgba(0,0,0,.24);
}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:linear-gradient(180deg,#141517 0,#101113 100%);color:var(--text);min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{color:#ffb642}.wrap{max-width:1460px;margin:0 auto;padding:0 22px}
.site-header{background:#111214}.hero-banner{height:340px;position:relative;display:flex;align-items:flex-end;justify-content:center;overflow:hidden;background-image:linear-gradient(180deg,rgba(0,0,0,.02) 25%,rgba(0,0,0,.25) 60%,rgba(0,0,0,.92) 100%),url('hegau-banner.jpg');background-size:cover;background-position:center center;border-bottom:1px solid #454545}.hero-brand{display:flex;align-items:center;gap:18px;margin-bottom:24px;color:#fff;text-shadow:0 3px 7px rgba(0,0,0,.8)}.hero-brand:hover{color:#fff}.hero-radio{width:58px;height:58px;border:4px solid var(--accent);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:34px;line-height:1;color:var(--accent);box-shadow:0 2px 8px rgba(0,0,0,.5)}.hero-copy{display:flex;flex-direction:column;align-items:center}.hero-title{font-size:3.15rem;font-weight:800;letter-spacing:.01em;line-height:1}.hero-subtitle{font-size:1.72rem;font-weight:700;color:var(--accent);margin-top:9px;line-height:1}
.nav-shell{background:linear-gradient(180deg,#202123,#151618);border-bottom:1px solid #414244;box-shadow:0 4px 13px rgba(0,0,0,.28)}.nav-wrap{position:relative}.main-nav{min-height:64px;display:flex;align-items:stretch;gap:0}.nav-item{display:flex;align-items:center;gap:8px;padding:0 17px;color:#ededed;border-bottom:3px solid transparent;white-space:nowrap;transition:.15s background,.15s color,.15s border-color}.nav-item:hover{background:rgba(255,255,255,.045);color:#fff}.nav-item.active{color:var(--accent);border-bottom-color:var(--accent)}.home-external{color:var(--accent)}.nav-icon{font-size:1.25rem;color:#bcbcbc}.nav-item.active .nav-icon,.home-external .nav-icon{color:var(--accent)}.nav-spacer{flex:1}.account-link{margin-left:auto}.logout-link{font-size:.86rem;color:#aaa}.nav-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--accent);color:#151515;font-size:.73rem;font-weight:800}.nav-toggle{display:none;background:transparent;border:0;color:#fff;font:inherit;padding:14px 0;cursor:pointer}
.main-content{padding-top:20px;padding-bottom:34px}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.dashboard-panel,.card,.round-card{background:linear-gradient(145deg,var(--panel2),var(--panel));border:1px solid #2d2e30;border-radius:11px;box-shadow:var(--shadow)}.dashboard-panel{overflow:hidden}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 17px 10px}.panel-heading h1{font-size:1.3rem;margin:0;color:#fff}.accent-icon{color:var(--accent);margin-right:7px}.dashboard-table-wrap,.table-wrap{overflow-x:auto;padding:0 10px 10px}.dashboard-table,table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.89rem;color:#f1f1f1;font-weight:600;background:var(--panel3);white-space:nowrap}td{color:#ececec}tbody tr:hover{background:rgba(255,255,255,.025)}tbody tr:last-child td{border-bottom:0}.dashboard-table{border:1px solid var(--line);border-radius:7px;overflow:hidden}.dashboard-table th,.dashboard-table td{padding:9px 11px}.dashboard-table .participant-preview{max-width:265px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.accent-link,.distance{color:var(--accent)}.empty-cell{text-align:center;color:var(--muted);padding:24px!important}.notes{white-space:normal;min-width:180px}
.action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:18px}.action-card{display:flex;gap:24px;min-height:195px;padding:26px 27px;background:linear-gradient(135deg,#292a2c,#1f2022);border:1px solid #2f3032;border-radius:11px;box-shadow:var(--shadow)}.action-icon{flex:0 0 76px;height:76px;display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:4rem;line-height:1}.action-copy{display:flex;flex-direction:column;align-items:flex-start}.action-copy h2{margin:0 0 8px;color:var(--accent);font-size:1.55rem}.action-copy p{margin:0 0 17px;color:#e1e1e1;font-size:1.04rem;line-height:1.45;flex:1}
.card{padding:20px;margin-bottom:20px}.card h1,.card h2,.round-card h2{color:#fff}.card h1{margin:0 0 8px;font-size:1.65rem}.card h2{margin-top:0}.muted,.field-help,.round-summary{color:var(--muted)}.card hr{border:0;border-top:1px solid var(--line);margin:20px 0}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:8px 16px;background:linear-gradient(180deg,#f6a31d,#e18400);border:1px solid #b86a00;border-radius:6px;color:#171717;font-weight:650;cursor:pointer;box-shadow:inset 0 1px rgba(255,255,255,.25)}.btn:hover{color:#050505;filter:brightness(1.06)}.btn.secondary{background:linear-gradient(#58595c,#454649);border-color:#646568;color:#fff}.btn.outline{background:transparent;border-color:#a96100;color:var(--accent);box-shadow:none}.btn.outline:hover{background:rgba(243,154,18,.08);color:#ffad28}.btn.danger{background:#8d2d2d;border-color:#b04444;color:#fff}.btn.small{padding:6px 10px;min-height:34px;font-size:.85rem}
input,select,textarea{width:100%;padding:10px 11px;background:#17181a;border:1px solid #4b4c4e;border-radius:6px;color:#fff;font:inherit}input::placeholder,textarea::placeholder{color:#7e7e7e}input:focus,select:focus,textarea:focus{outline:2px solid rgba(243,154,18,.22);border-color:var(--accent)}label{display:block;font-weight:650;margin-bottom:6px;color:#e8e8e8}.filters{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:10px;margin-top:16px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid .full{grid-column:1/-1}.narrow-card{max-width:780px;margin-left:auto;margin-right:auto}.button-row,.actions,.round-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:10px}.message{padding:12px 14px;border-radius:6px;margin-bottom:16px;background:#173b2b;border:1px solid #276b49}.message.error,.error{background:#421e1e;border-color:#743232;color:#ffd1d1}.badge{display:inline-block;padding:4px 8px;border-radius:999px;background:#45474a;color:#eee;font-size:.8rem;font-weight:700}.badge-active{background:#17452c;color:#bff2cf}.badge-pending{background:#573d11;color:#ffd58b}.badge-admin{background:#273d62;color:#c8ddff}.badge-main{background:#4a315d;color:#ead2fa}.pagination{display:flex;gap:10px;align-items:center;justify-content:center;margin-top:16px}.inline-form{display:inline}.check-label{display:flex;align-items:center;gap:8px}.check-label input{width:auto}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.page-head h1{margin-bottom:5px}.grid-link{font-size:.83rem;white-space:nowrap}
.footer{border-top:1px solid #3b3c3e;background:#1c1d1f;color:#ccc;padding:20px 0}.footer-inner{display:flex;justify-content:center;gap:42px;flex-wrap:wrap;font-size:.92rem}.footer strong{color:var(--accent)}
.participant-list,.round-list{display:grid;gap:12px}.participant-row{display:grid;grid-template-columns:2fr 1.2fr 1fr 1.5fr 1fr auto;gap:10px;align-items:end;padding:13px;border:1px solid var(--line);border-radius:8px;background:#1b1c1e}.round-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.round-meta .wide{grid-column:span 2}.round-card{padding:16px}.round-card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.round-card h2{margin:0 0 6px}.participant-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.participant-tag{display:inline-block;padding:5px 8px;background:#363739;border-radius:999px;font-size:.86rem}.round-detail-participants{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.round-participant{padding:12px;border:1px solid var(--line);border-radius:8px;background:#1b1c1e}.round-count{font-weight:700;color:#ddd}.qso-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:18px 0}.qso-detail-grid>div{padding:12px;border:1px solid var(--line);border-radius:8px;background:#1b1c1e}.qso-map{height:480px;border-radius:10px;overflow:hidden;margin-top:18px}
@media(max-width:1150px){.dashboard-grid{grid-template-columns:1fr}.action-grid{grid-template-columns:1fr 1fr}.action-card:last-child{grid-column:1/-1}.hero-banner{height:300px}.hero-title{font-size:2.6rem}.hero-subtitle{font-size:1.4rem}.nav-item{padding-left:12px;padding-right:12px}}
@media(max-width:780px){
 .wrap{padding-left:13px;padding-right:13px}.hero-banner{height:220px;background-position:center center}.hero-brand{margin-bottom:18px;gap:11px}.hero-radio{width:42px;height:42px;font-size:24px;border-width:3px}.hero-title{font-size:1.75rem}.hero-subtitle{font-size:1.02rem;margin-top:6px}.hero-copy{align-items:flex-start}
 .nav-toggle{display:block}.main-nav{display:none;min-height:0;padding-bottom:12px;flex-direction:column}.main-nav.open{display:flex}.nav-item{min-height:46px;padding:0 12px;border:1px solid #333;border-bottom-width:1px;border-radius:6px;margin-bottom:6px}.nav-item.active{border-color:#80520f;color:var(--accent)}.nav-spacer{display:none}.account-link{margin-left:0}.main-content{padding-top:14px}
 .action-grid{grid-template-columns:1fr}.action-card:last-child{grid-column:auto}.action-card{min-height:0;padding:20px;gap:16px}.action-icon{flex-basis:58px;height:58px;font-size:3rem}.action-copy h2{font-size:1.3rem}.action-copy p{font-size:.96rem}.panel-heading{align-items:flex-start;flex-direction:column}.panel-heading .btn{width:100%}
 .filters,.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.round-meta{grid-template-columns:1fr 1fr}.round-meta .wide{grid-column:1/-1}.participant-row{grid-template-columns:1fr 1fr}.participant-row>div:first-child,.participant-row .participant-name,.participant-row .participant-notes,.participant-row .remove-wrap{grid-column:1/-1}.round-detail-participants{grid-template-columns:1fr}.round-card-head{flex-direction:column}.page-head{flex-direction:column}.page-head .round-actions{width:100%}.page-head .round-actions .btn{flex:1}.qso-detail-grid{grid-template-columns:1fr 1fr}.qso-map{height:350px}.footer-inner{gap:7px;flex-direction:column;text-align:center}
 .table-wrap,.dashboard-table-wrap{overflow:visible;padding-left:0;padding-right:0}table thead{display:none}table tbody,table tr,table td{display:block;width:100%}table tr{margin-bottom:12px;border:1px solid var(--line);border-radius:8px;background:#1a1b1d;padding:7px}table td{position:relative;padding:8px 8px 8px 42%;border-bottom:1px solid #303133;white-space:normal;min-height:36px;overflow-wrap:anywhere}table td:last-child{border-bottom:0}table td::before{content:attr(data-label);position:absolute;left:8px;top:8px;width:31%;font-weight:700;color:#aaa}table td[colspan]{padding-left:8px;text-align:center}table td[colspan]::before{display:none}.dashboard-table{border:0}.dashboard-table .participant-preview{max-width:none;white-space:normal}.notes{min-width:0}.actions{padding-left:8px!important}.actions::before{display:none}
}
@media(max-width:450px){.hero-banner{height:190px}.hero-title{font-size:1.36rem}.hero-subtitle{font-size:.9rem}.hero-radio{width:36px;height:36px;font-size:20px}.action-card{display:block}.action-icon{justify-content:flex-start;margin-bottom:10px}.round-meta,.participant-row,.qso-detail-grid{grid-template-columns:1fr}.round-meta .wide,.participant-row>div:first-child,.participant-row .participant-name,.participant-row .participant-notes,.participant-row .remove-wrap{grid-column:auto}table td{padding-left:39%}table td::before{width:32%}}

/* v0.10 – laufende Funkrunden */
.round-status{display:inline-block;vertical-align:middle;margin-left:8px;padding:4px 9px;border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.05em}
.round-status.open{background:#5b3a06;border:1px solid #d88900;color:#ffc45b;box-shadow:0 0 0 1px rgba(243,154,18,.08) inset}
.round-status.closed{background:#292b2e;border:1px solid #55585c;color:#c6c8cb}
.round-status.small{font-size:.64rem;padding:2px 6px;margin-left:4px}
.message.info{background:#2b2a1c;border-color:#665a24;color:#f3e6aa}
.inline-round-add{margin-top:14px}
.round-control{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap}
.round-control form{max-width:680px;width:100%}
.end-time-row{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:10px;align-items:end}
@media(max-width:700px){
  .end-time-row{grid-template-columns:1fr}
  .round-status{margin-left:4px;margin-top:5px}
}


/* v0.11 Admin-Nachrichten */
.message-thread{border:1px solid rgba(255,255,255,.12);border-radius:12px;padding:16px;margin:14px 0;background:rgba(255,255,255,.025)}
.message-thread-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.admin-reply{margin-top:12px;padding:12px;border-left:3px solid #f08a24;background:rgba(240,138,36,.08);border-radius:6px}
.message-reply-form{margin-top:14px}.message-reply-form textarea{width:100%}
@media(max-width:700px){.message-thread-head{display:block}.message-thread-head .badge{display:inline-block;margin-top:8px}}


/* Version 1.0.2 – robuste Mobilansicht und Änderungsprotokoll */
.audit-filters{grid-template-columns:minmax(220px,2fr) minmax(150px,1fr) auto auto}
.audit-table td{vertical-align:middle}
@media(max-width:780px){
  /* Aktionsgruppen dürfen auf kleinen Displays niemals übereinander liegen. */
  .button-row,.actions,.round-actions{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;width:100%!important;align-items:stretch!important}
  .button-row .btn,.actions .btn,.round-actions .btn,.button-row .inline-form,.actions .inline-form,.round-actions .inline-form{width:100%!important;max-width:none!important;margin:0!important}
  .inline-form{display:block;width:100%}
  .inline-form .btn{display:flex;width:100%}
  form>.btn+ .btn,form>.btn+ a.btn,form>a.btn+ .btn,form>a.btn+ a.btn{margin-top:8px}
  .page-head{width:100%}.page-head>*{min-width:0;max-width:100%}
  .participant-row .remove-wrap .btn{width:100%}
  .message-thread form.inline-form{margin-top:8px}
  .audit-filters{grid-template-columns:1fr}
}
@media(max-width:450px){
  .card{padding:14px}
  .btn{min-height:44px;padding-left:12px;padding-right:12px;white-space:normal;text-align:center}
  table td{padding-left:8px;padding-top:30px}
  table td::before{top:7px;width:auto;max-width:calc(100% - 16px)}
  table td.actions{padding-top:34px!important}
}

/* Version 1.0.2.1 – Dashboard-Karten auf Mobilgeräten ohne Überlagerungen */
@media (max-width:780px){
  .dashboard-grid{
    display:block;
    width:100%;
  }
  .dashboard-panel{
    display:block;
    width:100%;
    min-width:0;
    overflow:hidden;
    margin:0 0 16px 0;
  }
  .dashboard-panel:last-child{margin-bottom:0}
  .dashboard-table-wrap{
    display:block;
    width:100%;
    min-width:0;
    overflow:visible;
    padding:0 10px 10px;
  }
  .dashboard-table{
    display:block;
    width:100%;
    min-width:0;
  }
  .dashboard-table tbody{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:10px;
    width:100%;
  }
  .dashboard-table tr{
    display:block;
    width:100%;
    min-width:0;
    margin:0;
    padding:7px 10px;
    border:1px solid var(--line);
    border-radius:8px;
    background:#1a1b1d;
    overflow:hidden;
  }
  .dashboard-table td{
    position:static;
    display:grid;
    grid-template-columns:minmax(92px,34%) minmax(0,1fr);
    column-gap:10px;
    align-items:start;
    width:100%;
    min-width:0;
    min-height:0;
    padding:8px 0;
    border-bottom:1px solid #303133;
    overflow:visible;
    overflow-wrap:anywhere;
    word-break:normal;
  }
  .dashboard-table td:last-child{border-bottom:0}
  .dashboard-table td::before{
    content:attr(data-label);
    position:static;
    display:block;
    width:auto;
    max-width:none;
    color:#aaa;
    font-weight:700;
    line-height:1.35;
  }
  .dashboard-table td > *,
  .dashboard-table td a,
  .dashboard-table td span{
    min-width:0;
    max-width:100%;
  }
  .dashboard-table .participant-preview{
    max-width:none;
    white-space:normal;
    overflow:visible;
    text-overflow:clip;
  }
  .dashboard-table .empty-cell{
    display:block;
    padding:18px 8px!important;
    text-align:center;
  }
  .dashboard-table .empty-cell::before{display:none}
}

@media (max-width:430px){
  .dashboard-table-wrap{padding-left:8px;padding-right:8px}
  .dashboard-table td{
    grid-template-columns:minmax(82px,32%) minmax(0,1fr);
    column-gap:8px;
    padding:7px 0;
  }
  .dashboard-panel .panel-heading{padding-left:14px;padding-right:14px}
}


/* Version 1.0.3 – aktiver/inaktiver Status innerhalb laufender Runden */
.active-count{color:var(--accent);font-weight:800;font-size:1.2em}
.participant-status-line{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.presence-badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:.72rem;font-weight:800;letter-spacing:.04em}
.presence-badge.active{background:rgba(56,180,100,.16);border:1px solid rgba(70,205,115,.45);color:#75df98}
.presence-badge.inactive{background:rgba(160,160,160,.10);border:1px solid #555;color:#aaa}
.participant-inactive{opacity:.68;border-style:dashed}
.inactive-heading{margin-top:24px;color:#aaa}
.inactive-participants{margin-top:8px}
.participant-status-form{margin-top:10px}
.small-btn{min-height:34px;padding:6px 10px;font-size:.84rem}
@media(max-width:780px){
  .participant-status-form .btn{width:100%}
  .participant-status-line{align-items:flex-start}
}


/* Version 1.0.5 – Rundenstatus, Teilnehmerübersicht und bereinigtes Mobil-Banner */
.participant-block-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}
.participant-block-head h2{margin:0}
.unified-participants{grid-template-columns:repeat(2,minmax(0,1fr))}
.round-end-summary{margin:0 0 16px;padding:13px 14px;border:1px solid #665a24;border-radius:8px;background:#2b2a1c;color:#f3e6aa}
.end-active-list{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:10px}
.presence-badge.end{background:rgba(243,154,18,.13);border:1px solid rgba(243,154,18,.5);color:#ffc45b}
.participant-tag.active{border:1px solid rgba(70,205,115,.45);background:rgba(56,180,100,.13);color:#9be5b2}
.participant-tag.inactive{border:1px solid #505256;background:#292a2c;color:#a9aaad;opacity:.78}
.participant-tag.end-active{border:1px solid rgba(243,154,18,.48);background:rgba(243,154,18,.12);color:#ffc45b}
.participant-tags.compact{display:flex;gap:5px;flex-wrap:wrap}
.dashboard-table .participant-preview{max-width:none;white-space:normal}
@media(max-width:780px){
  .participant-block-head{align-items:flex-start;flex-direction:column}
  .unified-participants{grid-template-columns:1fr}
  .hero-banner{background-position:center center}
}

/* Version 1.0.8 – Projektbeschreibung und Changelog */
.footer-developer-link{color:inherit;text-decoration:none;border-bottom:1px dotted rgba(255,255,255,.35);transition:color .15s ease,border-color .15s ease}
.footer-developer-link:hover,.footer-developer-link:focus{color:var(--accent);border-color:var(--accent)}
.about-hero{padding:28px 30px;margin-bottom:18px;background:linear-gradient(135deg,#202124,#17181a)}
.about-kicker{text-transform:uppercase;letter-spacing:.12em;color:var(--accent);font-weight:800;font-size:.78rem}
.about-hero h1{margin:6px 0 2px;font-size:clamp(1.7rem,4vw,2.6rem)}
.about-version{display:inline-flex;margin:8px 0 14px;padding:5px 10px;border:1px solid rgba(243,154,18,.48);border-radius:999px;background:rgba(243,154,18,.1);color:#ffc45b;font-weight:800}
.about-hero p{max-width:900px;line-height:1.65;color:#d1d2d4}
.about-section{padding:24px 28px;margin-bottom:18px}
.about-section h2{margin-top:0}
.changelog-entry{padding:18px 0;border-top:1px solid var(--line)}
.changelog-entry:first-of-type{border-top:0}
.changelog-entry.current{margin:6px -12px 0;padding:18px 12px;border:1px solid rgba(243,154,18,.35);border-radius:9px;background:rgba(243,154,18,.055)}
.changelog-version{color:var(--accent);font-size:1.05rem;font-weight:800;margin-bottom:8px}
.changelog-entry ul{margin:8px 0 0;padding-left:22px;line-height:1.55}
.changelog-entry li+li{margin-top:4px}
.about-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.about-grid .about-section{margin-bottom:18px}
.developer-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:24px;text-align:center;margin-bottom:8px}
.developer-card .developer-label{color:#aaa;font-size:.86rem;text-transform:uppercase;letter-spacing:.08em}
.developer-card strong{font-size:1.35rem;color:var(--accent)}
.developer-card span{font-size:1.05rem}
.developer-card small{margin-top:8px;color:#919296}
@media(max-width:780px){
  .about-grid{grid-template-columns:1fr;gap:0}
  .about-hero,.about-section{padding:20px 18px}
  .changelog-entry.current{margin-left:-4px;margin-right:-4px}
}
