/* Xscape Dispo Easy v3 */
:root{
  --bg:#0a0f1f;
  --card:#121b33;
  --muted:#8fb3ff;
  --text:#e8f0ff;
  --accent:#5fa3ff;
  --danger:#ff6b6b;
}

*{box-sizing:border-box}
body{
  margin:0;
  font:14px/1.35 system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;
  background:linear-gradient(180deg,#0b1126, #0b1430 55%, #0b1126);
  color:var(--text);
}

.topbar{
  position:sticky; top:0; z-index:10;
  display:flex; gap:12px; align-items:center; justify-content:space-between;
  padding:20px 24px;
  background:rgba(9,12,24,.92);
  backdrop-filter: blur(12px);
  border-bottom:1px solid rgba(95,163,255,.28);
  overflow:hidden;
}

.brand{display:flex; align-items:center; gap:14px}
.logo{
  width:58px; height:58px; border-radius:18px;
  display:grid; place-items:center;
  font-weight:800; font-size:22px;
  background: radial-gradient(circle at 30% 30%, rgba(95,163,255,.95), rgba(95,163,255,.10));
  border:1px solid rgba(95,163,255,.60);
  box-shadow: 0 8px 18px rgba(20,40,90,.40);
}
.titles .name{font-weight:800; font-size:22px; letter-spacing:.3px}
.titles .sub{color:var(--muted); font-size:13.5px}

.actions{display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end}
.actions .btn{
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.04);
  color:var(--text);
  padding:8px 10px;
  border-radius:12px;
  cursor:pointer;
  font-size:13px;
  font-weight:600;
  letter-spacing:.2px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.10), inset 0 1px 0 rgba(255,255,255,.14);
}
.actions .btn,
.actions .btn.primary,
.actions .btn.danger{
  border-color:rgba(120,160,220,.40);
  background:rgba(120,160,220,.12);
}
.actions .btn:hover,
.actions .btn.primary:hover,
.actions .btn.danger:hover{
  background:rgba(120,160,220,.20);
}
.actions .group-project{border-color:rgba(120,190,255,.75); background:rgba(120,190,255,.24)}
.actions .group-data{border-color:rgba(95,163,255,.70); background:rgba(95,163,255,.20)}
.actions .group-nav{border-color:rgba(150,180,240,.70); background:rgba(150,180,240,.20)}
.actions .group-print{border-color:rgba(170,210,255,.80); background:rgba(170,210,255,.26)}
.actions .group-danger{border-color:rgba(255,140,140,.75); background:rgba(255,140,140,.22)}
.actions .group-project:hover{background:rgba(120,190,255,.26)}
.actions .group-data:hover{background:rgba(95,163,255,.24)}
.actions .group-nav:hover{background:rgba(150,180,240,.22)}
.actions .group-print:hover{background:rgba(170,210,255,.30)}
.actions .group-danger:hover{background:rgba(255,140,140,.26)}
.actions .group-project,
.actions .group-data,
.actions .group-nav,
.actions .group-print,
.actions .group-danger{
  position:relative;
  padding-left:18px;
}
.actions .group-project::before,
.actions .group-data::before,
.actions .group-nav::before,
.actions .group-print::before,
.actions .group-danger::before{
  content:"";
  position:absolute;
  left:8px;
  top:50%;
  width:6px;
  height:6px;
  border-radius:999px;
  transform:translateY(-50%);
  box-shadow:0 0 6px rgba(255,255,255,.35);
}
.actions .group-print::before{background:rgba(190,225,255,.95)}
.actions .group-nav::before{background:rgba(170,195,245,.95)}
.actions .group-project::before{background:rgba(130,200,255,.95)}
.actions .group-data::before{background:rgba(110,175,255,.95)}
.actions .group-danger::before{background:rgba(255,160,160,.95)}


.btn{
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.04);
  color:var(--text);
  padding:8px 10px;
  border-radius:12px;
  cursor:pointer;
  font-size:13px;
  font-weight:600;
  letter-spacing:.2px;
}
.btn:hover{background:rgba(255,255,255,.06)}
.btn.primary{border-color:rgba(95,163,255,.65); background:rgba(95,163,255,.18)}
.btn.primary:hover{background:rgba(95,163,255,.26)}
.btn.danger{border-color:rgba(255,107,107,.45); background:rgba(255,107,107,.10)}
.btn.danger:hover{background:rgba(255,107,107,.15)}
.btn.file{position:relative; overflow:hidden}
.btn.file input{position:absolute; inset:0; opacity:0; cursor:pointer}

.layout{display:grid; grid-template-columns: 170px minmax(0, 1fr); gap:12px; align-items:start}
.content{display:grid; gap:14px; max-width:1100px; width:100%}
.side-nav{position:sticky; top:132px; align-self:start; display:flex; flex-direction:column; gap:10px}
.side-nav .nav-btn{justify-content:flex-start; text-align:left; width:100%; border-radius:999px; padding:6px 10px; font-size:12.5px; transition: background .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease}
.nav-group{display:flex; flex-direction:column; gap:6px; padding:8px; border-radius:14px; border:1px solid rgba(255,255,255,.06); background:rgba(255,255,255,.02); box-shadow: inset 0 0 0 1px rgba(255,255,255,.06)}
.nav-label{font-size:11px; letter-spacing:.3px; text-transform:uppercase; color:var(--muted); padding-left:4px}
@media (max-width: 900px){
  .layout{grid-template-columns:1fr}
  .side-nav{position:static; flex-direction:row; flex-wrap:wrap; top:auto}
  .side-nav .nav-btn{flex:1 1 auto}
  .nav-group{flex:1 1 220px}
  .nav-label{display:none}
}

