| * { |
| box-sizing: border-box; |
| margin: 0; |
| padding: 0; |
| font-family: system-ui, sans-serif; |
| } |
| |
| body { |
| display: flex; |
| flex-direction: column; |
| align-items: center; |
| gap: 1.5rem; |
| padding: 1rem; |
| max-width: 960px; |
| margin-inline: auto; |
| } |
| |
| header { |
| text-align: center; |
| } |
| |
| #upload-section { |
| display: flex; |
| flex-wrap: wrap; |
| gap: 2rem; |
| justify-content: center; |
| width: 100%; |
| } |
| |
| .upload-wrapper { |
| border: 2px dashed #aaa; |
| border-radius: 0.75rem; |
| padding: 1rem; |
| flex: 1 1 280px; |
| max-width: 420px; |
| text-align: center; |
| } |
|
|
| .file-block { |
| display: flex; |
| flex-direction: column; |
| align-items: center; |
| } |
| |
| |
| input[type="file"] { |
| margin-block: 0.75rem; |
| } |
| |
| #action-container { |
| margin-top: 1rem; |
| } |
| |
| button.generate-btn { |
| padding: 0.5rem 1.25rem; |
| font-size: 1.1rem; |
| background: #1e88e5; |
| color: #fff; |
| border: none; |
| border-radius: 0.5rem; |
| cursor: pointer; |
| } |
| button.generate-btn:disabled { |
| opacity: 0.6; |
| cursor: not-allowed; |
| } |
| |
| .loader { |
| border: 4px solid #f3f3f3; |
| border-top: 4px solid #1e88e5; |
| border-radius: 50%; |
| width: 42px; |
| height: 42px; |
| animation: spin 1s linear infinite; |
| margin-inline: auto; |
| margin-top: 1rem; |
| } |
| @keyframes spin { |
| 0% { transform: rotate(0deg); } |
| 100% { transform: rotate(360deg); } |
| } |
| |
| #results { |
| position: relative; |
| width: 100%; |
| margin-top: 2rem; |
| display: flex; |
| gap: 2rem; |
| justify-content: flex-start; |
| overflow-x: auto; |
| } |
|
|
| |
| #result-layout{ |
| display:flex; |
| justify-content:center; |
| align-items:center; |
| position:relative; |
| width:100%; |
| padding:2rem 0; |
| gap:clamp(3rem,8vw,6rem); |
| overflow-x:auto; |
| } |
|
|
| |
| #tester-column{ |
| display:flex; |
| justify-content:center; |
| align-items:center; |
| } |
|
|
| |
| #sampler-column{ |
| display:flex; |
| flex-direction:column; |
| gap:2.5rem; |
| align-items:center; |
| } |
|
|
| |
| .square{ |
| width:120px; |
| height:120px; |
| border-radius:0.5rem; |
| overflow:hidden; |
| flex-shrink:0; |
| } |
| .square img{width:100%;height:100%;object-fit:cover} |
|
|
| |
| #lines-canvas{position:absolute;top:0;left:0;pointer-events:none;z-index:0} |
| .label{position:absolute;transform:translate(-50%,-50%);z-index:1} |
|
|
| |
| @media (max-width:600px){ |
| #result-layout{gap:2rem} |
| .square{width:72px;height:72px;} |
| } |
|
|
| .tester-node { |
| box-shadow: 0 0 10px rgba(59,130,246,0.5); |
| } |
| |