:root{--bg: #0f172a;--panel: #111827;--text: #e5e7eb;--muted: #9ca3af;--accent: #22d3ee;--control-h: 36px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--text-xs: 10px;--text-sm: 12px;--text-base: 14px;--text-lg: 16px;--text-xl: 18px;--text-2xl: 22px;--container-padding: 24px}@media (max-width: 480px){:root{--space-3: 8px;--space-4: 12px;--space-5: 16px;--space-6: 20px;--container-padding: 12px;--text-base: 13px;--text-lg: 14px;--text-xl: 16px;--text-2xl: 18px}}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body,#root{min-height:100%}body{margin:0;min-height:100vh;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,Arial,"Apple Color Emoji","Segoe UI Emoji";background:linear-gradient(180deg,#0b1220 0%,var(--bg) 100%);color:var(--text);-webkit-overflow-scrolling:touch}.container{max-width:1800px;margin:0 auto;padding:var(--container-padding)}@media (max-width: 480px){.container{padding:var(--space-3)}}.header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4);gap:var(--space-3)}.title{font-size:var(--text-2xl);font-weight:700}@media (max-width: 480px){.header{flex-wrap:wrap;gap:var(--space-2)}.title{font-size:var(--text-lg);flex:1 1 100%;text-align:center}}.filters{display:grid;grid-template-columns:1fr auto auto;align-items:end;gap:var(--space-3);margin:var(--space-3) 0 var(--space-5)}@media (max-width: 768px){.filters{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-3)}.filters .field{width:100%}.filters .field:nth-child(2),.filters .field:nth-child(3){justify-self:stretch}}.filters input[type=date],.filters select,.filters .btn{width:100%}.filters .range-inline input[type=date]{width:auto;min-width:150px;flex:0 0 auto}.filters input,.filters select,.filters button{padding:6px 8px;font-size:14px;height:var(--control-h)}.filters .segmented{gap:4px}.filters .segmented button{padding:6px 10px;font-size:12px;height:var(--control-h);white-space:nowrap}.filters .range-inline{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}@media (max-width: 480px){.filters .range-inline{flex-direction:column;align-items:stretch;gap:var(--space-2)}.filters .range-inline .segmented{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-1);width:100%}.filters .range-inline .segmented button{width:100%}.filters .range-inline input[type=date]{width:100%;min-width:100%}}.panel{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:var(--space-4);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}@media (max-width: 480px){.panel{padding:var(--space-3);border-radius:8px}}.field{display:flex;flex-direction:column;gap:6px}.label{color:var(--muted);font-size:12px}input,select,button{background:#ffffff0f;color:var(--text);border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:8px 10px;touch-action:manipulation;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none}input[type=text],input[type=search],input[type=date],textarea{user-select:text;-webkit-user-select:text}@media (max-width: 480px){button,input[type=button],input[type=submit]{min-height:44px;padding:var(--space-2) var(--space-3)}input[type=checkbox]{min-width:20px;min-height:20px}}.segmented{display:inline-flex;gap:6px}.segmented button[aria-pressed=true]{background:var(--accent);color:#0c0f1a;border-color:transparent}.legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:6px;color:var(--muted);font-size:12px}.legend .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}@media (max-width: 768px){.panel>div[style*="display: flex"]{flex-direction:column!important;align-items:stretch!important}.legend{flex-direction:column;gap:var(--space-2) var(--space-3)}label[style*="display: flex"]{font-size:var(--text-xs)!important}}.grid{display:grid;grid-template-columns:1fr;gap:16px}.stack{display:grid;gap:16px}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3)}.kpi{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:var(--space-3) var(--space-3)}.kpi.revenue{background:#10b98114;border-color:#10b9812e}.kpi.expense{background:#ef444412;border-color:#ef44442e}.kpi .value{font-size:20px;font-weight:700}.kpi .value.negative{color:#f87171}.kpi .label{color:var(--muted);font-size:var(--text-sm)}@media (max-width: 768px) and (min-width: 481px){.kpis{grid-template-columns:repeat(3,1fr)}}@media (max-width: 480px){.kpis{grid-template-columns:repeat(2,1fr);gap:var(--space-2)}.kpi{padding:var(--space-2) var(--space-3)}.kpi .value{font-size:var(--text-lg)}.kpi .label{font-size:var(--text-xs)}}.filters .field:nth-child(2),.filters .field:nth-child(3){justify-self:end}.filters .field:nth-child(2)>div{width:100%}.filters .field:nth-child(2) .btn{width:100%!important}@media (min-width: 901px){.filters .field-date .range-inline{flex-wrap:nowrap}.filters .field:nth-child(2)>div{width:320px!important}.filters .field:nth-child(2) .btn{width:100%!important}}.data-table-panel{padding:0;overflow:hidden;display:flex;flex-direction:column}.table-header{display:flex;justify-content:space-between;align-items:flex-end;padding:var(--space-4);border-bottom:1px solid rgba(255,255,255,.08);gap:var(--space-4);flex-wrap:wrap}.table-title{font-size:var(--text-lg);font-weight:600}.table-subtitle{color:var(--muted);font-size:var(--text-sm)}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table{width:100%;border-collapse:collapse;min-width:640px}.data-table th,.data-table td{padding:10px 16px;border-bottom:1px solid rgba(255,255,255,.08);font-size:13px}@media (max-width: 768px){.table-header{padding:var(--space-3);flex-direction:column;align-items:flex-start}.table-wrapper{border-radius:0}.data-table{font-size:var(--text-sm)}.data-table th:first-child,.data-table td:first-child{position:sticky;left:0;background:var(--panel);z-index:10;box-shadow:2px 0 4px #0000001a}.data-table th:first-child{background:#ffffff05}.data-table th,.data-table td{padding:var(--space-2) var(--space-3);font-size:var(--text-xs)}}.summary-row{background:#ffffff0d}.summary-row td{font-weight:600;border-bottom:1px solid rgba(255,255,255,.12)}.data-table th{text-align:left;background:#ffffff05;color:var(--muted);font-weight:600;letter-spacing:.04em;text-transform:uppercase}.data-table th.numeric,.data-table td.numeric{text-align:right}.sort-button{background:none;border:none;color:inherit;font:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:4px;padding:0}.sort-button:hover,.sort-button.active{color:var(--text)}.sort-indicator{font-size:11px;color:var(--muted)}.table-footer{padding:12px 16px;background:#ffffff05;display:flex;justify-content:flex-end}.table-footer button{padding:6px 12px;font-size:12px}.empty-table{padding:24px;text-align:center;color:var(--muted);font-size:13px}.auth-loading,.auth-error,.auth-unauthorized,.auth-forbidden{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.auth-card{background:#111827cc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(75,85,99,.3);border-radius:16px;padding:40px;max-width:400px;width:100%;text-align:center;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.auth-spinner{width:40px;height:40px;border:3px solid rgba(75,85,99,.3);border-top:3px solid var(--accent);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 20px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.auth-message h2{font-size:24px;font-weight:600;margin-bottom:12px;color:var(--text)}.auth-message p{color:var(--muted);margin-bottom:16px}.auth-redirect-notice{color:var(--accent)!important;font-size:14px;font-style:italic;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.auth-button{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border:none;border-radius:8px;padding:12px 24px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;margin:4px}.auth-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #3b82f666}.auth-button.secondary{background:#4b556380;border:1px solid rgba(75,85,99,.3)}.auth-button.secondary:hover{background:#4b5563b3;box-shadow:0 4px 12px #4b55634d}.auth-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.user-menu{position:relative}.user-menu-trigger{display:flex;align-items:center;gap:8px;background:#11182799;border:1px solid rgba(75,85,99,.3);border-radius:8px;padding:8px 12px;color:var(--text);cursor:pointer;transition:all .2s ease;font-size:14px}.user-menu-trigger:hover{background:#111827cc;border-color:#4b556380}.user-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#1d4ed8);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;color:#fff}.user-name{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 480px){.user-menu-trigger{padding:var(--space-2);font-size:var(--text-sm)}.user-name{display:none}.user-avatar{width:36px;height:36px}}.user-menu-arrow{transition:transform .2s ease}.user-menu-arrow.open{transform:rotate(180deg)}.user-menu-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:999}.user-menu-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:#111827f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(75,85,99,.3);border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;min-width:220px;z-index:1000;overflow:hidden}.user-menu-header{padding:16px;border-bottom:1px solid rgba(75,85,99,.2)}.user-info{text-align:left}.user-name-full{font-weight:500;color:var(--text);margin-bottom:2px}.user-email{font-size:12px;color:var(--muted)}.user-menu-divider{height:1px;background:#4b556333}.user-menu-items{padding:8px 0}.user-menu-item{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;background:none;border:none;color:var(--muted);font-size:14px;cursor:pointer;transition:all .2s ease;text-decoration:none}.user-menu-item:hover{background:#4b55634d;color:var(--text)}.user-menu-item.danger{color:#f87171}.user-menu-item.danger:hover{background:#ef44441a;color:#fca5a5}.spinner{width:14px;height:14px;border:2px solid #334155;border-top-color:#a5b4fc;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.analysis-result{margin-top:12px;background:#0f172a;border-radius:8px;padding:16px;color:#e2e8f0;font-size:14px;line-height:20px;white-space:pre-wrap;max-height:440px;overflow-y:auto}@media (max-width: 480px){.analysis-result{font-size:13px;line-height:18px;padding:12px;max-height:300px}.analysis-result+button,button[disabled]{font-size:var(--text-sm);padding:var(--space-2) var(--space-3)}}.scrollable-x{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.scrollable-y{overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}@media (max-width: 480px){.scrollable-x::-webkit-scrollbar,.scrollable-y::-webkit-scrollbar{height:4px;width:4px}.scrollable-x::-webkit-scrollbar-thumb,.scrollable-y::-webkit-scrollbar-thumb{background:#94a3b84d;border-radius:2px}}.export-dropdown{position:relative;display:inline-block}.export-button{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,#22d3ee26,#3b82f626);border:1px solid rgba(34,211,238,.3);color:var(--accent);padding:8px 14px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.export-button:hover:not(:disabled){background:linear-gradient(135deg,#22d3ee40,#3b82f640);border-color:#22d3ee80;transform:translateY(-1px);box-shadow:0 4px 12px #22d3ee33}.export-button:disabled{opacity:.5;cursor:not-allowed}.export-icon{font-size:14px}.export-caret{font-size:10px;opacity:.7;transition:transform .2s ease}.export-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:180px;background:#111827fa;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(75,85,99,.4);border-radius:10px;box-shadow:0 10px 25px -5px #0000004d,0 8px 10px -6px #0003;z-index:1000;overflow:hidden;animation:exportMenuIn .15s ease-out}@keyframes exportMenuIn{0%{opacity:0;transform:translateY(-8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.export-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:11px 14px;background:none;border:none;border-radius:0;color:var(--text);font-size:13px;cursor:pointer;transition:all .15s ease;text-align:left}.export-menu-item:hover:not(:disabled){background:#22d3ee1a;color:var(--accent)}.export-menu-item:disabled{opacity:.5;cursor:not-allowed}.export-menu-item:first-child{border-radius:10px 10px 0 0}.export-menu-icon{font-size:14px;width:20px;text-align:center;flex-shrink:0}.export-menu-label{flex:1}.export-menu-info{padding:8px 14px;font-size:11px;color:var(--muted);background:#ffffff05;border-top:1px solid rgba(75,85,99,.2)}.spinner.small{width:12px;height:12px;border-width:2px;flex-shrink:0}.export-summary-button{background:linear-gradient(135deg,#fbbf2426,#f59e0b26);border:1px solid rgba(251,191,36,.3);color:#fbbf24}.export-summary-button:hover:not(:disabled){background:linear-gradient(135deg,#fbbf2440,#f59e0b40);border-color:#fbbf2480;box-shadow:0 4px 12px #fbbf2433}@media (max-width: 480px){.export-button{padding:10px 16px;min-height:44px;font-size:14px}.export-menu{min-width:200px}.export-menu-item{padding:14px 16px;min-height:48px;font-size:14px}}