.grid{
  padding:14px 24px;
  display:grid;
  gap:14px;
  max-width:none;
  margin:0;
}
.card{
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,0) 40%), rgba(18,24,41,.88);
  border:1px solid rgba(95,163,255,.12);
  border-radius:18px;
  padding:14px 14px 12px;
  box-shadow: 0 10px 30px rgba(0,0,0,.25), inset 0 0 0 1px rgba(255,255,255,.10), inset 0 1px 0 rgba(255,255,255,.12);
}
h2{margin:0 0 10px; font-size:16px}
h3{margin:10px 0 8px; font-size:14px; color:#f0f6ff}

.form label{display:flex; flex-direction:column; gap:6px; font-size:12px; color:#f2f7ff; font-weight:600}
input,select,textarea{
  width:100%;
  padding:9px 10px;
  border-radius:12px;
  border:1px solid rgba(208,228,255,.52);
  background:rgba(255,255,255,.14);
  color:#ffffff;
  outline:none;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.18), inset 0 1px 0 rgba(255,255,255,.20);
}
textarea{resize:vertical}
input:focus,select:focus,textarea:focus{border-color:rgba(206,227,255,.80)}

input::placeholder,
textarea::placeholder{
  color:#e7f0ff;
  opacity:1;
}
.grid2{display:grid; grid-template-columns: 1fr 1fr; gap:10px}
.row{display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:10px}
.small{font-size:12px; color:#f3f8ff}
.muted{color:#e9f2ff}
.hint{margin:8px 0 0; color:#e9f2ff; font-size:12px}

.list{display:grid; gap:8px}
.item{
  padding:10px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(0,0,0,.16);
  border-radius:14px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08), inset 0 1px 0 rgba(255,255,255,.10);
}
.item .top{display:flex; justify-content:space-between; gap:10px; align-items:center}
.badge{
  cursor:pointer;
  padding:3px 8px; border-radius:999px;
  border:1px solid rgba(122,162,255,.35);
  background:rgba(122,162,255,.10);
  font-size:12px;
}
.split{display:grid; grid-template-columns: 1.05fr .95fr; gap:14px}
@media (max-width: 900px){ .grid2{grid-template-columns:1fr} .split{grid-template-columns:1fr} }

.footer{padding:14px 16px; text-align:center}
.slot-table-wrap{overflow-x:auto}
.slot-table{
  width:100%;
  border-collapse:collapse;
  font-size:12px;
  line-height:1.2;
}
.slot-table th,.slot-table td{
  border-bottom:1px solid rgba(255,255,255,.08);
  padding:6px 6px;
  text-align:left;
  vertical-align:middle;
}
.slot-table th{
  color:#eef6ff;
  font-weight:700;
  font-size:11px;
}
.slot-table td:first-child{min-width:120px}
.slot-table input,.slot-table select{
  padding:6px 8px;
  border-radius:10px;
}
.slot-table input[type="time"]{min-width:92px}
.slot-table .take-input{max-width:90px}
.slot-table .retake-input{min-width:160px; max-width:260px}
.slot-actions{display:flex; gap:6px; justify-content:flex-end; white-space:nowrap}
.slot-actions .btn{padding:6px 8px; font-size:12px}

.plan-grid{display:grid; grid-template-columns: 1.25fr .75fr; gap:14px}
@media (max-width: 900px){ .plan-grid{grid-template-columns:1fr} }
.slot-form{grid-template-columns: 1.1fr 1.3fr}
#f-roleselect{min-width:220px}
#f-tph-override{min-width:160px}
.speaker-stats{min-height:120px}
.speaker-stats .statrow{display:flex; justify-content:space-between; gap:12px; padding:4px 0; border-bottom:1px dashed rgba(255,255,255,.08)}
.speaker-stats .statrow:last-child{border-bottom:none}

.badge.ok{border-color:rgba(110,220,160,.70); background:rgba(110,220,160,.22); color:#d9f7e8}
.badge.done{border-color:rgba(120,190,255,.80); background:rgba(120,190,255,.24); color:#e4f1ff}
.badge.open{border-color:rgba(255,214,102,.85); background:rgba(255,214,102,.22); color:#fff2c6}
.badge.planned{border-color:rgba(255,214,102,.85); background:rgba(255,214,102,.32); color:#fff2c6}
.badge.no{border-color:rgba(255,120,120,.82); background:rgba(255,120,120,.24); color:#ffe8e8}

.slot-table td:nth-child(1){min-width:150px}
.slot-table td:nth-child(2) select{min-width:200px}
.slot-table .take-input{max-width:120px; min-width:80px}
.slot-table .retake-input{min-width:160px}

.card.card-title{
  border-color: rgba(95,163,255,.40);
  background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,0) 38%), linear-gradient(180deg, rgba(22,30,52,.96), rgba(18,24,41,.86));
}
.card.card-roles{
  border-color: rgba(95,163,255,.32);
  background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,0) 38%), linear-gradient(180deg, rgba(20,28,48,.95), rgba(18,24,41,.86));
}
.card.card-days{
  border-color: rgba(95,163,255,.36);
  background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,0) 38%), linear-gradient(180deg, rgba(24,30,54,.95), rgba(18,24,41,.86));
}
.overview-panel{
  border:1px solid rgba(95,163,255,.22);
  background: rgba(10,16,32,.42);
  border-radius:14px;
  padding:10px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.10), inset 0 1px 0 rgba(255,255,255,.12);
}


.section-sep{
  height:1px;
  background: linear-gradient(90deg, rgba(95,163,255,0), rgba(95,163,255,.45), rgba(95,163,255,0));
  margin:12px 0;
}

/* PRINT */@media print{
  *{-webkit-print-color-adjust: exact; print-color-adjust: exact; color:#000 !important;}
  @page{size:A4; margin:12mm 10mm;}
  body.print-contract{counter-reset: page;}
  body{background:white; color:black; margin:0; font-family:Arial, Helvetica, sans-serif; font-size:10pt}
  .side-nav{display:none !important}
  .layout{display:block !important}
  .topbar,.footer,.card:not(#print-area){display:none !important}
  .grid{display:block !important; padding:0 !important; margin:0 !important; max-width:none !important}
  #print-area{display:block !important; background:white; border:none; box-shadow:none; padding:0 !important; margin:0 !important}
  body:not(.print-contract) #print-area{position:relative}
  body:not(.print-contract) #print-area .print-doc-header,
  body:not(.print-contract) #print-area .print-doc-footer{display:none !important}
  body:not(.print-contract) #print-area .print-doc-body{position:relative; padding-top:0; padding-bottom:0}
  .content{display:block !important}
  .sheet{break-after: page; page-break-after: always}
  .sheet:last-of-type{break-after: auto; page-break-after: auto}
}
.printonly{display:none}

.print-doc-header,
.print-doc-footer{display:none}
.print-doc-header{font:8.5pt/1.2 Arial, Helvetica, sans-serif; color:#111}
.print-doc-footer{font:8pt/1.2 Arial, Helvetica, sans-serif; color:#111}
.print-head-logo{max-height:10mm; max-width:46mm; object-fit:contain}
.print-head-prod{font-weight:700}
.sheet-title-row{display:flex; align-items:flex-start; justify-content:space-between; gap:6mm}
.sheet-logo{max-height:12mm; max-width:55mm; object-fit:contain}

.sheet{
  margin:0;
  padding:12mm;
  font:10pt/1.35 Arial, Helvetica, sans-serif;
  color:#111;
}
.sheet .sheet-title{
  font-size:12pt; font-weight:800; margin:0 0 6mm;
}
.sheet .meta{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:4mm 10mm;
  margin-bottom:8mm;
}
.sheet .meta .k{color:#000; font-size:8.5pt}
.sheet .meta .v{font-size:10pt}
.hr{height:1px; background:#ddd; margin:6mm 0}
.statgrid{display:grid; grid-template-columns: 1fr 1fr 1fr; gap:5mm}
.stat{border:1px solid #e6e6e6; border-radius:10px; padding:4mm;}
.stat .k{font-size:8.5pt; color:#000}
.stat .v{font-size:10pt; font-weight:700}
.roleslist{margin-top:4mm; font-size:10pt}
.rolehead{display:flex; justify-content:space-between; gap:10mm; align-items:flex-end;}
.rolehead .rname{font-size:11pt; font-weight:800}
.rolehead .rtimes{font-size:10pt; color:#000}
.takelist{margin-top:4mm; border-top:1px solid #ddd}
.take{padding:3mm 0; border-bottom:1px solid #eee;}
.take .no{font-weight:700}
.take .txt{margin-top:1mm; color:#111}

.print-table{
  width:100%;
  border-collapse:collapse;
  font-size:10pt;
  line-height:1.25;
}
.print-table th,.print-table td{
  border-bottom:1px solid #000;
  padding:1.6mm 1.2mm;
  text-align:left;
  vertical-align:top;
}
.print-table th{
  font-size:9pt;
  color:#000;
  background:transparent;
}
.slot-block{
  margin-top:6mm;
}
.slot-title{
  font-size:10pt;
  font-weight:700;
  margin:0 0 2mm;
}
.slot-meta{
  font-size:10pt;
  color:#333;
  margin:0 0 3mm;
}
.checkhead{width:9mm}
.checkcell{width:9mm}
.check-box{
  display:inline-block;
  width:5mm;
  height:5mm;
  border:1px solid #000;
}
.hour-sep td{
  border-top:2px solid #000;
  border-bottom:none;
  padding:0;
  height:0;
}
.retake-sep td{
  border-top:1px dashed #666;
  font-weight:700;
  color:#333;
  background:#fafafa;
}
.retake-row td{
  background:#fdfdfd;
}
.nowrap{white-space:nowrap}

.print-table{page-break-inside:auto; break-inside:auto;}
.print-table tr{page-break-inside:avoid; break-inside:avoid-page;}
.print-doc-body{padding-bottom:0;}
.slot-title,.slot-meta{page-break-after:avoid; break-after:avoid-page;}
.take-sheet .sheet-title{margin-top:8mm;}


@-moz-document url-prefix(){
  @media print{
    @page{
      size: A4;
      margin: 22mm 10mm 30mm;
    }
  }
}


.topbar::after{
  content:"";
  position:absolute;
  left:12px; right:12px; bottom:0;
  height:1px;
  background:linear-gradient(90deg, rgba(95,163,255,0), rgba(95,163,255,.55), rgba(95,163,255,0));
}

.topbar::before{
  content:"";
  position:absolute;
  left:0; right:0; top:0;
  height:65%;
  background:linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,0));
  opacity:.75;
  pointer-events:none;
}
.side-nav .nav-btn.active{border-color:rgba(170,210,255,.90); background:rgba(170,210,255,.32); box-shadow: inset 0 0 0 1px rgba(255,255,255,.18); transform:translateX(2px)}

.sort-toggle .btn{
  padding:5px 10px;
  border-radius:999px;
  font-size:12px;
}
.sort-toggle .btn.primary{
  background:rgba(170,210,255,.30);
  border-color:rgba(170,210,255,.85);
}

#sec-title, #sec-roles, #sec-days, #sec-days-overview{scroll-margin-top:110px}

@media print{
  body.print-contract .topbar,
  body.print-contract .footer,
  body.print-contract .card:not(#contract-print){display:none !important}
  body.print-contract #contract-print{display:block !important; background:white; border:none; box-shadow:none; padding:0 !important; margin:0 !important; position:relative}
  body.print-contract #print-area{display:none !important}
  body.print-contract #contract-print .print-doc-header,
  body.print-contract #contract-print .print-doc-footer{display:none !important}
  body.print-contract #contract-print .print-doc-body{position:relative; padding-top:0; padding-bottom:0}
  body.print-contract #contract-print .print-doc-body .sheet{padding-top:0; padding-bottom:0}
  body.print-contract .contract-text p{margin:0 0 3mm; text-align:justify}
  body.print-contract .contract-text{padding-bottom:0}
  body.print-contract .contract-text .contract-sec{font-weight:700; margin-top:2mm}
  body.print-contract .contract-text ul{margin:0 0 3mm 5mm; padding-left:5mm}
  body.print-contract .contract-signatures{page-break-inside:avoid; break-inside:avoid-page;}

}

.project-switch{display:flex; gap:6px; align-items:center}
.project-select{height:34px; padding:0 8px; border-radius:8px; border:1px solid rgba(255,255,255,.2); background:rgba(255,255,255,.08); color:var(--text)}
.project-select:focus{outline:none; border-color:rgba(122,162,255,.7); box-shadow:0 0 0 2px rgba(122,162,255,.15)}

.hidden{display:none !important}

/*test*/

/* UI refresh 2026-02 */
:root{
  --bg:#0b111f;
  --bg-deep:#0a0f1d;
  --card:#111a2b;
  --card-2:#0f1828;
  --text:#e8f0ff;
  --muted:#9fb4d9;
  --accent:#5fa3ff;
  --accent-2:#9ac3ff;
  --line:rgba(130,170,240,.18);
  --shadow:0 18px 45px rgba(0,0,0,.35);
}

body{
  font:15px/1.45 "IBM Plex Sans","Fira Sans","Segoe UI",sans-serif;
  color:var(--text);
  background:
    radial-gradient(1200px 520px at 10% -10%, rgba(70,120,255,.28), rgba(70,120,255,0)),
    radial-gradient(900px 380px at 90% 0%, rgba(30,70,140,.35), rgba(30,70,140,0)),
    linear-gradient(180deg, #0b111f 0%, #0a1224 55%, #0a0f1d 100%);
}

body::before,
body::after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
}
body::before{
  background-image:radial-gradient(rgba(130,170,240,.08) 1px, transparent 1px);
  background-size:22px 22px;
  opacity:.35;
}
body::after{
  background:linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,0) 35%);
  opacity:.5;
}

.topbar{
  background:linear-gradient(180deg, #0f172b, #0c1426 65%);
  border-bottom:1px solid var(--line);
  box-shadow:0 10px 26px rgba(0,0,0,.35);
}

.topbar::before,
.topbar::after{
  opacity:.4;
}

.logo{
  width:60px;
  height:60px;
  border-radius:18px;
  font-weight:800;
  font-size:24px;
  color:#fff;
  background:linear-gradient(135deg, #3b7bff, #7fb0ff);
  border:1px solid rgba(95,163,255,.55);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35), 0 10px 22px rgba(0,0,0,.45);
}

.titles .name{font-size:24px; letter-spacing:.2px}
.titles .sub{color:var(--muted)}

.actions{gap:8px; row-gap:8px}
.actions .btn,
.btn{
  background:linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.03));
  border:1px solid rgba(120,160,220,.35);
  color:var(--text);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08), 0 6px 16px rgba(0,0,0,.25);
  text-decoration:none;
}
.actions .btn:hover,
.btn:hover{background:linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.05))}

.btn.primary{
  background:linear-gradient(180deg,#5f9bff,#3b7bff);
  border-color:rgba(95,163,255,.7);
  color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25), 0 8px 18px rgba(30,70,140,.45);
}
.btn.primary:hover{background:linear-gradient(180deg,#6aa7ff,#3b7bff)}

.btn.danger{
  background:linear-gradient(180deg,#ff6b6b,#e24f4f);
  border-color:rgba(255,107,107,.55);
  color:#fff;
}
.btn.state-yes{
  background:linear-gradient(180deg,#53c98a,#2f9e66);
  border-color:rgba(83,201,138,.75);
  color:#fff;
}
.btn.state-yes:hover{background:linear-gradient(180deg,#61d998,#2f9e66)}
.btn.state-no{
  background:linear-gradient(180deg,#ff7a7a,#de4f4f);
  border-color:rgba(255,122,122,.75);
  color:#fff;
}
.btn.state-no:hover{background:linear-gradient(180deg,#ff8a8a,#de4f4f)}

.actions .group-project,
.actions .group-data,
.actions .group-nav,
.actions .group-print,
.actions .group-danger{
  padding-left:10px;
  border-color:rgba(120,160,220,.35);
  background:linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.03));
}
.actions .group-project::before,
.actions .group-data::before,
.actions .group-nav::before,
.actions .group-print::before,
.actions .group-danger::before{display:none}

.layout{grid-template-columns: 200px minmax(0, 1fr)}
.content{max-width:1200px}

.side-nav{
  top:118px;
  gap:12px;
}
.nav-group{
  border:1px solid rgba(130,170,240,.18);
  background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.nav-label{color:var(--muted)}
.side-nav .nav-btn{
  border-radius:12px;
  padding:8px 10px;
  font-size:12.5px;
}
.side-nav .nav-btn.active{
  border-color:rgba(95,163,255,.7);
  background:rgba(95,163,255,.18);
  transform:none;
}

.grid{max-width:1400px; margin:0 auto}

.card{
  background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,0) 35%), rgba(16,24,40,.92);
  border:1px solid rgba(95,163,255,.2);
  box-shadow:var(--shadow), inset 0 1px 0 rgba(255,255,255,.08);
}

h2{font-size:17px}
h3{color:#cfe0ff}

input,select,textarea{
  background:rgba(0,0,0,.22);
  color:var(--text);
  border:1px solid rgba(120,160,220,.35);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}
input:focus,select:focus,textarea:focus{
  border-color:rgba(95,163,255,.65);
  box-shadow:0 0 0 3px rgba(95,163,255,.18);
}

.item{
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
  border:1px solid rgba(120,160,220,.25);
}

.badge{
  border-color:rgba(95,163,255,.45);
  background:rgba(95,163,255,.14);
}

.overview-panel{
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
  border:1px solid rgba(95,163,255,.22);
}

.section-sep{
  background:linear-gradient(90deg, rgba(95,163,255,0), rgba(95,163,255,.45), rgba(95,163,255,0));
}

.slot-table th{color:var(--muted)}
.slot-table th,.slot-table td{border-bottom:1px solid rgba(120,160,220,.22)}

.project-select{
  background:rgba(0,0,0,.25);
  color:var(--text);
  border:1px solid rgba(120,160,220,.35);
  border-radius:10px;
}

@keyframes rise{
  from{opacity:0; transform:translateY(6px)}
  to{opacity:1; transform:translateY(0)}
}
.card,
.nav-group{
  animation:rise .35s ease both;
}

.sheet{
  font-family:"IBM Plex Sans","Fira Sans","Segoe UI",sans-serif;
}


/* Project display + print button polish */
.project-switch{
  display:flex;
  align-items:center;
  gap:8px;
  padding:6px 10px;
  border-radius:14px;
  border:1px solid rgba(120,160,220,.35);
  background:linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.03));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.project-label{
  font-size:11px;
  letter-spacing:.4px;
  text-transform:uppercase;
  color:var(--muted);
}
.project-select{
  min-width:180px;
  height:38px;
  font-weight:600;
}
.actions #btn-print{
  font-size:14.5px;
  letter-spacing:.2px;
}

/* Print button vertical align */
.actions #btn-print{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  padding-top:9px;
  padding-bottom:9px;
}

/* Print button size adjust */
.actions #btn-print{
  font-size:13.5px;
  padding-top:8px;
  padding-bottom:8px;
}


/* Print button final alignment */
.actions #btn-print{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:40px;
  padding:0 14px;
  line-height:1;
  font-size:13.5px;
}

/* Print button baseline tweak */
.actions #btn-print{transform: translateY(-1px);}


/* PDF export uses real header/footer from Puppeteer templates */


/* UI alignment 2026-02-14 */
.layout{
  grid-template-columns:190px minmax(0,1fr);
  gap:10px;
}
.content{
  max-width:1020px;
}
.grid{
  max-width:1240px;
}

.actions .btn,
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:0 12px;
  font-size:13px;
  line-height:1.1;
}

.actions #btn-print{
  height:38px;
  transform:none;
  padding:0 12px;
  font-size:13px;
}

.side-nav .nav-btn{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  min-height:38px;
  padding:0 12px;
  font-size:13px;
  line-height:1.1;
}

@media (max-width:900px){
  .content{max-width:none;}
  .grid{max-width:none;}
}


/* Dispo final alignment (menu width + left buttons parity) */
body.page-dispo .grid{
  width:min(100%, 1100px);
  max-width:1100px;
  margin:0 auto;
  padding-left:12px;
  padding-right:12px;
}
body.page-dispo .layout{
  grid-template-columns:190px minmax(0,1fr);
  gap:12px;
  align-items:start;
}
body.page-dispo .content{
  width:100%;
  max-width:100%;
  min-width:0;
}
body.page-dispo .card,
body.page-dispo .overview-panel{
  width:100%;
  min-width:0;
}
body.page-dispo .btn,
body.page-dispo .actions .btn{
  min-height:34px;
  padding:0 10px;
  font-size:12px;
  line-height:1.1;
  border-radius:10px;
}
body.page-dispo .actions #btn-print{
  height:34px;
  min-height:34px;
  padding:0 10px;
  font-size:12px;
}
body.page-dispo .project-select{
  min-height:34px;
  height:34px;
  font-size:12px;
}
body.page-dispo .side-nav .nav-btn{
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  min-height:34px;
  padding:0 10px;
  font-size:12px;
  line-height:1.1;
  border-radius:10px;
}

@media (max-width:900px){
  body.page-dispo .grid{
    width:100%;
    max-width:100%;
    padding-left:10px;
    padding-right:10px;
  }
  body.page-dispo .layout{
    grid-template-columns:1fr;
  }
  body.page-dispo .side-nav .nav-btn{
    justify-content:center;
  }
}

/* Global: number inputs without spinner arrows */
input[type="number"]{
  appearance:textfield;
  -moz-appearance:textfield;
}
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}

/* Xscape brand master theme 2026-02-16 */
:root{
  --menu-font-size:13px;
  --menu-line-height:1.1;
  --menu-height:38px;
  --menu-radius:12px;
  --xscape-blue:#4f8ed8;
  --xscape-silver:#c8d6eb;
}

body{
  font:15px/1.45 "IBM Plex Sans","Fira Sans","Segoe UI",sans-serif;
  background:
    radial-gradient(1200px 520px at 18% -8%, rgba(214,236,255,.28), rgba(214,236,255,0) 60%),
    radial-gradient(900px 520px at 82% 6%, rgba(148,205,255,.25), rgba(148,205,255,0) 64%),
    radial-gradient(1100px 700px at -5% 100%, rgba(34,75,162,.72), rgba(34,75,162,0) 66%),
    linear-gradient(160deg, #1f4e9f 0%, #2f76be 38%, #4a95cf 58%, #2d66af 79%, #173f88 100%);
  background-attachment: fixed;
}

body::before{
  background:
    radial-gradient(72% 50% at 28% 10%, rgba(255,255,255,.20), rgba(255,255,255,0) 70%),
    radial-gradient(55% 42% at 74% 18%, rgba(255,255,255,.16), rgba(255,255,255,0) 75%),
    radial-gradient(60% 48% at 85% 88%, rgba(22,55,130,.42), rgba(22,55,130,0) 78%);
  opacity:.78;
}

body::after{
  background: linear-gradient(180deg, rgba(5,12,28,.42), rgba(8,20,46,.20) 28%, rgba(8,18,40,.44));
  opacity:1;
}

.topbar{
  background:linear-gradient(180deg, rgba(14,29,63,.88), rgba(12,24,52,.84));
  border-bottom:1px solid rgba(193,219,247,.38);
  box-shadow:0 12px 28px rgba(3,10,25,.36);
}

.logo{
  color:#f4f9ff;
  border:1px solid rgba(212,226,244,.75);
  background:
    linear-gradient(150deg, rgba(208,220,239,.52), rgba(123,168,228,.12) 45%, rgba(53,111,195,.80));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35), 0 10px 22px rgba(7,22,56,.44);
}

.brand::after{
  content:"XSCAPE MASTERMIND";
  margin-left:12px;
  padding:4px 10px;
  border-radius:999px;
  border:1px solid rgba(212,226,244,.35);
  background:linear-gradient(180deg, rgba(200,214,235,.25), rgba(200,214,235,.08));
  color:#dce8f7;
  font-size:11px;
  letter-spacing:.8px;
  font-weight:700;
  white-space:nowrap;
}

@media (max-width:1200px){
  .brand::after{display:none}
}

.topbar .actions .btn,
.topbar .btn,
.topbar .project-select,
.side-nav .nav-btn,
.project-label,
.nav-label{
  font-size:var(--menu-font-size) !important;
  line-height:var(--menu-line-height) !important;
}

.topbar .actions .btn,
.topbar .btn,
.side-nav .nav-btn,
.topbar .project-select{
  min-height:var(--menu-height) !important;
  height:var(--menu-height);
  padding:0 12px !important;
  border-radius:var(--menu-radius) !important;
}

.project-switch{
  min-height:var(--menu-height);
  border-radius:var(--menu-radius);
}

body.page-dispo .topbar .btn,
body.page-dispo .topbar .actions .btn,
body.page-dispo .side-nav .nav-btn,
body.page-dispo .topbar .project-select,
body.page-dispo .topbar .actions #btn-print{
  min-height:var(--menu-height) !important;
  height:var(--menu-height) !important;
  font-size:var(--menu-font-size) !important;
  line-height:var(--menu-line-height) !important;
  border-radius:var(--menu-radius) !important;
  padding:0 12px !important;
  transform:none !important;
}

.card{
  background:
    linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.03) 42%),
    rgba(9,20,45,.86);
  border:1px solid rgba(194,218,247,.20);
  box-shadow:0 20px 44px rgba(3,10,25,.42), inset 0 1px 0 rgba(255,255,255,.12);
}

/* Clarity layout pass 2026-02-16 */
:root{
  --menu-font-size:12.5px;
  --menu-height:36px;
  --menu-radius:10px;
}

body{
  background:linear-gradient(165deg, #1f4f98 0%, #356eb3 46%, #244f8f 100%);
}

body::before{
  background:
    radial-gradient(52% 38% at 18% 10%, rgba(255,255,255,.18), rgba(255,255,255,0) 72%),
    radial-gradient(45% 34% at 82% 14%, rgba(255,255,255,.14), rgba(255,255,255,0) 72%);
  opacity:.45;
}

body::after{
  background:linear-gradient(180deg, rgba(8,18,38,.25), rgba(8,18,38,.35));
  opacity:1;
}

.topbar{
  padding:14px 18px;
  backdrop-filter:blur(6px);
}

.topbar .actions{gap:6px}

.topbar .actions .btn,
.topbar .btn,
.side-nav .nav-btn,
.topbar .project-select{
  font-size:12.5px !important;
  height:36px !important;
  min-height:36px !important;
  border-radius:10px !important;
  padding:0 10px !important;
}

.titles .name{font-size:21px}
.titles .sub{font-size:12px}

.brand::after{
  font-size:10px;
  padding:3px 8px;
}

.grid{max-width:1160px !important}
body.page-dispo .grid{
  width:min(100%, 1060px) !important;
  max-width:1060px !important;
}

.layout{gap:10px}
body.page-dispo .layout{grid-template-columns:180px minmax(0,1fr) !important}

.side-nav{gap:8px}
.nav-group{padding:7px}

.card{
  border-radius:14px;
  box-shadow:0 12px 28px rgba(3,10,25,.28), inset 0 1px 0 rgba(255,255,255,.10);
}

.card h2{font-size:16px; margin-bottom:8px}

.form label{font-size:12px; color:#d5e3f7}

input,select,textarea{
  border-radius:10px;
  background:rgba(8,20,45,.45);
  border:1px solid rgba(180,205,236,.30);
}

.table-wrap{
  border:1px solid rgba(180,205,236,.20);
  border-radius:12px;
  background:rgba(8,20,45,.45);
}

.calc-table th,.calc-table td,.slot-table th,.slot-table td{font-size:12px}
.calc-table th,.slot-table th{font-size:11px}

.card,.nav-group{animation:none !important}

@media (max-width:900px){
  .topbar{padding:12px}
  .brand::after{display:none}
  .grid{padding-left:10px; padding-right:10px}
}

/* Header logo switch 2026-02-16 */
.brand::after{
  display:none !important;
  content:none !important;
}

.brand-logo{
  display:block;
  width:auto;
  height:46px;
  max-width:min(44vw, 300px);
  object-fit:contain;
  background:transparent !important;
  filter:drop-shadow(0 2px 8px rgba(3,12,30,.25));
}

@media (max-width:900px){
  .brand-logo{
    height:38px;
    max-width:58vw;
  }
}

body.page-login{
  min-height:100vh;
  background:
    linear-gradient(180deg, rgba(5,10,24,.72), rgba(5,10,24,.82)),
    url("assets/aquax-blue.jpg") center center / cover no-repeat;
}

body.page-login .topbar{
  background:rgba(9,12,24,.72);
  border-bottom-color:rgba(180,220,255,.34);
}

body.page-login .card{
  background: linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.02) 45%), rgba(10,16,32,.74);
  border-color:rgba(180,220,255,.28);
}

/* Unified controls + Tagesübersicht polish 2026-02-20 */
body.page-dispo .topbar .actions,
body.page-kv .topbar .actions,
body.page-abrechnung .topbar .actions{
  flex-wrap:nowrap;
  justify-content:flex-start;
  overflow-x:auto;
  scrollbar-width:thin;
  padding-bottom:2px;
}

body.page-dispo .topbar .actions > *,
body.page-kv .topbar .actions > *,
body.page-abrechnung .topbar .actions > *{
  flex:0 0 auto;
}

body.page-dispo .topbar .actions > .btn,
body.page-kv .topbar .actions > .btn,
body.page-abrechnung .topbar .actions > .btn{
  min-width:112px;
}

.btn,
.actions .btn{
  border-radius:10px;
  font-weight:600;
}

.btn.danger{
  background:linear-gradient(180deg, rgba(214,84,84,.86), rgba(163,53,53,.86));
  border-color:rgba(255,156,156,.70);
}

.btn.soft{
  background:linear-gradient(180deg, rgba(205,225,252,.34), rgba(160,195,238,.24));
  border-color:rgba(210,230,255,.72);
  color:#f4f8ff;
}

.btn.soft:hover{
  background:linear-gradient(180deg, rgba(220,236,255,.42), rgba(174,208,246,.30));
}

body.page-dispo .slot-table td[data-slot-speaker]{
  min-width:126px !important;
  max-width:168px;
  white-space:normal;
  font-size:14px;
  font-weight:600;
  line-height:1.25;
}

body.page-dispo .slot-table td:nth-child(2) select{
  min-width:148px !important;
}

/* Luxury master polish 2026-02-20 */
:root{
  --lux-ink:#0a1328;
  --lux-ink-2:#112042;
  --lux-card:rgba(10,22,48,.84);
  --lux-gold:#e2c58b;
  --lux-gold-soft:rgba(226,197,139,.46);
  --lux-line:rgba(226,197,139,.34);
  --lux-white:rgba(242,247,255,.94);
}

html,body{
  min-height:100%;
}

body:not(.page-login){
  color:var(--lux-white);
  background:
    radial-gradient(1300px 560px at 15% -18%, rgba(239,215,160,.18), rgba(239,215,160,0) 62%),
    radial-gradient(1000px 520px at 88% -8%, rgba(101,142,214,.22), rgba(101,142,214,0) 66%),
    linear-gradient(150deg, #071127 0%, #0a1631 34%, #0d1d40 60%, #09152e 100%);
}

body:not(.page-login)::before{
  background:
    radial-gradient(58% 44% at 20% 10%, rgba(255,255,255,.09), rgba(255,255,255,0) 72%),
    radial-gradient(42% 34% at 80% 12%, rgba(227,197,141,.11), rgba(227,197,141,0) 74%);
  opacity:.65;
}

body:not(.page-login)::after{
  background:linear-gradient(180deg, rgba(5,11,24,.34), rgba(5,11,24,.58));
  opacity:1;
}

.topbar{
  background:linear-gradient(180deg, rgba(9,18,39,.93), rgba(8,16,35,.88));
  border-bottom:1px solid var(--lux-line);
  box-shadow:0 14px 34px rgba(3,8,20,.45);
}

.brand-logo{
  height:48px;
  max-width:min(44vw, 320px);
  filter:drop-shadow(0 3px 10px rgba(5,12,28,.55));
}

.logo{
  color:transparent !important;
  font-size:0 !important;
  background:
    linear-gradient(135deg, rgba(255,255,255,.18), rgba(255,255,255,.06)),
    url("projekt-vertraege/xscape-logo.png") center/78% no-repeat;
  border-color:var(--lux-gold-soft) !important;
}

.titles .name{
  font-weight:700;
  letter-spacing:.25px;
}

.titles .sub{
  color:rgba(218,231,255,.78);
}

.topbar .actions{
  display:flex;
  flex-wrap:nowrap;
  overflow-x:auto;
  gap:8px;
  scrollbar-width:thin;
  padding-bottom:2px;
}

.topbar .actions > *{
  flex:0 0 auto;
}

.topbar .actions .btn,
.topbar .btn,
.topbar .project-select,
.topbar .project-switch,
.side-nav .nav-btn{
  min-height:38px !important;
  height:38px !important;
  padding:0 12px !important;
  border-radius:11px !important;
  white-space:nowrap;
  line-height:1 !important;
}

.topbar .actions > .btn{
  min-width:122px;
}

.topbar .actions .btn,
.btn{
  border:1px solid rgba(193,214,246,.34);
  background:linear-gradient(180deg, rgba(255,255,255,.17), rgba(255,255,255,.05));
  color:var(--lux-white);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.17), 0 10px 18px rgba(4,10,22,.32);
}

.topbar .actions .btn:hover,
.btn:hover{
  background:linear-gradient(180deg, rgba(255,255,255,.24), rgba(255,255,255,.08));
}

.btn.primary,
.topbar .actions .btn.primary{
  border-color:rgba(236,211,155,.72);
  color:#fff8ea;
  background:linear-gradient(180deg, rgba(217,184,114,.84), rgba(143,108,53,.92));
}

.btn.primary:hover,
.topbar .actions .btn.primary:hover{
  background:linear-gradient(180deg, rgba(231,200,134,.88), rgba(153,117,58,.95));
}

.btn.danger,
.topbar .actions .btn.danger{
  border-color:rgba(255,178,178,.68);
  background:linear-gradient(180deg, rgba(204,74,74,.92), rgba(144,42,42,.92));
}

.btn.soft{
  border-color:rgba(236,219,183,.68);
  background:linear-gradient(180deg, rgba(236,219,183,.34), rgba(190,160,103,.25));
  color:#fff8ea;
}

.btn.soft:hover{
  background:linear-gradient(180deg, rgba(245,230,199,.42), rgba(203,170,108,.30));
}

.project-switch{
  border:1px solid rgba(219,198,155,.44);
  background:linear-gradient(180deg, rgba(255,255,255,.16), rgba(255,255,255,.05));
}

.project-label,
.nav-label{
  color:rgba(235,219,185,.88) !important;
}

.card,
.item,
.overview-panel,
.table-wrap{
  background:
    linear-gradient(180deg, rgba(255,255,255,.13), rgba(255,255,255,.03) 40%),
    var(--lux-card);
  border:1px solid rgba(212,228,255,.26);
  box-shadow:0 16px 34px rgba(2,8,20,.37), inset 0 1px 0 rgba(255,255,255,.14);
  backdrop-filter:blur(8px);
}

input,select,textarea{
  border:1px solid rgba(202,220,250,.40);
  background:rgba(7,15,33,.56);
  color:var(--lux-white);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
}

input:focus,select:focus,textarea:focus{
  border-color:rgba(232,208,152,.82);
  box-shadow:0 0 0 3px rgba(232,208,152,.22);
}

.badge{
  border-color:rgba(226,197,139,.56);
  background:rgba(226,197,139,.16);
  color:#f9eed8;
}

.slot-table th,
.calc-table th,
.kv-table th{
  color:#f0dfbc;
}

.slot-table th,
.slot-table td,
.calc-table th,
.calc-table td,
.kv-table th,
.kv-table td{
  border-bottom:1px solid rgba(206,182,131,.25);
}

body.page-dispo{
  overflow-x:hidden;
}

@media (min-width:1100px){
  body.page-dispo .grid{
    width:min(100%, 1100px) !important;
    max-width:1100px !important;
  }

  body.page-dispo .layout{
    display:block !important;
    position:relative;
  }

  body.page-dispo .side-nav{
    position:fixed !important;
    top:106px !important;
    left:max(10px, calc((100vw - 1100px) / 2 + 8px));
    width:188px;
    max-height:calc(100vh - 118px);
    overflow:auto;
    padding-right:4px;
    margin:0;
  }

  body.page-dispo .content{
    margin-left:208px;
    width:calc(100% - 208px);
    max-width:calc(100% - 208px);
  }
}

@media (max-width:1099px){
  body.page-dispo .side-nav{
    position:sticky !important;
    top:96px !important;
  }
}

/* Print header/footer + clean white output 2026-02-20 */
@media print{
  @page{size:A4; margin:24mm 10mm 20mm;}

  body::before,
  body::after,
  .topbar::before,
  .topbar::after{
    display:none !important;
    content:none !important;
  }

  body:not(.print-contract){
    background:#fff !important;
    color:#000 !important;
  }

  body:not(.print-contract) #print-area,
  body:not(.print-contract) #print-area .sheet,
  body:not(.print-contract) #print-area .print-table,
  body:not(.print-contract) #print-area .print-table th,
  body:not(.print-contract) #print-area .print-table td,
  body:not(.print-contract) #print-area .retake-row td,
  body:not(.print-contract) #print-area .retake-sep td,
  body:not(.print-contract) #print-area .stat,
  body:not(.print-contract) #print-area .meta .v,
  body:not(.print-contract) #print-area .meta .k{
    background:#fff !important;
    color:#000 !important;
    box-shadow:none !important;
  }

  body:not(.print-contract) #print-area .print-doc-header,
  body:not(.print-contract) #print-area .print-doc-footer{
    display:flex !important;
    position:fixed;
    left:10mm;
    right:10mm;
    align-items:center;
    justify-content:space-between;
    gap:4mm;
    z-index:9999;
    background:#fff !important;
    color:#111 !important;
    font-family:Arial, Helvetica, sans-serif;
  }

  body:not(.print-contract) #print-area .print-doc-header{
    top:8mm;
    min-height:10mm;
    border-bottom:0.3mm solid #000;
    padding-bottom:1.2mm;
  }

  body:not(.print-contract) #print-area .print-doc-footer{
    bottom:6mm;
    min-height:8mm;
    border-top:0.3mm solid #000;
    padding-top:1.2mm;
    font-size:8pt;
  }

  body:not(.print-contract) #print-area .print-head-left{
    width:34mm;
    display:flex;
    align-items:center;
    justify-content:flex-start;
  }

  body:not(.print-contract) #print-area .print-head-center{
    flex:1;
    text-align:center;
    min-width:0;
  }

  body:not(.print-contract) #print-area .print-head-right{
    width:42mm;
    text-align:right;
    font-size:7.8pt;
    white-space:nowrap;
  }

  body:not(.print-contract) #print-area .print-head-logo{
    max-height:8.5mm;
    max-width:32mm;
    object-fit:contain;
  }

  body:not(.print-contract) #print-area .print-head-brand{
    font-size:10pt;
    font-weight:700;
    letter-spacing:.8px;
  }

  body:not(.print-contract) #print-area .print-head-prod{
    font-size:9pt;
    font-weight:700;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  body:not(.print-contract) #print-area .print-head-meta{
    font-size:8pt;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  body:not(.print-contract) #print-area .print-foot-left{
    flex:1;
    min-width:0;
    font-size:7.8pt;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  body:not(.print-contract) #print-area .print-foot-right{
    width:32mm;
    text-align:right;
    font-size:8pt;
    white-space:nowrap;
  }

  body:not(.print-contract) #print-area .print-page-num::before{
    content: counter(page);
  }

  body:not(.print-contract) #print-area .print-page-num::after{
    content: " / " counter(pages);
  }

  body:not(.print-contract) #print-area .print-doc-body{
    position:relative;
    z-index:1;
    padding-top:0 !important;
    padding-bottom:0 !important;
  }

  body.pdf-export #print-area .print-doc-header,
  body.pdf-export #print-area .print-doc-footer{
    display:none !important;
  }
}

