:root{
  --brand:#064E3B; --brand-hover:#043428; --brand-tint:#DEEEE5; --brand-ink:#064E3B;
  --bg:#FFFFFF; --surface:#FFFFFF; --surface-sunken:#F7F7F5;
  --border:#E7E7E2; --border-strong:#D4D4CC;
  --ink:#16161D; --ink-2:#6E6E7A; --ink-3:#A3A3B0;
  --done:#F3E2B8; --done-ink:#8A6516; --danger:#D64545;
  --r-card:14px; --r-btn:10px; --r-input:12px; --r-bubble:12px;
  --shadow:0 1px 2px rgba(16,16,32,.06), 0 1px 8px rgba(16,16,32,.04);
  --gap:12px; --pad:16px;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
body{margin:0;font-family:var(--font);background:var(--bg);color:var(--ink);
     -webkit-font-smoothing:antialiased}
h1,h2,h3{color:var(--brand)}

/* Basis-Look fuer alle "nackten" Formularfelder (ohne eigene Komponentenklasse
   wie .composer input), damit nirgends unbeabsichtigt reines Weiss durchschlaegt. */
input:not([type]),input[type="text"],input[type="email"],input[type="password"],input[type="search"],textarea{
  background:var(--surface);color:var(--ink);font-family:var(--font);
  border:1px solid var(--border);border-radius:var(--r-input)
}
input:not([type])::placeholder,input[type="text"]::placeholder,input[type="email"]::placeholder,
input[type="password"]::placeholder,textarea::placeholder{color:var(--ink-3)}

.screen{flex:1;display:flex;flex-direction:column;min-height:100vh;background:var(--bg)}
.scroll{flex:1;overflow-y:auto;min-height:0}

/* Kopfzeilen */
.appbar{flex:none;background:var(--surface);padding:calc(8px + env(safe-area-inset-top)) var(--pad) 12px;
        display:flex;align-items:center;justify-content:space-between;gap:12px}
.wordmark{display:flex;align-items:center;gap:9px;font-size:19px;font-weight:700;letter-spacing:-.02em}
.mark{width:28px;height:28px;border-radius:9px;background:var(--brand);flex:none;
      display:grid;place-items:center}
.iconbtn{width:44px;height:44px;border:0;background:none;display:grid;place-items:center;
         position:relative;cursor:pointer;border-radius:12px;color:var(--ink)}
.iconbtn:active{background:var(--bg)}
.badge{position:absolute;top:5px;right:5px;min-width:18px;height:18px;padding:0 5px;
       border-radius:9px;background:var(--brand);color:#fff;font-size:11px;font-weight:700;
       display:grid;place-items:center;border:2px solid var(--surface)}

/* Eingabefeld */
.composer{flex:none;background:var(--surface);padding:0 var(--pad) 12px}
.composer-inner{display:flex;align-items:center;gap:8px;background:var(--bg);
                border:1px solid var(--border);border-radius:var(--r-input);padding:6px 6px 6px 14px}
.composer input{flex:1;border:0;background:none;font:400 15px var(--font);color:var(--ink);
                padding:9px 0;outline:none;min-width:0}
.composer input::placeholder{color:var(--ink-3)}
.btn{border:0;border-radius:var(--r-btn);font:600 15px var(--font);cursor:pointer;
     padding:10px 16px;background:var(--brand);color:#fff;min-height:44px}
.btn:hover{background:var(--brand-hover)}
.btn-ghost{background:none;color:var(--brand);border:1.5px solid var(--brand);padding:8px 14px;font-size:14px}
.btn-ghost:hover{background:var(--brand-tint)}
.clip{width:44px;height:44px;border-radius:10px;border:0;background:none;display:grid;
      place-items:center;color:var(--ink-2);cursor:pointer;flex:none}
.clip:active{background:var(--border)}

.copy-row{display:flex;gap:8px;align-items:center}
.copy-row input{flex:1;min-width:0;border:1px solid var(--border);border-radius:var(--r-input);
                 padding:11px 14px;font:600 15px/1.3 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
                 background:var(--surface);color:var(--ink)}
.copy-row button{flex:none;white-space:nowrap;min-height:44px}

/* Tabs */
.tabs{flex:none;display:flex;background:var(--surface);border-bottom:1px solid var(--border);
      padding:0 var(--pad)}
.tab{flex:1;border:0;background:none;padding:13px 4px 11px;font:500 15px var(--font);
     color:var(--ink-2);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;
     text-decoration:none;text-align:center}
.tab[aria-selected="true"]{color:var(--brand);font-weight:600;border-bottom-color:var(--brand)}

/* Karten */
.list{padding:var(--pad);display:flex;flex-direction:column;gap:var(--gap)}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card);
      padding:14px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:10px;
      position:relative;overflow:hidden}
