:root{
    --blau:#00AACD;
    --blaugrau:#6C8992;
    --gelb:#EEC43D;
    --dark:#1A1A1A;
    --grey:#6b6b6b;
    --lightgrey:#e4e6e8;
    --bg:#f5f6f7;
    --card:#ffffff;
    --wasser:#2A9D8F;
    --tirol:#6A4C93;
    --alpin:#E76F51;
    --dolomiten:#C9A227;
    --venedig:#D62828;
    --green:#2E7D5B;
    --red:#C23B3B;
    --accent:#ff5e52;
    --accent-dark:#d84a40;
    --content-pad-x:42px;
    --content-pad-top:34px;
    --sidebar-w:250px;
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,Helvetica,sans-serif;
    background:var(--bg);
    color:var(--dark);
    line-height:1.5;
    /* Das ganze Tool ist mit lauter festen px-Schriftgroessen gebaut (kein
       rem/em-System) -- eine einzelne "html{font-size:...}"-Aenderung wuerde
       also nirgends greifen. "zoom" skaliert stattdessen die komplette Seite
       (Schrift UND Abstaende/Layout gleichermassen, inkl. Sidebar, Karten,
       Chat-Panel) gleichmaessig hoch, ohne dass jede einzelne Regel im
       Stylesheet angefasst werden muss. Wert bei Bedarf anpassen (1.0 = aus).
       17.08.2026: von 1.1 auf 1.21 erhoeht (nochmal +10%, Kundenwunsch).
    */
    zoom:1.21;
  }
  h1,h2,h3,h4,.nav a,.badge,.stat-label,.chip,.tab-label,button,.btn{
    font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,Helvetica,sans-serif;
  }

  /* Seiten-spezifische zusaetzliche Vergroesserung (Kundenwunsch 17.08.2026):
     "Wettbewerb & Positionierung" nochmal 20% groesser als der globale
     body-zoom (1.21) -- wirkt zusaetzlich obendrauf, nicht anstelle davon. */
  #p-wettbewerb{zoom:1.2;}
  /* "Social Media Formate" ebenfalls nochmal groesser als der globale
     body-zoom (Kundenwunsch 17.08.2026). */
  #p-smformate{zoom:1.2;}
  .app{display:flex;min-height:100vh;}

  /* SIDEBAR */
  .sidebar{
    width:var(--sidebar-w);flex-shrink:0;
    background:var(--dark);
    color:#fff;
    padding:24px 0;
    position:sticky;top:0;height:100vh;overflow-y:auto;
    z-index:60;
    transition:transform .25s ease;
  }
  .menu-toggle{
    display:none;align-items:center;justify-content:center;
    width:34px;height:34px;border-radius:8px;border:1px solid var(--lightgrey);background:#fff;cursor:pointer;
    color:var(--dark);flex-shrink:0;
  }
  .menu-toggle .icon{width:18px;height:18px;}
  .menu-toggle:hover{background:#f2f3f4;}

  /* ---- Basis fuer alle linearen Icons im Tool (SVG-Sprite oben im <body>) ---- */
  .icon{width:18px;height:18px;flex-shrink:0;vertical-align:middle;}
  button .icon, .btn .icon{width:15px;height:15px;margin-right:6px;vertical-align:-2px;}
  .icon-only .icon{margin-right:0;}
  .sidebar-backdrop{display:none;position:fixed;inset:0;background:rgba(20,20,20,.4);z-index:55;}
  .sidebar-backdrop.show{display:block;}
  .brand{padding:0 20px 20px 20px;border-bottom:1px solid #333;margin-bottom:14px;}
  .brand img{width:100%;max-width:190px;height:auto;display:block;margin-bottom:10px;}
  .brand .name{font-size:17px;font-weight:700;letter-spacing:0.5px;}
  .brand .sub{font-size:11.5px;color:#a9a9a9;margin-top:2px;}
  nav.navlist{display:flex;flex-direction:column;padding:6px 10px;}
  nav.navlist a{
    display:flex;align-items:center;gap:10px;
    color:#cfcfcf;text-decoration:none;
    padding:9px 12px;border-radius:7px;
    font-size:13.5px;margin-bottom:2px;
    cursor:pointer;
    border:none;background:none;text-align:left;width:100%;
    border-bottom:1px solid rgba(255,255,255,.07);
  }
  nav.navlist a:last-of-type{border-bottom:none;}
  nav.navlist a:has(+ .nav-group-label){border-bottom:none;}
  nav.navlist a .dot{width:8px;height:8px;border-radius:50%;background:#666;flex-shrink:0;}
  nav.navlist a .nav-ic{
    width:28px;height:28px;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;color:inherit;
    transition:transform .15s ease;
  }
  nav.navlist a .nav-ic .icon{width:18px;height:18px;}
  .nav-group-label{
    font-family:Arial,sans-serif;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;
    color:#7a7a7a;padding:14px 12px 6px 12px;
  }
  .nav-group-label:first-child{padding-top:4px;}
  nav.navlist a:hover{background:#292929;color:#fff;}
  nav.navlist a:hover .nav-ic{transform:scale(1.06);}
  nav.navlist a.active{background:var(--accent);color:#fff;border-bottom-color:transparent;}
  nav.navlist a.active .dot{background:#fff;}
  .sidebar-footer{padding:16px 20px;font-size:10.5px;color:#888;border-top:1px solid #333;margin-top:14px;}

  /* Mount-Punkt fuer die Menueleiste (Guideline-PDF, Drucken, Export/Import, Zuruecksetzen, Login-Badge),
     wird per JS aus der Toolbar hierher verschoben, sobald die Sidebar zum Off-Canvas-Menue wird
     (siehe cockpit.js layoutToolbarForViewport). Leer/unsichtbar auf dem Desktop. */
  .sidebar-actions{padding:14px 20px 4px 20px;border-top:1px solid #333;margin-top:6px;}
  .sidebar-actions:empty{display:none;}
  .sidebar-actions .tb-right{display:flex;flex-direction:column;align-items:stretch;gap:8px;}
  .sidebar-actions .tb-divider{display:none;}
  .sidebar-actions .btn{width:100%;justify-content:flex-start;background:#2a2a2a;color:#fff;border-color:#3a3a3a;padding:11px 14px;}
  .sidebar-actions .btn:hover{background:#333;}
  .sidebar-actions .btn.primary{background:var(--accent);border-color:var(--accent);}
  .sidebar-actions .btn.primary:hover{background:var(--accent-dark);}
  /* Im Off-Canvas-Menue ist genug Platz -- Dropdown-Mechanik abschalten, Rolle + Abmelden immer sichtbar */
  .sidebar-actions .user-menu-btn{width:100%;justify-content:flex-start;background:#2a2a2a;color:#fff;border-color:#3a3a3a;padding:11px 14px;border-radius:9px;cursor:default;}
  .sidebar-actions .user-menu-btn .icon.chevron{display:none;}
  .sidebar-actions .user-menu-name{color:#fff;}
  .sidebar-actions .user-menu-dropdown{display:block;position:static;box-shadow:none;border:none;background:transparent;margin-top:2px;}
  .sidebar-actions .user-menu-role{color:#9a9a9a;border-bottom:none;padding:6px 14px 2px 14px;}
  .sidebar-actions .user-menu-item{color:var(--gelb);padding:8px 14px;}
  .sidebar-actions .user-menu-item .icon{color:var(--gelb);}
  .sidebar-actions .btn .btn-label{display:inline;}

  /* MAIN */
  .content{flex:1;min-width:0;padding:var(--content-pad-top) var(--content-pad-x) 80px var(--content-pad-x);max-width:none;width:100%;}
  .panel{display:none;}
  .panel.active{display:block;animation:fadein .25s ease;}
  @keyframes fadein{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}

  .pagehead{margin-bottom:26px;}
  .pagehead h1{font-size:26px;margin:0 0 6px 0;color:var(--dark);}
  .pagehead p.lead{color:var(--grey);font-size:15px;margin:0;max-width:760px;}

  .section-block{margin-bottom:38px;}
  .section-block h2{
    font-size:15px;text-transform:uppercase;letter-spacing:0.6px;
    color:var(--blaugrau);border-bottom:2px solid var(--lightgrey);
    padding-bottom:8px;margin:0 0 16px 0;
  }
  .section-block h3{font-size:16px;color:var(--dark);margin:20px 0 10px 0;}

  .card{background:var(--card);border-radius:14px;padding:20px 22px;box-shadow:0 1px 3px rgba(0,0,0,0.07);}
  .card-half{max-width:50%;}
  @media(max-width:900px){.card-half{max-width:100%;}}
  .grid{display:grid;gap:16px;}
  .grid-2{grid-template-columns:1fr 1fr;}
  .grid-3{grid-template-columns:repeat(3,1fr);}
  .grid-4{grid-template-columns:repeat(4,1fr);}
  @media(max-width:1300px){.grid-4{grid-template-columns:repeat(2,1fr);}}
  @media(max-width:900px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr 1fr;}}
  @media(max-width:600px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr;}}

  ul.plain{margin:0;padding-left:20px;}
  ul.plain li{margin-bottom:8px;font-size:15.5px;}
  /* "+ Punkt hinzufuegen" -- am Ende jeder editierbaren Liste, damit neue Aufzaehlungspunkte
     ergaenzt werden koennen (nicht nur bestehende Punkte bearbeiten) */
  li.add-li-btn{
    list-style:none;margin-left:-20px;margin-top:2px;margin-bottom:0;
    color:var(--blau);font-size:13px;font-weight:600;cursor:pointer;
    padding:3px 8px;border-radius:6px;display:inline-block;
    border:1px dashed transparent;transition:background .15s ease,border-color .15s ease;
  }
  li.add-li-btn:hover{background:#eef7f9;border-color:var(--blau);}
  li[data-added-list]{outline-offset:2px;}
  p{font-size:15.5px;}

  /* KI-Vorschlag-Button neben "+ Punkt hinzufuegen" */
  li.ai-suggest-btn{
    margin-left:6px;color:#7a3fc9;border-color:transparent;
  }
  li.ai-suggest-btn .icon{width:13px;height:13px;margin-right:3px;vertical-align:-2px;}
  li.ai-suggest-btn:hover{background:#f4eefb;border-color:#7a3fc9;}
  li.ai-suggest-btn.busy{opacity:.65;pointer-events:none;}
  li.ai-suggest-btn.disabled{opacity:.4;cursor:not-allowed;pointer-events:none;}

  /* Zauberstab-Toolbar: schwebt beim Fokussieren editierbaren Textes ein */
  .ai-rewrite-toolbar{
    position:fixed;z-index:60;display:none;gap:4px;
    background:#221933;border-radius:10px;padding:5px;
    box-shadow:0 8px 22px rgba(0,0,0,.28);
  }
  .ai-rewrite-toolbar.open{display:flex;}
  .ai-rewrite-toolbar button{
    background:transparent;border:none;color:#e9ddfb;font-size:12px;font-weight:600;
    padding:6px 10px;border-radius:7px;cursor:pointer;white-space:nowrap;
    display:flex;align-items:center;transition:background .12s ease;
  }
  .ai-rewrite-toolbar button .icon{width:13px;height:13px;margin-right:5px;color:#c9a6ff;}
  .ai-rewrite-toolbar button:hover:not(:disabled){background:#382952;}
  .ai-rewrite-toolbar button:disabled{opacity:.6;cursor:default;}
  @media(max-width:640px){
    .ai-rewrite-toolbar{display:none !important;} /* auf Mobile kein Platz fuer Hover-Toolbar, Zauberstab bleibt Desktop-Feature */
  }

  .chip{
    display:inline-block;padding:3px 10px;border-radius:20px;
    font-size:11px;font-weight:700;color:#fff;letter-spacing:.3px;
  }

  /* HERO */
  .hero{
    position:relative;border-radius:14px;overflow:hidden;height:280px;
    background-size:cover;background-position:center;
    display:flex;align-items:flex-end;margin-bottom:26px;
  }
  .hero::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.72) 0%, rgba(0,0,0,.15) 55%, rgba(0,0,0,0) 100%);}
  .hero .hero-logo{
    display:none;
    position:absolute;top:18px;right:20px;z-index:3;
    height:58px;width:auto;
    filter:drop-shadow(0 1px 2px rgba(0,0,0,.45)) drop-shadow(0 0 10px rgba(0,0,0,.25));
  }
  .hero .herotext{position:relative;z-index:2;color:#fff;padding:26px 30px;}
  .hero .herotext .tag{font-family:Arial,sans-serif;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gelb);margin-bottom:8px;display:block;}
  .hero .herotext h1{font-size:30px;margin:0;}

  /* STAT CARDS */
  .stat-card{background:var(--card);border-radius:14px;padding:16px 18px;box-shadow:0 1px 3px rgba(0,0,0,.07);}
  .stat-card .stat-icon{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;color:#fff;margin-bottom:9px;}
  .stat-card .stat-icon .icon{width:14px;height:14px;}
  .stat-card .stat-num{font-family:Arial,sans-serif;font-size:24px;font-weight:800;color:var(--blau);}
  .stat-card .stat-num.warn{color:var(--red);}
  .stat-card .stat-label{font-size:11.5px;color:var(--grey);margin-top:3px;line-height:1.35;}
  .stat-card .stat-note{font-size:10.5px;color:#999;margin-top:4px;}

  .callout{
    border-left:4px solid var(--gelb);background:#fffaf0;
    padding:14px 18px;border-radius:0 8px 8px 0;font-size:13.5px;
  }
  .callout.red{border-left-color:var(--red);background:#fdf3f2;}
  .callout.blue{border-left-color:var(--blau);background:#eef9fb;}
  .callout b{display:block;margin-bottom:3px;font-family:Arial,sans-serif;font-size:12.5px;text-transform:uppercase;letter-spacing:.3px;}
  .callout b .icon{width:15px;height:15px;margin-right:6px;vertical-align:-3px;}

  /* KAMPAGNEN-STECKBRIEF -- Icon-Tiles statt Fließtext-Karten */
  .grid-5{grid-template-columns:repeat(5,1fr);}
  @media(max-width:1300px){.grid-5{grid-template-columns:repeat(3,1fr);}}
  @media(max-width:900px){.grid-5{grid-template-columns:1fr 1fr;}}
  @media(max-width:600px){.grid-5{grid-template-columns:1fr;}}
  .brief-tile{background:var(--card);border-radius:14px;padding:16px 16px;box-shadow:0 1px 3px rgba(0,0,0,.07);}
  .brief-tile .bt-icon{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#fff;margin-bottom:10px;}
  .brief-tile .bt-icon .icon{width:17px;height:17px;}
  .brief-tile .bt-label{font-family:Arial,sans-serif;font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--grey);margin-bottom:4px;}
  .brief-tile p{margin:0;font-size:13.5px;line-height:1.42;}

  /* LEISTUNGSUMFANG (Überblick) -- Icon-Badge auf Cluster-Card */
  .cluster-card .cc-icon{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#fff;margin-bottom:10px;}
  .cluster-card .cc-icon .icon{width:17px;height:17px;}

  /* WOHER DIE INHALTE STAMMEN -- Doc-Cards statt Liste */
  .doc-card{display:flex;gap:12px;background:var(--card);border-radius:12px;padding:14px 16px;box-shadow:0 1px 3px rgba(0,0,0,.07);}
  .doc-card .dc-icon{width:36px;height:36px;border-radius:9px;background:#eef2f3;color:var(--blaugrau);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  .doc-card .dc-icon .icon{width:18px;height:18px;}
  .doc-card b{display:block;font-size:13.5px;margin-bottom:2px;}
  .doc-card p{margin:0;font-size:12.5px;color:var(--grey);line-height:1.42;}

  /* STARTSEITE -- Kachel-Navigation (Inhaltsverzeichnis) und Termin-Zeilen */
  .qn-tile{cursor:pointer;transition:transform .12s ease, box-shadow .12s ease;}
  .qn-tile:hover{transform:translateY(-2px);box-shadow:0 4px 14px rgba(0,0,0,.12);}
  .ss-termin-row{display:flex;align-items:center;gap:16px;background:var(--card);border-radius:12px;padding:14px 18px;box-shadow:0 1px 3px rgba(0,0,0,.07);margin-bottom:10px;}
  .ss-termin-row .ss-termin-date{flex-shrink:0;min-width:150px;font-family:Arial,sans-serif;font-weight:700;font-size:13px;color:var(--blau);}
  .ss-termin-row .ss-termin-title{font-weight:600;font-size:14px;}

  /* Claim card */
  .claim-card{border-radius:14px;overflow:hidden;background:var(--card);box-shadow:0 1px 3px rgba(0,0,0,.07);}
  .claim-card .claim-head{padding:14px 18px;color:#fff;}
  .claim-card .claim-head .num{font-family:Arial,sans-serif;font-size:11px;opacity:.85;}
  .claim-card .claim-head .quote{font-weight:600;font-size:17px;margin-top:4px;}
  .claim-card .claim-body{padding:14px 18px;}
  .claim-card .claim-body img{width:100%;border-radius:6px;margin-bottom:10px;display:block;}
  .claim-card .claim-body .lbl{font-family:Arial,sans-serif;font-size:10.5px;text-transform:uppercase;color:var(--grey);letter-spacing:.4px;margin-top:8px;}
  .claim-card .claim-body .lbl:first-child{margin-top:0;}
  .claim-card .claim-body p{margin:3px 0 0 0;font-size:13.5px;}

  /* persona accordion */
  details.acc{background:var(--card);border-radius:8px;margin-bottom:8px;box-shadow:0 1px 3px rgba(0,0,0,.06);}
  details.acc summary{padding:12px 16px;cursor:pointer;font-family:Arial,sans-serif;font-size:13.5px;font-weight:700;color:var(--dark);list-style:none;display:flex;align-items:center;justify-content:space-between;}
  details.acc summary::-webkit-details-marker{display:none;}
  details.acc summary::after{content:"+";font-size:18px;color:var(--blaugrau);}
  details.acc[open] summary::after{content:"–";}
  details.acc .acc-body{padding:0 16px 14px 16px;font-size:13.5px;}

  /* sujets grid */
  .sujet-card{background:var(--card);border-radius:14px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.07);}
  .sujet-card img{width:100%;display:block;}
  .sujet-card .cap{padding:10px 14px;font-size:12.5px;color:var(--grey);}
  .sujet-card .cap b{color:var(--dark);}

  .swatch{border-radius:8px;padding:14px 16px;color:#fff;}
  .swatch.dark-txt{color:#1a1a1a;}
  .swatch .swname{font-family:Arial,sans-serif;font-weight:700;font-size:13px;}
  .swatch .swcode{font-size:11px;opacity:.9;margin-top:4px;}

  /* format cards (Social Media Formate) -- Aspect-Ratio-Swatch statt Tabellenzeile */
  .format-card{display:flex;gap:14px;align-items:flex-start;}
  .format-card .fc-swatch{border-radius:7px;flex-shrink:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);}
  .format-card .fc-body{flex:1;min-width:0;}
  .format-card h4{margin:0;font-size:14.5px;}
  .format-card .fc-dims{font-size:11.5px;color:var(--grey);margin-top:2px;font-family:Arial,sans-serif;}
  .format-card .fc-desc{font-size:13px;margin:9px 0 8px;color:var(--dark);}
  .format-card .fc-len{font-size:11px;color:var(--grey);margin-top:2px;}
  .format-card .fc-len b{color:var(--blaugrau);}

  /* Aufklappbare Abschnitte (Text-Tonalitaet, Kampagnengestaltung, Social Media Formate,
     Budget-Unteransichten) -- beim Reinkommen sind nur die Bereichs-Titel sichtbar
     (Ueberblick), Klick auf einen Titel blendet den Inhalt ein. Nativer <details>/<summary>,
     kein JS noetig. */
  details.sec-acc{margin-bottom:12px;}
  details.sec-acc > summary{
    position:relative;
    cursor:pointer;list-style:none;
    display:flex;align-items:center;justify-content:space-between;gap:14px;
    background:var(--card);border-radius:12px;padding:17px 22px;
    box-shadow:0 1px 3px rgba(0,0,0,.08);
    transition:background .15s ease, box-shadow .15s ease;
  }
  /* Ziehgriff zum Umsortieren der Sections per Drag-and-Drop -- h2 bekommt flex:1
     und bleibt dadurch linksbuendig wie zuvor; der Griff sitzt als normales,
     nicht absolut positioniertes Flex-Element direkt neben dem +/--Toggle,
     kein Extra-Padding noetig, keine Verschiebung des Titels. */
  details.sec-acc > summary h2{flex:1;}
  .drag-handle{
    flex-shrink:0;display:flex;align-items:center;justify-content:center;
    width:26px;height:26px;border-radius:6px;color:var(--grey);
    cursor:grab;transition:background .15s ease,color .15s ease;
  }
  .drag-handle:hover{background:#e2eef1;color:var(--blau);}
  .drag-handle:active{cursor:grabbing;}
  .drag-handle .icon{width:16px;height:16px;}
  /* Stift zum Umbenennen des Section-Titels -- gleiche Optik wie der Ziehgriff, sitzt
     rechts daneben (also zwischen Ziehgriff und +/--Toggle). border:none/background
     ueberschreiben die Browser-Defaults fuer <button>. */
  .sec-title-edit-btn{
    flex-shrink:0;display:flex;align-items:center;justify-content:center;
    width:26px;height:26px;border-radius:6px;color:var(--grey);
    border:none;background:transparent;padding:0;cursor:pointer;
    transition:background .15s ease,color .15s ease;
  }
  .sec-title-edit-btn:hover{background:#e2eef1;color:var(--blau);}
  .sec-title-edit-btn .icon{width:14px;height:14px;}
  details.sec-acc > summary h2[contenteditable="true"]{cursor:text;}
  details.section-block.dragging-section{opacity:.45;}
  details.section-block.dragging-section > summary{box-shadow:0 6px 18px rgba(0,0,0,.18);}
  details.sec-acc > summary::-webkit-details-marker{display:none;}
  details.sec-acc > summary::marker{content:"";}
  details.sec-acc > summary h2{
    font-size:15px;text-transform:uppercase;letter-spacing:0.6px;
    color:var(--blaugrau);margin:0;border-bottom:none;padding-bottom:0;
    cursor:pointer;transition:color .15s ease;
  }
  details.sec-acc > summary:hover{
    background:#eef4f6;box-shadow:0 4px 14px rgba(0,0,0,.1);
  }
  details.sec-acc > summary:hover h2{color:var(--blau);}
  details.sec-acc[open] > summary{background:#eef4f6;}
  details.sec-acc[open] > summary h2{color:var(--blau);}
  details.sec-acc > summary .acc-toggle{
    flex-shrink:0;width:30px;height:30px;border-radius:50%;cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    background:#eef4f6;color:var(--blau);font-size:19px;line-height:1;
    transition:background .15s ease, color .15s ease;
  }
  details.sec-acc > summary:hover .acc-toggle{background:var(--blau);color:#fff;}
  details.sec-acc > summary .acc-toggle::before{
    content:"+";display:inline-block;transition:transform .2s ease;
  }
  details.sec-acc[open] > summary .acc-toggle{background:var(--blau);color:#fff;}
  details.sec-acc[open] > summary .acc-toggle::before{transform:rotate(45deg);}
  details.sec-acc > .sec-body{
    background:var(--bg);border-radius:12px;
    padding:18px 20px 6px;margin-top:8px;
  }
  @media print{
    details.sec-acc > summary{box-shadow:none;background:transparent !important;}
    details.sec-acc > .sec-body{background:transparent !important;}
    details.sec-acc > *:not(summary){display:block !important;}
    details.sec-acc > summary .acc-toggle{display:none !important;}
  }

  /* region chips (regionale Anzeigenstruktur) */
  .region-chip{display:flex;align-items:center;gap:10px;background:var(--card);border-radius:12px;padding:11px 16px;box-shadow:0 1px 3px rgba(0,0,0,.07);}
  .region-chip .rc-dot{width:13px;height:13px;border-radius:50%;flex-shrink:0;}
  .region-chip .rc-name{font-weight:700;font-size:13px;flex:1;}
  .region-chip .rc-langs{display:flex;gap:5px;flex-shrink:0;}
  .region-chip .rc-lang{font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:10px;background:#eef2f3;color:var(--blaugrau);font-family:Arial,sans-serif;}

  /* Anzeigenstruktur als grafische "Gleichung" statt Tabelle */
  .ad-structure-flow{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
  .ad-flow-col{flex:1;min-width:180px;display:flex;flex-direction:column;gap:8px;}
  .ad-flow-label{font-family:Arial,sans-serif;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--blaugrau);margin-bottom:2px;}
  .ad-flow-col .region-chip{padding:9px 14px;}
  .ad-flow-col .stat-card{padding:14px 12px;}
  .ad-flow-op{flex-shrink:0;font-size:26px;font-weight:800;color:var(--lightgrey);width:34px;text-align:center;}
  .ad-structure-total{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid var(--lightgrey);}
  .ad-structure-total .stat-card{min-width:150px;}
  @media(max-width:800px){
    .ad-structure-flow{flex-direction:column;align-items:stretch;}
    .ad-flow-op{transform:rotate(90deg);width:auto;padding:2px 0;}
  }

  table.simple{width:100%;border-collapse:collapse;font-size:13.5px;}
  table.simple th{text-align:left;font-family:Arial,sans-serif;font-size:11px;text-transform:uppercase;letter-spacing:.3px;color:var(--grey);padding:8px 10px;border-bottom:2px solid var(--lightgrey);}
  table.simple td{padding:10px 10px;border-bottom:1px solid var(--lightgrey);vertical-align:top;}

  /* timeline
     .tl-eyebrow/.tl-line/.tl-cp-track/.tl-labels/.tl-cp-caption hatten frueher ein
     fixes min-width:800-820px -- das erzwang auf jedem Fenster/Container, der
     schmaler als ~840px ist (z.B. nicht maximiertes Browserfenster, kleinerer
     Laptop-Bildschirm), permanent horizontales Scrollen samt sichtbarem
     Scrollbalken unter dem Zeitstrahl, obwohl das Layout selbst komplett
     prozentual ist und problemlos schmaler werden kann. Die Mindestbreite gibt
     es jetzt nur noch auf sehr kleinen Bildschirmen (siehe Media Query am Ende
     dieses Blocks), auf dem Desktop schrumpft/waechst der Zeitstrahl stattdessen
     einfach mit dem verfuegbaren Platz mit -- kein Scrollbalken mehr. */
  .tl-wrap{position:relative;padding:30px 10px 10px 10px;overflow-x:auto;}
  .tl-eyebrow{font-family:Arial,sans-serif;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--grey);margin:0 10px 12px 10px;}
  .tl-line{position:relative;height:4px;background:var(--lightgrey);border-radius:2px;margin:0 10px;}
  .tl-fill{position:absolute;left:0;top:0;height:4px;background:var(--blau);border-radius:2px;}
  /* Hervorgehobener Zeitraum auf dem Zeitstrahl fuer die eigentliche Kampagne (Maerz-Okt 2027)
     innerhalb der gesamten Projektlaufzeit (Juli 2026 - Feb 2028) */
  .tl-campaign-band{position:absolute;top:-5px;height:14px;background:rgba(0,170,205,.10);border:1px dashed var(--blau);border-radius:7px;pointer-events:none;}
  .tl-campaign-tag{position:absolute;top:-26px;transform:translateX(-50%);font-family:Arial,sans-serif;font-size:10px;font-weight:700;color:var(--blau);white-space:nowrap;text-transform:uppercase;letter-spacing:.4px;}
  /* Phase 1 wird NICHT mehr als eigenes Band+Label ueber der Linie dargestellt
     (das ueberlappte dort mit der PROJEKTLAUFZEIT-Eyebrow-Zeile) -- stattdessen
     einfach ein weiteres .tl-cp-seg-Segment (Blaugrau) im selben Track wie die
     Kampagnenphasen, mit demselben Hover-Tooltip-Muster statt Dauerlabel. */
  .tl-cp-track{position:relative;height:20px;margin:14px 10px 0 10px;}
  .tl-cp-seg{position:absolute;top:0;height:20px;border-radius:4px;cursor:default;}
  /* Eigener, sofort sichtbarer Hover-Tooltip statt des verzögerten Browser-Default-
     Tooltips (title-Attribut bleibt zusaetzlich als Fallback/Screenreader-Text stehen).
     content:attr(title) zieht denselben Text, der schon im HTML steht. */
  .tl-cp-seg::after{
    content:attr(title);
    position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%) translateY(4px);
    background:var(--dark);color:#fff;font-family:Arial,sans-serif;font-size:11px;font-weight:600;
    white-space:nowrap;padding:5px 9px;border-radius:6px;
    opacity:0;pointer-events:none;transition:opacity .12s ease,transform .12s ease;z-index:30;
  }
  .tl-cp-seg::before{
    content:"";position:absolute;left:50%;bottom:calc(100% + 3px);transform:translateX(-50%) translateY(4px);
    border:5px solid transparent;border-top-color:var(--dark);
    opacity:0;pointer-events:none;transition:opacity .12s ease,transform .12s ease;z-index:30;
  }
  .tl-cp-seg:hover::after,.tl-cp-seg:hover::before{opacity:1;transform:translateX(-50%) translateY(0);}
  .tl-cp-caption{font-family:Arial,sans-serif;font-size:11.5px;color:var(--grey);margin:8px 10px 0 10px;}
  .tl-cp-caption b{color:var(--dark);}
  .tl-pt{
    position:absolute;top:-8px;width:20px;height:20px;border-radius:50%;
    background:var(--blau);border:3px solid #fff;box-shadow:0 0 0 1px var(--blau);
    transform:translateX(-50%);padding:0;cursor:pointer;
    transition:transform .15s ease,box-shadow .15s ease;
  }
  .tl-pt:hover, .tl-pt:focus-visible{transform:translateX(-50%) scale(1.3);outline:none;}
  .tl-pt.today{background:var(--gelb);box-shadow:0 0 0 1px var(--gelb);}
  .tl-pt.active{box-shadow:0 0 0 4px rgba(0,170,205,.28),0 0 0 1px var(--blau);}
  .tl-pt.today.active{box-shadow:0 0 0 4px rgba(238,196,61,.4),0 0 0 1px var(--gelb);}
  .tl-labels{position:relative;margin:10px 10px 0 10px;height:34px;}
  /* Auf sehr kleinen Bildschirmen (Handy) darf der Zeitstrahl wieder eine
     Mindestbreite erzwingen und horizontal scrollen -- sonst waeren Punkte/
     Beschriftungen dort unleserlich eng. Ab ~480px aufwaerts (Tablet/Desktop)
     passt sich der Zeitstrahl stattdessen einfach der verfuegbaren Breite an. */
  @media(max-width:480px){
    .tl-eyebrow,.tl-line,.tl-cp-track,.tl-labels,.tl-cp-caption{min-width:520px;}
  }
  .tl-label{
    position:absolute;transform:translateX(-50%);text-align:center;width:140px;
    font-size:11.5px;background:none;border:none;cursor:pointer;padding:2px 4px;
    border-radius:6px;transition:background .15s ease;
  }
  .tl-label:hover, .tl-label:focus-visible{background:#f2f6f7;outline:none;}
  .tl-label b{display:block;font-family:Arial,sans-serif;font-size:11.5px;color:var(--dark);font-weight:700;}
  .tl-label.active b{color:var(--blau);}
  /* Erster & letzter Meilenstein (left:2%/left:100%): das zentrierte translateX(-50%)
     laesst Punkt/Label (Label-Box 140px breit) ueber den Rand von .tl-line/.tl-labels
     hinausragen -- dadurch war wegen overflow-x:auto auf .tl-wrap IMMER ein
     horizontaler Scrollbalken sichtbar, obwohl inhaltlich nichts abgeschnitten ist.
     Die Rand-Elemente werden stattdessen nach innen ausgerichtet (0% Anfang,
     100% Ende), alle mittleren Meilensteine bleiben unveraendert zentriert. */
  .tl-pt[data-idx="0"]{transform:translateX(0);}
  .tl-pt[data-idx="0"]:hover, .tl-pt[data-idx="0"]:focus-visible{transform:translateX(0) scale(1.3);}
  .tl-pt[data-idx="6"]{transform:translateX(-100%);}
  .tl-pt[data-idx="6"]:hover, .tl-pt[data-idx="6"]:focus-visible{transform:translateX(-100%) scale(1.3);}
  .tl-label[data-idx="0"]{transform:translateX(0);text-align:left;}
  .tl-label[data-idx="6"]{transform:translateX(-100%);text-align:right;}
  .tl-detail{
    margin-top:16px;background:var(--card);border-radius:12px;padding:16px 20px;
    box-shadow:0 1px 3px rgba(0,0,0,.07);border-left:4px solid var(--blau);
    transition:border-color .15s ease;
  }
  /* Solange noch kein Punkt/Datum angeklickt wurde, ist .tl-detail leer --
     dann auch keine leere Karte mit Rahmen/Schatten anzeigen. */
  .tl-detail:empty{display:none;margin-top:0;padding:0;box-shadow:none;border:none;}
  .tl-detail.is-today{border-left-color:var(--gelb);}
  .tl-detail .td-eyebrow{font-family:Arial,sans-serif;font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--grey);margin-bottom:3px;}
  .tl-detail .td-title{font-weight:700;font-size:15px;margin-bottom:6px;}
  .tl-detail p{margin:0;font-size:13.5px;color:var(--grey);line-height:1.5;}

  /* rollout phase cards */
  .phase-card{background:var(--card);border-radius:14px;padding:16px;box-shadow:0 1px 3px rgba(0,0,0,.07);border-top:4px solid var(--blau);}
  .phase-card .pc-icon{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;margin-bottom:9px;}
  .phase-card .pc-icon .icon{width:16px;height:16px;}
  .phase-card h4{margin:0 0 6px 0;font-size:13.5px;}
  .phase-card p{margin:0;font-size:13px;color:var(--grey);}

  /* rollout flow — proportionaler Zeitbalken März-Oktober */
  .rollout-flow{margin-bottom:16px;}
  .rf-track{display:flex;height:56px;border-radius:10px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.08);}
  .rf-seg{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;gap:2px;}
  .rf-seg + .rf-seg{border-left:2px solid rgba(255,255,255,.85);}
  .rf-seg .icon{width:18px;height:18px;}
  .rf-seg span{font-family:Arial,sans-serif;font-size:11px;font-weight:700;letter-spacing:.2px;white-space:nowrap;}
  .rf-seg.is-optional{background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.2) 0 8px,transparent 8px 16px);}
  .rf-months{display:flex;margin-top:6px;}
  .rf-months span{flex:1;text-align:center;font-family:Arial,sans-serif;font-size:10px;color:var(--grey);}

  /* checklist */
  .check-item{background:var(--card);border-radius:14px;padding:16px 18px;margin-bottom:12px;box-shadow:0 1px 3px rgba(0,0,0,.07);}
  .check-item.resolved{border-left:4px solid var(--green);}
  .check-item:not(.resolved){border-left:4px solid var(--blau);}
  .check-item .chk-head{display:flex;align-items:flex-start;gap:10px;}
  .check-item input[type=checkbox]{width:18px;height:18px;margin-top:2px;flex-shrink:0;cursor:pointer;}
  .check-item .chk-title{font-family:Arial,sans-serif;font-weight:700;font-size:14.5px;}
  .check-item .chk-expl{font-size:13.5px;color:var(--grey);margin:6px 0 0 28px;}
  .check-item .chk-update{font-size:13.5px;margin:8px 0 0 28px;background:#eef9fb;padding:8px 12px;border-radius:6px;}
  .check-item .chk-update b{color:var(--blau);}

  .progress-wrap{background:var(--card);border-radius:14px;padding:16px 20px;margin-bottom:18px;box-shadow:0 1px 3px rgba(0,0,0,.07);}
  .progress-bar-bg{background:var(--lightgrey);height:10px;border-radius:6px;overflow:hidden;margin-top:8px;}
  .progress-bar-fill{background:var(--green);height:10px;width:0%;transition:width .3s;}

  .flag{display:inline-block;font-size:10.5px;font-family:Arial,sans-serif;font-weight:700;padding:2px 9px;border-radius:12px;background:#fdf3f2;color:var(--red);margin-left:6px;}
  .flag.ok{background:#eaf6ef;color:var(--green);}

  .cluster-card{background:var(--card);border-radius:14px;padding:16px 18px;box-shadow:0 1px 3px rgba(0,0,0,.07);border-top:4px solid var(--blaugrau);}
  .cluster-card h4{margin:0 0 6px 0;font-size:14.5px;font-family:Arial,sans-serif;}
  .cluster-card p{margin:0;font-size:13.5px;color:var(--grey);}

  /* Massnahmencluster-Uebersicht: live aus dem Budgetplan gerenderte Karten */
  .mvc-card{margin-bottom:14px;}
  .mvc-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;}
  .mvc-icon{width:34px;height:34px;border-radius:9px;background:var(--blau);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  .mvc-icon .icon{width:17px;height:17px;}
  .mvc-head h4{margin:0;font-size:14.5px;font-family:Arial,sans-serif;}
  .mvc-meta{font-size:12px;color:var(--grey);margin-top:2px;}
  .mvc-list{list-style:none;margin:0;padding:0;}
  .mvc-list li{display:flex;justify-content:space-between;gap:10px;align-items:baseline;padding:7px 0;border-top:1px solid var(--lightgrey);font-size:13px;}
  .mvc-list li:first-child{border-top:none;}
  .mvc-mname{color:var(--dark);}
  .mvc-mmeta{font-size:11px;color:var(--grey);white-space:nowrap;flex-shrink:0;font-family:Arial,sans-serif;margin-left:10px;}
  .mvc-empty{padding:8px 0;font-size:13px;color:var(--grey);font-style:italic;}

  .journey-row{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px;}
  .journey-step{flex:1;min-width:160px;background:var(--card);border-radius:14px;padding:14px 16px;box-shadow:0 1px 3px rgba(0,0,0,.07);position:relative;}
  .journey-step .jn{font-family:Arial,sans-serif;font-size:22px;font-weight:800;color:var(--lightgrey);}
  .journey-step h4{margin:2px 0 6px 0;font-size:13.5px;}
  .journey-step p{margin:0;font-size:12.5px;color:var(--grey);}

  .budget-bar{display:flex;height:34px;border-radius:8px;overflow:hidden;margin:10px 0;}
  .budget-seg{display:flex;align-items:center;justify-content:center;color:#fff;font-family:Arial,sans-serif;font-size:12px;font-weight:700;}

  footer.pfoot{margin-top:40px;font-size:11.5px;color:#999;border-top:1px solid var(--lightgrey);padding-top:14px;}

  .imgcap{font-size:11.5px;color:var(--grey);margin-top:6px;}
  .mockrow{display:flex;gap:14px;overflow-x:auto;}
  .mockrow img{height:280px;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,.15);flex-shrink:0;}
  .mockrow img.wide{height:180px;}

  .two-col{columns:2;column-gap:24px;}
  .two-col li{break-inside:avoid;}
  @media(max-width:800px){.two-col{columns:1;}}

  /* ---- EDITABLE / TOOL MODE ---- */
  /* Bewusst KEIN background-color hier (nur outline): Editierbarer Text lebt auch auf
     farbigen Flaechen (z.B. .claim-head mit heller Schrift auf Farbe) -- ein heller
     Fokus-Hintergrund wuerde dort weiße Schrift auf weißem Grund unlesbar machen. */
  [contenteditable="true"]{border-radius:4px;transition:outline .15s,box-shadow .15s;}
  [contenteditable="true"]:hover{outline:1px dashed var(--blaugrau);outline-offset:2px;cursor:text;}
  [contenteditable="true"]:focus{outline:2px solid var(--blau);outline-offset:2px;box-shadow:0 0 0 4px rgba(0,170,205,0.18);}
  .edit-hint{display:inline-flex;align-items:center;gap:6px;font-family:Arial,sans-serif;font-size:10.5px;color:var(--grey);background:#eef2f3;border-radius:20px;padding:3px 10px;margin-left:6px;vertical-align:middle;}

  /* Toolbar + Statusleiste (sticky Kopfbereich) */
  .sticky-head{
    position:sticky;top:0;z-index:50;background:#fff;
    margin:calc(-1 * var(--content-pad-top)) calc(-1 * var(--content-pad-x)) 26px calc(-1 * var(--content-pad-x));
    box-shadow:0 2px 6px rgba(0,0,0,0.04);
  }
  .toolbar{
    position:relative;
    display:flex;align-items:center;justify-content:space-between;
    padding:12px 22px;
    border-bottom:1px solid var(--lightgrey);
    background:linear-gradient(to bottom, #ffffff, #fbfcfc);
    flex-wrap:wrap;gap:10px;
  }
  .toolbar .tb-left{font-family:Arial,sans-serif;font-size:12px;color:var(--grey);display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
  .toolbar .tb-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
  .tb-divider{width:1px;align-self:stretch;min-height:22px;background:var(--lightgrey);margin:0 4px;flex-shrink:0;}
  /* Blaues muenchen-venezia-Logo als Ribbon rechts oben, direkt unter dem
     Benutzermenü. Haengt aus der (sticky) Toolbar heraus, bleibt beim
     Scrollen also immer sichtbar -- anders als das Logo im Hero-Bild
     weiter unten, das beim Scrollen mit wegwandert. */
  /* Silberhoamat-Logo ist ein breites Wordmark (750x200), anders als das
     schmale hochkant-Ribbon von muenchen venezia -- deshalb eigene Breite/
     Position fuer diese Kopie. */
  .tb-logo-ribbon{
    position:absolute;top:100%;right:22px;
    width:187px;height:auto;
    filter:drop-shadow(0 4px 8px rgba(0,0,0,.18));
    pointer-events:none;z-index:40;
  }
  @media(max-width:640px){.tb-logo-ribbon{width:106px;right:14px;}}

  /* User-Menu oben rechts: Pill-Button mit Name + Chevron, Dropdown mit Rolle/Abmelden */
  .user-menu{position:relative;}
  .user-menu-btn{
    display:inline-flex;align-items:center;gap:7px;
    font-family:Arial,sans-serif;font-size:12.5px;font-weight:700;color:var(--dark);
    background:#fff;border:1px solid var(--lightgrey);border-radius:20px;
    padding:6px 8px 6px 10px;cursor:pointer;transition:background .15s ease,border-color .15s ease;
  }
  .user-menu-btn:hover{background:#f5f6f7;}
  .user-menu-btn .icon{width:15px;height:15px;color:var(--blaugrau);}
  .user-menu-btn .icon.chevron{width:13px;height:13px;color:var(--grey);transition:transform .15s ease;}
  .user-menu.open .user-menu-btn .icon.chevron{transform:rotate(180deg);}
  .user-menu-name{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .user-menu-dropdown{
    display:none;position:absolute;top:calc(100% + 6px);right:0;z-index:250;min-width:180px;
    background:#fff;border:1px solid var(--lightgrey);border-radius:12px;
    box-shadow:0 8px 22px rgba(0,0,0,.14);overflow:hidden;
  }
  .user-menu.open .user-menu-dropdown{display:block;}
  .user-menu-role{
    font-family:Arial,sans-serif;font-size:11px;color:var(--grey);text-transform:uppercase;letter-spacing:.3px;
    padding:10px 14px 8px 14px;border-bottom:1px solid var(--lightgrey);
  }
  .user-menu-item{
    display:flex;align-items:center;gap:8px;font-family:Arial,sans-serif;font-size:13px;font-weight:600;
    color:var(--dark);text-decoration:none;padding:10px 14px;
  }
  .user-menu-item:hover{background:#f5f6f7;}
  .user-menu-item .icon{width:14px;height:14px;color:var(--grey);}
  .status-bar{
    display:none;gap:0;padding:9px 20px;border-bottom:1px solid var(--lightgrey);background:#fafbfb;
    overflow-x:auto;
  }
  .status-chip{
    display:flex;align-items:baseline;gap:6px;padding:0 18px;border-right:1px solid var(--lightgrey);white-space:nowrap;
  }
  .status-chip:first-child{padding-left:0;}
  .status-chip:last-child{border-right:none;}
  .status-chip .sc-num{font-family:Arial,sans-serif;font-size:15px;font-weight:800;color:var(--dark);}
  .status-chip .sc-num.warn{color:var(--red);}
  .status-chip .sc-label{font-family:Arial,sans-serif;font-size:10.5px;color:var(--grey);text-transform:uppercase;letter-spacing:.3px;}
  .save-dot{width:8px;height:8px;border-radius:50%;background:var(--green);display:inline-block;}
  .btn{
    font-family:Arial,sans-serif;font-size:12px;font-weight:700;
    border:1px solid var(--lightgrey);background:#fff;color:var(--dark);
    padding:8px 15px;border-radius:9px;cursor:pointer;
    display:inline-flex;align-items:center;
    transition:background .15s ease, border-color .15s ease, box-shadow .15s ease;
  }
  .btn:hover{background:#f5f6f7;box-shadow:0 1px 3px rgba(0,0,0,.06);}
  .btn:hover{background:#f2f3f4;}
  .btn.primary{background:var(--accent);color:#fff;border-color:var(--accent);}
  .btn.primary:hover{background:var(--accent-dark);border-color:var(--accent-dark);}
  .btn.danger{color:var(--red);border-color:#f0d3d1;}
  .btn.danger:hover{background:#fdf3f2;}

  .toast{
    position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(20px);
    background:var(--dark);color:#fff;padding:10px 18px;border-radius:8px;
    font-family:Arial,sans-serif;font-size:12.5px;opacity:0;pointer-events:none;
    transition:opacity .25s, transform .25s;z-index:100;
  }
  .toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

  /* Charts */
  .chart-box{position:relative;height:280px;}
  .chart-box-wide{height:320px;}
  @media(max-width:640px){.chart-box{height:220px;}.chart-box-wide{height:260px;}}

  /* Grobeinteilung (interaktive Slider) */
  .grob-total-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-bottom:18px;}
  .grob-total-label{font-family:Arial,sans-serif;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--grey);margin-bottom:3px;}
  .grob-total-num{font-family:Arial,sans-serif;font-size:26px;font-weight:800;color:var(--dark);}
  .grob-total-actions{display:flex;gap:8px;flex-wrap:wrap;}

  .grob-stackbar{
    display:flex;width:100%;height:38px;border-radius:12px;overflow:hidden;
    box-shadow:inset 0 0 0 1px var(--lightgrey);margin-bottom:22px;background:#f0f1f2;
  }
  .grob-seg{
    height:100%;display:flex;align-items:center;justify-content:center;
    transition:width .3s cubic-bezier(.4,0,.2,1);
    font-family:Arial,sans-serif;font-size:11.5px;font-weight:800;color:#fff;
    white-space:nowrap;overflow:hidden;text-shadow:0 1px 2px rgba(0,0,0,.25);
    min-width:2px;
  }

  .grob-sliders{display:grid;gap:20px;grid-template-columns:repeat(2,1fr);}
  @media(max-width:900px){.grob-sliders{grid-template-columns:1fr;}}
  .grob-slider-row{background:#fafbfc;border:1px solid var(--lightgrey);border-radius:12px;padding:14px 16px;}
  .grob-slider-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
  .grob-dot{width:11px;height:11px;border-radius:50%;flex-shrink:0;}
  .grob-slider-label{font-size:13.5px;font-weight:700;color:var(--dark);flex:1;}
  .grob-slider-pct{font-family:Arial,sans-serif;font-size:15px;font-weight:800;color:var(--dark);min-width:38px;text-align:right;}
  .grob-range{width:100%;height:6px;border-radius:4px;-webkit-appearance:none;appearance:none;background:var(--lightgrey);outline:none;margin:4px 0 10px 0;cursor:pointer;}
  .grob-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:currentColor;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.35);border:3px solid #fff;}
  .grob-range::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:currentColor;border:3px solid #fff;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.35);}
  .grob-slider-foot{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:6px;font-family:Arial,sans-serif;}
  .grob-eur{font-size:15px;font-weight:800;color:var(--dark);}
  .grob-compare{font-size:11px;color:var(--grey);}
  .grob-delta{font-weight:700;}
  .grob-delta.pos{color:var(--green);}
  .grob-delta.neg{color:var(--red);}

  .grob-legend{display:flex;flex-wrap:wrap;gap:10px 20px;}
  .grob-legend-item{display:flex;align-items:center;gap:8px;font-family:Arial,sans-serif;font-size:12.5px;color:var(--dark);}
  .grob-legend-item b{font-size:13px;}
  .grob-legend-item .grob-legend-sub{color:var(--grey);font-weight:400;}

  /* Kanal-Regler (Online/Print) -- eigene Regler-Zeilen je Kanal, schreiben
     in dieselbe budgetGrob-Prozentaufteilung wie die Grobeinteilung-Regler;
     beim Loslassen generieren sie die Positionen-Tabelle darunter neu. */
  .online-channel-sliders{display:flex;flex-direction:column;gap:22px;}
  .chsl-row{}
  .chsl-head{display:flex;align-items:center;gap:8px;margin-bottom:6px;}
  .chsl-head .grob-slider-label{font-family:Arial,sans-serif;font-size:13px;font-weight:700;color:var(--dark);flex:1;}
  .chsl-eur{font-family:Arial,sans-serif;font-size:16px;font-weight:800;color:var(--accent);}
  .chsl-pct{margin-top:6px;font-size:11px;color:var(--grey);}

  /* Budget module */
  .budget-input-card{background:var(--card);border-radius:14px;padding:16px 18px;box-shadow:0 1px 3px rgba(0,0,0,.07);}
  .budget-input-card label{display:block;font-family:Arial,sans-serif;font-size:11px;text-transform:uppercase;letter-spacing:.3px;color:var(--grey);margin-bottom:5px;}
  .budget-input-card input[type=number]{
    width:100%;font-family:Arial,sans-serif;font-size:20px;font-weight:800;color:var(--blau);
    border:1px solid var(--lightgrey);border-radius:7px;padding:8px 10px;margin-bottom:4px;
  }
  .budget-input-card .euro-note{font-size:11px;color:#999;}
  .budget-remaining{font-family:Arial,sans-serif;font-size:26px;font-weight:800;}
  .budget-remaining.neg{color:var(--red);}
  .budget-remaining.pos{color:var(--green);}
  .weight-row{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
  .weight-row label{width:170px;flex-shrink:0;font-size:13px;font-family:Arial,sans-serif;margin:0;text-transform:none;letter-spacing:0;color:var(--dark);}
  .weight-row input[type=number]{width:70px;font-size:13px;font-weight:700;padding:5px 6px;border:1px solid var(--lightgrey);border-radius:6px;text-align:right;}
  .w-slider{flex:1;-webkit-appearance:none;appearance:none;height:6px;border-radius:4px;background:var(--lightgrey);outline:none;}
  .w-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent);cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.3);}
  .w-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--accent);border:none;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.3);}
  .w-val{width:52px;flex-shrink:0;text-align:right;font-family:Arial,sans-serif;font-size:13px;font-weight:800;color:var(--dark);}
  .weight-sum-warn{font-size:11.5px;color:var(--red);font-family:Arial,sans-serif;margin-top:4px;display:none;}

  /* Editable table */
  table.tracker{width:100%;border-collapse:collapse;font-size:13px;}
  table.tracker th{text-align:left;font-family:Arial,sans-serif;font-size:10.5px;text-transform:uppercase;letter-spacing:.3px;color:var(--grey);padding:7px 8px;border-bottom:2px solid var(--lightgrey);}
  table.tracker td{padding:5px 6px;border-bottom:1px solid var(--lightgrey);vertical-align:middle;}
  table.tracker input[type=text],table.tracker input[type=date],table.tracker select{
    width:100%;font-size:13px;border:1px solid transparent;border-radius:5px;padding:6px 7px;background:transparent;
  }
  table.tracker input[type=text]:hover,table.tracker input[type=date]:hover,table.tracker select:hover{border-color:var(--lightgrey);background:#fafbfb;}
  table.tracker input[type=text]:focus,table.tracker input[type=date]:focus,table.tracker select:focus{border-color:var(--blau);background:#fff;outline:none;}
  table.tracker select{font-family:Arial,sans-serif;font-weight:700;font-size:11.5px;}
  .status-offen{color:var(--grey);}
  .status-inarbeit{color:var(--gelb);}
  .status-erledigt{color:var(--green);}
  .row-del{background:none;border:none;color:#bbb;cursor:pointer;font-size:15px;padding:4px 8px;display:inline-flex;align-items:center;justify-content:center;}
  .row-del:hover{color:var(--red);}
  .row-del .icon{width:13px;height:13px;margin-right:0;}
  .add-row-btn{margin-top:10px;}

  .field-row{display:flex;gap:10px;margin:8px 0 0 28px;flex-wrap:wrap;}
  .field-row .f{flex:1;min-width:140px;}
  .field-row label{display:block;font-family:Arial,sans-serif;font-size:10px;text-transform:uppercase;color:var(--grey);letter-spacing:.3px;margin-bottom:3px;}
  .field-row input[type=text]{width:100%;font-size:13px;border:1px solid var(--lightgrey);border-radius:6px;padding:6px 8px;}
  .field-row input[type=text]:focus{border-color:var(--blau);outline:none;}

  /* ================= NAECHSTE TERMINE (Zeitplan) ================= */
  .termin-form{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:16px;}
  .termin-input{
    font-size:13.5px;border:1px solid var(--lightgrey);border-radius:8px;
    padding:9px 12px;font-family:inherit;color:var(--dark);background:#fff;
  }
  .termin-input:focus{border-color:var(--blau);outline:none;}
  #termin-date{flex:0 0 155px;}
  #termin-title{flex:1 1 180px;min-width:140px;}
  .termin-input-note{flex:1 1 220px;min-width:160px;}
  .termine-list{display:flex;flex-direction:column;gap:8px;}
  .termin-row{
    display:flex;align-items:flex-start;gap:14px;background:var(--card);
    border-radius:10px;padding:12px 14px;box-shadow:0 1px 3px rgba(0,0,0,.06);
  }
  .termin-row.is-past{opacity:.55;}
  .termin-date{
    flex:0 0 92px;font-family:Arial,sans-serif;font-size:11.5px;font-weight:700;
    color:var(--blau);text-transform:uppercase;letter-spacing:.3px;padding-top:2px;
  }
  .termin-row.is-past .termin-date{color:var(--grey);}
  .termin-main{flex:1;min-width:0;}
  .termin-main b{font-size:14px;color:var(--dark);}
  .termin-main p{margin:2px 0 0 0;font-size:12.5px;color:var(--grey);}
  .termin-del{
    flex-shrink:0;background:none;border:none;cursor:pointer;color:var(--grey);
    padding:4px;border-radius:6px;transition:background .15s ease,color .15s ease;
  }
  .termin-del:hover{background:#fbe9e7;color:var(--red);}
  .termin-del .icon{width:15px;height:15px;}
  @media(max-width:640px){
    .termin-form{flex-direction:column;align-items:stretch;}
    #termin-date,#termin-title,.termin-input-note{flex:1 1 auto;width:100%;}
  }

  /* ================= RESPONSIVE / BILDSCHIRM-LAYOUT ================= */
  @media(max-width:1300px){
    :root{ --content-pad-x:28px; }
  }
  @media(max-width:960px){
    :root{ --content-pad-x:20px; --content-pad-top:20px; }
    .menu-toggle{display:inline-flex;width:46px;height:46px;border-radius:10px;}
    .menu-toggle .icon{width:24px;height:24px;}
    .sidebar{
      position:fixed;left:0;top:0;
      transform:translateX(-100%);
      box-shadow:2px 0 24px rgba(0,0,0,.3);
    }
    .sidebar.open{transform:translateX(0);}
    .hero{height:220px;}
    .hero .herotext h1{font-size:24px;}
    .hero .hero-logo{height:46px;top:14px;right:16px;}
    .pagehead h1{font-size:22px;}
  }
  @media(max-width:640px){
    :root{ --content-pad-x:14px; --content-pad-top:16px; }
    .toolbar{padding:10px 14px;}
    /* Statusleiste (Budget/Aufgaben-Kennzahlen) kostet auf dem Handy zu viel Platz oben -- weg damit */
    .status-bar{display:none;}
    .status-chip{padding:0 12px;}
    .hero{height:180px;border-radius:10px;}
    .hero .herotext{padding:16px 18px;}
    .hero .herotext h1{font-size:20px;}
    .hero .hero-logo{height:36px;top:10px;right:12px;}
    .card{padding:16px 16px;}
    .modal-overlay{padding:16px 10px;}
    .modal-box{padding:20px 18px;max-height:calc(100vh - 32px);overflow-y:auto;}
    .modal-grid2{grid-template-columns:1fr;}
    .field-row{margin-left:0;}
    .subtabs{gap:6px;}
    .subtabs button{padding:7px 10px;font-size:12px;}
  }
  /* Tabellen bleiben in einer scrollbaren Karte, statt das Layout zu sprengen */
  .card > table.tracker,.card > table.timelog{min-width:560px;}

  /* ================= MOBILE-POLISH (Zusatzrunde) ================= */
  html,body{overflow-x:hidden;}
  body{-webkit-text-size-adjust:100%;}
  .sidebar{-webkit-overflow-scrolling:touch;}

  /* iOS Safari zoomt beim Fokussieren automatisch rein, wenn Eingabefelder unter 16px Schrift haben */
  @media(max-width:640px){
    input[type=text],input[type=number],input[type=date],input[type=password],
    input[type=email],input[type=search],textarea,select{
      font-size:16px !important;
    }
  }

  /* Text-Tabellen (Quellen, Formate etc.) bekommen auf schmalen Screens eine eigene Scroll-Achse
     statt das Seitenlayout zu sprengen — die editierbaren Tabellen sind bereits einzeln in
     scrollbare Karten gewrappt (siehe oben), table.simple bisher nicht */
  @media(max-width:640px){
    table.simple{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;}
  }

  /* Touch-Ziele vergroessern: Checkboxen, kleine Icon-Buttons, Timeline-Punkte, Slider
     (chat-icon-btn und foto-star stehen als eigene Regeln direkt hinter ihren Basis-Definitionen,
     damit die Kaskaden-Reihenfolge stimmt) */
  @media(max-width:640px){
    .check-item input[type=checkbox]{width:22px;height:22px;}
    .row-del{padding:8px 10px;}
    .tl-pt{width:24px;height:24px;top:-10px;}
    .w-slider{height:8px;}
    .w-slider::-webkit-slider-thumb{width:22px;height:22px;}
    .w-slider::-moz-range-thumb{width:22px;height:22px;}
    nav.navlist a{padding:11px 12px;}
    .btn{padding:10px 15px;}
  }

  /* Menueleiste (Export/PDF/Zuruecksetzen/Login) wird ab 960px per JS komplett in die Sidebar
     verschoben (siehe #sidebar-actions), .tb-right ist im Toolbar auf dem Handy also leer.
     Diese Regel betrifft nur, was in .tb-left uebrig bleibt: den Speicher-Hinweis. */
  @media(max-width:640px){
    #save-text{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;vertical-align:middle;font-size:11px;}
  }

  @media print{
    .sidebar,.sticky-head,.add-row-btn,.row-del,.edit-hint,.chat-fab,.chat-panel,.subtabs,.task-toolbar,.menu-toggle,.sidebar-backdrop{display:none !important;}
    .content{padding:0;max-width:100%;}
    body:not(.guideline-mode) .panel{display:block !important;page-break-after:always;}
  }

  /* ================= KUNDEN-GUIDELINE (PDF-Auszug) ================= */
  #p-guideline-cover{display:none;}
  body.guideline-mode .sidebar,
  body.guideline-mode .sticky-head,
  body.guideline-mode .chat-fab,
  body.guideline-mode .chat-panel{display:none !important;}
  body.guideline-mode .content{padding:20px 48px;max-width:900px;margin:0 auto;}
  body.guideline-mode .panel{display:none !important;}
  body.guideline-mode .subtabs,
  body.guideline-mode .task-toolbar,
  body.guideline-mode .add-row-btn,
  body.guideline-mode .row-del,
  body.guideline-mode .edit-hint{display:none !important;}
  body.guideline-mode .guideline-show{display:block !important;}
  body.guideline-mode .panel.guideline-show,
  body.guideline-mode #p-guideline-cover.guideline-show{page-break-before:always;}
  .guideline-check-row{display:flex;align-items:center;gap:10px;padding:8px 4px;border-bottom:1px solid #f2f2f2;}
  .guideline-check-row:last-child{border-bottom:none;}
  .guideline-check-row input[type=checkbox]{width:17px;height:17px;flex-shrink:0;cursor:pointer;}
  .guideline-check-row label{flex:1;font-size:13px;cursor:pointer;}
  .guideline-check-row .gcr-tag{font-family:Arial,sans-serif;font-size:9.5px;font-weight:700;text-transform:uppercase;color:var(--grey);background:#f0f0f0;padding:2px 7px;border-radius:10px;}

  /* ================= AUFGABEN-MODUL ================= */
  .subtabs{display:flex;gap:6px;margin-bottom:20px;flex-wrap:wrap;}
  .subtabs button{
    font-family:Arial,sans-serif;font-size:12.5px;font-weight:700;color:var(--grey);
    background:#fff;border:1px solid var(--lightgrey);padding:8px 16px;border-radius:20px;cursor:pointer;
  }
  .subtabs button:hover{color:var(--dark);border-color:#ccc;}
  .subtabs button.active{color:#fff;background:var(--accent);border-color:var(--accent);}
  .aview{display:none;}
  .aview.active{display:block;}

  .task-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:16px;justify-content:space-between;}
  .task-filters{display:flex;flex-wrap:wrap;gap:6px;}
  .task-filters select,.task-filters input[type=text]{
    font-family:Arial,sans-serif;font-size:12px;padding:7px 12px;border:1px solid var(--lightgrey);border-radius:20px;background:#fff;
  }
  .task-filters input[type=text]{min-width:160px;}

  .prio-badge{display:inline-block;font-family:Arial,sans-serif;font-size:10px;font-weight:700;padding:2px 9px;border-radius:12px;}
  .prio-niedrig{background:#eef2f3;color:#607077;}
  .prio-mittel{background:#eaf3fb;color:#2b7ec2;}
  .prio-hoch{background:#fff2df;color:#c9791a;}
  .prio-dringend{background:#fdeceb;color:var(--red);}

  .cluster-badge{display:inline-block;font-family:Arial,sans-serif;font-size:10px;font-weight:700;padding:2px 9px;border-radius:12px;background:#f0f0f0;color:#555;}

  /* Liste */
  table.tasklist{width:100%;border-collapse:collapse;font-size:13px;}
  table.tasklist th{text-align:left;font-family:Arial,sans-serif;font-size:10.5px;text-transform:uppercase;color:var(--grey);padding:8px;border-bottom:2px solid var(--lightgrey);}
  table.tasklist td{padding:9px 8px;border-bottom:1px solid var(--lightgrey);vertical-align:middle;}
  table.tasklist tr.done td{opacity:.5;text-decoration:line-through;}
  table.tasklist tr:hover{background:#fafbfc;cursor:pointer;}
  .task-title-cell{font-weight:700;}
  .task-title-cell .sub-indent{color:#bbb;margin-right:4px;}
  .overdue{color:var(--red);font-weight:700;}

  /* Kanban */
  .kanban-board{display:flex;gap:14px;overflow-x:auto;padding-bottom:10px;align-items:flex-start;}
  .kanban-col{background:#eef0f1;border-radius:14px;padding:10px;min-width:250px;flex:1;}
  .kanban-col h4{font-family:Arial,sans-serif;font-size:12.5px;margin:2px 6px 10px 6px;display:flex;justify-content:space-between;color:var(--dark);}
  .kanban-col h4 .cnt{color:var(--grey);font-weight:400;}
  .kanban-dropzone{min-height:40px;}
  .kanban-dropzone.dragover{background:#e0f4f8;border-radius:8px;}
  .kcard{
    background:#fff;border-radius:8px;padding:10px 12px;margin-bottom:8px;box-shadow:0 1px 2px rgba(0,0,0,.1);
    cursor:grab;font-size:12.5px;
  }
  .kcard:active{cursor:grabbing;}
  .kcard .kt{font-weight:700;margin-bottom:5px;}
  .kcard .kmeta{display:flex;flex-wrap:wrap;gap:4px;align-items:center;font-size:10.5px;color:var(--grey);}
  .kcard .kmeta .who{background:#f0f0f0;border-radius:14px;padding:1px 7px;}

  /* Timeline/Gantt */
  .gantt-wrap{overflow-x:auto;}
  .gantt-grid{position:relative;min-width:900px;}
  .gantt-row{display:flex;align-items:center;height:34px;border-bottom:1px solid #f0f0f0;}
  .gantt-label{width:220px;flex-shrink:0;font-size:12px;padding-right:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .gantt-track{position:relative;flex:1;height:22px;background:#f7f7f8;border-radius:5px;}
  .gantt-bar{position:absolute;top:0;height:22px;border-radius:5px;font-size:10px;color:#fff;display:flex;align-items:center;padding:0 8px;white-space:nowrap;overflow:hidden;font-family:Arial,sans-serif;font-weight:700;}
  .gantt-months{display:flex;margin-left:220px;font-family:Arial,sans-serif;font-size:10.5px;color:var(--grey);border-bottom:1px solid var(--lightgrey);padding-bottom:6px;margin-bottom:6px;}
  .gantt-months span{flex:1;text-align:left;}

  /* Workload */
  .wl-row{display:grid;grid-template-columns:150px 1fr;gap:10px;align-items:center;margin-bottom:10px;}
  .wl-name{font-family:Arial,sans-serif;font-size:13px;font-weight:700;}
  .wl-bar-bg{background:var(--lightgrey);height:20px;border-radius:5px;overflow:hidden;position:relative;}
  .wl-bar-fill{height:20px;transition:width .3s;}
  .wl-bar-text{position:absolute;left:8px;top:1px;font-size:10.5px;font-family:Arial,sans-serif;color:#fff;line-height:20px;text-shadow:0 1px 1px rgba(0,0,0,.3);}

  /* Modal */
  .modal-overlay{
    display:none;position:fixed;inset:0;background:rgba(20,20,20,0.5);z-index:200;
    align-items:flex-start;justify-content:center;padding:40px 20px;overflow-y:auto;
  }
  .modal-overlay.open{display:flex;}
  .modal-box{background:#fff;border-radius:12px;width:100%;max-width:640px;padding:26px 28px;box-shadow:0 10px 40px rgba(0,0,0,.3);}
  .modal-box h3{margin:0 0 16px 0;font-size:17px;}
  .modal-box .mrow{margin-bottom:14px;}
  .modal-box label{display:block;font-family:Arial,sans-serif;font-size:10.5px;text-transform:uppercase;color:var(--grey);letter-spacing:.3px;margin-bottom:5px;}
  .modal-box input[type=text],.modal-box input[type=date],.modal-box input[type=number],.modal-box select,.modal-box textarea{
    width:100%;font-size:13.5px;border:1px solid var(--lightgrey);border-radius:7px;padding:8px 10px;
  }
  .modal-box textarea{min-height:60px;resize:vertical;}
  .modal-grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
  .modal-close{position:absolute;top:14px;right:16px;}
  .modal-close.icon-only{width:32px;height:32px;padding:0;justify-content:center;}
  .modal-box{position:relative;}
  /* Per Ziehpunkt unten rechts frei vergroesserbares Modal (z.B. Benutzerverwaltung,
     die durch die verschachtelten Unterpunkt-Listen inhaltlich lang werden kann). */
  .modal-resizable{resize:both;overflow:auto;min-width:420px;min-height:260px;max-height:90vh;}
  @media(max-width:720px){.modal-resizable{resize:none;}}
  .chip-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;}
  .chip-x{display:inline-flex;align-items:center;gap:5px;background:#eef2f3;border-radius:14px;padding:3px 10px;font-size:11.5px;font-family:Arial,sans-serif;}
  .chip-x button{border:none;background:none;color:#999;cursor:pointer;font-size:12px;padding:0;display:inline-flex;align-items:center;}
  .chip-x button .icon{width:11px;height:11px;margin-right:0;}
  .sub-list,.file-list,.comment-list{margin-top:6px;}
  .sub-item,.file-item{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:13px;border-bottom:1px solid #f2f2f2;}
  .sub-item input[type=checkbox]{flex-shrink:0;}
  .sub-item span,.file-item span{flex:1;}
  .comment-item{background:#f7f8f9;border-radius:8px;padding:8px 10px;margin-bottom:6px;font-size:12.5px;}
  .comment-item .cmeta{font-family:Arial,sans-serif;font-size:10.5px;color:var(--grey);margin-bottom:2px;}
  .small-add-row{display:flex;gap:6px;margin-top:6px;}
  .small-add-row input{flex:1;font-size:12.5px;border:1px solid var(--lightgrey);border-radius:6px;padding:6px 8px;}
  .small-add-row button{font-family:Arial,sans-serif;font-size:11.5px;font-weight:700;border:1px solid var(--lightgrey);background:#fafafa;border-radius:6px;padding:6px 10px;cursor:pointer;}
  .modal-actions{display:flex;justify-content:space-between;margin-top:18px;padding-top:14px;border-top:1px solid var(--lightgrey);}

  .template-card{background:var(--card);border-radius:14px;padding:16px 18px;box-shadow:0 1px 3px rgba(0,0,0,.07);border-top:4px solid #8E44AD;}
  .team-card{background:var(--card);border-radius:14px;padding:14px 16px;box-shadow:0 1px 3px rgba(0,0,0,.07);display:flex;align-items:center;gap:12px;}
  .team-avatar{width:36px;height:36px;border-radius:50%;background:#8E44AD;color:#fff;display:flex;align-items:center;justify-content:center;font-family:Arial,sans-serif;font-weight:700;flex-shrink:0;}

  table.timelog{width:100%;border-collapse:collapse;font-size:13px;}
  table.timelog th{text-align:left;font-family:Arial,sans-serif;font-size:10.5px;text-transform:uppercase;color:var(--grey);padding:7px 8px;border-bottom:2px solid var(--lightgrey);}
  table.timelog td{padding:7px 8px;border-bottom:1px solid var(--lightgrey);}

  .aview select, .aview input[type=date], .aview input[type=number], .aview input[type=text]{
    font-family:Arial,sans-serif;font-size:13px;border:1px solid var(--lightgrey);border-radius:7px;padding:7px 9px;background:#fff;
  }

  /* Nav badge */
  .nav-badge{
    display:inline-block;min-width:16px;height:16px;line-height:16px;border-radius:9px;
    background:var(--red);color:#fff;font-size:10px;font-weight:700;text-align:center;padding:0 4px;margin-left:auto;
  }

  /* Kalender */
  .cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
  .cal-label{font-family:Arial,sans-serif;font-weight:700;font-size:14px;}
  .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
  .cal-weekday{font-family:Arial,sans-serif;font-size:10.5px;color:var(--grey);text-transform:uppercase;text-align:center;padding-bottom:4px;}
  .cal-daycell{min-height:92px;border:1px solid var(--lightgrey);border-radius:7px;padding:6px;font-size:11px;background:#fff;}
  .cal-daycell.othermonth{opacity:.4;background:#fafafa;}
  .cal-daycell.today{border-color:var(--gelb);background:#fffaf0;}
  .cal-daynum{font-family:Arial,sans-serif;font-weight:700;font-size:11px;margin-bottom:4px;color:var(--grey);}
  .cal-task{background:#eef2f3;border-left:3px solid var(--blau);border-radius:4px;padding:2px 5px;margin-bottom:3px;font-size:10.5px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .cal-task.p-hoch{border-left-color:#c9791a;}
  .cal-task.p-dringend{border-left-color:var(--red);}
  .cal-task.p-done{opacity:.4;text-decoration:line-through;}

  /* Bulk bar + sortable list */
  .bulk-bar{
    display:none;align-items:center;gap:10px;background:#eef9fb;border:1px solid #bfe6ee;border-radius:8px;
    padding:8px 14px;margin-bottom:10px;font-family:Arial,sans-serif;font-size:12.5px;
  }
  .bulk-bar.show{display:flex;}
  .bulk-bar select{font-family:Arial,sans-serif;font-size:12px;padding:5px 8px;border:1px solid var(--lightgrey);border-radius:6px;}
  table.tasklist th.sortable{cursor:pointer;user-select:none;}
  table.tasklist th.sortable:hover{color:var(--blau);}
  table.tasklist th .sort-arrow{margin-left:3px;opacity:.5;}
  table.tasklist td.chkcol{width:26px;}

  /* ================= KI-ASSISTENT (CHATBOT) ================= */
  .chat-fab{
    position:fixed;right:24px;bottom:24px;z-index:300;
    width:56px;height:56px;border-radius:50%;
    background:var(--accent);color:#fff;border:none;cursor:pointer;
    box-shadow:0 4px 14px rgba(0,0,0,.25);
    display:flex;align-items:center;justify-content:center;font-size:24px;
    transition:transform .15s, background .15s;
  }
  .chat-fab:hover{background:var(--accent-dark);transform:scale(1.06);}
  .chat-fab .icon{width:24px;height:24px;}
  .chat-fab .fab-badge{
    position:absolute;top:-2px;right:-2px;background:var(--red);color:#fff;
    border-radius:9px;min-width:16px;height:16px;line-height:16px;font-size:10px;
    font-weight:700;text-align:center;padding:0 4px;display:none;
  }
  .chat-panel{
    position:fixed;right:24px;bottom:92px;z-index:300;
    width:380px;max-width:92vw;height:560px;max-height:75vh;
    background:#fff;border-radius:16px;box-shadow:0 10px 40px rgba(0,0,0,.28);
    display:none;flex-direction:column;overflow:hidden;
    font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,Helvetica,sans-serif;
  }
  .chat-panel.open{display:flex;}
  .chat-head{
    background:var(--dark);color:#fff;padding:14px 16px;
    display:flex;align-items:center;justify-content:space-between;flex-shrink:0;
  }
  .chat-head .ct{font-weight:700;font-size:14px;display:flex;align-items:center;gap:8px;}
  .chat-head .ct .dot2{width:8px;height:8px;border-radius:50%;background:var(--green);flex-shrink:0;}
  .chat-head .ct .dot2.off{background:#888;}
  .chat-head-btns{display:flex;gap:4px;}
  .chat-icon-btn{background:none;border:none;color:#cfcfcf;cursor:pointer;font-size:15px;padding:5px 7px;border-radius:5px;display:inline-flex;align-items:center;justify-content:center;}
  .chat-icon-btn:hover{color:#fff;background:#333;}
  .chat-icon-btn .icon{width:16px;height:16px;}
  .chat-body{flex:1;overflow-y:auto;padding:14px;background:#f7f8f9;}
  .chat-msg{max-width:86%;margin-bottom:10px;font-size:13px;line-height:1.45;padding:9px 12px;border-radius:12px;white-space:pre-wrap;}
  .chat-msg.user{background:var(--accent);color:#fff;margin-left:auto;border-bottom-right-radius:3px;}
  .chat-msg.assistant{background:#fff;color:var(--dark);box-shadow:0 1px 2px rgba(0,0,0,.08);border-bottom-left-radius:3px;}
  .chat-msg.system-note{background:none;color:var(--grey);font-size:11.5px;text-align:center;max-width:100%;padding:4px 8px;}
  .chat-msg.error{background:#fdf3f2;color:var(--red);box-shadow:0 1px 2px rgba(0,0,0,.08);}
  .chat-typing{display:flex;gap:4px;padding:9px 12px;}
  .chat-typing span{width:6px;height:6px;border-radius:50%;background:#bbb;animation:chatblink 1.2s infinite;}
  .chat-typing span:nth-child(2){animation-delay:.2s;}
  .chat-typing span:nth-child(3){animation-delay:.4s;}
  @keyframes chatblink{0%,80%,100%{opacity:.3;}40%{opacity:1;}}
  .chat-input-row{display:flex;gap:8px;padding:12px;border-top:1px solid var(--lightgrey);flex-shrink:0;background:#fff;}
  .chat-input-row textarea{
    flex:1;resize:none;border:1px solid var(--lightgrey);border-radius:10px;padding:9px 11px;
    font-size:13px;font-family:inherit;max-height:80px;
  }
  .chat-input-row textarea:focus{outline:none;border-color:var(--accent);}
  .chat-send-btn{
    background:var(--accent);color:#fff;border:none;border-radius:10px;
    width:38px;flex-shrink:0;cursor:pointer;
    display:flex;align-items:center;justify-content:center;
  }
  .chat-send-btn .icon{width:17px;height:17px;}
  .chat-send-btn:hover{background:var(--accent-dark);}
  .chat-send-btn:disabled{background:#ccc;cursor:not-allowed;}
  .chat-settings{padding:16px;overflow-y:auto;background:#fff;flex:1;}
  .chat-settings label{display:block;font-family:Arial,sans-serif;font-size:10.5px;text-transform:uppercase;color:var(--grey);letter-spacing:.3px;margin:12px 0 5px 0;}
  .chat-settings label:first-child{margin-top:0;}
  .chat-settings input[type=password],.chat-settings input[type=text],.chat-settings select{
    width:100%;font-size:13px;border:1px solid var(--lightgrey);border-radius:7px;padding:8px 10px;
  }
  .chat-settings .cs-note{font-size:11.5px;color:var(--grey);margin-top:6px;line-height:1.4;}
  .chat-settings .cs-actions{display:flex;gap:8px;margin-top:16px;}
  .chat-empty{text-align:center;color:var(--grey);font-size:12.5px;padding:30px 14px;}
  .chat-empty b{display:block;color:var(--dark);font-size:13.5px;margin-bottom:6px;}
  .chat-suggest{display:inline-block;margin:4px 4px 0 0;padding:5px 10px;background:#fff;border:1px solid var(--lightgrey);border-radius:20px;font-size:11.5px;cursor:pointer;}
  .chat-suggest:hover{border-color:var(--accent);color:var(--accent);}

  /* Chatbot auf dem Handy: fast vollflaechig statt kleiner schwebender Box (muss NACH der Basis-Definition
     oben stehen, damit die Regel in der Kaskade greift) */
  @media(max-width:640px){
    .chat-panel{
      right:10px;left:10px;bottom:10px;
      width:auto;max-width:none;height:auto;max-height:calc(100vh - 20px);
    }
    .chat-body{-webkit-overflow-scrolling:touch;}
    .chat-fab{right:16px;bottom:16px;width:52px;height:52px;}
    .chat-icon-btn{padding:8px 9px;}
  }

  /* Foto-Galerie */
  .foto-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;}
  .foto-region-empty{grid-column:1/-1;padding:28px;text-align:center;color:var(--grey);font-size:13px;background:#fafbfc;border-radius:12px;border:1px dashed var(--lightgrey);}
  .foto-card{position:relative;border-radius:10px;overflow:hidden;background:#eee;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.1);aspect-ratio:1/1;}
  .foto-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .15s ease;}
  .foto-card:hover img{transform:scale(1.04);}
  .foto-star{
    position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:50%;
    background:rgba(20,20,20,.55);color:#fff;border:none;font-size:14px;cursor:pointer;
    display:flex;align-items:center;justify-content:center;line-height:1;
  }
  .foto-star.is-fav{background:var(--gelb);color:#3a2f00;}
  .foto-card .foto-cap{
    position:absolute;left:0;right:0;bottom:0;padding:5px 8px;
    background:linear-gradient(transparent,rgba(0,0,0,.55));color:#fff;
    font-family:Arial,sans-serif;font-size:10px;
  }
  .asset-foto-pick{font-family:Arial,sans-serif;font-size:10.5px;border:1px solid var(--lightgrey);background:#fafafa;border-radius:6px;padding:4px 7px;cursor:pointer;white-space:nowrap;}
  @media(max-width:640px){.foto-star{width:32px;height:32px;}}

  /* Budget-Modul: Kampagnenentwicklung / Umsetzung / Bezahlt / Übersicht */
  #p-budget table.tracker input[type=text],
  #p-budget table.tracker select{width:100%;min-width:0;font-size:12.5px;}
  #p-budget .status-neg{color:var(--red);}
  #p-budget table.tracker{border-collapse:separate;border-spacing:0;}
  #p-budget table.tracker th{
    font-family:Arial,sans-serif;font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;
    color:var(--grey);background:#f6f7f8;padding:10px 12px;text-align:left;border-bottom:1px solid var(--lightgrey);
  }
  #p-budget table.tracker td{padding:9px 12px;vertical-align:middle;border-bottom:1px solid #f0f1f2;}
  #p-budget table.tracker tbody tr:hover td{background:#fafbfc;}
  #p-budget tfoot td{font-family:Arial,sans-serif;font-weight:700;border-top:2px solid var(--lightgrey);background:#fafafa;}
  .bp-filter-row{display:flex;align-items:center;gap:10px;margin:10px 0 14px;flex-wrap:wrap;}
  .bp-filter-row select{font-family:Arial,sans-serif;font-size:12.5px;padding:6px 10px;border:1px solid var(--lightgrey);border-radius:8px;}
  #bp-detail-modal .mrow{margin-bottom:12px;}
  .stat-card .stat-num-input{
    font-family:Arial,sans-serif;font-size:24px;font-weight:800;color:var(--blau);
    border:none;background:transparent;padding:0;width:100%;
  }
  .stat-card .stat-num-input:focus{outline:none;border-bottom:2px solid var(--blau);}
  .stat-card.editable{border:1px dashed var(--lightgrey);}
  .stat-card .stat-num.status-neg{color:var(--red);}
  .bp-phase-sub h3{font-size:13px;margin:0 0 8px;color:var(--grey);font-family:Arial,sans-serif;text-transform:uppercase;letter-spacing:.03em;}

  /* Gruppenkopf pro Leistungspaket, ersetzt die frühere Leistungspaket-Dropdown-Spalte */
  #p-budget tr.bp-group-row td{
    background:#eef1f4;font-family:Arial,sans-serif;font-weight:700;font-size:11px;
    text-transform:uppercase;letter-spacing:.04em;color:#5b6472;padding:8px 12px;
    border-top:1px solid var(--lightgrey);border-bottom:1px solid var(--lightgrey);
  }
  #p-budget tr.bp-group-row:first-child td{border-top:none;}

  /* Maßnahme-Zelle: Name + kleine Meta-Badges statt eigener Spalten */
  .bp-massnahme-name input{font-size:12.5px;margin-bottom:5px;}
  .bp-meta-badges{display:flex;gap:5px;flex-wrap:wrap;}
  .bp-badge{
    display:inline-block;font-family:Arial,sans-serif;font-size:9.5px;font-weight:700;
    padding:2px 7px;border-radius:10px;background:#eef1f4;color:#5b6472;white-space:nowrap;
  }
  .bp-badge-media{background:#fdf3ea;color:#a8681a;}
  .bp-badge-fremd{background:#eef4fb;color:#2c6ba3;}

  /* Kompakte Menge×Preis→Plan-Zelle (ersetzt 3 einzelne Spalten je Projektjahr) */
  .bp-cell-inputs{display:flex;align-items:center;gap:3px;margin-bottom:5px;}
  .bp-cell-inputs input{
    width:60px;font-size:10px;padding:4px 4px;border:1px solid var(--lightgrey);
    border-radius:5px;text-align:right;background:#fff;
    -moz-appearance:textfield; /* Firefox: keine Spinner-Pfeile fressen Platz */
  }
  /* Chrome/Safari: die eingebauten Auf/Ab-Pfeile bei type=number nehmen sonst
     ca. 15-20px Breite weg -- bei dreistelligen+ Beträgen (ab 100 EUR) blieb
     dadurch kaum noch Platz für die Ziffern selbst, der Wert wurde effektiv
     unsichtbar/abgeschnitten. Ohne die Pfeile passt auch "4.320" sauber rein. */
  .bp-cell-inputs input::-webkit-outer-spin-button,
  .bp-cell-inputs input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
  .bp-cell-inputs input:focus{outline:none;border-color:var(--blau);}
  .bp-cell-x{color:#b3b8bf;font-size:10px;flex-shrink:0;}
  .bp-cell-plan{font-family:Arial,sans-serif;font-weight:700;color:var(--blau);font-size:13px;text-align:right;}

  /* Bezahlt-Tabelle: Plan/Rest oben, Beauftragt/Bezahlt-Inputs darunter */
  .bp-cell-toprow{display:flex;justify-content:space-between;gap:8px;font-family:Arial,sans-serif;font-size:11px;margin-bottom:5px;}
  .bp-cell-planlabel{color:var(--grey);}
  .bp-cell-rest{font-weight:700;}
  .bp-cell-inputs input.bp-mini{width:auto;flex:1;min-width:0;font-size:10px;padding:4px 4px;border:1px solid var(--lightgrey);border-radius:5px;text-align:right;}
  #bp-control-totals .bp-cell-sub{font-family:Arial,sans-serif;font-size:10.5px;color:var(--grey);}

  /* ID-Spalte: nur zur Referenz (z.B. für Belege), nicht die eigentliche
     Information der Zeile -- bewusst schmal und blass, damit Maßnahme und
     Zahlenfelder mehr Platz bekommen (siehe Spaltenbreiten in index.html). */
  .bp-id-col{font-family:Arial,sans-serif;font-size:9.5px;color:#c2c6cc;white-space:nowrap;}
  .bp-actions-col{white-space:nowrap;text-align:right;}

  /* ================= BENUTZERVERWALTUNG ================= */
  .ua-user-list{display:flex;flex-direction:column;gap:8px;max-height:340px;overflow-y:auto;}
  .ua-row{background:#fafbfc;border:1px solid var(--lightgrey);border-radius:10px;padding:10px 14px;}
  .ua-row-main{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;}
  .ua-row-main b{font-size:13.5px;color:var(--dark);}
  .ua-row-email{font-size:11.5px;color:var(--grey);}
  .ua-row-role{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap;}
  .ua-row-pages{font-size:11px;color:var(--grey);}
  .ua-row-actions{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap;}
  .ua-row-actions .btn{padding:5px 10px;font-size:11px;}
  .ua-row-detail{margin-top:8px;}
  .ua-pages-list{display:flex;flex-direction:column;gap:1px;max-height:420px;overflow-y:auto;border:1px solid var(--lightgrey);border-radius:8px;padding:4px 10px;background:#fff;}
  .ua-page-group{border-bottom:1px solid #f2f2f2;padding:3px 0;}
  .ua-page-group:last-child{border-bottom:none;}
  .ua-page-row{display:flex;align-items:center;gap:8px;padding:5px 0;}
  .ua-page-row input[type=checkbox]{width:16px;height:16px;flex-shrink:0;cursor:pointer;}
  .ua-page-row label{flex:1;font-size:13px;color:var(--dark);cursor:pointer;margin:0;}
  .ua-sub-toggle-btn{
    border:none;background:none;color:var(--blau);font-family:Arial,sans-serif;font-size:11px;
    font-weight:600;cursor:pointer;padding:2px 6px;white-space:nowrap;
  }
  .ua-sub-toggle-btn:hover{text-decoration:underline;}
  .ua-sub-list{display:none;flex-direction:column;gap:0;margin:0 0 4px 26px;padding:4px 0 4px 10px;border-left:2px solid var(--lightgrey);}
  .ua-sub-list.open{display:flex;}
  .ua-sub-row{display:flex;align-items:center;gap:8px;padding:3px 0;}
  .ua-sub-row input[type=checkbox]{width:14px;height:14px;flex-shrink:0;cursor:pointer;}
  .ua-sub-row label{flex:1;font-size:12px;color:var(--grey);cursor:pointer;margin:0;}
  #ua-new-pages-wrap label{display:block;font-family:Arial,sans-serif;font-size:11px;text-transform:uppercase;letter-spacing:.3px;color:var(--grey);margin-bottom:6px;}

  /* Wiederverwendet aus dem Kunden-Guideline-Modal: gleiches Checkbox-Zeilen-Muster */
  .guideline-check-row{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:13px;}
  .guideline-check-row label{margin:0;flex:1;text-transform:none;font-size:13px;color:var(--dark);}
  .guideline-check-row input[type=checkbox]{width:16px;height:16px;flex-shrink:0;cursor:pointer;}
  .gcr-tag{font-size:9.5px;text-transform:uppercase;color:var(--grey);background:#eef2f3;padding:1px 7px;border-radius:8px;flex-shrink:0;}

  /* ================= KUNDEN-ZUGANG (nur Ansicht) ================= */
  body.role-client-readonly input:disabled,
  body.role-client-readonly select:disabled,
  body.role-client-readonly textarea:disabled{
    background:#f5f6f7 !important;color:var(--grey) !important;cursor:default !important;opacity:1 !important;
    -webkit-text-fill-color:var(--grey);
  }
  /* Statusleiste (offene Aufgaben/Budget-%/Checkliste-%/naechster Meilenstein) ist
     internes Arbeits-Tracking -- fuer den Kunden-Zugang immer ausgeblendet, nicht
     nur auf Mobile. */
  body.role-client-readonly .status-bar{display:none !important;}

  /* ================= RAKETEN-FLYBY ================= */
  .rocket-flyby{
    position:fixed;left:-10vw;bottom:-10vh;width:84px;height:84px;
    z-index:99999;pointer-events:none;opacity:0;
  }
  .rocket-flyby.fly{animation:rocketFlyby 1s linear forwards;}
  @keyframes rocketFlyby{
    0%{transform:translate(0,0);opacity:1;}
    88%{opacity:1;}
    100%{transform:translate(122vw,-122vh);opacity:0;}
  }