/* Header logo placement 2026-02-20 */
.topbar{
  justify-content:flex-start;
}

.topbar .brand{
  align-self:flex-start;
  margin-right:16px;
  min-width:0;
}

.topbar .actions{
  margin-left:auto;
}

.brand-logo{
  display:block;
  height:52px;
  width:auto;
  max-width:min(48vw, 360px);
  object-fit:contain;
}

@media (max-width:900px){
  .topbar .brand{
    align-self:center;
    margin-right:10px;
  }

  .brand-logo{
    height:40px;
    max-width:62vw;
  }
}

/* Menu layout restore 2026-02-20 */
.topbar .actions,
body.page-dispo .topbar .actions,
body.page-kv .topbar .actions,
body.page-abrechnung .topbar .actions{
  display:flex;
  flex-wrap:wrap !important;
  justify-content:flex-start !important;
  align-items:center;
  gap:8px;
  row-gap:8px;
  overflow:visible !important;
  overflow-x:visible !important;
  overflow-y:visible !important;
  max-width:none;
}

.topbar .actions > *{
  flex:0 0 auto;
}

.topbar .actions .project-switch{
  order:-300 !important;
}

.topbar .actions #btn-lang-toggle{
  order:-290 !important;
}

.topbar .actions #btn-auth-logout{
  order:-289 !important;
}

