*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{min-height:100vh}.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh}.login-box{background:#fff;border-radius:10px;box-shadow:0 10px 25px #0003;max-width:400px;padding:40px;width:100%}.login-box h1{color:#333;font-size:28px;margin:0 0 10px;text-align:center}.login-box h2{color:#666;font-size:20px;font-weight:400;margin:0 0 30px;text-align:center}.error-message{background-color:#fee;border:1px solid #fcc;border-radius:5px;color:#c33;font-size:14px;padding:12px}.error-message,.form-group{margin-bottom:20px}.form-group label{color:#333;display:block;font-size:14px;font-weight:500;margin-bottom:8px}.form-group input{border:1px solid #ddd;border-radius:5px;box-sizing:border-box;font-size:14px;padding:12px;transition:border-color .3s;width:100%}.form-group input:focus{border-color:#667eea;outline:none}.form-group input:disabled{background-color:#f5f5f5;cursor:not-allowed}button[type=submit]{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:16px;font-weight:500;padding:12px;transition:transform .2s,box-shadow .2s;width:100%}button[type=submit]:hover:not(:disabled){box-shadow:0 5px 15px #667eea66;transform:translateY(-2px)}button[type=submit]:active:not(:disabled){transform:translateY(0)}button[type=submit]:disabled{cursor:not-allowed;opacity:.6}.pie-chart-container{align-items:center;display:flex;flex-direction:column;gap:20px}.pie-segment{transition:stroke-dasharray .5s ease}.pie-legend{display:flex;flex-direction:column;gap:10px;width:100%}.legend-item{align-items:center;display:flex;font-size:.9em;gap:10px}.legend-color{border-radius:4px;flex-shrink:0;height:20px;width:20px}.legend-label{color:#333;font-weight:500}.dashboard-container{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;padding:20px}.container{margin:0 auto;max-width:1200px}.header-bar{align-items:center;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:30px}h1{color:#fff;font-size:2.5em;margin:0;text-shadow:2px 2px 4px #0003}.user-info{align-items:center;display:flex;gap:15px}.username{font-size:1.1em}.logout-btn{border-radius:20px;box-shadow:0 4px 10px #0003;font-size:.95em;transition:all .3s ease}.logout-btn:hover{background:#f8f8f8;box-shadow:0 6px 15px #0000004d}.stats-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:30px}.stats{background:#fff;border-radius:10px;box-shadow:0 10px 30px #0003;padding:20px;text-align:center}.stats h2{color:#667eea;font-size:1.2em;margin-bottom:10px}.stats .count{color:#764ba2;font-size:3em;font-weight:700}.space-stats{align-items:center;gap:20px}.database-details,.space-stats{display:flex;flex-direction:column}.database-details{gap:8px;margin-top:10px;width:100%}.db-item{background:#f5f5f5;border-radius:6px;display:flex;font-size:.9em;justify-content:space-between;padding:8px 12px}.db-name{color:#667eea;font-weight:600}.db-size{color:#764ba2;font-weight:500}.units-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));margin-bottom:20px}.unit-card{background:#fff;border-radius:10px;box-shadow:0 10px 30px #0003;color:inherit;cursor:pointer;display:block;padding:25px;text-decoration:none;transition:transform .3s ease,box-shadow .3s ease}.unit-card:hover{box-shadow:0 15px 40px #0000004d;transform:translateY(-5px)}.unit-card h3{color:#667eea;font-size:1.5em;margin-bottom:10px;word-break:break-word}.unit-card .unit-id{color:#666;font-size:.9em}.loading{font-size:1.5em}.error{background:#f44;border-radius:10px;color:#fff;margin:20px 0;padding:20px;text-align:center}.refresh-btn{border:none;border-radius:25px;box-shadow:0 5px 15px #0003;display:block;font-weight:700;margin:0 auto;padding:15px 30px;transition:all .3s ease}.refresh-btn:hover{box-shadow:0 8px 20px #0000004d;transform:scale(1.05)}.empty-state{grid-column:1/-1}.modal{background-color:#00000080;display:block;height:100%;left:0;overflow:auto;position:fixed;top:0;width:100%;z-index:1000}.modal-content{background-color:#fff;border-radius:10px;box-shadow:0 4px 20px #0000004d;margin:50px auto;max-height:80vh;max-width:800px;overflow-y:auto;padding:30px}.modal-header{align-items:center;border-bottom:2px solid #667eea;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:15px}.modal-header h2{color:#667eea;font-size:1.3em;margin:0}.close{color:#aaa;cursor:pointer;font-size:28px;font-weight:700;transition:color .2s}.close:hover{color:#667eea}.modal-body{color:#2d3748}.data-info{margin-bottom:20px}.data-row{border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:8px 0}.data-row:last-child{border-bottom:none}.data-label{color:#718096;font-weight:500}.data-value{color:#2d3748;font-family:monospace}.candles-title{color:#2d3748;margin-bottom:10px;margin-top:15px}.candle-table{border-collapse:collapse;margin-top:20px;width:100%}.candle-table th{background:#f7fafc;color:#2d3748;font-weight:600;padding:10px;text-align:left}.candle-table td{border-bottom:1px solid #e2e8f0;padding:8px 10px}.candle-table tbody tr:last-child td{border-bottom:none}.plain-data-item{border-bottom:1px solid #e2e8f0;margin-bottom:30px;padding-bottom:20px}.plain-data-item:last-child{border-bottom:none}.plain-data-item h3{color:#667eea;margin-bottom:10px}.deserialized-content{margin-top:15px}.deserialized-content h4{color:#2d3748;margin-bottom:10px}.deserialized-content pre{background:#f7fafc;border-radius:5px;font-family:monospace;font-size:.9em;max-height:400px;overflow-x:auto;padding:15px}.loading-modal{color:#667eea;padding:40px;text-align:center}.error-modal{background:#fed7d7;border-radius:8px;color:#c53030;padding:15px}.no-data{color:#718096;margin-top:10px}.unit-details-container{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;padding:20px}.header-actions{gap:10px;justify-content:space-between;margin-bottom:20px}.header-actions,.right-actions{align-items:center;display:flex;flex-wrap:wrap}.right-actions{gap:15px}.username{color:#fff;font-size:1em;font-weight:500;text-shadow:1px 1px 2px #0003}.back-btn{background:#fff;border:none;border-radius:8px;color:#667eea;cursor:pointer;display:inline-block;font-weight:600;padding:10px 20px;text-decoration:none;transition:transform .2s}.back-btn:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.refresh-btn{background:#fff;border:2px solid #667eea;border-radius:8px;color:#667eea;cursor:pointer;font-size:1em;font-weight:600;padding:10px 20px;transition:all .2s}.refresh-btn:hover:not(:disabled){background:#667eea;box-shadow:0 4px 12px #00000026;color:#fff;transform:translateY(-2px)}.logout-btn{background:#fff;border:none;border-radius:8px;color:#667eea;cursor:pointer;font-size:1em;font-weight:600;padding:10px 20px;transition:all .2s}.logout-btn:hover{background:#f44336;box-shadow:0 4px 12px #f443364d;color:#fff;transform:translateY(-2px)}.refresh-btn:disabled{cursor:not-allowed;opacity:.6}.unit-info{background:#fff;border-radius:10px;box-shadow:0 4px 6px #0000001a;margin-bottom:20px;padding:20px}.unit-info h2{color:#667eea;margin-bottom:10px}.stats{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:15px}.stat-card{background:#f7fafc;border-left:4px solid #667eea;border-radius:8px;padding:15px}.stat-label{color:#718096;font-size:.9em;margin-bottom:5px}.stat-value{color:#2d3748;font-size:1.5em;font-weight:600}.table-container{margin-bottom:30px}.section-title{color:#fff;margin:30px 0 15px}table{background:#fff;border-collapse:collapse;border-radius:10px;box-shadow:0 4px 6px #0000001a;overflow:hidden;width:100%}thead{background:#667eea;color:#fff}th{font-weight:600;padding:15px;text-align:left}td{border-bottom:1px solid #e2e8f0;padding:12px 15px}tbody tr{cursor:pointer;transition:background .2s}tbody tr:hover{background:#f7fafc}tbody tr:last-child td{border-bottom:none}.empty-state{background:#fff;border-radius:10px;color:#666;padding:50px;text-align:center}.empty-state h2{color:#667eea;margin-bottom:10px}.loading{color:#fff;font-size:1.2em;padding:50px;text-align:center}.error{background:#fed7d7;border-radius:8px;color:#c53030;margin-bottom:20px;padding:15px}
/*# sourceMappingURL=main.fac18a9c.css.map*/