:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:#213547;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#f9f9f9;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.quilt-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:#f8f9fa;padding:2rem;margin:0 auto;max-width:1200px;position:relative;z-index:1}.quilt-grid{box-shadow:0 4px 6px #0000001a;position:relative;margin:0 auto;z-index:1}.quilt-square{display:flex;justify-content:center;align-items:center;transform-origin:center;z-index:1}.quilt-square:hover{filter:brightness(1.1);z-index:2}.quilt-square.selected{z-index:2}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999}.modal-content{background-color:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 10px #0000001a;max-width:400px;width:90%;position:relative;z-index:10000}.modal-content h3{margin:0 0 1rem;color:#333}.modal-content p{margin:0 0 1.5rem;color:#666}.modal-buttons{display:flex;gap:1rem;justify-content:flex-end}.modal-buttons button{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.modal-buttons .confirm-button{background-color:#f44;color:#fff}.modal-buttons .confirm-button:hover{background-color:#c00}.modal-buttons .cancel-button{background-color:#e0e0e0;color:#333}.modal-buttons .cancel-button:hover{background-color:#d0d0d0}.quilt-controls{padding:1rem;background-color:#fff;border-radius:8px;margin:1rem auto;max-width:600px;box-shadow:0 2px 4px #0000001a}.control-group{margin-bottom:1rem}.control-group:last-child{margin-bottom:0}.control-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#333}.control-group input[type=range]{width:100%}.control-group input[type=color]{width:50px;height:30px;padding:0;border:1px solid #ddd;border-radius:4px;margin-bottom:.5rem}.design-controls{padding-right:1rem}.design-name-input{margin-bottom:1rem}.design-name-input input{width:100%;padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;color:#333;background-color:#fff}.design-name-input input::placeholder{color:#999}.design-name-input input:focus{outline:none;border-color:#4a90e2;box-shadow:0 0 0 2px #4a90e233}.design-buttons{display:flex;gap:.5rem;margin-bottom:1rem}.design-buttons button{padding:.5rem 1rem;border:none;border-radius:4px;background-color:#4a90e2;color:#fff;cursor:pointer;font-size:.9rem;transition:background-color .2s}.design-buttons button:hover{background-color:#357abd}.design-buttons button:disabled{background-color:#ccc;cursor:not-allowed}.design-buttons .new-design-button{background-color:#2ecc71}.design-buttons .new-design-button:hover{background-color:#27ae60}.load-menu{background-color:#fff;border:1px solid #ddd;border-radius:4px;padding:.5rem;max-height:200px;overflow-y:auto;margin-bottom:1rem}.load-option{display:block;width:100%;padding:.5rem;border:none;background:none;text-align:left;cursor:pointer;font-size:.9rem;color:#333}.load-option-container{display:flex;align-items:center;gap:.25rem;padding:.25rem}.load-option-container:hover{background-color:#f0f0f0}.delete-option{padding:.25rem .5rem;background-color:#f44;color:#fff;border:none;border-radius:2px;cursor:pointer;font-size:.75rem;transition:background-color .2s ease;width:24px;height:24px;display:flex;align-items:center;justify-content:center;line-height:1}.delete-option:hover{background-color:#c00}.load-option:hover{background-color:transparent}.controls{display:flex;flex-direction:column;gap:1rem;padding:1rem;background-color:#f5f5f5;border-radius:8px;box-shadow:0 2px 4px #0000001a}.control-group{display:flex;flex-direction:column;gap:.5rem}.control-group label{display:flex;flex-direction:column;gap:.25rem;font-weight:500}.control-group input[type=range]{width:100%;height:8px;-webkit-appearance:none;background:#ddd;border-radius:4px;outline:none;margin:.5rem 0}.control-group input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;background:#4a90e2;border-radius:50%;cursor:pointer;transition:background .2s ease}.control-group input[type=range]::-webkit-slider-thumb:hover{background:#357abd}.control-group input[type=range]::-moz-range-thumb{width:16px;height:16px;background:#4a90e2;border-radius:50%;cursor:pointer;transition:background .2s ease;border:none}.control-group input[type=range]::-moz-range-thumb:hover{background:#357abd}.control-group input[type=text],.control-group select{padding:.5rem;border:1px solid #ccc;border-radius:4px;font-size:1rem}.control-group input[type=file]{padding:.5rem;border:1px solid #ccc;border-radius:4px;background-color:#fff;cursor:pointer}.section-header{font-size:1rem;font-weight:600;color:#333;margin-bottom:.5rem;margin-top:1rem;letter-spacing:.01em;display:block;text-align:left}.section-divider{border:none;border-top:1px solid #eee;margin:1rem 0}.upload-button{display:flex;flex-direction:column;align-items:flex-start;font-weight:400;color:#666;font-size:.95rem;margin-bottom:.25rem;cursor:pointer;width:100%;box-sizing:border-box}.upload-button input[type=file]{margin-top:.25rem;padding:.5rem;border:1px solid #ccc;border-radius:4px;background-color:#fff;cursor:pointer;font-size:.95rem;width:100%;box-sizing:border-box}.color-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(30px,1fr));gap:.5rem;margin-top:.5rem;max-height:120px;overflow-y:auto;padding:.5rem .75rem .5rem .5rem}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(50px,1fr));gap:.5rem;margin-top:.5rem;max-height:120px;overflow-y:auto;padding:.5rem .75rem .5rem .5rem}.color-item,.image-item{display:flex;flex-direction:column;gap:.25rem;align-items:center;padding:.25rem}.color-swatch,.image-item img{width:30px;height:30px;border:1px solid #ccc;border-radius:4px;cursor:pointer;transition:border-color .2s ease;background:#fff;object-fit:cover}.color-swatch.selected,.image-item img.selected{border-color:#4a90e2;border-width:2px}.color-swatch:hover,.image-item img:hover{border-color:#4a90e2}.image-item img{width:50px;height:50px;border:1px solid #ccc;border-radius:4px;cursor:pointer;transition:border-color .2s ease;background:#fff;object-fit:cover}.settings-toggle{width:100%;padding:8px;background:#f0f0f0;border:1px solid #ddd;border-radius:4px;cursor:pointer;text-align:left;font-weight:500}.settings-toggle:hover{background:#e0e0e0}.grid-settings{margin-top:8px;padding:8px;border:1px solid #ddd;border-radius:4px;background:#fafafa}.image-item button{width:20px;height:20px;padding:0;border:none;background-color:#f44;color:#fff;border-radius:2px;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;line-height:1;margin:0}.image-item button:hover{background-color:#c00}.control-group button:not(.image-item button){width:100%;padding:.5rem;margin-bottom:.5rem;border:1px solid #ccc;border-radius:4px;background-color:#fff;cursor:pointer;font-size:.95rem;transition:background-color .2s ease}.control-group button:not(.image-item button):hover{background-color:#f0f0f0}.control-group button:not(.image-item button):last-child{margin-bottom:0}.quilt-summary{background:#fff;border-radius:8px;padding:16px;margin-top:16px;box-shadow:0 2px 4px #0000001a}.quilt-summary h3{margin:0 0 12px;font-size:1rem;color:#333}.quilt-summary h4{margin:0 0 8px;font-size:.9rem;color:#666}.summary-section{margin-bottom:16px}.summary-section:last-child{margin-bottom:0}.fill-list{display:flex;flex-direction:column;gap:0;margin-bottom:12px}.fill-item{display:flex;align-items:center;gap:12px;font-size:.95rem;color:#444;justify-content:flex-start;padding:8px;border-radius:4px}.fill-item:nth-child(2n){background-color:#f5f5f5}.fill-swatch,.fill-thumbnail{width:24px;height:24px;border-radius:4px;border:1px solid #ccc}.fill-thumbnail{object-fit:cover}.fill-label{min-width:70px;word-break:break-all;text-align:left;flex:1}.fill-count{text-align:left}.total-squares{font-size:.9rem;color:#333;font-weight:500;padding-top:8px;border-top:1px solid #eee}#root{max-width:100%;margin:0 auto;padding:0}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.app{text-align:center;padding:0;display:grid;grid-template-rows:auto 1fr;min-height:100vh;width:100vw;overflow-x:hidden;position:relative;z-index:1}.app-content{display:grid;grid-template-columns:minmax(300px,25%) 1fr;gap:2rem;width:100%;margin:0 auto;padding:0 1rem;position:relative;z-index:1}.controls-panel{background:#f8f9fa;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;position:sticky;top:1rem;width:100%;z-index:2}.quilt-grid-container{display:grid;align-items:start;overflow:auto;padding:1rem;background:#f8f9fa;border-radius:8px;width:100%;position:relative;z-index:1}.quilt-container{display:grid;align-items:start;padding:0}h1{color:#2c3e50;margin:1rem 0;font-family:Arial,sans-serif;grid-column:1 / -1;width:100%;margin-left:auto;margin-right:auto}