.topbar .actions #auth-user-badge{
  order:-288 !important;
}

.topbar .actions,
.topbar .actions .btn,
.topbar .project-switch,
.topbar .project-select{
  scrollbar-width:none;
}

.topbar .actions::-webkit-scrollbar{
  display:none;
}

/* Days overview fit + compact action badges 2026-02-20 */
body.page-dispo #sec-days-overview,
body.page-dispo .overview-panel{
  width:100%;
  max-width:100%;
  overflow:hidden;
}

body.page-dispo #days-list{
  min-width:0;
}

body.page-dispo #days-list .item{
  min-width:0;
  overflow:hidden;
}

body.page-dispo #days-list .top{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:8px;
}

body.page-dispo #days-list .top > div:first-child{
  min-width:220px;
  flex:1 1 320px;
}

body.page-dispo #days-list .top > .row{
  margin-left:auto !important;
  flex:0 0 auto;
}

body.page-dispo #days-list .slot-table-wrap{
  width:100%;
  max-width:100%;
  overflow-x:auto;
  overflow-y:hidden;
}

body.page-dispo .overview-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:26px;
  padding:4px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:600;
  line-height:1;
  white-space:nowrap;
}

#btn-contract-print{
  border-color:rgba(246,225,176,.86) !important;
  color:#fffdf5 !important;
  background:linear-gradient(180deg, rgba(243,223,180,.58), rgba(209,176,112,.40)) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35), 0 8px 16px rgba(7,14,28,.28);
}

#btn-contract-print:hover{
  background:linear-gradient(180deg, rgba(249,232,194,.66), rgba(221,187,124,.48)) !important;
}

/* Tagesuebersicht compact fields 2026-02-20 */
body.page-dispo #days-list .slot-table td:nth-child(2){
  min-width:132px;
  width:132px;
}

body.page-dispo #days-list .slot-table td:nth-child(2) select{
  min-width:118px;
  width:124px;
  max-width:132px;
}

body.page-dispo #days-list .slot-table td:nth-child(6),
body.page-dispo #days-list .slot-table td:nth-child(7),
body.page-dispo #days-list .slot-table td:nth-child(9){
  min-width:70px;
  width:70px;
}

body.page-dispo #days-list .slot-table input[data-slot-from],
body.page-dispo #days-list .slot-table input[data-slot-to],
body.page-dispo #days-list .slot-table input[data-slot-tph]{
  min-width:56px;
  max-width:72px;
  width:64px;
  padding:4px 6px;
}

body.page-dispo #days-list .slot-table th:nth-child(2),
body.page-dispo #days-list .slot-table th:nth-child(6),
body.page-dispo #days-list .slot-table th:nth-child(7),
body.page-dispo #days-list .slot-table th:nth-child(9){
  letter-spacing:0;
}

/* Dispo 14-inch compact + speaker balance 2026-02-20 */
body.page-dispo .grid{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding-left:6px !important;
  padding-right:12px !important;
}

body.page-dispo .layout{
  grid-template-columns:176px minmax(0, 1fr) !important;
  gap:10px !important;
}

body.page-dispo .side-nav{
  margin-left:-4px;
}

body.page-dispo .content{
  max-width:none !important;
}

body.page-dispo .slot-table td[data-slot-speaker],
body.page-dispo #days-list .slot-table td:nth-child(1){
  min-width:104px !important;
  max-width:136px !important;
  width:120px;
  white-space:normal;
  font-size:15px;
  font-weight:650;
  line-height:1.2;
}

body.page-dispo #roles-list label:has(input[data-role-speaker]){
  flex:0 1 280px !important;
  min-width:220px;
}

body.page-dispo #roles-list input[data-role-speaker]{
  min-width:180px;
  max-width:260px;
  font-size:15px;
  font-weight:600;
}

body.page-dispo #days-list .slot-table td:nth-child(2){
  min-width:118px;
  width:118px;
}

body.page-dispo #days-list .slot-table td:nth-child(2) select{
  min-width:104px;
  width:110px;
  max-width:118px;
}

body.page-dispo #days-list .slot-table td:nth-child(6),
body.page-dispo #days-list .slot-table td:nth-child(7),
body.page-dispo #days-list .slot-table td:nth-child(9){
  min-width:64px;
  width:64px;
}

body.page-dispo #days-list .slot-table input[data-slot-from],
body.page-dispo #days-list .slot-table input[data-slot-to],
body.page-dispo #days-list .slot-table input[data-slot-tph]{
  min-width:52px;
  max-width:64px;
  width:58px;
  padding:3px 5px;
}

@media (max-width:900px){
  body.page-dispo .grid{
    padding-left:8px !important;
    padding-right:8px !important;
  }

  body.page-dispo .layout{
    grid-template-columns:1fr !important;
  }

  body.page-dispo .side-nav{
    margin-left:0;
  }
}

/* Fallback without :has for speaker field width */
body.page-dispo #roles-list .row > label[style*="flex:1"]{
  flex:0 1 280px !important;
  min-width:220px;
}

/* Dispo header + left menu positioning 2026-02-20b */
body.page-dispo .grid{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding-left:0 !important;
  padding-right:12px !important;
}

body.page-dispo .layout{
  grid-template-columns:188px minmax(0, 1fr) !important;
  gap:10px !important;
}

body.page-dispo .side-nav{
  position:sticky;
  top:182px !important;
  z-index:3;
  margin-left:0 !important;
}

body.page-dispo .topbar{
  align-items:flex-start !important;
  padding-left:12px !important;
}

body.page-dispo .topbar .brand{
  display:flex;
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:4px !important;
  align-self:flex-start !important;
  margin-right:16px !important;
}

body.page-dispo .topbar .brand-logo{
  height:72px !important;
  width:auto;
  max-width:min(42vw, 360px);
  object-fit:contain;
}

body.page-dispo .topbar .titles{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:1px;
  margin-left:2px;
}

body.page-dispo .topbar .titles .name{
  font-size:16px !important;
  line-height:1.1;
}

body.page-dispo .topbar .titles .sub{
  font-size:11px !important;
  line-height:1.15;
  opacity:.9;
}

body.page-dispo .topbar .actions{
  margin-left:auto !important;
}

body.page-dispo .topbar .actions #auth-user-badge{
  order:3000 !important;
  margin-left:auto !important;
}

body.page-dispo .topbar .actions #btn-auth-logout{
  order:3001 !important;
}

body.page-dispo .topbar .actions #btn-lang-toggle{
  order:3002 !important;
}

@media (max-width:900px){
  body.page-dispo .topbar{
    align-items:center !important;
    padding-left:10px !important;
  }

  body.page-dispo .topbar .brand{
    flex-direction:row !important;
    align-items:center !important;
    gap:8px !important;
  }

  body.page-dispo .topbar .brand-logo{
    height:42px !important;
    max-width:58vw;
  }

  body.page-dispo .topbar .titles .name{
    font-size:14px !important;
  }

  body.page-dispo .topbar .titles .sub{
    font-size:10px !important;
  }

  body.page-dispo .layout{
    grid-template-columns:1fr !important;
  }

  body.page-dispo .side-nav{
    position:static;
    top:auto !important;
  }
}

/* Project menu hard-left alignment 2026-02-20c */
body.page-dispo .layout{
  margin-left:0 !important;
  padding-left:0 !important;
  grid-template-columns:182px minmax(0, 1fr) !important;
}

body.page-dispo .side-nav{
  margin-left:-10px !important;
  padding-left:0 !important;
}

body.page-dispo .side-nav .nav-group,
body.page-dispo .side-nav .nav-btn{
  margin-left:0 !important;
}

body.page-dispo .topbar .actions{
  flex:1 1 auto;
  min-width:0;
}

body.page-dispo .topbar .actions .project-switch{
  order:-9999 !important;
  margin-left:0 !important;
  margin-right:auto !important;
}

@media (max-width:900px){
  body.page-dispo .side-nav{
    margin-left:0 !important;
  }

  body.page-dispo .topbar .actions .project-switch{
    margin-right:0 !important;
  }
}

/* Layout overlap fix: left nav edge + top actions offset 2026-02-20d */
body.page-dispo .grid{
  padding-left:0 !important;
  padding-right:12px !important;
}

body.page-dispo .layout{
  margin-left:0 !important;
  padding-left:0 !important;
  grid-template-columns:186px minmax(0, 1fr) !important;
}

body.page-dispo .side-nav{
  margin-left:0 !important;
  padding-left:0 !important;
  top:210px !important;
}

body.page-dispo .side-nav .nav-group{
  margin-left:0 !important;
}

body.page-dispo .topbar{
  display:grid !important;
  grid-template-columns:auto minmax(0, 1fr);
  column-gap:22px;
  align-items:start !important;
}

body.page-dispo .topbar .actions{
  margin-left:0 !important;
  padding-left:14px !important;
  justify-content:flex-start !important;
  align-content:flex-start;
}

/* remove hard-left override for project switch in topbar */
body.page-dispo .topbar .actions .project-switch{
  order:0 !important;
  margin-left:0 !important;
  margin-right:0 !important;
}

/* keep user/logout/lang at right edge */
body.page-dispo .topbar .actions #auth-user-badge{
  order:3000 !important;
  margin-left:auto !important;
}

body.page-dispo .topbar .actions #btn-auth-logout{
  order:3001 !important;
}

body.page-dispo .topbar .actions #btn-lang-toggle{
  order:3002 !important;
}

@media (max-width:900px){
  body.page-dispo .topbar{
    display:flex !important;
    align-items:center !important;
  }

  body.page-dispo .topbar .actions{
    padding-left:0 !important;
  }

  body.page-dispo .side-nav{
    top:auto !important;
  }
}

/* Project side menu next to title + draggable 2026-02-20e */
body.page-dispo .layout{
  grid-template-columns:186px minmax(0, 1fr) !important;
  gap:12px !important;
  align-items:start;
}

body.page-dispo .side-nav{
  margin-left:0 !important;
  padding-left:0 !important;
  top:210px !important;
  z-index:4;
}

body.page-dispo .side-nav .side-nav-drag{
  appearance:none;
  width:100%;
  min-height:28px;
  padding:4px 8px;
  margin:0 0 6px;
  border-radius:8px;
  border:1px dashed rgba(220,235,255,.45);
  background:rgba(18,34,66,.55);
  color:rgba(232,241,255,.92);
  font-size:11px;
  font-weight:600;
  letter-spacing:.2px;
  text-align:left;
  cursor:grab;
}

body.page-dispo .side-nav.dragging .side-nav-drag{
  cursor:grabbing;
}

body.page-dispo .side-nav.floating{
  position:fixed !important;
  left:8px;
  top:210px;
  max-height:calc(100vh - 92px);
  overflow:auto;
  padding:8px;
  border-radius:12px;
  border:1px solid rgba(220,235,255,.28);
  background:rgba(10,20,40,.86);
  box-shadow:0 14px 26px rgba(5,10,22,.42);
  z-index:60;
}

body.page-dispo .side-nav.floating .side-nav-drag{
  position:sticky;
  top:0;
  z-index:1;
}

body.page-dispo .topbar{
  display:grid !important;
  grid-template-columns:auto minmax(0, 1fr);
  column-gap:22px;
  align-items:start !important;
}

body.page-dispo .topbar .actions{
  padding-left:16px !important;
  margin-left:0 !important;
}

@media (max-width:900px){
  body.page-dispo .side-nav .side-nav-drag{
    display:none;
  }

  body.page-dispo .side-nav.floating{
    position:static !important;
    left:auto;
    top:auto;
    max-height:none;
    overflow:visible;
    padding:0;
    border:none;
    background:transparent;
    box-shadow:none;
  }

  body.page-dispo .topbar{
    display:flex !important;
  }

  body.page-dispo .topbar .actions{
    padding-left:0 !important;
  }
}

/* Header title under logo on all main pages 2026-02-20f */
body:not(.page-login) .topbar{
  align-items:flex-start !important;
}

body:not(.page-login) .topbar .brand{
  display:flex;
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:4px !important;
  align-self:flex-start !important;
  margin-right:14px !important;
  min-width:0;
}

body:not(.page-login) .topbar .brand-logo{
  height:72px !important;
  width:auto;
  max-width:min(42vw, 360px);
  object-fit:contain;
}

body:not(.page-login) .topbar .titles{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:1px;
  margin-left:2px;
}

body:not(.page-login) .topbar .titles .name{
  font-size:16px !important;
  line-height:1.1;
}

body:not(.page-login) .topbar .titles .sub{
  font-size:11px !important;
  line-height:1.15;
  opacity:.92;
}

body:not(.page-login) .topbar .actions{
  margin-left:auto !important;
  align-self:flex-start;
}

@media (max-width:900px){
  body:not(.page-login) .topbar .brand-logo{
    height:46px !important;
    max-width:58vw;
  }

  body:not(.page-login) .topbar .titles .name{
    font-size:14px !important;
  }

  body:not(.page-login) .topbar .titles .sub{
    font-size:10px !important;
  }
}

