{"id":110,"date":"2026-03-29T06:43:43","date_gmt":"2026-03-29T06:43:43","guid":{"rendered":"https:\/\/blueagency.io\/?page_id=110"},"modified":"2026-03-29T09:17:18","modified_gmt":"2026-03-29T09:17:18","slug":"ai-agents-finance-accouting","status":"publish","type":"page","link":"https:\/\/blueagency.io\/?page_id=110","title":{"rendered":"AI Agents Finance Accouting"},"content":{"rendered":"\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');\n\n\/* LANGUAGE TOGGLE SYSTEM *\/\nen { display: none; }\nde { display: contents; }\nbody.english en { display: contents; }\nbody.english de { display: none; }\n\n\/* TOTAL TAKEOVER *\/\n#blueocean-app-root {\n    --bg:#f4f7fb;\n    --card:#fff;\n    --line:#e7edf5;\n    --text:#1b2436;\n    --muted:#66748a;\n    --primary:#245dff;\n    --primary2:#113fcb;\n    --success:#18a0a6;\n    --warning:#f59e0b;\n    --danger:#dc4c64;\n    --violet:#6d5efc;\n    --shadow:0 18px 40px rgba(18,31,53,.08);\n    --shadow-hover:0 22px 45px rgba(18,31,53,.14);\n    --radius:22px;\n\n    position: fixed !important;\n    top: 0 !important;\n    left: 0 !important;\n    width: 100vw !important;\n    height: 100vh !important;\n    z-index: 999999 !important;\n    background: linear-gradient(180deg,#f8fafe,#eef3fb) !important;\n    overflow-y: auto !important;\n    overflow-x: hidden !important;\n    margin: 0 !important;\n    padding: 0 !important;\n    transform: none !important;\n    font-family: 'Inter', Segoe UI, Arial, sans-serif;\n    color: var(--text);\n    scroll-behavior: smooth;\n    text-align: left;\n}\n\n#blueocean-app-root *, #blueocean-app-root *::before, #blueocean-app-root *::after {\n    box-sizing: border-box !important;\n}\n\n#blueocean-app-root a { text-decoration: none; color: inherit; }\n#blueocean-app-root h1, #blueocean-app-root h2, #blueocean-app-root h3 { margin: 0 0 12px; color: var(--text); line-height: 1.25; letter-spacing: -0.02em; font-family: 'Inter', sans-serif; padding: 0; }\n#blueocean-app-root h1 { font-size: 44px; font-weight: 900; }\n#blueocean-app-root h2 { font-size: 28px; font-weight: 800; }\n#blueocean-app-root h3 { font-size: 18px; font-weight: 800; }\n#blueocean-app-root p { margin: 0; color: var(--muted); line-height: 1.6; font-size: 15px; padding: 0; }\n\n#blueocean-app-root .top-nav{position:sticky;top:0;z-index:40;display:flex;justify-content:space-between;align-items:center;padding:14px 22px;background:rgba(255,255,255,.85);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid rgba(231,237,245,.8);width:100%;}\n#blueocean-app-root .logo{display:flex;align-items:center;gap:12px;font-weight:900;font-size:20px;color:var(--text); white-space:nowrap;}\n#blueocean-app-root .logo-mark{width:36px;height:36px;border-radius:12px;background:linear-gradient(135deg,var(--primary),var(--violet));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:900;box-shadow:0 10px 24px rgba(36,93,255,.3)}\n#blueocean-app-root .top-links{display:flex;gap:10px;flex-wrap:nowrap;align-items:center; transition:all 0.3s ease;}\n#blueocean-app-root .top-link{white-space:nowrap;padding:10px 14px;border-radius:12px;background:transparent;color:#55657d;font-weight:700;cursor:pointer; transition: all 0.2s cubic-bezier(0.25, 0.8, 0.25, 1);}\n#blueocean-app-root .top-link:hover{background:#e7edf5; color:var(--text);}\n#blueocean-app-root .top-link.active{background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff; box-shadow:0 6px 15px rgba(36,93,255,.25);}\n#blueocean-app-root .hamburger{display:none; cursor:pointer; padding:6px; border-radius:8px;}\n#blueocean-app-root .hamburger:hover{background:#f3f6fb;}\n\n#blueocean-app-root .view{display:none; width: 100%;}\n#blueocean-app-root .view.active{display:block; animation: fadeIn 0.4s cubic-bezier(0.16, 1, 0.3, 1);}\n@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }\n\n#blueocean-app-root .hero{width:100%;max-width:1280px;margin:0 auto;padding:40px 24px;}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:28px;align-items:center}\n#blueocean-app-root .hero-card, #blueocean-app-root .card, #blueocean-app-root .panel, #blueocean-app-root .phone{background:var(--card);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow); transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.3s ease;}\n#blueocean-app-root .hero-card{padding:40px}\n\n#blueocean-app-root .lead{font-size:17px; color:#4a5872;}\n#blueocean-app-root .hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}\n\n#blueocean-app-root .btn{border:none;border-radius:14px;padding:12px 18px;font-weight:700;font-size:14px;cursor:pointer; transition: all 0.2s cubic-bezier(0.25, 0.8, 0.25, 1); outline:none; font-family:'Inter', sans-serif;}\n#blueocean-app-root .btn:active{transform:scale(0.96)}\n#blueocean-app-root .btn.primary{background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff;box-shadow:0 8px 20px rgba(36,93,255,.25); border:1px solid rgba(255,255,255,0.1);}\n#blueocean-app-root .btn.primary:hover{box-shadow:0 12px 25px rgba(36,93,255,.35); filter:brightness(1.05); transform:translateY(-2px);}\n#blueocean-app-root .btn.secondary{background:#fff;border:1px solid #dbe4f0;color:#4f5f77; box-shadow:0 4px 10px rgba(0,0,0,.03);}\n#blueocean-app-root .btn.secondary:hover{background:#f8fafe; border-color:#c9d4e4; transform:translateY(-2px); box-shadow:0 6px 15px rgba(0,0,0,.05);}\n#blueocean-app-root .btn.ghost{background:transparent;color:#55657d; border:1px solid transparent;}\n#blueocean-app-root .btn.ghost:hover{background:#e7edf5; color:var(--text);}\n#blueocean-app-root .btn.btn-sm{padding:8px 12px; font-size:12px; border-radius:10px;}\n\n#blueocean-app-root .badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700; white-space:nowrap; letter-spacing:0.01em;}\n#blueocean-app-root .badge.info{background:#eef3ff;color:var(--primary)}\n#blueocean-app-root .badge.success{background:#edf8f5;color:#137b83}\n#blueocean-app-root .badge.warn{background:#fff6e8;color:#b96a07}\n#blueocean-app-root .badge.danger{background:#fff0f3;color:#b8324b}\n#blueocean-app-root .badge.violet{background:#f3efff;color:#6554d8}\n\n#blueocean-app-root .bullets{margin-top:20px;display:grid;gap:12px}\n#blueocean-app-root .bullet{display:flex;gap:10px;align-items:flex-start}\n#blueocean-app-root .bullet span:last-child{color:var(--muted); line-height:1.5; font-size:15px;}\n#blueocean-app-root .check{width:24px;height:24px;border-radius:50%;background:#eef3ff;color:var(--primary);display:flex;align-items:center;justify-content:center;font-weight:900;flex:0 0 24px; font-size:12px;}\n\n#blueocean-app-root .cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}\n#blueocean-app-root .card{padding:20px;}\n#blueocean-app-root .card:hover{transform:translateY(-5px); box-shadow:var(--shadow-hover); border-color:#d4def7;}\n#blueocean-app-root .card .label{font-size:13px;font-weight:600;color:var(--muted);margin-bottom:8px}\n#blueocean-app-root .card .value{font-size:32px;font-weight:900;color:var(--text); letter-spacing:-0.02em;}\n#blueocean-app-root .trend{font-size:12px;font-weight:600;color:#137b83;margin-top:8px}\n\n\/* Custom Pilot Card Styles for Wow-Agents *\/\n.pilot-card { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 20px; display: flex; gap: 16px; align-items: flex-start; box-shadow: 0 4px 15px rgba(0,0,0,0.02); transition: all 0.3s ease; height: 100%;}\n.pilot-card:hover { transform: translateY(-3px); box-shadow: 0 8px 25px rgba(36,93,255,0.06); border-color: #bfd0ff; }\n.pilot-icon { width: 48px; height: 48px; border-radius: 14px; display: flex; align-items: center; justify-content: center; font-size: 20px; flex-shrink: 0; }\n.pilot-content { flex: 1; display:flex; flex-direction:column; height: 100%;}\n.pilot-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }\n.pilot-title { font-weight: 800; font-size: 16px; color: var(--text); }\n.pilot-desc { font-size: 13px; color: var(--muted); line-height: 1.5; margin-bottom: 16px; flex-grow: 1; }\n.pilot-actions { display: flex; gap: 10px; margin-top: auto; border-top: 1px solid var(--line); padding-top:12px;}\n\n#blueocean-app-root .layout{display:grid;grid-template-columns:285px 1fr;min-height:calc(100vh - 65px);width:100%;max-width:1440px;margin:0 auto;}\n#blueocean-app-root .sidebar{background:#fff;border-right:1px solid var(--line);padding:24px 16px;position:sticky;top:65px;height:calc(100vh - 65px);overflow:auto}\n#blueocean-app-root .content{padding:28px 32px; position:relative;}\n\n#blueocean-app-root .workspace-card{padding:16px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,#f9fbff,#f4f8ff);margin:0 4px 20px; box-shadow:0 4px 12px rgba(0,0,0,.02);}\n#blueocean-app-root .workspace-select{width:100%;padding:12px;border:1px solid #dbe4f0;border-radius:12px;background:#fff;font-weight:700;color:var(--text); cursor:pointer; outline:none; font-family:'Inter',sans-serif; transition:border-color 0.2s;}\n#blueocean-app-root .workspace-select:hover{border-color:var(--primary);}\n#blueocean-app-root .group-title{font-size:11px;color:#97a3b4;text-transform:uppercase;letter-spacing:.1em;font-weight:800;margin:20px 12px 10px}\n#blueocean-app-root .nav-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;margin:4px;color:#4a5872;font-weight:700;font-size:14px;cursor:pointer;background:transparent; transition: all 0.2s ease;}\n#blueocean-app-root .nav-item:hover{background:#f5f8ff; color:var(--text); transform:translateX(3px);}\n#blueocean-app-root .nav-item.active{background:#edf3ff;color:var(--primary); font-weight:800;}\n#blueocean-app-root .icon{width:32px;height:32px;border-radius:10px;background:#f2f5fa;display:flex;align-items:center;justify-content:center;font-size:15px;flex:0 0 32px; transition:all 0.2s ease;}\n#blueocean-app-root .nav-item.active .icon { background: #dce7ff; color: var(--primary); }\n\n#blueocean-app-root .page{display:none}\n#blueocean-app-root .page.active{display:block; animation: fadeIn 0.4s cubic-bezier(0.16, 1, 0.3, 1);}\n#blueocean-app-root .page-top{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:24px}\n#blueocean-app-root .title h1{margin:0 0 6px;font-size:32px;color:var(--text)}\n#blueocean-app-root .title p{margin:0;color:var(--muted); max-width: 600px;}\n#blueocean-app-root .actions{display:flex;gap:10px;flex-wrap:wrap}\n\n#blueocean-app-root .grid-2{display:grid;grid-template-columns:1.2fr .8fr;gap:20px}\n#blueocean-app-root .grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}\n#blueocean-app-root .grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}\n#blueocean-app-root .panel{padding:24px;}\n#blueocean-app-root .panel h3{margin-bottom:12px;color:var(--text)}\n\n#blueocean-app-root .search, #blueocean-app-root .input, #blueocean-app-root select, #blueocean-app-root textarea {\n    width:100%;padding:14px 16px;border:1px solid #dbe4f0;border-radius:14px;background:#fff;font-family:'Inter',sans-serif;font-size:14px;color:var(--text); transition: all 0.2s; outline:none; box-shadow:none;\n}\n#blueocean-app-root .search:focus, #blueocean-app-root .input:focus, #blueocean-app-root select:focus, #blueocean-app-root textarea:focus{border-color:var(--primary); box-shadow:0 0 0 4px rgba(36,93,255,.12); transform:translateY(-1px);}\n\n#blueocean-app-root .table{width:100%;border-collapse:collapse}\n#blueocean-app-root .table th, #blueocean-app-root .table td{padding:16px 12px;border-bottom:1px solid var(--line);text-align:left;font-size:14px;vertical-align:middle}\n#blueocean-app-root .table th{color:#8190a5;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em; border-bottom:2px solid var(--line);}\n#blueocean-app-root .table td{color:var(--muted); font-weight:500;}\n#blueocean-app-root .table tbody tr{transition:background 0.2s;}\n#blueocean-app-root .table tbody tr:hover{background:#fbfcff;}\n\n#blueocean-app-root .dropzone{border:2px dashed #bfd0ff;background:linear-gradient(180deg,#f8fbff,#f2f7ff);padding:28px 20px;border-radius:18px;text-align:center; transition: all 0.3s ease; cursor:pointer; height: 100%; display: flex; flex-direction: column; justify-content: center;}\n#blueocean-app-root .dropzone:hover, #blueocean-app-root .dropzone.dragover{background:linear-gradient(180deg,#eef3ff,#e6edff); border-color:var(--primary); transform:translateY(-2px); box-shadow:0 8px 20px rgba(36,93,255,.08);}\n#blueocean-app-root .dropzone .big{font-size:16px;font-weight:800;margin-bottom:8px;color:var(--primary)}\n\n#blueocean-app-root .file-list{display:flex; flex-direction: column; gap:10px; margin-top:16px; text-align: left;}\n#blueocean-app-root .file-row{padding:12px 14px; border:1px solid var(--line);border-radius:14px;background:#fff; animation: fadeIn 0.3s ease; font-size: 13px; display: flex; justify-content: space-between; align-items: center; box-shadow:0 2px 6px rgba(0,0,0,.02);}\n#blueocean-app-root .file-row .name {white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 170px; font-weight: 600; color: var(--text);}\n#blueocean-app-root .bar{height:6px;background:#ecf1f7;border-radius:999px;overflow:hidden; margin-top: 6px; width: 100%;}\n#blueocean-app-root .fill{height:100%;background:linear-gradient(90deg,var(--primary),#7ba2ff);border-radius:999px; transition: width 0.5s ease;}\n\n#blueocean-app-root .notif{padding:16px;border:1px solid var(--line);border-radius:16px;background:#fff;margin-bottom:12px; transition: all 0.3s ease; box-shadow:0 4px 12px rgba(0,0,0,.02);}\n#blueocean-app-root .notif.unread{background:#f6f9ff;border-color:#d4def7; border-left:4px solid var(--primary); box-shadow:0 6px 15px rgba(36,93,255,.08);}\n#blueocean-app-root .notif-title{font-weight:800;margin-bottom:6px;color:var(--text); font-size:15px;}\n\n#blueocean-app-root .kpi{padding:20px;border:1px solid var(--line);border-radius:18px;background:#fff; box-shadow:0 4px 12px rgba(0,0,0,.02);}\n#blueocean-app-root .kpi strong{display:block;font-size:28px;font-weight:900;margin-top:8px;color:var(--text); letter-spacing:-0.02em;}\n\n#blueocean-app-root .hero-note{padding:18px 20px;border:1px dashed #c9d4e4;border-radius:16px;background:#fcfdff;color:#5e6c82;margin-bottom:18px; font-size:14px; line-height:1.6;}\n\n#blueocean-app-root .score{display:flex;align-items:center;justify-content:center;width:76px;height:76px;border-radius:50%;background:conic-gradient(var(--primary) 0 280deg,#e9eef7 280deg 360deg);font-weight:900;color:var(--primary);margin-left:auto; font-size:20px; box-shadow:0 10px 20px rgba(36,93,255,.15);}\n#blueocean-app-root .subtle{font-size:13px;color:var(--muted); font-weight:500;}\n#blueocean-app-root .pillrow{display:flex;gap:8px;flex-wrap:wrap}\n#blueocean-app-root .pill{padding:6px 12px;border-radius:999px;background:#f4f6fb;border:1px solid var(--line);font-size:12px;font-weight:700;color:#4a5872}\n\n#blueocean-app-root .mobile-wrap{width:100%;max-width:1200px;margin:0 auto;padding:40px 24px;}\n#blueocean-app-root .phones{display:grid;grid-template-columns:repeat(2,340px);gap:32px;justify-content:center}\n#blueocean-app-root .phone{padding:16px;min-height:720px;background:#0f1728; border-radius:36px; box-shadow:0 25px 50px rgba(0,0,0,.2);}\n#blueocean-app-root .phone-shell{background:#f9fbff;border-radius:24px;min-height:688px;padding:20px;border:1px solid rgba(255,255,255,.1); display:flex; flex-direction:column;}\n#blueocean-app-root .mobile-header{font-weight:900;font-size:22px;margin-bottom:16px;color:var(--text); letter-spacing:-0.02em;}\n#blueocean-app-root .mobile-card{padding:18px;border-radius:20px;background:#fff;border:1px solid var(--line);margin-bottom:14px; box-shadow:0 4px 10px rgba(0,0,0,.02);}\n#blueocean-app-root .mobile-nav{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:auto;background:#fff;border:1px solid var(--line);border-radius:22px;padding:12px; box-shadow:0 -5px 15px rgba(0,0,0,.03);}\n#blueocean-app-root .mobile-nav div{text-align:center;font-size:12px;color:#667085;font-weight:700; cursor:pointer;}\n\n#blueocean-app-root .connector{padding:18px;border:1px solid var(--line);border-radius:18px;background:#fff; transition:transform 0.2s, box-shadow 0.2s;}\n#blueocean-app-root .connector:hover{transform:translateY(-3px); box-shadow:var(--shadow-hover); border-color:#d4def7;}\n#blueocean-app-root .connector-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px; font-size:15px;}\n#blueocean-app-root .switch{width:48px;height:28px;border-radius:999px;background:#d7e3ff;position:relative;flex:0 0 48px; cursor:pointer; transition: background 0.3s;}\n#blueocean-app-root .switch::after{content:'';position:absolute;top:4px;left:24px;width:20px;height:20px;background:#fff;border-radius:50%;box-shadow:0 2px 6px rgba(0,0,0,.15); transition: left 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);}\n#blueocean-app-root .switch.off{background:#e6e9ef}\n#blueocean-app-root .switch.off::after{left:4px}\n\n\/* AI Loading Overlay *\/\n#ai-loading-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(255,255,255,0.85); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); z-index: 50; display: none; flex-direction: column; align-items: center; justify-content: center; border-radius: 20px;}\n#ai-loading-overlay.active { display: flex; animation: fadeIn 0.3s ease; }\n#blueocean-app-root .spinner { width: 56px; height: 56px; border: 4px solid var(--line); border-top-color: var(--primary); border-radius: 50%; animation: spin 1s linear infinite; margin-bottom: 24px;}\n@keyframes spin { to { transform: rotate(360deg); } }\n\n\/* Toast Notifications *\/\n#toast-container { position: fixed; bottom: 24px; right: 24px; display: flex; flex-direction: column; gap: 12px; z-index: 1000000; pointer-events: none; }\n.toast { background: #1b2436; color: #fff; padding: 16px 24px; border-radius: 14px; font-size: 14px; font-weight: 600; box-shadow: 0 15px 35px rgba(0,0,0,0.2); animation: slideIn 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards, fadeOut 0.4s ease 2.6s forwards; }\n@keyframes slideIn { from { transform: translateX(120%); opacity: 0; } to { transform: translateX(0); opacity: 1; } }\n@keyframes fadeOut { from { opacity: 1; transform: translateY(0); } to { opacity: 0; transform: translateY(-10px); } }\n\n\/* Floating Tax Copilot Chat Widget *\/\n#blueocean-app-root .chat-widget { position: fixed; bottom: 30px; right: 30px; z-index: 900; display: flex; flex-direction: column; align-items: flex-end; }\n@keyframes pulseChat { 0% { box-shadow: 0 0 0 0 rgba(109, 94, 252, 0.5); } 70% { box-shadow: 0 0 0 15px rgba(109, 94, 252, 0); } 100% { box-shadow: 0 0 0 0 rgba(109, 94, 252, 0); } }\n#blueocean-app-root .chat-toggle { width: 60px; height: 60px; border-radius: 50%; background: linear-gradient(135deg,var(--primary),var(--violet)); color: white; display: flex; align-items: center; justify-content: center; box-shadow: 0 10px 24px rgba(36,93,255,.3); cursor: pointer; font-size: 26px; transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275); animation: pulseChat 3s infinite;}\n#blueocean-app-root .chat-toggle:hover { transform: scale(1.08); animation:none; }\n#blueocean-app-root .chat-window { width: 360px; height: 480px; background: #fff; border-radius: 24px; box-shadow: 0 20px 50px rgba(0,0,0,0.15); border: 1px solid var(--line); display: none; flex-direction: column; overflow: hidden; margin-bottom: 20px; transform-origin: bottom right; animation: scaleIn 0.3s cubic-bezier(0.16, 1, 0.3, 1);}\n#blueocean-app-root .chat-window.open { display: flex; }\n#blueocean-app-root .chat-header { background: linear-gradient(135deg,var(--primary),var(--violet)); color: white; padding: 18px 20px; font-weight: 800; font-size:15px; display: flex; justify-content: space-between; align-items: center;}\n#blueocean-app-root .chat-body { flex: 1; padding: 18px; overflow-y: auto; background: #f8fafe; display: flex; flex-direction: column; gap: 14px; font-size: 14px;}\n#blueocean-app-root .chat-msg { max-width: 85%; padding: 12px 16px; border-radius: 16px; line-height: 1.5; font-weight:500;}\n#blueocean-app-root .chat-msg.bot { background: #fff; border: 1px solid var(--line); align-self: flex-start; border-bottom-left-radius: 4px; color: var(--text); box-shadow:0 2px 8px rgba(0,0,0,.02);}\n#blueocean-app-root .chat-msg.user { background: var(--primary); color: white; align-self: flex-end; border-bottom-right-radius: 4px; box-shadow:0 4px 12px rgba(36,93,255,.2);}\n#blueocean-app-root .chat-input-area { padding: 14px; background: #fff; border-top: 1px solid var(--line); display: flex; gap: 10px; align-items:center; }\n#blueocean-app-root .chat-input { flex: 1; border: 1px solid #dbe4f0 !important; border-radius: 99px; padding: 12px 18px; outline: none; font-size:14px; font-family:'Inter',sans-serif; transition:border-color 0.2s;}\n#blueocean-app-root .chat-input:focus { border-color: var(--primary) !important; }\n#blueocean-app-root .chat-send { background:var(--primary); color:white; border:none; width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:transform 0.2s;}\n#blueocean-app-root .chat-send:active{transform:scale(0.9);}\n@keyframes scaleIn { from { opacity: 0; transform: scale(0.9); } to { opacity: 1; transform: scale(1); } }\n\n\/* AI Typing Indicator *\/\n#blueocean-app-root .typing-indicator { display: flex; gap: 4px; padding: 14px 18px; background: #fff; border: 1px solid var(--line); border-radius: 16px; align-self: flex-start; width: fit-content; border-bottom-left-radius: 4px; box-shadow:0 2px 8px rgba(0,0,0,.02);}\n#blueocean-app-root .typing-dot { width: 6px; height: 6px; background: #a2b0c5; border-radius: 50%; animation: typing 1.4s infinite ease-in-out both; }\n#blueocean-app-root .typing-dot:nth-child(1) { animation-delay: -0.32s; }\n#blueocean-app-root .typing-dot:nth-child(2) { animation-delay: -0.16s; }\n@keyframes typing { 0%, 80%, 100% { transform: scale(0); } 40% { transform: scale(1); } }\n\n\/* --- SUPER COOL TOOLTIP (SPRECHBLASE) CSS --- *\/\n.tooltip-target {\n    position: relative;\n    cursor: help !important;\n}\n\/* Pulse indicator to guide users to hover over elements *\/\n.tooltip-target::before {\n    content: '';\n    position: absolute;\n    top: -6px;\n    right: -6px;\n    width: 12px;\n    height: 12px;\n    background: var(--violet);\n    border-radius: 50%;\n    box-shadow: 0 0 0 rgba(109, 94, 252, 0.4);\n    animation: pulse-hotspot 2s infinite;\n    z-index: 10;\n    pointer-events: none;\n}\n@keyframes pulse-hotspot {\n    0% { box-shadow: 0 0 0 0 rgba(109, 94, 252, 0.7); }\n    70% { box-shadow: 0 0 0 10px rgba(109, 94, 252, 0); }\n    100% { box-shadow: 0 0 0 0 rgba(109, 94, 252, 0); }\n}\n\n#global-tooltip {\n    position: fixed;\n    background: linear-gradient(135deg, #1b2436, #0a1120);\n    color: #fff;\n    padding: 14px 20px;\n    border-radius: 14px;\n    font-size: 14px;\n    font-weight: 600;\n    line-height: 1.5;\n    max-width: 300px;\n    box-shadow: 0 15px 35px rgba(0,0,0,0.25);\n    pointer-events: none;\n    z-index: 9999999;\n    opacity: 0;\n    transform: translateY(15px) scale(0.95);\n    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);\n    visibility: hidden;\n    border: 1px solid rgba(255,255,255,0.1);\n}\n#global-tooltip.active {\n    opacity: 1;\n    transform: translateY(0) scale(1);\n    visibility: visible;\n}\n\/* Sprechblase Arrow Bottom *\/\n#global-tooltip::after {\n    content: '';\n    position: absolute;\n    bottom: -6px;\n    left: 50%;\n    margin-left: -6px;\n    width: 12px;\n    height: 12px;\n    background: #0a1120;\n    transform: rotate(45deg);\n    border-right: 1px solid rgba(255,255,255,0.1);\n    border-bottom: 1px solid rgba(255,255,255,0.1);\n    border-left: none;\n    border-top: none;\n    transition: all 0.2s ease;\n}\n\/* Sprechblase Arrow Top (if flipped) *\/\n#global-tooltip.arrow-top::after {\n    top: -6px;\n    bottom: auto;\n    border-left: 1px solid rgba(255,255,255,0.1);\n    border-top: 1px solid rgba(255,255,255,0.1);\n    border-right: none;\n    border-bottom: none;\n    background: #1b2436;\n}\n\n\/* Mobile Optimization for Layouts *\/\n@media (max-width:1250px){#blueocean-app-root .hero-grid, #blueocean-app-root .grid-2, #blueocean-app-root .grid-3, #blueocean-app-root .grid-4, #blueocean-app-root .row2{grid-template-columns:1fr} #blueocean-app-root .cards{grid-template-columns:repeat(2,1fr)} #blueocean-app-root .layout{grid-template-columns:1fr} #blueocean-app-root .sidebar{position:relative;top:0;height:auto} #blueocean-app-root .phones{grid-template-columns:1fr}}\n@media (max-width:1100px){\n  #blueocean-app-root .hamburger{display:flex;align-items:center;justify-content:center;}\n  #blueocean-app-root .top-links{\n    display:none; \n    position:absolute; top:100%; left:0; right:0; \n    background:rgba(255,255,255,0.98); backdrop-filter:blur(15px); -webkit-backdrop-filter:blur(15px);\n    flex-direction:column; padding:16px; border-bottom:1px solid var(--line);\n    box-shadow:0 15px 30px rgba(18,31,53,.1);\n  }\n  #blueocean-app-root .top-links.open{display:flex; animation: slideDownNav 0.2s ease;}\n  #blueocean-app-root .top-link{text-align:center; width:100%; padding:14px; font-size:16px;}\n  @keyframes slideDownNav { from { opacity:0; transform:translateY(-10px); } to { opacity:1; transform:translateY(0); } }\n}\n@media (max-width:740px){#blueocean-app-root h1{font-size:36px} #blueocean-app-root .cards{grid-template-columns:1fr} #blueocean-app-root .hero, #blueocean-app-root .mobile-wrap, #blueocean-app-root .content{padding-left:16px;padding-right:16px} #blueocean-app-root .page-top{flex-direction:column;align-items:flex-start} #blueocean-app-root .input, #blueocean-app-root .btn, #blueocean-app-root select, #blueocean-app-root textarea{min-height:46px}}\n<\/style>\n<\/head>\n<body>\n\n<div id=\"blueocean-app-root\">\n\n<div id=\"toast-container\"><\/div>\n\n<div class=\"top-nav\" id=\"main-nav\" style=\"display: flex;\">\n  <div class=\"logo\"><div class=\"logo-mark\">B<\/div> BlueOcean Finance AI<\/div>\n  \n  <div class=\"hamburger\" id=\"mobile-menu-btn\">\n    <svg width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n      <line x1=\"3\" y1=\"12\" x2=\"21\" y2=\"12\"><\/line>\n      <line x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\"><\/line>\n      <line x1=\"3\" y1=\"18\" x2=\"21\" y2=\"18\"><\/line>\n    <\/svg>\n  <\/div>\n\n  <div class=\"top-links\" id=\"nav-links\">\n    <div class=\"top-link active\" data-view=\"overview\"><de>\u00dcbersicht<\/de><en>Overview<\/en><\/div>\n    <div class=\"top-link\" data-view=\"app\"><de>Web-App<\/de><en>Web App<\/en><\/div>\n    <div class=\"top-link\" data-view=\"mobile\"><de>Mobile App<\/de><en>Mobile App<\/en><\/div>\n    <!-- Language Toggle Button -->\n    <div class=\"top-link lang-toggle\" onclick=\"toggleLanguage()\" style=\"font-size:15px; padding:8px 12px; display:flex; gap:6px; align-items:center; background:#eef3ff; color:var(--primary);\">\n        <de>\ud83c\uddec\ud83c\udde7 EN<\/de><en>\ud83c\udde9\ud83c\uddea DE<\/en>\n    <\/div>\n  <\/div>\n<\/div>\n\n<section class=\"view active\" id=\"overview\">\n  <div class=\"hero\">\n    <div class=\"hero-grid\">\n      <div class=\"hero-card\" data-tooltip-de=\"Hier aggregiert die KI zentral alle Finanzdaten \u2013 kein manuelles Suchen in Ordnern mehr n\u00f6tig!\" data-tooltip-en=\"The AI centrally aggregates all financial data here \u2013 no more manual searching through folders needed!\">\n        <span class=\"badge violet\" style=\"margin-bottom: 12px;\"><de>Design f\u00fcr Steuerberater<\/de><en>Tax accountant-first design<\/en><\/span>\n        <h1><de>Ein Arbeitsbereich f\u00fcr Abstimmung, Compliance und KI-Agenten<\/de><en>One workspace for reconciliation, compliance, and AI agents<\/en><\/h1>\n        <p class=\"lead\"><de>Das Dashboard orientiert sich an den Priorit\u00e4ten von Buchhaltern. Ausnahmen, nicht abgestimmte Posten, unbezahlte Rechnungen und Compliance-Probleme werden vor allgemeinen Kennzahlen angezeigt.<\/de><en>The dashboard is organized around accountant priorities, so exceptions, unreconciled items, unpaid invoices, and compliance issues are surfaced before generic activity metrics.<\/en><\/p>\n        <div class=\"hero-actions\">\n          <button class=\"btn primary\" onclick=\"activateTopView('app')\" data-tooltip-de=\"Starten Sie hier die leistungsstarke Kanzlei-Software.\" data-tooltip-en=\"Launch the powerful firm software here.\"><de>Web-App \u00f6ffnen<\/de><en>Open Web App<\/en><\/button>\n          <button class=\"btn secondary\" onclick=\"activateTopView('mobile')\" data-tooltip-de=\"Die benutzerfreundliche App f\u00fcr Ihre Kunden zum Beleg-Upload.\" data-tooltip-en=\"The user-friendly app for your clients to upload receipts.\"><de>Kunden Mobile App<\/de><en>Client Mobile App<\/en><\/button>\n        <\/div>\n        <div class=\"bullets\">\n          <div class=\"bullet\"><span class=\"check\">\u2713<\/span><span><de>Globale Mandanten\u00fcbersicht zur Priorisierung des Arbeitstages.<\/de><en>Global Tenant Overview for accountants to prioritize their day.<\/en><\/span><\/div>\n          <div class=\"bullet\"><span class=\"check\">\u2713<\/span><span><de>Live KI-Agenten-Struktur f\u00fcr die Dokumentenverarbeitung mit Gemini.<\/de><en>Live AI agent structure for document processing using Gemini.<\/en><\/span><\/div>\n          <div class=\"bullet\"><span class=\"check\">\u2713<\/span><span><de>Automatisches Einfordern von Dokumenten und DATEV-Kontierungsvorschl\u00e4ge.<\/de><en>Automated document chasing and DATEV ledger code suggestions.<\/en><\/span><\/div>\n        <\/div>\n      <\/div>\n      <div class=\"hero-card\" data-tooltip-de=\"Diese Priorit\u00e4tenbl\u00f6cke zeigen Ihnen sofort an, bei welchem Mandanten Sie heute dringend handeln m\u00fcssen.\" data-tooltip-en=\"These priority blocks instantly show you which clients require your urgent attention today.\">\n        <div class=\"panel\" style=\"box-shadow:none;margin:0;border:2px dashed #c9d4e4; background: #fcfdff;\">\n          <h3><de>Priorit\u00e4ts-Dashboard-Bl\u00f6cke<\/de><en>Priority dashboard blocks<\/en><\/h3>\n          <div class=\"summary-list\">\n            <div class=\"summary-item\"><span><de>Nicht abgestimmte Bankposten<\/de><en>Unreconciled bank items<\/en><\/span><strong>1.140,00 \u20ac<\/strong><\/div>\n            <div class=\"summary-item\"><span><de>Unbezahlte Rechnungen im Zeitraum<\/de><en>Unpaid invoices in period<\/en><\/span><strong>95,00 \u20ac<\/strong><\/div>\n            <div class=\"summary-item\"><span><de>Ausgaben ohne Rechnung<\/de><en>Expenses without invoice<\/en><\/span><strong><de>5 Gruppen<\/de><en>5 groups<\/en><\/strong><\/div>\n            <div class=\"summary-item\" style=\"border-left: 3px solid var(--danger);\"><span><de>MwSt. \/ Compliance-Unstimmigkeiten<\/de><en>VAT \/ compliance discrepancies<\/en><\/span><strong style=\"color:var(--danger)\"><de>1 Risiko-Warnung<\/de><en>1 high-risk note<\/en><\/strong><\/div>\n            <div class=\"summary-item\"><span><de>Zugeordnete Ausgaben abgeglichen<\/de><en>Allocated expenses matched<\/en><\/span><strong style=\"color:var(--success);\"><de>6 Posten<\/de><en>6 items<\/en><\/strong><\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<section class=\"view\" id=\"app\">\n  <div class=\"layout\">\n    <aside class=\"sidebar\">\n      \n      <div class=\"group-title\"><de>Kanzleileitung<\/de><en>Firm Leadership<\/en><\/div>\n      <div class=\"nav-item\" data-page=\"firm-ceo\" data-tooltip-de=\"Vogelperspektive f\u00fcr Kanzlei-Inhaber: Ersparnisse, Auslastung und Risiken.\" data-tooltip-en=\"Bird's-eye view for firm partners: Savings, utilization, and risks.\"><span class=\"icon\">\ud83d\udcc8<\/span><span><de>Kanzlei CEO Cockpit<\/de><en>Firm CEO Cockpit<\/en><\/span><\/div>\n      <div class=\"nav-item\" data-page=\"tenants\" data-tooltip-de=\"Behalten Sie alle Mandanten im Blick. Die KI priorisiert automatisch nach Dringlichkeit.\" data-tooltip-en=\"Keep an eye on all clients. The AI automatically prioritizes by urgency.\"><span class=\"icon\">\ud83c\udfe2<\/span><span><de>Kanzlei\u00fcbersicht<\/de><en>Firm Overview<\/en><\/span><\/div>\n      \n      <div class=\"workspace-card\" style=\"margin-top: 24px;\" data-tooltip-de=\"Wechseln Sie nahtlos und in Sekundenbuchteilen zwischen all Ihren Mandanten.\" data-tooltip-en=\"Switch seamlessly between all your clients in a fraction of a second.\">\n        <div class=\"subtle\" style=\"margin-bottom:10px\"><de>Aktueller Mandant<\/de><en>Current Client Workspace<\/en><\/div>\n        <select class=\"workspace-select\" id=\"tenant-switcher\">\n          <option value=\"Cedar Stone Consulting Ltd\">Cedar Stone Consulting Ltd<\/option>\n          <option value=\"Rivergate Ops GmbH\">Rivergate Ops GmbH<\/option>\n          <option value=\"BOP BLUEOCEAN PRIVACY LTD\">BOP BLUEOCEAN PRIVACY LTD<\/option>\n          <option value=\"Nova Field Finance Ltd\">Nova Field Finance Ltd<\/option>\n        <\/select>\n      <\/div>\n\n      <div class=\"group-title\"><de>Mandanten-Tools<\/de><en>Client Tools<\/en><\/div>\n      <div class=\"nav-item active\" data-page=\"dashboard\" data-tooltip-de=\"Das Cockpit f\u00fcr einen spezifischen Mandanten. Voller Fokus auf ungel\u00f6ste Aufgaben.\" data-tooltip-en=\"The cockpit for a specific client. Full focus on unresolved tasks.\"><span class=\"icon\">\ud83c\udfe0<\/span><span><de>Mandanten-Dashboard<\/de><en>Client Dashboard<\/en><\/span><\/div>\n      <div class=\"nav-item\" data-page=\"uploads\" data-tooltip-de=\"Laden Sie Dokumente hoch. Unsere KI-Agenten lesen, extrahieren und verkn\u00fcpfen sie.\" data-tooltip-en=\"Upload documents. Our AI agents read, extract, and link them.\"><span class=\"icon\">\ud83d\udcc1<\/span><span><de>Dokumente (KI-Setup)<\/de><en>Documents (AI Setup)<\/en><\/span><\/div>\n      <div class=\"nav-item\" data-page=\"results\" data-tooltip-de=\"Automatisch generierte Reports, sofort bereit f\u00fcr den Export an DATEV.\" data-tooltip-en=\"Automatically generated reports, ready for immediate export to DATEV.\"><span class=\"icon\">\ud83d\udcc4<\/span><span><de>KI-Berichte<\/de><en>AI Reports<\/en><\/span><\/div>\n      \n      <div class=\"group-title\"><de>System &#038; KI<\/de><en>System &#038; AI<\/en><\/div>\n      <div class=\"nav-item\" data-page=\"agents\" data-tooltip-de=\"Bestimmen Sie selbst, welche Regeln die KI beim Pr\u00fcfen anwendet.\" data-tooltip-en=\"Determine yourself which rules the AI applies during validation.\"><span class=\"icon\">\ud83e\udd16<\/span><span><de>KI-Agenten Konfig.<\/de><en>AI Agents Config<\/en><\/span><\/div>\n      <div class=\"nav-item\" data-page=\"calculator\"><span class=\"icon\">\ud83d\udcb6<\/span><span><de>Kostenrechner<\/de><en>Cost Calculator<\/en><\/span><\/div>\n      <div class=\"nav-item\" data-page=\"notifications\"><span class=\"icon\">\ud83d\udd14<\/span><span><de>Benachrichtigungen<\/de><en>Notifications<\/en><\/span><\/div>\n      <div class=\"nav-item\" data-page=\"connectors\" data-tooltip-de=\"Verbinden Sie Dropbox, Drive oder Banken direkt mit dem System.\" data-tooltip-en=\"Connect Dropbox, Drive, or Banks directly to the system.\"><span class=\"icon\">\ud83d\udd0c<\/span><span><de>Konnektoren<\/de><en>Connectors<\/en><\/span><\/div>\n      <div class=\"nav-item\" data-page=\"settings\"><span class=\"icon\">\u2699<\/span><span><de>Einstellungen<\/de><en>Settings<\/en><\/span><\/div>\n    <\/aside>\n    \n    <main class=\"content\">\n      <div id=\"ai-loading-overlay\">\n        <div class=\"spinner\"><\/div>\n        <h2 style=\"margin-bottom: 8px;\"><de>BlueOcean KI analysiert&#8230;<\/de><en>BlueOcean AI is Analyzing&#8230;<\/en><\/h2>\n        <p class=\"muted\"><de>Daten werden extrahiert, Bankposten abgeglichen und Bericht erstellt.<\/de><en>Extracting data, cross-referencing bank items, and generating report.<\/en><\/p>\n      <\/div>\n\n      <!-- NEW: FIRM CEO COCKPIT -->\n      <section class=\"page\" id=\"firm-ceo\">\n        <div class=\"page-top\">\n          <div class=\"title\">\n            <h1><de>Kanzlei-Leitung Cockpit<\/de><en>Firm Leadership Cockpit<\/en><\/h1>\n            <p><de>Globale Performance der Steuerkanzlei. \u00dcberwachen Sie Mandanten-Gesundheit und KI-Automatisierungsraten.<\/de><en>Global performance of the tax firm. Monitor client health and AI automation rates.<\/en><\/p>\n          <\/div>\n          <div class=\"actions\">\n            <button class=\"btn primary action-toast\" data-msg=\"Report exportiert.\" data-msg-en=\"Report exported.\"><de>Kanzleireport Exportieren<\/de><en>Export Firm Report<\/en><\/button>\n          <\/div>\n        <\/div>\n\n        <div class=\"grid-4\" style=\"margin-bottom:20px\">\n          <div class=\"card\"><div class=\"label\"><de>Mandanten (Gesamt)<\/de><en>Total Clients<\/en><\/div><div class=\"value\">142<\/div><div class=\"trend\" style=\"color:var(--success)\">+3 <de>Neuzug\u00e4nge<\/de><en>New Clients<\/en><\/div><\/div>\n          <div class=\"card\" data-tooltip-de=\"Die KI hat bereits \u00fcber 8.000 Transaktionen vorkontiert, die direkt in DATEV importiert werden k\u00f6nnen.\" data-tooltip-en=\"The AI has pre-booked over 8,000 transactions that can be directly imported to DATEV.\"><div class=\"label\"><de>KI-Vorkontierungen (MTD)<\/de><en>AI Pre-Bookings (MTD)<\/en><\/div><div class=\"value\">8.405<\/div><div class=\"trend\" style=\"color:var(--success)\"><de>98.5% Genauigkeit<\/de><en>98.5% Accuracy<\/en><\/div><\/div>\n          <div class=\"card\"><div class=\"label\"><de>Offene Belege (Kanzleiweit)<\/de><en>Missing Receipts (Firm-wide)<\/en><\/div><div class=\"value\" style=\"color:var(--danger)\">418<\/div><div class=\"trend\"><de>KI-Chaser aktiv<\/de><en>AI Chaser active<\/en><\/div><\/div>\n          <div class=\"card\"><div class=\"label\"><de>Eingesparte Zeit (MTD)<\/de><en>Time Saved (MTD)<\/en><\/div><div class=\"value\">124 <span style=\"font-size:16px;\">h<\/span><\/div><div class=\"trend\" style=\"color:var(--success)\">~ 6.200 \u20ac <de>Wert<\/de><en>Value<\/en><\/div><\/div>\n        <\/div>\n\n        <div class=\"grid-2\">\n          <div class=\"panel\">\n            <h3 style=\"margin-bottom:16px;\"><de>Aktionsradar: Kritische Mandanten<\/de><en>Action Radar: Critical Clients<\/en><\/h3>\n            <div class=\"summary-list\">\n               <div class=\"summary-item\" style=\"align-items: center; padding: 16px;\">\n                  <div>\n                    <span style=\"display:block; font-weight:800; font-size:15px; color:var(--text); margin-bottom:4px;\">TechFlow GmbH<\/span>\n                    <span style=\"font-size:13px; font-weight:600; color:var(--danger)\"><de>42 fehlende Belege \u2022 Ungekl\u00e4rt: 18.500 \u20ac<\/de><en>42 missing receipts \u2022 Unreconciled: \u20ac18,500<\/en><\/span>\n                  <\/div>\n                  <div style=\"display:flex; gap:8px;\">\n                    <button class=\"btn secondary btn-sm action-toast\" data-msg=\"Mahnstufe eskaliert.\" data-msg-en=\"Escalated.\" style=\"color:var(--danger); border-color:#ffccd5; background:#fff0f3;\"><de>Eskalieren<\/de><en>Escalate<\/en><\/button>\n                  <\/div>\n               <\/div>\n               <div class=\"summary-item\" style=\"align-items: center; padding: 16px;\">\n                  <div>\n                    <span style=\"display:block; font-weight:800; font-size:15px; color:var(--text); margin-bottom:4px;\">Cedar Stone Consulting<\/span>\n                    <span style=\"font-size:13px; font-weight:600; color:var(--warning)\"><de>MwSt.-Risiko erkannt (Reverse Charge)<\/de><en>VAT Risk Detected (Reverse Charge)<\/en><\/span>\n                  <\/div>\n                  <div style=\"display:flex; gap:8px;\">\n                    <button class=\"btn secondary btn-sm\" onclick=\"window.jumpToTenant('Cedar Stone Consulting Ltd', 'dashboard')\"><de>Mandant \u00f6ffnen<\/de><en>Open Client<\/en><\/button>\n                  <\/div>\n               <\/div>\n            <\/div>\n          <\/div>\n\n          <div class=\"panel\">\n            <h3 style=\"margin-bottom:16px;\"><de>System &#038; KI-Auslastung<\/de><en>System &#038; AI Utilization<\/en><\/h3>\n            <div class=\"notif\" style=\"border-left-color: var(--primary); padding: 18px;\">\n              <div class=\"notif-title\" style=\"font-size:16px; margin-bottom:8px;\">\ud83d\udcca <de>Vorkontierungs-Performance<\/de><en>Pre-booking Performance<\/en><\/div>\n              <div class=\"muted\" style=\"line-height:1.5;\"><de>Der DATEV-Buchungsagent hat diesen Monat 8.405 Transaktionen verarbeitet. Manuelle Eingriffe waren nur bei 1.5% der F\u00e4lle n\u00f6tig.<\/de><en>The DATEV booking agent processed 8,405 transactions this month. Manual intervention was only required in 1.5% of cases.<\/en><\/div>\n            <\/div>\n            <div class=\"notif\" style=\"border-left-color: var(--success); padding: 18px; margin-top:12px;\">\n              <div class=\"notif-title\" style=\"font-size:16px; margin-bottom:8px;\">\ud83e\udd16 <de>Mandanten-Kommunikation<\/de><en>Client Communication<\/en><\/div>\n              <div class=\"muted\" style=\"line-height:1.5;\"><de>Der KI-Chaser hat 312 Belege v\u00f6llig autark bei den Mandanten per WhatsApp und E-Mail eingefordert und erfolgreich zugeordnet.<\/de><en>The AI Chaser completely autonomously requested and successfully matched 312 receipts from clients via WhatsApp and email.<\/en><\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/section>\n\n      <section class=\"page\" id=\"tenants\">\n        <div class=\"page-top\">\n          <div class=\"title\">\n            <h1><de>Globale Mandanten\u00fcbersicht<\/de><en>Firm-wide Tenant Overview<\/en><\/h1>\n            <p><de>Erkennen Sie schnell, welche Mandanten Ihre Aufmerksamkeit erfordern. Sortieren Sie nach fehlenden Belegen oder Compliance-Warnungen.<\/de><en>Quickly identify which clients require your attention. Sort by missing documents, unreconciled items, or compliance flags.<\/en><\/p>\n          <\/div>\n          <div class=\"actions\">\n            <button class=\"btn secondary action-toast\" data-msg=\"Kanzleibericht wird heruntergeladen...\" data-msg-en=\"Downloading Firm Report...\"><de>Kanzlei-Status exportieren<\/de><en>Export Firm Status<\/en><\/button>\n            <button class=\"btn primary action-toast\" data-msg=\"Mandanten-Assistent wird ge\u00f6ffnet...\" data-msg-en=\"Opening Add Tenant wizard...\"><de>+ Mandant anlegen<\/de><en>+ Onboard Client<\/en><\/button>\n          <\/div>\n        <\/div>\n\n        <div class=\"grid-3\" style=\"margin-bottom:24px\">\n          <div class=\"kpi\"><span class=\"subtle\"><de>Aktive Mandanten gesamt<\/de><en>Total Active Clients<\/en><\/span><strong>12<\/strong><\/div>\n          <div class=\"kpi\"><span class=\"subtle\"><de>Globale Handlungsbedarfe<\/de><en>Global Action Items<\/en><\/span><strong style=\"color:var(--danger)\"><de>24 Ausnahmen<\/de><en>24 Exceptions<\/en><\/strong><\/div>\n          <div class=\"kpi\" data-tooltip-de=\"Zeigt den direkten ROI durch BlueOcean Finance KI.\" data-tooltip-en=\"Shows the direct ROI delivered by BlueOcean Finance AI.\"><span class=\"subtle\"><de>Eingesparte Zeit durch KI (Monat)<\/de><en>AI Time Saved (MTD)<\/en><\/span><strong style=\"color:var(--success)\"><de>18.5 Stunden<\/de><en>18.5 hours<\/en><\/strong><\/div>\n        <\/div>\n\n        <div class=\"panel\">\n          <div style=\"display:flex; justify-content:space-between; align-items:center; margin-bottom:16px;\">\n            <h3 style=\"margin:0;\"><de>Mandanten-Arbeitsbereiche<\/de><en>Client Workspaces<\/en><\/h3>\n            <input type=\"text\" class=\"input search\" data-ph-de=\"Mandanten suchen...\" data-ph-en=\"Search clients...\" placeholder=\"Mandanten suchen...\" style=\"width:280px; min-height:auto; padding:10px 16px;\" \/>\n          <\/div>\n          <table class=\"table\">\n            <thead>\n              <tr><th><de>Mandantenname<\/de><en>Client Name<\/en><\/th><th><de>Zeitraum<\/de><en>Period<\/en><\/th><th><de>Handlungsbedarf<\/de><en>Action Items<\/en><\/th><th><de>Abstimmung<\/de><en>Reconciliation<\/en><\/th><th style=\"text-align:right;\"><de>Schnellzugriff<\/de><en>Quick Actions<\/en><\/th><\/tr>\n            <\/thead>\n            <tbody>\n              <tr>\n                <td><strong style=\"color:var(--text); display:block; font-size:15px;\">Cedar Stone Consulting Ltd<\/strong><span style=\"font-size:12px; font-weight:500;\"><de>Zypern<\/de><en>Cyprus<\/en> \u2022 Horizon Commerce Bank<\/span><\/td>\n                <td><de>Feb<\/de><en>Feb<\/en> 2026<\/td>\n                <td><div style=\"display:flex; gap:6px; flex-wrap:wrap;\"><span class=\"badge danger\"><de>2 Fehlende Dok.<\/de><en>2 Missing Docs<\/en><\/span><span class=\"badge warn\"><de>1.140 \u20ac Ungekl\u00e4rt<\/de><en>\u20ac1,140 Unreconciled<\/en><\/span><\/div><\/td>\n                <td><div class=\"bar\" style=\"width:110px; margin-bottom:6px;\"><div class=\"fill\" style=\"width:85%\"><\/div><\/div><span style=\"font-size:12px; font-weight:600; color:var(--muted)\"><de>85% Abgeglichen<\/de><en>85% Matched<\/en><\/span><\/td>\n                <td style=\"text-align:right;\"><button class=\"btn ghost\" style=\"padding:8px 14px; font-size:13px;\" onclick=\"window.jumpToTenant('Cedar Stone Consulting Ltd', 'dashboard')\"><de>Dashboard \u00f6ffnen<\/de><en>Open Dashboard<\/en> \u2192<\/button><\/td>\n              <\/tr>\n              <tr>\n                <td><strong style=\"color:var(--text); display:block; font-size:15px;\">BOP BLUEOCEAN PRIVACY LTD<\/strong><span style=\"font-size:12px; font-weight:500;\"><de>\u00d6sterreich<\/de><en>Austria<\/en> \u2022 Revolut Business (EUR)<\/span><\/td>\n                <td><de>Feb<\/de><en>Feb<\/en> 2026<\/td>\n                <td><div style=\"display:flex; gap:6px; flex-wrap:wrap;\"><span class=\"badge danger\"><de>1 MwSt. Warnung<\/de><en>1 VAT Flag<\/en><\/span><span class=\"badge warn\"><de>980 \u20ac Ungekl\u00e4rt<\/de><en>\u20ac980 Unreconciled<\/en><\/span><\/div><\/td>\n                <td><div class=\"bar\" style=\"width:110px; margin-bottom:6px;\"><div class=\"fill\" style=\"width:92%\"><\/div><\/div><span style=\"font-size:12px; font-weight:600; color:var(--muted)\"><de>92% Abgeglichen<\/de><en>92% Matched<\/en><\/span><\/td>\n                <td style=\"text-align:right;\"><button class=\"btn ghost\" style=\"padding:8px 14px; font-size:13px;\" onclick=\"window.jumpToTenant('BOP BLUEOCEAN PRIVACY LTD', 'dashboard')\"><de>Dashboard \u00f6ffnen<\/de><en>Open Dashboard<\/en> \u2192<\/button><\/td>\n              <\/tr>\n              <tr>\n                <td><strong style=\"color:var(--text); display:block; font-size:15px;\">Rivergate Ops GmbH<\/strong><span style=\"font-size:12px; font-weight:500;\"><de>Deutschland<\/de><en>Germany<\/en> \u2022 Atlas Treasury Bank<\/span><\/td>\n                <td><de>Feb<\/de><en>Feb<\/en> 2026<\/td>\n                <td><span class=\"badge success\"><de>Alles erledigt<\/de><en>All Clear<\/en><\/span><\/td>\n                <td><div class=\"bar\" style=\"width:110px; margin-bottom:6px;\"><div class=\"fill\" style=\"width:100%; background:var(--success);\"><\/div><\/div><span style=\"font-size:12px; font-weight:600; color:var(--success)\"><de>100% Abgeglichen<\/de><en>100% Matched<\/en><\/span><\/td>\n                <td style=\"text-align:right;\"><button class=\"btn ghost\" style=\"padding:8px 14px; font-size:13px;\" onclick=\"window.jumpToTenant('Rivergate Ops GmbH', 'dashboard')\"><de>Dashboard \u00f6ffnen<\/de><en>Open Dashboard<\/en> \u2192<\/button><\/td>\n              <\/tr>\n            <\/tbody>\n          <\/table>\n        <\/div>\n      <\/section>\n\n      <section class=\"page active\" id=\"dashboard\">\n        <div class=\"page-top\">\n          <div class=\"title\">\n            <div style=\"font-size:14px; font-weight:700; color:var(--primary); margin-bottom:6px; text-transform:uppercase; letter-spacing:0.05em;\" id=\"dash-tenant-name\">Cedar Stone Consulting Ltd<\/div>\n            <h1><de>Steuer-Dashboard<\/de><en>Tax Dashboard<\/en><\/h1>\n            <p><de>F\u00fcr Steuerberater sind die wichtigsten Signale Ausnahmen, nicht abgestimmte Betr\u00e4ge, fehlende Dokumente, unbezahlte Rechnungen und Compliance-Probleme.<\/de><en>For a tax accountant, the most important signals are exceptions, unreconciled amounts, missing documentation, unpaid invoices, and compliance issues.<\/en><\/p>\n          <\/div>\n          <div class=\"actions\">\n            <button class=\"btn secondary action-toast\" data-msg=\"Monat erfolgreich exportiert.\" data-msg-en=\"Month exported successfully.\"><de>Monat exportieren<\/de><en>Export month<\/en><\/button>\n            <button class=\"btn primary\" onclick=\"showPage('uploads')\"><de>Zu den Dokumenten<\/de><en>Go to Documents<\/en><\/button>\n          <\/div>\n        <\/div>\n        \n        <div id=\"dashboard-content\" style=\"transition: opacity 0.3s ease;\">\n          <div class=\"grid-4\" style=\"margin-bottom:20px\">\n            <div class=\"card\" data-tooltip-de=\"Die KI gleicht Bank und Belege ab. Hier sehen Sie exakt, was an Geldfl\u00fcssen noch ungekl\u00e4rt ist.\" data-tooltip-en=\"The AI matches bank and receipts. Here you see exactly what cash flows are still unexplained.\"><div class=\"label\"><de>Ungekl\u00e4rte Einzahlungen<\/de><en>Unreconciled deposits<\/en><\/div><div class=\"value\" id=\"val-unrec\">980 \u20ac<\/div><div class=\"trend\" id=\"trend-unrec\" style=\"color:var(--warning)\"><de>Handlungsbedarf<\/de><en>Action required<\/en><\/div><\/div>\n            <div class=\"card\"><div class=\"label\"><de>Unbezahlte Rechnungen<\/de><en>Unpaid invoices<\/en><\/div><div class=\"value\" id=\"val-unpaid\">40 \u20ac<\/div><div class=\"trend\" id=\"trend-unpaid\" style=\"color:var(--warning)\"><de>1 Rechnung offen<\/de><en>1 invoice open<\/en><\/div><\/div>\n            <div class=\"card\"><div class=\"label\"><de>Ausgaben ohne Beleg<\/de><en>Expenses without invoice<\/en><\/div><div class=\"value\" id=\"val-noinv\">5<\/div><div class=\"trend\" id=\"trend-noinv\"><de>Zuordnung erforderlich<\/de><en>Needs allocation<\/en><\/div><\/div>\n            <div class=\"card\" data-tooltip-de=\"Vollautomatische Erkennung von MwSt.-Fehlern und Reverse-Charge-Problemen!\" data-tooltip-en=\"Fully automated detection of VAT errors and Reverse Charge issues!\"><div class=\"label\"><de>Compliance-Warnungen<\/de><en>Compliance alerts<\/en><\/div><div class=\"value\" id=\"val-comp\">1<\/div><div class=\"trend\" id=\"trend-comp\" style=\"color:var(--danger)\"><de>MwSt.-Abweichung<\/de><en>VAT discrepancy<\/en><\/div><\/div>\n          <\/div>\n          <div class=\"grid-2\">\n            <div class=\"panel\">\n              <div style=\"display:flex;justify-content:space-between;align-items:center;gap:16px; margin-bottom:8px;\"><div><h3 style=\"margin:0;\"><de>Zusammenfassung der Periode<\/de><en>Period summary<\/en><\/h3><\/div><span class=\"badge info\"><de>Feb<\/de><en>Feb<\/en> 2026<\/span><\/div>\n              <p class=\"muted\" style=\"margin-bottom:16px; font-size:14px;\"><de>Spiegelt die Struktur von Abstimmungsberichten wider.<\/de><en>Built to mirror the structure of reconciliation reports.<\/en><\/p>\n              <div class=\"summary-list\">\n                <div class=\"summary-item\"><span><de>Geldeingang laut Kontoauszug gesamt<\/de><en>Total money in per bank statement<\/en><\/span><strong id=\"sum-1\">3.420,00 \u20ac<\/strong><\/div>\n                <div class=\"summary-item\"><span><de>Geldeing\u00e4nge mit passenden Rechnungen<\/de><en>Incoming funds with matching invoices<\/en><\/span><strong id=\"sum-2\">2.160,00 \u20ac<\/strong><\/div>\n                <div class=\"summary-item\"><span><de>Geldeing\u00e4nge ohne Rechnungsbelege<\/de><en>Incoming funds missing invoice documentation<\/en><\/span><strong id=\"sum-3\">1.140,00 \u20ac<\/strong><\/div>\n                <div class=\"summary-item\"><span><de>Summe unbezahlter Ausgangsrechnungen im Feb 2026<\/de><en>Total unpaid invoices issued in Feb 2026<\/en><\/span><strong id=\"sum-4\">95,00 \u20ac<\/strong><\/div>\n              <\/div>\n            <\/div>\n            <div class=\"panel\">\n              <h3 style=\"margin-bottom:16px;\"><de>Priorit\u00e4tswarteschlangen<\/de><en>Priority queues<\/en><\/h3>\n              <div id=\"dash-notifications\">\n                <div class=\"notif unread\" data-tooltip-de=\"Mit einem Klick schickt die KI eine automatisierte E-Mail-Nachfrage an den Mandanten.\" data-tooltip-en=\"With one click, the AI sends an automated email request to the client.\">\n                  <div style=\"display:flex; justify-content:space-between; align-items:start; gap: 12px;\">\n                    <div><div class=\"notif-title\"><de>Fehlende Rechnungsbelege<\/de><en>Missing invoice documentation<\/en><\/div><div class=\"muted\"><de>F\u00fcr 1 Bankeinzahlung fehlt das Rechnungsdokument.<\/de><en>1 incoming bank deposit lacks its invoice document.<\/en><\/div><\/div>\n                    <button class=\"btn secondary btn-sm action-toast\" style=\"white-space:nowrap; border-color:var(--primary); color:var(--primary);\" data-msg=\"E-Mail-Entwurf an Mandanten erstellt.\" data-msg-en=\"Auto-email drafted to client.\"><de>Beim Mandanten anfragen<\/de><en>Request from client<\/en><\/button>\n                  <\/div>\n                <\/div>\n                <div class=\"notif unread\"><div class=\"notif-title\"><de>Ausstehende unbezahlte Rechnung<\/de><en>Outstanding unpaid invoice<\/en><\/div><div class=\"muted\"><de>Rechnung INV-55-2041 ist zum 28. Feb 2026 noch unbezahlt.<\/de><en>Invoice INV-55-2041 remains unpaid as of Feb 28, 2026.<\/en><\/div><\/div>\n                <div class=\"notif unread\"><div class=\"notif-title\"><de>MwSt.-Abweichung bei Gutschrift<\/de><en>VAT discrepancy on credit note<\/en><\/div><div class=\"muted\"><de>Ein Dokument au\u00dferhalb der Periode zeigt widerspr\u00fcchliche Reverse-Charge- und MwSt.-Behandlungen.<\/de><en>One out-of-period document shows contradictory reverse-charge and VAT treatment.<\/en><\/div><\/div>\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/section>\n      \n      <section class=\"page\" id=\"uploads\">\n        <div class=\"page-top\">\n          <div class=\"title\">\n            <h1><de>Dokumentenverarbeitungs-Struktur<\/de><en>Document Processing Structure<\/en><\/h1>\n            <p><de>Laden Sie Dateien in die entsprechenden Ordner hoch. Der KI-Agent gleicht Kontoausz\u00fcge mit Rechnungen ab.<\/de><en>Upload files into their respective folders. The AI Agent will cross-reference statements with invoices.<\/en><\/p>\n          <\/div>\n          <div class=\"actions\">\n            <button class=\"btn primary\" id=\"run-ai-agent-btn\" style=\"padding: 14px 24px; font-size: 15px;\" data-tooltip-de=\"Ein Klick und die KI \u00fcbernimmt Stunden an manueller Arbeit.\" data-tooltip-en=\"One click and the AI takes over hours of manual work.\">\ud83d\ude80 <de>KI-Abstimmung starten<\/de><en>Run AI Reconciliation<\/en><\/button>\n          <\/div>\n        <\/div>\n        \n        <div class=\"grid-3\" style=\"margin-bottom: 24px;\">\n          <div class=\"panel\" style=\"background:#f9fbff; border: 1px solid var(--line);\">\n            <h3 style=\"display:flex; align-items:center; gap:8px;\"><span>\ud83c\udfe6<\/span> <de>Kontoausz\u00fcge<\/de><en>Bank Statements<\/en><\/h3>\n            <p class=\"muted\" style=\"font-size:13px; margin-bottom: 16px;\"><de>Monatliche Kontoausz\u00fcge hier ablegen (CSV oder PDF).<\/de><en>Drop monthly statement exports here (CSV or PDF).<\/en><\/p>\n            <input type=\"file\" class=\"hidden-file-input\" data-target=\"bank-list\" multiple style=\"display:none;\" \/>\n            <div class=\"dropzone folder-dropzone\" data-tooltip-de=\"Einfach per Drag &#038; Drop: Die KI liest PDFs und verarbeitet alles automatisch.\" data-tooltip-en=\"Simple drag &#038; drop: AI reads PDFs and processes everything automatically.\"><div class=\"big\">+ <de>Bankdateien hinzuf\u00fcgen<\/de><en>Add Bank Files<\/en><\/div><\/div>\n            <div class=\"file-list\" id=\"bank-list\"><div class=\"file-row\" data-name=\"Revolut_Statement_Feb2026.pdf\"><div class=\"name\">Revolut_Statement_Feb2026.pdf<\/div><span class=\"badge success\"><de>Bereit<\/de><en>Ready<\/en><\/span><\/div><\/div>\n          <\/div>\n          \n          <div class=\"panel\" style=\"background:#f9fbff; border: 1px solid var(--line);\">\n            <h3 style=\"display:flex; align-items:center; gap:8px;\"><span>\ud83d\uded2<\/span> <de>Eingangsrechnungen<\/de><en>Purchase Invoices<\/en><\/h3>\n            <p class=\"muted\" style=\"font-size:13px; margin-bottom: 16px;\"><de>Eingehende Rechnungen, Belege und Abos ablegen.<\/de><en>Drop incoming bills, receipts, and subscriptions.<\/en><\/p>\n            <input type=\"file\" class=\"hidden-file-input\" data-target=\"purchase-list\" multiple style=\"display:none;\" \/>\n            <div class=\"dropzone folder-dropzone\"><div class=\"big\">+ <de>Eingangsbelege hinzuf\u00fcgen<\/de><en>Add Purchase Docs<\/en><\/div><\/div>\n            <div class=\"file-list\" id=\"purchase-list\">\n               <div class=\"file-row\" data-name=\"Invoice-936FB5C1-6353.pdf\"><div class=\"name\">Invoice-936FB5C1-6353.pdf<\/div><span class=\"badge success\"><de>Bereit<\/de><en>Ready<\/en><\/span><\/div>\n               <div class=\"file-row\" data-name=\"5473587338.pdf\"><div class=\"name\">5473587338.pdf<\/div><span class=\"badge success\"><de>Bereit<\/de><en>Ready<\/en><\/span><\/div>\n               <div class=\"file-row\" data-name=\"amazon_prime_feb.pdf\"><div class=\"name\">amazon_prime_feb.pdf<\/div><span class=\"badge success\"><de>Bereit<\/de><en>Ready<\/en><\/span><\/div>\n            <\/div>\n          <\/div>\n          \n          <div class=\"panel\" style=\"background:#f9fbff; border: 1px solid var(--line);\">\n            <h3 style=\"display:flex; align-items:center; gap:8px;\"><span>\ud83d\udcc8<\/span> <de>Ausgangsrechnungen<\/de><en>Sales Invoices<\/en><\/h3>\n            <p class=\"muted\" style=\"font-size:13px; margin-bottom: 16px;\"><de>An Kunden ausgestellte Ausgangsrechnungen ablegen.<\/de><en>Drop outgoing invoices issued to your clients.<\/en><\/p>\n            <input type=\"file\" class=\"hidden-file-input\" data-target=\"sales-list\" multiple style=\"display:none;\" \/>\n            <div class=\"dropzone folder-dropzone\"><div class=\"big\">+ <de>Ausgangsbelege hinzuf\u00fcgen<\/de><en>Add Sales Docs<\/en><\/div><\/div>\n            <div class=\"file-list\" id=\"sales-list\">\n               <div class=\"file-row\" data-name=\"INV-48-0005.pdf\"><div class=\"name\">INV-48-0005.pdf<\/div><span class=\"badge success\"><de>Bereit<\/de><en>Ready<\/en><\/span><\/div>\n               <div class=\"file-row\" data-name=\"INV-17-0014.pdf\"><div class=\"name\">INV-17-0014.pdf<\/div><span class=\"badge success\"><de>Bereit<\/de><en>Ready<\/en><\/span><\/div>\n               <div class=\"file-row\" data-name=\"INV-21-0012.pdf\"><div class=\"name\">INV-21-0012.pdf<\/div><span class=\"badge success\"><de>Bereit<\/de><en>Ready<\/en><\/span><\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/section>\n      \n      <section class=\"page\" id=\"results\">\n        <div class=\"page-top\">\n          <div class=\"title\">\n            <h1><de>KI-generierter Bericht<\/de><en>AI Generated Report<\/en><\/h1>\n            <p><de>Dieser Bericht wurde vom BlueOcean KI-Agenten dynamisch aus Ihren hochgeladenen Dateien erstellt.<\/de><en>This report was synthesized dynamically by the BlueOcean AI Agent using your uploaded files.<\/en><\/p>\n          <\/div>\n          <div class=\"actions\">\n            <button class=\"btn secondary action-toast\" data-msg=\"Buchungsjournal f\u00fcr DATEV exportiert.\" data-msg-en=\"Booking journal exported for DATEV.\"><de>Nach DATEV exportieren (CSV)<\/de><en>Export to DATEV (CSV)<\/en><\/button>\n            <button class=\"btn secondary action-toast\" data-msg=\"PDF wird heruntergeladen...\" data-msg-en=\"Downloading PDF...\"><de>PDF herunterladen<\/de><en>Download PDF<\/en><\/button>\n            <button class=\"btn primary action-toast\" data-msg=\"Link in die Zwischenablage kopiert!\" data-msg-en=\"Link copied to clipboard!\"><de>Bericht teilen<\/de><en>Share report<\/en><\/button>\n          <\/div>\n        <\/div>\n        \n        <div class=\"panel\" id=\"dynamic-report-container\">\n          <div class=\"report-header\">\n            <div>\n              <div class=\"report-brand\">BLUEOCEAN SYNTHETIC AI AGENT <span class=\"badge violet\" style=\"margin-left:8px; text-transform:none;\"><de>Demo-Beispiel<\/de><en>Demo Sample<\/en><\/span><\/div>\n              <h2 style=\"margin-top:10px;font-size:26px\"><de>Kontoauszug vs. Rechnungsabstimmung<\/de><en>Bank Statement vs. Invoices Reconciliation<\/en><\/h2>\n              <p style=\"font-weight:500;\"><de>Unternehmen<\/de><en>Company<\/en>: BOP BLUEOCEAN PRIVACY LTD \u2022 <de>Zeitraum<\/de><en>Period<\/en>: Feb 2026 \u2022 <de>Konto<\/de><en>Account<\/en>: Revolut Business<\/p>\n            <\/div>\n            <div class=\"score\">98%<\/div>\n          <\/div>\n          \n          <div class=\"report-section\">\n            <h3>1. <de>Zusammenfassung<\/de><en>Executive Summary<\/en><\/h3>\n            <div class=\"summary-list\">\n              <div class=\"summary-item\"><span><de>Geldeingang laut Kontoauszug gesamt<\/de><en>Total &#8220;Money In&#8221; per Bank Statement<\/en><\/span><strong>2.775,00 \u20ac<\/strong><\/div>\n              <div class=\"summary-item\"><span><de>Geldeing\u00e4nge mit passenden Rechnungen<\/de><en>Total Incoming Funds with Matching Invoices<\/en><\/span><strong style=\"color: var(--success);\">1.795,00 \u20ac<\/strong><\/div>\n              <div class=\"summary-item\"><span><de>Geldeing\u00e4nge ohne Rechnungsbelege<\/de><en>Incoming Funds Missing Invoice Documentation<\/en><\/span><strong style=\"color: var(--danger);\">980,00 \u20ac<\/strong><\/div>\n              <div class=\"summary-item\"><span><de>Abstimmungsstatus<\/de><en>Reconciliation Status<\/en><\/span><strong><de>ABGEGLICHEN<\/de><en>BALANCED<\/en><\/strong><\/div>\n            <\/div>\n          <\/div>\n          \n          <div class=\"report-section\">\n            <h3>2. <de>Abgeglichene Transaktionen (100% \u00dcbereinstimmung &#038; vorkontiert)<\/de><en>Reconciled Transactions (100% Match &#038; Pre-Coded)<\/en><\/h3>\n            <table class=\"table\">\n              <thead><tr><th><de>Datum<\/de><en>Date<\/en><\/th><th><de>Absender\/Empf\u00e4nger<\/de><en>Sender\/Payee<\/en><\/th><th><de>Rechnungs-Nr.<\/de><en>Invoice #<\/en><\/th><th><de>Betrag<\/de><en>Amount<\/en><\/th><th><de>Vorgeschlagenes DATEV-Konto<\/de><en>Suggested Ledger Code<\/en><\/th><\/tr><\/thead>\n              <tbody>\n                 <tr><td>19 Feb 2026<\/td><td>Dr. Stefan R\u00fccker GmbH<\/td><td>INV-48-0005<\/td><td>29,00 \u20ac<\/td><td><span class=\"badge info\"><de>#8400 &#8211; Erl\u00f6se (Rev. Charge)<\/de><en>#8400 &#8211; Revenue (Rev. Charge)<\/en><\/span><\/td><\/tr>\n                 <tr><td>17 Feb 2026<\/td><td>VITORI Health GmbH<\/td><td>INV-17-0014<\/td><td>450,00 \u20ac<\/td><td><span class=\"badge info\"><de>#8400 &#8211; Erl\u00f6se (Rev. Charge)<\/de><en>#8400 &#8211; Revenue (Rev. Charge)<\/en><\/span><\/td><\/tr>\n                 <tr><td>02 Feb 2026<\/td><td>Google Workspace<\/td><td>5473587338<\/td><td>25,30 \u20ac<\/td><td><span class=\"badge info\"><de>#4920 &#8211; IT-Dienstleistungen<\/de><en>#4920 &#8211; IT Services<\/en><\/span><\/td><\/tr>\n                 <tr><td>01 Feb 2026<\/td><td>Mable GmbH<\/td><td>936FB5C1-6353<\/td><td>199,00 \u20ac<\/td><td><span class=\"badge info\"><de>#4900 &#8211; Sonstige betriebl. Aufwendungen<\/de><en>#4900 &#8211; Misc. Operating Costs<\/en><\/span><\/td><\/tr>\n              <\/tbody>\n            <\/table>\n          <\/div>\n          \n          <div class=\"report-section\">\n            <h3>3. <de>Handlungsbedarf: Ausnahmen &#038; fehlende Belege<\/de><en>Action Required: Exceptions &#038; Missing Evidence<\/en><\/h3>\n            <table class=\"table\">\n              <thead><tr><th><de>Datum<\/de><en>Date<\/en><\/th><th><de>Bankbeschreibung<\/de><en>Bank Description<\/en><\/th><th><de>Erwarteter Betrag<\/de><en>Expected Amount<\/en><\/th><th>Status<\/th><\/tr><\/thead>\n              <tbody>\n                 <tr><td>5 Feb 2026<\/td><td>Money added from S. JARITZ STAHLBAU<\/td><td>980,00 \u20ac<\/td><td><span class=\"badge danger\"><de>Fehlende Ausgangsrechnung<\/de><en>Missing Sales Invoice<\/en><\/span><\/td><\/tr>\n                 <tr><td>11 Feb 2026<\/td><td>Lumen Ridge Trading Ltd (INV-55-2041)<\/td><td>95,00 \u20ac<\/td><td><span class=\"badge warn\"><de>Unbezahlt \/ \u00dcberf\u00e4llig<\/de><en>Unpaid \/ Overdue<\/en><\/span><\/td><\/tr>\n              <\/tbody>\n            <\/table>\n          <\/div>\n          \n          <div class=\"report-section\">\n            <h3>4. <de>Compliance &#038; Buchhaltungshinweise<\/de><en>Compliance &#038; Accounting Notes<\/en><\/h3>\n            <div class=\"hero-note\" style=\"background:#fff0f3; border-color:#ffccd5;\">\n               <strong style=\"color:var(--danger); display:block; margin-bottom:6px;\">\u26a0\ufe0f <de>MwSt.-Abweichung (Gutschrift INV-47)<\/de><en>VAT Discrepancy (Credit Note INV-47)<\/en><\/strong> \n               <de>Die Positionen berechnen 19% Standard-MwSt. (163,40 \u20ac), aber die Fu\u00dfzeile besagt ausdr\u00fccklich <i>&#8216;Keine USt. gem\u00e4\u00df Artikel 138 (Reverse Charge)&#8217;<\/i>. Dies ist ein direkter Widerspruch, der eine manuelle \u00dcberpr\u00fcfung erfordert.<\/de><en>The line items calculate a 19% Standard VAT (\u20ac163.40), but the footer explicitly states <i>&#8216;Keine USt. gem\u00e4\u00df Artikel 138 (Reverse Charge)&#8217;<\/i>. This is a direct contradiction requiring manual review.<\/en>\n            <\/div>\n            <div class=\"hero-note\">\n               <strong style=\"color:var(--text); display:block; margin-bottom:6px;\">\ud83d\udcdd <de>Buchungsaufteilung (Karl Pusch)<\/de><en>Accounting Split (Karl Pusch)<\/en><\/strong> \n               <de>Auszahlungen in H\u00f6he von insgesamt 3.949,00 \u20ac m\u00fcssen gem\u00e4\u00df den Unternehmensrichtlinien in Gehalt (708,40 \u20ac) und Gewinnaussch\u00fcttung (3.240,60 \u20ac) aufgeteilt werden.<\/de><en>Payouts totaling \u20ac3,949.00 must be split into Salary (\u20ac708.40) and Dividend Distribution (\u20ac3,240.60) according to tenant policy.<\/en>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/section>\n      \n      <!-- NEW: WOW AGENTS PAGE FOR TAX ACCOUNTANTS -->\n      <section class=\"page\" id=\"agents\">\n        <div class=\"page-top\">\n          <div class=\"title\">\n            <h1><de>KI-Agenten Konfiguration<\/de><en>AI Agents Configuration<\/en><\/h1>\n            <p><de>Definieren Sie das Herzst\u00fcck Ihrer Kanzlei: Welche KI-Workflows sollen f\u00fcr Ihre Mandanten aktiv sein?<\/de><en>Define the core of your firm: Which AI workflows should be active for your clients?<\/en><\/p>\n          <\/div>\n          <div class=\"actions\">\n            <button class=\"btn primary action-toast\" data-msg=\"Agenten-Setup erfolgreich gespeichert.\" data-msg-en=\"Agent settings saved successfully.\"><de>Agenten-Setup speichern<\/de><en>Save Agent Setup<\/en><\/button>\n          <\/div>\n        <\/div>\n        \n        <div style=\"display:grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap:20px;\">\n          \n          <!-- Agent 1: Reconciliation -->\n          <div class=\"pilot-card\" data-tooltip-de=\"Gleicht Bank und Belege ab, ordnet Zahlungen zu und deckt offene Posten auf.\" data-tooltip-en=\"Matches bank and receipts, assigns payments, and uncovers open items.\">\n            <div class=\"pilot-icon\" style=\"background:#eef3ff; color:#245dff;\">\u2696\ufe0f<\/div>\n            <div class=\"pilot-content\">\n                <div class=\"pilot-header\">\n                    <span class=\"pilot-title\"><de>Bank &#038; Beleg-Abgleich<\/de><en>Bank &#038; Receipt Match<\/en><\/span>\n                    <span class=\"badge info\"><de>Aktiviert<\/de><en>Active<\/en><\/span>\n                <\/div>\n                <div class=\"pilot-desc\">\n                    <de>Verarbeitet Kontoausz\u00fcge gegen Eingangs- und Ausgangsrechnungen. Erkennt Zahlendreher und W\u00e4hrungsschwankungen vollautomatisch.<\/de>\n                    <en>Processes bank statements against incoming and outgoing invoices. Detects transposed numbers and currency fluctuations fully automatically.<\/en>\n                <\/div>\n                <div class=\"pilot-actions\" style=\"display:block;\">\n                    <div style=\"font-size:12px; color:var(--muted); margin-bottom:8px; display:flex; justify-content:space-between;\">\n                        <span><de>Genauigkeit:<\/de><en>Accuracy:<\/en> <strong>99.2%<\/strong><\/span>\n                        <span><de>Speed:<\/de><en>Speed:<\/en> <strong>~1.2s \/ Beleg<\/strong><\/span>\n                    <\/div>\n                    <div class=\"bar\" style=\"width:100%; margin-top:0;\"><div class=\"fill\" style=\"width:99.2%; background:var(--primary);\"><\/div><\/div>\n                <\/div>\n            <\/div>\n          <\/div>\n          \n          <!-- Agent 2: DATEV Booking -->\n          <div class=\"pilot-card\" data-tooltip-de=\"Baut fertige Buchungss\u00e4tze f\u00fcr Ihr Team, inkl. Gegenkonto und Steuerschl\u00fcssel.\" data-tooltip-en=\"Builds complete journal entries for your team, incl. offset account and tax key.\">\n            <div class=\"pilot-icon\" style=\"background:#edf8f5; color:#137b83;\">\ud83d\udcdd<\/div>\n            <div class=\"pilot-content\">\n                <div class=\"pilot-header\">\n                    <span class=\"pilot-title\"><de>DATEV Auto-Vorkontierung<\/de><en>DATEV Auto-Booking<\/en><\/span>\n                    <span class=\"badge success\"><de>Aktiviert<\/de><en>Active<\/en><\/span>\n                <\/div>\n                <div class=\"pilot-desc\">\n                    <de>Extrahiert den Lieferanten, ordnet Sachkonten (SKR03\/SKR04) zu und schl\u00e4gt Steuerschl\u00fcssel f\u00fcr den DATEV-Export vor.<\/de>\n                    <en>Extracts the vendor, maps GL accounts (SKR03\/SKR04), and suggests tax keys for DATEV export.<\/en>\n                <\/div>\n                <div class=\"pilot-actions\" style=\"display:block;\">\n                    <div style=\"font-size:12px; color:var(--muted); margin-bottom:8px; display:flex; justify-content:space-between;\">\n                        <span><de>Buchungen (MTD):<\/de><en>Bookings (MTD):<\/en> <strong>8.405<\/strong><\/span>\n                        <span style=\"color:var(--success); font-weight:700;\"><de>Live<\/de><en>Live<\/en><\/span>\n                    <\/div>\n                    <div class=\"bar\" style=\"width:100%; margin-top:0;\"><div class=\"fill\" style=\"width:100%; background:var(--success);\"><\/div><\/div>\n                <\/div>\n            <\/div>\n          <\/div>\n\n          <!-- Agent 3: VAT Auditor -->\n          <div class=\"pilot-card\" data-tooltip-de=\"Der strengste Pr\u00fcfer: Findet sofort, wenn 19% MwSt auf einer Reverse-Charge Rechnung stehen.\" data-tooltip-en=\"The strictest auditor: Instantly finds when 19% VAT is on a Reverse Charge invoice.\">\n            <div class=\"pilot-icon\" style=\"background:#fff0f3; color:#dc4c64;\">\ud83d\udd0d<\/div>\n            <div class=\"pilot-content\">\n                <div class=\"pilot-header\">\n                    <span class=\"pilot-title\"><de>MwSt. &#038; Compliance Auditor<\/de><en>VAT &#038; Compliance Auditor<\/en><\/span>\n                    <span class=\"badge danger\"><de>Strikt<\/de><en>Strict<\/en><\/span>\n                <\/div>\n                <div class=\"pilot-desc\">\n                    <de>Scannt jeden Beleg auf \u00a713b\/Reverse-Charge, pr\u00fcft Rechnungs-Pflichtangaben nach UStG und warnt bei Vorsteuer-Fehlern.<\/de>\n                    <en>Scans every receipt for Reverse Charge clauses, checks mandatory invoice fields, and warns of input tax errors.<\/en>\n                <\/div>\n                <div class=\"pilot-actions\" style=\"display:block;\">\n                    <div style=\"font-size:12px; color:var(--muted); margin-bottom:8px; display:flex; justify-content:space-between;\">\n                        <span><de>Risiken erkannt:<\/de><en>Risks caught:<\/en> <strong>34<\/strong><\/span>\n                        <span style=\"color:var(--danger); font-weight:700;\"><de>1 kritisch<\/de><en>1 critical<\/en><\/span>\n                    <\/div>\n                    <div class=\"bar\" style=\"width:100%; margin-top:0;\"><div class=\"fill\" style=\"width:15%; background:var(--danger);\"><\/div><\/div>\n                <\/div>\n            <\/div>\n          <\/div>\n\n          <!-- Agent 4: Client Chaser -->\n          <div class=\"pilot-card\" data-tooltip-de=\"Ersetzt das nervige 'Belegen hinterhertelefonieren'.\" data-tooltip-en=\"Replaces the annoying 'chasing clients for receipts'.\">\n            <div class=\"pilot-icon\" style=\"background:#f3efff; color:#6d5efc;\">\ud83e\udd16<\/div>\n            <div class=\"pilot-content\">\n                <div class=\"pilot-header\">\n                    <span class=\"pilot-title\"><de>KI Mandanten-Chaser<\/de><en>AI Client Chaser Bot<\/en><\/span>\n                    <span class=\"badge violet\"><de>Beta<\/de><en>Beta<\/en><\/span>\n                <\/div>\n                <div class=\"pilot-desc\">\n                    <de>Schreibt bei unklaren Bankbuchungen v\u00f6llig autark eine freundliche E-Mail oder WhatsApp an den Mandanten, um den Beleg anzufordern.<\/de>\n                    <en>Writes a friendly email or WhatsApp to the client completely autonomously for unclear bank transactions to request the receipt.<\/en>\n                <\/div>\n                <div class=\"pilot-actions\" style=\"display:block;\">\n                    <div style=\"font-size:12px; color:var(--muted); margin-bottom:8px; display:flex; justify-content:space-between;\">\n                        <span><de>Erfolgsquote:<\/de><en>Success rate:<\/en> <strong>78%<\/strong><\/span>\n                        <span><de>E-Mail &#038; WA<\/de><en>Email &#038; WA<\/en><\/span>\n                    <\/div>\n                    <div class=\"bar\" style=\"width:100%; margin-top:0;\"><div class=\"fill\" style=\"width:78%; background:var(--violet);\"><\/div><\/div>\n                <\/div>\n            <\/div>\n          <\/div>\n\n        <\/div>\n      <\/section>\n      \n      <section class=\"page\" id=\"calculator\"><div class=\"page-top\"><div class=\"title\"><h1><de>Kostenrechner<\/de><en>Cost Calculator<\/en><\/h1><p><de>Diese Seite sch\u00e4tzt die Nutzung von KI-Transaktionen und die voraussichtlichen Kosten.<\/de><en>This page estimates AI transaction usage and projected cost.<\/en><\/p><\/div><div class=\"actions\"><button class=\"btn primary\" id=\"btn-recalc\"><de>Neu berechnen<\/de><en>Recalculate<\/en><\/button><\/div><\/div><div class=\"grid-3\"><div class=\"kpi\"><span class=\"subtle\"><de>Diesen Monat verarbeitete Dokumente<\/de><en>Documents processed this month<\/en><\/span><strong id=\"calc-docs\">176<\/strong><\/div><div class=\"kpi\"><span class=\"subtle\"><de>KI-Transaktionen<\/de><en>AI transactions<\/en><\/span><strong id=\"calc-tx\">1.052<\/strong><\/div><div class=\"kpi\"><span class=\"subtle\"><de>Gesch\u00e4tzte KI-Kosten<\/de><en>Estimated AI cost<\/en><\/span><strong id=\"calc-cost\">231,60 \u20ac<\/strong><\/div><\/div><div class=\"panel\" style=\"margin-top:20px\"><table class=\"table\"><thead><tr><th>Agent<\/th><th><de>Ausf\u00fchrungen<\/de><en>Runs<\/en><\/th><th><de>\u00d8 Tx\/Ausf\u00fchrung<\/de><en>Avg tx\/run<\/en><\/th><th><de>Gesamt Tx<\/de><en>Total tx<\/en><\/th><th><de>Gesch\u00e4tzte Kosten<\/de><en>Est. cost<\/en><\/th><\/tr><\/thead><tbody><tr><td><de>Rechnungs-Bank-Check<\/de><en>Invoice Bank Check<\/en><\/td><td>76<\/td><td>9<\/td><td>684<\/td><td>136,80 \u20ac<\/td><\/tr><tr><td><de>Rechnungs-Compliance-Check<\/de><en>Invoice Compliance Check<\/en><\/td><td>61<\/td><td>6<\/td><td>366<\/td><td>73,20 \u20ac<\/td><\/tr><tr><td><de>Konnektor Einlesung\/OCR<\/de><en>Connector ingestion\/OCR<\/en><\/td><td>39<\/td><td>\u2014<\/td><td>4<\/td><td>21,60 \u20ac<\/td><\/tr><\/tbody><\/table><\/div><\/section>\n      \n      <section class=\"page\" id=\"notifications\"><div class=\"page-top\"><div class=\"title\"><h1><de>Benachrichtigungen<\/de><en>Notifications<\/en><\/h1><p><de>Benachrichtigungen konzentrieren sich auf fehlende Belege, unbezahlte Rechnungen, Compliance-Warnungen und Konnektor-Ergebnisse.<\/de><en>Notifications focus on missing evidence, unpaid invoices, compliance flags, and connector results.<\/en><\/p><\/div><div class=\"actions\"><button class=\"btn secondary action-toast\" data-msg=\"Alle Benachrichtigungen als gelesen markiert.\" data-msg-en=\"All notifications marked as read.\" id=\"btn-mark-read\"><de>Alle als gelesen markieren<\/de><en>Mark all as read<\/en><\/button><\/div><\/div><div class=\"panel\"><div class=\"notif unread\"><div class=\"notif-title\"><de>Compliance-Warnung \u2022 MwSt.-Abweichung<\/de><en>Compliance alert \u2022 VAT discrepancy<\/en><\/div><div class=\"muted\"><de>Gutschrift CN-11-8842 hat widerspr\u00fcchliche MwSt.-Behandlung und Reverse-Charge-Hinweise.<\/de><en>Credit note CN-11-8842 has conflicting VAT treatment and reverse-charge note.<\/en><\/div><\/div><div class=\"notif unread\"><div class=\"notif-title\"><de>Fehlende Rechnungsbelege<\/de><en>Missing invoice evidence<\/en><\/div><div class=\"muted\"><de>F\u00fcr eine Bankeinzahlung \u00fcber 1.140,00 \u20ac liegt kein Rechnungsdokument vor.<\/de><en>One incoming bank deposit for \u20ac1,140.00 has no invoice document in the batch.<\/en><\/div><\/div><div class=\"notif\"><div class=\"notif-title\"><de>Erkl\u00e4rung zur Buchhaltung erforderlich<\/de><en>Accounting explanation needed<\/en><\/div><div class=\"muted\"><de>Auszahlungssumme f\u00fcr Evan Holloway sollte in Gehalt und Gewinnaussch\u00fcttung aufgeteilt werden.<\/de><en>Evan Holloway payout total should be split into salary and dividend distribution.<\/en><\/div><\/div><\/div><\/section>\n      \n      <section class=\"page\" id=\"connectors\"><div class=\"page-top\"><div class=\"title\"><h1><de>Daten-Konnektoren<\/de><en>Data Connectors<\/en><\/h1><p><de>Konnektoren erm\u00f6glichen es Benutzern, Dokumente direkt aus externen Systemen wie Dropbox und SharePoint abzurufen.<\/de><en>Connectors let users pull documents directly from external systems such as Dropbox and SharePoint.<\/en><\/p><\/div><div class=\"actions\"><button class=\"btn primary action-toast\" data-msg=\"Integrationskatalog wird ge\u00f6ffnet...\" data-msg-en=\"Opening integration catalog...\"><de>Konnektor hinzuf\u00fcgen<\/de><en>Add Connector<\/en><\/button><\/div><\/div><div class=\"grid-3\"><div class=\"connector\"><div class=\"connector-top\"><strong><de>Banksysteme<\/de><en>Bank systems<\/en><\/strong><div class=\"switch\"><\/div><\/div><div class=\"muted\"><de>Kontoausz\u00fcge und Transaktions-Feeds importieren.<\/de><en>Import statements and transaction feeds.<\/en><\/div><\/div><div class=\"connector\"><div class=\"connector-top\"><strong>Microsoft SharePoint<\/strong><div class=\"switch\"><\/div><\/div><div class=\"muted\"><de>Rechnungsordner aus SharePoint-Bibliotheken abrufen.<\/de><en>Pull invoice folders from SharePoint libraries.<\/en><\/div><\/div><div class=\"connector\"><div class=\"connector-top\"><strong>Dropbox<\/strong><div class=\"switch\"><\/div><\/div><div class=\"muted\"><de>Rechnungen direkt aus Dropbox-Ordnern der Mandanten importieren.<\/de><en>Import invoices directly from tenant Dropbox folders.<\/en><\/div><\/div><div class=\"connector\"><div class=\"connector-top\"><strong>Google Drive<\/strong><div class=\"switch off\"><\/div><\/div><div class=\"muted\"><de>Rechnungen und Belege aus Drive einlesen.<\/de><en>Read invoices and receipts from Drive.<\/en><\/div><\/div><div class=\"connector\"><div class=\"connector-top\"><strong>Gmail-Konnektor<\/strong><div class=\"switch off\"><\/div><\/div><div class=\"muted\"><de>Rechnungsanh\u00e4nge aus ausgew\u00e4hlten Posteingangs-Labels sammeln.<\/de><en>Collect invoice attachments from selected inbox labels.<\/en><\/div><\/div><div class=\"connector\"><div class=\"connector-top\"><strong>Google Gemini<\/strong><div class=\"switch off\"><\/div><\/div><div class=\"muted\"><de>Optionale Konfiguration externer KI-Anbieter.<\/de><en>Optional external AI provider configuration.<\/en><\/div><\/div><div class=\"connector\"><div class=\"connector-top\"><strong>Claude LLM<\/strong><div class=\"switch off\"><\/div><\/div><div class=\"muted\"><de>Optionale Konfiguration externer KI-Anbieter.<\/de><en>Optional external AI provider configuration.<\/en><\/div><\/div><div class=\"connector\"><div class=\"connector-top\"><strong>Slack<\/strong><div class=\"switch off\"><\/div><\/div><div class=\"muted\"><de>Teamwarnungen oder Zusammenfassungen senden.<\/de><en>Send team alerts or summaries if needed.<\/en><\/div><\/div><div class=\"connector\"><div class=\"connector-top\"><strong>Custom API<\/strong><div class=\"switch off\"><\/div><\/div><div class=\"muted\"><de>Mandantenspezifische Quellsysteme sp\u00e4ter hinzuf\u00fcgen.<\/de><en>Add tenant-specific source systems later.<\/en><\/div><\/div><\/div><\/section>\n      \n      <section class=\"page\" id=\"settings\"><div class=\"page-top\"><div class=\"title\"><h1><de>Einstellungen<\/de><en>Settings<\/en><\/h1><p><de>Allgemeine Arbeitsbereichseinstellungen sowie mandantenspezifische Buchhaltungsstandards.<\/de><en>General workspace settings plus tenant-specific accounting defaults.<\/en><\/p><\/div><div class=\"actions\"><button class=\"btn primary action-toast\" data-msg=\"Einstellungen global gespeichert.\" data-msg-en=\"Settings saved globally.\"><de>\u00c4nderungen speichern<\/de><en>Save Changes<\/en><\/button><\/div><\/div><div class=\"grid-2\"><div class=\"panel\"><div class=\"row2\"><div class=\"field\"><label><de>Standardmandant<\/de><en>Default tenant<\/en><\/label><select><option>Cedar Stone Consulting Ltd<\/option><option>Rivergate Ops GmbH<\/option><\/select><\/div><div class=\"field\"><label><de>Zeitzone<\/de><en>Timezone<\/en><\/label><select><option>Europa\/Wien<\/option><option>Europa\/Berlin<\/option><\/select><\/div><div class=\"field\"><label><de>Standard-Berichtszeitraum<\/de><en>Default reporting period<\/en><\/label><select><option><de>Monatlich<\/de><en>Monthly<\/en><\/option><option><de>Viertelj\u00e4hrlich<\/de><en>Quarterly<\/en><\/option><\/select><\/div><div class=\"field\"><label><de>Basisw\u00e4hrung<\/de><en>Base currency<\/en><\/label><select><option>EUR<\/option><option>USD<\/option><\/select><\/div><\/div><\/div><div class=\"panel\"><h3 style=\"margin-bottom:16px;\"><de>Buchhaltungsstandards<\/de><en>Accounting defaults<\/en><\/h3><div class=\"summary-list\"><div class=\"summary-item\"><span><de>Reverse-Charge-Pr\u00fcfung<\/de><en>Reverse charge review<\/en><\/span><strong><de>Aktiviert<\/de><en>Enabled<\/en><\/strong><\/div><div class=\"summary-item\"><span><de>Eskalation bei fehlenden Rechnungen<\/de><en>Missing invoice escalation<\/en><\/span><strong><de>Sofortig<\/de><en>Immediate<\/en><\/strong><\/div><div class=\"summary-item\"><span><de>Schwellenwert f\u00fcr unbezahlte Rechnungen<\/de><en>Unpaid invoice threshold<\/en><\/span><strong><de>30 Tage<\/de><en>30 days<\/en><\/strong><\/div><\/div><\/div><\/div><\/section>\n    <\/main>\n  <\/div>\n  \n  <div class=\"chat-widget\" data-tooltip-de=\"Ihr pers\u00f6nlicher KI-Assistent beantwortet in Sekunden alle Fragen zu Ihren Dokumenten.\" data-tooltip-en=\"Your personal AI assistant answers any questions about your documents in seconds.\">\n    <div class=\"chat-window\" id=\"tax-copilot-window\">\n      <div class=\"chat-header\">\n        <de>Steuer-Copilot KI<\/de><en>Tax Copilot AI<\/en>\n        <span style=\"cursor:pointer; font-size:12px; font-weight:normal; opacity:0.8;\" onclick=\"event.stopPropagation(); document.getElementById('tax-copilot-window').classList.remove('open')\"><de>Schlie\u00dfen<\/de><en>Close<\/en> \u2715<\/span>\n      <\/div>\n      <div class=\"chat-body\" id=\"chat-messages\">\n        <div class=\"chat-msg bot\"><de>Hallo! Ich bin Ihr Steuer-Copilot. Ich habe Kontext zu allen hochgeladenen Dateien in diesem Mandanten-Arbeitsbereich. Fragen Sie mich etwas.<\/de><en>Hi! I&#8217;m your Tax Copilot. I have context on all files uploaded to this tenant workspace. Ask me anything.<\/en><\/div>\n        <div class=\"chat-msg bot\" style=\"font-style:italic; font-size:13px; opacity:0.8; background:transparent; border:none; box-shadow:none; padding:0 4px;\"><de>Versuchen Sie: &#8220;Warum wurde die Gutschrift von Willow Crest markiert?&#8221; oder &#8220;Entwirf eine E-Mail wegen des fehlenden Belegs \u00fcber 1.140 \u20ac.&#8221;<\/de><en>Try: &#8220;Why did you flag the Willow Crest credit note?&#8221; or &#8220;Draft an email asking for the missing \u20ac1,140 receipt.&#8221;<\/en><\/div>\n      <\/div>\n      <div class=\"chat-input-area\">\n        <input type=\"text\" class=\"chat-input\" id=\"chat-input\" data-ph-de=\"Fragen zu diesem Arbeitsbereich...\" data-ph-en=\"Ask about this workspace...\" placeholder=\"Fragen zu diesem Arbeitsbereich...\" onkeypress=\"if(event.key === 'Enter') sendChatMessage()\" \/>\n        <button class=\"chat-send\" onclick=\"sendChatMessage()\">\n          <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"12\" y1=\"19\" x2=\"12\" y2=\"5\"><\/line><polyline points=\"5 12 12 5 19 12\"><\/polyline><\/svg>\n        <\/button>\n      <\/div>\n    <\/div>\n    <div class=\"chat-toggle\" onclick=\"document.getElementById('tax-copilot-window').classList.toggle('open')\">\n      <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"><\/path><\/svg>\n    <\/div>\n  <\/div>\n  \n<\/section>\n\n\n<section class=\"view\" id=\"mobile\">\n  <div class=\"mobile-wrap\">\n    <h2 style=\"font-size:36px; text-align:center;\"><de>Kunden-Mobile-App<\/de><en>Client-Facing Mobile App<\/en><\/h2>\n    <p style=\"margin-bottom:40px; max-width:700px; margin-left:auto; margin-right:auto; text-align:center; line-height:1.6; color:var(--muted); font-size:16px;\"><de>W\u00e4hrend die Web-Plattform f\u00fcr den Steuerberater gedacht ist, wurde die Mobile App f\u00fcr den <strong>Mandanten (Unternehmer)<\/strong> entwickelt. Sie erm\u00f6glicht das einfache Scannen von Belegen von unterwegs und warnt automatisch, welche Dokumente der KI fehlen.<\/de><en>While the web platform is for the tax accountant, the mobile app is designed for the <strong>tenant (business owner)<\/strong>. It makes it frictionless to snap receipts on the go and automatically alerts them exactly which documents the AI is missing.<\/en><\/p>\n    \n    <div class=\"phones\">\n      <div class=\"phone\" data-tooltip-de=\"Mandanten scannen Belege mit einem Klick. Die KI ordnet sie sofort der richtigen Transaktion zu.\" data-tooltip-en=\"Clients scan receipts with one click. The AI instantly links them to the correct transaction.\">\n        <div class=\"phone-shell\">\n          <div style=\"display:flex; justify-content:space-between; align-items:center; margin-bottom:24px;\">\n            <div class=\"logo\" style=\"font-size:16px;\"><div class=\"logo-mark\" style=\"width:28px;height:28px;font-size:13px\">B<\/div> ClientPortal<\/div>\n            <div style=\"width:36px; height:36px; border-radius:50%; background:#e7edf5; display:flex; align-items:center; justify-content:center; font-size:16px;\">\ud83d\udc64<\/div>\n          <\/div>\n          \n          <div class=\"mobile-header\"><de>Hallo, Cedar Stone<\/de><en>Hello, Cedar Stone<\/en><\/div>\n          \n          <div class=\"mobile-card action-toast\" data-msg=\"Kamera ge\u00f6ffnet.\" data-msg-en=\"Camera opened.\" style=\"background:linear-gradient(135deg,#245dff,#6d8fff);color:#fff; text-align:center; padding:32px 16px; cursor:pointer; box-shadow: 0 12px 25px rgba(36,93,255,.25); border:none; transition:transform 0.2s;\">\n            <div style=\"font-size:48px; margin-bottom:12px;\">\ud83d\udcf7<\/div>\n            <div style=\"font-size:22px;font-weight:900;\"><de>Dokument scannen<\/de><en>Scan Document<\/en><\/div>\n            <div style=\"color:rgba(255,255,255,0.85); font-size:14px; margin-top:8px; font-weight:500;\"><de>Beleg oder Rechnung fotografieren<\/de><en>Snap a receipt or invoice<\/en><\/div>\n          <\/div>\n          \n          <div class=\"mobile-card\" style=\"border-left: 4px solid var(--danger); cursor:pointer;\">\n            <div style=\"display:flex; justify-content:space-between; align-items:center;\">\n              <strong style=\"font-size:15px;\"><de>Handlungsbedarf<\/de><en>Action Required<\/en><\/strong>\n              <span class=\"badge danger\"><de>2 Aufgaben<\/de><en>2 Tasks<\/en><\/span>\n            <\/div>\n            <div class=\"subtle\" style=\"margin-top:8px; line-height:1.4;\"><de>Ihr Steuerberater ben\u00f6tigt 2 fehlende Rechnungen f\u00fcr Februar.<\/de><en>Your accountant needs 2 missing invoices for February.<\/en><\/div>\n          <\/div>\n          \n          <div class=\"mobile-card\">\n            <strong style=\"font-size:15px; display:block; margin-bottom:12px;\"><de>K\u00fcrzliche Uploads<\/de><en>Recent Uploads<\/en><\/strong>\n            <div class=\"subtle\" style=\"display:flex; justify-content:space-between; align-items:center; padding-bottom:12px; border-bottom:1px solid var(--line);\"><span>Taxi_Beleg_Feb.jpg<\/span><span style=\"color:var(--success); font-weight:700;\"><de>Verarbeitet<\/de><en>Processed<\/en><\/span><\/div>\n            <div class=\"subtle\" style=\"margin-top:12px; display:flex; justify-content:space-between; align-items:center;\"><span>INV-48-0005.pdf<\/span><span style=\"color:var(--success); font-weight:700;\"><de>Verarbeitet<\/de><en>Processed<\/en><\/span><\/div>\n          <\/div>\n          \n          <div class=\"mobile-nav\" style=\"grid-template-columns:repeat(4, 1fr); margin-top:auto;\">\n            <div style=\"color:var(--primary);\"><de>Start<\/de><en>Home<\/en><\/div>\n            <div style=\"position:relative;\"><de>Aufgaben<\/de><en>To-Do<\/en> <span style=\"position:absolute; top:-6px; right:-2px; background:var(--danger); color:#fff; font-size:9px; width:16px; height:16px; border-radius:50%; display:flex; align-items:center; justify-content:center;\">2<\/span><\/div>\n            <div><de>Dateien<\/de><en>Files<\/en><\/div>\n            <div>Chat<\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n      \n      <div class=\"phone\" data-tooltip-de=\"Keine m\u00fchsamen E-Mails mehr! Die App erinnert den Mandanten proaktiv an exakt die fehlenden Dokumente.\" data-tooltip-en=\"No more tedious emails! The app proactively reminds the client of the exact missing documents.\">\n        <div class=\"phone-shell\">\n          <div style=\"display:flex; justify-content:space-between; align-items:center; margin-bottom:24px;\">\n            <div class=\"logo\" style=\"font-size:16px;\"><div class=\"logo-mark\" style=\"width:28px;height:28px;font-size:13px\">B<\/div> ClientPortal<\/div>\n          <\/div>\n          \n          <div class=\"mobile-header\"><de>Fehlende Belege<\/de><en>Missing Evidence<\/en><\/div>\n          <p class=\"subtle\" style=\"margin-bottom:24px; line-height:1.5;\"><de>Die KI hat Ihren Kontoauszug abgeglichen, konnte aber die Rechnungen f\u00fcr diese Transaktionen nicht finden.<\/de><en>The AI matched your bank statement but couldn&#8217;t find the invoices for these transactions.<\/en><\/p>\n          \n          <div class=\"mobile-card\" style=\"padding:18px;\">\n            <div style=\"display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:8px;\">\n              <strong style=\"color:var(--text); font-size:16px; line-height:1.3;\">Meridian Fabrication<\/strong>\n              <strong style=\"color:var(--success); font-size:16px;\">+1.140,00 \u20ac<\/strong>\n            <\/div>\n            <div class=\"subtle\" style=\"font-size:13px; margin-bottom:16px;\"><de>Einzahlung erhalten am 11. Feb 2026.<\/de><en>Deposit received on Feb 11, 2026.<\/en><\/div>\n            <button class=\"btn secondary action-toast\" data-msg=\"Fotogalerie wird ge\u00f6ffnet...\" data-msg-en=\"Opening photo library...\" style=\"width:100%; padding:12px; font-size:14px; border-style:dashed; color:var(--primary); border-color:#bfd0ff; background:#f8fbff;\">+ <de>Beleg hochladen<\/de><en>Upload Match<\/en><\/button>\n          <\/div>\n\n          <div class=\"mobile-card\" style=\"padding:18px;\">\n            <div style=\"display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:8px;\">\n              <strong style=\"color:var(--text); font-size:16px; line-height:1.3;\">S. JARITZ STAHLBAU<\/strong>\n              <strong style=\"color:var(--success); font-size:16px;\">+980,00 \u20ac<\/strong>\n            <\/div>\n            <div class=\"subtle\" style=\"font-size:13px; margin-bottom:16px;\"><de>Einzahlung erhalten am 5. Feb 2026.<\/de><en>Deposit received on Feb 5, 2026.<\/en><\/div>\n            <button class=\"btn secondary action-toast\" data-msg=\"Fotogalerie wird ge\u00f6ffnet...\" data-msg-en=\"Opening photo library...\" style=\"width:100%; padding:12px; font-size:14px; border-style:dashed; color:var(--primary); border-color:#bfd0ff; background:#f8fbff;\">+ <de>Beleg hochladen<\/de><en>Upload Match<\/en><\/button>\n          <\/div>\n          \n          <div class=\"mobile-nav\" style=\"grid-template-columns:repeat(4, 1fr); margin-top:auto;\">\n            <div><de>Start<\/de><en>Home<\/en><\/div>\n            <div style=\"color:var(--primary); position:relative;\"><de>Aufgaben<\/de><en>To-Do<\/en> <span style=\"position:absolute; top:-6px; right:-2px; background:var(--danger); color:#fff; font-size:9px; width:16px; height:16px; border-radius:50%; display:flex; align-items:center; justify-content:center;\">2<\/span><\/div>\n            <div><de>Dateien<\/de><en>Files<\/en><\/div>\n            <div>Chat<\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/section>\n\n<\/div>\n\n<script>\ndocument.addEventListener(\"DOMContentLoaded\", function() {\n    const appRoot = document.getElementById('blueocean-app-root');\n    if (appRoot && appRoot.parentNode !== document.body) {\n        document.body.appendChild(appRoot);\n    }\n    document.documentElement.style.setProperty('overflow', 'hidden', 'important');\n    document.body.style.setProperty('overflow', 'hidden', 'important');\n    \n    \/\/ --- NEU: SYNCHRONISATION MIT DEM WORDPRESS HEADER ---\n    syncLanguageOnLoad();\n    \n    updatePlaceholders();\n    initTooltips();\n});\n\n\/\/ --- LANGUAGE TOGGLE LOGIC ---\nlet currentLanguage = 'de';\n\n\/\/ Diese Funktion liest die Sprache aus, die der externe Header gesetzt hat\nfunction syncLanguageOnLoad() {\n    if (window.location.hash === '#lang-en') {\n        currentLanguage = 'en';\n    } else if (window.location.hash === '#lang-de') {\n        currentLanguage = 'de';\n    } else {\n        try {\n            const stored = localStorage.getItem('blue_ocean_lang');\n            if (stored === 'en') currentLanguage = 'en';\n        } catch(e) {}\n    }\n\n    if (currentLanguage === 'en') {\n        document.body.classList.add('english');\n    } else {\n        document.body.classList.remove('english');\n    }\n}\n\n\/\/ Reagiert sofort, wenn das Men\u00fc auf der Webseite die Sprache \u00e4ndert\nwindow.addEventListener('hashchange', () => {\n    if (window.location.hash === '#lang-en' || window.location.hash === '#lang-de') {\n        const newLang = window.location.hash.replace('#lang-', '');\n        if (currentLanguage !== newLang) {\n            currentLanguage = newLang;\n            if (newLang === 'en') document.body.classList.add('english');\n            else document.body.classList.remove('english');\n            \n            updatePlaceholders();\n            const currentTenant = document.getElementById('tenant-switcher').value;\n            updateDashboardData(currentTenant);\n        }\n    }\n});\n\nwindow.toggleLanguage = function() {\n    document.body.classList.toggle('english');\n    currentLanguage = document.body.classList.contains('english') ? 'en' : 'de';\n    \n    \/\/ Sprache zur\u00fcck in den LocalStorage schreiben (f\u00fcr den Header)\n    try {\n        localStorage.setItem('blue_ocean_lang', currentLanguage);\n    } catch(e) {}\n    \n    \/\/ URL-Hash aktualisieren (damit der Header wei\u00df, dass sich was ge\u00e4ndert hat)\n    history.replaceState(null, null, `#lang-${currentLanguage}`);\n    window.dispatchEvent(new Event('hashchange'));\n    \n    updatePlaceholders();\n    \n    const currentTenant = document.getElementById('tenant-switcher').value;\n    updateDashboardData(currentTenant);\n};\n\nfunction updatePlaceholders() {\n    document.querySelectorAll('[data-ph-de]').forEach(el => {\n        el.placeholder = currentLanguage === 'en' ? el.getAttribute('data-ph-en') : el.getAttribute('data-ph-de');\n    });\n}\n\n\/\/ --- SPRECHBLASE (TOOLTIP) LOGIC ---\nfunction initTooltips() {\n    const tooltip = document.createElement('div');\n    tooltip.id = 'global-tooltip';\n    document.body.appendChild(tooltip);\n\n    document.querySelectorAll('[data-tooltip-de]').forEach(el => {\n        el.classList.add('tooltip-target');\n\n        el.addEventListener('mouseenter', (e) => {\n            const textDE = el.getAttribute('data-tooltip-de');\n            const textEN = el.getAttribute('data-tooltip-en');\n            tooltip.innerHTML = currentLanguage === 'en' ? textEN : textDE;\n\n            const rect = el.getBoundingClientRect();\n            \n            tooltip.style.visibility = 'hidden';\n            tooltip.classList.add('active');\n            \n            \/\/ Wait for next frame to get tooltip dimensions\n            requestAnimationFrame(() => {\n                let top = rect.top - tooltip.offsetHeight - 15;\n                let left = rect.left + (rect.width \/ 2) - (tooltip.offsetWidth \/ 2);\n\n                \/\/ Boundary checks\n                if (top < 10) {\n                    top = rect.bottom + 15;\n                    tooltip.classList.add('arrow-top');\n                } else {\n                    tooltip.classList.remove('arrow-top');\n                }\n                \n                if(left < 10) left = 10;\n                if(left + tooltip.offsetWidth > window.innerWidth - 10) {\n                    left = window.innerWidth - tooltip.offsetWidth - 10;\n                }\n\n                tooltip.style.top = top + 'px';\n                tooltip.style.left = left + 'px';\n                tooltip.style.visibility = 'visible';\n            });\n        });\n\n        el.addEventListener('mouseleave', () => {\n            tooltip.classList.remove('active');\n        });\n    });\n}\n\n\/\/ API Configuration\nconst GEMINI_API_KEY = \"AIzaSyCqWlW_suVzGffL1pAx36lP3Y5hRLWKswc\";\n\n\/\/ View & Page Navigation\nconst topLinks = [...document.querySelectorAll('#blueocean-app-root .top-link')];\nconst views = [...document.querySelectorAll('#blueocean-app-root .view')];\nconst navLinksContainer = document.getElementById('nav-links');\nconst mobileMenuBtn = document.getElementById('mobile-menu-btn');\n\nmobileMenuBtn.addEventListener('click', () => {\n  navLinksContainer.classList.toggle('open');\n});\n\nfunction activateTopView(id) {\n  if(id === 'lang-toggle') return;\n  topLinks.forEach(l => l.classList.toggle('active', l.dataset.view === id));\n  views.forEach(v => v.classList.toggle('active', v.id === id));\n  navLinksContainer.classList.remove('open');\n  window.scrollTo({top: 0, behavior: 'smooth'});\n  \n  \/\/ Set CEO cockpit active when opening Web-App view\n  if(id === 'app') {\n      showPage('firm-ceo');\n  }\n}\n\ntopLinks.forEach(link => link.addEventListener('click', () => {\n  if (link.id !== 'logout-btn' && !link.classList.contains('lang-toggle')) activateTopView(link.dataset.view);\n}));\n\nconst navItems = [...document.querySelectorAll('#blueocean-app-root .nav-item')];\nconst pages = [...document.querySelectorAll('#blueocean-app-root .page')];\nfunction showPage(id) {\n  navItems.forEach(n => n.classList.toggle('active', n.dataset.page === id));\n  pages.forEach(p => p.classList.toggle('active', p.id === id));\n  window.scrollTo({top: 0, behavior: 'smooth'});\n}\nnavItems.forEach(item => item.addEventListener('click', () => showPage(item.dataset.page)));\n\nwindow.jumpToTenant = function(tenantName, pageId) {\n  const ts = document.getElementById('tenant-switcher');\n  ts.value = tenantName;\n  ts.dispatchEvent(new Event('change'));\n  showPage(pageId);\n};\n\nwindow.showToast = function(msg) {\n  const container = document.getElementById('toast-container');\n  const toast = document.createElement('div');\n  toast.className = 'toast';\n  toast.textContent = msg;\n  container.appendChild(toast);\n  setTimeout(() => toast.remove(), 3000);\n};\n\ndocument.addEventListener('click', (e) => {\n  const target = e.target.closest('#blueocean-app-root .action-toast');\n  if(target) {\n    e.preventDefault();\n    const msg = currentLanguage === 'en' && target.dataset.msgEn ? target.dataset.msgEn : (target.dataset.msg || \"Aktion erfolgreich\");\n    showToast(msg);\n  }\n});\n\n\/\/ DATA DICTIONARIES FOR TENANTS\nconst tenantDataDE = {\n  \"Cedar Stone Consulting Ltd\": {\n    unreconciled: \"980 \u20ac\", unrec_trend: \"Handlungsbedarf\", unrec_color: \"var(--warning)\",\n    unpaid: \"40 \u20ac\", unpaid_trend: \"1 Rechnung offen\", unpaid_color: \"var(--warning)\",\n    no_invoice: \"5\", no_inv_trend: \"Zuordnung erforderlich\",\n    compliance: \"1\", comp_trend: \"MwSt.-Abweichung\", comp_color: \"var(--danger)\",\n    summary: [\"3.420,00 \u20ac\", \"2.160,00 \u20ac\", \"1.140,00 \u20ac\", \"95,00 \u20ac\"],\n    alerts: [\n      { title: \"Fehlende Rechnungsbelege\", desc: \"F\u00fcr 1 Bankeinzahlung fehlt das Rechnungsdokument.\", unread: true, action: \"Beim Mandanten anfragen\" },\n      { title: \"Ausstehende unbezahlte Rechnung\", desc: \"Rechnung INV-55-2041 ist zum 28. Feb 2026 noch unbezahlt.\", unread: true },\n      { title: \"MwSt.-Abweichung bei Gutschrift\", desc: \"Ein Dokument au\u00dferhalb der Periode zeigt widerspr\u00fcchliche Reverse-Charge- und MwSt.-Behandlungen.\", unread: true }\n    ]\n  },\n  \"BOP BLUEOCEAN PRIVACY LTD\": {\n    unreconciled: \"1.140 \u20ac\", unrec_trend: \"Hohe Priorit\u00e4t\", unrec_color: \"var(--danger)\",\n    unpaid: \"0 \u20ac\", unpaid_trend: \"Alles bezahlt\", unpaid_color: \"var(--success)\",\n    no_invoice: \"12\", no_inv_trend: \"\u00dcberpr\u00fcfung erforderlich\",\n    compliance: \"0\", comp_trend: \"Alles in Ordnung\", comp_color: \"var(--success)\",\n    summary: [\"12.500,00 \u20ac\", \"11.360,00 \u20ac\", \"1.140,00 \u20ac\", \"0,00 \u20ac\"],\n    alerts: [\n      { title: \"Fehlende Rechnungsbelege\", desc: \"Mehrere Einzahlungen der Meridian Fabrication Group haben keine Rechnungen.\", unread: true, action: \"Beim Mandanten anfragen\" },\n      { title: \"Erkl\u00e4rung zur Buchhaltung erforderlich\", desc: \"Auszahlungssumme f\u00fcr Karl Pusch sollte in Gehalt und Gewinnaussch\u00fcttung aufgeteilt werden.\", unread: false }\n    ]\n  },\n  \"Rivergate Ops GmbH\": {\n    unreconciled: \"0 \u20ac\", unrec_trend: \"Abgeglichen\", unrec_color: \"var(--success)\",\n    unpaid: \"0 \u20ac\", unpaid_trend: \"Alles bezahlt\", unpaid_color: \"var(--success)\",\n    no_invoice: \"0\", no_inv_trend: \"Vollst\u00e4ndig zugeordnet\",\n    compliance: \"0\", comp_trend: \"Alles in Ordnung\", comp_color: \"var(--success)\",\n    summary: [\"8.900,00 \u20ac\", \"8.900,00 \u20ac\", \"0,00 \u20ac\", \"0,00 \u20ac\"],\n    alerts: [\n      { title: \"Monatliche Abstimmung abgeschlossen\", desc: \"Alle Konten sind f\u00fcr Feb 2026 abgeglichen. Keine Ausnahmen gefunden.\", unread: false }\n    ]\n  },\n  \"Nova Field Finance Ltd\": {\n    unreconciled: \"\u2014\", unrec_trend: \"Ausstehende Dok.\", unrec_color: \"var(--muted)\",\n    unpaid: \"\u2014\", unpaid_trend: \"Ausstehende Dok.\", unpaid_color: \"var(--muted)\",\n    no_invoice: \"\u2014\", no_inv_trend: \"Ausstehende Dok.\",\n    compliance: \"\u2014\", comp_trend: \"Ausstehende Dok.\", comp_color: \"var(--muted)\",\n    summary: [\"0,00 \u20ac\", \"0,00 \u20ac\", \"0,00 \u20ac\", \"0,00 \u20ac\"],\n    alerts: [\n      { title: \"Arbeitsbereich-Setup unvollst\u00e4ndig\", desc: \"Bitte laden Sie den Kontoauszug und die Rechnungen f\u00fcr Februar hoch, um die KI-Analyse zu starten.\", unread: true }\n    ]\n  }\n};\n\nconst tenantDataEN = {\n  \"Cedar Stone Consulting Ltd\": {\n    unreconciled: \"\u20ac980\", unrec_trend: \"Action required\", unrec_color: \"var(--warning)\",\n    unpaid: \"\u20ac40\", unpaid_trend: \"1 invoice open\", unpaid_color: \"var(--warning)\",\n    no_invoice: \"5\", no_inv_trend: \"Needs allocation\",\n    compliance: \"1\", comp_trend: \"VAT discrepancy\", comp_color: \"var(--danger)\",\n    summary: [\"\u20ac3,420.00\", \"\u20ac2,160.00\", \"\u20ac1,140.00\", \"\u20ac95.00\"],\n    alerts: [\n      { title: \"Missing invoice documentation\", desc: \"1 incoming bank deposit lacks its invoice document.\", unread: true, action: \"Request from client\" },\n      { title: \"Outstanding unpaid invoice\", desc: \"Invoice INV-55-2041 remains unpaid as of Feb 28, 2026.\", unread: true },\n      { title: \"VAT discrepancy on credit note\", desc: \"One out-of-period document shows contradictory reverse-charge and VAT treatment.\", unread: true }\n    ]\n  },\n  \"BOP BLUEOCEAN PRIVACY LTD\": {\n    unreconciled: \"\u20ac1,140\", unrec_trend: \"High priority\", unrec_color: \"var(--danger)\",\n    unpaid: \"\u20ac0\", unpaid_trend: \"All paid\", unpaid_color: \"var(--success)\",\n    no_invoice: \"12\", no_inv_trend: \"Review required\",\n    compliance: \"0\", comp_trend: \"All clear\", comp_color: \"var(--success)\",\n    summary: [\"\u20ac12,500.00\", \"\u20ac11,360.00\", \"\u20ac1,140.00\", \"\u20ac0.00\"],\n    alerts: [\n      { title: \"Missing invoice documentation\", desc: \"Multiple deposits from Meridian Fabrication Group lack invoices.\", unread: true, action: \"Request from client\" },\n      { title: \"Accounting explanation needed\", desc: \"Karl Pusch payout total should be split into salary and dividend distribution.\", unread: false }\n    ]\n  },\n  \"Rivergate Ops GmbH\": {\n    unreconciled: \"\u20ac0\", unrec_trend: \"Reconciled\", unrec_color: \"var(--success)\",\n    unpaid: \"\u20ac0\", unpaid_trend: \"All paid\", unpaid_color: \"var(--success)\",\n    no_invoice: \"0\", no_inv_trend: \"Fully allocated\",\n    compliance: \"0\", comp_trend: \"All clear\", comp_color: \"var(--success)\",\n    summary: [\"\u20ac8,900.00\", \"\u20ac8,900.00\", \"\u20ac0.00\", \"\u20ac0.00\"],\n    alerts: [\n      { title: \"Monthly reconciliation complete\", desc: \"All accounts are balanced for Feb 2026. No exceptions found.\", unread: false }\n    ]\n  },\n  \"Nova Field Finance Ltd\": {\n    unreconciled: \"\u2014\", unrec_trend: \"Pending docs\", unrec_color: \"var(--muted)\",\n    unpaid: \"\u2014\", unpaid_trend: \"Pending docs\", unpaid_color: \"var(--muted)\",\n    no_invoice: \"\u2014\", no_inv_trend: \"Pending docs\",\n    compliance: \"\u2014\", comp_trend: \"Pending docs\", comp_color: \"var(--muted)\",\n    summary: [\"\u20ac0.00\", \"\u20ac0.00\", \"\u20ac0.00\", \"\u20ac0.00\"],\n    alerts: [\n      { title: \"Workspace setup incomplete\", desc: \"Please upload the February bank statement and invoices to begin AI analysis.\", unread: true }\n    ]\n  }\n};\n\nfunction updateDashboardData(tenantName) {\n  const data = currentLanguage === 'en' ? tenantDataEN[tenantName] : tenantDataDE[tenantName];\n  if(!data) return;\n  \n  const content = document.getElementById('dashboard-content');\n  if(!content) return;\n  content.style.opacity = '0';\n  \n  setTimeout(() => {\n    document.getElementById('dash-tenant-name').textContent = tenantName;\n    \n    document.getElementById('val-unrec').textContent = data.unreconciled;\n    document.getElementById('trend-unrec').textContent = data.unrec_trend;\n    document.getElementById('trend-unrec').style.color = data.unrec_color;\n\n    document.getElementById('val-unpaid').textContent = data.unpaid;\n    document.getElementById('trend-unpaid').textContent = data.unpaid_trend;\n    document.getElementById('trend-unpaid').style.color = data.unpaid_color;\n\n    document.getElementById('val-noinv').textContent = data.no_invoice;\n    document.getElementById('trend-noinv').textContent = data.no_inv_trend;\n\n    document.getElementById('val-comp').textContent = data.compliance;\n    document.getElementById('trend-comp').textContent = data.comp_trend;\n    document.getElementById('trend-comp').style.color = data.comp_color;\n\n    document.getElementById('sum-1').textContent = data.summary[0];\n    document.getElementById('sum-2').textContent = data.summary[1];\n    document.getElementById('sum-3').textContent = data.summary[2];\n    document.getElementById('sum-4').textContent = data.summary[3];\n\n    const alertsHtml = data.alerts.map(a => `\n      <div class=\"notif ${a.unread ? 'unread' : ''}\" data-tooltip-de=\"Mit einem Klick schickt die KI eine automatisierte E-Mail-Nachfrage an den Mandanten.\" data-tooltip-en=\"With one click, the AI sends an automated email request to the client.\">\n        <div style=\"display:flex; justify-content:space-between; align-items:start; gap:8px;\">\n          <div>\n            <div class=\"notif-title\">${a.title}<\/div>\n            <div class=\"muted\">${a.desc}<\/div>\n          <\/div>\n          ${a.action ? `<button class=\"btn secondary btn-sm action-toast\" style=\"white-space:nowrap; border-color:var(--primary); color:var(--primary);\" data-msg=\"E-Mail-Entwurf an Mandanten erstellt.\" data-msg-en=\"Auto-email drafted to client.\">${a.action}<\/button>` : ''}\n        <\/div>\n      <\/div>\n    `).join('');\n    document.getElementById('dash-notifications').innerHTML = alertsHtml;\n\n    content.style.opacity = '1';\n    \n    \/\/ Re-init tooltips for dynamically generated elements\n    initTooltips();\n  }, 300);\n}\n\ndocument.querySelectorAll('#blueocean-app-root .folder-dropzone').forEach(dropzone => {\n  const fileInput = dropzone.previousElementSibling;\n  const targetListId = fileInput.dataset.target;\n  const targetList = document.getElementById(targetListId);\n\n  dropzone.addEventListener('click', () => fileInput.click());\n\n  ['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => {\n    dropzone.addEventListener(eventName, preventDefaults, false);\n  });\n  \n  function preventDefaults(e) { e.preventDefault(); e.stopPropagation(); }\n\n  ['dragenter', 'dragover'].forEach(eventName => {\n    dropzone.addEventListener(eventName, () => dropzone.classList.add('dragover'), false);\n  });\n  \n  ['dragleave', 'drop'].forEach(eventName => {\n    dropzone.addEventListener(eventName, () => dropzone.classList.remove('dragover'), false);\n  });\n\n  dropzone.addEventListener('drop', (e) => handleFiles(e.dataTransfer.files, targetList), false);\n  fileInput.addEventListener('change', (e) => handleFiles(e.target.files, targetList), false);\n});\n\nfunction handleFiles(files, targetList) {\n  [...files].forEach(file => {\n    const row = document.createElement('div');\n    row.className = 'file-row';\n    row.setAttribute('data-name', file.name);\n    row.innerHTML = `\n      <div class=\"name\" title=\"${file.name}\">${file.name}<\/div>\n      <div class=\"bar\" style=\"width:50px\"><div class=\"fill\" style=\"width: 0%\"><\/div><\/div>\n    `;\n    targetList.prepend(row);\n    \n    setTimeout(() => {\n      row.innerHTML = `<div class=\"name\" title=\"${file.name}\">${file.name}<\/div><span class=\"badge success\"><de>\u2713 Bereit<\/de><en>\u2713 Ready<\/en><\/span>`;\n      showToast(currentLanguage === 'en' ? `${file.name} uploaded.` : `${file.name} hochgeladen.`);\n    }, 600 + Math.random() * 800);\n  });\n}\n\ndocument.getElementById('run-ai-agent-btn').addEventListener('click', async () => {\n  const overlay = document.getElementById('ai-loading-overlay');\n  \n  const bankFiles = [...document.querySelectorAll('#bank-list .file-row')].map(el => el.dataset.name);\n  const purchaseFiles = [...document.querySelectorAll('#purchase-list .file-row')].map(el => el.dataset.name);\n  const salesFiles = [...document.querySelectorAll('#sales-list .file-row')].map(el => el.dataset.name);\n  \n  const allFilesContext = `Bank Statements: ${bankFiles.join(', ')}\\nPurchase Invoices: ${purchaseFiles.join(', ')}\\nSales Invoices: ${salesFiles.join(', ')}`;\n\n  overlay.classList.add('active');\n\n  const systemPrompt = `\n  You are an expert AI financial agent named \"BLUEOCEAN SYNTHETIC AI AGENT\". \n  The user has uploaded the following files for reconciliation:\n  ${allFilesContext}\n\n  Generate a web-native \"Bank Statement vs. Reconciliation Report\" in HTML format.\n  If the user's interface is currently in German (translate all text to German).\n  Use realistic accounting numbers (EUR), plausible supplier names, and match the style of a professional audit report. \n\n  CRITICAL NEW REQUIREMENT: To save the accountant time with \"Booking\", add a column for \"Suggested DATEV Ledger Code (e.g. #4920)\" for every matched transaction in the table.\n\n  CRITICAL: You must output ONLY valid HTML. Do not wrap in markdown \\`\\`\\`html tags. Do not include <body> or <head> tags. Just the raw HTML elements.\n\n  Use the following HTML structure and classes EXACTLY as shown to fit the design system:\n  \n  <div class=\"report-header\">\n    <div>\n      <div class=\"report-brand\">BLUEOCEAN SYNTHETIC AI AGENT<\/div>\n      <h2 style=\"margin-top:10px;font-size:26px\">AI Reconciliation Report<\/h2>\n      <p style=\"font-weight:500;\">Company: BOP BLUEOCEAN PRIVACY LTD \u2022 Generated Automatically<\/p>\n    <\/div>\n    <div class=\"score\">98%<\/div>\n  <\/div>\n  \n  <div class=\"report-section\">\n    <h3>1. Executive Summary<\/h3>\n    <div class=\"summary-list\">\n      <!-- Add realistic summary items -->\n    <\/div>\n  <\/div>\n  \n  <!-- Add sections 2, 3, 4 following the previous structures using tables and .hero-note -->\n  `;\n\n  try {\n    const response = await fetch(`https:\/\/generativelanguage.googleapis.com\/v1beta\/models\/gemini-2.5-flash-preview-09-2025:generateContent?key=${GEMINI_API_KEY}`, {\n      method: 'POST',\n      headers: { 'Content-Type': 'application\/json' },\n      body: JSON.stringify({\n        contents: [{ parts: [{ text: currentLanguage === 'en' ? \"Generate the reconciliation report based on the prompt.\" : \"Erstelle den Abstimmungsbericht auf Deutsch auf Basis der Anweisungen.\" }] }],\n        systemInstruction: { parts: [{ text: systemPrompt }] }\n      })\n    });\n\n    const data = await response.json();\n    let generatedHTML = data.candidates?.[0]?.content?.parts?.[0]?.text || \"<p>Error generating report.<\/p>\";\n    \n    generatedHTML = generatedHTML.replace(\/^```html\\s*\/i, '').replace(\/```\\s*$\/i, '');\n\n    document.getElementById('dynamic-report-container').innerHTML = generatedHTML;\n    \n    overlay.classList.remove('active');\n    showPage('results');\n    showToast(currentLanguage === 'en' ? 'AI Reconciliation Complete!' : 'KI-Abstimmung abgeschlossen!');\n    \n  } catch (error) {\n    console.error(error);\n    overlay.classList.remove('active');\n    showToast(currentLanguage === 'en' ? 'Error connecting to AI. Check console.' : 'Fehler bei der KI-Verbindung. \u00dcberpr\u00fcfen Sie die Konsole.');\n  }\n});\n\n\nwindow.sendChatMessage = function() {\n  const input = document.getElementById('chat-input');\n  const text = input.value.trim();\n  if(!text) return;\n  \n  const chatBody = document.getElementById('chat-messages');\n  \n  chatBody.innerHTML += `<div class=\"chat-msg user\">${text}<\/div>`;\n  input.value = '';\n  chatBody.scrollTop = chatBody.scrollHeight;\n  \n  const typingId = 'typing-' + Date.now();\n  chatBody.innerHTML += `\n    <div class=\"typing-indicator bot\" id=\"${typingId}\">\n      <div class=\"typing-dot\"><\/div><div class=\"typing-dot\"><\/div><div class=\"typing-dot\"><\/div>\n    <\/div>`;\n  chatBody.scrollTop = chatBody.scrollHeight;\n\n  setTimeout(() => {\n    document.getElementById(typingId).remove();\n    \n    let reply = currentLanguage === 'en' ? \"I can help with that. Looking through the workspace documents...\" : \"Dabei kann ich helfen. Ich durchsuche die Dokumente des Arbeitsbereichs...\";\n    \n    if (text.toLowerCase().includes(\"willow crest\") || text.toLowerCase().includes(\"gutschrift\")) {\n      reply = currentLanguage === 'en' \n        ? \"The Willow Crest credit note was flagged because the line items calculate a 19% Standard VAT (\u20ac163.40), but the footer explicitly states 'Keine USt. gem\u00e4\u00df Artikel 138 der Richtlinie 2006\/112\/EG (Reverse Charge)'. This is a direct contradiction that requires your review.\" \n        : \"Die Willow Crest-Gutschrift wurde markiert, da die Positionen eine Standard-MwSt. von 19 % (163,40 \u20ac) berechnen, in der Fu\u00dfzeile jedoch ausdr\u00fccklich 'Keine USt. gem\u00e4\u00df Artikel 138 der Richtlinie 2006\/112\/EG (Reverse Charge)' steht. Dies ist ein direkter Widerspruch, der Ihre \u00dcberpr\u00fcfung erfordert.\";\n    } else if (text.toLowerCase().includes(\"draft\") || text.toLowerCase().includes(\"email\") || text.toLowerCase().includes(\"e-mail\") || text.toLowerCase().includes(\"entwirf\")) {\n      reply = currentLanguage === 'en'\n        ? \"Sure thing! Draft created: 'Hi Client, we noticed a deposit of \u20ac1,140 on Feb 11th from Meridian Fabrication Group but we are missing the corresponding invoice. Could you please upload it to the portal? Thanks!'\"\n        : \"Gerne! E-Mail-Entwurf erstellt: 'Hallo Mandant, wir haben am 11. Februar eine Einzahlung in H\u00f6he von 1.140 \u20ac von der Meridian Fabrication Group festgestellt, uns fehlt jedoch die dazugeh\u00f6rige Rechnung. K\u00f6nnten Sie diese bitte in das Portal hochladen? Vielen Dank!'\";\n    }\n    \n    chatBody.innerHTML += `<div class=\"chat-msg bot\">${reply}<\/div>`;\n    chatBody.scrollTop = chatBody.scrollHeight;\n  }, 1200);\n};\n\ndocument.querySelectorAll('#blueocean-app-root .switch').forEach(toggle => {\n  toggle.addEventListener('click', function() {\n    this.classList.toggle('off');\n    const systemName = this.parentElement.querySelector('strong').textContent;\n    const status = this.classList.contains('off') ? (currentLanguage === 'en' ? 'disabled' : 'deaktiviert') : (currentLanguage === 'en' ? 'enabled' : 'aktiviert');\n    showToast(currentLanguage === 'en' ? `${systemName} connector ${status}.` : `${systemName} Konnektor ${status}.`);\n  });\n});\n\ndocument.getElementById('btn-mark-read').addEventListener('click', () => {\n  const unread = document.querySelectorAll('#blueocean-app-root #notifications .notif.unread');\n  if(unread.length > 0) {\n    unread.forEach(n => {\n      n.style.transition = 'background 0.3s, border-color 0.3s';\n      n.classList.remove('unread');\n    });\n    showToast(currentLanguage === 'en' ? \"All notifications marked as read.\" : \"Alle Benachrichtigungen als gelesen markiert.\");\n  } else {\n    showToast(currentLanguage === 'en' ? \"No new notifications to mark.\" : \"Keine neuen Benachrichtigungen zu markieren.\");\n  }\n});\n\ndocument.getElementById('tenant-switcher').addEventListener('change', (e) => {\n  showToast(currentLanguage === 'en' ? `Switched to ${e.target.value}` : `Gewechselt zu ${e.target.value}`);\n  updateDashboardData(e.target.value);\n  \n  \/\/ Automatically switch to client dashboard view when a client is selected\n  showPage('dashboard');\n});\n\ndocument.getElementById('btn-recalc').addEventListener('click', () => {\n  const btn = document.getElementById('btn-recalc');\n  btn.textContent = currentLanguage === 'en' ? \"Calculating...\" : \"Berechne...\";\n  btn.style.opacity = '0.7';\n  \n  setTimeout(() => {\n    document.getElementById('calc-docs').textContent = \"128\";\n    document.getElementById('calc-tx').textContent = \"58 Std.\";\n    document.getElementById('calc-cost').textContent = \"8.200 \u20ac\";\n    btn.textContent = currentLanguage === 'en' ? \"Refresh Data\" : \"Daten aktualisieren\";\n    btn.style.opacity = '1';\n    showToast(currentLanguage === 'en' ? \"ROI recalculated based on current week.\" : \"ROI wurde basierend auf der aktuellen Woche neu berechnet.\");\n  }, 1000);\n});\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>B BlueOcean Finance AI \u00dcbersichtOverview Web-AppWeb App Mobile AppMobile App \ud83c\uddec\ud83c\udde7 EN\ud83c\udde9\ud83c\uddea DE Design f\u00fcr SteuerberaterTax accountant-first design Ein Arbeitsbereich f\u00fcr Abstimmung, Compliance und KI-AgentenOne workspace for reconciliation, compliance, and AI agents Das Dashboard orientiert sich an den Priorit\u00e4ten von Buchhaltern. Ausnahmen, nicht abgestimmte Posten, unbezahlte Rechnungen und Compliance-Probleme werden vor allgemeinen Kennzahlen angezeigt.The dashboard [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-110","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blueagency.io\/index.php?rest_route=\/wp\/v2\/pages\/110","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blueagency.io\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blueagency.io\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blueagency.io\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blueagency.io\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=110"}],"version-history":[{"count":5,"href":"https:\/\/blueagency.io\/index.php?rest_route=\/wp\/v2\/pages\/110\/revisions"}],"predecessor-version":[{"id":139,"href":"https:\/\/blueagency.io\/index.php?rest_route=\/wp\/v2\/pages\/110\/revisions\/139"}],"wp:attachment":[{"href":"https:\/\/blueagency.io\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=110"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}