.card h3{margin:0;font:600 16px/1.35 var(--font);letter-spacing:-.01em;
         display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card-foot{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
/* .meta ist die Basis-Typografie fuer kleinen grauen Text: sowohl fuer
   Icon+Text-Badges (<span>, meist Avatar/Icon + kurzer Text) als auch fuer
   normalen Fliesstext (<p>, <label>, Hinweise, Formularbeschreibungen).
   display:flex gehoert NUR zur Badge-Variante – auf <p>/<ul> mit mehreren
   Kindknoten (z.B. Text + <a>/<b>/<code> oder <li>-Listen) reisst flex das
   Layout in nebeneinanderstehende Spalten auseinander, darum strikt auf
   span.meta beschraenkt. */
.meta{font-size:13px;color:var(--ink-2)}
.meta svg{color:var(--ink-3)}
span.meta{display:flex;align-items:center;gap:5px}
/* Kompakte Metadaten-Badges in Zeilen (Karten, Detailkopf) bleiben einzeilig; */
/* freistehender Fliesstext (Hinweise, Formularbeschreibungen) darf umbrechen. */
.card-foot .meta,.detail-meta .meta,.status-row .meta{white-space:nowrap}
.spacer{flex:1}

.card.working{background:var(--brand-tint);border-color:#DCD2FC}
.card.working .meta{color:var(--brand-ink)}
.card.mine{border-left:3px solid var(--brand)}
.card.done{background:var(--surface)}
.card.done h3{color:var(--ink-3);font-weight:500}
.card.done .meta,.card.done .avatar{color:var(--ink-3);filter:grayscale(1);opacity:.75}

.avatar{width:22px;height:22px;border-radius:50%;flex:none;display:grid;place-items:center;
        font-size:10px;font-weight:700;color:#fff;letter-spacing:.02em}
.avatar.lg{width:28px;height:28px;font-size:12px}

.section-head{padding:22px var(--pad) 2px;font:600 12px var(--font);letter-spacing:.06em;
              text-transform:uppercase;color:var(--ink-2)}
.check{color:var(--done-ink);flex:none}

/* Untere Leiste */
.tabbar{flex:none;display:flex;background:var(--surface);border-top:1px solid var(--border);
        padding:6px 0 calc(2px + env(safe-area-inset-bottom))}
.tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;
          font-size:11px;color:var(--ink-2);text-decoration:none;padding:4px 0;position:relative;
          min-height:44px;justify-content:center}
.tabbar a.on{color:var(--brand);font-weight:600}
.tabbar .badge{top:0;right:26px}

/* Detailansicht */
.detailbar{flex:none;background:var(--surface);padding:calc(4px + env(safe-area-inset-top)) var(--pad) 14px;
           border-bottom:1px solid var(--border)}
.detailbar .row1{display:flex;align-items:center;justify-content:space-between;margin:0 -8px}
.detailbar h2{margin:4px 0 10px;font:700 20px/1.3 var(--font);letter-spacing:-.02em}
.status-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.pill{background:var(--brand-tint);color:var(--brand-ink);font:600 12px var(--font);
      padding:5px 10px;border-radius:999px;letter-spacing:.01em}
.detail-meta{display:flex;align-items:center;gap:16px;margin-top:12px;flex-wrap:wrap}

.thread{padding:var(--pad);background:var(--surface-sunken);display:flex;flex-direction:column;gap:14px}
.entry{display:flex;gap:10px;align-items:flex-start}
.bubble{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-bubble);
        padding:10px 12px;flex:1;min-width:0;box-shadow:var(--shadow)}
.bubble-head{display:flex;align-items:baseline;gap:8px;margin-bottom:3px}
.bubble-head b{font:600 14px var(--font)}
.bubble-head time{font-size:12px;color:var(--ink-2);margin-left:auto;flex:none}
.bubble p{margin:0;font:400 15px/1.45 var(--font);white-space:pre-line;word-break:break-word}
.mention{color:var(--brand-ink);background:var(--brand-tint);border-radius:5px;padding:0 3px;font-weight:600}
.sysline{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;
         font-size:13px;color:var(--ink-2)}
.sysline time{margin-left:auto;flex:none}
.sysline.milestone{background:var(--done);color:var(--done-ink);font-weight:500}
.sysline.milestone time{color:var(--done-ink);opacity:.8}

.file{display:flex;align-items:center;gap:10px;margin-top:8px;padding:9px 10px;
      border:1px solid var(--border);border-radius:10px;background:var(--surface-sunken)}
.file-ico{width:32px;height:32px;border-radius:8px;flex:none;display:grid;place-items:center;
          font:700 9px var(--font);color:#fff;letter-spacing:.02em}
.f-pdf{background:#D64545}.f-doc{background:#3E7BFA}.f-xls{background:#1F7A4D}.f-img{background:#E2903A}
.file-name{font:500 14px var(--font);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.file-size{font-size:12px;color:var(--ink-2);margin-top:1px}
.file .dl{margin-left:auto;color:var(--ink-2);flex:none}
.preview{margin-top:8px;border-radius:10px;max-height:220px;width:100%;object-fit:cover;
         display:block;border:1px solid var(--border)}

.replybar{flex:none;background:var(--surface);border-top:1px solid var(--border);
          padding:10px var(--pad) calc(10px + env(safe-area-inset-bottom));
          display:flex;flex-direction:column;gap:0}
.replybar-row{display:flex;align-items:center;gap:8px}
.replybar input{flex:1;border:1px solid var(--border);background:var(--bg);border-radius:999px;
                padding:11px 16px;font:400 15px var(--font);outline:none;min-width:0}
.replybar input::placeholder{color:var(--ink-3)}
.send{width:44px;height:44px;border-radius:50%;border:0;background:var(--brand);color:#fff;
      display:grid;place-items:center;cursor:pointer;flex:none}

/* Drag&Drop-Zone und Datei-Vorschauleiste */
[data-upload-zone].dragover{outline:2px dashed var(--brand);outline-offset:-4px;background:var(--brand-tint);border-radius:var(--r-input)}
.upload-previews{display:flex;flex-wrap:wrap;gap:8px;padding:0}
.upload-previews:not(:empty){padding:10px 0 2px}
.upload-chip{position:relative;display:flex;align-items:center;gap:6px;background:var(--bg);
             border:1px solid var(--border);border-radius:10px;padding:5px 8px 5px 5px;font-size:12px;color:var(--ink-2);max-width:160px}
.upload-chip img{width:28px;height:28px;border-radius:6px;object-fit:cover;flex:none}
.upload-chip .upload-chip-icon{width:28px;height:28px;border-radius:6px;background:var(--brand-tint);color:var(--brand-ink);
             display:grid;place-items:center;flex:none;font-size:10px;font-weight:700}
.upload-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.upload-chip button{border:0;background:var(--border-strong);color:var(--ink);border-radius:50%;
             width:18px;height:18px;line-height:1;cursor:pointer;flex:none;font-size:12px;padding:0}

/* @-Erwaehnungs-Autovervollstaendigung */
.mention-dropdown{position:absolute;background:var(--surface);border:1px solid var(--border);
             border-radius:var(--r-btn);box-shadow:var(--shadow);z-index:50;max-height:180px;overflow-y:auto;min-width:160px}
.mention-dropdown button{display:block;width:100%;text-align:left;border:0;background:none;
             padding:9px 12px;font:400 14px var(--font);color:var(--ink);cursor:pointer}
.mention-dropdown button:hover,.mention-dropdown button.active{background:var(--brand-tint);color:var(--brand-ink)}

/* Bild-Vollansicht (Lightbox) */
.lightbox{position:fixed;inset:0;background:rgba(12,12,17,.92);display:none;align-items:center;justify-content:center;
          z-index:200;padding:24px;padding:calc(24px + env(safe-area-inset-top)) 24px calc(24px + env(safe-area-inset-bottom))}
.lightbox.open{display:flex}
.lightbox img{max-width:100%;max-height:100%;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.lightbox-close{position:absolute;top:calc(16px + env(safe-area-inset-top));right:16px;width:44px;height:44px;
          border-radius:50%;border:0;background:rgba(255,255,255,.12);color:#fff;display:grid;place-items:center;cursor:pointer}

/* Benachrichtigungen */
.pagehead{flex:none;background:var(--surface);padding:calc(6px + env(safe-area-inset-top)) var(--pad) 12px;
          display:flex;align-items:center;justify-content:space-between}
.pagehead h2{margin:0;font:700 22px var(--font);letter-spacing:-.02em}
.segment{flex:none;background:var(--surface);padding:0 var(--pad) 14px}
.segment-inner{display:flex;background:var(--bg);border:1px solid var(--border);
               border-radius:10px;padding:3px}
.segment button,.segment a{flex:1;border:0;background:none;padding:9px 4px;border-radius:8px;
                font:600 14px var(--font);color:var(--ink-2);cursor:pointer;text-align:center;
                text-decoration:none}
.segment button[aria-selected="true"],.segment a[aria-selected="true"]{background:var(--surface);
                color:var(--brand);box-shadow:var(--shadow)}
.notif{display:flex;gap:11px;align-items:flex-start;background:var(--surface);
       border:1px solid var(--border);border-radius:var(--r-card);padding:12px 13px;
       box-shadow:var(--shadow);position:relative}
.notif .dot{position:absolute;left:5px;top:19px;width:6px;height:6px;border-radius:50%;background:var(--brand)}
.notif-body{flex:1;min-width:0}
.notif-body b{font:600 14px/1.4 var(--font)}
.notif-body span{display:block;font-size:13px;color:var(--ink-2);margin-top:2px;
                 overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.notif time{font-size:12px;color:var(--ink-2);flex:none;white-space:nowrap}

.empty{padding:56px 32px;text-align:center;color:var(--ink-2)}
.empty b{display:block;font:600 16px var(--font);color:var(--ink);margin-bottom:6px}

summary{list-style:none}
summary::-webkit-details-marker{display:none}
summary::marker{content:""}

:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

@media (min-width:720px){
  body{display:flex;justify-content:center}
  .screen{width:100%;max-width:640px}
}
