.login[data-v-2a7f823c]{display:flex;align-items:center;justify-content:center;height:100%;padding:24px}.login-box[data-v-2a7f823c]{width:100%;max-width:360px;background:var(--card);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow)}.login-box h1[data-v-2a7f823c]{font-size:24px;margin-bottom:4px}:root{--bg: #0f172a;--bg2: #1e293b;--card: #1e293b;--card2: #273449;--text: #e2e8f0;--muted: #94a3b8;--accent: #3b82f6;--accent2: #2563eb;--green: #22c55e;--red: #ef4444;--amber: #f59e0b;--radius: 16px;--shadow: 0 4px 20px rgba(0, 0, 0, .35)}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}body{font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent}.app{display:flex;flex-direction:column;height:100%}.content{flex:1;overflow-y:auto;padding:16px 16px 84px;padding-bottom:calc(84px + env(safe-area-inset-bottom))}.tabbar{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--bg2);border-top:1px solid #334155;padding-bottom:env(safe-area-inset-bottom)}.tabbar a{flex:1;text-align:center;padding:16px 8px;color:var(--muted);text-decoration:none;font-weight:600;font-size:15px}.tabbar a.router-link-active{color:var(--accent)}.card{background:var(--card);border-radius:var(--radius);padding:16px;margin-bottom:12px;box-shadow:var(--shadow)}.card h3{font-size:18px;margin-bottom:4px}.muted{color:var(--muted);font-size:14px}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700}.badge.im_bestand{background:var(--green);color:#052e16}.badge.verkauft{background:var(--amber);color:#451a03}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 20px;border:none;border-radius:12px;font-size:16px;font-weight:700;cursor:pointer;min-height:48px;text-decoration:none}.btn-primary{background:var(--accent2);color:#fff}.btn-primary:active{background:var(--accent)}.btn-ghost{background:var(--card2);color:var(--text)}.btn-ghost:active{background:#334155}.btn-green{background:var(--green);color:#052e16}.btn-red{background:var(--red);color:#fff}.btn-block{width:100%}.field{margin-bottom:14px}.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px;font-weight:600}.field input,.field select,.field textarea{width:100%;padding:14px;border-radius:12px;border:1px solid #334155;background:var(--bg2);color:var(--text);font-size:16px;font-family:inherit}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--accent)}.chat-fab{position:fixed;right:18px;bottom:84px;width:60px;height:60px;border-radius:50%;background:var(--accent2);color:#fff;border:none;font-size:26px;box-shadow:var(--shadow);z-index:50;cursor:pointer}.chat-panel{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:60;display:flex;flex-direction:column}.chat-head{padding:16px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #334155}.chat-body{flex:1;overflow-y:auto;padding:16px}.chat-input{padding:12px;border-top:1px solid #334155;display:flex;gap:8px}.chat-input input{flex:1;padding:14px;border-radius:12px;border:1px solid #334155;background:var(--bg2);color:var(--text);font-size:16px}.msg{margin-bottom:12px;max-width:85%}.msg.user{margin-left:auto}.msg.bubble{padding:12px 14px;border-radius:14px;background:var(--card2);white-space:pre-wrap}.msg.user .bubble{background:var(--accent2)}.msg.proposal{background:var(--card);border:1px solid var(--amber);border-radius:14px;padding:12px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat{text-align:center}.stat .num{font-size:26px;font-weight:800}.stat .lbl{font-size:12px;color:var(--muted)}.center{display:flex;align-items:center;justify-content:center;height:100%}.loader{width:36px;height:36px;border:4px solid var(--bg2);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}h1.page{font-size:22px;margin-bottom:16px}.flex{display:flex;align-items:center;gap:10px}.spacer{flex:1}.row{display:flex;gap:8px;flex-wrap:wrap}