/* Unified top menu lock (no overlap) 2026-02-20g */
body:not(.page-login) .topbar{
  display:grid !important;
  grid-template-columns:minmax(320px, 390px) minmax(0, 1fr) !important;
  column-gap:14px !important;
  align-items:start !important;
  justify-content:stretch !important;
  overflow:visible !important;
  padding:10px 10px 12px !important;
}

body:not(.page-login) .topbar .brand{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  gap:4px !important;
  margin:0 !important;
  width:100%;
  min-width:0;
}

body:not(.page-login) .topbar .brand-logo{
  height:74px !important;
  width:auto;
  max-width:100%;
  object-fit:contain;
}

body:not(.page-login) .topbar .titles{
  margin:0 !important;
  padding:0 !important;
  max-width:100% !important;
}

body:not(.page-login) .topbar .titles .name{
  font-size:17px !important;
  line-height:1.1 !important;
  white-space:nowrap !important;
  overflow:hidden;
  text-overflow:ellipsis;
}

body:not(.page-login) .topbar .titles .sub{
  font-size:11px !important;
  line-height:1.15 !important;
  white-space:nowrap !important;
  overflow:hidden;
  text-overflow:ellipsis;
}

body:not(.page-login) .topbar .actions{
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  align-content:flex-start !important;
  justify-content:flex-start !important;
  gap:10px 10px !important;
  margin:0 !important;
  padding:0 !important;
  min-width:0 !important;
  overflow:visible !important;
}

body:not(.page-login) .topbar .actions > *{
  flex:0 0 auto;
}

body:not(.page-login) .topbar .actions .project-switch{
  order:30 !important;
  margin:0 !important;
}

body:not(.page-login) .topbar .actions #auth-user-badge{
  order:1000 !important;
  margin-left:auto !important;
}

body:not(.page-login) .topbar .actions #btn-auth-logout{
  order:1001 !important;
}

body:not(.page-login) .topbar .actions #btn-lang-toggle{
  order:1002 !important;
}

@media (max-width:1200px){
  body:not(.page-login) .topbar .titles .name{
    font-size:15px !important;
  }

  body:not(.page-login) .topbar .titles .sub{
    font-size:10px !important;
  }
}

@media (max-width:900px){
  body:not(.page-login) .topbar{
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:flex-start !important;
    gap:10px !important;
  }

  body:not(.page-login) .topbar .brand-logo{
    height:46px !important;
  }

  body:not(.page-login) .topbar .titles .name{
    font-size:14px !important;
  }

  body:not(.page-login) .topbar .titles .sub{
    font-size:10px !important;
  }

  body:not(.page-login) .topbar .actions{
    width:100%;
  }

  body:not(.page-login) .topbar .actions #auth-user-badge{
    margin-left:0 !important;
  }
}


/* Final print lock: hide app navigation in all print outputs 2026-02-20 */
@media print{
  body .topbar,
  body .topbar .brand,
  body .topbar .actions,
  body .side-nav,
  body .footer{
    display:none !important;
    visibility:hidden !important;
    height:0 !important;
    min-height:0 !important;
    max-height:0 !important;
    overflow:hidden !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
  }

  body .grid{
    margin:0 !important;
    padding:0 !important;
  }
}


@media screen {
/* Global brightness tuning 2026-02-20 */
:root{
  --text:#fcfeff;
  --muted:#edf3ff;
  --line:rgba(205,224,255,.48);
}

body{
  background:linear-gradient(180deg,#162446,#1b2b51 55%,#162446) !important;
  color:var(--text) !important;
}

.topbar{
  background:rgba(22,32,60,.94) !important;
  border-bottom:1px solid rgba(176,206,255,.34) !important;
}

.card,
.item,
.nav-group,
.overview-panel{
  background:linear-gradient(180deg, rgba(255,255,255,.09), rgba(255,255,255,.03) 40%), rgba(26,39,72,.92) !important;
  border-color:rgba(170,200,255,.28) !important;
}

h1,h2,h3,label,strong,.badge,.nav-label,.hint,.small,.muted,
.slot-table th,.calc-table th,.takes-table th,.kv-table th,.extras-table th,.kassen-table th{
  color:var(--text) !important;
}

.muted,.hint,.nav-label,
.slot-table th,.calc-table th,.takes-table th,.kv-table th,.extras-table th,.kassen-table th{
  color:#edf4ff !important;
}

.slot-table td,.calc-table td,.takes-table td,.kv-table td,.extras-table td,.kassen-table td{
  color:#ffffff !important;
}

input,select,textarea,.project-select{
  color:var(--text) !important;
  background:rgba(255,255,255,.10) !important;
  border-color:rgba(185,214,255,.38) !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.14), inset 0 1px 0 rgba(255,255,255,.16) !important;
}

input::placeholder,
textarea::placeholder{
  color:#eef5ff !important;
  opacity:.95;
}

.actions .btn,.btn,.topbar .btn{
  color:#ffffff !important;
  border-color:rgba(184,212,255,.52) !important;
}

.actions .btn:hover,
.btn:hover{
  filter:brightness(1.08);
}

body.page-login .card{
  background:linear-gradient(180deg, rgba(255,255,255,.11), rgba(255,255,255,.04) 42%), rgba(26,39,72,.95) !important;
}

}


@media screen {
/* Field text brightness lock 2026-02-20 */
input,
select,
textarea,
input[type="text"],
input[type="number"],
input[type="date"],
input[type="time"],
input[type="search"],
input[type="email"],
input[type="password"]{
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  caret-color:#ffffff !important;
}

select option{
  color:#ffffff;
  background:#1c2c53;
}

input::placeholder,
textarea::placeholder{
  color:#f3f8ff !important;
  opacity:1 !important;
}
}


@media screen {
/* Global text contrast boost 2026-02-21 */
body:not(.print-contract),
body:not(.print-contract) p,
body:not(.print-contract) span,
body:not(.print-contract) label,
body:not(.print-contract) strong,
body:not(.print-contract) h1,
body:not(.print-contract) h2,
body:not(.print-contract) h3,
body:not(.print-contract) h4,
body:not(.print-contract) h5,
body:not(.print-contract) h6,
body:not(.print-contract) li,
body:not(.print-contract) td,
body:not(.print-contract) th,
body:not(.print-contract) a,
body:not(.print-contract) button,
body:not(.print-contract) .btn,
body:not(.print-contract) .titles .name,
body:not(.print-contract) .titles .sub,
body:not(.print-contract) .project-label,
body:not(.print-contract) .badge,
body:not(.print-contract) .small{
  color:#fbfdff !important;
}

body:not(.print-contract) .muted,
body:not(.print-contract) .hint,
body:not(.print-contract) .nav-label,
body:not(.print-contract) .slot-table th,
body:not(.print-contract) .calc-table th,
body:not(.print-contract) .takes-table th,
body:not(.print-contract) .kv-table th,
body:not(.print-contract) .extras-table th,
body:not(.print-contract) .kassen-table th{
  color:#eef5ff !important;
}

body:not(.print-contract) input,
body:not(.print-contract) select,
body:not(.print-contract) textarea,
body:not(.print-contract) input::placeholder,
body:not(.print-contract) textarea::placeholder,
body:not(.print-contract) option{
  color:#ffffff !important;
}
}


@media screen {
/* Content-only brightness lock 2026-02-21 */
body:not(.page-login):not(.print-contract) main.grid,
body:not(.page-login):not(.print-contract) main.grid p,
body:not(.page-login):not(.print-contract) main.grid span,
body:not(.page-login):not(.print-contract) main.grid label,
body:not(.page-login):not(.print-contract) main.grid strong,
body:not(.page-login):not(.print-contract) main.grid h1,
body:not(.page-login):not(.print-contract) main.grid h2,
body:not(.page-login):not(.print-contract) main.grid h3,
body:not(.page-login):not(.print-contract) main.grid h4,
body:not(.page-login):not(.print-contract) main.grid h5,
body:not(.page-login):not(.print-contract) main.grid h6,
body:not(.page-login):not(.print-contract) main.grid li,
body:not(.page-login):not(.print-contract) main.grid td,
body:not(.page-login):not(.print-contract) main.grid th,
body:not(.page-login):not(.print-contract) main.grid a,
body:not(.page-login):not(.print-contract) main.grid button,
body:not(.page-login):not(.print-contract) main.grid .btn,
body:not(.page-login):not(.print-contract) main.grid .small,
body:not(.page-login):not(.print-contract) main.grid .badge{
  color:#ffffff !important;
}

body:not(.page-login):not(.print-contract) main.grid .muted,
body:not(.page-login):not(.print-contract) main.grid .hint,
body:not(.page-login):not(.print-contract) main.grid .nav-label,
body:not(.page-login):not(.print-contract) main.grid .slot-table th,
body:not(.page-login):not(.print-contract) main.grid .calc-table th,
body:not(.page-login):not(.print-contract) main.grid .takes-table th,
body:not(.page-login):not(.print-contract) main.grid .kv-table th,
body:not(.page-login):not(.print-contract) main.grid .extras-table th,
body:not(.page-login):not(.print-contract) main.grid .kassen-table th{
  color:#f2f7ff !important;
}

body:not(.page-login):not(.print-contract) main.grid input,
body:not(.page-login):not(.print-contract) main.grid select,
body:not(.page-login):not(.print-contract) main.grid textarea,
body:not(.page-login):not(.print-contract) main.grid input::placeholder,
body:not(.page-login):not(.print-contract) main.grid textarea::placeholder,
body:not(.page-login):not(.print-contract) main.grid option{
  color:#ffffff !important;
}

body:not(.page-login):not(.print-contract) main.grid .card,
body:not(.page-login):not(.print-contract) main.grid .item{
  border-color:rgba(196,221,255,.44) !important;
}
}


@media screen {
/* Content brightness hard lock 2026-02-21b */
body:not(.page-login):not(.print-contract) main.grid{
  color:#f7fbff !important;
}

body:not(.page-login):not(.print-contract) main.grid,
body:not(.page-login):not(.print-contract) main.grid p,
body:not(.page-login):not(.print-contract) main.grid span,
body:not(.page-login):not(.print-contract) main.grid label,
body:not(.page-login):not(.print-contract) main.grid strong,
body:not(.page-login):not(.print-contract) main.grid h1,
body:not(.page-login):not(.print-contract) main.grid h2,
body:not(.page-login):not(.print-contract) main.grid h3,
body:not(.page-login):not(.print-contract) main.grid h4,
body:not(.page-login):not(.print-contract) main.grid h5,
body:not(.page-login):not(.print-contract) main.grid h6,
body:not(.page-login):not(.print-contract) main.grid li,
body:not(.page-login):not(.print-contract) main.grid td,
body:not(.page-login):not(.print-contract) main.grid th,
body:not(.page-login):not(.print-contract) main.grid a,
body:not(.page-login):not(.print-contract) main.grid button,
body:not(.page-login):not(.print-contract) main.grid .btn,
body:not(.page-login):not(.print-contract) main.grid .small,
body:not(.page-login):not(.print-contract) main.grid .badge,
body:not(.page-login):not(.print-contract) main.grid .k,
body:not(.page-login):not(.print-contract) main.grid .v{
  color:#f7fbff !important;
}

body:not(.page-login):not(.print-contract) main.grid .muted,
body:not(.page-login):not(.print-contract) main.grid .hint,
body:not(.page-login):not(.print-contract) main.grid .nav-label,
body:not(.page-login):not(.print-contract) main.grid .slot-table th,
body:not(.page-login):not(.print-contract) main.grid .calc-table th,
body:not(.page-login):not(.print-contract) main.grid .takes-table th,
body:not(.page-login):not(.print-contract) main.grid .kv-table th,
body:not(.page-login):not(.print-contract) main.grid .extras-table th,
body:not(.page-login):not(.print-contract) main.grid .kassen-table th{
  color:#e7f0ff !important;
}

body:not(.page-login):not(.print-contract) main.grid input,
body:not(.page-login):not(.print-contract) main.grid select,
body:not(.page-login):not(.print-contract) main.grid textarea{
  color:#f7fbff !important;
  -webkit-text-fill-color:#f7fbff !important;
}

body:not(.page-login):not(.print-contract) main.grid input::placeholder,
body:not(.page-login):not(.print-contract) main.grid textarea::placeholder{
  color:#e7f0ff !important;
  opacity:1 !important;
}

body:not(.page-login):not(.print-contract) main.grid .card,
body:not(.page-login):not(.print-contract) main.grid .item{
  border-color:rgba(200,224,255,.50) !important;
}
}


@media screen {
/* Main window luminance boost 2026-02-21c */
body:not(.page-login):not(.print-contract) main.grid{
  filter:brightness(1.22) saturate(1.07) !important;
}

body:not(.page-login):not(.print-contract) main.grid .card,
body:not(.page-login):not(.print-contract) main.grid .item,
body:not(.page-login):not(.print-contract) main.grid input,
body:not(.page-login):not(.print-contract) main.grid select,
body:not(.page-login):not(.print-contract) main.grid textarea{
  text-shadow:0 0 0.01px rgba(255,255,255,.9);
}
}


@media screen {
/* Login readability lock 2026-02-21 */
body.page-login{
  filter:none !important;
}

body.page-login .topbar .titles .name,
body.page-login .topbar .titles .sub,
body.page-login h2,
body.page-login label{
  color:#f7fbff !important;
}

body.page-login .card{
  background:linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.04) 42%), rgba(14,27,56,.96) !important;
  border:1px solid rgba(208,227,255,.40) !important;
}

body.page-login input[type="text"],
body.page-login input[type="password"]{
  background:rgba(7,16,36,.92) !important;
  border:1px solid rgba(205,226,255,.78) !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  caret-color:#ffffff !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.14), inset 0 1px 0 rgba(255,255,255,.18) !important;
}

body.page-login input[type="text"]::placeholder,
body.page-login input[type="password"]::placeholder{
  color:#dce9ff !important;
  opacity:1 !important;
}

body.page-login #login-error{
  color:#ffb8b8 !important;
}
}

@media screen {
/* Final readability + fixed project menu 2026-02-21d */
body:not(.page-login):not(.print-contract) main.grid{
  filter:none !important;
}

body:not(.page-login):not(.print-contract) .card,
body:not(.page-login):not(.print-contract) .item,
body:not(.page-login):not(.print-contract) .overview-panel,
body:not(.page-login):not(.print-contract) .nav-group{
  background:linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.05) 40%), rgba(28,43,78,.94) !important;
  border-color:rgba(205,225,255,.54) !important;
}

body:not(.page-login):not(.print-contract) main.grid,
body:not(.page-login):not(.print-contract) main.grid h1,
body:not(.page-login):not(.print-contract) main.grid h2,
body:not(.page-login):not(.print-contract) main.grid h3,
body:not(.page-login):not(.print-contract) main.grid label,
body:not(.page-login):not(.print-contract) main.grid p,
body:not(.page-login):not(.print-contract) main.grid span,
body:not(.page-login):not(.print-contract) main.grid td,
body:not(.page-login):not(.print-contract) main.grid th,
body:not(.page-login):not(.print-contract) main.grid .small,
body:not(.page-login):not(.print-contract) main.grid .muted,
body:not(.page-login):not(.print-contract) main.grid .hint{
  color:#f7fbff !important;
}

