:root{--red: #cc1f1f;--red-hover: #a91717;--blue: #1a5fa8;--green: #2a7a4a;--amber: #b85800;--ink: #1b1d1f;--dark: #26282b;--muted: #8b8680;--border: #e7e3dd;--border-strong: #d8d3cc;--paper: #faf9f7;--light: #f4f2ee;--white: #fff;--red-light: #fbeeee;--green-light: #ecf5f0;--amber-light: #fdf3e7;--blue-light: #edf3fa;--r1: 7px;--r2: 10px;--r3: 14px;--r4: 18px;--shadow: 0 1px 2px rgba(38, 33, 28, .05), 0 4px 14px rgba(38, 33, 28, .06);--ease: cubic-bezier(.2, .7, .2, 1);--font: "DM Sans", system-ui, -apple-system, sans-serif;--font-head: "Space Grotesk", "DM Sans", system-ui, sans-serif;--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--sat: env(safe-area-inset-top, 0px);--sab: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}html,body{margin:0;height:100%}body{font-family:var(--font);font-size:15px;line-height:1.45;color:var(--dark);background:var(--light);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}#root{min-height:100%;display:flex;flex-direction:column}::selection{background:#cc1f1f2e}a{color:var(--blue);text-decoration:none}button{font:inherit}h1,h2,h3{font-family:var(--font-head);color:var(--ink);margin:0;letter-spacing:-.01em}code,pre{font-family:var(--mono)}.app{display:flex;flex-direction:column;min-height:100dvh}.topbar{position:sticky;top:0;z-index:20;background:var(--dark);background:linear-gradient(180deg,#2c2f33,#26282b);color:#fff;padding:calc(var(--sat) + 10px) 14px 10px;display:flex;align-items:center;gap:10px;min-height:calc(var(--sat) + 54px);box-shadow:0 1px #ffffff0f}.topbar .back{width:36px;height:36px;border-radius:10px;border:0;background:#ffffff14;color:#fff;display:grid;place-items:center;cursor:pointer;flex:none}.topbar .title{flex:1;min-width:0}.topbar .title h1{color:#fff;font-size:1.05rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar .title .sub{font-size:.72rem;color:#fff9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar .brand{display:flex;align-items:center;gap:10px}.topbar .brand .mark{width:4px;height:24px;background:var(--red);border-radius:2px}.topbar .actions{display:flex;gap:6px}.topbar .iconbtn{width:36px;height:36px;border-radius:10px;border:0;background:#ffffff14;color:#fff;display:grid;place-items:center;cursor:pointer}.content{flex:1;padding:14px 14px calc(var(--sab) + 20px);max-width:760px;width:100%;margin:0 auto}.panel{background:#fff;border:1px solid var(--border);border-radius:var(--r3);box-shadow:var(--shadow);overflow:hidden}.panel+.panel{margin-top:12px}.ph{padding:10px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:8px}.pt{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}.list{list-style:none;margin:0;padding:0}.list li{border-top:1px solid var(--border)}.list li:first-child{border-top:0}.row{display:flex;align-items:center;gap:12px;padding:12px 14px;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .15s var(--ease)}.row:active{background:var(--paper)}.row .main{flex:1;min-width:0}.row .name{font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row .meta{font-size:.78rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.row .chev{color:var(--border-strong);flex:none}.group-label{font-family:var(--font-head);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin:18px 4px 8px}.group-label:first-child{margin-top:4px}.badge{display:inline-flex;align-items:center;gap:5px;font-size:.68rem;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--light);color:var(--muted);border:1px solid var(--border);white-space:nowrap}.badge.laeuft{background:var(--blue-light);color:var(--blue);border-color:transparent}.badge.wartet{background:var(--amber-light);color:var(--amber);border-color:transparent}.badge.bereit{background:var(--green-light);color:var(--green);border-color:transparent}.badge.fehler{background:var(--red-light);color:var(--red);border-color:transparent}.badge.neu{background:var(--light)}.dot{width:7px;height:7px;border-radius:50%;background:currentColor}.dot.pulse{animation:pulse 1.2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.25}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;border-radius:var(--r2);border:1px solid transparent;font-weight:600;cursor:pointer;background:var(--dark);color:#fff;transition:transform .12s var(--ease),background .15s var(--ease),opacity .15s;-webkit-tap-highlight-color:transparent;min-height:42px}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:default}.btn.red{background:var(--red)}.btn.red:active{background:var(--red-hover)}.btn.ghost{background:#fff;color:var(--dark);border-color:var(--border-strong)}.btn.danger{background:var(--red-light);color:var(--red)}.btn.sm{padding:6px 12px;min-height:34px;font-size:.85rem;border-radius:8px}.btn.block{width:100%}.btn-row{display:flex;gap:8px;flex-wrap:wrap}.field{display:block;margin-bottom:12px}.field>span{display:block;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px}input,textarea,select{font:inherit;width:100%;padding:11px 12px;border:1px solid var(--border-strong);border-radius:var(--r2);background:#fff;color:var(--ink);outline:none;transition:box-shadow .15s var(--ease),border-color .15s}input:focus,textarea:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 4px #1a5fa82e}textarea{resize:none}.hint{font-size:.8rem;color:var(--muted)}.error{background:var(--red-light);color:var(--red);padding:10px 12px;border-radius:var(--r2);font-size:.9rem;margin-bottom:12px}.notice{background:var(--amber-light);color:var(--amber);padding:10px 12px;border-radius:var(--r2);font-size:.9rem;margin-bottom:12px}.toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px}.seg{display:inline-flex;background:var(--light);border:1px solid var(--border);border-radius:10px;padding:3px}.seg button{border:0;background:transparent;padding:6px 12px;border-radius:8px;font-weight:600;font-size:.85rem;color:var(--muted);cursor:pointer}.seg button.on{background:#fff;color:var(--ink);box-shadow:var(--shadow)}.login{min-height:100dvh;display:grid;place-items:center;padding:20px;background:radial-gradient(1200px 600px at 50% -10%,#fff 0%,var(--light) 60%)}.login .card{width:100%;max-width:380px;background:#fff;border:1px solid var(--border);border-radius:var(--r4);padding:26px 22px;box-shadow:var(--shadow)}.login .logo{display:flex;align-items:center;gap:12px;margin-bottom:22px}.login .logo .mark{width:5px;height:34px;background:var(--red);border-radius:3px}.login h1{font-size:1.4rem}.login input:focus{border-color:var(--red);box-shadow:0 0 0 4px #cc1f1f24}.chat{display:flex;flex-direction:column;min-height:calc(100dvh - var(--sat) - 54px)}.chat .stream{flex:1;padding:14px 14px 10px;display:flex;flex-direction:column;gap:10px;max-width:760px;width:100%;margin:0 auto}.msg{max-width:92%;animation:fade .25s var(--ease)}@keyframes fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.msg.user{align-self:flex-end;background:var(--dark);color:#fff;padding:10px 14px;border-radius:16px 16px 4px;white-space:pre-wrap;word-break:break-word}.msg.assistant{align-self:flex-start;background:#fff;border:1px solid var(--border);padding:10px 14px;border-radius:16px 16px 16px 4px;box-shadow:var(--shadow);width:100%;max-width:100%}.msg.assistant.live{border-color:var(--blue-light)}.md p{margin:0 0 8px}.md p:last-child{margin-bottom:0}.md ul,.md ol{margin:4px 0 8px;padding-left:20px}.md li{margin:2px 0}.md h1,.md h2,.md h3{font-size:1rem;margin:10px 0 6px}.md pre{background:var(--ink);color:#eae7e1;padding:10px 12px;border-radius:8px;overflow-x:auto;font-size:.8rem;margin:6px 0;white-space:pre}.md code{background:var(--light);padding:1px 5px;border-radius:4px;font-size:.85em}.md pre code{background:transparent;padding:0}.md table{border-collapse:collapse;font-size:.85rem;display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--border);padding:4px 8px;text-align:left}.tool{align-self:flex-start;width:100%;background:var(--paper);border:1px solid var(--border);border-radius:10px;font-size:.82rem;overflow:hidden}.tool .head{display:flex;align-items:center;gap:8px;padding:7px 10px;cursor:pointer;color:var(--dark)}.tool .head .ico{width:20px;height:20px;border-radius:6px;background:var(--light);display:grid;place-items:center;color:var(--muted);flex:none;font-size:.7rem;font-weight:700}.tool .head .lbl{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tool .head .st{color:var(--muted);font-size:.7rem}.tool .head .st.err{color:var(--red)}.tool .body{border-top:1px solid var(--border);padding:8px 10px}.tool pre{margin:0;white-space:pre-wrap;word-break:break-word;font-size:.75rem;max-height:300px;overflow:auto;color:var(--dark)}.tool .body+.body{background:#fff}.think{align-self:flex-start;font-size:.78rem;color:var(--muted);font-style:italic;cursor:pointer;padding:2px 4px}.think pre{font:inherit;white-space:pre-wrap;margin:4px 0 0;color:var(--muted)}.info{align-self:center;font-size:.75rem;color:var(--muted);text-align:center;padding:2px 10px}.result{align-self:stretch;border-radius:12px;padding:10px 14px;font-size:.85rem;border:1px solid var(--border);background:#fff;border-left:3px solid var(--green)}.result.err{border-left-color:var(--red)}.result .meta{color:var(--muted);font-size:.72rem;margin-top:4px}.errmsg{align-self:stretch;background:var(--red-light);color:var(--red);padding:10px 14px;border-radius:10px;font-size:.85rem}.approval{align-self:stretch;background:#fff;border:1px solid var(--amber);border-radius:12px;padding:12px 14px;box-shadow:var(--shadow)}.approval .lbl{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--amber);margin-bottom:4px}.approval .t{font-weight:600;color:var(--ink);margin-bottom:8px;word-break:break-word}.approval pre{background:var(--paper);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-size:.75rem;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow:auto;margin:0 0 10px}.approval.done{border-color:var(--border);opacity:.75}.approval .q{margin-bottom:10px}.approval .q .qt{font-weight:600;margin-bottom:6px}.approval .opt{display:block;width:100%;text-align:left;background:#fff;border:1px solid var(--border-strong);border-radius:8px;padding:8px 10px;margin-bottom:6px;cursor:pointer}.approval .opt.on{border-color:var(--blue);box-shadow:0 0 0 3px #1a5fa82e}.approval .opt small{display:block;color:var(--muted)}.composer{position:sticky;bottom:0;z-index:10;background:#f4f2eeeb;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--border);padding:8px 12px calc(var(--sab) + 8px)}.composer .inner{max-width:760px;margin:0 auto;display:flex;gap:8px;align-items:flex-end}.composer textarea{flex:1;min-height:44px;max-height:160px;padding:11px 12px;border-radius:14px;line-height:1.35}.composer .send{width:44px;height:44px;border-radius:12px;border:0;background:var(--dark);color:#fff;display:grid;place-items:center;cursor:pointer;flex:none}.composer .send.stop{background:var(--red)}.composer .send:disabled{opacity:.4}.composer .attach{width:44px;height:44px;border-radius:12px;border:1px solid var(--border-strong);background:#fff;color:var(--muted);display:grid;place-items:center;cursor:pointer;flex:none}.composer .thumbs{max-width:760px;margin:0 auto 6px;display:flex;gap:6px}.composer .thumbs img{width:54px;height:54px;object-fit:cover;border-radius:8px;border:1px solid var(--border)}.statusline{max-width:760px;margin:0 auto 6px;font-size:.75rem;color:var(--muted);display:flex;align-items:center;gap:6px}.kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.kpi .k{background:#fff;border:1px solid var(--border);border-radius:12px;padding:10px 12px;border-top:2px solid var(--dark)}.kpi .k.red{border-top-color:var(--red)}.kpi .k.green{border-top-color:var(--green)}.kpi .k.amber{border-top-color:var(--amber)}.kpi .k .l{font-size:.62rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:600}.kpi .k .v{font-size:1.3rem;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}.kpi .k .v small{font-size:.75rem;color:var(--muted);font-weight:500}.commits{font-size:.8rem}.commits li{padding:8px 14px;display:flex;gap:8px}.commits code{color:var(--muted);font-size:.75rem;flex:none}.quick{display:flex;gap:8px;flex-wrap:wrap;padding:10px 14px}.empty{padding:30px 14px;text-align:center;color:var(--muted);font-size:.9rem}.spinner{width:14px;height:14px;border:2px solid var(--border-strong);border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.search{padding:10px 14px}.search input{padding:9px 12px;border-radius:10px}.fab{position:fixed;right:16px;bottom:calc(var(--sab) + 16px);z-index:15}.fab .btn{border-radius:999px;padding:12px 18px;box-shadow:0 6px 20px #26211c40}.offline{background:var(--amber-light);color:var(--amber);text-align:center;font-size:.78rem;padding:4px}.small{font-size:.8rem}.muted{color:var(--muted)}.mt{margin-top:12px}.pad{padding:12px 14px}
