/* ===== Fonts ===== */
@font-face {
  font-family: "Montserrat";
  src: url("fonts/montserrat-500.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Montserrat";
  src: url("fonts/montserrat-600.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Montserrat";
  src: url("fonts/montserrat-700.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}
/* ===== Design-Tokens ===== */
:root{
  /* Marke */
  --brand:#E8731C; --brand-dark:#B5520A; --brand-soft:#FDF1E7;
  --verein:#2E7D32; --verein-soft:#EAF4EA;
  /* Neutrale */
  --bg:#F6F4F1; --surface:#FFFFFF; --text:#1F2328; --muted:#5F6670; --border:#E4E0DA;
  /* Status (Dringlichkeit) */
  --danger:#C62828; --danger-soft:#FDECEC;
  --warning:#9A5B00; --warning-soft:#FFF4DE;
  --info:#1E62A8; --info-soft:#E8F1FB;
  --success:#2E7D32; --success-soft:#EAF4EA;
  /* Kategorien (Termin-Typ) */
  --k-sitzung:#5B4BB7;  --k-sitzung-soft:#EFEDFA;
  --k-event:#B5520A;    --k-event-soft:#FDF1E7;
  --k-sport:#2E7D32;    --k-sport-soft:#EAF4EA;
  --k-verwaltung:#455A64; --k-verwaltung-soft:#ECEFF1;
  --k-feier:#AD1457;    --k-feier-soft:#FCE8F1;

  --radius:10px; --shadow:0 1px 2px rgba(0,0,0,.05),0 2px 8px rgba(0,0,0,.04);
  --font-head:'Montserrat',system-ui,sans-serif; --font-body:'Source Sans 3',system-ui,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.5}
a{color:var(--brand-dark)}
h1,h2,h3{font-family:var(--font-head);margin:0;letter-spacing:.01em}
.wrap{max-width:1200px;margin:0 auto;padding:0 20px}

/* ===== Kopf ===== */
.topbar{width:100%;background:var(--surface);border-top:5px solid var(--brand);border-bottom:1px solid var(--border)}
.topbar .wrap{display:flex;align-items:center;gap:16px;width:100%;height:64px;max-width:none}
.logo img{display:block;height:40px;width:auto}
.logo{display:flex;align-items:center;gap:10px;font-family:var(--font-head);font-weight:700;font-size:1.15rem;text-decoration:none;color:var(--text)}
.logo-mark{width:34px;height:34px;border-radius:8px;background:var(--brand);display:grid;place-items:center;color:#fff;font-weight:700}
.logo span em{font-style:normal;color:var(--brand-dark)}
.nav{display:flex;gap:4px;margin-left:24px}
.nav a{padding:8px 12px;border-radius:6px;text-decoration:none;color:var(--muted);font-weight:600}
.nav a.active{color:var(--brand-dark);background:var(--brand-soft)}
.logout{margin-left:auto;display:flex;align-items:center;gap:12px;font-size:.95rem}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--verein);color:#fff;display:grid;place-items:center;font-weight:700}
.btn-ghost{border:1px solid var(--border);background:#fff;border-radius:6px;padding:6px 12px;color:var(--text);text-decoration:none;font-weight:600}

/* ===== Begrüßung + Kennzahlen ===== */
.hello{padding:28px 0 8px}
.hello h1{font-size:1.6rem;font-weight:600}
.hello p{margin:4px 0 0;color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 4px}
.chip{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:var(--surface);border:1px solid var(--border);font-weight:600;font-size:.92rem;text-decoration:none;color:var(--text)}
.chip b{min-width:22px;height:22px;border-radius:999px;display:grid;place-items:center;font-size:.8rem;color:#fff}
.chip.danger b{background:var(--danger)} .chip.warning b{background:var(--warning)}
.chip.info b{background:var(--info)} .chip.verw b{background:var(--k-verwaltung)} .chip.sport b{background:var(--k-sport)}

/* ===== Warn-Banner (Sperrung) ===== */
.alert{display:flex;gap:14px;align-items:flex-start;margin:18px 0;padding:14px 18px;border-radius:var(--radius);background:var(--danger-soft);border:1px solid #F3C5C5;border-left:6px solid var(--danger)}
.alert .ico{flex:none;width:28px;height:28px;border-radius:50%;background:var(--danger);color:#fff;display:grid;place-items:center;font-weight:700}
.alert h3{font-size:1rem;color:var(--danger)}
.alert p{margin:2px 0 0}
.alert.warning{background:var(--warning-soft);border-color:#F1D9A8;border-left-color:var(--warning)}
.alert.warning .ico{background:var(--warning)} .alert.warning h3{color:var(--warning)}

/* ===== Raster ===== */
.grid{display:grid;grid-template-columns:2fr 1fr;gap:20px;padding-bottom:40px}
@media(max-width:900px){.grid{grid-template-columns:1fr}.nav{display:none}}
.col{display:flex;flex-direction:column;gap:20px}

/* ===== Karten ===== */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.card-head{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border)}
.card-head h2{font-size:1.02rem;font-weight:700}
.card-head .count{font-size:.8rem;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--bg);color:var(--muted)}
.card-head .more{margin-left:auto;font-size:.9rem;font-weight:600;text-decoration:none}
.card-head .bar{width:4px;height:20px;border-radius:2px;background:var(--brand)}
.card.todo .bar{background:var(--warning)}
.card.agenda .bar{background:var(--verein)}
.card.news .bar{background:var(--info)}
.card.gratulation .bar{background:var(--k-feier)}
.card.misc .bar{background:var(--k-verwaltung)}

/* Liste */
.list{list-style:none;margin:0;padding:0}
.item{display:flex;gap:14px;align-items:center;padding:12px 18px;border-bottom:1px solid var(--border)}
.item:last-child{border-bottom:0}
.item .txt{flex:1;min-width:0}
.item .title{font-weight:600}
.item .meta{color:var(--muted);font-size:.9rem}
.item .act{flex:none}
.btn{display:inline-block;padding:7px 14px;border-radius:6px;background:var(--brand-dark);color:#fff;text-decoration:none;font-weight:600;font-size:.9rem;white-space:nowrap}
.btn.sec{background:#fff;color:var(--brand-dark);border:1px solid var(--brand-dark)}
.tag{display:inline-block;font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.04em}
.t-msg{background:var(--info-soft);color:var(--info)}
.t-deadline{background:var(--warning-soft);color:var(--warning)}
.t-verw{background:var(--k-verwaltung-soft);color:var(--k-verwaltung)}
.t-sport{background:var(--k-sport-soft);color:var(--k-sport)}
.t-sitzung{background:var(--k-sitzung-soft);color:var(--k-sitzung)}
.t-event{background:var(--k-event-soft);color:var(--k-event)}
.t-abgesagt{background:var(--danger-soft);color:var(--danger)}
.t-geaendert{background:var(--warning-soft);color:var(--warning)}
.dot{flex:none;width:10px;height:10px;border-radius:50%}
.d-danger{background:var(--danger)} .d-warning{background:var(--warning)} .d-info{background:var(--info)}

/* Agenda */
.date{flex:none;width:54px;text-align:center;border-radius:8px;padding:4px 0;border:1px solid var(--border);background:var(--bg)}
.date .wd{font-size:.72rem;font-weight:700;text-transform:uppercase;color:var(--muted)}
.date .d{font-family:var(--font-head);font-weight:700;font-size:1.25rem;line-height:1.1}
.date .m{font-size:.72rem;color:var(--muted)}
.item.sitzung{border-left:4px solid var(--k-sitzung)}
.item.event{border-left:4px solid var(--k-event)}
.item.sport{border-left:4px solid var(--k-sport)}
.item.cancel .title{text-decoration:line-through;color:var(--muted)}
.day-sep{padding:6px 18px;font-size:.8rem;font-weight:700;color:var(--muted);background:var(--bg);text-transform:uppercase;letter-spacing:.05em}
.filter{display:flex;gap:6px;padding:10px 18px;border-bottom:1px solid var(--border);flex-wrap:wrap}
.filter button{font:inherit;font-size:.85rem;font-weight:600;padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:#fff;cursor:pointer;color:var(--muted)}
.filter button.on{background:var(--text);color:#fff;border-color:var(--text)}

/* Gratulation */
.gr{display:flex;gap:12px;align-items:center;padding:12px 18px;border-bottom:1px solid var(--border)}
.gr:last-child{border-bottom:0}
.badge-num{flex:none;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-family:var(--font-head);font-weight:700;background:var(--k-feier-soft);color:var(--k-feier)}
.badge-num.jub{background:var(--brand-soft);color:var(--brand-dark)}
.badge-num.vj{background:var(--info-soft);color:var(--info)}

/* News */
.news-item{padding:14px 18px;border-bottom:1px solid var(--border)}
.news-item:last-child{border-bottom:0}
.news-item .meta{color:var(--muted);font-size:.85rem}
.news-item h3{font-family:var(--font-body);font-size:1rem;margin:2px 0}
.news-item p{margin:0;color:var(--muted);font-size:.95rem}

/* Leerer Zustand */
.empty{padding:16px 18px;color:var(--success);display:flex;gap:10px;align-items:center;font-weight:600}

/* Demo-Schalter */
.demo{background:#fff;border:1px dashed var(--border);border-radius:8px;padding:8px 12px;font-size:.85rem;color:var(--muted);display:inline-flex;gap:10px;align-items:center;margin-top:12px}
.demo label{display:flex;gap:6px;align-items:center;cursor:pointer}
body.mitglied .vorstand-only{display:none}

/* ===== Seitenmenü ===== */
:root{--side-bg:#2B2F33;--side-bg2:#353A3F;--side-text:#E9ECEF;--side-muted:#A7AEB5;
  --b-mein:#925748;--b-org:#78909C;--b-doc:#455A64;--b-member:#00796B;--b-sport:#2E7D32;--b-public:#1E62A8;}
.layout{display:grid;grid-template-columns:272px 1fr;min-height:calc(100vh - 69px)}
.side{background:var(--side-bg);color:var(--side-text);font-size:.93rem;position:sticky;top:0;height:100vh;overflow-y:auto}
.profile{display:flex;gap:12px;align-items:center;padding:16px;background:var(--side-bg2);border-bottom:1px solid #444a50}
.profile .avatar{width:44px;height:44px;font-size:1.1rem}
.profile .name{font-weight:700}
.profile select{margin-top:6px;width:100%;font:inherit;font-size:.85rem;padding:4px 6px;border-radius:5px;border:1px solid #555c63;background:#22262a;color:var(--side-text)}
.profile a{color:var(--side-muted);font-size:.85rem}
.side a.home{display:flex;align-items:center;gap:10px;margin:10px;padding:9px 12px;border-radius:6px;text-decoration:none;color:var(--side-text);font-weight:600;border-left:4px solid transparent}
.side a.home.active,.grp li a.active{background:rgba(232,115,28,.18);color:#fff;font-weight:600;box-shadow:inset 4px 0 0 var(--brand)}
.side a.home.active{border-left-color:transparent}
.grp{border-left:4px solid var(--c);margin:6px 0}
.grp summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:10px 14px;font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:#fff}
.grp summary::-webkit-details-marker{display:none}
.grp summary .sw{width:10px;height:10px;border-radius:3px;background:var(--c)}
.grp summary::after{content:"";margin-left:auto;width:7px;height:7px;border-right:2px solid var(--side-muted);border-bottom:2px solid var(--side-muted);transform:rotate(45deg);transition:transform .15s}
.grp[open] summary::after{transform:rotate(-135deg)}
.grp ul{list-style:none;margin:0;padding:0 0 6px}
.grp li a{display:flex;align-items:center;padding:7px 14px 7px 32px;color:var(--side-text);text-decoration:none}
.grp li a:hover{background:rgba(255,255,255,.06)}
.grp li a.sub::after{content:"›";margin-left:auto;color:var(--side-muted);font-size:1.1rem;line-height:1}
.grp li a .n{margin-left:auto;font-size:.72rem;font-weight:700;background:var(--info);color:#fff;border-radius:999px;padding:1px 7px}
.g-mein{--c:var(--b-mein)} .g-org{--c:var(--b-org)} .g-doc{--c:var(--b-doc)} .g-member{--c:var(--b-member)} .g-sport{--c:var(--b-sport)} .g-public{--c:var(--b-public)}
.content{min-width:0}
.menu-btn{display:none;font:inherit;font-weight:700;border:1px solid var(--border);background:#fff;border-radius:6px;padding:6px 12px;cursor:pointer}
.backdrop{display:none}
@media(max-width:1000px){
  .layout{grid-template-columns:1fr}
  .side{position:fixed;left:0;top:0;width:290px;z-index:50;transform:translateX(-100%);transition:transform .2s}
  body.menu-open .side{transform:none}
  body.menu-open .backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:40}
  .menu-btn{display:inline-block}
}
footer{border-top:1px solid var(--border);padding:16px 0 30px;color:var(--muted);font-size:.85rem}

/* =====================================================
   UNTERSEITEN – gemeinsame Bausteine
   ===================================================== */
:root{--m-view:#455A64;--m-view-soft:#ECEFF1;--m-edit:#9A5B00;--m-edit-soft:#FFF4DE;--m-new:#2E7D32;--m-new-soft:#EAF4EA;--area:var(--k-verwaltung)}
.page{padding-top:22px;padding-bottom:40px}
.crumbs{font-size:.88rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.crumbs a{color:var(--muted);text-decoration:none}.crumbs a:hover{color:var(--brand-dark);text-decoration:underline}
.crumbs span.sep{opacity:.6}
.page-head{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;margin:10px 0 18px;padding-left:14px;border-left:5px solid var(--area)}
.page-head .area{font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--area)}
.page-head h1{font-size:1.55rem;font-weight:600;margin-top:2px}
.page-head p{margin:4px 0 0;color:var(--muted);max-width:70ch}
.page-head .head-act{margin-left:auto;display:flex;gap:8px}
.mode{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:3px 10px;border-radius:999px;vertical-align:middle;margin-left:8px;font-family:var(--font-body)}
.mode.view{background:var(--m-view-soft);color:var(--m-view)}
.mode.edit{background:var(--m-edit-soft);color:var(--m-edit)}
.mode.new{background:var(--m-new-soft);color:var(--m-new)}

/* Reiter statt "Menü wechseln" */
.tabs{display:flex;gap:2px;border-bottom:2px solid var(--border);margin-bottom:18px;overflow-x:auto}
.tabs a{padding:10px 16px;text-decoration:none;color:var(--muted);font-weight:600;white-space:nowrap;border-bottom:3px solid transparent;margin-bottom:-2px}
.tabs a:hover{color:var(--text)}
.tabs a.on{color:var(--text);border-bottom-color:var(--brand)}

/* Buttons */
.btn.new{background:var(--m-new)}
.btn.danger{background:#fff;color:var(--danger);border:1px solid var(--danger)}
.btn.plain{background:transparent;color:var(--text);border:1px solid var(--border)}
.btn.lg{padding:10px 18px;font-size:.98rem}
.btn:focus-visible,.inp:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid rgba(232,115,28,.45);outline-offset:2px}

/* ===== Typ 1: Auflistung ===== */
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:14px 18px;border-bottom:1px solid var(--border)}
.search{flex:1;min-width:220px;position:relative}
.search input{width:100%;padding:9px 12px 9px 34px}
.search::before{content:"";position:absolute;left:12px;top:50%;width:11px;height:11px;border:2px solid var(--muted);border-radius:50%;transform:translateY(-60%)}
.toolbar select{width:auto}
.tbl{width:100%;border-collapse:collapse;font-size:.95rem}
.tbl th{text-align:left;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:10px 18px;background:var(--bg);border-bottom:1px solid var(--border);white-space:nowrap}
.tbl th.sort::after{content:" ↕";opacity:.5}.tbl th.sorted::after{content:" ↓";opacity:1;color:var(--brand-dark)}
.tbl td{padding:12px 18px;border-bottom:1px solid var(--border);vertical-align:middle}
.tbl tr:hover td{background:#FBFAF8}
.tbl td.t a{font-weight:600;color:var(--text);text-decoration:none}.tbl td.t a:hover{color:var(--brand-dark);text-decoration:underline}
.tbl td.t small{display:block;color:var(--muted);font-size:.85rem}
.tbl .r{text-align:right;white-space:nowrap}
.iconbtn{display:inline-grid;place-items:center;min-width:34px;height:32px;padding:0 10px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--text);text-decoration:none;font-size:.85rem;font-weight:600}
.iconbtn:hover{border-color:var(--brand-dark);color:var(--brand-dark)}
.st{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;font-weight:600}
.st::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.st.ok{color:var(--success)}.st.draft{color:var(--muted)}.st.check{color:var(--warning)}.st.arch{color:#8A9096}
.vis{font-size:.85rem;color:var(--muted)}
.tbl-foot{display:flex;align-items:center;gap:12px;padding:12px 18px;color:var(--muted);font-size:.9rem;flex-wrap:wrap}
.pager{margin-left:auto;display:flex;gap:4px}
.pager a{min-width:32px;height:32px;display:grid;place-items:center;border-radius:6px;border:1px solid var(--border);text-decoration:none;color:var(--text);background:#fff}
.pager a.on{background:var(--text);color:#fff;border-color:var(--text)}
@media(max-width:760px){
  .tbl thead{display:none}
  .tbl tr{display:block;padding:12px 18px;border-bottom:1px solid var(--border)}
  .tbl td{display:flex;justify-content:space-between;gap:12px;padding:3px 0;border:0}
  .tbl td::before{content:attr(data-l);color:var(--muted);font-size:.85rem}
  .tbl td.t::before,.tbl td.r::before{content:none}
  .tbl td.r{justify-content:flex-end;padding-top:8px}
}

/* ===== Typ 2+3: Formulare ===== */
.form-card{border-top:4px solid var(--m-view)}
.form-card.edit{border-top-color:var(--m-edit)}
.form-card.new{border-top-color:var(--m-new)}
.modebar{display:flex;gap:12px;align-items:center;padding:12px 18px;font-size:.95rem;border-bottom:1px solid var(--border)}
.modebar.edit{background:var(--m-edit-soft)}.modebar.new{background:var(--m-new-soft)}
.modebar .ico{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:.85rem}
.modebar.edit .ico{background:var(--m-edit)}.modebar.new .ico{background:var(--m-new)}
.recmeta{display:flex;flex-wrap:wrap;gap:6px 22px;padding:14px 18px;border-bottom:1px solid var(--border);font-size:.9rem;color:var(--muted)}
.recmeta b{color:var(--text);font-weight:600}
fieldset{border:0;margin:0;padding:18px 18px 6px;border-bottom:1px solid var(--border)}
legend{font-family:var(--font-head);font-weight:700;font-size:.95rem;padding:0;margin-bottom:12px;float:left;width:100%}
legend+*{clear:both}
.field{display:grid;grid-template-columns:220px 1fr;gap:6px 20px;align-items:start;padding:10px 12px;margin:0 -12px;border-radius:8px;border-left:4px solid transparent}
.field>label,.field>.lbl{font-weight:600;padding-top:8px}
.field .req{color:var(--danger);margin-left:2px}
.field .hint{font-size:.85rem;color:var(--muted);margin-top:4px}
.field .ctl{max-width:560px}
@media(max-width:760px){.field{grid-template-columns:1fr}.field>label,.field>.lbl{padding-top:0}}
.inp,select,textarea{width:100%;font:inherit;font-size:.98rem;color:var(--text);background:#fff;border:1px solid #CFCAC3;border-radius:6px;padding:8px 11px}
.inp:hover,select:hover,textarea:hover{border-color:#A9A39B}
.inp:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand-dark);box-shadow:0 0 0 3px rgba(232,115,28,.2)}
.inp.short{max-width:200px}
textarea{min-height:96px;resize:vertical}
.inp[readonly]{background:var(--bg);color:var(--muted)}
::placeholder{color:#9AA0A6}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg label{padding:7px 13px;cursor:pointer;font-weight:600;font-size:.92rem;border:1px solid #CFCAC3;border-radius:6px;background:#fff;display:flex;gap:6px;align-items:center}
.seg label:has(input:checked){border-color:var(--brand-dark)}
.seg input{accent-color:var(--brand-dark)}
.seg label:has(input:checked){background:var(--brand-soft);color:var(--brand-dark)}
/* Änderung sichtbar machen */
.field.changed{background:var(--m-edit-soft);border-left-color:var(--m-edit)}
.was{display:none;font-size:.85rem;color:var(--m-edit);margin-top:4px}
.field.changed .was{display:block}
.was s{color:var(--muted)}
/* Fehler */
.field.err{background:var(--danger-soft);border-left-color:var(--danger)}
.field.err .inp,.field.err select{border-color:var(--danger)}
.errmsg{display:none;color:var(--danger);font-size:.85rem;font-weight:600;margin-top:4px}
.field.err .errmsg{display:block}
/* Datei */
.filebox{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg)}
.filebox .fi{width:36px;height:42px;border-radius:4px;background:var(--danger);color:#fff;font-size:.7rem;font-weight:700;display:grid;place-items:center}
.drop{border:2px dashed #CFCAC3;border-radius:10px;padding:22px;text-align:center;color:var(--muted);background:#FCFBFA}
.drop strong{color:var(--brand-dark)}
/* Aktionsleiste */
.actions{position:sticky;bottom:0;z-index:5;display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:14px 18px;background:rgba(255,255,255,.96);border-top:1px solid var(--border);backdrop-filter:blur(4px)}
.actions .status{color:var(--muted);font-size:.92rem;margin-right:auto}
.actions .status.dirty{color:var(--m-edit);font-weight:700}
.danger-zone{margin-top:20px;border:1px solid #F3C5C5;border-radius:var(--radius);background:#fff;padding:16px 18px;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.danger-zone h3{font-size:.95rem;color:var(--danger)}
.danger-zone p{margin:2px 0 0;color:var(--muted);font-size:.9rem}
.danger-zone .btns{margin-left:auto;display:flex;gap:8px}
.legend-box{display:flex;gap:18px;flex-wrap:wrap;font-size:.85rem;color:var(--muted);margin-top:14px}
.legend-box span{display:inline-flex;gap:6px;align-items:center}
.legend-box i{width:12px;height:12px;border-radius:3px;display:inline-block}


@media (max-width: 1000px) {
  .topbar .wrap {
    width: 100%;
    box-sizing: border-box;
    min-height: 64px;
    height: auto;
    padding: 8px 12px;
    gap: 10px;
  }

  .menu-btn {
    flex: 0 0 auto;
    min-width: 72px;
    padding: 8px 10px;
  }

  .logo {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
  }

  .logo img {
    height: 34px;
    max-width: 100%;
    width: auto;
  }

  .logout {
    flex: 0 0 auto;
    margin-left: 0;
    font-size: 0.9rem;
  }

  .btn-ghost {
    display: inline-flex;
    min-height: 38px;
    padding: 6px 9px;
    white-space: nowrap;
  }
}