.modal-backdrop[data-v-536d95a7]{z-index:100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal[data-v-536d95a7]{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;width:520px;max-width:92vw;display:flex}.modal-header[data-v-536d95a7]{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.modal-header h2[data-v-536d95a7]{margin:0;font-size:1.1rem;font-weight:600}.modal-body[data-v-536d95a7]{flex-direction:column;gap:18px;max-height:70vh;padding:24px;display:flex;overflow-y:auto}.modal-footer[data-v-536d95a7]{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.auth-tabs[data-v-536d95a7]{border:1px solid var(--border);border-radius:8px;display:flex;overflow:hidden}.auth-tab[data-v-536d95a7]{background:var(--bg);color:var(--text-muted);cursor:pointer;border:none;flex:1;padding:8px 14px;font-size:.85rem;transition:all .15s}.auth-tab[data-v-536d95a7]:first-child{border-right:1px solid var(--border)}.auth-tab.active[data-v-536d95a7]{background:var(--accent);color:#fff;font-weight:500}.form-group[data-v-536d95a7]{flex-direction:column;gap:6px;display:flex}.form-group label[data-v-536d95a7]{color:var(--text-muted);font-size:.85rem;font-weight:500}.form-group input[data-v-536d95a7]{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:6px;outline:none;padding:8px 12px;font-size:.9rem;transition:border-color .2s}.form-group input[data-v-536d95a7]:focus{border-color:var(--accent)}.form-group small[data-v-536d95a7]{color:var(--text-muted);font-size:.78rem}.form-group small code[data-v-536d95a7]{background:var(--bg);border:1px solid var(--border);border-radius:3px;padding:1px 5px;font-family:monospace}.connection-status[data-v-536d95a7]{background:var(--bg);border:1px solid var(--border);border-radius:6px;align-items:center;gap:8px;padding:10px 14px;font-size:.875rem;display:flex}.connection-status.ok[data-v-536d95a7]{color:var(--success);border-color:var(--success);background:color-mix(in srgb, var(--success) 10%, transparent)}.connection-status.error[data-v-536d95a7]{color:var(--danger);border-color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, transparent)}.btn-sm[data-v-536d95a7]{padding:3px 10px;font-size:.78rem}.env-hint[data-v-536d95a7]{color:var(--text-muted);background:var(--bg);border:1px solid var(--border);word-break:break-all;border-radius:6px;align-items:center;gap:8px;padding:6px 10px;font-size:.82rem;display:flex}.env-badge[data-v-536d95a7]{letter-spacing:.05em;background:color-mix(in srgb, var(--accent) 20%, transparent);color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);border-radius:4px;flex-shrink:0;padding:1px 6px;font-size:.68rem;font-weight:700}.oauth-hint[data-v-536d95a7]{background:color-mix(in srgb, var(--accent) 10%, transparent);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);color:var(--text-muted);border-radius:8px;padding:12px 14px;font-size:.82rem;line-height:1.6}.oauth-hint strong[data-v-536d95a7]{color:var(--text)}.oauth-hint ul[data-v-536d95a7]{margin:6px 0 0 18px;padding:0}.oauth-hint li[data-v-536d95a7]{margin-bottom:2px}.oauth-hint code[data-v-536d95a7]{background:var(--bg);word-break:break-all;border-radius:3px;padding:1px 5px;font-family:monospace;font-size:.78rem}.oauth-actions[data-v-536d95a7]{flex-direction:column;gap:8px;display:flex}.oauth-actions small[data-v-536d95a7]{color:var(--text-muted);font-size:.78rem}.spinner[data-v-536d95a7]{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:14px;height:14px;animation:.6s linear infinite spin-536d95a7;display:inline-block}@keyframes spin-536d95a7{to{transform:rotate(360deg)}}.project-selector[data-v-70c7032c]{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.selector-group[data-v-70c7032c]{flex-direction:column;gap:5px;display:flex}.selector-label[data-v-70c7032c]{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.72rem;font-weight:600}.selector-select[data-v-70c7032c]{background:var(--surface);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;outline:none;min-width:160px;padding:7px 10px;font-size:.85rem}.selector-select[data-v-70c7032c]:focus{border-color:var(--accent)}.load-btn[data-v-70c7032c]{align-items:center;gap:6px;height:34px;padding:0 16px;display:flex}.spinner[data-v-70c7032c]{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:12px;height:12px;animation:.6s linear infinite spin-70c7032c}@keyframes spin-70c7032c{to{transform:rotate(360deg)}}.filter-panel[data-v-7e7a1fe4]{flex-direction:column;flex-shrink:0;gap:20px;width:220px;padding-right:4px;display:flex}.filter-label[data-v-7e7a1fe4]{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:8px;font-size:.72rem;font-weight:600;display:block}.filter-section[data-v-7e7a1fe4]{flex-direction:column;display:flex}.chip-group[data-v-7e7a1fe4]{flex-wrap:wrap;gap:6px;display:flex}.chip-group.vertical[data-v-7e7a1fe4]{flex-direction:column;gap:4px}.chip[data-v-7e7a1fe4]{border:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;border-radius:20px;padding:4px 10px;font-size:.8rem;transition:all .15s}.chip[data-v-7e7a1fe4]:hover{border-color:var(--accent)}.chip.active[data-v-7e7a1fe4]{background:var(--accent);border-color:var(--accent);color:#fff}.checkbox-chip[data-v-7e7a1fe4]{cursor:pointer;align-items:center;gap:7px;font-size:.82rem;display:flex}.checkbox-chip input[data-v-7e7a1fe4]{cursor:pointer;accent-color:var(--accent)}.chip-label[data-v-7e7a1fe4]{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:2px 8px;font-size:.78rem}.status-neu[data-v-7e7a1fe4]{color:#6366f1;background:#6366f126;border-color:#6366f1}.status-bestaetigt[data-v-7e7a1fe4]{color:#3b82f6;background:#3b82f626;border-color:#3b82f6}.status-roadmap[data-v-7e7a1fe4]{color:#8b5cf6;background:#8b5cf626;border-color:#8b5cf6}.status-progress[data-v-7e7a1fe4]{color:#f59e0b;background:#f59e0b26;border-color:#f59e0b}.status-testing[data-v-7e7a1fe4]{color:#06b6d4;background:#06b6d426;border-color:#06b6d4}.status-done[data-v-7e7a1fe4]{color:#22c55e;background:#22c55e26;border-color:#22c55e}.status-intern[data-v-7e7a1fe4]{color:#94a3b8;background:#94a3b826;border-color:#94a3b8}.status-waiting[data-v-7e7a1fe4]{color:#f97316;background:#f9731626;border-color:#f97316}.sev-high[data-v-7e7a1fe4]{background:color-mix(in srgb, var(--danger) 15%, transparent);border-color:var(--danger);color:var(--danger)}.sev-medium[data-v-7e7a1fe4]{background:color-mix(in srgb, var(--warning) 15%, transparent);border-color:var(--warning);color:var(--warning)}.sev-low[data-v-7e7a1fe4]{background:color-mix(in srgb, var(--success) 15%, transparent);border-color:var(--success);color:var(--success)}.filter-input[data-v-7e7a1fe4]{background:var(--bg);border:1px solid var(--border);color:var(--text);box-sizing:border-box;border-radius:6px;outline:none;width:100%;padding:6px 10px;font-size:.85rem}.filter-input[data-v-7e7a1fe4]:focus{border-color:var(--accent)}.reset-btn[data-v-7e7a1fe4]{color:var(--text-muted);border:1px dashed var(--border);cursor:pointer;text-align:center;background:0 0;border-radius:6px;width:100%;margin-top:auto;padding:6px;font-size:.8rem}.reset-btn[data-v-7e7a1fe4]:hover{color:var(--text);border-style:solid}.preset-row[data-v-7e7a1fe4]{flex-wrap:wrap;gap:4px;margin-bottom:6px;display:flex}.preset-btn[data-v-7e7a1fe4]{border:1px solid var(--border);background:var(--bg);color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:10px;padding:2px 7px;font-size:.72rem;transition:all .15s}.preset-btn[data-v-7e7a1fe4]:hover{border-color:var(--accent);color:var(--text)}.preset-btn.active[data-v-7e7a1fe4]{background:color-mix(in srgb, var(--accent) 18%, transparent);border-color:var(--accent);color:var(--accent)}.date-row[data-v-7e7a1fe4]{align-items:center;gap:4px;display:flex}.date-row .filter-input[data-v-7e7a1fe4]{flex:1;min-width:0;padding:6px;font-size:.78rem}.date-sep[data-v-7e7a1fe4]{color:var(--text-muted);flex-shrink:0}.issue-table-wrap[data-v-c00b7b73]{flex-direction:column;flex:1;gap:12px;min-width:0;display:flex}.table-toolbar[data-v-c00b7b73]{justify-content:space-between;align-items:center;display:flex}.result-count[data-v-c00b7b73]{color:var(--text-muted);font-size:.82rem}.issue-table[data-v-c00b7b73]{border-collapse:collapse;width:100%;font-size:.85rem}.issue-table th[data-v-c00b7b73]{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap;-webkit-user-select:none;user-select:none;padding:8px 10px;font-size:.72rem;font-weight:600}.issue-table th.sortable[data-v-c00b7b73]{cursor:pointer}.issue-table th.sortable[data-v-c00b7b73]:hover{color:var(--text)}.issue-table th.sorted[data-v-c00b7b73]{color:var(--accent);border-bottom-color:var(--accent)}.sort-icon[data-v-c00b7b73]{vertical-align:middle;opacity:.3;margin-left:4px;transition:opacity .15s;display:inline-flex}.sort-icon.active[data-v-c00b7b73]{opacity:1;color:var(--accent)}.issue-table th.sortable:hover .sort-icon[data-v-c00b7b73]{opacity:.7}.issue-row[data-v-c00b7b73]{cursor:pointer;border-bottom:1px solid var(--border);transition:background .1s}.issue-row[data-v-c00b7b73]:hover{background:var(--surface-hover)}.issue-row td[data-v-c00b7b73]{vertical-align:middle;padding:10px}.col-id[data-v-c00b7b73]{width:50px}.col-title[data-v-c00b7b73]{min-width:200px}.col-labels[data-v-c00b7b73]{width:240px}.col-date[data-v-c00b7b73]{white-space:nowrap;width:80px}.col-duration[data-v-c00b7b73]{white-space:nowrap;width:90px}.col-state[data-v-c00b7b73]{width:100px}.muted[data-v-c00b7b73]{color:var(--text-muted);font-size:.8rem}.title-line[data-v-c00b7b73]{align-items:center;display:flex}.issue-title[data-v-c00b7b73]{font-weight:500}.issue-project[data-v-c00b7b73]{color:var(--text-muted);margin-top:2px;font-size:.75rem}.assignees[data-v-c00b7b73]{vertical-align:middle;gap:3px;margin-left:8px;display:inline-flex}.avatar img[data-v-c00b7b73]{border:1px solid var(--border);border-radius:50%;width:20px;height:20px}.label-chips[data-v-c00b7b73]{flex-wrap:wrap;gap:4px;display:flex}.label-chip[data-v-c00b7b73]{white-space:nowrap;border:1px solid #0000;border-radius:10px;padding:2px 7px;font-size:.72rem;font-weight:500}.lbl-neu[data-v-c00b7b73]{color:#6366f1;background:#6366f126;border-color:#6366f1}.lbl-bestaetigt[data-v-c00b7b73]{color:#3b82f6;background:#3b82f626;border-color:#3b82f6}.lbl-roadmap[data-v-c00b7b73]{color:#8b5cf6;background:#8b5cf626;border-color:#8b5cf6}.lbl-progress[data-v-c00b7b73]{color:#f59e0b;background:#f59e0b26;border-color:#f59e0b}.lbl-testing[data-v-c00b7b73]{color:#06b6d4;background:#06b6d426;border-color:#06b6d4}.lbl-done[data-v-c00b7b73]{color:#22c55e;background:#22c55e26;border-color:#22c55e}.lbl-intern[data-v-c00b7b73]{color:#94a3b8;background:#94a3b826;border-color:#94a3b8}.lbl-waiting[data-v-c00b7b73]{color:#f97316;background:#f9731626;border-color:#f97316}.lbl-status[data-v-c00b7b73]{background:var(--bg);color:var(--text-muted);border-color:var(--border)}.lbl-type[data-v-c00b7b73]{color:#64748b;background:#64748b26;border-color:#64748b}.lbl-sev-high[data-v-c00b7b73]{background:color-mix(in srgb,var(--danger) 15%,transparent);color:var(--danger);border-color:var(--danger)}.lbl-sev-medium[data-v-c00b7b73]{background:color-mix(in srgb,var(--warning) 15%,transparent);color:var(--warning);border-color:var(--warning)}.lbl-sev-low[data-v-c00b7b73]{background:color-mix(in srgb,var(--success) 15%,transparent);color:var(--success);border-color:var(--success)}.lbl-default[data-v-c00b7b73]{background:var(--bg);color:var(--text-muted);border-color:var(--border)}.duration[data-v-c00b7b73]{color:var(--text-muted);font-size:.8rem}.duration.open[data-v-c00b7b73]{color:var(--warning)}.state-badge[data-v-c00b7b73]{border-radius:12px;padding:3px 9px;font-size:.75rem;font-weight:500}.state-badge.opened[data-v-c00b7b73]{background:color-mix(in srgb,var(--warning) 15%,transparent);color:var(--warning)}.state-badge.closed[data-v-c00b7b73]{background:color-mix(in srgb,var(--success) 15%,transparent);color:var(--success)}.empty-state[data-v-c00b7b73]{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:12px;padding:60px 20px;font-size:.9rem;display:flex}.empty-icon[data-v-c00b7b73]{font-size:2.5rem}.stats-bar[data-v-953a5b4a]{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.stat-card[data-v-953a5b4a]{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:10px;min-width:90px;padding:14px 20px}.stat-value[data-v-953a5b4a]{font-size:1.6rem;font-weight:700;line-height:1}.stat-label[data-v-953a5b4a]{color:var(--text-muted);white-space:nowrap;margin-top:4px;font-size:.75rem}.stat-card.open .stat-value[data-v-953a5b4a]{color:var(--warning)}.stat-card.closed .stat-value[data-v-953a5b4a]{color:var(--success)}.stat-breakdown[data-v-953a5b4a]{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.badge-count[data-v-953a5b4a]{background:var(--bg);border:1px solid var(--border);border-radius:20px;align-items:center;gap:5px;padding:5px 10px;font-size:.8rem;display:flex}.badge-count strong[data-v-953a5b4a]{font-weight:600}.dot[data-v-953a5b4a]{border-radius:50%;flex-shrink:0;width:8px;height:8px}.sev-high .dot[data-v-953a5b4a]{background:var(--danger)}.sev-medium .dot[data-v-953a5b4a]{background:var(--warning)}.sev-low .dot[data-v-953a5b4a]{background:var(--success)}.sev-high[data-v-953a5b4a]{border-color:color-mix(in srgb, var(--danger) 40%, transparent)}.sev-medium[data-v-953a5b4a]{border-color:color-mix(in srgb, var(--warning) 40%, transparent)}.quarter-section[data-v-953a5b4a]{border-top:1px dashed var(--border);margin-top:14px;padding-top:14px}.quarter-header[data-v-953a5b4a]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.quarter-title[data-v-953a5b4a]{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.72rem;font-weight:600}.quarter-nav[data-v-953a5b4a]{align-items:center;gap:8px;display:flex}.quarter-label[data-v-953a5b4a]{text-align:center;min-width:64px;font-size:.82rem;font-weight:600}.quarter-compare-hint[data-v-953a5b4a]{color:var(--text-muted);margin-left:auto;font-size:.7rem}.q-nav-btn[data-v-953a5b4a]{background:var(--bg);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;width:22px;height:22px;font-size:.9rem;line-height:1}.q-nav-btn[data-v-953a5b4a]:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.q-nav-btn[data-v-953a5b4a]:disabled{opacity:.35;cursor:not-allowed}.q-nav-reset[data-v-953a5b4a]{border:1px dashed var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:10px;padding:2px 8px;font-size:.7rem}.q-nav-reset[data-v-953a5b4a]:hover{color:var(--text);border-style:solid}.quarter-cards[data-v-953a5b4a]{flex-wrap:wrap;align-items:flex-start;gap:12px;display:flex}.stat-value[data-v-953a5b4a]{justify-content:center;align-items:baseline;gap:6px;display:flex}.trend[data-v-953a5b4a]{font-size:.72rem;font-weight:600}.trend.good[data-v-953a5b4a]{color:var(--success)}.trend.bad[data-v-953a5b4a]{color:var(--danger)}.trend.neutral[data-v-953a5b4a]{color:var(--text-muted)}.net-up .stat-value[data-v-953a5b4a]{color:var(--danger)}.net-down .stat-value[data-v-953a5b4a]{color:var(--success)}.quarter-badges[data-v-953a5b4a]{flex-wrap:wrap;justify-content:center;gap:4px;margin-top:8px;display:flex}.mini-badge[data-v-953a5b4a]{background:var(--bg);border:1px solid var(--border);color:var(--text-muted);white-space:nowrap;border-radius:10px;padding:2px 7px;font-size:.68rem}.mini-badge.sev-high[data-v-953a5b4a]{border-color:color-mix(in srgb, var(--danger) 40%, transparent);color:var(--danger)}.mini-badge.sev-medium[data-v-953a5b4a]{border-color:color-mix(in srgb, var(--warning) 40%, transparent);color:var(--warning)}.mini-badge.sev-low[data-v-953a5b4a]{border-color:color-mix(in srgb, var(--success) 40%, transparent);color:var(--success)}.chart-grid[data-v-8ea641d2]{flex-wrap:wrap;gap:16px;display:flex}.chart-card[data-v-8ea641d2]{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex:1;min-width:220px;padding:18px 20px}.chart-title[data-v-8ea641d2]{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:0 0 14px;font-size:.78rem;font-weight:600}.bar-chart[data-v-8ea641d2]{flex-direction:column;gap:8px;display:flex}.bar-row[data-v-8ea641d2]{align-items:center;gap:8px;display:flex}.bar-label[data-v-8ea641d2]{white-space:nowrap;text-overflow:ellipsis;width:120px;color:var(--text-muted);flex-shrink:0;font-size:.78rem;overflow:hidden}.bar-track[data-v-8ea641d2]{background:var(--bg);border-radius:4px;flex:1;height:8px;overflow:hidden}.bar-fill[data-v-8ea641d2]{background:var(--accent);border-radius:4px;height:100%;transition:width .4s}.bar-count[data-v-8ea641d2]{color:var(--text-muted);text-align:right;width:24px;font-size:.78rem}.bar-progress[data-v-8ea641d2]{background:#f59e0b}.bar-done[data-v-8ea641d2]{background:#22c55e}.bar-testing[data-v-8ea641d2]{background:#06b6d4}.bar-neu[data-v-8ea641d2]{background:#6366f1}.bar-bestaetigt[data-v-8ea641d2]{background:#3b82f6}.bar-waiting[data-v-8ea641d2]{background:#f97316}.bar-default[data-v-8ea641d2]{background:var(--accent)}.donut-wrap[data-v-8ea641d2]{align-items:center;gap:20px;display:flex}.donut[data-v-8ea641d2]{flex-shrink:0;width:90px;height:90px;transform:rotate(-90deg)}.donut-legend[data-v-8ea641d2]{flex-direction:column;gap:6px;display:flex}.legend-item[data-v-8ea641d2]{align-items:center;gap:6px;font-size:.8rem;display:flex}.legend-dot[data-v-8ea641d2]{border-radius:50%;flex-shrink:0;width:10px;height:10px}.legend-item strong[data-v-8ea641d2]{margin-left:auto;font-weight:600}.severity-bars[data-v-8ea641d2]{justify-content:center;align-items:flex-end;gap:10px;height:80px;padding-top:8px;display:flex}.sev-block[data-v-8ea641d2]{border-radius:6px 6px 0 0;flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;padding:8px 4px;display:flex}.sev-count[data-v-8ea641d2]{font-size:1.2rem;font-weight:700}.sev-label[data-v-8ea641d2]{text-transform:capitalize;font-size:.72rem}.sev-high[data-v-8ea641d2]{background:color-mix(in srgb,var(--danger) 20%,transparent);color:var(--danger);border:1px solid var(--danger)}.sev-medium[data-v-8ea641d2]{background:color-mix(in srgb,var(--warning) 20%,transparent);color:var(--warning);border:1px solid var(--warning)}.sev-low[data-v-8ea641d2]{background:color-mix(in srgb,var(--success) 20%,transparent);color:var(--success);border:1px solid var(--success)}.monthly-chart[data-v-ef831905]{background:var(--surface);border:1px solid var(--border);border-radius:10px;width:100%;padding:18px 20px}.chart-header[data-v-ef831905]{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.chart-title[data-v-ef831905]{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:0;font-size:.78rem;font-weight:600}.chart-legend[data-v-ef831905]{color:var(--text-muted);align-items:center;gap:5px;font-size:.78rem;display:flex}.leg-dot[data-v-ef831905]{border-radius:2px;flex-shrink:0;width:9px;height:9px}.svg-wrap[data-v-ef831905]{position:relative}.chart-svg[data-v-ef831905]{width:100%;height:auto;display:block;overflow:visible}.axis-label[data-v-ef831905]{fill:var(--text-muted);font-family:inherit;font-size:9px}.bar[data-v-ef831905]{cursor:default;transition:opacity .1s}.bar[data-v-ef831905]:hover{opacity:1!important}.chart-tooltip[data-v-ef831905]{background:var(--surface);border:1px solid var(--border);pointer-events:none;white-space:nowrap;z-index:10;border-radius:6px;padding:7px 11px;font-size:.8rem;position:absolute;box-shadow:0 4px 12px #0000004d}.chart-tooltip strong[data-v-ef831905]{margin-bottom:3px;display:block}.empty-hint[data-v-ef831905]{text-align:center;color:var(--text-muted);padding:40px;font-size:.85rem}:root{--bg:#0f1117;--surface:#1a1d27;--surface-hover:#222535;--border:#2a2e3e;--text:#e2e8f0;--text-muted:#64748b;--accent:#5b6cf5;--success:#22c55e;--warning:#f59e0b;--danger:#ef4444;--radius:8px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:Inter,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.5}.btn{border-radius:var(--radius);cursor:pointer;border:1px solid #0000;align-items:center;gap:6px;padding:7px 14px;font-size:.85rem;font-weight:500;transition:all .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:not(:disabled):hover{filter:brightness(1.1)}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.btn-secondary:hover{border-color:var(--accent)}.btn-ghost{color:var(--text-muted);background:0 0;border-color:#0000}.btn-ghost:hover{color:var(--text);background:var(--surface)}.btn-icon{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px;font-size:1rem;line-height:1;transition:color .15s}.btn-icon:hover{color:var(--text)}.app{flex-direction:column;min-height:100vh;display:flex}.app-header{border-bottom:1px solid var(--border);background:var(--surface);z-index:50;justify-content:space-between;align-items:center;height:52px;padding:0 24px;display:flex;position:sticky;top:0}.header-left{align-items:center;gap:10px;display:flex}.logo{color:var(--accent);font-size:1.4rem}.app-title{font-size:1rem;font-weight:600}.header-right{align-items:center;gap:8px;display:flex}.auth-hint{color:var(--text-muted);font-size:.82rem}.user-chip{color:var(--text-muted);border:1px solid var(--border);background:var(--surface);border-radius:20px;align-items:center;gap:7px;padding:3px 10px 3px 4px;font-size:.82rem;display:flex}.user-avatar{object-fit:cover;border-radius:50%;width:22px;height:22px}.btn-sm{padding:4px 12px;font-size:.8rem}.icon-btn{padding:4px 8px;font-size:1rem}.instance-badge{background:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);border-radius:10px;padding:2px 8px;font-size:.72rem}.no-token-banner{background:color-mix(in srgb, var(--warning) 12%, transparent);border-bottom:1px solid color-mix(in srgb, var(--warning) 40%, transparent);color:var(--warning);align-items:center;gap:10px;padding:14px 24px;font-size:.875rem;display:flex}.no-token-banner.error{background:color-mix(in srgb, var(--danger) 12%, transparent);border-color:color-mix(in srgb, var(--danger) 40%, transparent);color:var(--danger)}.spinner-inline{border:2px solid;border-top-color:#0000;border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.6s linear infinite spin;display:inline-block}.link-btn{color:var(--warning);cursor:pointer;font-size:inherit;background:0 0;border:none;font-weight:600;text-decoration:underline}.app-main{flex-direction:column;flex:1;gap:20px;width:100%;max-width:1600px;margin:0 auto;padding:24px;display:flex}.toolbar{flex-wrap:wrap;align-items:flex-end;gap:16px;display:flex}.stats-section,.charts-section{width:100%}.charts-section{flex-direction:column;gap:16px;display:flex}.content-area{align-items:flex-start;gap:24px;width:100%;display:flex}.main-content{flex:1;min-width:0;position:relative}.loading-overlay{color:var(--text-muted);flex-direction:column;align-items:center;gap:16px;padding:60px 20px;font-size:.9rem;display:flex}.loading-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:36px;height:36px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-screen{flex:1;justify-content:center;align-items:center;padding:40px 24px;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:400px;padding:48px 56px;display:flex}.login-logo{color:var(--accent);font-size:3rem;line-height:1}.login-title{color:var(--text);margin:0;font-size:1.5rem;font-weight:700}.login-sub{color:var(--text-muted);margin:0;font-size:.85rem}.login-card small{color:var(--text-muted);font-size:.78rem}.btn-lg{padding:10px 28px;font-size:.95rem}.error-banner{background:color-mix(in srgb, var(--danger) 12%, transparent);border:1px solid color-mix(in srgb, var(--danger) 40%, transparent);color:var(--danger);border-radius:8px;margin-bottom:16px;padding:12px 16px;font-size:.875rem}