body:not(.page-login):not(.print-contract) main.grid input,
body:not(.page-login):not(.print-contract) main.grid select,
body:not(.page-login):not(.print-contract) main.grid textarea{
  background:rgba(255,255,255,.14) !important;
  border-color:rgba(210,228,255,.62) !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
}

body:not(.page-login):not(.print-contract) main.grid input::placeholder,
body:not(.page-login):not(.print-contract) main.grid textarea::placeholder{
  color:#edf5ff !important;
  opacity:1 !important;
}

body.page-login input[type="text"],
body.page-login input[type="password"]{
  background:rgba(8,18,40,.98) !important;
  border:1px solid rgba(214,230,255,.85) !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  caret-color:#ffffff !important;
}

body.page-login input[type="text"]::placeholder,
body.page-login input[type="password"]::placeholder{
  color:#e3edff !important;
  opacity:1 !important;
}

body.page-login input:-webkit-autofill,
body.page-login input:-webkit-autofill:hover,
body.page-login input:-webkit-autofill:focus{
  -webkit-text-fill-color:#ffffff !important;
  box-shadow:0 0 0 1000px rgba(8,18,40,.98) inset !important;
  caret-color:#ffffff !important;
}
}

@media screen and (min-width:901px){
/* Dispo side menu hard-left fix 2026-02-21e */
body.page-dispo .layout{
  display:block !important;
}

body.page-dispo .side-nav,
body.page-dispo .side-nav.floating{
  position:fixed !important;
  left:8px !important;
  top:206px !important;
  width:186px !important;
  max-width:186px !important;
  max-height:calc(100vh - 220px) !important;
  overflow:auto !important;
  margin:0 !important;
  padding:0 !important;
  border:none !important;
  background:transparent !important;
  box-shadow:none !important;
  z-index:32 !important;
}

body.page-dispo .side-nav .side-nav-drag,
body.page-dispo .side-nav.floating .side-nav-drag{
  display:none !important;
}

body.page-dispo .content{
  margin-left:206px !important;
  width:auto !important;
  max-width:calc(100vw - 228px) !important;
  min-width:0 !important;
}
}

@media screen {
/* Dispo section color-match to project menu 2026-02-21f */
body.page-dispo{
  --menu-match-bg:linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.05) 40%), rgba(28,43,78,.94);
  --menu-match-border:rgba(205,225,255,.54);
}

body.page-dispo .side-nav .nav-group,
body.page-dispo #sec-title,
body.page-dispo #sec-roles,
body.page-dispo #sec-days,
body.page-dispo #sec-calendar{
  background:var(--menu-match-bg) !important;
  border-color:var(--menu-match-border) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12), inset 0 0 0 1px rgba(255,255,255,.06) !important;
}

body.page-dispo #sec-title h2,
body.page-dispo #sec-roles h2,
body.page-dispo #sec-days h2,
body.page-dispo #sec-calendar h2,
body.page-dispo #sec-title h3,
body.page-dispo #sec-roles h3,
body.page-dispo #sec-days h3,
body.page-dispo #sec-calendar h3,
body.page-dispo #sec-title label,
body.page-dispo #sec-roles label,
body.page-dispo #sec-days label,
body.page-dispo #sec-calendar label,
body.page-dispo #sec-title .small,
body.page-dispo #sec-roles .small,
body.page-dispo #sec-days .small,
body.page-dispo #sec-calendar .small,
body.page-dispo #sec-title .muted,
body.page-dispo #sec-roles .muted,
body.page-dispo #sec-days .muted,
body.page-dispo #sec-calendar .muted,
body.page-dispo #sec-title .hint,
body.page-dispo #sec-roles .hint,
body.page-dispo #sec-days .hint,
body.page-dispo #sec-calendar .hint,
body.page-dispo #sec-title .item,
body.page-dispo #sec-roles .item,
body.page-dispo #sec-days .item,
body.page-dispo #sec-calendar .item,
body.page-dispo #sec-title .slot-table th,
body.page-dispo #sec-roles .slot-table th,
body.page-dispo #sec-days .slot-table th,
body.page-dispo #sec-calendar .slot-table th,
body.page-dispo #sec-title .slot-table td,
body.page-dispo #sec-roles .slot-table td,
body.page-dispo #sec-days .slot-table td,
body.page-dispo #sec-calendar .slot-table td{
  color:#f7fbff !important;
}
}

@media screen {
/* Dispo text-only brightness hard fix 2026-02-21g */
body.page-dispo main.grid h2,
body.page-dispo main.grid h3,
body.page-dispo main.grid label,
body.page-dispo main.grid .small,
body.page-dispo main.grid .muted,
body.page-dispo main.grid .hint,
body.page-dispo main.grid .k,
body.page-dispo main.grid .v,
body.page-dispo main.grid td,
body.page-dispo main.grid th,
body.page-dispo main.grid p,
body.page-dispo main.grid span{
  color:#f8fbff !important;
  opacity:1 !important;
}

body.page-dispo main.grid input,
body.page-dispo main.grid select,
body.page-dispo main.grid textarea{
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  caret-color:#ffffff !important;
}

body.page-dispo main.grid input::placeholder,
body.page-dispo main.grid textarea::placeholder{
  color:#eef5ff !important;
  opacity:1 !important;
}

body.page-dispo main.grid .slot-table th,
body.page-dispo main.grid .slot-table td,
body.page-dispo main.grid .calc-table th,
body.page-dispo main.grid .calc-table td,
body.page-dispo main.grid .kv-table th,
body.page-dispo main.grid .kv-table td,
body.page-dispo main.grid .takes-table th,
body.page-dispo main.grid .takes-table td,
body.page-dispo main.grid .extras-table th,
body.page-dispo main.grid .extras-table td,
body.page-dispo main.grid .kassen-table th,
body.page-dispo main.grid .kassen-table td{
  color:#f8fbff !important;
}
}

@media screen {
/* Dispo window brightness hard fix 2026-02-21h */
body.page-dispo #sec-title,
body.page-dispo #sec-roles,
body.page-dispo #sec-days,
body.page-dispo #sec-calendar,
body.page-dispo #sec-days-overview,
body.page-dispo .overview-panel{
  background:linear-gradient(180deg, rgba(255,255,255,.22), rgba(255,255,255,.10) 42%), rgba(44,66,116,.96) !important;
  border:1px solid rgba(220,236,255,.72) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22), inset 0 0 0 1px rgba(255,255,255,.10), 0 10px 22px rgba(4,10,24,.34) !important;
}

body.page-dispo #sec-title .item,
body.page-dispo #sec-roles .item,
body.page-dispo #sec-days .item,
body.page-dispo #sec-calendar .item{
  background:linear-gradient(180deg, rgba(255,255,255,.16), rgba(255,255,255,.07) 45%), rgba(52,75,126,.92) !important;
  border-color:rgba(220,236,255,.62) !important;
}

body.page-dispo #sec-title input,
body.page-dispo #sec-title select,
body.page-dispo #sec-title textarea,
body.page-dispo #sec-roles input,
body.page-dispo #sec-roles select,
body.page-dispo #sec-roles textarea,
body.page-dispo #sec-days input,
body.page-dispo #sec-days select,
body.page-dispo #sec-days textarea,
body.page-dispo #sec-calendar input,
body.page-dispo #sec-calendar select,
body.page-dispo #sec-calendar textarea{
  background:rgba(255,255,255,.24) !important;
  border:1px solid rgba(224,238,255,.78) !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
}

body.page-dispo #sec-title input::placeholder,
body.page-dispo #sec-title textarea::placeholder,
body.page-dispo #sec-roles input::placeholder,
body.page-dispo #sec-roles textarea::placeholder,
body.page-dispo #sec-days input::placeholder,
body.page-dispo #sec-days textarea::placeholder,
body.page-dispo #sec-calendar input::placeholder,
body.page-dispo #sec-calendar textarea::placeholder{
  color:#f2f8ff !important;
}
}

@media screen {
/* Dispo text absolute white fix 2026-02-21i */
body.page-dispo main.grid,
body.page-dispo main.grid h1,
body.page-dispo main.grid h2,
body.page-dispo main.grid h3,
body.page-dispo main.grid h4,
body.page-dispo main.grid h5,
body.page-dispo main.grid h6,
body.page-dispo main.grid label,
body.page-dispo main.grid p,
body.page-dispo main.grid span,
body.page-dispo main.grid td,
body.page-dispo main.grid th,
body.page-dispo main.grid .small,
body.page-dispo main.grid .muted,
body.page-dispo main.grid .hint,
body.page-dispo .side-nav,
body.page-dispo .side-nav .nav-label,
body.page-dispo .side-nav .nav-btn,
body.page-dispo .side-nav .nav-btn *{
  color:#ffffff !important;
  opacity:1 !important;
}

body.page-dispo main.grid input,
body.page-dispo main.grid select,
body.page-dispo main.grid textarea,
body.page-dispo main.grid option{
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  caret-color:#ffffff !important;
}

body.page-dispo main.grid input::placeholder,
body.page-dispo main.grid textarea::placeholder{
  color:#ffffff !important;
  opacity:1 !important;
}
}

@media screen {
/* Dispo background dark restore 2026-02-21j */
body.page-dispo #sec-title,
body.page-dispo #sec-roles,
body.page-dispo #sec-days,
body.page-dispo #sec-calendar,
body.page-dispo #sec-days-overview,
body.page-dispo .overview-panel{
  background:linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.02) 40%), rgba(14,26,52,.96) !important;
  border:1px solid rgba(174,202,244,.42) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10), inset 0 0 0 1px rgba(255,255,255,.05), 0 10px 22px rgba(4,10,24,.40) !important;
}

body.page-dispo #sec-title .item,
body.page-dispo #sec-roles .item,
body.page-dispo #sec-days .item,
body.page-dispo #sec-calendar .item{
  background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.015) 45%), rgba(18,32,62,.94) !important;
  border-color:rgba(174,202,244,.40) !important;
}

body.page-dispo #sec-title input,
body.page-dispo #sec-title select,
body.page-dispo #sec-title textarea,
body.page-dispo #sec-roles input,
body.page-dispo #sec-roles select,
body.page-dispo #sec-roles textarea,
body.page-dispo #sec-days input,
body.page-dispo #sec-days select,
body.page-dispo #sec-days textarea,
body.page-dispo #sec-calendar input,
body.page-dispo #sec-calendar select,
body.page-dispo #sec-calendar textarea{
  background:rgba(11,23,47,.90) !important;
  border:1px solid rgba(190,214,255,.46) !important;
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
}
}

@media screen {
/* Dispo clear text + no haze 2026-02-21k */
body.page-dispo::before,
body.page-dispo::after{
  display:none !important;
  content:none !important;
}

body.page-dispo main.grid,
body.page-dispo #sec-title,
body.page-dispo #sec-roles,
body.page-dispo #sec-days,
body.page-dispo #sec-calendar,
body.page-dispo #sec-days-overview,
body.page-dispo .overview-panel,
body.page-dispo .card,
body.page-dispo .item{
  filter:none !important;
  opacity:1 !important;
  backdrop-filter:none !important;
  text-shadow:none !important;
}

body.page-dispo main.grid input,
body.page-dispo main.grid select,
body.page-dispo main.grid textarea,
body.page-dispo main.grid button,
body.page-dispo main.grid .btn,
body.page-dispo .side-nav .nav-btn,
body.page-dispo .topbar .actions .btn,
body.page-dispo .project-select,
body.page-dispo .project-label{
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  text-shadow:none !important;
  font-weight:700 !important;
  opacity:1 !important;
}

body.page-dispo main.grid input::placeholder,
body.page-dispo main.grid textarea::placeholder{
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  opacity:.95 !important;
}

body.page-dispo .btn:disabled,
body.page-dispo button:disabled{
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  opacity:.95 !important;
}
}

@media screen {
/* Global clear text + no haze on all app pages 2026-02-21l */
body:not(.page-login):not(.print-contract)::before,
body:not(.page-login):not(.print-contract)::after{
  display:none !important;
  content:none !important;
}

body:not(.page-login):not(.print-contract) main.grid,
body:not(.page-login):not(.print-contract) .card,
body:not(.page-login):not(.print-contract) .item,
body:not(.page-login):not(.print-contract) .overview-panel,
body:not(.page-login):not(.print-contract) .nav-group{
  filter:none !important;
  opacity:1 !important;
  backdrop-filter:none !important;
  text-shadow:none !important;
}

body:not(.page-login):not(.print-contract) main.grid input,
body:not(.page-login):not(.print-contract) main.grid select,
body:not(.page-login):not(.print-contract) main.grid textarea,
body:not(.page-login):not(.print-contract) main.grid button,
body:not(.page-login):not(.print-contract) main.grid .btn,
body:not(.page-login):not(.print-contract) .topbar .actions .btn,
body:not(.page-login):not(.print-contract) .side-nav .nav-btn,
body:not(.page-login):not(.print-contract) .project-select,
body:not(.page-login):not(.print-contract) .project-label{
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  text-shadow:none !important;
  font-weight:700 !important;
  opacity:1 !important;
}

body:not(.page-login):not(.print-contract) main.grid input::placeholder,
body:not(.page-login):not(.print-contract) main.grid textarea::placeholder{
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  opacity:.95 !important;
}

body:not(.page-login):not(.print-contract) .btn:disabled,
body:not(.page-login):not(.print-contract) button:disabled{
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  opacity:.95 !important;
}
}

/* Menu order fix 2026-02-23: language button takes user slot, user at far right */
body:not(.page-login) .topbar .actions #btn-lang-toggle{
  order:1000 !important;
  margin-left:auto !important;
}

body:not(.page-login) .topbar .actions #btn-auth-logout{
  order:1001 !important;
  margin-left:0 !important;
}

body:not(.page-login) .topbar .actions #auth-user-badge{
  order:1002 !important;
  margin-left:0 !important;
}


/* Button press feedback 2026-02-25 */
.btn,
button,
label.btn,
a.btn{
  transition: transform .08s ease, filter .12s ease, box-shadow .12s ease;
}

.btn:active,
button:active,
label.btn:active,
a.btn:active{
  transform: translateY(1px) scale(0.985);
  filter: brightness(.84) saturate(1.08);
  box-shadow: inset 0 2px 8px rgba(0,0,0,.35), 0 0 0 1px rgba(255,255,255,.08);
}

.btn:disabled:active,
button:disabled:active{
  transform: none;
  filter: none;
  box-shadow: none;
}


