.App{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;text-align:center;background-color:#fff;color:#333;height:auto;width:100%;display:block;margin:0;padding:0;box-sizing:border-box;overflow-x:hidden}.modal{display:flex;justify-content:center;align-items:center;position:fixed;z-index:999;inset:0;background-color:#0006;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:20px}.modal-content{background:#fff;border-radius:16px;padding:0;width:100%;max-width:440px;box-shadow:0 8px 32px #0000001f;text-align:left;animation:fadeIn .25s ease;position:relative;overflow:hidden}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.modal-content h2{font-size:20px;font-weight:600;color:#000;margin:0;padding:28px 32px 24px;text-align:center;border-bottom:1px solid #f0f0f0}.upload-form{padding:8px 32px 32px}.upload-item{margin-bottom:20px;padding:0}.upload-item.optional{opacity:.85}.upload-label{display:flex;align-items:center;gap:12px;margin-bottom:12px}.icon-circle{width:36px;height:36px;background:#f8f9fa;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#666;border:1px solid #e9ecef;flex-shrink:0}.upload-label span{font-size:15px;font-weight:500;color:#000}.optional-text{color:#000;font-weight:400;font-size:14px}.upload-box{background:#f8f9fa;border:1.5px solid #e9ecef;border-radius:12px;padding:16px;transition:all .2s ease;position:relative}.upload-box:hover{background:#f1f3f4;border-color:#d0d7de}.upload-input{position:absolute;width:100%;height:100%;top:0;left:0;opacity:0;cursor:pointer;z-index:2}.upload-button{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;background:#fff;border:1.5px solid #e9ecef;border-radius:8px;font-size:14px;font-weight:500;color:#495057;cursor:pointer;transition:all .2s ease;text-decoration:none;z-index:1;position:relative;min-width:140px;justify-content:center}.upload-button:hover{background:#f8f9fa;border-color:#ced4da;transform:translateY(-1px)}.upload-button svg{stroke-width:2;flex-shrink:0}.upload-button.file-selected{background:#e8f5e9!important;border-color:#c8e6c9!important;color:#2e7d32!important;font-weight:600!important}.upload-button.file-selected span:before{content:"✓ ";font-weight:700;margin-right:4px}.upload-success-mini{display:flex;align-items:center;gap:12px;background:#e8f5e9;border:1.5px solid #c8e6c9;border-radius:12px;padding:16px;margin-bottom:20px}.success-check{width:28px;height:28px;background:#4caf50;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;flex-shrink:0}.upload-success-mini span{font-size:14px;font-weight:500;color:#000}.provar-button{width:100%;padding:16px;background:#1a1a1a;color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:24px;display:flex;align-items:center;justify-content:center;gap:10px}.provar-button:hover:not(:disabled){background:#000;transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.provar-button:disabled{opacity:.5;cursor:not-allowed;background:#666}.button-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.generated-image{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1000;display:flex;flex-direction:column;align-items:center;padding:20px;background:#fff;width:500px;max-height:90vh;border-radius:16px;box-shadow:0 20px 60px #00000040;overflow:hidden;text-align:center;box-sizing:border-box}.generated-image h3{margin-bottom:16px;color:#000;font-size:20px;font-weight:600;flex-shrink:0}.image-container-large{width:100%;height:calc(90vh - 140px);display:flex;justify-content:center;align-items:center;overflow:hidden;background:#f8f9fa}.image-container-large img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.nova-prova-button{width:auto;min-width:180px;padding:14px 28px;margin-top:0;background:#1a1a1a}.nova-prova-button:hover{background:#000}.loading-screen{display:flex;flex-direction:column;justify-content:center;align-items:center;position:fixed;inset:0;background-color:#fffffff2;z-index:999}.spinner{width:50px;height:50px;border:3px solid #f0f0f0;border-top-color:#1a1a1a;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.loading-screen p{color:#000;font-size:15px;font-weight:500}@media (max-width: 520px){.modal{padding:10px}.modal-content{max-width:100%;border-radius:12px}.modal-content h2{padding:20px 20px 16px;font-size:18px}.upload-form{padding:8px 20px 20px}.upload-item{margin-bottom:16px}.upload-label{gap:10px}.icon-circle{width:32px;height:32px;border-radius:8px}.upload-box{padding:12px}.upload-button{padding:8px 14px;font-size:13px;min-width:120px}.provar-button{padding:14px;font-size:14px;margin-top:20px}.generated-image{width:95vw;padding:16px;max-height:85vh}.image-container-large{min-height:300px;max-height:calc(85vh - 120px);padding:8px}.image-container-large img{max-width:95%}.nova-prova-button{min-width:160px;padding:12px 24px}}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow-x:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;transition:background-color .3s ease}:root{--bg-primary: #f8fafc;--bg-card: #ffffff;--text-primary: #1e293b;--text-secondary: #64748b;--text-muted: #94a3b8;--border-color: #e2e8f0;--shadow-color: rgba(0, 0, 0, .04);--grid-color: #e2e8f0;--hover-overlay: rgba(0, 0, 0, .02)}.dark{--bg-primary: #0f172a;--bg-card: #1e293b;--text-primary: #f1f5f9;--text-secondary: #cbd5e1;--text-muted: #94a3b8;--border-color: #334155;--shadow-color: rgba(0, 0, 0, .3);--grid-color: #334155;--hover-overlay: rgba(255, 255, 255, .05)}.dashboard{width:100%;min-height:100vh;background:var(--bg-primary);padding:20px;display:flex;flex-direction:column;gap:20px;transition:background-color .3s ease}.dashboard-header{background:var(--bg-card);border-radius:16px;padding:24px;box-shadow:0 2px 10px var(--shadow-color);width:100%;border:1px solid var(--border-color);transition:all .3s ease}.header-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:20px;margin-bottom:24px}.title{display:flex;align-items:center;gap:16px}.title-icon{background:linear-gradient(135deg,#3b82f6,#1d4ed8);padding:12px;border-radius:12px;width:48px;height:48px;transition:all .3s ease}.dark .title-icon{background:linear-gradient(135deg,#60a5fa,#3b82f6)}.title h1{font-size:24px;font-weight:700;color:var(--text-primary);line-height:1.2;transition:color .3s ease}.title p{font-size:14px;color:var(--text-secondary);margin-top:4px;transition:color .3s ease}.header-controls{display:flex;align-items:center;gap:16px}.period-buttons{display:flex;gap:8px;background:var(--bg-primary);padding:6px;border-radius:12px;border:1px solid var(--border-color);flex-wrap:wrap;transition:all .3s ease}.period-btn{padding:8px 16px;border:none;background:transparent;border-radius:8px;font-size:14px;font-weight:500;color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:all .2s ease}.period-btn:hover{background:var(--hover-overlay)}.period-btn.active{background:var(--bg-card);color:#3b82f6;box-shadow:0 2px 8px #3b82f633;font-weight:600;border:1px solid var(--border-color)}.theme-toggle{width:40px;height:40px;border-radius:10px;background:var(--bg-primary);border:1px solid var(--border-color);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease}.theme-toggle:hover{background:var(--hover-overlay);transform:rotate(15deg)}.header-bottom{border-top:1px solid var(--border-color);padding-top:20px;transition:border-color .3s ease}.date-filters{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.date-group{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--bg-primary);border-radius:10px;border:1px solid var(--border-color);flex:1;min-width:140px;transition:all .3s ease}.date-group:focus-within{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.date-group svg{color:var(--text-secondary)}.date-group input{background:transparent;border:none;font-size:14px;color:var(--text-primary);width:100%;min-width:120px;transition:color .3s ease}.date-group input:focus{outline:none}.date-filters span{color:var(--text-secondary);font-weight:500;white-space:nowrap;transition:color .3s ease}.refresh-button{display:flex;align-items:center;gap:8px;padding:10px 20px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border:none;border-radius:10px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .3s ease;position:relative;overflow:hidden}.refresh-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.refresh-button:hover:before{left:100%}.refresh-button:hover{transform:translateY(-1px);box-shadow:0 4px 20px #3b82f64d}.refresh-button:disabled{opacity:.7;cursor:not-allowed;transform:none!important}.refresh-button:disabled:before{display:none}.filter-label{display:flex;align-items:center;gap:6px;font-size:14px;color:var(--text-secondary);transition:color .3s ease}.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;width:100%}.stat-box{background:var(--bg-card);border-radius:16px;padding:24px;display:flex;align-items:center;gap:20px;box-shadow:0 2px 10px var(--shadow-color);border:1px solid var(--border-color);position:relative;overflow:hidden;transition:all .3s ease;cursor:pointer}.stat-box:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--color),var(--color-light));transition:height .3s ease}.stat-box:hover{transform:translateY(-5px);box-shadow:0 12px 40px var(--shadow-color)}.stat-box:hover:before{height:6px}.stat-box.purple{--color: #8884d8;--color-light: #a5b4fc}.stat-box.green{--color: #82ca9d;--color-light: #86efac}.stat-box.blue{--color: #3b82f6;--color-light: #60a5fa}.stat-icon{width:52px;height:52px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:linear-gradient(135deg,var(--color) 0%,var(--color-light) 100%);color:#fff;transition:all .3s ease;position:relative;z-index:1}.stat-box:hover .stat-icon{transform:scale(1.1) rotate(5deg)}.stat-hover-effect{position:absolute;inset:0;background:linear-gradient(135deg,transparent 30%,rgba(255,255,255,.05) 100%);opacity:0;transition:opacity .3s ease}.stat-box:hover .stat-hover-effect{opacity:1}.stat-info{flex:1;min-width:0;position:relative;z-index:1}.stat-info h3{font-size:14px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;transition:color .3s ease}.stat-value{font-size:32px;font-weight:800;color:var(--text-primary);line-height:1;margin-bottom:4px;transition:color .3s ease}.stat-sub{font-size:13px;color:var(--text-secondary);transition:color .3s ease}.chart-container{background:var(--bg-card);border-radius:16px;padding:24px;box-shadow:0 2px 10px var(--shadow-color);width:100%;height:500px;display:flex;flex-direction:column;border:1px solid var(--border-color);transition:all .3s ease}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.chart-header h2{font-size:20px;font-weight:700;color:var(--text-primary);transition:color .3s ease}.legends{display:flex;gap:20px;flex-wrap:wrap}.legend{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text-secondary);transition:color .3s ease}.legend-dot{width:10px;height:10px;border-radius:50%}.legend-dot.purple{background:#8884d8}.legend-dot.green{background:#82ca9d}.chart-wrapper{flex:1;width:100%;height:calc(100% - 60px)}.no-data{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);font-size:16px;transition:color .3s ease}.dashboard-footer{text-align:center;padding:20px;color:var(--text-secondary);font-size:14px;border-top:1px solid var(--border-color);margin-top:auto;transition:all .3s ease}.footer-sub{font-size:12px;color:var(--text-muted);margin-top:4px;transition:color .3s ease}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinning{animation:spin 1s linear infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.stat-box:hover .stat-icon{animation:float 1s ease-in-out infinite}@media (max-width: 480px){.dashboard{padding:12px;gap:16px}.dashboard-header{padding:20px}.header-top{flex-direction:column;align-items:stretch;gap:16px}.header-controls{width:100%;justify-content:space-between}.period-buttons{width:100%;justify-content:center}.period-btn{flex:1;text-align:center;padding:10px 8px;font-size:13px}.date-filters{flex-direction:column;align-items:stretch}.date-group{width:100%}.refresh-button{width:100%;justify-content:center}.stats-row{grid-template-columns:1fr}.chart-container{padding:16px;height:400px}.chart-header{flex-direction:column;align-items:flex-start;gap:12px}.legends{flex-direction:column;gap:8px}}@media (min-width: 481px) and (max-width: 768px){.dashboard{padding:16px}.stats-row{grid-template-columns:repeat(2,1fr)}.stat-box:nth-child(3){grid-column:1 / -1}.chart-container{height:450px}}@media (min-width: 769px) and (max-width: 1024px){.dashboard{padding:20px}.stats-row{grid-template-columns:repeat(3,1fr)}.chart-container{height:500px}}@media (min-width: 1025px){.dashboard{padding:24px;max-width:100%}.stats-row{grid-template-columns:repeat(3,1fr)}.chart-container{height:550px}}@media (min-width: 1600px){.dashboard{max-width:1600px;margin:0 auto}}.date-group input[type=date]{font-size:16px}.date-group input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6;filter:var(--dark-mode-filter)}.dark .date-group input[type=date]::-webkit-calendar-picker-indicator{filter:invert(1)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}
