  :root{
    --bg:#f4f3ef; --card:#ffffff; --ink:#1c2430; --muted:#6b7280;
    --accent:#1f3a5f; --accent-soft:#e8eef6; --line:#e3e1da;
    --amber:#b45309; --amber-soft:#fef3e2; --green:#15803d;
    --danger:#b91c1c; --radius:14px;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  body{background:var(--bg); color:var(--ink); font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; line-height:1.55;}
  h1,h2,h3,h4{font-family:Georgia,"Times New Roman",serif; font-weight:600; line-height:1.25;}
  header{background:var(--accent); color:#fff; padding:14px 20px; position:sticky; top:0; z-index:50; box-shadow:0 2px 10px rgba(0,0,0,.15);}
  .head-inner{max-width:980px; margin:0 auto; display:flex; align-items:center; gap:18px; flex-wrap:wrap;}
  .logo{font-family:Georgia,serif; font-size:1.25rem; letter-spacing:.3px;}
  .logo small{display:block; font-size:.7rem; opacity:.75; font-family:inherit;}
  nav{display:flex; gap:6px; margin-left:auto; flex-wrap:wrap;}
  nav button{background:transparent; color:#fff; border:1px solid rgba(255,255,255,.35); border-radius:9px; padding:7px 14px; cursor:pointer; font-size:.9rem;}
  nav button.active{background:#fff; color:var(--accent); font-weight:600;}
  nav button:hover{border-color:#fff;}
  .keydot{width:10px; height:10px; border-radius:50%; display:inline-block; margin-left:6px; background:var(--danger);}
  .keydot.ok{background:#4ade80;}
  main{max-width:980px; margin:26px auto 80px; padding:0 18px;}
  section{display:none;}
  section.active{display:block;}
  .card{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:22px; margin-bottom:18px; box-shadow:0 1px 4px rgba(0,0,0,.04);}
  .card h2{margin-bottom:12px; color:var(--accent);}
  .card h3{margin-bottom:10px;}
  label{font-weight:600; font-size:.88rem; display:block; margin:14px 0 6px;}
  textarea, input[type=text], input[type=password], select{
    width:100%; border:1px solid var(--line); border-radius:10px; padding:10px 12px;
    font-size:.95rem; font-family:inherit; background:#fcfcfa; color:var(--ink);
  }
  textarea:focus, input:focus, select:focus{outline:2px solid var(--accent-soft); border-color:var(--accent);}
  textarea{resize:vertical;}
  .row{display:flex; gap:14px; flex-wrap:wrap;}
  .row > div{flex:1; min-width:220px;}
  .btn{background:var(--accent); color:#fff; border:none; border-radius:10px; padding:11px 20px; font-size:.95rem; cursor:pointer; font-weight:600;}
  .btn:hover{filter:brightness(1.12);}
  .btn:disabled{opacity:.45; cursor:not-allowed;}
  .btn.secondary{background:#fff; color:var(--accent); border:1.5px solid var(--accent);}
  .btn.small{padding:6px 12px; font-size:.83rem;}
  .btn.danger{background:var(--danger);}
  .btn.ghost{background:transparent; border:1px solid var(--line); color:var(--muted);}
  .hint{font-size:.8rem; color:var(--muted); margin-top:5px;}
  .toggle{display:flex; align-items:center; gap:9px; cursor:pointer; font-weight:600; font-size:.9rem; margin:10px 0;}
  .toggle input{width:auto;}
  /* Kopf-Chips */
  .chips{display:flex; flex-wrap:wrap; gap:8px; margin-top:8px;}
  .chip{display:flex; align-items:center; gap:8px; border:1.5px solid var(--line); background:#fff; border-radius:24px; padding:6px 14px 6px 6px; cursor:pointer; font-size:.86rem; user-select:none; transition:all .12s;}
  .chip .avatar{width:26px; height:26px; font-size:.66rem;}
  .chip.on{border-color:var(--accent); background:var(--accent-soft); font-weight:600;}
  .chip.dim{opacity:.4;}
  .avatar{border-radius:50%; color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; flex-shrink:0; letter-spacing:.3px;}
  /* Beiträge */
  .entry{background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:18px 20px; margin-bottom:14px; box-shadow:0 1px 3px rgba(0,0,0,.04);}
  .entry-head{display:flex; align-items:center; gap:12px; margin-bottom:10px; cursor:pointer;}
  .entry-head .avatar{width:40px; height:40px; font-size:.85rem;}
  .entry-head .who b{font-size:1rem;}
  .entry-head .who span{display:block; font-size:.76rem; color:var(--muted);}
  .entry-body p{margin-bottom:8px;}
  .entry-body ul,.entry-body ol{margin:6px 0 10px 22px;}
  .entry-body h3,.entry-body h4{margin:12px 0 6px; color:var(--accent);}
  .entry.checkpoint{border-left:5px solid var(--amber); background:var(--amber-soft);}
  .entry.synthese{border-left:5px solid var(--accent); background:#f6f9fd;}
  .entry.fehler{border-left:5px solid var(--danger);}
  .entry.thinking .dots::after{content:'…'; animation:blink 1.2s infinite;}
  @keyframes blink{0%{opacity:.2}50%{opacity:1}100%{opacity:.2}}
  .roundtag{display:inline-block; background:var(--accent-soft); color:var(--accent); font-size:.72rem; font-weight:700; border-radius:6px; padding:2px 8px; margin-left:auto;}
  /* Filterleiste */
  .filterbar{display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-bottom:16px; position:sticky; top:64px; background:var(--bg); padding:8px 0; z-index:10;}
  .filterbar .lbl{font-size:.8rem; color:var(--muted); font-weight:600;}
  /* Archiv */
  .arch-item{display:flex; align-items:center; gap:14px; padding:16px 18px; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); margin-bottom:10px; cursor:pointer;}
  .arch-item:hover{border-color:var(--accent);}
  .arch-item .meta{flex:1; min-width:0;}
  .arch-item .meta b{display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
  .arch-item .meta span{font-size:.78rem; color:var(--muted);}
  .mini-avatars{display:flex;}
  .mini-avatars .avatar{width:24px; height:24px; font-size:.55rem; border:2px solid #fff; margin-left:-7px;}
  .badge{font-size:.7rem; font-weight:700; padding:3px 9px; border-radius:12px;}
  .badge.done{background:#dcfce7; color:var(--green);}
  .badge.open{background:var(--amber-soft); color:var(--amber);}
  .badge.run{background:var(--accent-soft); color:var(--accent);}
  .costbar{font-size:.82rem; color:var(--muted); text-align:right; margin:6px 2px 20px;}
  .sess-meta{font-size:.83rem; color:var(--muted); margin-bottom:14px; line-height:1.7;}
  .toolrow{display:flex; gap:8px; flex-wrap:wrap; margin:14px 0;}
  .toast{position:fixed; bottom:24px; left:50%; transform:translateX(-50%); background:var(--ink); color:#fff; padding:10px 22px; border-radius:24px; font-size:.88rem; opacity:0; transition:opacity .3s; pointer-events:none; z-index:99;}
  .toast.show{opacity:1;}
  .dropzone{border:2px dashed var(--line); border-radius:12px; padding:20px 16px; text-align:center; cursor:pointer; color:var(--muted); background:#fcfcfa; transition:all .15s; margin-top:4px;}
  .dropzone:hover, .dropzone.drag{border-color:var(--accent); background:var(--accent-soft); color:var(--accent);}
  .dropzone .dz-icon{font-size:1.7rem; margin-bottom:4px;}
  .filelist{margin-top:10px; display:flex; flex-direction:column; gap:7px;}
  .filelist .f{display:flex; align-items:center; gap:10px; font-size:.9rem; background:var(--accent-soft); border:1px solid var(--line); border-radius:10px; padding:9px 12px;}
  .filelist .f .f-del{margin-left:auto; background:#fff; border:1px solid var(--line); border-radius:8px; cursor:pointer; color:var(--danger); font-weight:700; font-size:.95rem; padding:4px 10px;}
  .filelist .f .f-del:hover{background:#fee2e2; border-color:var(--danger);}
  .filelist .f-clear{align-self:flex-start;}
  .empty{color:var(--muted); text-align:center; padding:40px 0; font-style:italic;}
  /* Hilfe */
  .help-overlay{position:fixed; inset:0; background:rgba(28,36,48,.5); z-index:120; display:none; align-items:flex-start; justify-content:center; padding:40px 16px; overflow:auto;}
  .help-overlay.show{display:flex;}
  .help-card{position:relative; background:var(--card); border-radius:var(--radius); max-width:680px; width:100%; padding:26px 30px; box-shadow:0 18px 60px rgba(0,0,0,.3);}
  .help-card h2{color:var(--accent); margin-bottom:14px; padding-right:34px;}
  .help-card h3{color:var(--accent); margin:16px 0 4px; font-size:1.02rem;}
  .help-card p{font-size:.92rem; margin-bottom:4px;}
  .help-key{background:var(--amber-soft); border-left:4px solid var(--amber); border-radius:0 10px 10px 0; padding:12px 14px; font-size:.92rem; margin-bottom:6px;}
  .help-close{position:absolute; top:14px; right:14px; background:transparent; border:1px solid var(--line); border-radius:8px; width:30px; height:30px; cursor:pointer; color:var(--muted); font-size:.95rem;}
  .help-close:hover{border-color:var(--accent); color:var(--accent);}
  /* Sitzliste am Rand */
  .sidebar{position:fixed; top:96px; left:18px; width:218px; max-height:calc(100vh - 120px); overflow-y:auto; display:none; z-index:5;}
  @media(min-width:1400px){ .sidebar{display:block;} }
  .sidebar .card{padding:14px; margin-bottom:0;}
  .sb-head{font-size:.72rem; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; margin-bottom:6px;}
  .sb-progress{height:6px; background:var(--accent-soft); border-radius:99px; overflow:hidden; margin:4px 0 12px;}
  .sb-progress i{display:block; height:100%; width:0; background:var(--accent); transition:width .4s;}
  .sb-seat{display:flex; align-items:center; gap:8px; padding:5px 6px; border-radius:9px; opacity:.4; transition:all .2s;}
  .sb-seat.on{opacity:1;}
  .sb-seat.talk{background:var(--accent-soft); box-shadow:inset 0 0 0 1.5px var(--accent); opacity:1;}
  .sb-seat .avatar{width:26px; height:26px; font-size:.6rem;}
  .sb-seat .sb-who{min-width:0;}
  .sb-seat b{font-size:.79rem; display:block; line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
  .sb-seat small{font-size:.65rem; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:block;}
  .sb-count{margin-left:auto; font-size:.68rem; background:var(--accent-soft); color:var(--accent); border-radius:10px; padding:1px 7px; font-weight:700; flex-shrink:0;}
  /* Moderation & Einwurf */
  .entry.moderation{background:#f6f9fd; border-left:4px solid var(--accent); padding:12px 16px 10px;}
  .entry.moderation .entry-body p{font-style:italic; color:#33445c;}
  .entry.einwurf{border-left:5px solid var(--amber); background:var(--amber-soft);}
  /* Interaktionskarte */
  #mapCard svg{width:100%; height:auto; display:block; max-width:560px; margin:0 auto;}
  .sb-seat .avatar.stuhl{background:transparent !important; border:2px dashed var(--muted); color:var(--muted); font-size:1rem;}
  .sb-seat.stuhl-row{opacity:.75;}
  .map-edge.fresh{stroke-dasharray:7 6; animation:mapflow .9s linear infinite;}
  @keyframes mapflow{to{stroke-dashoffset:-13;}}
  .map-ring{fill:none; stroke-width:3; animation:ringpulse 1.1s ease-in-out infinite;}
  @keyframes ringpulse{0%,100%{opacity:.15;} 50%{opacity:.85;}}
  #mapCard .cap{font-size:.75rem; color:var(--muted); text-align:center; margin-top:6px; line-height:1.5;}
  .map-node text{font-size:9.5px; fill:var(--muted); text-anchor:middle; font-family:inherit;}
  .map-node text.ini{fill:#fff; font-weight:700; font-size:10px; dominant-baseline:central;}
  .map-edge{fill:none; opacity:.7; stroke-linecap:round;}
  .inline-form{display:flex; gap:8px; flex-wrap:wrap; align-items:center; flex:1; min-width:260px;}
  .inline-form input[type=text]{flex:1; min-width:180px;}
  .inline-form select{width:auto;}
  @media(max-width:640px){ .filterbar{top:110px;} }
  /* Login / Konto */
  nav button#nav-login.logged{background:#fff; color:var(--accent); font-weight:600; max-width:190px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  .src-badge{font-size:.65rem; font-weight:700; padding:2px 8px; border-radius:10px; flex-shrink:0;}
  .src-badge.server{background:var(--accent-soft); color:var(--accent);}
  .src-badge.lokal{background:#f1f0ec; color:var(--muted);}