/* Final menu polish + stronger haptic feedback 2026-02-26 */
@media screen {
  :root{
    --xsc-menu-height:40px;
    --xsc-menu-radius:12px;
    --xsc-menu-font:13px;
    --xsc-menu-border:rgba(200,225,255,.52);
    --xsc-menu-bg:linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,.05));
    --xsc-menu-bg-hover:linear-gradient(180deg, rgba(255,255,255,.21), rgba(255,255,255,.08));
  }

  body:not(.page-login) .topbar .actions{
    gap:8px 8px !important;
    align-items:center !important;
  }

  body:not(.page-login) .topbar .actions .btn,
  body:not(.page-login) .topbar .actions a.btn,
  body:not(.page-login) .topbar .actions label.btn,
  body:not(.page-login) .topbar .project-select,
  body:not(.page-login) .topbar .project-switch,
  body:not(.page-login) .topbar .actions #auth-user-badge{
    min-height:var(--xsc-menu-height) !important;
    height:var(--xsc-menu-height) !important;
    border-radius:var(--xsc-menu-radius) !important;
    font-size:var(--xsc-menu-font) !important;
    line-height:1.1 !important;
    font-weight:700 !important;
    letter-spacing:.1px !important;
  }

  body:not(.page-login) .topbar .actions .btn,
  body:not(.page-login) .topbar .actions a.btn,
  body:not(.page-login) .topbar .actions label.btn{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:0 12px !important;
    border:1px solid var(--xsc-menu-border) !important;
    background:var(--xsc-menu-bg) !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.16), 0 6px 16px rgba(0,0,0,.28) !important;
  }

  body:not(.page-login) .topbar .actions .btn:hover,
  body:not(.page-login) .topbar .actions a.btn:hover,
  body:not(.page-login) .topbar .actions label.btn:hover{
    background:var(--xsc-menu-bg-hover) !important;
  }

  body:not(.page-login) .topbar .actions .project-switch{
    display:inline-flex !important;
    align-items:center !important;
    padding:0 10px !important;
    gap:8px !important;
    border:1px solid var(--xsc-menu-border) !important;
    background:var(--xsc-menu-bg) !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.15), 0 6px 14px rgba(0,0,0,.24) !important;
  }

  body:not(.page-login) .topbar .project-label{
    font-size:12px !important;
    font-weight:700 !important;
    opacity:.95 !important;
    margin-right:2px !important;
  }

  body:not(.page-login) .topbar .project-select{
    min-width:170px !important;
    padding:0 10px !important;
    border:1px solid rgba(210,230,255,.56) !important;
    background:rgba(14,29,56,.86) !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.14), 0 5px 12px rgba(0,0,0,.26) !important;
  }

  body:not(.page-login) .topbar .actions #auth-user-badge{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:0 12px !important;
    border:1px solid rgba(175,210,255,.64) !important;
    background:linear-gradient(180deg, rgba(86,146,255,.28), rgba(65,115,215,.18)) !important;
    color:#ffffff !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.18), 0 6px 14px rgba(12,27,56,.45) !important;
    white-space:nowrap !important;
  }

  body:not(.page-login) .topbar .actions #btn-lang-toggle{
    order:1000 !important;
    margin-left:auto !important;
  }

  body:not(.page-login) .topbar .actions #btn-auth-logout{
    order:1001 !important;
    margin-left:0 !important;
  }

  body:not(.page-login) .topbar .actions #auth-user-badge{
    order:1002 !important;
    margin-left:0 !important;
  }

  .btn,
  button,
  label.btn,
  a.btn{
    transition:transform .075s ease, filter .12s ease, box-shadow .12s ease, background .18s ease !important;
    transform:translateY(0);
    will-change:transform, filter;
  }

  .btn:active,
  button:active,
  label.btn:active,
  a.btn:active,
  .btn.is-pressed,
  button.is-pressed,
  label.btn.is-pressed,
  a.btn.is-pressed{
    transform:translateY(2px) scale(.968) !important;
    filter:brightness(.72) saturate(1.15) !important;
    box-shadow:inset 0 3px 10px rgba(0,0,0,.46), 0 0 0 1px rgba(255,255,255,.06) !important;
  }

  .btn:focus-visible,
  button:focus-visible,
  label.btn:focus-visible,
  a.btn:focus-visible{
    outline:2px solid rgba(160,205,255,.85) !important;
    outline-offset:2px !important;
  }

  .btn:disabled:active,
  button:disabled:active,
  .btn:disabled.is-pressed,
  button:disabled.is-pressed{
    transform:none !important;
    filter:none !important;
    box-shadow:none !important;
  }

  @media (max-width:1200px){
    :root{
      --xsc-menu-height:38px;
      --xsc-menu-radius:11px;
      --xsc-menu-font:12.5px;
    }
    body:not(.page-login) .topbar .project-select{
      min-width:140px !important;
    }
  }
}


/* Side menu polish 2026-02-26 */
@media screen {
  body:not(.page-login) .side-nav .nav-btn{
    min-height:38px !important;
    border-radius:11px !important;
    border:1px solid rgba(190,220,255,.48) !important;
    background:linear-gradient(180deg, rgba(255,255,255,.13), rgba(255,255,255,.04)) !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.16), 0 5px 12px rgba(0,0,0,.25) !important;
    font-size:12.5px !important;
    font-weight:700 !important;
  }

  body:not(.page-login) .side-nav .nav-btn:hover{
    background:linear-gradient(180deg, rgba(255,255,255,.20), rgba(255,255,255,.07)) !important;
  }

  body:not(.page-login) .side-nav .nav-btn.active{
    border-color:rgba(170,214,255,.82) !important;
    background:linear-gradient(180deg, rgba(102,162,255,.46), rgba(70,126,222,.34)) !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.24), 0 8px 18px rgba(20,50,105,.45) !important;
    transform:none !important;
  }
}


/* Topbar order + equal width + gold create actions 2026-02-26b */
@media screen {
  :root{
    --xsc-topbar-btn-width:154px;
  }

  body:not(.page-login) .topbar .actions .btn,
  body:not(.page-login) .topbar .actions a.btn,
  body:not(.page-login) .topbar .actions label.btn{
    width:var(--xsc-topbar-btn-width) !important;
    min-width:var(--xsc-topbar-btn-width) !important;
    max-width:var(--xsc-topbar-btn-width) !important;
    text-align:center !important;
    justify-content:center !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }

  body:not(.page-login) .topbar .actions .project-switch{ order:300 !important; }
  body:not(.page-login) .topbar .actions #btn-project-new{ order:301 !important; }
  body:not(.page-login) .topbar .actions #btn-project-export{ order:302 !important; }
  body:not(.page-login) .topbar .actions label.btn.file:has(#file-project-import){ order:303 !important; }
  body:not(.page-login) .topbar .actions #btn-print{ order:304 !important; }

  body:not(.page-login) .topbar .actions #btn-export{ order:320 !important; }
  body:not(.page-login) .topbar .actions label.btn.file:has(#file-import){ order:321 !important; }
  body:not(.page-login) .topbar .actions #btn-reset{ order:322 !important; }

  body:not(.page-login) .topbar .actions #btn-print,
  body:not(.page-login) .topbar .actions #btn-project-new,
  body:not(.page-login) button[id*="btn-new"],
  body:not(.page-login) button[id*="btn-add"],
  body:not(.page-login) button[id*="btn-build"],
  body:not(.page-login) button[id*="btn-create"]{
    border-color:rgba(235,196,110,.78) !important;
    color:#fffaf0 !important;
    background:linear-gradient(180deg, rgba(255,218,126,.34), rgba(176,122,28,.30)) !important;
    box-shadow:inset 0 1px 0 rgba(255,245,215,.34), 0 7px 16px rgba(70,45,8,.36) !important;
  }

  body:not(.page-login) .topbar .actions #btn-print:hover,
  body:not(.page-login) .topbar .actions #btn-project-new:hover,
  body:not(.page-login) button[id*="btn-new"]:hover,
  body:not(.page-login) button[id*="btn-add"]:hover,
  body:not(.page-login) button[id*="btn-build"]:hover,
  body:not(.page-login) button[id*="btn-create"]:hover{
    background:linear-gradient(180deg, rgba(255,228,150,.45), rgba(191,132,34,.36)) !important;
  }

  @media (max-width:1200px){
    :root{
      --xsc-topbar-btn-width:146px;
    }
  }

  @media (max-width:900px){
    body:not(.page-login) .topbar .actions .btn,
    body:not(.page-login) .topbar .actions a.btn,
    body:not(.page-login) .topbar .actions label.btn{
      width:auto !important;
      min-width:128px !important;
      max-width:none !important;
    }
  }
}


/* Project switch only on lower left row 2026-02-26c */
@media screen {
  body:not(.page-login) .topbar .actions #btn-project-export,
  body:not(.page-login) .topbar .actions label.btn.file:has(#file-project-import),
  body:not(.page-login) .topbar .actions #btn-project-close{
    display:none !important;
  }

  body:not(.page-login) .topbar .actions .project-switch{
    order:900 !important;
    flex:0 0 100% !important;
    width:max-content !important;
    max-width:100% !important;
    margin-top:4px !important;
    margin-left:0 !important;
    align-self:flex-start !important;
  }

  body:not(.page-login) .topbar .actions #btn-lang-toggle{
    order:1000 !important;
    margin-left:auto !important;
  }
}

/* Keep language toggle on upper row; project switch stays alone on lower row */
@media screen {
  body:not(.page-login) .topbar .actions #btn-lang-toggle {
    order: 450 !important;
    margin-left: auto !important;
  }
}

/* Titelblatt field typography unify 2026-02-26d */
@media screen {
  body.page-dispo #sec-title label,
  body.page-dispo #sec-title .form label,
  body.page-dispo #sec-title .row label {
    font-size: 13px !important;
    line-height: 1.3 !important;
    font-weight: 600 !important;
  }

  body.page-dispo #sec-title input,
  body.page-dispo #sec-title select,
  body.page-dispo #sec-title textarea {
    font-size: 14px !important;
    line-height: 1.35 !important;
  }

  body.page-dispo #sec-title input::placeholder,
  body.page-dispo #sec-title textarea::placeholder {
    font-size: 14px !important;
    line-height: 1.35 !important;
  }
}

/* Topbar layout tune: compact project row + user row above 2026-02-26e */
@media screen {
  body:not(.page-login) .topbar .actions .project-toolbar-row,
  body:not(.page-login) .topbar .actions .user-toolbar-row{
    display:flex !important;
    align-items:center !important;
    gap:8px !important;
    min-width:0 !important;
  }

  body:not(.page-login) .topbar .actions .user-toolbar-row{
    order:780 !important;
    margin-left:auto !important;
    justify-content:flex-end !important;
  }

  body:not(.page-login) .topbar .actions .project-toolbar-row{
    order:900 !important;
    flex:0 0 100% !important;
    width:100% !important;
    justify-content:flex-start !important;
    margin-top:4px !important;
  }

  body:not(.page-login) .topbar .actions .project-toolbar-row .project-switch{
    display:flex !important;
    align-items:center !important;
    gap:6px !important;
    flex:0 0 auto !important;
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
    margin:0 !important;
    align-self:center !important;
    order:1 !important;
  }

  body:not(.page-login) .topbar .actions .project-toolbar-row .project-label{
    font-size:12px !important;
    font-weight:700 !important;
    letter-spacing:.02em !important;
  }

  body:not(.page-login) .topbar .actions .project-toolbar-row .project-select{
    width:130px !important;
    min-width:130px !important;
    max-width:130px !important;
    height:34px !important;
    font-size:12px !important;
    padding:0 8px !important;
  }

  body:not(.page-login) .topbar .actions .project-toolbar-row #btn-project-new,
  body:not(.page-login) .topbar .actions .project-toolbar-row #btn-project-export,
  body:not(.page-login) .topbar .actions .project-toolbar-row label.btn.file:has(#file-project-import),
  body:not(.page-login) .topbar .actions .project-toolbar-row #btn-project-close{
    width:132px !important;
    min-width:132px !important;
    max-width:132px !important;
  }

  body:not(.page-login) .topbar .actions .project-toolbar-row #btn-project-export,
  body:not(.page-login) .topbar .actions .project-toolbar-row label.btn.file:has(#file-project-import),
  body:not(.page-login) .topbar .actions .project-toolbar-row #btn-project-close{
    display:inline-flex !important;
  }

  body:not(.page-login) .topbar .actions .project-toolbar-row #btn-project-export{ order:2 !important; }
  body:not(.page-login) .topbar .actions .project-toolbar-row label.btn.file:has(#file-project-import){ order:3 !important; }
  body:not(.page-login) .topbar .actions .project-toolbar-row #btn-project-close{ order:4 !important; }

  body:not(.page-login) .topbar .actions .user-toolbar-row #btn-reset{ order:1 !important; }
  body:not(.page-login) .topbar .actions .user-toolbar-row #btn-lang-toggle{ order:2 !important; }
  body:not(.page-login) .topbar .actions .user-toolbar-row #btn-auth-logout{ order:3 !important; }
  body:not(.page-login) .topbar .actions .user-toolbar-row #auth-user-badge{ order:4 !important; }
}

/* Topbar pixel-perfect sizing 2026-02-26f */
@media screen {
  body:not(.page-login) .topbar .actions{
    align-items:flex-start !important;
    row-gap:6px !important;
    column-gap:8px !important;
  }

  body:not(.page-login) .topbar .actions .user-toolbar-row{
    order:780 !important;
    flex:0 0 auto !important;
    width:max-content !important;
    margin-left:auto !important;
    justify-content:flex-end !important;
    align-items:center !important;
    gap:6px !important;
    align-self:flex-start !important;
  }

  body:not(.page-login) .topbar .actions .user-toolbar-row #btn-reset,
  body:not(.page-login) .topbar .actions .user-toolbar-row #btn-lang-toggle,
  body:not(.page-login) .topbar .actions .user-toolbar-row #btn-auth-logout{
    width:112px !important;
    min-width:112px !important;
    max-width:112px !important;
    height:36px !important;
    min-height:36px !important;
    font-size:12px !important;
    padding:0 10px !important;
  }

  body:not(.page-login) .topbar .actions .user-toolbar-row #auth-user-badge{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    height:36px !important;
    min-height:36px !important;
    min-width:196px !important;
    max-width:240px !important;
    padding:0 12px !important;
    font-size:12px !important;
    line-height:1 !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }

  body:not(.page-login) .topbar .actions .project-toolbar-row{
    order:900 !important;
    flex:0 0 100% !important;
    width:100% !important;
    justify-content:flex-start !important;
    align-items:center !important;
    gap:6px !important;
    margin-top:4px !important;
  }

  body:not(.page-login) .topbar .actions .project-toolbar-row .project-switch{
    gap:6px !important;
  }

  body:not(.page-login) .topbar .actions .project-toolbar-row .project-label{
    width:56px !important;
    min-width:56px !important;
    max-width:56px !important;
    text-align:right !important;
    font-size:12px !important;
  }

  body:not(.page-login) .topbar .actions .project-toolbar-row .project-select{
    width:124px !important;
    min-width:124px !important;
    max-width:124px !important;
    height:36px !important;
    min-height:36px !important;
    font-size:12px !important;
    padding:0 8px !important;
  }

  body:not(.page-login) .topbar .actions .project-toolbar-row #btn-project-new{
    width:122px !important;
    min-width:122px !important;
    max-width:122px !important;
    height:36px !important;
    min-height:36px !important;
    font-size:12px !important;
    padding:0 10px !important;
  }

  body:not(.page-login) .topbar .actions .project-toolbar-row #btn-project-export,
  body:not(.page-login) .topbar .actions .project-toolbar-row label.btn.file:has(#file-project-import),
  body:not(.page-login) .topbar .actions .project-toolbar-row #btn-project-close{
    width:136px !important;
    min-width:136px !important;
    max-width:136px !important;
    height:36px !important;
    min-height:36px !important;
    font-size:12px !important;
    padding:0 10px !important;
  }
}

