html,body{width:100%;height:100%;box-sizing:border-box;font-family:Open Sans,sans-serif;background-color:#f7f7f8;margin:0;padding:0}*,*:before,*:after{box-sizing:border-box}.hidden{visibility:hidden}.text-left{text-align:left}.text-center{text-align:center}.bold{font-weight:700}.error-message{color:#dc2626;padding:8px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;max-width:600px;margin:10px auto}.status-badge{display:inline-block;padding:6px 16px;border-radius:20px;font-weight:600;font-size:14px}.status-badge--running{background:#dcfce7;color:#166534;border:1px solid #86efac}.loading-status{max-width:450px;margin:20px auto;text-align:center;font-weight:600}.progress-bar{position:relative;width:100%;height:28px;background:#e5e7eb;border-radius:14px;overflow:hidden;margin-top:12px}.progress-bar__fill{height:100%;background:linear-gradient(90deg,#3b82f6,#2563eb);border-radius:14px;transition:width .3s ease}.progress-bar__fill--indeterminate{width:40%!important;animation:indeterminate 1.5s ease-in-out infinite}.progress-bar__label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;color:#374151}@keyframes indeterminate{0%{transform:translate(-100%)}to{transform:translate(350%)}}.tooltip{position:relative;display:inline-block;margin-left:6px;cursor:help;color:#6b7280;font-size:14px;font-weight:400}.tooltip--light{color:#ffffffb3}.tooltip:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:#1f2937;color:#fff;padding:8px 12px;border-radius:6px;font-size:12px;font-weight:400;line-height:1.4;white-space:normal;width:260px;opacity:0;pointer-events:none;transition:opacity .2s;z-index:100;box-shadow:0 4px 12px #0003}.tooltip:hover:after{opacity:1}.section-container{max-width:1200px;width:95%;margin:30px auto}.section-title{font-family:Roboto,sans-serif;font-size:22px;font-weight:600;margin-bottom:16px;color:#1f2937}.section-count{font-size:14px;font-weight:400;color:#6b7280;margin-left:8px}.load-more-container{text-align:center;margin:24px 0 8px}.load-more-button{padding:10px 28px;background:#f3f4f6;border:1px solid #d1d5db;border-radius:8px;font-size:14px;font-weight:500;color:#374151;cursor:pointer;transition:all .2s}.load-more-button:hover{background:#e5e7eb;border-color:#9ca3af}.grid-layout{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.page-id{font-weight:700;border-bottom:1px solid #93c5fd;padding:8px;background:#eff6ff;color:#1e40af;font-size:13px}.page-tuples-container{margin:0 auto;display:flex;flex-wrap:wrap}.page-content{border:1px solid #bfdbfe;border-radius:8px;overflow:hidden;background:#fff;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;transition:box-shadow .3s,border-color .3s}.page-content--highlight{border-color:#f59e0b;box-shadow:0 0 0 3px #fbbf2466,0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.page-cell{width:100%;text-align:center;font-size:13px;border-bottom:1px solid #e5e7eb}.page-header{display:flex;border-bottom:1px solid #d1d5db;padding:4px;background:#f9fafb}.page-header .page-cell{border:none}.page-tuple{display:flex;text-align:center;font-size:12px;border-bottom:1px solid #f3f4f6;line-height:25px;width:100%;transition:background-color .2s}.page-tuple:last-child{border:none}.page-tuple div{width:50%;padding:2px}.page-tuple--highlight{background-color:#fffbeb!important;font-weight:600;border-left:3px solid #f59e0b}.bucket-id{font-weight:700;border-bottom:1px solid #c084fc;padding:8px;background:#faf5ff;color:#6b21a8;font-size:13px}.bucket-container{max-width:1200px;width:95%;margin:30px auto;overflow:auto;display:flex;flex-wrap:wrap;background-color:#fff;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.bucket-content{border:1px solid #d8b4fe;border-radius:8px;overflow:hidden;background:#fff;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;transition:box-shadow .3s,border-color .3s}.bucket-content--highlight{border-color:#f59e0b;box-shadow:0 0 0 3px #fbbf2466,0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.bucket-cell{width:100%;text-align:center;font-size:13px}.bucket-header{display:flex;border-bottom:1px solid #d1d5db;padding:4px;background:#f9fafb}.bucket-header .page-cell{border:none}.hash-tuples-container{margin:0 auto;display:flex;flex-wrap:wrap}.hash-tuple{display:flex;text-align:center;font-size:12px;border-bottom:1px solid #f3f4f6;line-height:25px;width:100%;transition:background-color .2s}.hash-tuple:last-child{border:none}.hash-tuple div{width:50%;padding:2px}.hash-tuple--highlight{background-color:#fffbeb!important;font-weight:600;border-left:3px solid #f59e0b}.overflow-tuple{background:#fef9c3;color:#854d0e}.underline-overflow{border-bottom:2px solid #eab308;padding-bottom:2px}.hash-tuples-overflow-container{border-top:2px dashed #eab308}.table-container{max-width:100%;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;background-color:#fff;border-radius:8px;overflow:hidden}.table-header{display:flex;border-bottom:2px solid #d1d5db;background:#f9fafb}.table-cell{width:100%;text-align:center;font-size:14px;border-bottom:1px solid #f3f4f6;padding:5px}.table-content{max-height:500px;overflow:auto}.table-row{width:100%;display:flex;justify-content:space-evenly}.search-object-container{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;background-color:#1e293b;color:#94a3b8;padding:16px;margin:12px 0;border-radius:8px}.search-object-container--not-found{background-color:#7f1d1d;color:#fca5a5}.search-object-details{margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:6px;font-size:13px}.search-path{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:13px}.search-path__step{background:#334155;padding:4px 10px;border-radius:4px;color:#e2e8f0;font-family:monospace}.search-path__step--bucket{background:#581c87;color:#e9d5ff}.search-path__step--page{background:#1e3a5f;color:#bfdbfe}.search-path__arrow{color:#64748b;font-size:16px}.simulation-status{text-align:center;margin:20px auto;max-width:1200px;width:95%;display:flex;gap:20px;justify-content:center}@media(max-width:768px){.simulation-status{flex-direction:column;align-items:stretch}}.search-form{padding:20px;background:#fff;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;border-radius:8px;flex:1.25}.simulation-info{box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;background:linear-gradient(135deg,#1e293b,#334155);padding:20px;color:#e2e8f0;border-radius:8px;flex:.5;display:flex;flex-direction:column;justify-content:center;text-align:left;font-size:14px;line-height:1.8}.simulation-info__title{margin:0 0 10px;font-size:16px;color:#fff}.loading-icon{max-width:30px;vertical-align:middle}.App{padding-bottom:40px}.App .header{font-family:Roboto,sans-serif;font-weight:700;font-size:36px;text-align:center;color:#1f2937;margin:24px 0}@media(max-width:768px){.App .header{font-size:26px}}.App .main-form{max-width:480px;margin:0 auto;display:flex;flex-direction:column;align-items:center;padding:40px;background:#fff;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;border-radius:12px}@media(max-width:520px){.App .main-form{margin:0 16px;padding:24px 20px}}.App .main-form_input-group{width:100%;display:flex;flex-direction:column;justify-content:center;margin:10px 0}.App .main-form_input-group label{flex:1;margin-bottom:4px}.App .main-form_input-group input,.App .main-form_input-group textarea{flex:2;min-height:36px;border:1px solid #d1d5db;border-radius:6px;padding:4px 10px;font-size:15px}.App .main-form_input-group input:focus,.App .main-form_input-group textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.App .main-form .toggle-radio{width:100%}.App .main-form .toggle-radio label{margin-bottom:12px}.submit-button{padding:10px 20px;text-transform:uppercase;min-width:200px;background-color:#2563eb;outline:none;border:none;color:#fff;font-family:Open Sans,sans-serif;font-weight:600;font-size:15px;letter-spacing:.5px;border-radius:6px;transition:all .2s;cursor:pointer;margin-top:8px}.submit-button:hover{background-color:#1d4ed8;box-shadow:0 2px 8px #2563eb4d}.submit-button:active{transform:translateY(1px)}