@media screen and (max-width: 1180px){
  body:not(.page-login) .topbar .actions .user-toolbar-row #btn-reset,
  body:not(.page-login) .topbar .actions .user-toolbar-row #btn-lang-toggle,
  body:not(.page-login) .topbar .actions .user-toolbar-row #btn-auth-logout{
    width:104px !important;
    min-width:104px !important;
    max-width:104px !important;
  }

  body:not(.page-login) .topbar .actions .user-toolbar-row #auth-user-badge{
    min-width:176px !important;
    max-width:220px !important;
  }

  body:not(.page-login) .topbar .actions .project-toolbar-row .project-select{
    width:116px !important;
    min-width:116px !important;
    max-width:116px !important;
  }

  body:not(.page-login) .topbar .actions .project-toolbar-row #btn-project-new{
    width:116px !important;
    min-width:116px !important;
    max-width:116px !important;
  }

  body:not(.page-login) .topbar .actions .project-toolbar-row #btn-project-export,
  body:not(.page-login) .topbar .actions .project-toolbar-row label.btn.file:has(#file-project-import),
  body:not(.page-login) .topbar .actions .project-toolbar-row #btn-project-close{
    width:128px !important;
    min-width:128px !important;
    max-width:128px !important;
  }
}

/* Topbar right-edge flush alignment 2026-02-26g */
@media screen {
  body:not(.page-login) .topbar .actions .user-toolbar-row{
    margin-left:auto !important;
    margin-right:0 !important;
    justify-content:flex-end !important;
    align-self:flex-start !important;
  }

  body:not(.page-login) .topbar .actions .project-toolbar-row{
    flex:0 0 100% !important;
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    justify-content:flex-end !important;
    align-items:center !important;
    padding-right:0 !important;
  }

  body:not(.page-login) .topbar .actions .project-toolbar-row .project-switch{
    margin-left:0 !important;
  }
}

/* Topbar right-edge micro tune 2026-02-26h */
@media screen {
  body:not(.page-login) .topbar .actions{
    --xsc-right-rail-nudge:2px;
  }

  body:not(.page-login) .topbar .actions .user-toolbar-row{
    margin-right:var(--xsc-right-rail-nudge) !important;
  }

  body:not(.page-login) .topbar .actions .project-toolbar-row{
    padding-right:var(--xsc-right-rail-nudge) !important;
  }
}

/* Topbar left/right rail finalize 2026-02-26i */
@media screen {
  body:not(.page-login) .topbar .actions{
    --xsc-right-rail-nudge:2px;
    align-items:flex-start !important;
  }

  /* Projektblock links, gleiche linke Kante wie Nav-Buttons */
  body:not(.page-login) .topbar .actions .project-toolbar-row{
    order:900 !important;
    flex:0 0 100% !important;
    width:100% !important;
    max-width:100% !important;
    justify-content:flex-start !important;
    align-items:center !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
    gap:6px !important;
  }

  body:not(.page-login) .topbar .actions .project-toolbar-row .project-switch,
  body:not(.page-login) .topbar .actions .project-toolbar-row #btn-project-export,
  body:not(.page-login) .topbar .actions .project-toolbar-row label.btn.file:has(#file-project-import),
  body:not(.page-login) .topbar .actions .project-toolbar-row #btn-project-close{
    margin-left:0 !important;
    margin-right:0 !important;
  }

  /* JSON-Import rechts andocken */
  body:not(.page-login) .topbar .actions #btn-export{
    order:770 !important;
    margin-left:auto !important;
    margin-right:0 !important;
  }

  body:not(.page-login) .topbar .actions label.btn.file:has(#file-import){
    order:771 !important;
    margin-left:0 !important;
    margin-right:var(--xsc-right-rail-nudge) !important;
  }

  /* User/Admin rechts, exakt gleiche rechte Kante wie Import JSON */
  body:not(.page-login) .topbar .actions .user-toolbar-row{
    order:780 !important;
    flex:0 0 auto !important;
    width:max-content !important;
    margin-left:8px !important;
    margin-right:var(--xsc-right-rail-nudge) !important;
    justify-content:flex-end !important;
    align-items:center !important;
  }
}

/* Topbar rails final lock 2026-02-26j */
@media screen {
  body:not(.page-login) .topbar .actions{
    --xsc-left-rail:0px;
    --xsc-right-rail:2px;
    align-items:flex-start !important;
  }

  /* Project controls: exact left rail */
  body:not(.page-login) .topbar .actions .project-toolbar-row{
    order:900 !important;
    flex:0 0 100% !important;
    width:100% !important;
    max-width:100% !important;
    justify-content:flex-start !important;
    align-items:center !important;
    gap:6px !important;
    margin:4px 0 0 0 !important;
    padding-left:var(--xsc-left-rail) !important;
    padding-right:0 !important;
  }

  body:not(.page-login) .topbar .actions .project-toolbar-row .project-switch,
  body:not(.page-login) .topbar .actions .project-toolbar-row #btn-project-export,
  body:not(.page-login) .topbar .actions .project-toolbar-row label.btn.file:has(#file-project-import),
  body:not(.page-login) .topbar .actions .project-toolbar-row #btn-project-close{
    margin-left:0 !important;
    margin-right:0 !important;
    align-self:center !important;
  }

  /* Right rail: User/Admin + Import JSON */
  body:not(.page-login) .topbar .actions .user-toolbar-row{
    order:775 !important;
    flex:0 0 auto !important;
    width:max-content !important;
    justify-content:flex-end !important;
    align-items:center !important;
    margin-left:8px !important;
    margin-right:var(--xsc-right-rail) !important;
    align-self:flex-start !important;
  }

  body:not(.page-login) .topbar .actions #btn-export{
    order:770 !important;
    margin-left:auto !important;
    margin-right:0 !important;
    align-self:flex-start !important;
  }

  body:not(.page-login) .topbar .actions label.btn.file:has(#file-import){
    order:780 !important;
    margin-left:0 !important;
    margin-right:var(--xsc-right-rail) !important;
    align-self:flex-start !important;
  }
}

/* Topbar redistribution lock 2026-02-26k */
@media screen {
  body:not(.page-login) .topbar .actions{
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:flex-start !important;
    justify-content:flex-start !important;
    gap:8px !important;
  }

  body:not(.page-login) .topbar .actions .top-toolbar-row{
    order:100 !important;
    flex:1 1 100% !important;
    width:100% !important;
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:8px !important;
    margin:0 !important;
    padding:0 !important;
  }

  body:not(.page-login) .topbar .actions .top-toolbar-row #btn-print{
    order:1 !important;
    margin-left:0 !important;
  }

  body:not(.page-login) .topbar .actions .top-toolbar-row a.group-nav{ order:10 !important; }
  body:not(.page-login) .topbar .actions .top-toolbar-row #btn-export{ order:60 !important; margin-left:auto !important; }
  body:not(.page-login) .topbar .actions .top-toolbar-row label.btn.file:has(#file-import){ order:61 !important; margin-right:0 !important; }
  body:not(.page-login) .topbar .actions .top-toolbar-row #btn-reset{ order:62 !important; margin-left:0 !important; }
  body:not(.page-login) .topbar .actions .top-toolbar-row #btn-lang-toggle{ order:80 !important; margin-left:auto !important; }
  body:not(.page-login) .topbar .actions .top-toolbar-row #btn-auth-logout{ order:90 !important; margin-left:0 !important; }
  body:not(.page-login) .topbar .actions .top-toolbar-row #btn-auth-users{ order:95 !important; margin-left:0 !important; }
  body:not(.page-login) .topbar .actions .top-toolbar-row #auth-user-badge{ order:100 !important; margin-left:0 !important; }

  body:not(.page-login) .topbar .actions .top-toolbar-row .btn,
  body:not(.page-login) .topbar .actions .top-toolbar-row a.btn,
  body:not(.page-login) .topbar .actions .top-toolbar-row label.btn.file{
    width:156px !important;
    min-width:156px !important;
    max-width:156px !important;
    height:38px !important;
    min-height:38px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:0 12px !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }

  body:not(.page-login) .topbar .actions .top-toolbar-row #auth-user-badge{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:156px !important;
    min-width:156px !important;
    max-width:156px !important;
    height:38px !important;
    min-height:38px !important;
    padding:0 12px !important;
    font-size:12px !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }

  body:not(.page-login) .topbar .actions .project-toolbar-row{
    order:200 !important;
    flex:1 1 100% !important;
    width:100% !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:8px !important;
    margin:0 !important;
    padding:0 !important;
  }

  body:not(.page-login) .topbar .actions .project-toolbar-row .project-switch{ order:1 !important; margin:0 !important; }
  body:not(.page-login) .topbar .actions .project-toolbar-row #btn-project-export{ order:2 !important; }
  body:not(.page-login) .topbar .actions .project-toolbar-row label.btn.file:has(#file-project-import){ order:3 !important; }
  body:not(.page-login) .topbar .actions .project-toolbar-row #btn-project-close{ order:4 !important; }

  body:not(.page-login) .topbar .actions .project-toolbar-row #btn-project-export,
  body:not(.page-login) .topbar .actions .project-toolbar-row label.btn.file:has(#file-project-import),
  body:not(.page-login) .topbar .actions .project-toolbar-row #btn-project-close{
    width:156px !important;
    min-width:156px !important;
    max-width:156px !important;
    height:38px !important;
    min-height:38px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    padding:0 12px !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }

  body:not(.page-login) .topbar .actions .project-toolbar-row .project-switch{
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
    display:flex !important;
    align-items:center !important;
    gap:6px !important;
    padding:0 !important;
  }

  body:not(.page-login) .topbar .actions .project-toolbar-row .project-label{
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
    text-align:left !important;
  }

  body:not(.page-login) .topbar .actions .project-toolbar-row .project-select{
    width:156px !important;
    min-width:156px !important;
    max-width:156px !important;
    height:38px !important;
    min-height:38px !important;
    padding:0 10px !important;
  }

  body:not(.page-login) .topbar .actions .project-toolbar-row #btn-project-new{
    width:156px !important;
    min-width:156px !important;
    max-width:156px !important;
    height:38px !important;
    min-height:38px !important;
    padding:0 12px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
  }
}

/* Topbar right rail alignment 2026-02-26l */
@media screen and (min-width: 1500px){
  body:not(.page-login) .topbar .actions .top-toolbar-row:has(#btn-print){
    display:grid !important;
    grid-template-columns:repeat(6, 156px) !important;
    grid-auto-rows:38px !important;
    column-gap:8px !important;
    row-gap:8px !important;
    width:max-content !important;
    flex:0 0 auto !important;
    margin:0 !important;
    padding:0 !important;
    justify-items:stretch !important;
    align-items:stretch !important;
  }

  body:not(.page-login) .topbar .actions .top-toolbar-row:has(#btn-print) > .btn,
  body:not(.page-login) .topbar .actions .top-toolbar-row:has(#btn-print) > a.btn,
  body:not(.page-login) .topbar .actions .top-toolbar-row:has(#btn-print) > label.btn.file,
  body:not(.page-login) .topbar .actions .top-toolbar-row:has(#btn-print) > #auth-user-badge{
    margin:0 !important;
    width:156px !important;
    min-width:156px !important;
    max-width:156px !important;
  }

  body:not(.page-login) .topbar .actions .top-toolbar-row:has(#btn-print) #btn-print{ grid-column:1; grid-row:1; }
  body:not(.page-login) .topbar .actions .top-toolbar-row:has(#btn-print) a.group-nav[href$="XSC_Dispo_easy.html"]{ grid-column:2; grid-row:1; }
  body:not(.page-login) .topbar .actions .top-toolbar-row:has(#btn-print) a.group-nav[href$="kostenvoranschlag.html"]{ grid-column:3; grid-row:1; }
  body:not(.page-login) .topbar .actions .top-toolbar-row:has(#btn-print) a.group-nav[href$="speakers-db.html"]{ grid-column:4; grid-row:1; }
  body:not(.page-login) .topbar .actions .top-toolbar-row:has(#btn-print) a.group-nav[href$="mitarbeiter-db.html"]{ grid-column:5; grid-row:1; }
  body:not(.page-login) .topbar .actions .top-toolbar-row:has(#btn-print) a.group-nav[href$="kalender.html"]{ grid-column:6; grid-row:1; }

  body:not(.page-login) .topbar .actions .top-toolbar-row:has(#btn-print) a.group-nav[href$="takes.html"]{ grid-column:1; grid-row:2; }
  body:not(.page-login) .topbar .actions .top-toolbar-row:has(#btn-print) a.group-nav[href$="timeline.html"]{ grid-column:2; grid-row:2; }
  body:not(.page-login) .topbar .actions .top-toolbar-row:has(#btn-print) a.group-nav[href$="dubcard.html"]{ grid-column:3; grid-row:2; }
  body:not(.page-login) .topbar .actions .top-toolbar-row:has(#btn-print) a.group-nav[href$="abrechnung.html"]{ grid-column:4; grid-row:2; }
  body:not(.page-login) .topbar .actions .top-toolbar-row:has(#btn-print) #btn-export{ grid-column:5; grid-row:2; }
  body:not(.page-login) .topbar .actions .top-toolbar-row:has(#btn-print) label.btn.file:has(#file-import){ grid-column:6; grid-row:2; }

  body:not(.page-login) .topbar .actions .top-toolbar-row:has(#btn-print) #btn-reset{ grid-column:1; grid-row:3; }
  body:not(.page-login) .topbar .actions .top-toolbar-row:has(#btn-print) #btn-lang-toggle{ grid-column:3; grid-row:3; }
  body:not(.page-login) .topbar .actions .top-toolbar-row:has(#btn-print) #btn-auth-logout{ grid-column:4; grid-row:3; }
  body:not(.page-login) .topbar .actions .top-toolbar-row:has(#btn-print) #btn-auth-users{ grid-column:5; grid-row:3; }
  body:not(.page-login) .topbar .actions .top-toolbar-row:has(#btn-print) #auth-user-badge{ grid-column:6; grid-row:3; }
}



/* Project select: adapt to current project name without pushing the menu too far */
body:not(.page-login) .topbar .project-select,
body:not(.page-login) .topbar .actions .project-toolbar-row .project-select{
  width:auto !important;
  min-width:170px !important;
  max-width:360px !important;
}
